@koobiq/components 17.0.3 → 17.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/badge/badge.component.scss +2 -2
  2. package/button/button.scss +2 -6
  3. package/button-toggle/button-toggle.scss +8 -6
  4. package/checkbox/checkbox.scss +9 -18
  5. package/code-block/code-block.scss +1 -4
  6. package/core/pop-up/index.d.ts +1 -0
  7. package/core/pop-up/pop-up-styles.d.ts +2 -0
  8. package/core/pop-up/pop-up.d.ts +5 -0
  9. package/core/styles/_koobiq-theme.scss +0 -2
  10. package/core/styles/common/_groups.scss +2 -2
  11. package/core/styles/common/_select.scss +23 -60
  12. package/core/styles/common/_tokens.scss +52 -0
  13. package/core/styles/theming/_components-theming.scss +10 -24
  14. package/core/styles/theming/_scrollbar-theme.scss +8 -19
  15. package/datepicker/_datepicker-theme.scss +1 -0
  16. package/datepicker/calendar-header.component.d.ts +10 -6
  17. package/datepicker/calendar.scss +2 -3
  18. package/datepicker/datepicker-input.directive.d.ts +10 -0
  19. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  20. package/esm2022/code-block/actionbar.component.mjs +1 -1
  21. package/esm2022/core/pop-up/index.mjs +2 -1
  22. package/esm2022/core/pop-up/pop-up-styles.mjs +26 -0
  23. package/esm2022/core/pop-up/pop-up.mjs +1 -1
  24. package/esm2022/core/version.mjs +2 -2
  25. package/esm2022/datepicker/calendar-header.component.mjs +32 -9
  26. package/esm2022/datepicker/datepicker-input.directive.mjs +101 -21
  27. package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
  28. package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
  29. package/esm2022/navbar/vertical-navbar.component.mjs +8 -4
  30. package/esm2022/popover/popover.component.mjs +4 -1
  31. package/esm2022/radio/radio.component.mjs +2 -2
  32. package/esm2022/tabs/tab-group.component.mjs +1 -1
  33. package/esm2022/toast/toast.component.mjs +7 -6
  34. package/esm2022/toast/toast.module.mjs +5 -1
  35. package/esm2022/toggle/toggle.component.mjs +3 -3
  36. package/esm2022/tooltip/tooltip.component.mjs +42 -10
  37. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  38. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-code-block.mjs +1 -1
  40. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-core.mjs +28 -3
  42. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-datepicker.mjs +131 -28
  44. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-file-upload.mjs +4 -4
  46. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-navbar.mjs +7 -3
  48. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-popover.mjs +3 -0
  50. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-radio.mjs +2 -2
  52. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-tabs.mjs +1 -1
  54. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-toast.mjs +8 -3
  56. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  57. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  58. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  59. package/fesm2022/koobiq-components-tooltip.mjs +41 -9
  60. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  61. package/file-upload/multiple-file-upload.component.scss +16 -33
  62. package/file-upload/single-file-upload.component.scss +8 -6
  63. package/form-field/form-field.scss +8 -14
  64. package/input/input.scss +4 -11
  65. package/navbar/vertical-navbar.component.d.ts +2 -1
  66. package/navbar/vertical-navbar.scss +9 -4
  67. package/package.json +12 -18
  68. package/prebuilt-themes/dark-theme.css +1 -1
  69. package/prebuilt-themes/light-theme.css +1 -1
  70. package/radio/radio.scss +9 -24
  71. package/schematics/ng-add/index.js +4 -4
  72. package/tabs/_tabs-common.scss +6 -14
  73. package/tags/tag-list.scss +2 -15
  74. package/toast/toast.component.scss +12 -1
  75. package/toast/toast.module.d.ts +5 -4
  76. package/toggle/_toggle-theme.scss +5 -2
  77. package/toggle/toggle.scss +2 -16
  78. package/tooltip/_tooltip-theme.scss +12 -0
  79. package/tooltip/tooltip.component.d.ts +12 -3
  80. package/tooltip/tooltip.scss +6 -1
  81. package/tree/tree-option.scss +9 -20
  82. package/card/_card-theme.scss +0 -62
  83. package/card/card.component.d.ts +0 -28
  84. package/card/card.component.scss +0 -37
  85. package/card/card.module.d.ts +0 -10
  86. package/card/index.d.ts +0 -1
  87. package/card/public-api.d.ts +0 -2
  88. package/esm2022/card/card.component.mjs +0 -79
  89. package/esm2022/card/card.module.mjs +0 -28
  90. package/esm2022/card/index.mjs +0 -2
  91. package/esm2022/card/koobiq-components-card.mjs +0 -5
  92. package/esm2022/card/public-api.mjs +0 -3
  93. package/fesm2022/koobiq-components-card.mjs +0 -110
  94. package/fesm2022/koobiq-components-card.mjs.map +0 -1
  95. /package/{card → toggle}/README.md +0 -0
@@ -30,7 +30,7 @@ export class KbqActionBarComponent {
30
30
  });
31
31
  }
32
32
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: { config: "config", codeFiles: "codeFiles", selectedTabIndex: "selectedTabIndex", multiLine: "multiLine", softWrap: "softWrap", canLoad: "canLoad" }, outputs: { toggleSoftWrap: "toggleSoftWrap", downloadCode: "downloadCode", copyCode: "copyCode", openExternalSystem: "openExternalSystem" }, host: { classAttribute: "kbq-code-block-actionbar" }, viewQueries: [{ propertyName: "copyTooltip", first: true, predicate: ["copyTooltip"], descendants: true }], ngImport: i0, template: "<div class=\"kbq-code-block__fade-gradient\"></div>\n\n<div class=\"kbq-actionbar-block__button-stack layout-row\">\n <button\n *ngIf=\"multiLine\"\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\"\n >\n <i\n *ngIf=\"!softWrap\"\n kbq-icon=\"mc-word-wrap_16\"\n ></i>\n <i\n *ngIf=\"softWrap\"\n kbq-icon=\"mc-word-wrap-slash_16\"\n ></i>\n </button>\n\n <button\n *ngIf=\"canLoad\"\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\"\n >\n <i kbq-icon=\"mc-download_16\"></i>\n </button>\n\n <button\n #copyTooltip=\"kbqTooltip\"\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\"\n >\n <i kbq-icon=\"mc-copy-o_16\"></i>\n </button>\n\n <button\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\"\n >\n <i kbq-icon=\"mc-external-link_16\"></i>\n </button>\n</div>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:-48px;right:0;margin:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px)}.kbq-code-block-actionbar .kbq-actionbar-block__button-stack{gap:var(--kbq-code-block-size-actionbar-content-gap-horizontal, 2px)}.kbq-code-block-actionbar .kbq-code-block__fade-gradient{display:none;width:var(--kbq-code-block-size-actionbar-fade-gradient-width, 32px)}.kbq-code-block-actionbar.kbq-actionbar-block_floating{top:0;margin:unset;background:transparent!important}.kbq-code-block-actionbar.kbq-actionbar-block_floating .kbq-code-block__fade-gradient{display:block;align-self:stretch}.kbq-code-block-actionbar.kbq-actionbar-block_floating .kbq-actionbar-block__button-stack{padding:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i3.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["kbqVisible", "kbqPlacement", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipColor"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
33
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: { config: "config", codeFiles: "codeFiles", selectedTabIndex: "selectedTabIndex", multiLine: "multiLine", softWrap: "softWrap", canLoad: "canLoad" }, outputs: { toggleSoftWrap: "toggleSoftWrap", downloadCode: "downloadCode", copyCode: "copyCode", openExternalSystem: "openExternalSystem" }, host: { classAttribute: "kbq-code-block-actionbar" }, viewQueries: [{ propertyName: "copyTooltip", first: true, predicate: ["copyTooltip"], descendants: true }], ngImport: i0, template: "<div class=\"kbq-code-block__fade-gradient\"></div>\n\n<div class=\"kbq-actionbar-block__button-stack layout-row\">\n <button\n *ngIf=\"multiLine\"\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\"\n >\n <i\n *ngIf=\"!softWrap\"\n kbq-icon=\"mc-word-wrap_16\"\n ></i>\n <i\n *ngIf=\"softWrap\"\n kbq-icon=\"mc-word-wrap-slash_16\"\n ></i>\n </button>\n\n <button\n *ngIf=\"canLoad\"\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\"\n >\n <i kbq-icon=\"mc-download_16\"></i>\n </button>\n\n <button\n #copyTooltip=\"kbqTooltip\"\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\"\n >\n <i kbq-icon=\"mc-copy-o_16\"></i>\n </button>\n\n <button\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\"\n >\n <i kbq-icon=\"mc-external-link_16\"></i>\n </button>\n</div>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:-48px;right:0;margin:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px)}.kbq-code-block-actionbar .kbq-actionbar-block__button-stack{gap:var(--kbq-code-block-size-actionbar-content-gap-horizontal, 2px)}.kbq-code-block-actionbar .kbq-code-block__fade-gradient{display:none;width:var(--kbq-code-block-size-actionbar-fade-gradient-width, 32px)}.kbq-code-block-actionbar.kbq-actionbar-block_floating{top:0;margin:unset;background:transparent!important}.kbq-code-block-actionbar.kbq-actionbar-block_floating .kbq-code-block__fade-gradient{display:block;align-self:stretch}.kbq-code-block-actionbar.kbq-actionbar-block_floating .kbq-actionbar-block__button-stack{padding:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i3.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["kbqVisible", "kbqPlacement", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
34
  }
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqActionBarComponent, decorators: [{
36
36
  type: Component,
@@ -1,4 +1,5 @@
1
1
  export * from './constants';
2
2
  export * from './pop-up';
3
+ export * from './pop-up-styles';
3
4
  export * from './pop-up-trigger';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvcG9wLXVwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3BvcC11cCc7XG5leHBvcnQgKiBmcm9tICcuL3BvcC11cC10cmlnZ2VyJztcbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvcG9wLXVwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vcG9wLXVwJztcbmV4cG9ydCAqIGZyb20gJy4vcG9wLXVwLXN0eWxlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BvcC11cC10cmlnZ2VyJztcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { inject, Renderer2 } from '@angular/core';
2
+ export const applyPopupMargins = (element, name, value) => {
3
+ const renderer = inject(Renderer2);
4
+ const classList = element.nativeElement.classList;
5
+ if (classList.contains(`${name}_placement-top`) ||
6
+ classList.contains(`${name}_placement-top-left`) ||
7
+ classList.contains(`${name}_placement-top-right`)) {
8
+ renderer.setStyle(element.nativeElement, 'margin-bottom', value);
9
+ }
10
+ if (classList.contains(`${name}_placement-right`) ||
11
+ classList.contains(`${name}_placement-right-top`) ||
12
+ classList.contains(`${name}_placement-right-bottom`)) {
13
+ renderer.setStyle(element.nativeElement, 'margin-left', value);
14
+ }
15
+ if (classList.contains(`${name}_placement-bottom`) ||
16
+ classList.contains(`${name}_placement-bottom-left`) ||
17
+ classList.contains(`${name}_placement-bottom-right`)) {
18
+ renderer.setStyle(element.nativeElement, 'margin-top', value);
19
+ }
20
+ if (classList.contains(`${name}_placement-left`) ||
21
+ classList.contains(`${name}_placement-left-top`) ||
22
+ classList.contains(`${name}_placement-left-bottom`)) {
23
+ renderer.setStyle(element.nativeElement, 'margin-right', value);
24
+ }
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLXN0eWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS9wb3AtdXAvcG9wLXVwLXN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE9BQW1CLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBRSxFQUFFO0lBQ2xGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUVsRCxJQUNJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1FBQzNDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLHFCQUFxQixDQUFDO1FBQ2hELFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLHNCQUFzQixDQUFDLEVBQ25ELENBQUM7UUFDQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDO1FBQzdDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLHNCQUFzQixDQUFDO1FBQ2pELFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLHlCQUF5QixDQUFDLEVBQ3RELENBQUM7UUFDQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLG1CQUFtQixDQUFDO1FBQzlDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLHdCQUF3QixDQUFDO1FBQ25ELFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLHlCQUF5QixDQUFDLEVBQ3RELENBQUM7UUFDQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDO1FBQzVDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLHFCQUFxQixDQUFDO1FBQ2hELFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLHdCQUF3QixDQUFDLEVBQ3JELENBQUM7UUFDQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBpbmplY3QsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgYXBwbHlQb3B1cE1hcmdpbnMgPSAoZWxlbWVudDogRWxlbWVudFJlZiwgbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBjb25zdCBjbGFzc0xpc3QgPSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0O1xuXG4gICAgaWYgKFxuICAgICAgICBjbGFzc0xpc3QuY29udGFpbnMoYCR7bmFtZX1fcGxhY2VtZW50LXRvcGApIHx8XG4gICAgICAgIGNsYXNzTGlzdC5jb250YWlucyhgJHtuYW1lfV9wbGFjZW1lbnQtdG9wLWxlZnRgKSB8fFxuICAgICAgICBjbGFzc0xpc3QuY29udGFpbnMoYCR7bmFtZX1fcGxhY2VtZW50LXRvcC1yaWdodGApXG4gICAgKSB7XG4gICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ21hcmdpbi1ib3R0b20nLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgICBjbGFzc0xpc3QuY29udGFpbnMoYCR7bmFtZX1fcGxhY2VtZW50LXJpZ2h0YCkgfHxcbiAgICAgICAgY2xhc3NMaXN0LmNvbnRhaW5zKGAke25hbWV9X3BsYWNlbWVudC1yaWdodC10b3BgKSB8fFxuICAgICAgICBjbGFzc0xpc3QuY29udGFpbnMoYCR7bmFtZX1fcGxhY2VtZW50LXJpZ2h0LWJvdHRvbWApXG4gICAgKSB7XG4gICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ21hcmdpbi1sZWZ0JywgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICAgY2xhc3NMaXN0LmNvbnRhaW5zKGAke25hbWV9X3BsYWNlbWVudC1ib3R0b21gKSB8fFxuICAgICAgICBjbGFzc0xpc3QuY29udGFpbnMoYCR7bmFtZX1fcGxhY2VtZW50LWJvdHRvbS1sZWZ0YCkgfHxcbiAgICAgICAgY2xhc3NMaXN0LmNvbnRhaW5zKGAke25hbWV9X3BsYWNlbWVudC1ib3R0b20tcmlnaHRgKVxuICAgICkge1xuICAgICAgICByZW5kZXJlci5zZXRTdHlsZShlbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdtYXJnaW4tdG9wJywgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICAgY2xhc3NMaXN0LmNvbnRhaW5zKGAke25hbWV9X3BsYWNlbWVudC1sZWZ0YCkgfHxcbiAgICAgICAgY2xhc3NMaXN0LmNvbnRhaW5zKGAke25hbWV9X3BsYWNlbWVudC1sZWZ0LXRvcGApIHx8XG4gICAgICAgIGNsYXNzTGlzdC5jb250YWlucyhgJHtuYW1lfV9wbGFjZW1lbnQtbGVmdC1ib3R0b21gKVxuICAgICkge1xuICAgICAgICByZW5kZXJlci5zZXRTdHlsZShlbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdtYXJnaW4tcmlnaHQnLCB2YWx1ZSk7XG4gICAgfVxufTtcbiJdfQ==
@@ -97,4 +97,4 @@ export class KbqPopUp {
97
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqPopUp, decorators: [{
98
98
  type: Directive
99
99
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb3JlL3BvcC11cC9wb3AtdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWEsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFHOUMsTUFBTSxPQUFnQixRQUFRO0lBcUIxQixZQUE4QixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWpCbEUsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUlkLGVBQVUsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUk1QywyRUFBMkU7UUFDeEQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTdDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztJQUt1QixDQUFDO0lBRXRFLFdBQVc7UUFDUCxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDcEIsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYTtRQUNkLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1lBRS9CLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztZQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5Qix3REFBd0Q7WUFDeEQsK0RBQStEO1lBQy9ELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLEtBQWE7UUFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO1lBRXpDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFMUIsd0RBQXdEO1lBQ3hELCtEQUErRDtZQUMvRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQWlCLEVBQUUsV0FBbUIsRUFBRSxRQUFTO1FBQzVELElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDWixDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sY0FBYyxTQUFTLEVBQUUsQ0FBQyxFQUFFLElBQUk7WUFDL0MsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVztZQUM1QixHQUFHLFFBQVE7U0FDZCxDQUFDO0lBQ04sQ0FBQztJQUVELHNGQUFzRjtJQUN0RixXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQUUsT0FBTyxFQUFrQjtRQUNyQyxJQUFJLE9BQU8sS0FBSyxlQUFlLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssZUFBZSxDQUFDLE9BQU8sSUFBSSxPQUFPLEtBQUssZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO2lJQXhIaUIsUUFBUTtxSEFBUixRQUFROzsyRkFBUixRQUFRO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9wVXBWaXNpYmlsaXR5IH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBLYnFQb3BVcCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgaGVhZGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjbGFzc01hcCA9IHt9O1xuXG4gICAgd2FybmluZzogYm9vbGVhbjtcblxuICAgIHZpc2liaWxpdHkgPSBQb3BVcFZpc2liaWxpdHkuSW5pdGlhbDtcbiAgICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJvdGVjdGVkIHByZWZpeDogc3RyaW5nO1xuXG4gICAgLyoqIFN1YmplY3QgZm9yIG5vdGlmeWluZyB0aGF0IHRoZSB0b29sdGlwIGhhcyBiZWVuIGhpZGRlbiBmcm9tIHRoZSB2aWV3ICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9uSGlkZVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJvdGVjdGVkIGNsb3NlT25JbnRlcmFjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBzaG93VGltZW91dElkOiBhbnk7XG4gICAgcHJpdmF0ZSBoaWRlVGltZW91dElkOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXRJZCk7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmhpZGVUaW1lb3V0SWQpO1xuXG4gICAgICAgIHRoaXMub25IaWRlU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGlzVGVtcGxhdGVSZWYodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbiAgICB9XG5cbiAgICBzaG93KGRlbGF5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGlkZVRpbWVvdXRJZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVvdXRJZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsb3NlT25JbnRlcmFjdGlvbiA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5zaG93VGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dUaW1lb3V0SWQgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eSA9IFBvcFVwVmlzaWJpbGl0eS5WaXNpYmxlO1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAvLyBNYXJrIGZvciBjaGVjayBzbyBpZiBhbnkgcGFyZW50IGNvbXBvbmVudCBoYXMgc2V0IHRoZVxuICAgICAgICAgICAgLy8gQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgdG8gT25QdXNoIGl0IHdpbGwgYmUgY2hlY2tlZCBhbnl3YXlzXG4gICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9LCBkZWxheSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZXMgdGhlIHBvcHVwIGFmdGVyIGEgc3BlY2lmaWVkIGRlbGF5LlxuICAgICAqXG4gICAgICogVGhlIGhpZGUgdGltZW91dCB0cmlnZ2VycyB0aGUgaGlkaW5nIG9mIHRoZSBwb3B1cCBieSB1cGRhdGluZyB2aXNpYmlsaXR5IGFuZCBlbWl0dGluZyByZWxldmFudCBldmVudHMuXG4gICAgICogQWxzbywgaXQgbWFya3MgZm9yIGNoZWNrIHRvIGVuc3VyZSBwcm9wZXIgY2hhbmdlIGRldGVjdGlvbiwgZXNwZWNpYWxseSBmb3IgcGFyZW50IGNvbXBvbmVudHMgd2l0aCBPblB1c2ggc3RyYXRlZ3kuXG4gICAgICogQHBhcmFtIGRlbGF5IC0gVGhlIGRlbGF5IGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgaGlkaW5nIHRoZSBwb3B1cC5cbiAgICAgKi9cbiAgICBoaWRlKGRlbGF5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd1RpbWVvdXRJZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXRJZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhpZGVUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGlkZVRpbWVvdXRJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eSA9IFBvcFVwVmlzaWJpbGl0eS5IaWRkZW47XG5cbiAgICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMub25IaWRlU3ViamVjdC5uZXh0KCk7XG5cbiAgICAgICAgICAgIC8vIE1hcmsgZm9yIGNoZWNrIHNvIGlmIGFueSBwYXJlbnQgY29tcG9uZW50IGhhcyBzZXQgdGhlXG4gICAgICAgICAgICAvLyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB0byBPblB1c2ggaXQgd2lsbCBiZSBjaGVja2VkIGFueXdheXNcbiAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0sIGRlbGF5KTtcbiAgICB9XG5cbiAgICBpc1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2liaWxpdHkgPT09IFBvcFVwVmlzaWJpbGl0eS5WaXNpYmxlO1xuICAgIH1cblxuICAgIHVwZGF0ZUNsYXNzTWFwKHBsYWNlbWVudDogc3RyaW5nLCBjdXN0b21DbGFzczogc3RyaW5nLCBjbGFzc01hcD8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGFzc01hcCA9IHtcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeH1fcGxhY2VtZW50LSR7cGxhY2VtZW50fWBdOiB0cnVlLFxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXTogISFjdXN0b21DbGFzcyxcbiAgICAgICAgICAgIC4uLmNsYXNzTWFwXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IG5vdGlmaWVzIHdoZW4gdGhlIHRvb2x0aXAgaGFzIGJlZW4gaGlkZGVuIGZyb20gdmlldy4gKi9cbiAgICBhZnRlckhpZGRlbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25IaWRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBtYXJrRm9yQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgYW5pbWF0aW9uU3RhcnQoKSB7XG4gICAgICAgIHRoaXMuY2xvc2VPbkludGVyYWN0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgYW5pbWF0aW9uRG9uZSh7IHRvU3RhdGUgfTogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRvU3RhdGUgPT09IFBvcFVwVmlzaWJpbGl0eS5IaWRkZW4gJiYgIXRoaXMuaXNWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgIHRoaXMub25IaWRlU3ViamVjdC5uZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodG9TdGF0ZSA9PT0gUG9wVXBWaXNpYmlsaXR5LlZpc2libGUgfHwgdG9TdGF0ZSA9PT0gUG9wVXBWaXNpYmlsaXR5LkhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZU9uSW50ZXJhY3Rpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQm9keUludGVyYWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jbG9zZU9uSW50ZXJhY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb3JlL3BvcC11cC9wb3AtdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWEsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFHOUMsTUFBTSxPQUFnQixRQUFRO0lBeUIxQixZQUE4QixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXBCbEUsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQU9kLGVBQVUsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUk1QywyRUFBMkU7UUFDeEQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTdDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztJQUt1QixDQUFDO0lBRXRFLFdBQVc7UUFDUCxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDcEIsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYTtRQUNkLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1lBRS9CLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztZQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5Qix3REFBd0Q7WUFDeEQsK0RBQStEO1lBQy9ELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLEtBQWE7UUFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO1lBRXpDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFMUIsd0RBQXdEO1lBQ3hELCtEQUErRDtZQUMvRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQWlCLEVBQUUsV0FBbUIsRUFBRSxRQUFTO1FBQzVELElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDWixDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sY0FBYyxTQUFTLEVBQUUsQ0FBQyxFQUFFLElBQUk7WUFDL0MsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVztZQUM1QixHQUFHLFFBQVE7U0FDZCxDQUFDO0lBQ04sQ0FBQztJQUVELHNGQUFzRjtJQUN0RixXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQUUsT0FBTyxFQUFrQjtRQUNyQyxJQUFJLE9BQU8sS0FBSyxlQUFlLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssZUFBZSxDQUFDLE9BQU8sSUFBSSxPQUFPLEtBQUssZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO2lJQTVIaUIsUUFBUTtxSEFBUixRQUFROzsyRkFBUixRQUFRO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9wVXBWaXNpYmlsaXR5IH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBLYnFQb3BVcCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgaGVhZGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGFueSB9IHwgbnVsbDtcblxuICAgIGNsYXNzTWFwID0ge307XG5cbiAgICB3YXJuaW5nOiBib29sZWFuO1xuICAgIGFycm93OiBib29sZWFuO1xuXG4gICAgb2Zmc2V0OiBudW1iZXIgfCBudWxsO1xuXG4gICAgdmlzaWJpbGl0eSA9IFBvcFVwVmlzaWJpbGl0eS5Jbml0aWFsO1xuICAgIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcHJlZml4OiBzdHJpbmc7XG5cbiAgICAvKiogU3ViamVjdCBmb3Igbm90aWZ5aW5nIHRoYXQgdGhlIHRvb2x0aXAgaGFzIGJlZW4gaGlkZGVuIGZyb20gdGhlIHZpZXcgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb25IaWRlU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcm90ZWN0ZWQgY2xvc2VPbkludGVyYWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHNob3dUaW1lb3V0SWQ6IGFueTtcbiAgICBwcml2YXRlIGhpZGVUaW1lb3V0SWQ6IGFueTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dElkKTtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVvdXRJZCk7XG5cbiAgICAgICAgdGhpcy5vbkhpZGVTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgaXNUZW1wbGF0ZVJlZih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICAgIH1cblxuICAgIHNob3coZGVsYXk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oaWRlVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZW91dElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xvc2VPbkludGVyYWN0aW9uID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnNob3dUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RpbWVvdXRJZCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5ID0gUG9wVXBWaXNpYmlsaXR5LlZpc2libGU7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIC8vIE1hcmsgZm9yIGNoZWNrIHNvIGlmIGFueSBwYXJlbnQgY29tcG9uZW50IGhhcyBzZXQgdGhlXG4gICAgICAgICAgICAvLyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB0byBPblB1c2ggaXQgd2lsbCBiZSBjaGVja2VkIGFueXdheXNcbiAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0sIGRlbGF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlcyB0aGUgcG9wdXAgYWZ0ZXIgYSBzcGVjaWZpZWQgZGVsYXkuXG4gICAgICpcbiAgICAgKiBUaGUgaGlkZSB0aW1lb3V0IHRyaWdnZXJzIHRoZSBoaWRpbmcgb2YgdGhlIHBvcHVwIGJ5IHVwZGF0aW5nIHZpc2liaWxpdHkgYW5kIGVtaXR0aW5nIHJlbGV2YW50IGV2ZW50cy5cbiAgICAgKiBBbHNvLCBpdCBtYXJrcyBmb3IgY2hlY2sgdG8gZW5zdXJlIHByb3BlciBjaGFuZ2UgZGV0ZWN0aW9uLCBlc3BlY2lhbGx5IGZvciBwYXJlbnQgY29tcG9uZW50cyB3aXRoIE9uUHVzaCBzdHJhdGVneS5cbiAgICAgKiBAcGFyYW0gZGVsYXkgLSBUaGUgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSBoaWRpbmcgdGhlIHBvcHVwLlxuICAgICAqL1xuICAgIGhpZGUoZGVsYXk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zaG93VGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZVRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oaWRlVGltZW91dElkID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5ID0gUG9wVXBWaXNpYmlsaXR5LkhpZGRlbjtcblxuICAgICAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5vbkhpZGVTdWJqZWN0Lm5leHQoKTtcblxuICAgICAgICAgICAgLy8gTWFyayBmb3IgY2hlY2sgc28gaWYgYW55IHBhcmVudCBjb21wb25lbnQgaGFzIHNldCB0aGVcbiAgICAgICAgICAgIC8vIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IHRvIE9uUHVzaCBpdCB3aWxsIGJlIGNoZWNrZWQgYW55d2F5c1xuICAgICAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSwgZGVsYXkpO1xuICAgIH1cblxuICAgIGlzVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJpbGl0eSA9PT0gUG9wVXBWaXNpYmlsaXR5LlZpc2libGU7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNYXAocGxhY2VtZW50OiBzdHJpbmcsIGN1c3RvbUNsYXNzOiBzdHJpbmcsIGNsYXNzTWFwPyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsYXNzTWFwID0ge1xuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4fV9wbGFjZW1lbnQtJHtwbGFjZW1lbnR9YF06IHRydWUsXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3NdOiAhIWN1c3RvbUNsYXNzLFxuICAgICAgICAgICAgLi4uY2xhc3NNYXBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgbm90aWZpZXMgd2hlbiB0aGUgdG9vbHRpcCBoYXMgYmVlbiBoaWRkZW4gZnJvbSB2aWV3LiAqL1xuICAgIGFmdGVySGlkZGVuKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vbkhpZGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIG1hcmtGb3JDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBhbmltYXRpb25TdGFydCgpIHtcbiAgICAgICAgdGhpcy5jbG9zZU9uSW50ZXJhY3Rpb24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBhbmltYXRpb25Eb25lKHsgdG9TdGF0ZSB9OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodG9TdGF0ZSA9PT0gUG9wVXBWaXNpYmlsaXR5LkhpZGRlbiAmJiAhdGhpcy5pc1Zpc2libGUoKSkge1xuICAgICAgICAgICAgdGhpcy5vbkhpZGVTdWJqZWN0Lm5leHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0b1N0YXRlID09PSBQb3BVcFZpc2liaWxpdHkuVmlzaWJsZSB8fCB0b1N0YXRlID09PSBQb3BVcFZpc2liaWxpdHkuSGlkZGVuKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlT25JbnRlcmFjdGlvbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVCb2R5SW50ZXJhY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25JbnRlcmFjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5oaWRlKDApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('17.0.3+sha-72053f1');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZXJzaW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzE3LjAuMytzaGEtNzIwNTNmMScpO1xuIl19
2
+ export const VERSION = new Version('17.2.0+sha-fafe8899');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZXJzaW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzE3LjIuMCtzaGEtZmFmZTg4OTknKTtcbiJdfQ==
@@ -17,6 +17,7 @@ export class KbqCalendarHeader {
17
17
  set activeDate(value) {
18
18
  this._activeDate = value;
19
19
  this.updateSelectedValues();
20
+ this.updateSelectionOptions();
20
21
  }
21
22
  get maxDate() {
22
23
  return this._maxDate;
@@ -26,7 +27,7 @@ export class KbqCalendarHeader {
26
27
  return;
27
28
  }
28
29
  this._maxDate = value;
29
- this.updateYearsArray();
30
+ this.updateSelectionOptions();
30
31
  }
31
32
  get minDate() {
32
33
  return this._minDate;
@@ -36,10 +37,10 @@ export class KbqCalendarHeader {
36
37
  return;
37
38
  }
38
39
  this._minDate = value;
39
- this.updateYearsArray();
40
+ this.updateSelectionOptions();
40
41
  }
41
42
  get previousDisabled() {
42
- return this.compareDate(this.activeDate, this.minDate) < 0;
43
+ return this.compareDate(this.activeDate, this.minDate) <= 0;
43
44
  }
44
45
  get nextDisabled() {
45
46
  return this.compareDate(this.activeDate, this.maxDate) >= 0;
@@ -54,11 +55,12 @@ export class KbqCalendarHeader {
54
55
  this.monthSelected = new EventEmitter();
55
56
  this.yearSelected = new EventEmitter();
56
57
  this.monthNames = this.adapter.getMonthNames('long').map((name, i) => {
57
- return { name: name, nameShort: this.adapter.getMonthNames('short')[i], value: i };
58
+ return { name, nameShort: this.adapter.getMonthNames('short')[i], value: i, disabled: false };
58
59
  });
59
60
  }
60
61
  ngAfterContentInit() {
61
- this.updateYearsArray();
62
+ this.updateYearsOptions();
63
+ this.updateMonthOptions();
62
64
  this.updateSelectedValues();
63
65
  }
64
66
  /** Handles when a new month is selected. */
@@ -77,6 +79,7 @@ export class KbqCalendarHeader {
77
79
  this.activeDate = this.adapter.createDate(year, month, Math.min(this.adapter.getDate(this.activeDate), daysInMonth));
78
80
  this.yearSelected.emit(this.activeDate);
79
81
  this.activeDateChange.emit(this.activeDate);
82
+ this.updateMonthOptions();
80
83
  }
81
84
  selectCurrentDate() {
82
85
  this.activeDate = this.adapter.today();
@@ -105,7 +108,11 @@ export class KbqCalendarHeader {
105
108
  value: this.adapter.getYearName(this.activeDate)
106
109
  };
107
110
  }
108
- updateYearsArray() {
111
+ updateSelectionOptions() {
112
+ this.updateYearsOptions();
113
+ this.updateMonthOptions();
114
+ }
115
+ updateYearsOptions() {
109
116
  const minYear = this.adapter.getYear(this.minDate);
110
117
  const maxYear = this.adapter.getYear(this.maxDate);
111
118
  this.years = [];
@@ -113,14 +120,30 @@ export class KbqCalendarHeader {
113
120
  this.years.push({ name: key, value: this.adapter.getYearName(this.adapter.createDate(key)) });
114
121
  }
115
122
  }
123
+ updateMonthOptions() {
124
+ if (!this._activeDate) {
125
+ return;
126
+ }
127
+ const minYear = this.adapter.getYear(this.minDate);
128
+ const minMonth = this.adapter.getMonth(this.minDate);
129
+ const maxYear = this.adapter.getYear(this.maxDate);
130
+ const maxMonth = this.adapter.getMonth(this.maxDate);
131
+ const currentYear = this.adapter.getYear(this._activeDate);
132
+ if (currentYear === minYear) {
133
+ this.monthNames.forEach((month) => (month.disabled = month.value < minMonth));
134
+ }
135
+ if (currentYear === maxYear) {
136
+ this.monthNames.forEach((month) => (month.disabled = month.value > maxMonth));
137
+ }
138
+ }
116
139
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCalendarHeader, deps: [{ token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Component }); }
117
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCalendarHeader, selector: "kbq-calendar-header", inputs: { activeDate: "activeDate", maxDate: "maxDate", minDate: "minDate" }, outputs: { activeDateChange: "activeDateChange", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "kbq-calendar-header" }, exportAs: ["kbqCalendarHeader"], ngImport: i0, template: "<div class=\"kbq-calendar-header__select-group\">\n <kbq-select\n #monthSelect=\"kbqSelect\"\n class=\"kbq-calendar-header__select\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedMonth\"\n (selectionChange)=\"onMonthSelected($event.value)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"monthSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ monthNames[selectedMonth].nameShort | titlecase }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n [color]=\"'contrast'\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let month of monthNames\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"month.value\"\n >\n {{ month.name }}\n </kbq-option>\n </kbq-select>\n\n <kbq-select\n #yearSelect=\"kbqSelect\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedYear\"\n (selectionChange)=\"onYearSelected($event.value.name)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"yearSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ selectedYear.value }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let year of years\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"year\"\n >\n {{ year.value }}\n </kbq-option>\n </kbq-select>\n</div>\n\n<div class=\"kbq-calendar-header__button-group\">\n <button\n kbq-button\n class=\"kbq-calendar-header__previous-button\"\n [color]=\"'contrast'\"\n [disabled]=\"previousDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectPreviousMonth()\"\n >\n <i kbq-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\"\n >\n <i kbq-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button\n kbq-button\n class=\"kbq-calendar-header__next-button\"\n [color]=\"'contrast'\"\n [disabled]=\"nextDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectNextMonth()\"\n >\n <i kbq-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".kbq-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding-right:var(--kbq-datepicker-size-header-padding-horizontal, 4px);padding-left:var(--kbq-datepicker-size-header-padding-horizontal, 4px);margin-bottom:var(--kbq-datepicker-size-header-margin-bottom, 2px)}.kbq-calendar-header__select{width:auto!important}.kbq-calendar-header__button-group,.kbq-calendar-header__select-group{display:flex;flex-direction:row}.kbq-calendar-select-panel{margin-top:2px;min-width:98%!important}.kbq-calendar-select-panel .kbq-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:auto}.kbq-calendar-select-panel .kbq-select__content .kbq-option{min-width:65px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i3.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i4.KbqValidateDirective, selector: " input[kbqInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "component", type: i5.KbqSelect, selector: "kbq-select", inputs: ["disabled", "tabIndex", "hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "value", "id", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i5.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i1.KbqOption, selector: "kbq-option", inputs: ["value", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i1.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]" }, { kind: "component", type: i6.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
140
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCalendarHeader, selector: "kbq-calendar-header", inputs: { activeDate: "activeDate", maxDate: "maxDate", minDate: "minDate" }, outputs: { activeDateChange: "activeDateChange", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "kbq-calendar-header" }, exportAs: ["kbqCalendarHeader"], ngImport: i0, template: "<div class=\"kbq-calendar-header__select-group\">\n <kbq-select\n #monthSelect=\"kbqSelect\"\n class=\"kbq-calendar-header__select\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedMonth\"\n (selectionChange)=\"onMonthSelected($event.value)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"monthSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ monthNames[selectedMonth].nameShort | titlecase }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n [color]=\"'contrast'\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let month of monthNames\"\n [disabled]=\"month.disabled\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"month.value\"\n >\n {{ month.name }}\n </kbq-option>\n </kbq-select>\n\n <kbq-select\n #yearSelect=\"kbqSelect\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedYear\"\n (selectionChange)=\"onYearSelected($event.value.name)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"yearSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ selectedYear.value }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let year of years\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"year\"\n >\n {{ year.value }}\n </kbq-option>\n </kbq-select>\n</div>\n\n<div class=\"kbq-calendar-header__button-group\">\n <button\n kbq-button\n class=\"kbq-calendar-header__previous-button\"\n [color]=\"'contrast'\"\n [disabled]=\"previousDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectPreviousMonth()\"\n >\n <i kbq-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\"\n >\n <i kbq-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button\n kbq-button\n class=\"kbq-calendar-header__next-button\"\n [color]=\"'contrast'\"\n [disabled]=\"nextDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectNextMonth()\"\n >\n <i kbq-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".kbq-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding-right:var(--kbq-datepicker-size-header-padding-horizontal, 4px);padding-left:var(--kbq-datepicker-size-header-padding-horizontal, 4px);margin-bottom:var(--kbq-datepicker-size-header-margin-bottom, 2px)}.kbq-calendar-header__select{width:auto!important}.kbq-calendar-header__button-group,.kbq-calendar-header__select-group{display:flex;flex-direction:row}.kbq-calendar-select-panel{margin-top:2px;min-width:98%!important}.kbq-calendar-select-panel .kbq-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:auto}.kbq-calendar-select-panel .kbq-select__content .kbq-option{min-width:65px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i3.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i4.KbqValidateDirective, selector: " input[kbqInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "component", type: i5.KbqSelect, selector: "kbq-select", inputs: ["disabled", "tabIndex", "hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "value", "id", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i5.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i1.KbqOption, selector: "kbq-option", inputs: ["value", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i1.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]" }, { kind: "component", type: i6.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
118
141
  }
119
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCalendarHeader, decorators: [{
120
143
  type: Component,
121
144
  args: [{ selector: 'kbq-calendar-header', exportAs: 'kbqCalendarHeader', host: {
122
145
  class: 'kbq-calendar-header'
123
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kbq-calendar-header__select-group\">\n <kbq-select\n #monthSelect=\"kbqSelect\"\n class=\"kbq-calendar-header__select\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedMonth\"\n (selectionChange)=\"onMonthSelected($event.value)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"monthSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ monthNames[selectedMonth].nameShort | titlecase }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n [color]=\"'contrast'\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let month of monthNames\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"month.value\"\n >\n {{ month.name }}\n </kbq-option>\n </kbq-select>\n\n <kbq-select\n #yearSelect=\"kbqSelect\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedYear\"\n (selectionChange)=\"onYearSelected($event.value.name)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"yearSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ selectedYear.value }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let year of years\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"year\"\n >\n {{ year.value }}\n </kbq-option>\n </kbq-select>\n</div>\n\n<div class=\"kbq-calendar-header__button-group\">\n <button\n kbq-button\n class=\"kbq-calendar-header__previous-button\"\n [color]=\"'contrast'\"\n [disabled]=\"previousDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectPreviousMonth()\"\n >\n <i kbq-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\"\n >\n <i kbq-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button\n kbq-button\n class=\"kbq-calendar-header__next-button\"\n [color]=\"'contrast'\"\n [disabled]=\"nextDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectNextMonth()\"\n >\n <i kbq-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".kbq-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding-right:var(--kbq-datepicker-size-header-padding-horizontal, 4px);padding-left:var(--kbq-datepicker-size-header-padding-horizontal, 4px);margin-bottom:var(--kbq-datepicker-size-header-margin-bottom, 2px)}.kbq-calendar-header__select{width:auto!important}.kbq-calendar-header__button-group,.kbq-calendar-header__select-group{display:flex;flex-direction:row}.kbq-calendar-select-panel{margin-top:2px;min-width:98%!important}.kbq-calendar-select-panel .kbq-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:auto}.kbq-calendar-select-panel .kbq-select__content .kbq-option{min-width:65px}\n"] }]
146
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kbq-calendar-header__select-group\">\n <kbq-select\n #monthSelect=\"kbqSelect\"\n class=\"kbq-calendar-header__select\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedMonth\"\n (selectionChange)=\"onMonthSelected($event.value)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"monthSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ monthNames[selectedMonth].nameShort | titlecase }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n [color]=\"'contrast'\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let month of monthNames\"\n [disabled]=\"month.disabled\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"month.value\"\n >\n {{ month.name }}\n </kbq-option>\n </kbq-select>\n\n <kbq-select\n #yearSelect=\"kbqSelect\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedYear\"\n (selectionChange)=\"onYearSelected($event.value.name)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"yearSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ selectedYear.value }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let year of years\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"year\"\n >\n {{ year.value }}\n </kbq-option>\n </kbq-select>\n</div>\n\n<div class=\"kbq-calendar-header__button-group\">\n <button\n kbq-button\n class=\"kbq-calendar-header__previous-button\"\n [color]=\"'contrast'\"\n [disabled]=\"previousDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectPreviousMonth()\"\n >\n <i kbq-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button\n kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\"\n >\n <i kbq-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button\n kbq-button\n class=\"kbq-calendar-header__next-button\"\n [color]=\"'contrast'\"\n [disabled]=\"nextDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectNextMonth()\"\n >\n <i kbq-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".kbq-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding-right:var(--kbq-datepicker-size-header-padding-horizontal, 4px);padding-left:var(--kbq-datepicker-size-header-padding-horizontal, 4px);margin-bottom:var(--kbq-datepicker-size-header-margin-bottom, 2px)}.kbq-calendar-header__select{width:auto!important}.kbq-calendar-header__button-group,.kbq-calendar-header__select-group{display:flex;flex-direction:row}.kbq-calendar-select-panel{margin-top:2px;min-width:98%!important}.kbq-calendar-select-panel .kbq-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:auto}.kbq-calendar-select-panel .kbq-select__content .kbq-option{min-width:65px}\n"] }]
124
147
  }], ctorParameters: () => [{ type: i1.DateAdapter }], propDecorators: { activeDate: [{
125
148
  type: Input
126
149
  }], maxDate: [{
@@ -134,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
134
157
  }], yearSelected: [{
135
158
  type: Output
136
159
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9kYXRlcGlja2VyL2NhbGVuZGFyLWhlYWRlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBRXRELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztBQUM1QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFFNUIscUNBQXFDO0FBWXJDLE1BQU0sT0FBTyxpQkFBaUI7SUFPMUIsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFRO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXpCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFJRCxJQUNJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEtBQWU7UUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1QsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUV0QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBSUQsSUFDSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxD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T0FBTyxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsQ0FBQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBUSxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFaEIsS0FBSyxJQUFJLEdBQUcsR0FBVyxPQUFPLEVBQUUsR0FBRyxJQUFJLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEcsQ0FBQztJQUNMLENBQUM7aUlBNUpRLGlCQUFpQjtxSEFBakIsaUJBQWlCLDRVQzFCOUIscThGQXVHQTs7MkZEN0VhLGlCQUFpQjtrQkFYN0IsU0FBUzsrQkFDSSxxQkFBcUIsWUFDckIsbUJBQW1CLFFBR3ZCO3dCQUNGLEtBQUssRUFBRSxxQkFBcUI7cUJBQy9CLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07Z0ZBVTNDLFVBQVU7c0JBRGIsS0FBSztnQkFjRixPQUFPO3NCQURWLEtBQUs7Z0JBa0JGLE9BQU87c0JBRFYsS0FBSztnQkEwQmEsZ0JBQWdCO3NCQUFsQyxNQUFNO2dCQUNZLGFBQWE7c0JBQS9CLE1BQU07Z0JBQ1ksWUFBWTtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuXG5jb25zdCBkZWZhdWx0TWluWWVhciA9IDE5MDA7XG5jb25zdCBkZWZhdWx0TWF4WWVhciA9IDIwOTk7XG5cbi8qKiBEZWZhdWx0IGhlYWRlciBmb3IgS2JxQ2FsZW5kYXIgKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLWNhbGVuZGFyLWhlYWRlcicsXG4gICAgZXhwb3J0QXM6ICdrYnFDYWxlbmRhckhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICdjYWxlbmRhci1oZWFkZXIuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2NhbGVuZGFyLWhlYWRlci5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jYWxlbmRhci1oZWFkZXInXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEticUNhbGVuZGFySGVhZGVyPEQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgbW9udGhOYW1lczogeyBuYW1lOiBzdHJpbmc7IG5hbWVTaG9ydDogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH1bXTtcbiAgICBzZWxlY3RlZE1vbnRoOiBudW1iZXI7XG5cbiAgICB5ZWFyczogeyBuYW1lOiBudW1iZXI7IHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG4gICAgc2VsZWN0ZWRZZWFyOiB7IG5hbWU6IG51bWJlcjsgdmFsdWU6IHN0cmluZyB9O1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgYWN0aXZlRGF0ZSgpOiBEIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZURhdGU7XG4gICAgfVxuXG4gICAgc2V0IGFjdGl2ZURhdGUodmFsdWU6IEQpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlRGF0ZSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hY3RpdmVEYXRlOiBEO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgbWF4RGF0ZSgpOiBEIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhEYXRlO1xuICAgIH1cblxuICAgIHNldCBtYXhEYXRlKHZhbHVlOiBEIHwgbnVsbCkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tYXhEYXRlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVZZWFyc0FycmF5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWF4RGF0ZSA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKGRlZmF1bHRNYXhZZWFyLCAxMSk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBtaW5EYXRlKCk6IEQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gICAgfVxuXG4gICAgc2V0IG1pbkRhdGUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVllYXJzQXJyYXkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9taW5EYXRlID0gdGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoZGVmYXVsdE1pblllYXIsIDEpO1xuXG4gICAgZ2V0IHByZXZpb3VzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVEYXRlKHRoaXMuYWN0aXZlRGF0ZSwgdGhpcy5taW5EYXRlISkgPCAwO1xuICAgIH1cblxuICAgIGdldCBuZXh0RGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVEYXRlKHRoaXMuYWN0aXZlRGF0ZSwgdGhpcy5tYXhEYXRlISkgPj0gMDtcbiAgICB9XG5cbiAgICAvKiogRW1pdHMgd2hlbiBhbnkgZGF0ZSBpcyBhY3RpdmF0ZWQuICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGFjdGl2ZURhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG1vbnRoU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHllYXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlcjogRGF0ZUFkYXB0ZXI8RD4pIHtcbiAgICAgICAgdGhpcy5tb250aE5hbWVzID0gdGhpcy5hZGFwdGVyLmdldE1vbnRoTmFtZXMoJ2xvbmcnKS5tYXAoKG5hbWUsIGkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IG5hbWUsIG5hbWVTaG9ydDogdGhpcy5hZGFwdGVyLmdldE1vbnRoTmFtZXMoJ3Nob3J0JylbaV0sIHZhbHVlOiBpIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyc0FycmF5KCk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyB3aGVuIGEgbmV3IG1vbnRoIGlzIHNlbGVjdGVkLiAqL1xuICAgIG9uTW9udGhTZWxlY3RlZChtb250aDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHllYXIgPSB0aGlzLmFkYXB0ZXIuZ2V0WWVhcih0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRGF0ZSA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKHllYXIsIG1vbnRoKTtcbiAgICAgICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmFkYXB0ZXIuZ2V0TnVtRGF5c0luTW9udGgobm9ybWFsaXplZERhdGUpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKFxuICAgICAgICAgICAgeWVhcixcbiAgICAgICAgICAgIG1vbnRoLFxuICAgICAgICAgICAgTWF0aC5taW4odGhpcy5hZGFwdGVyLmdldERhdGUodGhpcy5hY3RpdmVEYXRlKSwgZGF5c0luTW9udGgpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5tb250aFNlbGVjdGVkLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyB3aGVuIGEgbmV3IHllYXIgaXMgc2VsZWN0ZWQuICovXG4gICAgb25ZZWFyU2VsZWN0ZWQoeWVhcjogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5hZGFwdGVyLmdldE1vbnRoKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIGNvbnN0IGRheXNJbk1vbnRoID0gdGhpcy5hZGFwdGVyLmdldE51bURheXNJbk1vbnRoKHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKHllYXIsIG1vbnRoKSk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoXG4gICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgbW9udGgsXG4gICAgICAgICAgICBNYXRoLm1pbih0aGlzLmFkYXB0ZXIuZ2V0RGF0ZSh0aGlzLmFjdGl2ZURhdGUpLCBkYXlzSW5Nb250aClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnllYXJTZWxlY3RlZC5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgc2VsZWN0Q3VycmVudERhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuYWRhcHRlci50b2RheSgpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgdXNlciBjbGlja3Mgb24gdGhlIHByZXZpb3VzIGJ1dHRvbi4gKi9cbiAgICBzZWxlY3RQcmV2aW91c01vbnRoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5hY3RpdmVEYXRlLCAtMSk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyB1c2VyIGNsaWNrcyBvbiB0aGUgbmV4dCBidXR0b24uICovXG4gICAgc2VsZWN0TmV4dE1vbnRoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5hY3RpdmVEYXRlLCAxKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZURhdGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tcGFyZURhdGUoZmlyc3Q6IEQsIHNlY29uZDogRCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaXJzdCA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKHRoaXMuYWRhcHRlci5nZXRZZWFyKGZpcnN0KSwgdGhpcy5hZGFwdGVyLmdldE1vbnRoKGZpcnN0KSk7XG5cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFNlY29uZCA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKHRoaXMuYWRhcHRlci5nZXRZZWFyKHNlY29uZCksIHRoaXMuYWRhcHRlci5nZXRNb250aChzZWNvbmQpKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmNvbXBhcmVEYXRlKG5vcm1hbGl6ZWRGaXJzdCwgbm9ybWFsaXplZFNlY29uZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFZhbHVlcygpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoID0gdGhpcy5tb250aE5hbWVzW3RoaXMuYWRhcHRlci5nZXRNb250aCh0aGlzLmFjdGl2ZURhdGUpXS52YWx1ZTtcblxuICAgICAgICBjb25zdCB5ZWFyID0gdGhpcy5hZGFwdGVyLmdldFllYXIodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXIgPSB0aGlzLnllYXJzLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSB5ZWFyKSB8fCB7XG4gICAgICAgICAgICBuYW1lOiB5ZWFyLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuYWRhcHRlci5nZXRZZWFyTmFtZSh0aGlzLmFjdGl2ZURhdGUpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVZZWFyc0FycmF5KCkge1xuICAgICAgICBjb25zdCBtaW5ZZWFyID0gdGhpcy5hZGFwdGVyLmdldFllYXIodGhpcy5taW5EYXRlISk7XG4gICAgICAgIGNvbnN0IG1heFllYXIgPSB0aGlzLmFkYXB0ZXIuZ2V0WWVhcih0aGlzLm1heERhdGUhKTtcblxuICAgICAgICB0aGlzLnllYXJzID0gW107XG5cbiAgICAgICAgZm9yIChsZXQga2V5OiBudW1iZXIgPSBtaW5ZZWFyOyBrZXkgPD0gbWF4WWVhcjsga2V5KyspIHtcbiAgICAgICAgICAgIHRoaXMueWVhcnMucHVzaCh7IG5hbWU6IGtleSwgdmFsdWU6IHRoaXMuYWRhcHRlci5nZXRZZWFyTmFtZSh0aGlzLmFkYXB0ZXIuY3JlYXRlRGF0ZShrZXkpKSB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJrYnEtY2FsZW5kYXItaGVhZGVyX19zZWxlY3QtZ3JvdXBcIj5cbiAgICA8a2JxLXNlbGVjdFxuICAgICAgICAjbW9udGhTZWxlY3Q9XCJrYnFTZWxlY3RcIlxuICAgICAgICBjbGFzcz1cImticS1jYWxlbmRhci1oZWFkZXJfX3NlbGVjdFwiXG4gICAgICAgIFtwYW5lbENsYXNzXT1cIidrYnEtY2FsZW5kYXItc2VsZWN0LXBhbmVsJ1wiXG4gICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZE1vbnRoXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbk1vbnRoU2VsZWN0ZWQoJGV2ZW50LnZhbHVlKVwiXG4gICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgICAgICBrYnEtc2VsZWN0LW1hdGNoZXJcbiAgICAgICAgICAgIGNsYXNzPVwibGF5b3V0LXBhZGRpbmctcmlnaHQteHNcIlxuICAgICAgICAgICAgW2NsYXNzLmticS1hY3RpdmVdPVwibW9udGhTZWxlY3QucGFuZWxPcGVuXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IG1vbnRoTmFtZXNbc2VsZWN0ZWRNb250aF0ubmFtZVNob3J0IHwgdGl0bGVjYXNlIH19XG5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAga2JxLWljb249XCJtYy1hbmdsZS1kb3duLVNfMTZcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGF5b3V0LXBhZGRpbmctbGVmdC0zeHNcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxrYnEtb3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhOYW1lc1wiXG4gICAgICAgICAgICBba2JxVG9vbHRpcERpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm1vbnRoLnZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgbW9udGgubmFtZSB9fVxuICAgICAgICA8L2ticS1vcHRpb24+XG4gICAgPC9rYnEtc2VsZWN0PlxuXG4gICAgPGticS1zZWxlY3RcbiAgICAgICAgI3llYXJTZWxlY3Q9XCJrYnFTZWxlY3RcIlxuICAgICAgICBbcGFuZWxDbGFzc109XCIna2JxLWNhbGVuZGFyLXNlbGVjdC1wYW5lbCdcIlxuICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRZZWFyXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblllYXJTZWxlY3RlZCgkZXZlbnQudmFsdWUubmFtZSlcIlxuICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAga2JxLXNlbGVjdC1tYXRjaGVyXG4gICAgICAgICAgICBjbGFzcz1cImxheW91dC1wYWRkaW5nLXJpZ2h0LXhzXCJcbiAgICAgICAgICAgIFtjbGFzcy5rYnEtYWN0aXZlXT1cInllYXJTZWxlY3QucGFuZWxPcGVuXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlbGVjdGVkWWVhci52YWx1ZSB9fVxuXG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGticS1pY29uPVwibWMtYW5nbGUtZG93bi1TXzE2XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImxheW91dC1wYWRkaW5nLWxlZnQtM3hzXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxrYnEtb3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgeWVhciBvZiB5ZWFyc1wiXG4gICAgICAgICAgICBba2JxVG9vbHRpcERpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInllYXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB5ZWFyLnZhbHVlIH19XG4gICAgICAgIDwva2JxLW9wdGlvbj5cbiAgICA8L2ticS1zZWxlY3Q+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImticS1jYWxlbmRhci1oZWFkZXJfX2J1dHRvbi1ncm91cFwiPlxuICAgIDxidXR0b25cbiAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICBjbGFzcz1cImticS1jYWxlbmRhci1oZWFkZXJfX3ByZXZpb3VzLWJ1dHRvblwiXG4gICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInByZXZpb3VzRGlzYWJsZWRcIlxuICAgICAgICBba2JxU3R5bGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RQcmV2aW91c01vbnRoKClcIlxuICAgID5cbiAgICAgICAgPGkga2JxLWljb249XCJtYy1hbmdsZS1sZWZ0LUxfMTZcIj48L2k+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICAgIGticS1idXR0b25cbiAgICAgICAgW2NvbG9yXT1cIidjb250cmFzdCdcIlxuICAgICAgICBba2JxU3R5bGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RDdXJyZW50RGF0ZSgpXCJcbiAgICA+XG4gICAgICAgIDxpIGticS1pY29uPVwibWMtY2lyY2xlLThfMTZcIj48L2k+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICAgIGticS1idXR0b25cbiAgICAgICAgY2xhc3M9XCJrYnEtY2FsZW5kYXItaGVhZGVyX19uZXh0LWJ1dHRvblwiXG4gICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm5leHREaXNhYmxlZFwiXG4gICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdE5leHRNb250aCgpXCJcbiAgICA+XG4gICAgICAgIDxpIGticS1pY29uPVwibWMtYW5nbGUtcmlnaHQtTF8xNlwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9kYXRlcGlja2VyL2NhbGVuZGFyLWhlYWRlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBRXRELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztBQUM1QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFTNUIscUNBQXFDO0FBWXJDLE1BQU0sT0FBTyxpQkFBaUI7SUFPMUIsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFRO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXpCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFJRCxJQUNJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEtBQWU7UUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1QsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUV0QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBSUQsSUFD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QUFDO1FBQ3BELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsQ0FBQztRQUV0RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0QsSUFBSSxXQUFXLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUVELElBQUksV0FBVyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDTCxDQUFDO2lJQTNMUSxpQkFBaUI7cUhBQWpCLGlCQUFpQiw0VUNqQzlCLGcvRkF3R0E7OzJGRHZFYSxpQkFBaUI7a0JBWDdCLFNBQVM7K0JBQ0kscUJBQXFCLFlBQ3JCLG1CQUFtQixRQUd2Qjt3QkFDRixLQUFLLEVBQUUscUJBQXFCO3FCQUMvQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2dGQVUzQyxVQUFVO3NCQURiLEtBQUs7Z0JBZUYsT0FBTztzQkFEVixLQUFLO2dCQWtCRixPQUFPO3NCQURWLEtBQUs7Z0JBMEJhLGdCQUFnQjtzQkFBbEMsTUFBTTtnQkFDWSxhQUFhO3NCQUEvQixNQUFNO2dCQUNZLFlBQVk7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcblxuY29uc3QgZGVmYXVsdE1pblllYXIgPSAxOTAwO1xuY29uc3QgZGVmYXVsdE1heFllYXIgPSAyMDk5O1xuXG5leHBvcnQgdHlwZSBNb250aE5hbWUgPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG5hbWVTaG9ydDogc3RyaW5nO1xuICAgIHZhbHVlOiBudW1iZXI7XG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG59O1xuXG4vKiogRGVmYXVsdCBoZWFkZXIgZm9yIEticUNhbGVuZGFyICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1jYWxlbmRhci1oZWFkZXInLFxuICAgIGV4cG9ydEFzOiAna2JxQ2FsZW5kYXJIZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnY2FsZW5kYXItaGVhZGVyLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydjYWxlbmRhci1oZWFkZXIuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtY2FsZW5kYXItaGVhZGVyJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBLYnFDYWxlbmRhckhlYWRlcjxEPiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIG1vbnRoTmFtZXM6IE1vbnRoTmFtZVtdO1xuICAgIHNlbGVjdGVkTW9udGg6IG51bWJlcjtcblxuICAgIHllYXJzOiB7IG5hbWU6IG51bWJlcjsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcbiAgICBzZWxlY3RlZFllYXI6IHsgbmFtZTogbnVtYmVyOyB2YWx1ZTogc3RyaW5nIH07XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBhY3RpdmVEYXRlKCk6IEQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZTtcbiAgICB9XG5cbiAgICBzZXQgYWN0aXZlRGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVEYXRlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbk9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hY3RpdmVEYXRlOiBEO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgbWF4RGF0ZSgpOiBEIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhEYXRlO1xuICAgIH1cblxuICAgIHNldCBtYXhEYXRlKHZhbHVlOiBEIHwgbnVsbCkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tYXhEYXRlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3Rpb25PcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWF4RGF0ZSA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKGRlZmF1bHRNYXhZZWFyLCAxMSk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBtaW5EYXRlKCk6IEQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gICAgfVxuXG4gICAgc2V0IG1pbkRhdGUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbk9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9taW5EYXRlID0gdGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoZGVmYXVsdE1pblllYXIsIDEpO1xuXG4gICAgZ2V0IHByZXZpb3VzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVEYXRlKHRoaXMuYWN0aXZlRGF0ZSwgdGhpcy5taW5EYXRlISkgPD0gMDtcbiAgICB9XG5cbiAgICBnZXQgbmV4dERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlRGF0ZSh0aGlzLmFjdGl2ZURhdGUsIHRoaXMubWF4RGF0ZSEpID49IDA7XG4gICAgfVxuXG4gICAgLyoqIEVtaXRzIHdoZW4gYW55IGRhdGUgaXMgYWN0aXZhdGVkLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBhY3RpdmVEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBtb250aFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB5ZWFyU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI6IERhdGVBZGFwdGVyPEQ+KSB7XG4gICAgICAgIHRoaXMubW9udGhOYW1lcyA9IHRoaXMuYWRhcHRlci5nZXRNb250aE5hbWVzKCdsb25nJykubWFwKChuYW1lLCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBuYW1lLCBuYW1lU2hvcnQ6IHRoaXMuYWRhcHRlci5nZXRNb250aE5hbWVzKCdzaG9ydCcpW2ldLCB2YWx1ZTogaSwgZGlzYWJsZWQ6IGZhbHNlIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyc09wdGlvbnMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVNb250aE9wdGlvbnMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHdoZW4gYSBuZXcgbW9udGggaXMgc2VsZWN0ZWQuICovXG4gICAgb25Nb250aFNlbGVjdGVkKG1vbnRoOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgeWVhciA9IHRoaXMuYWRhcHRlci5nZXRZZWFyKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWREYXRlID0gdGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoeWVhciwgbW9udGgpO1xuICAgICAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuYWRhcHRlci5nZXROdW1EYXlzSW5Nb250aChub3JtYWxpemVkRGF0ZSk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoXG4gICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgbW9udGgsXG4gICAgICAgICAgICBNYXRoLm1pbih0aGlzLmFkYXB0ZXIuZ2V0RGF0ZSh0aGlzLmFjdGl2ZURhdGUpLCBkYXlzSW5Nb250aClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm1vbnRoU2VsZWN0ZWQuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHdoZW4gYSBuZXcgeWVhciBpcyBzZWxlY3RlZC4gKi9cbiAgICBvblllYXJTZWxlY3RlZCh5ZWFyOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbW9udGggPSB0aGlzLmFkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmFkYXB0ZXIuZ2V0TnVtRGF5c0luTW9udGgodGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoeWVhciwgbW9udGgpKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFkYXB0ZXIuY3JlYXRlRGF0ZShcbiAgICAgICAgICAgIHllYXIsXG4gICAgICAgICAgICBtb250aCxcbiAgICAgICAgICAgIE1hdGgubWluKHRoaXMuYWRhcHRlci5nZXREYXRlKHRoaXMuYWN0aXZlRGF0ZSksIGRheXNJbk1vbnRoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMueWVhclNlbGVjdGVkLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZU1vbnRoT3B0aW9ucygpO1xuICAgIH1cblxuICAgIHNlbGVjdEN1cnJlbnREYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFkYXB0ZXIudG9kYXkoKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZURhdGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHVzZXIgY2xpY2tzIG9uIHRoZSBwcmV2aW91cyBidXR0b24uICovXG4gICAgc2VsZWN0UHJldmlvdXNNb250aCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5hZGFwdGVyLmFkZENhbGVuZGFyTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgLTEpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgdXNlciBjbGlja3Mgb24gdGhlIG5leHQgYnV0dG9uLiAqL1xuICAgIHNlbGVjdE5leHRNb250aCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5hZGFwdGVyLmFkZENhbGVuZGFyTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMSk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXBhcmVEYXRlKGZpcnN0OiBELCBzZWNvbmQ6IEQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRmlyc3QgPSB0aGlzLmFkYXB0ZXIuY3JlYXRlRGF0ZSh0aGlzLmFkYXB0ZXIuZ2V0WWVhcihmaXJzdCksIHRoaXMuYWRhcHRlci5nZXRNb250aChmaXJzdCkpO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTZWNvbmQgPSB0aGlzLmFkYXB0ZXIuY3JlYXRlRGF0ZSh0aGlzLmFkYXB0ZXIuZ2V0WWVhcihzZWNvbmQpLCB0aGlzLmFkYXB0ZXIuZ2V0TW9udGgoc2Vjb25kKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5jb21wYXJlRGF0ZShub3JtYWxpemVkRmlyc3QsIG5vcm1hbGl6ZWRTZWNvbmQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aCA9IHRoaXMubW9udGhOYW1lc1t0aGlzLmFkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKV0udmFsdWU7XG5cbiAgICAgICAgY29uc3QgeWVhciA9IHRoaXMuYWRhcHRlci5nZXRZZWFyKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyID0gdGhpcy55ZWFycy5maW5kKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0geWVhcikgfHwge1xuICAgICAgICAgICAgbmFtZTogeWVhcixcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLmFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5hY3RpdmVEYXRlKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VsZWN0aW9uT3B0aW9ucygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyc09wdGlvbnMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVNb250aE9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVllYXJzT3B0aW9ucygpIHtcbiAgICAgICAgY29uc3QgbWluWWVhciA9IHRoaXMuYWRhcHRlci5nZXRZZWFyKHRoaXMubWluRGF0ZSEpO1xuICAgICAgICBjb25zdCBtYXhZZWFyID0gdGhpcy5hZGFwdGVyLmdldFllYXIodGhpcy5tYXhEYXRlISk7XG5cbiAgICAgICAgdGhpcy55ZWFycyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGtleTogbnVtYmVyID0gbWluWWVhcjsga2V5IDw9IG1heFllYXI7IGtleSsrKSB7XG4gICAgICAgICAgICB0aGlzLnllYXJzLnB1c2goeyBuYW1lOiBrZXksIHZhbHVlOiB0aGlzLmFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoa2V5KSkgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU1vbnRoT3B0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9hY3RpdmVEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtaW5ZZWFyID0gdGhpcy5hZGFwdGVyLmdldFllYXIodGhpcy5taW5EYXRlISk7XG4gICAgICAgIGNvbnN0IG1pbk1vbnRoID0gdGhpcy5hZGFwdGVyLmdldE1vbnRoKHRoaXMubWluRGF0ZSEpO1xuXG4gICAgICAgIGNvbnN0IG1heFllYXIgPSB0aGlzLmFkYXB0ZXIuZ2V0WWVhcih0aGlzLm1heERhdGUhKTtcbiAgICAgICAgY29uc3QgbWF4TW9udGggPSB0aGlzLmFkYXB0ZXIuZ2V0TW9udGgodGhpcy5tYXhEYXRlISk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudFllYXIgPSB0aGlzLmFkYXB0ZXIuZ2V0WWVhcih0aGlzLl9hY3RpdmVEYXRlKTtcblxuICAgICAgICBpZiAoY3VycmVudFllYXIgPT09IG1pblllYXIpIHtcbiAgICAgICAgICAgIHRoaXMubW9udGhOYW1lcy5mb3JFYWNoKChtb250aCkgPT4gKG1vbnRoLmRpc2FibGVkID0gbW9udGgudmFsdWUgPCBtaW5Nb250aCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGN1cnJlbnRZZWFyID09PSBtYXhZZWFyKSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoTmFtZXMuZm9yRWFjaCgobW9udGgpID0+IChtb250aC5kaXNhYmxlZCA9IG1vbnRoLnZhbHVlID4gbWF4TW9udGgpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJrYnEtY2FsZW5kYXItaGVhZGVyX19zZWxlY3QtZ3JvdXBcIj5cbiAgICA8a2JxLXNlbGVjdFxuICAgICAgICAjbW9udGhTZWxlY3Q9XCJrYnFTZWxlY3RcIlxuICAgICAgICBjbGFzcz1cImticS1jYWxlbmRhci1oZWFkZXJfX3NlbGVjdFwiXG4gICAgICAgIFtwYW5lbENsYXNzXT1cIidrYnEtY2FsZW5kYXItc2VsZWN0LXBhbmVsJ1wiXG4gICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZE1vbnRoXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbk1vbnRoU2VsZWN0ZWQoJGV2ZW50LnZhbHVlKVwiXG4gICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgICAgICBrYnEtc2VsZWN0LW1hdGNoZXJcbiAgICAgICAgICAgIGNsYXNzPVwibGF5b3V0LXBhZGRpbmctcmlnaHQteHNcIlxuICAgICAgICAgICAgW2NsYXNzLmticS1hY3RpdmVdPVwibW9udGhTZWxlY3QucGFuZWxPcGVuXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IG1vbnRoTmFtZXNbc2VsZWN0ZWRNb250aF0ubmFtZVNob3J0IHwgdGl0bGVjYXNlIH19XG5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAga2JxLWljb249XCJtYy1hbmdsZS1kb3duLVNfMTZcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGF5b3V0LXBhZGRpbmctbGVmdC0zeHNcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxrYnEtb3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhOYW1lc1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibW9udGguZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ticVRvb2x0aXBEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJtb250aC52YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IG1vbnRoLm5hbWUgfX1cbiAgICAgICAgPC9rYnEtb3B0aW9uPlxuICAgIDwva2JxLXNlbGVjdD5cblxuICAgIDxrYnEtc2VsZWN0XG4gICAgICAgICN5ZWFyU2VsZWN0PVwia2JxU2VsZWN0XCJcbiAgICAgICAgW3BhbmVsQ2xhc3NdPVwiJ2ticS1jYWxlbmRhci1zZWxlY3QtcGFuZWwnXCJcbiAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkWWVhclwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25ZZWFyU2VsZWN0ZWQoJGV2ZW50LnZhbHVlLm5hbWUpXCJcbiAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGticS1idXR0b25cbiAgICAgICAgICAgIGticS1zZWxlY3QtbWF0Y2hlclxuICAgICAgICAgICAgY2xhc3M9XCJsYXlvdXQtcGFkZGluZy1yaWdodC14c1wiXG4gICAgICAgICAgICBbY2xhc3Mua2JxLWFjdGl2ZV09XCJ5ZWFyU2VsZWN0LnBhbmVsT3BlblwiXG4gICAgICAgICAgICBbY29sb3JdPVwiJ2NvbnRyYXN0J1wiXG4gICAgICAgICAgICBba2JxU3R5bGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICBbdGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBzZWxlY3RlZFllYXIudmFsdWUgfX1cblxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBrYnEtaWNvbj1cIm1jLWFuZ2xlLWRvd24tU18xNlwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJsYXlvdXQtcGFkZGluZy1sZWZ0LTN4c1wiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8a2JxLW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhcnNcIlxuICAgICAgICAgICAgW2ticVRvb2x0aXBEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ5ZWFyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgeWVhci52YWx1ZSB9fVxuICAgICAgICA8L2ticS1vcHRpb24+XG4gICAgPC9rYnEtc2VsZWN0PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJrYnEtY2FsZW5kYXItaGVhZGVyX19idXR0b24tZ3JvdXBcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGticS1idXR0b25cbiAgICAgICAgY2xhc3M9XCJrYnEtY2FsZW5kYXItaGVhZGVyX19wcmV2aW91cy1idXR0b25cIlxuICAgICAgICBbY29sb3JdPVwiJ2NvbnRyYXN0J1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJwcmV2aW91c0Rpc2FibGVkXCJcbiAgICAgICAgW2ticVN0eWxlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJldmlvdXNNb250aCgpXCJcbiAgICA+XG4gICAgICAgIDxpIGticS1pY29uPVwibWMtYW5nbGUtbGVmdC1MXzE2XCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgIFtjb2xvcl09XCInY29udHJhc3QnXCJcbiAgICAgICAgW2ticVN0eWxlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Q3VycmVudERhdGUoKVwiXG4gICAgPlxuICAgICAgICA8aSBrYnEtaWNvbj1cIm1jLWNpcmNsZS04XzE2XCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgIGNsYXNzPVwia2JxLWNhbGVuZGFyLWhlYWRlcl9fbmV4dC1idXR0b25cIlxuICAgICAgICBbY29sb3JdPVwiJ2NvbnRyYXN0J1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJuZXh0RGlzYWJsZWRcIlxuICAgICAgICBba2JxU3R5bGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3ROZXh0TW9udGgoKVwiXG4gICAgPlxuICAgICAgICA8aSBrYnEtaWNvbj1cIm1jLWFuZ2xlLXJpZ2h0LUxfMTZcIj48L2k+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==