@testgorilla/tgo-ui 2.24.20 → 2.24.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/components/datepicker/datepicker.component.d.ts +1 -1
  2. package/components/gaussian-chart/gaussian-chart.component.d.ts +75 -0
  3. package/components/gaussian-chart/gaussian-chart.module.d.ts +13 -0
  4. package/components/table/table.component.d.ts +5 -3
  5. package/components/table/table.model.d.ts +2 -1
  6. package/esm2022/assets/i18n/en.json +24 -7
  7. package/esm2022/components/accordion/accordion.component.mjs +4 -4
  8. package/esm2022/components/accordion/accordion.component.module.mjs +5 -5
  9. package/esm2022/components/alert-banner/alert-banner.component.mjs +4 -4
  10. package/esm2022/components/alert-banner/alert-banner.component.module.mjs +5 -5
  11. package/esm2022/components/autocomplete/autocomplete.component.mjs +4 -4
  12. package/esm2022/components/autocomplete/autocomplete.component.module.mjs +5 -5
  13. package/esm2022/components/autocomplete/includes.pipe.mjs +4 -4
  14. package/esm2022/components/autocomplete/prevent-input.directive.mjs +4 -4
  15. package/esm2022/components/autocomplete/transform-Item.pipe.mjs +4 -4
  16. package/esm2022/components/avatar/avatar.component.mjs +4 -4
  17. package/esm2022/components/avatar/avatar.component.module.mjs +5 -5
  18. package/esm2022/components/badge/badge.component.mjs +4 -4
  19. package/esm2022/components/badge/badge.component.module.mjs +5 -5
  20. package/esm2022/components/button/button.component.mjs +4 -4
  21. package/esm2022/components/button/button.component.module.mjs +5 -5
  22. package/esm2022/components/card/card.component.mjs +4 -4
  23. package/esm2022/components/card/card.component.module.mjs +5 -5
  24. package/esm2022/components/checkbox/checkbox.component.mjs +4 -4
  25. package/esm2022/components/checkbox/checkbox.component.module.mjs +5 -5
  26. package/esm2022/components/checkbox/focus-visible.directive.mjs +4 -4
  27. package/esm2022/components/checklist/checklist.component.mjs +4 -4
  28. package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +4 -4
  29. package/esm2022/components/confirm-dialog/confirm-dialog.component.module.mjs +5 -5
  30. package/esm2022/components/datepicker/date-adapter.mjs +30 -0
  31. package/esm2022/components/datepicker/datepicker.component.mjs +8 -10
  32. package/esm2022/components/datepicker/datepicker.component.module.mjs +5 -5
  33. package/esm2022/components/datepicker/datepicker.service.mjs +4 -4
  34. package/esm2022/components/datepicker/no-date-format.directive.mjs +7 -7
  35. package/esm2022/components/deprecated-paginator/deprecated-paginator.component.mjs +4 -4
  36. package/esm2022/components/deprecated-paginator/deprecated-paginator.component.module.mjs +5 -5
  37. package/esm2022/components/deprecated-table/deprecated-table.component.mjs +4 -4
  38. package/esm2022/components/deprecated-table/deprecated-table.component.module.mjs +5 -5
  39. package/esm2022/components/deprecated-table/directives/dynamic-component.directive.mjs +4 -4
  40. package/esm2022/components/dialog/dialog.component.mjs +4 -4
  41. package/esm2022/components/dialog/dialog.component.module.mjs +5 -5
  42. package/esm2022/components/dialog/dialog.service.mjs +4 -4
  43. package/esm2022/components/divider/divider.component.mjs +4 -4
  44. package/esm2022/components/divider/divider.component.module.mjs +5 -5
  45. package/esm2022/components/dropdown/dropdown.component.mjs +10 -8
  46. package/esm2022/components/dropdown/dropdown.component.module.mjs +5 -5
  47. package/esm2022/components/elevation-shadow/elevation-shadow.component.mjs +4 -4
  48. package/esm2022/components/elevation-shadow/elevation-shadow.component.module.mjs +5 -5
  49. package/esm2022/components/empty-state/empty-state.component.mjs +4 -4
  50. package/esm2022/components/empty-state/empty-state.component.module.mjs +5 -5
  51. package/esm2022/components/field/field.component.mjs +4 -4
  52. package/esm2022/components/field/field.component.module.mjs +5 -5
  53. package/esm2022/components/file-upload/file-upload.component.mjs +4 -4
  54. package/esm2022/components/file-upload/file-upload.component.module.mjs +5 -5
  55. package/esm2022/components/gaussian-chart/gaussian-chart.component.mjs +246 -0
  56. package/esm2022/components/gaussian-chart/gaussian-chart.module.mjs +42 -0
  57. package/esm2022/components/icon/icon.component.mjs +5 -5
  58. package/esm2022/components/icon/icon.component.module.mjs +5 -5
  59. package/esm2022/components/icon-label/icon-label.component.mjs +4 -4
  60. package/esm2022/components/icon-label/icon-label.component.module.mjs +5 -5
  61. package/esm2022/components/logo/logo.component.mjs +4 -4
  62. package/esm2022/components/logo/logo.component.module.mjs +5 -5
  63. package/esm2022/components/media-card/media-card.component.mjs +4 -4
  64. package/esm2022/components/multi-input/multi-input.component.mjs +4 -4
  65. package/esm2022/components/multi-input/multi-input.component.module.mjs +5 -5
  66. package/esm2022/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.mjs +4 -4
  67. package/esm2022/components/navbar/navbar.component.mjs +4 -4
  68. package/esm2022/components/navbar/navbar.component.module.mjs +5 -5
  69. package/esm2022/components/overflow-menu/overflow-menu.component.mjs +4 -4
  70. package/esm2022/components/overflow-menu/overflow-menu.component.module.mjs +5 -5
  71. package/esm2022/components/page-header/page-header.component.mjs +4 -4
  72. package/esm2022/components/page-header/page-header.component.module.mjs +5 -5
  73. package/esm2022/components/paginator/paginator.component.mjs +4 -4
  74. package/esm2022/components/paginator/paginator.component.module.mjs +5 -5
  75. package/esm2022/components/password-criteria/password.component.mjs +4 -4
  76. package/esm2022/components/password-criteria/password.component.module.mjs +5 -5
  77. package/esm2022/components/password-strength/password-strength.component.mjs +4 -4
  78. package/esm2022/components/password-strength/password-strength.component.module.mjs +5 -5
  79. package/esm2022/components/phone-input/join-strings.pipe.mjs +4 -4
  80. package/esm2022/components/phone-input/phone-input.component.mjs +4 -4
  81. package/esm2022/components/phone-input/phone-input.component.module.mjs +5 -5
  82. package/esm2022/components/progress-bar/progress-bar.component.mjs +4 -4
  83. package/esm2022/components/progress-bar/progress-bar.component.module.mjs +5 -5
  84. package/esm2022/components/radial-progress/radial-progress.component.mjs +4 -4
  85. package/esm2022/components/radial-progress/radial-progress.component.module.mjs +5 -5
  86. package/esm2022/components/radio-button/radio-button.component.mjs +4 -4
  87. package/esm2022/components/radio-button/radio-button.component.module.mjs +5 -5
  88. package/esm2022/components/rating/half-star.pipe.mjs +4 -4
  89. package/esm2022/components/rating/rating.component.mjs +4 -4
  90. package/esm2022/components/rating/rating.component.module.mjs +5 -5
  91. package/esm2022/components/scale/scale.component.mjs +5 -5
  92. package/esm2022/components/scale/scale.component.module.mjs +5 -5
  93. package/esm2022/components/segmented-bar/segmented-bar.component.mjs +4 -4
  94. package/esm2022/components/segmented-bar/segmented-bar.component.module.mjs +5 -5
  95. package/esm2022/components/segmented-button/segmented-button.component.mjs +4 -4
  96. package/esm2022/components/segmented-button/segmented-button.component.module.mjs +5 -5
  97. package/esm2022/components/side-panel/side-panel.component.mjs +4 -4
  98. package/esm2022/components/side-panel/side-panel.service.mjs +4 -4
  99. package/esm2022/components/side-sheet/side-sheet.component.mjs +4 -4
  100. package/esm2022/components/side-sheet/side-sheet.component.module.mjs +5 -5
  101. package/esm2022/components/side-sheet/side-sheet.service.mjs +4 -4
  102. package/esm2022/components/skeleton/skeleton.component.mjs +4 -4
  103. package/esm2022/components/slider/slider.component.mjs +4 -4
  104. package/esm2022/components/slider/slider.component.module.mjs +5 -5
  105. package/esm2022/components/snackbar/snackbar.component.mjs +4 -4
  106. package/esm2022/components/snackbar/snackbar.component.module.mjs +5 -5
  107. package/esm2022/components/snackbar/snackbar.service.mjs +4 -4
  108. package/esm2022/components/spider-chart/spider-chart.component.mjs +4 -4
  109. package/esm2022/components/spider-chart/spider-chart.module.mjs +5 -5
  110. package/esm2022/components/spinner/spinner.component.mjs +4 -4
  111. package/esm2022/components/spinner/spinner.module.mjs +5 -5
  112. package/esm2022/components/step/step.component.mjs +4 -4
  113. package/esm2022/components/step/step.component.module.mjs +5 -5
  114. package/esm2022/components/stepper/stepper.component.mjs +4 -4
  115. package/esm2022/components/stepper/stepper.component.module.mjs +5 -5
  116. package/esm2022/components/table/sentence-case.pipe.mjs +4 -4
  117. package/esm2022/components/table/table.component.mjs +45 -33
  118. package/esm2022/components/table/table.component.module.mjs +5 -5
  119. package/esm2022/components/table/table.model.mjs +1 -1
  120. package/esm2022/components/tabs/tab.directive.mjs +4 -4
  121. package/esm2022/components/tabs/tabs.component.mjs +4 -4
  122. package/esm2022/components/tabs/tabs.component.module.mjs +5 -5
  123. package/esm2022/components/tag/tag.component.mjs +4 -4
  124. package/esm2022/components/tag/tag.component.module.mjs +5 -5
  125. package/esm2022/components/toggle/toggle.component.mjs +4 -4
  126. package/esm2022/components/toggle/toggle.component.module.mjs +5 -5
  127. package/esm2022/components/tooltip/tooltip-template.directive.mjs +14 -12
  128. package/esm2022/components/tooltip/tooltip.component.mjs +4 -4
  129. package/esm2022/components/tooltip/tooltip.component.module.mjs +5 -5
  130. package/esm2022/components/universal-skills-report/universal-skills-report.component.mjs +18 -18
  131. package/esm2022/components/universal-skills-report/universal-skills-report.component.module.mjs +5 -5
  132. package/esm2022/components/validation-error/validation-error.component.mjs +4 -4
  133. package/esm2022/components/validation-error/validation-error.module.mjs +5 -5
  134. package/esm2022/directives/digits-only.directive.mjs +4 -4
  135. package/esm2022/directives/drag-drop.directive.mjs +4 -4
  136. package/esm2022/directives/ellipse-text.directive.mjs +4 -4
  137. package/esm2022/directives/select-text.directive.mjs +4 -4
  138. package/esm2022/directives/step-line-element.directive.mjs +4 -4
  139. package/esm2022/pipes/data-property-getter.mjs +4 -4
  140. package/esm2022/pipes/has-validation-error.pipe.mjs +4 -4
  141. package/esm2022/pipes/memoize-func.pipe.mjs +4 -4
  142. package/esm2022/pipes/name-initials.pipe.mjs +4 -4
  143. package/esm2022/pipes/ui-ordinal-suffix.pipe.mjs +4 -4
  144. package/esm2022/pipes/ui-translate.pipe.mjs +4 -4
  145. package/esm2022/public-api.mjs +4 -1
  146. package/esm2022/services/icons.service.mjs +4 -4
  147. package/esm2022/utils/localization/language.service.mjs +4 -4
  148. package/fesm2022/testgorilla-tgo-ui.mjs +832 -530
  149. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  150. package/package.json +2 -1
  151. package/projects/tgo-canopy-ui/assets/i18n/en.json +24 -7
  152. package/public-api.d.ts +2 -0
  153. package/esm2022/components/datepicker/DateAdapter.mjs +0 -30
  154. /package/components/datepicker/{DateAdapter.d.ts → date-adapter.d.ts} +0 -0
@@ -388,10 +388,10 @@ export class SpiderChartComponent {
388
388
  return;
389
389
  return !chartInstance.data.datasets[datasetIndex].hidden;
390
390
  }
391
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpiderChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
392
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: SpiderChartComponent, selector: "ui-spider-chart", inputs: { size: "size", spiderChartData: "spiderChartData", stepSize: "stepSize", ariaLabel: "ariaLabel", loading: "loading", applicationTheme: "applicationTheme" }, viewQueries: [{ propertyName: "chart", first: true, predicate: BaseChartDirective, descendants: true }, { propertyName: "labelContainers", predicate: ["labelContainer"], descendants: true }, { propertyName: "fakeDataPoints", predicate: ["fakeDataPoints"], descendants: true }, { propertyName: "fakeDataPointsSecondary", predicate: ["fakeDataPointsSecondary"], descendants: true }, { propertyName: "legendItems", predicate: ["legendItem"], descendants: true }], ngImport: i0, template: "<div class=\"container\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\">\n <div class=\"spacing-container\"\n [ngClass]=\"{'small-spacing': radarChartData.labels && radarChartData.labels.length % 2 === 1 && !loading}\">\n <div class=\"chart-container\"\n [style.width]=\"size === 'large' ? '280px' : '200px'\"\n [style.height]=\"size === 'large' ? '280px' : '200px'\">\n @if (!loading) {\n <canvas\n baseChart\n [data]=\"radarChartData\"\n [options]=\"radarChartOptions\"\n type=\"radar\"\n class=\"chart\"\n >\n </canvas>\n } @else {\n <canvas\n baseChart\n [data]=\"loadingChartData\"\n [options]=\"loadingChartOptions\"\n type=\"radar\"\n class=\"chart\"\n >\n </canvas>\n <ui-spinner></ui-spinner>\n }\n\n @if (labelPositionsVisible) {\n <div class=\"overlay-container\">\n @for (label of spiderChartData.labels; track label) {\n <div class=\"label-container\" #labelContainer\n [matTooltip]=\"label + ': ' + spiderChartData.labelDescription[$index]\"\n [tabindex]=\"$index === 0 ? '0' : '-1'\"\n (keydown)=\"onLabelKeyDown($event, $index)\"\n [attr.aria-label]=\"label + ': ' + spiderChartData.labelDescription[$index]\"\n [style.left]=\"getCenteredLabelLeftPosition(label, labelContainer.offsetWidth)\"\n [style.bottom]=\"getCenteredLabelBottomPosition(label, labelContainer.offsetHeight)\">\n <div class=\"label\" #labelElement [style.max-width]=\"size === 'large' ? '150px' : '100px'\"\n [class.two-lines]=\"label.length > 20 && size === 'large' && spiderChartData.labels.length < 9\">\n {{ label }}\n </div>\n <span class=\"value\">{{ spiderChartData.plotData[0].data[$index] }}</span>\n </div>\n <span class=\"fake-data-points\" #fakeDataPoints\n [tabindex]=\"focusedLabelIndex === $index ? '0' : '-1'\"\n (focus)=\"$index === focusedLabelIndex ? showTooltipForDataPoint($index) : null\"\n (keydown)=\"onFakeDataPointsKeyDown($event, $index)\">\n </span>\n @if (radarChartData.datasets.length > 1) {\n <span class=\"fake-data-points-secondary\" #fakeDataPointsSecondary\n [tabindex]=\"focusedFakeDataPointIndex === $index ? '0' : '-1'\"\n (focus)=\"$index === focusedFakeDataPointIndex ? showTooltipForDataPoint($index, true) : null\"\n (keydown)=\"onFakeDataPointsKeyDown($event, $index, true)\">\n </span>\n }\n }\n </div>\n }\n </div>\n </div>\n @if (radarChartData.datasets.length > 0) {\n <div class=\"legend-container\">\n @for (dataset of radarChartData.datasets; track dataset.label) {\n <div class=\"legend-item\"\n (click)=\"toggleDatasetVisibility($index)\"\n [tabindex]=\"$index === 0 ? '0' : '-1'\"\n role=\"button\"\n [attr.aria-pressed]=\"isDatasetVisible($index) ? false : true\"\n [attr.aria-label]=\"isDatasetVisible($index) ?\n ((translationContext + 'DATASET_VISIBLE') | uiTranslate : { dataset: dataset.label } | async) :\n ((translationContext + 'DATASET_HIDDEN') | uiTranslate : { dataset: dataset.label } | async)\"\n (keydown)=\"onLegendItemKeyDown($event, $index)\"\n #legendItem>\n <span class=\"legend-line\" [ngClass]=\"{'solid-line': $index === 0, 'dashed-line': $index === 1}\"></span>\n <span class=\"legend-label\" [style.text-decoration]=\"isDatasetVisible($index) ? 'none' : 'line-through'\">\n {{ dataset.label }}\n </span>\n </div>\n }\n </div>\n }\n</div>\n\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.container{display:flex;flex-direction:column;align-items:center}.container .spacing-container{padding:40px 140px}.container .spacing-container.small-spacing{padding:0 80px}.container .spacing-container .chart-container{position:relative}.container .spacing-container .chart-container .overlay-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.container .spacing-container .chart-container .overlay-container .label-container{display:flex;gap:4px;position:absolute;pointer-events:all;cursor:pointer}.container .spacing-container .chart-container .overlay-container .label-container .fake-data-points{visibility:hidden}.container .spacing-container .chart-container .overlay-container .label-container:focus{outline:none}.container .spacing-container .chart-container .overlay-container .label-container .label{border-bottom:1px dashed #D3D3D3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.container .spacing-container .chart-container .overlay-container .label-container .label.two-lines{width:150px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2}.container .spacing-container .chart-container .overlay-container .label-container .value{font-weight:700}.container .legend-container{display:flex;gap:16px;cursor:pointer}.container .legend-container .legend-item{display:flex;align-items:center;gap:8px}.container .legend-container .legend-item .legend-line{display:inline-block;width:11px;height:4px}.container .legend-container .legend-item .solid-line{background-color:#d410aa}.container .legend-container .legend-item .dashed-line{border-top:2px dashed #242424}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.BaseChartDirective, selector: "canvas[baseChart]", inputs: ["type", "legend", "data", "options", "plugins", "labels", "datasets"], outputs: ["chartClick", "chartHover"], exportAs: ["base-chart"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.SpinnerComponent, selector: "ui-spinner", inputs: ["size", "isLoader", "applicationTheme"] }, { kind: "pipe", type: i5.UiTranslatePipe, name: "uiTranslate" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
391
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
392
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SpiderChartComponent, selector: "ui-spider-chart", inputs: { size: "size", spiderChartData: "spiderChartData", stepSize: "stepSize", ariaLabel: "ariaLabel", loading: "loading", applicationTheme: "applicationTheme" }, viewQueries: [{ propertyName: "chart", first: true, predicate: BaseChartDirective, descendants: true }, { propertyName: "labelContainers", predicate: ["labelContainer"], descendants: true }, { propertyName: "fakeDataPoints", predicate: ["fakeDataPoints"], descendants: true }, { propertyName: "fakeDataPointsSecondary", predicate: ["fakeDataPointsSecondary"], descendants: true }, { propertyName: "legendItems", predicate: ["legendItem"], descendants: true }], ngImport: i0, template: "<div class=\"container\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\">\n <div class=\"spacing-container\"\n [ngClass]=\"{'small-spacing': radarChartData.labels && radarChartData.labels.length % 2 === 1 && !loading}\">\n <div class=\"chart-container\"\n [style.width]=\"size === 'large' ? '280px' : '200px'\"\n [style.height]=\"size === 'large' ? '280px' : '200px'\">\n @if (!loading) {\n <canvas\n baseChart\n [data]=\"radarChartData\"\n [options]=\"radarChartOptions\"\n type=\"radar\"\n class=\"chart\"\n >\n </canvas>\n } @else {\n <canvas\n baseChart\n [data]=\"loadingChartData\"\n [options]=\"loadingChartOptions\"\n type=\"radar\"\n class=\"chart\"\n >\n </canvas>\n <ui-spinner></ui-spinner>\n }\n\n @if (labelPositionsVisible) {\n <div class=\"overlay-container\">\n @for (label of spiderChartData.labels; track label) {\n <div class=\"label-container\" #labelContainer\n [matTooltip]=\"label + ': ' + spiderChartData.labelDescription[$index]\"\n [tabindex]=\"$index === 0 ? '0' : '-1'\"\n (keydown)=\"onLabelKeyDown($event, $index)\"\n [attr.aria-label]=\"label + ': ' + spiderChartData.labelDescription[$index]\"\n [style.left]=\"getCenteredLabelLeftPosition(label, labelContainer.offsetWidth)\"\n [style.bottom]=\"getCenteredLabelBottomPosition(label, labelContainer.offsetHeight)\">\n <div class=\"label\" #labelElement [style.max-width]=\"size === 'large' ? '150px' : '100px'\"\n [class.two-lines]=\"label.length > 20 && size === 'large' && spiderChartData.labels.length < 9\">\n {{ label }}\n </div>\n <span class=\"value\">{{ spiderChartData.plotData[0].data[$index] }}</span>\n </div>\n <span class=\"fake-data-points\" #fakeDataPoints\n [tabindex]=\"focusedLabelIndex === $index ? '0' : '-1'\"\n (focus)=\"$index === focusedLabelIndex ? showTooltipForDataPoint($index) : null\"\n (keydown)=\"onFakeDataPointsKeyDown($event, $index)\">\n </span>\n @if (radarChartData.datasets.length > 1) {\n <span class=\"fake-data-points-secondary\" #fakeDataPointsSecondary\n [tabindex]=\"focusedFakeDataPointIndex === $index ? '0' : '-1'\"\n (focus)=\"$index === focusedFakeDataPointIndex ? showTooltipForDataPoint($index, true) : null\"\n (keydown)=\"onFakeDataPointsKeyDown($event, $index, true)\">\n </span>\n }\n }\n </div>\n }\n </div>\n </div>\n @if (radarChartData.datasets.length > 0) {\n <div class=\"legend-container\">\n @for (dataset of radarChartData.datasets; track dataset.label) {\n <div class=\"legend-item\"\n (click)=\"toggleDatasetVisibility($index)\"\n [tabindex]=\"$index === 0 ? '0' : '-1'\"\n role=\"button\"\n [attr.aria-pressed]=\"isDatasetVisible($index) ? false : true\"\n [attr.aria-label]=\"isDatasetVisible($index) ?\n ((translationContext + 'DATASET_VISIBLE') | uiTranslate : { dataset: dataset.label } | async) :\n ((translationContext + 'DATASET_HIDDEN') | uiTranslate : { dataset: dataset.label } | async)\"\n (keydown)=\"onLegendItemKeyDown($event, $index)\"\n #legendItem>\n <span class=\"legend-line\" [ngClass]=\"{'solid-line': $index === 0, 'dashed-line': $index === 1}\"></span>\n <span class=\"legend-label\" [style.text-decoration]=\"isDatasetVisible($index) ? 'none' : 'line-through'\">\n {{ dataset.label }}\n </span>\n </div>\n }\n </div>\n }\n</div>\n\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.container{display:flex;flex-direction:column;align-items:center}.container .spacing-container{padding:40px 140px}.container .spacing-container.small-spacing{padding:0 80px}.container .spacing-container .chart-container{position:relative}.container .spacing-container .chart-container .overlay-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.container .spacing-container .chart-container .overlay-container .label-container{display:flex;gap:4px;position:absolute;pointer-events:all;cursor:pointer}.container .spacing-container .chart-container .overlay-container .label-container .fake-data-points{visibility:hidden}.container .spacing-container .chart-container .overlay-container .label-container:focus{outline:none}.container .spacing-container .chart-container .overlay-container .label-container .label{border-bottom:1px dashed #D3D3D3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.container .spacing-container .chart-container .overlay-container .label-container .label.two-lines{width:150px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2}.container .spacing-container .chart-container .overlay-container .label-container .value{font-weight:700}.container .legend-container{display:flex;gap:16px;cursor:pointer}.container .legend-container .legend-item{display:flex;align-items:center;gap:8px}.container .legend-container .legend-item .legend-line{display:inline-block;width:11px;height:4px}.container .legend-container .legend-item .solid-line{background-color:#d410aa}.container .legend-container .legend-item .dashed-line{border-top:2px dashed #242424}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.BaseChartDirective, selector: "canvas[baseChart]", inputs: ["type", "legend", "data", "options", "plugins", "labels", "datasets"], outputs: ["chartClick", "chartHover"], exportAs: ["base-chart"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.SpinnerComponent, selector: "ui-spinner", inputs: ["size", "isLoader", "applicationTheme"] }, { kind: "pipe", type: i5.UiTranslatePipe, name: "uiTranslate" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
393
393
  }
394
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpiderChartComponent, decorators: [{
394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponent, decorators: [{
395
395
  type: Component,
396
396
  args: [{ selector: 'ui-spider-chart', template: "<div class=\"container\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\">\n <div class=\"spacing-container\"\n [ngClass]=\"{'small-spacing': radarChartData.labels && radarChartData.labels.length % 2 === 1 && !loading}\">\n <div class=\"chart-container\"\n [style.width]=\"size === 'large' ? '280px' : '200px'\"\n [style.height]=\"size === 'large' ? '280px' : '200px'\">\n @if (!loading) {\n <canvas\n baseChart\n [data]=\"radarChartData\"\n [options]=\"radarChartOptions\"\n type=\"radar\"\n class=\"chart\"\n >\n </canvas>\n } @else {\n <canvas\n baseChart\n [data]=\"loadingChartData\"\n [options]=\"loadingChartOptions\"\n type=\"radar\"\n class=\"chart\"\n >\n </canvas>\n <ui-spinner></ui-spinner>\n }\n\n @if (labelPositionsVisible) {\n <div class=\"overlay-container\">\n @for (label of spiderChartData.labels; track label) {\n <div class=\"label-container\" #labelContainer\n [matTooltip]=\"label + ': ' + spiderChartData.labelDescription[$index]\"\n [tabindex]=\"$index === 0 ? '0' : '-1'\"\n (keydown)=\"onLabelKeyDown($event, $index)\"\n [attr.aria-label]=\"label + ': ' + spiderChartData.labelDescription[$index]\"\n [style.left]=\"getCenteredLabelLeftPosition(label, labelContainer.offsetWidth)\"\n [style.bottom]=\"getCenteredLabelBottomPosition(label, labelContainer.offsetHeight)\">\n <div class=\"label\" #labelElement [style.max-width]=\"size === 'large' ? '150px' : '100px'\"\n [class.two-lines]=\"label.length > 20 && size === 'large' && spiderChartData.labels.length < 9\">\n {{ label }}\n </div>\n <span class=\"value\">{{ spiderChartData.plotData[0].data[$index] }}</span>\n </div>\n <span class=\"fake-data-points\" #fakeDataPoints\n [tabindex]=\"focusedLabelIndex === $index ? '0' : '-1'\"\n (focus)=\"$index === focusedLabelIndex ? showTooltipForDataPoint($index) : null\"\n (keydown)=\"onFakeDataPointsKeyDown($event, $index)\">\n </span>\n @if (radarChartData.datasets.length > 1) {\n <span class=\"fake-data-points-secondary\" #fakeDataPointsSecondary\n [tabindex]=\"focusedFakeDataPointIndex === $index ? '0' : '-1'\"\n (focus)=\"$index === focusedFakeDataPointIndex ? showTooltipForDataPoint($index, true) : null\"\n (keydown)=\"onFakeDataPointsKeyDown($event, $index, true)\">\n </span>\n }\n }\n </div>\n }\n </div>\n </div>\n @if (radarChartData.datasets.length > 0) {\n <div class=\"legend-container\">\n @for (dataset of radarChartData.datasets; track dataset.label) {\n <div class=\"legend-item\"\n (click)=\"toggleDatasetVisibility($index)\"\n [tabindex]=\"$index === 0 ? '0' : '-1'\"\n role=\"button\"\n [attr.aria-pressed]=\"isDatasetVisible($index) ? false : true\"\n [attr.aria-label]=\"isDatasetVisible($index) ?\n ((translationContext + 'DATASET_VISIBLE') | uiTranslate : { dataset: dataset.label } | async) :\n ((translationContext + 'DATASET_HIDDEN') | uiTranslate : { dataset: dataset.label } | async)\"\n (keydown)=\"onLegendItemKeyDown($event, $index)\"\n #legendItem>\n <span class=\"legend-line\" [ngClass]=\"{'solid-line': $index === 0, 'dashed-line': $index === 1}\"></span>\n <span class=\"legend-label\" [style.text-decoration]=\"isDatasetVisible($index) ? 'none' : 'line-through'\">\n {{ dataset.label }}\n </span>\n </div>\n }\n </div>\n }\n</div>\n\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.container{display:flex;flex-direction:column;align-items:center}.container .spacing-container{padding:40px 140px}.container .spacing-container.small-spacing{padding:0 80px}.container .spacing-container .chart-container{position:relative}.container .spacing-container .chart-container .overlay-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.container .spacing-container .chart-container .overlay-container .label-container{display:flex;gap:4px;position:absolute;pointer-events:all;cursor:pointer}.container .spacing-container .chart-container .overlay-container .label-container .fake-data-points{visibility:hidden}.container .spacing-container .chart-container .overlay-container .label-container:focus{outline:none}.container .spacing-container .chart-container .overlay-container .label-container .label{border-bottom:1px dashed #D3D3D3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.container .spacing-container .chart-container .overlay-container .label-container .label.two-lines{width:150px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2}.container .spacing-container .chart-container .overlay-container .label-container .value{font-weight:700}.container .legend-container{display:flex;gap:16px;cursor:pointer}.container .legend-container .legend-item{display:flex;align-items:center;gap:8px}.container .legend-container .legend-item .legend-line{display:inline-block;width:11px;height:4px}.container .legend-container .legend-item .solid-line{background-color:#d410aa}.container .legend-container .legend-item .dashed-line{border-top:2px dashed #242424}\n"] }]
397
397
  }], propDecorators: { size: [{
@@ -422,4 +422,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
422
422
  type: ViewChildren,
423
423
  args: ['legendItem']
424
424
  }] } });
425
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVyLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9zcGlkZXItY2hhcnQvc3BpZGVyLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9zcGlkZXItY2hhcnQvc3BpZGVyLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBR1QsS0FBSyxFQUlMLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFvQyxNQUFNLHNCQUFzQixDQUFDO0FBR3BILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFTaEQsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU1FOzs7O1dBSUc7UUFDTSxTQUFJLEdBQW9CLE9BQU8sQ0FBQztRQVN6Qzs7OztXQUlHO1FBQ00sYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUUvQjs7OztXQUlHO1FBQ00sY0FBUyxHQUFXLHVEQUF1RCxDQUFDO1FBRXJGOzs7O1dBSUc7UUFDTSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRWxDOzs7Ozs7V0FNRztRQUNNLHFCQUFnQixHQUFxQixPQUFPLENBQUM7UUFRdEQsbUJBQWMsR0FBdUI7WUFDbkMsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUM7UUFFRixtQkFBYyxHQUFnRCxFQUFFLENBQUM7UUFDakUsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUM5Qiw4QkFBeUIsR0FB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QUFLLEVBQUUsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUUzQixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFlBQW9CO1FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUMzQixPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNELENBQUM7OEdBMVpVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG9RQTZDcEIsa0JBQWtCLG9aQ3JFL0IsZzBIQXFGQTs7MkZEN0RhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7OEJBVWxCLElBQUk7c0JBQVosS0FBSztnQkFPRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBU0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUV5QixLQUFLO3NCQUFuQyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDRyxlQUFlO3NCQUE5QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDRSxjQUFjO3NCQUE3QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDVyx1QkFBdUI7c0JBQS9ELFlBQVk7dUJBQUMseUJBQXlCO2dCQUNYLFdBQVc7c0JBQXRDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXJnZVNwaWRlckNoYXJ0U2l6ZSwgU21hbGxTcGlkZXJDaGFydFNpemUsIFNwaWRlckNoYXJ0RGF0YSwgU3BpZGVyQ2hhcnRTaXplIH0gZnJvbSAnLi9zcGlkZXItY2hhcnQubW9kZWwnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25UaGVtZSB9IGZyb20gJy4uLy4uL21vZGVscy9hcHBsaWNhdGlvbi10aGVtZS5tb2RlbCc7XG5pbXBvcnQgeyBDaGFydCwgQ2hhcnREYXRhLCBDaGFydE9wdGlvbnMgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJy4vLi4vLi4vbW9kZWxzL2NvbG9ycy5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlQ2hhcnREaXJlY3RpdmUgfSBmcm9tICduZzItY2hhcnRzJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2FsaXphdGlvbi9sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IExhbmd1YWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYWxpemF0aW9uL2xhbmd1YWdlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktc3BpZGVyLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlci1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwaWRlci1jaGFydC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTcGlkZXJDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgc3BpZGVyIGNoYXJ0LlxuICAgKiBAdHlwZSB7U3BpZGVyQ2hhcnRTaXplfVxuICAgKiBAbWVtYmVyb2YgU3BpZGVyQ2hhcnRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNpemU6IFNwaWRlckNoYXJ0U2l6ZSA9ICdsYXJnZSc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIHRvIGJlIHVzZWQgZm9yIHRoZSBzcGlkZXIgY2hhcnQuXG4gICAqIEB0eXBlIHtTcGlkZXJDaGFydERhdGF9XG4gICAqIEBtZW1iZXJvZiBTcGlkZXJDaGFydENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc3BpZGVyQ2hhcnREYXRhOiBTcGlkZXJDaGFydERhdGE7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGVwIHNpemUgZm9yIHRoZSBzcGlkZXIgY2hhcnQuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBtZW1iZXJvZiBTcGlkZXJDaGFydENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc3RlcFNpemU6IG51bWJlciA9IDIwO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJpYSBsYWJlbCBmb3IgdGhlIHNwaWRlciBjaGFydC5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIFNwaWRlckNoYXJ0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyA9ICdSYWRhciBjaGFydC4gUHJlc3MgdGFiIHRvIG5hdmlnYXRlIHRocm91Z2ggdGhlIGNoYXJ0Lic7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNwaWRlciBjaGFydCBpcyBsb2FkaW5nLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIFNwaWRlckNoYXJ0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIERlZmluZXMgdGhlIGFwcGxpY2F0aW9uIHRoZW1lXG4gICAqXG4gICAqIEB0eXBlIHtBcHBsaWNhdGlvblRoZW1lfVxuICAgKiBAbWVtYmVyb2YgU3Bpbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXBwbGljYXRpb25UaGVtZTogQXBwbGljYXRpb25UaGVtZSA9ICdsaWdodCc7XG5cbiAgQFZpZXdDaGlsZChCYXNlQ2hhcnREaXJlY3RpdmUpIGNoYXJ0OiBCYXNlQ2hhcnREaXJlY3RpdmU7XG4gIEBWaWV3Q2hpbGRyZW4oJ2xhYmVsQ29udGFpbmVyJykgbGFiZWxDb250YWluZXJzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIEBWaWV3Q2hpbGRyZW4oJ2Zha2VEYXRhUG9pbnRzJykgZmFrZURhdGFQb2ludHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgQFZpZXdDaGlsZHJlbignZmFrZURhdGFQb2ludHNTZWNvbmRhcnknKSBmYWtlRGF0YVBvaW50c1NlY29uZGFyeTogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBAVmlld0NoaWxkcmVuKCdsZWdlbmRJdGVtJykgbGVnZW5kSXRlbXM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICByYWRhckNoYXJ0RGF0YTogQ2hhcnREYXRhPCdyYWRhcic+ID0ge1xuICAgIGxhYmVsczogW10sXG4gICAgZGF0YXNldHM6IFtdLFxuICB9O1xuICByYWRhckNoYXJ0T3B0aW9uczogQ2hhcnRPcHRpb25zPCdyYWRhcic+O1xuICBsYWJlbFBvc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gfSA9IHt9O1xuICBsYWJlbFBvc2l0aW9uc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZm9jdXNlZExhYmVsSW5kZXg6IG51bWJlciA9IDA7XG4gIGZvY3VzZWRGYWtlRGF0YVBvaW50SW5kZXg6IG51bWJlciA9IDA7XG4gIGxvYWRpbmdDaGFydERhdGE6IENoYXJ0RGF0YTwncmFkYXInPiA9IHtcbiAgICBsYWJlbHM6IFsxLCAyLCAzLCA0LCA1LCA2XSxcbiAgICBkYXRhc2V0czogW10sXG4gIH07XG4gIGxvYWRpbmdDaGFydE9wdGlvbnM6IENoYXJ0T3B0aW9uczwncmFkYXInPiA9IHtcbiAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgIGxheW91dDoge1xuICAgICAgcGFkZGluZzoge1xuICAgICAgICBsZWZ0OiA0MCxcbiAgICAgICAgcmlnaHQ6IDQwLFxuICAgICAgICB0b3A6IDQwLFxuICAgICAgICBib3R0b206IDQwLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHNjYWxlczoge1xuICAgICAgcjoge1xuICAgICAgICBhbmdsZUxpbmVzOiB7XG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICBjb2xvcjogQ29sb3IuR1JBWVNDQUxFXzMwLFxuICAgICAgICB9LFxuICAgICAgICBncmlkOiB7XG4gICAgICAgICAgY29sb3I6ICgpID0+IENvbG9yLkdSQVlTQ0FMRV8zMCxcbiAgICAgICAgfSxcbiAgICAgICAgcG9pbnRMYWJlbHM6IHtcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3VnZ2VzdGVkTWluOiAwLFxuICAgICAgICBzdWdnZXN0ZWRNYXg6IDEwMCxcbiAgICAgICAgdGlja3M6IHtcbiAgICAgICAgICBzdGVwU2l6ZTogdGhpcy5zdGVwU2l6ZSxcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYW5zbGF0aW9uQ29udGV4dCA9ICdDSEFSVFMuU1BJREVSLic7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMuaGFuZGxlSW5wdXRFcnJvcnMoKTtcbiAgICAgIHRoaXMuc2V0Q2hhcnREYXRhKCk7XG4gICAgICB0aGlzLnNldENoYXJ0T3B0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRFcnJvcnMoKSB7XG4gICAgaWYgKCF0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMgfHwgdGhpcy5zcGlkZXJDaGFydERhdGEubGFiZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgXCJsYWJlbHNcIiBpbnB1dCBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5LicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc3BpZGVyQ2hhcnREYXRhLmxhYmVsRGVzY3JpcHRpb24gfHwgdGhpcy5zcGlkZXJDaGFydERhdGEubGFiZWxEZXNjcmlwdGlvbi5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIFwibGFiZWxEZXNjcmlwdGlvblwiIGlucHV0IGlzIHJlcXVpcmVkIGFuZCBjYW5ub3QgYmUgZW1wdHkuJyk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLmxhYmVsRGVzY3JpcHRpb24gJiZcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLmxhYmVsRGVzY3JpcHRpb24ubGVuZ3RoICE9PSB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBcImxhYmVsRGVzY3JpcHRpb25cIiBpbnB1dCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIFwibGFiZWxzXCIuJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMF0uZGF0YWJhc2VMYWJlbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgXCJwbG90RGF0YS5kYXRhYmFzZUxhYmVsXCIgaW5wdXQgaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMF0uZGF0YSB8fCB0aGlzLnNwaWRlckNoYXJ0RGF0YS5wbG90RGF0YVswXS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgXCJwbG90RGF0YS5kYXRhXCIgaW5wdXQgaXMgcmVxdWlyZWQgYW5kIGNhbm5vdCBiZSBlbXB0eS4nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhWzBdLmRhdGEubGVuZ3RoICE9PSB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBcInBsb3REYXRhLmRhdGFcIiBpbnB1dCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIFwibGFiZWxzXCIuJyk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhLmxlbmd0aCA9PT0gMiAmJlxuICAgICAgdGhpcy5zcGlkZXJDaGFydERhdGEubGFiZWxzLmxlbmd0aCA+IDAgJiZcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhWzFdLmRhdGEgJiZcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhWzFdLmRhdGEubGVuZ3RoICE9PSB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBcInBsb3REYXRhLmRhdGFcIiBpbnB1dCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIFwibGFiZWxzXCIuJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDaGFydERhdGEoKSB7XG4gICAgY29uc3QgZGF0YXNldHMgPSBbXTtcbiAgICBkYXRhc2V0cy5wdXNoKHtcbiAgICAgIGxhYmVsOiB0aGlzLnNwaWRlckNoYXJ0RGF0YS5wbG90RGF0YVswXS5kYXRhYmFzZUxhYmVsLFxuICAgICAgZGF0YTogdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMF0uZGF0YSxcbiAgICAgIGZpbGw6IHRydWUsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDIxMiwgMTYsIDE3MCwgMC4yKScsXG4gICAgICBib3JkZXJDb2xvcjogQ29sb3IuQlJBTkRfNTAsXG4gICAgICBwb2ludEJhY2tncm91bmRDb2xvcjogQ29sb3IuQlJBTkRfNTAsXG4gICAgICBwb2ludEJvcmRlckNvbG9yOiBDb2xvci5UR09fV0hJVEUsXG4gICAgICBwb2ludEhvdmVyQmFja2dyb3VuZENvbG9yOiBDb2xvci5UR09fV0hJVEUsXG4gICAgICBwb2ludEhvdmVyQm9yZGVyQ29sb3I6IENvbG9yLkJSQU5EXzUwLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLnNwaWRlckNoYXJ0RGF0YS5wbG90RGF0YS5sZW5ndGggPT09IDIpIHtcbiAgICAgIGRhdGFzZXRzLnB1c2goe1xuICAgICAgICBsYWJlbDogdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMV0uZGF0YWJhc2VMYWJlbCxcbiAgICAgICAgZGF0YTogdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMV0uZGF0YSxcbiAgICAgICAgZmlsbDogZmFsc2UsXG4gICAgICAgIGJvcmRlckNvbG9yOiBDb2xvci5CTEFDSyxcbiAgICAgICAgYm9yZGVyRGFzaDogWzUsIDVdLFxuICAgICAgICBib3JkZXJXaWR0aDogMSxcbiAgICAgICAgcG9pbnRCYWNrZ3JvdW5kQ29sb3I6IENvbG9yLkJMQUNLLFxuICAgICAgICBwb2ludEJvcmRlckNvbG9yOiBDb2xvci5UR09fV0hJVEUsXG4gICAgICAgIHBvaW50SG92ZXJCYWNrZ3JvdW5kQ29sb3I6IENvbG9yLlRHT19XSElURSxcbiAgICAgICAgcG9pbnRIb3ZlckJvcmRlckNvbG9yOiBDb2xvci5CTEFDSyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnJhZGFyQ2hhcnREYXRhID0ge1xuICAgICAgbGFiZWxzOiB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMsXG4gICAgICBkYXRhc2V0czogZGF0YXNldHMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hhcnRPcHRpb25zKCkge1xuICAgIHRoaXMucmFkYXJDaGFydE9wdGlvbnMgPSB7XG4gICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgbGluZToge1xuICAgICAgICAgIGJvcmRlcldpZHRoOiAzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGxheW91dDoge1xuICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgbGVmdDogNDAsXG4gICAgICAgICAgcmlnaHQ6IDQwLFxuICAgICAgICAgIHRvcDogNDAsXG4gICAgICAgICAgYm90dG9tOiA0MCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzY2FsZXM6IHtcbiAgICAgICAgcjoge1xuICAgICAgICAgIGFuZ2xlTGluZXM6IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgICBjb2xvcjogQ29sb3IuQkxBQ0ssXG4gICAgICAgICAgfSxcbiAgICAgICAgICBncmlkOiB7XG4gICAgICAgICAgICBjb2xvcjogY29udGV4dCA9PiB7XG4gICAgICAgICAgICAgIGlmIChjb250ZXh0LnRpY2sudmFsdWUgPT09IDEwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBDb2xvci5CTEFDSztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gQ29sb3IuR1JBWVNDQUxFXzMwO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBvaW50TGFiZWxzOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgICAgZmFtaWx5OiAnQXJpYWwnLFxuICAgICAgICAgICAgICBzaXplOiAxNCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN1Z2dlc3RlZE1pbjogMCxcbiAgICAgICAgICBzdWdnZXN0ZWRNYXg6IDEwMCxcbiAgICAgICAgICB0aWNrczoge1xuICAgICAgICAgICAgc3RlcFNpemU6IHRoaXMuc3RlcFNpemUsXG4gICAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hhcnQ/LmNoYXJ0ICYmICF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMubG9nQ29ybmVyQ29vcmRpbmF0ZXModGhpcy5jaGFydC5jaGFydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2dDb3JuZXJDb29yZGluYXRlcyhjaGFydDogQ2hhcnQpIHtcbiAgICBjb25zdCBzY2FsZSA9IGNoYXJ0LnNjYWxlc1snciddIGFzIGFueTtcbiAgICBjb25zdCBjYW52YXNXaWR0aCA9IHRoaXMuc2l6ZSA9PT0gJ2xhcmdlJyA/IExhcmdlU3BpZGVyQ2hhcnRTaXplIDogU21hbGxTcGlkZXJDaGFydFNpemU7XG4gICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gdGhpcy5zaXplID09PSAnbGFyZ2UnID8gTGFyZ2VTcGlkZXJDaGFydFNpemUgOiBTbWFsbFNwaWRlckNoYXJ0U2l6ZTtcblxuICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgbGFiZWxzIGFuZCBjYWxjdWxhdGUgdGhlIHBlcmNlbnRhZ2UgY29vcmRpbmF0ZXNcbiAgICB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMuZm9yRWFjaCgobGFiZWwsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHNjYWxlLmdldFBvaW50UG9zaXRpb25Gb3JWYWx1ZShpbmRleCwgc2NhbGUubWF4KTtcblxuICAgICAgLy8gQ2FsY3VsYXRlIHBlcmNlbnRhZ2UgdmFsdWVzIHJlbGF0aXZlIHRvIHRoZSBjYW52YXMgc2l6ZVxuICAgICAgY29uc3QgeFBlcmNlbnQgPSAocG9zaXRpb24ueCAvIGNhbnZhc1dpZHRoKSAqIDEwMDtcbiAgICAgIGNvbnN0IHlQZXJjZW50ID0gKChjYW52YXNIZWlnaHQgLSBwb3NpdGlvbi55KSAvIGNhbnZhc0hlaWdodCkgKiAxMDA7IC8vIEludmVydGluZyB0aGUgWS1heGlzXG5cbiAgICAgIHRoaXMubGFiZWxQb3NpdGlvbnNbbGFiZWxdID0geyB4OiBOdW1iZXIoeFBlcmNlbnQudG9GaXhlZCgyKSksIHk6IE51bWJlcih5UGVyY2VudC50b0ZpeGVkKDIpKSB9O1xuICAgIH0pO1xuICAgIHRoaXMubGFiZWxQb3NpdGlvbnNWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIGdldENlbnRlcmVkTGFiZWxCb3R0b21Qb3NpdGlvbihsYWJlbDogc3RyaW5nLCBoZWlnaHQ6IG51bWJlcikge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5sYWJlbFBvc2l0aW9uc1tsYWJlbF07XG4gICAgY29uc3QgcGFkZGluZyA9IDc7XG4gICAgaWYgKHBvc2l0aW9uLnggPiA1MCB8fCBwb3NpdGlvbi54IDwgNTApIHtcbiAgICAgIHJldHVybiBgY2FsYygke3Bvc2l0aW9uLnl9JSAtICR7aGVpZ2h0IC8gMn1weClgO1xuICAgIH0gZWxzZSBpZiAocG9zaXRpb24ueSA8IDUwKSB7XG4gICAgICByZXR1cm4gYGNhbGMoJHtwb3NpdGlvbi55fSUgLSAke2hlaWdodH1weCAtICR7cGFkZGluZ31weClgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYGNhbGMoJHtwb3NpdGlvbi55fSUgKyAke3BhZGRpbmd9cHgpYDtcbiAgICB9XG4gIH1cblxuICBnZXRDZW50ZXJlZExhYmVsTGVmdFBvc2l0aW9uKGxhYmVsOiBzdHJpbmcsIHdpZHRoOiBudW1iZXIpIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMubGFiZWxQb3NpdGlvbnNbbGFiZWxdO1xuICAgIGNvbnN0IHBhZGRpbmcgPSAxNTtcbiAgICBpZiAocG9zaXRpb24ueCA9PT0gNTApIHtcbiAgICAgIHJldHVybiBgY2FsYygke3Bvc2l0aW9uLnh9JSAtICR7d2lkdGggLyAyfXB4KWA7XG4gICAgfSBlbHNlIGlmIChwb3NpdGlvbi54IDwgNTApIHtcbiAgICAgIHJldHVybiBgY2FsYygke3Bvc2l0aW9uLnh9JSAtICR7d2lkdGh9cHggLSAke3BhZGRpbmd9cHgpYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBjYWxjKCR7cG9zaXRpb24ueH0lICsgJHtwYWRkaW5nfXB4KWA7XG4gICAgfVxuICB9XG5cbiAgb25MYWJlbEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5mb2N1c05leHRMYWJlbChpbmRleCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLmZvY3VzUHJldmlvdXNMYWJlbChpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c05leHRMYWJlbChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gaW5kZXggKyAxO1xuICAgIGlmIChuZXh0SW5kZXggPCB0aGlzLmxhYmVsQ29udGFpbmVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGFiZWxDb250YWluZXJzLmdldChuZXh0SW5kZXgpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGFiZWxDb250YWluZXJzLmZpcnN0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMuZm9jdXNlZExhYmVsSW5kZXggPSBuZXh0SW5kZXg7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzUHJldmlvdXNMYWJlbChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGluZGV4IC0gMTtcbiAgICBpZiAocHJldmlvdXNJbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLmxhYmVsQ29udGFpbmVycy5nZXQocHJldmlvdXNJbmRleCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sYWJlbENvbnRhaW5lcnMubGFzdD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLmZvY3VzZWRMYWJlbEluZGV4ID0gcHJldmlvdXNJbmRleDtcbiAgfVxuXG4gIG9uTGVnZW5kSXRlbUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLnRvZ2dsZURhdGFzZXRWaXNpYmlsaXR5KGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuZm9jdXNOZXh0TGVnZW5kSXRlbShpbmRleCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLmZvY3VzUHJldmlvdXNMZWdlbmRJdGVtKGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dExlZ2VuZEl0ZW0oaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ICsgMTtcbiAgICBpZiAobmV4dEluZGV4IDwgdGhpcy5sZWdlbmRJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGVnZW5kSXRlbXMuZ2V0KG5leHRJbmRleCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sZWdlbmRJdGVtcy5maXJzdD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNQcmV2aW91c0xlZ2VuZEl0ZW0oaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBpbmRleCAtIDE7XG4gICAgaWYgKHByZXZpb3VzSW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5sZWdlbmRJdGVtcy5nZXQocHJldmlvdXNJbmRleCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sZWdlbmRJdGVtcy5sYXN0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb25GYWtlRGF0YVBvaW50c0tleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIsIGlzU2Vjb25kYXJ5OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5mb2N1c05leHRGYWtlRGF0YVBvaW50KGluZGV4LCBpc1NlY29uZGFyeSk7XG4gICAgICB0aGlzLnNob3dUb29sdGlwRm9yRGF0YVBvaW50KGluZGV4ICsgMSA+IHRoaXMuc3BpZGVyQ2hhcnREYXRhLmxhYmVscy5sZW5ndGggPyAwIDogaW5kZXggKyAxLCBpc1NlY29uZGFyeSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLmZvY3VzUHJldmlvdXNGYWtlRGF0YVBvaW50KGluZGV4LCBpc1NlY29uZGFyeSk7XG4gICAgICB0aGlzLnNob3dUb29sdGlwRm9yRGF0YVBvaW50KGluZGV4IC0gMSA8IDAgPyB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoIC0gMSA6IGluZGV4IC0gMSwgaXNTZWNvbmRhcnkpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgdGhpcy5yZXNldEFjdGl2ZUVsZW1lbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dEZha2VEYXRhUG9pbnQoaW5kZXg6IG51bWJlciwgaXNTZWNvbmRhcnk6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ICsgMTtcbiAgICBpZiAobmV4dEluZGV4IDwgdGhpcy5mYWtlRGF0YVBvaW50cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGZha2VEYXRhUG9pbnRzID0gaXNTZWNvbmRhcnkgPyB0aGlzLmZha2VEYXRhUG9pbnRzU2Vjb25kYXJ5IDogdGhpcy5mYWtlRGF0YVBvaW50cztcbiAgICAgIGZha2VEYXRhUG9pbnRzLmdldChuZXh0SW5kZXgpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZha2VEYXRhUG9pbnRzID0gaXNTZWNvbmRhcnkgPyB0aGlzLmZha2VEYXRhUG9pbnRzU2Vjb25kYXJ5IDogdGhpcy5mYWtlRGF0YVBvaW50cztcbiAgICAgIGZha2VEYXRhUG9pbnRzLmZpcnN0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIGlmICghaXNTZWNvbmRhcnkpIHtcbiAgICAgIHRoaXMuZm9jdXNlZEZha2VEYXRhUG9pbnRJbmRleCA9IG5leHRJbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzUHJldmlvdXNGYWtlRGF0YVBvaW50KGluZGV4OiBudW1iZXIsIGlzU2Vjb25kYXJ5OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gaW5kZXggLSAxO1xuICAgIGlmIChwcmV2aW91c0luZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IGZha2VEYXRhUG9pbnRzID0gaXNTZWNvbmRhcnkgPyB0aGlzLmZha2VEYXRhUG9pbnRzU2Vjb25kYXJ5IDogdGhpcy5mYWtlRGF0YVBvaW50cztcbiAgICAgIGZha2VEYXRhUG9pbnRzLmdldChwcmV2aW91c0luZGV4KT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmYWtlRGF0YVBvaW50cyA9IGlzU2Vjb25kYXJ5ID8gdGhpcy5mYWtlRGF0YVBvaW50c1NlY29uZGFyeSA6IHRoaXMuZmFrZURhdGFQb2ludHM7XG4gICAgICBmYWtlRGF0YVBvaW50cy5sYXN0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIGlmICghaXNTZWNvbmRhcnkpIHtcbiAgICAgIHRoaXMuZm9jdXNlZEZha2VEYXRhUG9pbnRJbmRleCA9IHByZXZpb3VzSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgc2hvd1Rvb2x0aXBGb3JEYXRhUG9pbnQoaW5kZXg6IG51bWJlciwgaXNTZWNvbmRhcnk6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IGNoYXJ0SW5zdGFuY2UgPSB0aGlzLmNoYXJ0Py5jaGFydDtcbiAgICBpZiAoIWNoYXJ0SW5zdGFuY2UpIHJldHVybjtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gW3sgZGF0YXNldEluZGV4OiBpc1NlY29uZGFyeSA/IDEgOiAwLCBpbmRleCB9XTtcbiAgICBjb25zdCBtZXRhID0gY2hhcnRJbnN0YW5jZS5nZXREYXRhc2V0TWV0YShpc1NlY29uZGFyeSA/IDEgOiAwKTtcbiAgICBjb25zdCBkYXRhUG9pbnQgPSBtZXRhLmRhdGFbaW5kZXhdO1xuICAgIGNvbnN0IGV2ZW50UG9zaXRpb24gPSB7XG4gICAgICB4OiBkYXRhUG9pbnQueCxcbiAgICAgIHk6IGRhdGFQb2ludC55LFxuICAgIH07XG4gICAgaWYgKCFpc1NlY29uZGFyeSkge1xuICAgICAgdGhpcy5mb2N1c2VkRmFrZURhdGFQb2ludEluZGV4ID0gaW5kZXg7XG4gICAgfVxuXG4gICAgY2hhcnRJbnN0YW5jZS50b29sdGlwPy5zZXRBY3RpdmVFbGVtZW50cyhhY3RpdmVFbGVtZW50LCBldmVudFBvc2l0aW9uKTtcblxuICAgIGNoYXJ0SW5zdGFuY2UudXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0QWN0aXZlRWxlbWVudCgpIHtcbiAgICBjb25zdCBjaGFydEluc3RhbmNlID0gdGhpcy5jaGFydD8uY2hhcnQ7XG4gICAgaWYgKCFjaGFydEluc3RhbmNlKSByZXR1cm47XG5cbiAgICAvLyBDbGVhciB0aGUgYWN0aXZlIGVsZW1lbnRzIHRvIGhpZGUgdGhlIHRvb2x0aXBcbiAgICBjaGFydEluc3RhbmNlLnRvb2x0aXA/LnNldEFjdGl2ZUVsZW1lbnRzKFtdLCB7IHg6IDAsIHk6IDAgfSk7XG5cbiAgICBjaGFydEluc3RhbmNlLnVwZGF0ZSgpO1xuICB9XG5cbiAgdG9nZ2xlRGF0YXNldFZpc2liaWxpdHkoZGF0YXNldEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBjaGFydEluc3RhbmNlID0gdGhpcy5jaGFydD8uY2hhcnQ7XG4gICAgaWYgKCFjaGFydEluc3RhbmNlKSByZXR1cm47XG5cbiAgICBjb25zdCBkYXRhc2V0ID0gY2hhcnRJbnN0YW5jZS5kYXRhLmRhdGFzZXRzW2RhdGFzZXRJbmRleF07XG4gICAgZGF0YXNldC5oaWRkZW4gPSAhZGF0YXNldC5oaWRkZW47XG4gICAgY2hhcnRJbnN0YW5jZS51cGRhdGUoKTtcbiAgfVxuXG4gIGlzRGF0YXNldFZpc2libGUoZGF0YXNldEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBjaGFydEluc3RhbmNlID0gdGhpcy5jaGFydD8uY2hhcnQ7XG4gICAgaWYgKCFjaGFydEluc3RhbmNlKSByZXR1cm47XG4gICAgcmV0dXJuICFjaGFydEluc3RhbmNlLmRhdGEuZGF0YXNldHNbZGF0YXNldEluZGV4XS5oaWRkZW47XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiPlxuICA8ZGl2IGNsYXNzPVwic3BhY2luZy1jb250YWluZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsnc21hbGwtc3BhY2luZyc6IHJhZGFyQ2hhcnREYXRhLmxhYmVscyAmJiByYWRhckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoICUgMiA9PT0gMSAmJiAhbG9hZGluZ31cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJzaXplID09PSAnbGFyZ2UnID8gJzI4MHB4JyA6ICcyMDBweCdcIlxuICAgICAgW3N0eWxlLmhlaWdodF09XCJzaXplID09PSAnbGFyZ2UnID8gJzI4MHB4JyA6ICcyMDBweCdcIj5cbiAgICAgIEBpZiAoIWxvYWRpbmcpIHtcbiAgICAgICAgPGNhbnZhc1xuICAgICAgICAgIGJhc2VDaGFydFxuICAgICAgICAgIFtkYXRhXT1cInJhZGFyQ2hhcnREYXRhXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJyYWRhckNoYXJ0T3B0aW9uc1wiXG4gICAgICAgICAgdHlwZT1cInJhZGFyXCJcbiAgICAgICAgICBjbGFzcz1cImNoYXJ0XCJcbiAgICAgICAgPlxuICAgICAgICA8L2NhbnZhcz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8Y2FudmFzXG4gICAgICAgICAgYmFzZUNoYXJ0XG4gICAgICAgICAgW2RhdGFdPVwibG9hZGluZ0NoYXJ0RGF0YVwiXG4gICAgICAgICAgW29wdGlvbnNdPVwibG9hZGluZ0NoYXJ0T3B0aW9uc1wiXG4gICAgICAgICAgdHlwZT1cInJhZGFyXCJcbiAgICAgICAgICBjbGFzcz1cImNoYXJ0XCJcbiAgICAgICAgPlxuICAgICAgICA8L2NhbnZhcz5cbiAgICAgICAgPHVpLXNwaW5uZXI+PC91aS1zcGlubmVyPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGxhYmVsUG9zaXRpb25zVmlzaWJsZSkge1xuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktY29udGFpbmVyXCI+XG4gICAgICAgICAgQGZvciAobGFiZWwgb2Ygc3BpZGVyQ2hhcnREYXRhLmxhYmVsczsgdHJhY2sgbGFiZWwpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1jb250YWluZXJcIiAjbGFiZWxDb250YWluZXJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwibGFiZWwgKyAnOiAnICsgc3BpZGVyQ2hhcnREYXRhLmxhYmVsRGVzY3JpcHRpb25bJGluZGV4XVwiXG4gICAgICAgICAgICAgIFt0YWJpbmRleF09XCIkaW5kZXggPT09IDAgPyAnMCcgOiAnLTEnXCJcbiAgICAgICAgICAgICAgKGtleWRvd24pPVwib25MYWJlbEtleURvd24oJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCArICc6ICcgKyBzcGlkZXJDaGFydERhdGEubGFiZWxEZXNjcmlwdGlvblskaW5kZXhdXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmxlZnRdPVwiZ2V0Q2VudGVyZWRMYWJlbExlZnRQb3NpdGlvbihsYWJlbCwgbGFiZWxDb250YWluZXIub2Zmc2V0V2lkdGgpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJvdHRvbV09XCJnZXRDZW50ZXJlZExhYmVsQm90dG9tUG9zaXRpb24obGFiZWwsIGxhYmVsQ29udGFpbmVyLm9mZnNldEhlaWdodClcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgI2xhYmVsRWxlbWVudCBbc3R5bGUubWF4LXdpZHRoXT1cInNpemUgPT09ICdsYXJnZScgPyAnMTUwcHgnIDogJzEwMHB4J1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnR3by1saW5lc109XCJsYWJlbC5sZW5ndGggPiAyMCAmJiBzaXplID09PSAnbGFyZ2UnICYmIHNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoIDwgOVwiPlxuICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhWzBdLmRhdGFbJGluZGV4XSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYWtlLWRhdGEtcG9pbnRzXCIgI2Zha2VEYXRhUG9pbnRzXG4gICAgICAgICAgICAgIFt0YWJpbmRleF09XCJmb2N1c2VkTGFiZWxJbmRleCA9PT0gJGluZGV4ID8gJzAnIDogJy0xJ1wiXG4gICAgICAgICAgICAgIChmb2N1cyk9XCIkaW5kZXggPT09IGZvY3VzZWRMYWJlbEluZGV4ID8gc2hvd1Rvb2x0aXBGb3JEYXRhUG9pbnQoJGluZGV4KSA6IG51bGxcIlxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkZha2VEYXRhUG9pbnRzS2V5RG93bigkZXZlbnQsICRpbmRleClcIj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIEBpZiAocmFkYXJDaGFydERhdGEuZGF0YXNldHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZha2UtZGF0YS1wb2ludHMtc2Vjb25kYXJ5XCIgI2Zha2VEYXRhUG9pbnRzU2Vjb25kYXJ5XG4gICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImZvY3VzZWRGYWtlRGF0YVBvaW50SW5kZXggPT09ICRpbmRleCA/ICcwJyA6ICctMSdcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCIkaW5kZXggPT09IGZvY3VzZWRGYWtlRGF0YVBvaW50SW5kZXggPyBzaG93VG9vbHRpcEZvckRhdGFQb2ludCgkaW5kZXgsIHRydWUpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25GYWtlRGF0YVBvaW50c0tleURvd24oJGV2ZW50LCAkaW5kZXgsIHRydWUpXCI+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmIChyYWRhckNoYXJ0RGF0YS5kYXRhc2V0cy5sZW5ndGggPiAwKSB7XG4gICAgPGRpdiBjbGFzcz1cImxlZ2VuZC1jb250YWluZXJcIj5cbiAgICAgIEBmb3IgKGRhdGFzZXQgb2YgcmFkYXJDaGFydERhdGEuZGF0YXNldHM7IHRyYWNrIGRhdGFzZXQubGFiZWwpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZC1pdGVtXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGF0YXNldFZpc2liaWxpdHkoJGluZGV4KVwiXG4gICAgICAgICAgW3RhYmluZGV4XT1cIiRpbmRleCA9PT0gMCA/ICcwJyA6ICctMSdcIlxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtcHJlc3NlZF09XCJpc0RhdGFzZXRWaXNpYmxlKCRpbmRleCkgPyBmYWxzZSA6IHRydWVcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXNEYXRhc2V0VmlzaWJsZSgkaW5kZXgpID9cbiAgICAgICAgICAoKHRyYW5zbGF0aW9uQ29udGV4dCArICdEQVRBU0VUX1ZJU0lCTEUnKSB8IHVpVHJhbnNsYXRlIDogeyBkYXRhc2V0OiBkYXRhc2V0LmxhYmVsIH0gfCBhc3luYykgOlxuICAgICAgICAgICgodHJhbnNsYXRpb25Db250ZXh0ICsgJ0RBVEFTRVRfSElEREVOJykgfCB1aVRyYW5zbGF0ZSA6IHsgZGF0YXNldDogZGF0YXNldC5sYWJlbCB9IHwgYXN5bmMpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJvbkxlZ2VuZEl0ZW1LZXlEb3duKCRldmVudCwgJGluZGV4KVwiXG4gICAgICAgICAgI2xlZ2VuZEl0ZW0+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsZWdlbmQtbGluZVwiIFtuZ0NsYXNzXT1cInsnc29saWQtbGluZSc6ICRpbmRleCA9PT0gMCwgJ2Rhc2hlZC1saW5lJzogJGluZGV4ID09PSAxfVwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYWJlbFwiIFtzdHlsZS50ZXh0LWRlY29yYXRpb25dPVwiaXNEYXRhc2V0VmlzaWJsZSgkaW5kZXgpID8gJ25vbmUnIDogJ2xpbmUtdGhyb3VnaCdcIj5cbiAgICAgICAgICAgIHt7IGRhdGFzZXQubGFiZWwgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuIl19
425
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVyLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9zcGlkZXItY2hhcnQvc3BpZGVyLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9zcGlkZXItY2hhcnQvc3BpZGVyLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBR1QsS0FBSyxFQUlMLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFvQyxNQUFNLHNCQUFzQixDQUFDO0FBR3BILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFTaEQsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU1FOzs7O1dBSUc7UUFDTSxTQUFJLEdBQW9CLE9BQU8sQ0FBQztRQVN6Qzs7OztXQUlHO1FBQ00sYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUUvQjs7OztXQUlHO1FBQ00sY0FBUyxHQUFXLHVEQUF1RCxDQUFDO1FBRXJGOzs7O1dBSUc7UUFDTSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRWxDOzs7Ozs7V0FNRztRQUNNLHFCQUFnQixHQUFxQixPQUFPLENBQUM7UUFRdEQsbUJBQWMsR0FBdUI7WUFDbkMsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUM7UUFFRixtQkFBYyxHQUFnRCxFQUFFLENBQUM7UUFDakUsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUM5Qiw4QkFBeUIsR0FB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QUFLLEVBQUUsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUUzQixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFlBQW9CO1FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUMzQixPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNELENBQUM7K0dBMVpVLG9CQUFvQjttR0FBcEIsb0JBQW9CLG9RQTZDcEIsa0JBQWtCLG9aQ3JFL0IsZzBIQXFGQTs7NEZEN0RhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7OEJBVWxCLElBQUk7c0JBQVosS0FBSztnQkFPRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBU0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUV5QixLQUFLO3NCQUFuQyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDRyxlQUFlO3NCQUE5QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDRSxjQUFjO3NCQUE3QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDVyx1QkFBdUI7c0JBQS9ELFlBQVk7dUJBQUMseUJBQXlCO2dCQUNYLFdBQVc7c0JBQXRDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXJnZVNwaWRlckNoYXJ0U2l6ZSwgU21hbGxTcGlkZXJDaGFydFNpemUsIFNwaWRlckNoYXJ0RGF0YSwgU3BpZGVyQ2hhcnRTaXplIH0gZnJvbSAnLi9zcGlkZXItY2hhcnQubW9kZWwnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25UaGVtZSB9IGZyb20gJy4uLy4uL21vZGVscy9hcHBsaWNhdGlvbi10aGVtZS5tb2RlbCc7XG5pbXBvcnQgeyBDaGFydCwgQ2hhcnREYXRhLCBDaGFydE9wdGlvbnMgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJy4vLi4vLi4vbW9kZWxzL2NvbG9ycy5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlQ2hhcnREaXJlY3RpdmUgfSBmcm9tICduZzItY2hhcnRzJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2FsaXphdGlvbi9sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IExhbmd1YWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYWxpemF0aW9uL2xhbmd1YWdlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktc3BpZGVyLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlci1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwaWRlci1jaGFydC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTcGlkZXJDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgc3BpZGVyIGNoYXJ0LlxuICAgKiBAdHlwZSB7U3BpZGVyQ2hhcnRTaXplfVxuICAgKiBAbWVtYmVyb2YgU3BpZGVyQ2hhcnRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNpemU6IFNwaWRlckNoYXJ0U2l6ZSA9ICdsYXJnZSc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIHRvIGJlIHVzZWQgZm9yIHRoZSBzcGlkZXIgY2hhcnQuXG4gICAqIEB0eXBlIHtTcGlkZXJDaGFydERhdGF9XG4gICAqIEBtZW1iZXJvZiBTcGlkZXJDaGFydENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc3BpZGVyQ2hhcnREYXRhOiBTcGlkZXJDaGFydERhdGE7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGVwIHNpemUgZm9yIHRoZSBzcGlkZXIgY2hhcnQuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBtZW1iZXJvZiBTcGlkZXJDaGFydENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc3RlcFNpemU6IG51bWJlciA9IDIwO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJpYSBsYWJlbCBmb3IgdGhlIHNwaWRlciBjaGFydC5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIFNwaWRlckNoYXJ0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyA9ICdSYWRhciBjaGFydC4gUHJlc3MgdGFiIHRvIG5hdmlnYXRlIHRocm91Z2ggdGhlIGNoYXJ0Lic7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNwaWRlciBjaGFydCBpcyBsb2FkaW5nLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIFNwaWRlckNoYXJ0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIERlZmluZXMgdGhlIGFwcGxpY2F0aW9uIHRoZW1lXG4gICAqXG4gICAqIEB0eXBlIHtBcHBsaWNhdGlvblRoZW1lfVxuICAgKiBAbWVtYmVyb2YgU3Bpbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXBwbGljYXRpb25UaGVtZTogQXBwbGljYXRpb25UaGVtZSA9ICdsaWdodCc7XG5cbiAgQFZpZXdDaGlsZChCYXNlQ2hhcnREaXJlY3RpdmUpIGNoYXJ0OiBCYXNlQ2hhcnREaXJlY3RpdmU7XG4gIEBWaWV3Q2hpbGRyZW4oJ2xhYmVsQ29udGFpbmVyJykgbGFiZWxDb250YWluZXJzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIEBWaWV3Q2hpbGRyZW4oJ2Zha2VEYXRhUG9pbnRzJykgZmFrZURhdGFQb2ludHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgQFZpZXdDaGlsZHJlbignZmFrZURhdGFQb2ludHNTZWNvbmRhcnknKSBmYWtlRGF0YVBvaW50c1NlY29uZGFyeTogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBAVmlld0NoaWxkcmVuKCdsZWdlbmRJdGVtJykgbGVnZW5kSXRlbXM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICByYWRhckNoYXJ0RGF0YTogQ2hhcnREYXRhPCdyYWRhcic+ID0ge1xuICAgIGxhYmVsczogW10sXG4gICAgZGF0YXNldHM6IFtdLFxuICB9O1xuICByYWRhckNoYXJ0T3B0aW9uczogQ2hhcnRPcHRpb25zPCdyYWRhcic+O1xuICBsYWJlbFBvc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gfSA9IHt9O1xuICBsYWJlbFBvc2l0aW9uc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZm9jdXNlZExhYmVsSW5kZXg6IG51bWJlciA9IDA7XG4gIGZvY3VzZWRGYWtlRGF0YVBvaW50SW5kZXg6IG51bWJlciA9IDA7XG4gIGxvYWRpbmdDaGFydERhdGE6IENoYXJ0RGF0YTwncmFkYXInPiA9IHtcbiAgICBsYWJlbHM6IFsxLCAyLCAzLCA0LCA1LCA2XSxcbiAgICBkYXRhc2V0czogW10sXG4gIH07XG4gIGxvYWRpbmdDaGFydE9wdGlvbnM6IENoYXJ0T3B0aW9uczwncmFkYXInPiA9IHtcbiAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgIGxheW91dDoge1xuICAgICAgcGFkZGluZzoge1xuICAgICAgICBsZWZ0OiA0MCxcbiAgICAgICAgcmlnaHQ6IDQwLFxuICAgICAgICB0b3A6IDQwLFxuICAgICAgICBib3R0b206IDQwLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHNjYWxlczoge1xuICAgICAgcjoge1xuICAgICAgICBhbmdsZUxpbmVzOiB7XG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICBjb2xvcjogQ29sb3IuR1JBWVNDQUxFXzMwLFxuICAgICAgICB9LFxuICAgICAgICBncmlkOiB7XG4gICAgICAgICAgY29sb3I6ICgpID0+IENvbG9yLkdSQVlTQ0FMRV8zMCxcbiAgICAgICAgfSxcbiAgICAgICAgcG9pbnRMYWJlbHM6IHtcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3VnZ2VzdGVkTWluOiAwLFxuICAgICAgICBzdWdnZXN0ZWRNYXg6IDEwMCxcbiAgICAgICAgdGlja3M6IHtcbiAgICAgICAgICBzdGVwU2l6ZTogdGhpcy5zdGVwU2l6ZSxcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYW5zbGF0aW9uQ29udGV4dCA9ICdDSEFSVFMuU1BJREVSLic7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMuaGFuZGxlSW5wdXRFcnJvcnMoKTtcbiAgICAgIHRoaXMuc2V0Q2hhcnREYXRhKCk7XG4gICAgICB0aGlzLnNldENoYXJ0T3B0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRFcnJvcnMoKSB7XG4gICAgaWYgKCF0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMgfHwgdGhpcy5zcGlkZXJDaGFydERhdGEubGFiZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgXCJsYWJlbHNcIiBpbnB1dCBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIGVtcHR5LicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc3BpZGVyQ2hhcnREYXRhLmxhYmVsRGVzY3JpcHRpb24gfHwgdGhpcy5zcGlkZXJDaGFydERhdGEubGFiZWxEZXNjcmlwdGlvbi5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIFwibGFiZWxEZXNjcmlwdGlvblwiIGlucHV0IGlzIHJlcXVpcmVkIGFuZCBjYW5ub3QgYmUgZW1wdHkuJyk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLmxhYmVsRGVzY3JpcHRpb24gJiZcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLmxhYmVsRGVzY3JpcHRpb24ubGVuZ3RoICE9PSB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBcImxhYmVsRGVzY3JpcHRpb25cIiBpbnB1dCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIFwibGFiZWxzXCIuJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMF0uZGF0YWJhc2VMYWJlbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgXCJwbG90RGF0YS5kYXRhYmFzZUxhYmVsXCIgaW5wdXQgaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMF0uZGF0YSB8fCB0aGlzLnNwaWRlckNoYXJ0RGF0YS5wbG90RGF0YVswXS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgXCJwbG90RGF0YS5kYXRhXCIgaW5wdXQgaXMgcmVxdWlyZWQgYW5kIGNhbm5vdCBiZSBlbXB0eS4nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhWzBdLmRhdGEubGVuZ3RoICE9PSB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBcInBsb3REYXRhLmRhdGFcIiBpbnB1dCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIFwibGFiZWxzXCIuJyk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhLmxlbmd0aCA9PT0gMiAmJlxuICAgICAgdGhpcy5zcGlkZXJDaGFydERhdGEubGFiZWxzLmxlbmd0aCA+IDAgJiZcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhWzFdLmRhdGEgJiZcbiAgICAgIHRoaXMuc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhWzFdLmRhdGEubGVuZ3RoICE9PSB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBcInBsb3REYXRhLmRhdGFcIiBpbnB1dCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIFwibGFiZWxzXCIuJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDaGFydERhdGEoKSB7XG4gICAgY29uc3QgZGF0YXNldHMgPSBbXTtcbiAgICBkYXRhc2V0cy5wdXNoKHtcbiAgICAgIGxhYmVsOiB0aGlzLnNwaWRlckNoYXJ0RGF0YS5wbG90RGF0YVswXS5kYXRhYmFzZUxhYmVsLFxuICAgICAgZGF0YTogdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMF0uZGF0YSxcbiAgICAgIGZpbGw6IHRydWUsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDIxMiwgMTYsIDE3MCwgMC4yKScsXG4gICAgICBib3JkZXJDb2xvcjogQ29sb3IuQlJBTkRfNTAsXG4gICAgICBwb2ludEJhY2tncm91bmRDb2xvcjogQ29sb3IuQlJBTkRfNTAsXG4gICAgICBwb2ludEJvcmRlckNvbG9yOiBDb2xvci5UR09fV0hJVEUsXG4gICAgICBwb2ludEhvdmVyQmFja2dyb3VuZENvbG9yOiBDb2xvci5UR09fV0hJVEUsXG4gICAgICBwb2ludEhvdmVyQm9yZGVyQ29sb3I6IENvbG9yLkJSQU5EXzUwLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLnNwaWRlckNoYXJ0RGF0YS5wbG90RGF0YS5sZW5ndGggPT09IDIpIHtcbiAgICAgIGRhdGFzZXRzLnB1c2goe1xuICAgICAgICBsYWJlbDogdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMV0uZGF0YWJhc2VMYWJlbCxcbiAgICAgICAgZGF0YTogdGhpcy5zcGlkZXJDaGFydERhdGEucGxvdERhdGFbMV0uZGF0YSxcbiAgICAgICAgZmlsbDogZmFsc2UsXG4gICAgICAgIGJvcmRlckNvbG9yOiBDb2xvci5CTEFDSyxcbiAgICAgICAgYm9yZGVyRGFzaDogWzUsIDVdLFxuICAgICAgICBib3JkZXJXaWR0aDogMSxcbiAgICAgICAgcG9pbnRCYWNrZ3JvdW5kQ29sb3I6IENvbG9yLkJMQUNLLFxuICAgICAgICBwb2ludEJvcmRlckNvbG9yOiBDb2xvci5UR09fV0hJVEUsXG4gICAgICAgIHBvaW50SG92ZXJCYWNrZ3JvdW5kQ29sb3I6IENvbG9yLlRHT19XSElURSxcbiAgICAgICAgcG9pbnRIb3ZlckJvcmRlckNvbG9yOiBDb2xvci5CTEFDSyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnJhZGFyQ2hhcnREYXRhID0ge1xuICAgICAgbGFiZWxzOiB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMsXG4gICAgICBkYXRhc2V0czogZGF0YXNldHMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hhcnRPcHRpb25zKCkge1xuICAgIHRoaXMucmFkYXJDaGFydE9wdGlvbnMgPSB7XG4gICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgbGluZToge1xuICAgICAgICAgIGJvcmRlcldpZHRoOiAzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGxheW91dDoge1xuICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgbGVmdDogNDAsXG4gICAgICAgICAgcmlnaHQ6IDQwLFxuICAgICAgICAgIHRvcDogNDAsXG4gICAgICAgICAgYm90dG9tOiA0MCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzY2FsZXM6IHtcbiAgICAgICAgcjoge1xuICAgICAgICAgIGFuZ2xlTGluZXM6IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgICBjb2xvcjogQ29sb3IuQkxBQ0ssXG4gICAgICAgICAgfSxcbiAgICAgICAgICBncmlkOiB7XG4gICAgICAgICAgICBjb2xvcjogY29udGV4dCA9PiB7XG4gICAgICAgICAgICAgIGlmIChjb250ZXh0LnRpY2sudmFsdWUgPT09IDEwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBDb2xvci5CTEFDSztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gQ29sb3IuR1JBWVNDQUxFXzMwO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBvaW50TGFiZWxzOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgICAgZmFtaWx5OiAnQXJpYWwnLFxuICAgICAgICAgICAgICBzaXplOiAxNCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN1Z2dlc3RlZE1pbjogMCxcbiAgICAgICAgICBzdWdnZXN0ZWRNYXg6IDEwMCxcbiAgICAgICAgICB0aWNrczoge1xuICAgICAgICAgICAgc3RlcFNpemU6IHRoaXMuc3RlcFNpemUsXG4gICAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hhcnQ/LmNoYXJ0ICYmICF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMubG9nQ29ybmVyQ29vcmRpbmF0ZXModGhpcy5jaGFydC5jaGFydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2dDb3JuZXJDb29yZGluYXRlcyhjaGFydDogQ2hhcnQpIHtcbiAgICBjb25zdCBzY2FsZSA9IGNoYXJ0LnNjYWxlc1snciddIGFzIGFueTtcbiAgICBjb25zdCBjYW52YXNXaWR0aCA9IHRoaXMuc2l6ZSA9PT0gJ2xhcmdlJyA/IExhcmdlU3BpZGVyQ2hhcnRTaXplIDogU21hbGxTcGlkZXJDaGFydFNpemU7XG4gICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gdGhpcy5zaXplID09PSAnbGFyZ2UnID8gTGFyZ2VTcGlkZXJDaGFydFNpemUgOiBTbWFsbFNwaWRlckNoYXJ0U2l6ZTtcblxuICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgbGFiZWxzIGFuZCBjYWxjdWxhdGUgdGhlIHBlcmNlbnRhZ2UgY29vcmRpbmF0ZXNcbiAgICB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMuZm9yRWFjaCgobGFiZWwsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHNjYWxlLmdldFBvaW50UG9zaXRpb25Gb3JWYWx1ZShpbmRleCwgc2NhbGUubWF4KTtcblxuICAgICAgLy8gQ2FsY3VsYXRlIHBlcmNlbnRhZ2UgdmFsdWVzIHJlbGF0aXZlIHRvIHRoZSBjYW52YXMgc2l6ZVxuICAgICAgY29uc3QgeFBlcmNlbnQgPSAocG9zaXRpb24ueCAvIGNhbnZhc1dpZHRoKSAqIDEwMDtcbiAgICAgIGNvbnN0IHlQZXJjZW50ID0gKChjYW52YXNIZWlnaHQgLSBwb3NpdGlvbi55KSAvIGNhbnZhc0hlaWdodCkgKiAxMDA7IC8vIEludmVydGluZyB0aGUgWS1heGlzXG5cbiAgICAgIHRoaXMubGFiZWxQb3NpdGlvbnNbbGFiZWxdID0geyB4OiBOdW1iZXIoeFBlcmNlbnQudG9GaXhlZCgyKSksIHk6IE51bWJlcih5UGVyY2VudC50b0ZpeGVkKDIpKSB9O1xuICAgIH0pO1xuICAgIHRoaXMubGFiZWxQb3NpdGlvbnNWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIGdldENlbnRlcmVkTGFiZWxCb3R0b21Qb3NpdGlvbihsYWJlbDogc3RyaW5nLCBoZWlnaHQ6IG51bWJlcikge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5sYWJlbFBvc2l0aW9uc1tsYWJlbF07XG4gICAgY29uc3QgcGFkZGluZyA9IDc7XG4gICAgaWYgKHBvc2l0aW9uLnggPiA1MCB8fCBwb3NpdGlvbi54IDwgNTApIHtcbiAgICAgIHJldHVybiBgY2FsYygke3Bvc2l0aW9uLnl9JSAtICR7aGVpZ2h0IC8gMn1weClgO1xuICAgIH0gZWxzZSBpZiAocG9zaXRpb24ueSA8IDUwKSB7XG4gICAgICByZXR1cm4gYGNhbGMoJHtwb3NpdGlvbi55fSUgLSAke2hlaWdodH1weCAtICR7cGFkZGluZ31weClgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYGNhbGMoJHtwb3NpdGlvbi55fSUgKyAke3BhZGRpbmd9cHgpYDtcbiAgICB9XG4gIH1cblxuICBnZXRDZW50ZXJlZExhYmVsTGVmdFBvc2l0aW9uKGxhYmVsOiBzdHJpbmcsIHdpZHRoOiBudW1iZXIpIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMubGFiZWxQb3NpdGlvbnNbbGFiZWxdO1xuICAgIGNvbnN0IHBhZGRpbmcgPSAxNTtcbiAgICBpZiAocG9zaXRpb24ueCA9PT0gNTApIHtcbiAgICAgIHJldHVybiBgY2FsYygke3Bvc2l0aW9uLnh9JSAtICR7d2lkdGggLyAyfXB4KWA7XG4gICAgfSBlbHNlIGlmIChwb3NpdGlvbi54IDwgNTApIHtcbiAgICAgIHJldHVybiBgY2FsYygke3Bvc2l0aW9uLnh9JSAtICR7d2lkdGh9cHggLSAke3BhZGRpbmd9cHgpYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBjYWxjKCR7cG9zaXRpb24ueH0lICsgJHtwYWRkaW5nfXB4KWA7XG4gICAgfVxuICB9XG5cbiAgb25MYWJlbEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5mb2N1c05leHRMYWJlbChpbmRleCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLmZvY3VzUHJldmlvdXNMYWJlbChpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c05leHRMYWJlbChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gaW5kZXggKyAxO1xuICAgIGlmIChuZXh0SW5kZXggPCB0aGlzLmxhYmVsQ29udGFpbmVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGFiZWxDb250YWluZXJzLmdldChuZXh0SW5kZXgpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGFiZWxDb250YWluZXJzLmZpcnN0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMuZm9jdXNlZExhYmVsSW5kZXggPSBuZXh0SW5kZXg7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzUHJldmlvdXNMYWJlbChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGluZGV4IC0gMTtcbiAgICBpZiAocHJldmlvdXNJbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLmxhYmVsQ29udGFpbmVycy5nZXQocHJldmlvdXNJbmRleCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sYWJlbENvbnRhaW5lcnMubGFzdD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLmZvY3VzZWRMYWJlbEluZGV4ID0gcHJldmlvdXNJbmRleDtcbiAgfVxuXG4gIG9uTGVnZW5kSXRlbUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLnRvZ2dsZURhdGFzZXRWaXNpYmlsaXR5KGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuZm9jdXNOZXh0TGVnZW5kSXRlbShpbmRleCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLmZvY3VzUHJldmlvdXNMZWdlbmRJdGVtKGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dExlZ2VuZEl0ZW0oaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ICsgMTtcbiAgICBpZiAobmV4dEluZGV4IDwgdGhpcy5sZWdlbmRJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGVnZW5kSXRlbXMuZ2V0KG5leHRJbmRleCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sZWdlbmRJdGVtcy5maXJzdD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNQcmV2aW91c0xlZ2VuZEl0ZW0oaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBpbmRleCAtIDE7XG4gICAgaWYgKHByZXZpb3VzSW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5sZWdlbmRJdGVtcy5nZXQocHJldmlvdXNJbmRleCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sZWdlbmRJdGVtcy5sYXN0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb25GYWtlRGF0YVBvaW50c0tleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIsIGlzU2Vjb25kYXJ5OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5mb2N1c05leHRGYWtlRGF0YVBvaW50KGluZGV4LCBpc1NlY29uZGFyeSk7XG4gICAgICB0aGlzLnNob3dUb29sdGlwRm9yRGF0YVBvaW50KGluZGV4ICsgMSA+IHRoaXMuc3BpZGVyQ2hhcnREYXRhLmxhYmVscy5sZW5ndGggPyAwIDogaW5kZXggKyAxLCBpc1NlY29uZGFyeSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLmZvY3VzUHJldmlvdXNGYWtlRGF0YVBvaW50KGluZGV4LCBpc1NlY29uZGFyeSk7XG4gICAgICB0aGlzLnNob3dUb29sdGlwRm9yRGF0YVBvaW50KGluZGV4IC0gMSA8IDAgPyB0aGlzLnNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoIC0gMSA6IGluZGV4IC0gMSwgaXNTZWNvbmRhcnkpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgdGhpcy5yZXNldEFjdGl2ZUVsZW1lbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dEZha2VEYXRhUG9pbnQoaW5kZXg6IG51bWJlciwgaXNTZWNvbmRhcnk6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ICsgMTtcbiAgICBpZiAobmV4dEluZGV4IDwgdGhpcy5mYWtlRGF0YVBvaW50cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGZha2VEYXRhUG9pbnRzID0gaXNTZWNvbmRhcnkgPyB0aGlzLmZha2VEYXRhUG9pbnRzU2Vjb25kYXJ5IDogdGhpcy5mYWtlRGF0YVBvaW50cztcbiAgICAgIGZha2VEYXRhUG9pbnRzLmdldChuZXh0SW5kZXgpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZha2VEYXRhUG9pbnRzID0gaXNTZWNvbmRhcnkgPyB0aGlzLmZha2VEYXRhUG9pbnRzU2Vjb25kYXJ5IDogdGhpcy5mYWtlRGF0YVBvaW50cztcbiAgICAgIGZha2VEYXRhUG9pbnRzLmZpcnN0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIGlmICghaXNTZWNvbmRhcnkpIHtcbiAgICAgIHRoaXMuZm9jdXNlZEZha2VEYXRhUG9pbnRJbmRleCA9IG5leHRJbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzUHJldmlvdXNGYWtlRGF0YVBvaW50KGluZGV4OiBudW1iZXIsIGlzU2Vjb25kYXJ5OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gaW5kZXggLSAxO1xuICAgIGlmIChwcmV2aW91c0luZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IGZha2VEYXRhUG9pbnRzID0gaXNTZWNvbmRhcnkgPyB0aGlzLmZha2VEYXRhUG9pbnRzU2Vjb25kYXJ5IDogdGhpcy5mYWtlRGF0YVBvaW50cztcbiAgICAgIGZha2VEYXRhUG9pbnRzLmdldChwcmV2aW91c0luZGV4KT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmYWtlRGF0YVBvaW50cyA9IGlzU2Vjb25kYXJ5ID8gdGhpcy5mYWtlRGF0YVBvaW50c1NlY29uZGFyeSA6IHRoaXMuZmFrZURhdGFQb2ludHM7XG4gICAgICBmYWtlRGF0YVBvaW50cy5sYXN0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIGlmICghaXNTZWNvbmRhcnkpIHtcbiAgICAgIHRoaXMuZm9jdXNlZEZha2VEYXRhUG9pbnRJbmRleCA9IHByZXZpb3VzSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgc2hvd1Rvb2x0aXBGb3JEYXRhUG9pbnQoaW5kZXg6IG51bWJlciwgaXNTZWNvbmRhcnk6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IGNoYXJ0SW5zdGFuY2UgPSB0aGlzLmNoYXJ0Py5jaGFydDtcbiAgICBpZiAoIWNoYXJ0SW5zdGFuY2UpIHJldHVybjtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gW3sgZGF0YXNldEluZGV4OiBpc1NlY29uZGFyeSA/IDEgOiAwLCBpbmRleCB9XTtcbiAgICBjb25zdCBtZXRhID0gY2hhcnRJbnN0YW5jZS5nZXREYXRhc2V0TWV0YShpc1NlY29uZGFyeSA/IDEgOiAwKTtcbiAgICBjb25zdCBkYXRhUG9pbnQgPSBtZXRhLmRhdGFbaW5kZXhdO1xuICAgIGNvbnN0IGV2ZW50UG9zaXRpb24gPSB7XG4gICAgICB4OiBkYXRhUG9pbnQueCxcbiAgICAgIHk6IGRhdGFQb2ludC55LFxuICAgIH07XG4gICAgaWYgKCFpc1NlY29uZGFyeSkge1xuICAgICAgdGhpcy5mb2N1c2VkRmFrZURhdGFQb2ludEluZGV4ID0gaW5kZXg7XG4gICAgfVxuXG4gICAgY2hhcnRJbnN0YW5jZS50b29sdGlwPy5zZXRBY3RpdmVFbGVtZW50cyhhY3RpdmVFbGVtZW50LCBldmVudFBvc2l0aW9uKTtcblxuICAgIGNoYXJ0SW5zdGFuY2UudXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0QWN0aXZlRWxlbWVudCgpIHtcbiAgICBjb25zdCBjaGFydEluc3RhbmNlID0gdGhpcy5jaGFydD8uY2hhcnQ7XG4gICAgaWYgKCFjaGFydEluc3RhbmNlKSByZXR1cm47XG5cbiAgICAvLyBDbGVhciB0aGUgYWN0aXZlIGVsZW1lbnRzIHRvIGhpZGUgdGhlIHRvb2x0aXBcbiAgICBjaGFydEluc3RhbmNlLnRvb2x0aXA/LnNldEFjdGl2ZUVsZW1lbnRzKFtdLCB7IHg6IDAsIHk6IDAgfSk7XG5cbiAgICBjaGFydEluc3RhbmNlLnVwZGF0ZSgpO1xuICB9XG5cbiAgdG9nZ2xlRGF0YXNldFZpc2liaWxpdHkoZGF0YXNldEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBjaGFydEluc3RhbmNlID0gdGhpcy5jaGFydD8uY2hhcnQ7XG4gICAgaWYgKCFjaGFydEluc3RhbmNlKSByZXR1cm47XG5cbiAgICBjb25zdCBkYXRhc2V0ID0gY2hhcnRJbnN0YW5jZS5kYXRhLmRhdGFzZXRzW2RhdGFzZXRJbmRleF07XG4gICAgZGF0YXNldC5oaWRkZW4gPSAhZGF0YXNldC5oaWRkZW47XG4gICAgY2hhcnRJbnN0YW5jZS51cGRhdGUoKTtcbiAgfVxuXG4gIGlzRGF0YXNldFZpc2libGUoZGF0YXNldEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBjaGFydEluc3RhbmNlID0gdGhpcy5jaGFydD8uY2hhcnQ7XG4gICAgaWYgKCFjaGFydEluc3RhbmNlKSByZXR1cm47XG4gICAgcmV0dXJuICFjaGFydEluc3RhbmNlLmRhdGEuZGF0YXNldHNbZGF0YXNldEluZGV4XS5oaWRkZW47XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiPlxuICA8ZGl2IGNsYXNzPVwic3BhY2luZy1jb250YWluZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsnc21hbGwtc3BhY2luZyc6IHJhZGFyQ2hhcnREYXRhLmxhYmVscyAmJiByYWRhckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoICUgMiA9PT0gMSAmJiAhbG9hZGluZ31cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJzaXplID09PSAnbGFyZ2UnID8gJzI4MHB4JyA6ICcyMDBweCdcIlxuICAgICAgW3N0eWxlLmhlaWdodF09XCJzaXplID09PSAnbGFyZ2UnID8gJzI4MHB4JyA6ICcyMDBweCdcIj5cbiAgICAgIEBpZiAoIWxvYWRpbmcpIHtcbiAgICAgICAgPGNhbnZhc1xuICAgICAgICAgIGJhc2VDaGFydFxuICAgICAgICAgIFtkYXRhXT1cInJhZGFyQ2hhcnREYXRhXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJyYWRhckNoYXJ0T3B0aW9uc1wiXG4gICAgICAgICAgdHlwZT1cInJhZGFyXCJcbiAgICAgICAgICBjbGFzcz1cImNoYXJ0XCJcbiAgICAgICAgPlxuICAgICAgICA8L2NhbnZhcz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8Y2FudmFzXG4gICAgICAgICAgYmFzZUNoYXJ0XG4gICAgICAgICAgW2RhdGFdPVwibG9hZGluZ0NoYXJ0RGF0YVwiXG4gICAgICAgICAgW29wdGlvbnNdPVwibG9hZGluZ0NoYXJ0T3B0aW9uc1wiXG4gICAgICAgICAgdHlwZT1cInJhZGFyXCJcbiAgICAgICAgICBjbGFzcz1cImNoYXJ0XCJcbiAgICAgICAgPlxuICAgICAgICA8L2NhbnZhcz5cbiAgICAgICAgPHVpLXNwaW5uZXI+PC91aS1zcGlubmVyPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGxhYmVsUG9zaXRpb25zVmlzaWJsZSkge1xuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktY29udGFpbmVyXCI+XG4gICAgICAgICAgQGZvciAobGFiZWwgb2Ygc3BpZGVyQ2hhcnREYXRhLmxhYmVsczsgdHJhY2sgbGFiZWwpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1jb250YWluZXJcIiAjbGFiZWxDb250YWluZXJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwibGFiZWwgKyAnOiAnICsgc3BpZGVyQ2hhcnREYXRhLmxhYmVsRGVzY3JpcHRpb25bJGluZGV4XVwiXG4gICAgICAgICAgICAgIFt0YWJpbmRleF09XCIkaW5kZXggPT09IDAgPyAnMCcgOiAnLTEnXCJcbiAgICAgICAgICAgICAgKGtleWRvd24pPVwib25MYWJlbEtleURvd24oJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCArICc6ICcgKyBzcGlkZXJDaGFydERhdGEubGFiZWxEZXNjcmlwdGlvblskaW5kZXhdXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmxlZnRdPVwiZ2V0Q2VudGVyZWRMYWJlbExlZnRQb3NpdGlvbihsYWJlbCwgbGFiZWxDb250YWluZXIub2Zmc2V0V2lkdGgpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJvdHRvbV09XCJnZXRDZW50ZXJlZExhYmVsQm90dG9tUG9zaXRpb24obGFiZWwsIGxhYmVsQ29udGFpbmVyLm9mZnNldEhlaWdodClcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgI2xhYmVsRWxlbWVudCBbc3R5bGUubWF4LXdpZHRoXT1cInNpemUgPT09ICdsYXJnZScgPyAnMTUwcHgnIDogJzEwMHB4J1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnR3by1saW5lc109XCJsYWJlbC5sZW5ndGggPiAyMCAmJiBzaXplID09PSAnbGFyZ2UnICYmIHNwaWRlckNoYXJ0RGF0YS5sYWJlbHMubGVuZ3RoIDwgOVwiPlxuICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgc3BpZGVyQ2hhcnREYXRhLnBsb3REYXRhWzBdLmRhdGFbJGluZGV4XSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYWtlLWRhdGEtcG9pbnRzXCIgI2Zha2VEYXRhUG9pbnRzXG4gICAgICAgICAgICAgIFt0YWJpbmRleF09XCJmb2N1c2VkTGFiZWxJbmRleCA9PT0gJGluZGV4ID8gJzAnIDogJy0xJ1wiXG4gICAgICAgICAgICAgIChmb2N1cyk9XCIkaW5kZXggPT09IGZvY3VzZWRMYWJlbEluZGV4ID8gc2hvd1Rvb2x0aXBGb3JEYXRhUG9pbnQoJGluZGV4KSA6IG51bGxcIlxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkZha2VEYXRhUG9pbnRzS2V5RG93bigkZXZlbnQsICRpbmRleClcIj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIEBpZiAocmFkYXJDaGFydERhdGEuZGF0YXNldHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZha2UtZGF0YS1wb2ludHMtc2Vjb25kYXJ5XCIgI2Zha2VEYXRhUG9pbnRzU2Vjb25kYXJ5XG4gICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImZvY3VzZWRGYWtlRGF0YVBvaW50SW5kZXggPT09ICRpbmRleCA/ICcwJyA6ICctMSdcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCIkaW5kZXggPT09IGZvY3VzZWRGYWtlRGF0YVBvaW50SW5kZXggPyBzaG93VG9vbHRpcEZvckRhdGFQb2ludCgkaW5kZXgsIHRydWUpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25GYWtlRGF0YVBvaW50c0tleURvd24oJGV2ZW50LCAkaW5kZXgsIHRydWUpXCI+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmIChyYWRhckNoYXJ0RGF0YS5kYXRhc2V0cy5sZW5ndGggPiAwKSB7XG4gICAgPGRpdiBjbGFzcz1cImxlZ2VuZC1jb250YWluZXJcIj5cbiAgICAgIEBmb3IgKGRhdGFzZXQgb2YgcmFkYXJDaGFydERhdGEuZGF0YXNldHM7IHRyYWNrIGRhdGFzZXQubGFiZWwpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZC1pdGVtXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGF0YXNldFZpc2liaWxpdHkoJGluZGV4KVwiXG4gICAgICAgICAgW3RhYmluZGV4XT1cIiRpbmRleCA9PT0gMCA/ICcwJyA6ICctMSdcIlxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtcHJlc3NlZF09XCJpc0RhdGFzZXRWaXNpYmxlKCRpbmRleCkgPyBmYWxzZSA6IHRydWVcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXNEYXRhc2V0VmlzaWJsZSgkaW5kZXgpID9cbiAgICAgICAgICAoKHRyYW5zbGF0aW9uQ29udGV4dCArICdEQVRBU0VUX1ZJU0lCTEUnKSB8IHVpVHJhbnNsYXRlIDogeyBkYXRhc2V0OiBkYXRhc2V0LmxhYmVsIH0gfCBhc3luYykgOlxuICAgICAgICAgICgodHJhbnNsYXRpb25Db250ZXh0ICsgJ0RBVEFTRVRfSElEREVOJykgfCB1aVRyYW5zbGF0ZSA6IHsgZGF0YXNldDogZGF0YXNldC5sYWJlbCB9IHwgYXN5bmMpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJvbkxlZ2VuZEl0ZW1LZXlEb3duKCRldmVudCwgJGluZGV4KVwiXG4gICAgICAgICAgI2xlZ2VuZEl0ZW0+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsZWdlbmQtbGluZVwiIFtuZ0NsYXNzXT1cInsnc29saWQtbGluZSc6ICRpbmRleCA9PT0gMCwgJ2Rhc2hlZC1saW5lJzogJGluZGV4ID09PSAxfVwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYWJlbFwiIFtzdHlsZS50ZXh0LWRlY29yYXRpb25dPVwiaXNEYXRhc2V0VmlzaWJsZSgkaW5kZXgpID8gJ25vbmUnIDogJ2xpbmUtdGhyb3VnaCdcIj5cbiAgICAgICAgICAgIHt7IGRhdGFzZXQubGFiZWwgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuIl19
@@ -9,20 +9,20 @@ import { SpinnerComponentModule } from '../spinner/spinner.module';
9
9
  import * as i0 from "@angular/core";
10
10
  Chart.register(...registerables);
11
11
  export class SpiderChartComponentModule {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpiderChartComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.7", ngImport: i0, type: SpiderChartComponentModule, declarations: [SpiderChartComponent], imports: [NgClass,
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponentModule, declarations: [SpiderChartComponent], imports: [NgClass,
14
14
  UiTranslatePipe,
15
15
  NgChartsModule,
16
16
  MatTooltipModule,
17
17
  UiTranslatePipe,
18
18
  SpinnerComponentModule,
19
19
  CommonModule], exports: [SpiderChartComponent] }); }
20
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpiderChartComponentModule, imports: [NgChartsModule,
20
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponentModule, imports: [NgChartsModule,
21
21
  MatTooltipModule,
22
22
  SpinnerComponentModule,
23
23
  CommonModule] }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpiderChartComponentModule, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponentModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  declarations: [SpiderChartComponent],
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
38
38
  ],
39
39
  }]
40
40
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVyLWNoYXJ0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9zcGlkZXItY2hhcnQvc3BpZGVyLWNoYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRW5FLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQztBQWVqQyxNQUFNLE9BQU8sMEJBQTBCOzhHQUExQiwwQkFBMEI7K0dBQTFCLDBCQUEwQixpQkFadEIsb0JBQW9CLGFBR2pDLE9BQU87WUFDUCxlQUFlO1lBQ2YsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLFlBQVksYUFSSixvQkFBb0I7K0dBV25CLDBCQUEwQixZQVBuQyxjQUFjO1lBQ2QsZ0JBQWdCO1lBRWhCLHNCQUFzQjtZQUN0QixZQUFZOzsyRkFHSCwwQkFBMEI7a0JBYnRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUMvQixPQUFPLEVBQUU7d0JBQ1AsT0FBTzt3QkFDUCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsWUFBWTtxQkFDYjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVaVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91aS10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBTcGlkZXJDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc3BpZGVyLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0NoYXJ0c01vZHVsZSB9IGZyb20gJ25nMi1jaGFydHMnO1xuaW1wb3J0IHsgQ2hhcnQsIHJlZ2lzdGVyYWJsZXMgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL3NwaW5uZXIvc3Bpbm5lci5tb2R1bGUnO1xuXG5DaGFydC5yZWdpc3RlciguLi5yZWdpc3RlcmFibGVzKTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3BpZGVyQ2hhcnRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU3BpZGVyQ2hhcnRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBVaVRyYW5zbGF0ZVBpcGUsXG4gICAgTmdDaGFydHNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBVaVRyYW5zbGF0ZVBpcGUsXG4gICAgU3Bpbm5lckNvbXBvbmVudE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNwaWRlckNoYXJ0Q29tcG9uZW50TW9kdWxlIHt9XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVyLWNoYXJ0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9zcGlkZXItY2hhcnQvc3BpZGVyLWNoYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRW5FLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQztBQWVqQyxNQUFNLE9BQU8sMEJBQTBCOytHQUExQiwwQkFBMEI7Z0hBQTFCLDBCQUEwQixpQkFadEIsb0JBQW9CLGFBR2pDLE9BQU87WUFDUCxlQUFlO1lBQ2YsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLFlBQVksYUFSSixvQkFBb0I7Z0hBV25CLDBCQUEwQixZQVBuQyxjQUFjO1lBQ2QsZ0JBQWdCO1lBRWhCLHNCQUFzQjtZQUN0QixZQUFZOzs0RkFHSCwwQkFBMEI7a0JBYnRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUMvQixPQUFPLEVBQUU7d0JBQ1AsT0FBTzt3QkFDUCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsWUFBWTtxQkFDYjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVaVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91aS10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBTcGlkZXJDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc3BpZGVyLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0NoYXJ0c01vZHVsZSB9IGZyb20gJ25nMi1jaGFydHMnO1xuaW1wb3J0IHsgQ2hhcnQsIHJlZ2lzdGVyYWJsZXMgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL3NwaW5uZXIvc3Bpbm5lci5tb2R1bGUnO1xuXG5DaGFydC5yZWdpc3RlciguLi5yZWdpc3RlcmFibGVzKTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3BpZGVyQ2hhcnRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU3BpZGVyQ2hhcnRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBVaVRyYW5zbGF0ZVBpcGUsXG4gICAgTmdDaGFydHNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBVaVRyYW5zbGF0ZVBpcGUsXG4gICAgU3Bpbm5lckNvbXBvbmVudE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNwaWRlckNoYXJ0Q29tcG9uZW50TW9kdWxlIHt9XG4iXX0=
@@ -42,10 +42,10 @@ export class SpinnerComponent {
42
42
  setSpinnerClasses() {
43
43
  this.classes = `${this.size === 'large' ? 'large' : 'small'} ${this.isLoader ? 'loader' : ''} ${this.applicationTheme}`;
44
44
  }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpinnerComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: SpinnerComponent, selector: "ui-spinner", inputs: { size: "size", isLoader: "isLoader", applicationTheme: "applicationTheme" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"spinner-container\"\n [ngClass]=\"classes\"\n [attr.theme]=\"applicationTheme\"\n [attr.aria-label]=\"'COMMON.LOADING' | uiTranslate | async\"\n role=\"alert\"\n>\n <svg class=\"spinner\" viewBox=\"0 0 50 50\">\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\"></circle>\n </svg>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.spinner-container.large{width:48px;height:48px;stroke-width:8px}.spinner-container.large .spinner{width:48px;height:48px}.spinner-container.small{stroke-width:4px;width:16px;height:16px}.spinner-container.small .spinner{width:16px;height:16px}.spinner-container .spinner{animation:rotate 2s linear infinite;width:48px;height:48px}.spinner-container .spinner .path{stroke:#d410aa;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}.spinner-container.classic .spinner .path{stroke:#276678}.spinner-container.loader{position:fixed;top:50%;left:50%;z-index:999;margin:-25px 0 0 -25px}.spinner-container[theme=dark] .path{stroke:#fff!important}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.UiTranslatePipe, name: "uiTranslate" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpinnerComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpinnerComponent, selector: "ui-spinner", inputs: { size: "size", isLoader: "isLoader", applicationTheme: "applicationTheme" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"spinner-container\"\n [ngClass]=\"classes\"\n [attr.theme]=\"applicationTheme\"\n [attr.aria-label]=\"'COMMON.LOADING' | uiTranslate | async\"\n role=\"alert\"\n>\n <svg class=\"spinner\" viewBox=\"0 0 50 50\">\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\"></circle>\n </svg>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.spinner-container.large{width:48px;height:48px;stroke-width:8px}.spinner-container.large .spinner{width:48px;height:48px}.spinner-container.small{stroke-width:4px;width:16px;height:16px}.spinner-container.small .spinner{width:16px;height:16px}.spinner-container .spinner{animation:rotate 2s linear infinite;width:48px;height:48px}.spinner-container .spinner .path{stroke:#d410aa;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}.spinner-container.classic .spinner .path{stroke:#276678}.spinner-container.loader{position:fixed;top:50%;left:50%;z-index:999;margin:-25px 0 0 -25px}.spinner-container[theme=dark] .path{stroke:#fff!important}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.UiTranslatePipe, name: "uiTranslate" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
47
47
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpinnerComponent, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpinnerComponent, decorators: [{
49
49
  type: Component,
50
50
  args: [{ selector: 'ui-spinner', template: "<div class=\"spinner-container\"\n [ngClass]=\"classes\"\n [attr.theme]=\"applicationTheme\"\n [attr.aria-label]=\"'COMMON.LOADING' | uiTranslate | async\"\n role=\"alert\"\n>\n <svg class=\"spinner\" viewBox=\"0 0 50 50\">\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\"></circle>\n </svg>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.spinner-container.large{width:48px;height:48px;stroke-width:8px}.spinner-container.large .spinner{width:48px;height:48px}.spinner-container.small{stroke-width:4px;width:16px;height:16px}.spinner-container.small .spinner{width:16px;height:16px}.spinner-container .spinner{animation:rotate 2s linear infinite;width:48px;height:48px}.spinner-container .spinner .path{stroke:#d410aa;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}.spinner-container.classic .spinner .path{stroke:#276678}.spinner-container.loader{position:fixed;top:50%;left:50%;z-index:999;margin:-25px 0 0 -25px}.spinner-container[theme=dark] .path{stroke:#fff!important}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}\n"] }]
51
51
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -60,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
60
60
  }], applicationTheme: [{
61
61
  type: Input
62
62
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTdEYsTUFBTSxPQUFPLGdCQUFnQjtJQThCM0IsWUFDNkUsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBOUI5Rzs7Ozs7O1dBTUc7UUFDTSxTQUFJLEdBQWdCLE9BQU8sQ0FBQztRQUVyQzs7Ozs7O1dBTUc7UUFDTSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXpCOzs7Ozs7V0FNRztRQUNNLHFCQUFnQixHQUFxQixPQUFPLENBQUM7UUFPcEQsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUgsQ0FBQzs4R0FoRFUsZ0JBQWdCLGtCQStCTCxvQ0FBb0M7a0dBL0IvQyxnQkFBZ0IsNkpDVDdCLHVWQVVBOzsyRkREYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTs7MEJBbUNuQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG9DQUFvQzt5Q0F2QmpELElBQUk7c0JBQVosS0FBSztnQkFTRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcGlubmVyU2l6ZSB9IGZyb20gJy4vc3Bpbm5lci5tb2RlbCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktc3Bpbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGlubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Bpbm5lci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTcGlubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvKipcbiAgICogVGhlIHNpemUgdmFyaWFudCBvZiB0aGUgc3Bpbm5lci4gQ2FuIGJlICdzbWFsbCcgb3IgJ2xhcmdlJy5cbiAgICogRGVmYXVsdHMgdG8gJ2xhcmdlJy5cbiAgICogQGRlZmF1bHQgJ2xhcmdlJ1xuICAgKiBAdHlwZSB7U3Bpbm5lclNpemV9XG4gICAqIEBtZW1iZXJvZiBTcGlubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzaXplOiBTcGlubmVyU2l6ZSA9ICdsYXJnZSc7XG5cbiAgLyoqXG4gICAqIFNldCBwb3NpdGlvbiBmaXhlZCBvbiBwYWdlXG4gICAqIERlZmF1bHRzIHRvICd0cnVlJy5cbiAgICogQGRlZmF1bHQgJ3RydWUnXG4gICAqIEB0eXBlIHtTcGlubmVyU2l6ZX1cbiAgICogQG1lbWJlcm9mIFNwaW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGlzTG9hZGVyID0gdHJ1ZTtcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBTcGlubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2xpZ2h0JztcblxuICBjbGFzc2VzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdCgnQ0FOT1BZVUlfREVGQVVMVF9BUFBMSUNBVElPTl9USEVNRScpIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEFwcFRoZW1lOiBBcHBsaWNhdGlvblRoZW1lLFxuICApIHtcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSBkZWZhdWx0QXBwVGhlbWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTcGlubmVyQ2xhc3NlcygpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTcGlubmVyQ2xhc3NlcygpO1xuICB9XG5cbiAgc2V0U3Bpbm5lckNsYXNzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jbGFzc2VzID0gYCR7dGhpcy5zaXplID09PSAnbGFyZ2UnID8gJ2xhcmdlJyA6ICdzbWFsbCd9ICR7dGhpcy5pc0xvYWRlciA/ICdsb2FkZXInIDogJyd9ICR7dGhpcy5hcHBsaWNhdGlvblRoZW1lfWA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzcGlubmVyLWNvbnRhaW5lclwiXG4gICAgIFtuZ0NsYXNzXT1cImNsYXNzZXNcIlxuICAgICBbYXR0ci50aGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ09NTU9OLkxPQURJTkcnIHwgdWlUcmFuc2xhdGUgfCBhc3luY1wiXG4gICAgIHJvbGU9XCJhbGVydFwiXG4+XG4gIDxzdmcgY2xhc3M9XCJzcGlubmVyXCIgdmlld0JveD1cIjAgMCA1MCA1MFwiPlxuICAgIDxjaXJjbGUgY2xhc3M9XCJwYXRoXCIgY3g9XCIyNVwiIGN5PVwiMjVcIiByPVwiMjBcIiBmaWxsPVwibm9uZVwiPjwvY2lyY2xlPlxuICA8L3N2Zz5cbjwvZGl2PlxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTdEYsTUFBTSxPQUFPLGdCQUFnQjtJQThCM0IsWUFDNkUsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBOUI5Rzs7Ozs7O1dBTUc7UUFDTSxTQUFJLEdBQWdCLE9BQU8sQ0FBQztRQUVyQzs7Ozs7O1dBTUc7UUFDTSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXpCOzs7Ozs7V0FNRztRQUNNLHFCQUFnQixHQUFxQixPQUFPLENBQUM7UUFPcEQsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUgsQ0FBQzsrR0FoRFUsZ0JBQWdCLGtCQStCTCxvQ0FBb0M7bUdBL0IvQyxnQkFBZ0IsNkpDVDdCLHVWQVVBOzs0RkREYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTs7MEJBbUNuQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG9DQUFvQzt5Q0F2QmpELElBQUk7c0JBQVosS0FBSztnQkFTRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcGlubmVyU2l6ZSB9IGZyb20gJy4vc3Bpbm5lci5tb2RlbCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktc3Bpbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGlubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Bpbm5lci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTcGlubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvKipcbiAgICogVGhlIHNpemUgdmFyaWFudCBvZiB0aGUgc3Bpbm5lci4gQ2FuIGJlICdzbWFsbCcgb3IgJ2xhcmdlJy5cbiAgICogRGVmYXVsdHMgdG8gJ2xhcmdlJy5cbiAgICogQGRlZmF1bHQgJ2xhcmdlJ1xuICAgKiBAdHlwZSB7U3Bpbm5lclNpemV9XG4gICAqIEBtZW1iZXJvZiBTcGlubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzaXplOiBTcGlubmVyU2l6ZSA9ICdsYXJnZSc7XG5cbiAgLyoqXG4gICAqIFNldCBwb3NpdGlvbiBmaXhlZCBvbiBwYWdlXG4gICAqIERlZmF1bHRzIHRvICd0cnVlJy5cbiAgICogQGRlZmF1bHQgJ3RydWUnXG4gICAqIEB0eXBlIHtTcGlubmVyU2l6ZX1cbiAgICogQG1lbWJlcm9mIFNwaW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGlzTG9hZGVyID0gdHJ1ZTtcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBTcGlubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2xpZ2h0JztcblxuICBjbGFzc2VzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdCgnQ0FOT1BZVUlfREVGQVVMVF9BUFBMSUNBVElPTl9USEVNRScpIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEFwcFRoZW1lOiBBcHBsaWNhdGlvblRoZW1lLFxuICApIHtcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSBkZWZhdWx0QXBwVGhlbWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTcGlubmVyQ2xhc3NlcygpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTcGlubmVyQ2xhc3NlcygpO1xuICB9XG5cbiAgc2V0U3Bpbm5lckNsYXNzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jbGFzc2VzID0gYCR7dGhpcy5zaXplID09PSAnbGFyZ2UnID8gJ2xhcmdlJyA6ICdzbWFsbCd9ICR7dGhpcy5pc0xvYWRlciA/ICdsb2FkZXInIDogJyd9ICR7dGhpcy5hcHBsaWNhdGlvblRoZW1lfWA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzcGlubmVyLWNvbnRhaW5lclwiXG4gICAgIFtuZ0NsYXNzXT1cImNsYXNzZXNcIlxuICAgICBbYXR0ci50aGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ09NTU9OLkxPQURJTkcnIHwgdWlUcmFuc2xhdGUgfCBhc3luY1wiXG4gICAgIHJvbGU9XCJhbGVydFwiXG4+XG4gIDxzdmcgY2xhc3M9XCJzcGlubmVyXCIgdmlld0JveD1cIjAgMCA1MCA1MFwiPlxuICAgIDxjaXJjbGUgY2xhc3M9XCJwYXRoXCIgY3g9XCIyNVwiIGN5PVwiMjVcIiByPVwiMjBcIiBmaWxsPVwibm9uZVwiPjwvY2lyY2xlPlxuICA8L3N2Zz5cbjwvZGl2PlxuIl19
@@ -4,11 +4,11 @@ import { AsyncPipe, NgClass, NgIf } from '@angular/common';
4
4
  import { UiTranslatePipe } from "../../pipes/ui-translate.pipe";
5
5
  import * as i0 from "@angular/core";
6
6
  export class SpinnerComponentModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpinnerComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.7", ngImport: i0, type: SpinnerComponentModule, declarations: [SpinnerComponent], imports: [NgClass, NgIf, UiTranslatePipe, AsyncPipe], exports: [SpinnerComponent] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpinnerComponentModule }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpinnerComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SpinnerComponentModule, declarations: [SpinnerComponent], imports: [NgClass, NgIf, UiTranslatePipe, AsyncPipe], exports: [SpinnerComponent] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpinnerComponentModule }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SpinnerComponentModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpinnerComponentModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [SpinnerComponent],
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
16
16
  imports: [NgClass, NgIf, UiTranslatePipe, AsyncPipe],
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPaEUsTUFBTSxPQUFPLHNCQUFzQjs4R0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsaUJBSmxCLGdCQUFnQixhQUVyQixPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLGFBRHpDLGdCQUFnQjsrR0FHZixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBTGxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUM7aUJBQ3JEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVaVRyYW5zbGF0ZVBpcGUgfSBmcm9tIFwiLi4vLi4vcGlwZXMvdWktdHJhbnNsYXRlLnBpcGVcIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3Bpbm5lckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtTcGlubmVyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nSWYsIFVpVHJhbnNsYXRlUGlwZSwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgU3Bpbm5lckNvbXBvbmVudE1vZHVsZSB7fVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPaEUsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsaUJBSmxCLGdCQUFnQixhQUVyQixPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLGFBRHpDLGdCQUFnQjtnSEFHZixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBTGxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUM7aUJBQ3JEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVaVRyYW5zbGF0ZVBpcGUgfSBmcm9tIFwiLi4vLi4vcGlwZXMvdWktdHJhbnNsYXRlLnBpcGVcIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3Bpbm5lckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtTcGlubmVyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nSWYsIFVpVHJhbnNsYXRlUGlwZSwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgU3Bpbm5lckNvbXBvbmVudE1vZHVsZSB7fVxuIl19