@koobiq/components 17.0.0-rc.2 → 17.0.0-rc.4

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 (100) hide show
  1. package/alert/_alert-theme.scss +47 -20
  2. package/alert/alert.component.d.ts +23 -3
  3. package/alert/alert.component.scss +89 -56
  4. package/code-block/_code-block-theme.scss +23 -1
  5. package/code-block/actionbar.component.scss +2 -2
  6. package/code-block/code-block.component.d.ts +12 -4
  7. package/code-block/code-block.scss +36 -9
  8. package/core/locales/formatters.d.ts +96 -0
  9. package/core/locales/locale-service.d.ts +96 -0
  10. package/core/pop-up/pop-up-trigger.d.ts +3 -1
  11. package/core/styles/_variables.scss +1 -1
  12. package/core/styles/common/_tokens.scss +28 -0
  13. package/core/styles/theming/_components-theming.scss +67 -10
  14. package/core/styles/theming/_theming.scss +2 -2
  15. package/core/styles/typography/_typography.scss +35 -2
  16. package/core/utils/data-size/config.d.ts +20 -2
  17. package/core/utils/data-size/data-size.pipe.d.ts +10 -9
  18. package/core/utils/data-size/size.d.ts +3 -4
  19. package/ellipsis-center/ellipsis-center.directive.d.ts +3 -2
  20. package/esm2022/alert/alert.component.mjs +52 -5
  21. package/esm2022/code-block/actionbar.component.mjs +2 -2
  22. package/esm2022/code-block/code-block.component.mjs +58 -14
  23. package/esm2022/core/animation/select-animations.mjs +4 -4
  24. package/esm2022/core/locales/formatters.mjs +97 -1
  25. package/esm2022/core/pop-up/pop-up-trigger.mjs +18 -11
  26. package/esm2022/core/utils/data-size/config.mjs +5 -17
  27. package/esm2022/core/utils/data-size/data-size.pipe.mjs +36 -22
  28. package/esm2022/core/utils/data-size/size.mjs +10 -14
  29. package/esm2022/core/version.mjs +2 -2
  30. package/esm2022/dropdown/dropdown-animations.mjs +4 -4
  31. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +7 -5
  32. package/esm2022/file-upload/file-upload.module.mjs +4 -5
  33. package/esm2022/form-field/password-toggle.mjs +11 -9
  34. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  35. package/esm2022/modal/modal.component.mjs +5 -6
  36. package/esm2022/navbar/navbar-item.component.mjs +9 -9
  37. package/esm2022/select/select-option.directive.mjs +7 -5
  38. package/esm2022/splitter/splitter.component.mjs +36 -16
  39. package/esm2022/textarea/textarea.component.mjs +12 -10
  40. package/esm2022/timezone/timezone-option.directive.mjs +7 -5
  41. package/esm2022/title/title.directive.mjs +2 -3
  42. package/esm2022/toast/toast-container.component.mjs +2 -2
  43. package/esm2022/toast/toast.component.mjs +4 -4
  44. package/esm2022/toast/toast.service.mjs +2 -2
  45. package/esm2022/toast/toast.type.mjs +3 -1
  46. package/esm2022/tooltip/tooltip.component.mjs +26 -12
  47. package/esm2022/tree/padding.directive.mjs +2 -2
  48. package/fesm2022/koobiq-components-alert.mjs +52 -5
  49. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-code-block.mjs +57 -14
  51. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-core.mjs +160 -62
  53. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-dropdown.mjs +3 -3
  55. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-ellipsis-center.mjs +5 -4
  57. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-file-upload.mjs +3 -4
  59. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-form-field.mjs +15 -15
  61. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-loader-overlay.mjs +1 -1
  63. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-modal.mjs +4 -5
  65. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-navbar.mjs +8 -8
  67. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-select.mjs +5 -4
  69. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-splitter.mjs +35 -15
  71. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-textarea.mjs +11 -9
  73. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-timezone.mjs +5 -4
  75. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-title.mjs +1 -2
  77. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-toast.mjs +8 -6
  79. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-tooltip.mjs +24 -11
  81. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-tree.mjs +1 -1
  83. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  84. package/file-upload/file-upload.module.d.ts +1 -1
  85. package/form-field/password-toggle.d.ts +3 -2
  86. package/link/_link-theme.scss +4 -2
  87. package/navbar/navbar-item.component.d.ts +4 -4
  88. package/package.json +6 -6
  89. package/prebuilt-themes/dark-theme.css +1 -1
  90. package/prebuilt-themes/light-theme.css +1 -1
  91. package/schematics/ng-add/index.js +4 -4
  92. package/select/select-option.directive.d.ts +3 -2
  93. package/splitter/splitter.component.d.ts +10 -5
  94. package/timezone/timezone-option.directive.d.ts +3 -2
  95. package/title/title.directive.d.ts +0 -1
  96. package/toast/_toast-theme.scss +10 -5
  97. package/toast/toast-container.component.scss +4 -1
  98. package/toast/toast.component.scss +22 -17
  99. package/toast/toast.type.d.ts +2 -0
  100. package/tooltip/tooltip.component.d.ts +12 -8
@@ -32,14 +32,14 @@ export class KbqActionBarComponent {
32
32
  });
33
33
  }
34
34
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- /** @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", lessContrast: "lessContrast", selectedTabIndex: "selectedTabIndex", multiLine: "multiLine", softWrap: "softWrap" }, outputs: { toggleSoftWrap: "toggleSoftWrap", downloadCode: "downloadCode", copyCode: "copyCode", openExternalSystem: "openExternalSystem" }, host: { properties: { "class.kbq-code-block-actionbar_less-contrast": "lessContrast" }, 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<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:-1px;right:0;padding:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px);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, 36px);height:40px;margin-top:calc(var(--kbq-code-block-size-actionbar-padding-vertical, 8px) * -1)}\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 }); }
35
+ /** @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", lessContrast: "lessContrast", selectedTabIndex: "selectedTabIndex", multiLine: "multiLine", softWrap: "softWrap" }, outputs: { toggleSoftWrap: "toggleSoftWrap", downloadCode: "downloadCode", copyCode: "copyCode", openExternalSystem: "openExternalSystem" }, host: { properties: { "class.kbq-code-block-actionbar_less-contrast": "lessContrast" }, 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<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:-1px;right:0;margin:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px);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, 36px);height:32px;margin-top:calc(var(--kbq-code-block-size-actionbar-padding-vertical, 8px) * -1)}\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 }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqActionBarComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: 'kbq-actionbar-block', host: {
40
40
  class: 'kbq-code-block-actionbar',
41
41
  '[class.kbq-code-block-actionbar_less-contrast]': 'lessContrast'
42
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kbq-code-block__fade-gradient\"></div>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:-1px;right:0;padding:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px);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, 36px);height:40px;margin-top:calc(var(--kbq-code-block-size-actionbar-padding-vertical, 8px) * -1)}\n"] }]
42
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kbq-code-block__fade-gradient\"></div>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:-1px;right:0;margin:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px);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, 36px);height:32px;margin-top:calc(var(--kbq-code-block-size-actionbar-padding-vertical, 8px) * -1)}\n"] }]
43
43
  }], propDecorators: { copyTooltip: [{
44
44
  type: ViewChild,
45
45
  args: ['copyTooltip']
@@ -1,16 +1,18 @@
1
1
  import { Clipboard } from '@angular/cdk/clipboard';
2
2
  import { Component, ViewEncapsulation, Input, Inject, InjectionToken, ChangeDetectionStrategy, Optional, ElementRef, ChangeDetectorRef, ViewChild, Renderer2 } from '@angular/core';
3
3
  import { KbqTabGroup } from '@koobiq/components/tabs';
4
- import { Subject, Subscription } from 'rxjs';
5
- import { debounceTime } from 'rxjs/operators';
4
+ import { pairwise, Subject, Subscription } from 'rxjs';
5
+ import { debounceTime, filter, startWith, switchMap } from 'rxjs/operators';
6
+ import { FocusMonitor } from '@angular/cdk/a11y';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/cdk/clipboard";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@koobiq/components/button";
10
- import * as i4 from "@koobiq/components/icon";
11
- import * as i5 from "ngx-highlightjs";
12
- import * as i6 from "@koobiq/components/tabs";
13
- import * as i7 from "./actionbar.component";
9
+ import * as i2 from "@angular/cdk/a11y";
10
+ import * as i3 from "@angular/common";
11
+ import * as i4 from "@koobiq/components/button";
12
+ import * as i5 from "@koobiq/components/icon";
13
+ import * as i6 from "ngx-highlightjs";
14
+ import * as i7 from "@koobiq/components/tabs";
15
+ import * as i8 from "./actionbar.component";
14
16
  export const COPIED_MESSAGE_TOOLTIP_TIMEOUT = 100;
15
17
  export const DEFAULT_EXTENSION = 'txt';
16
18
  export const LANGUAGES_EXTENSIONS = {
@@ -43,6 +45,10 @@ export const KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION = {
43
45
  openExternalSystemTooltip: 'Открыть во внешней системе'
44
46
  };
45
47
  const actionBarBlockLeftMargin = 24;
48
+ const hasScroll = (element) => {
49
+ const { scrollHeight, scrollWidth, clientHeight, clientWidth } = element;
50
+ return scrollHeight > clientHeight || scrollWidth > clientWidth;
51
+ };
46
52
  export class KbqCodeBlockComponent {
47
53
  get noHeader() {
48
54
  return this.codeFiles.length === 1 && !this.codeFiles[0].filename;
@@ -50,11 +56,12 @@ export class KbqCodeBlockComponent {
50
56
  get singleFile() {
51
57
  return this.codeFiles.length === 1;
52
58
  }
53
- constructor(elementRef, changeDetectorRef, clipboard, renderer, config) {
59
+ constructor(elementRef, changeDetectorRef, clipboard, renderer, focusMonitor, config) {
54
60
  this.elementRef = elementRef;
55
61
  this.changeDetectorRef = changeDetectorRef;
56
62
  this.clipboard = clipboard;
57
63
  this.renderer = renderer;
64
+ this.focusMonitor = focusMonitor;
58
65
  this.config = config;
59
66
  this.lineNumbers = true;
60
67
  this.softWrap = false;
@@ -63,9 +70,12 @@ export class KbqCodeBlockComponent {
63
70
  this.viewAll = false;
64
71
  this.multiLine = false;
65
72
  this.isTopOverflow = false;
73
+ this.hasFocus = false;
66
74
  this.resizeStream = new Subject();
75
+ this.currentCodeBlock = new Subject();
67
76
  this.resizeDebounceInterval = 100;
68
77
  this.resizeSubscription = Subscription.EMPTY;
78
+ this.codeBlockSubscription = Subscription.EMPTY;
69
79
  this.updateHeader = () => {
70
80
  const clientWidth = this.elementRef.nativeElement.querySelector('kbq-actionbar-block').clientWidth;
71
81
  this.renderer.setStyle(this.tabGroup.tabHeader.elementRef.nativeElement, 'padding-right', `${actionBarBlockLeftMargin + clientWidth}px`);
@@ -82,8 +92,23 @@ export class KbqCodeBlockComponent {
82
92
  .pipe(debounceTime(this.resizeDebounceInterval))
83
93
  .subscribe(this.updateHeader);
84
94
  }
95
+ ngAfterViewInit() {
96
+ // render focus border if origin is keyboard
97
+ this.codeBlockSubscription = this.currentCodeBlock.pipe(startWith(null), pairwise(), switchMap(([prev, current]) => {
98
+ if (prev) {
99
+ this.focusMonitor.stopMonitoring(prev);
100
+ }
101
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
102
+ return this.focusMonitor.monitor(current).pipe(filter((origin) => origin === 'keyboard'));
103
+ })).subscribe(() => {
104
+ this.hasFocus = true;
105
+ this.changeDetectorRef.markForCheck();
106
+ });
107
+ this.currentCodeBlock.next(this.elementRef.nativeElement.querySelector('code'));
108
+ }
85
109
  ngOnDestroy() {
86
110
  this.resizeSubscription.unsubscribe();
111
+ this.codeBlockSubscription.unsubscribe();
87
112
  }
88
113
  toggleSoftWrap() {
89
114
  this.softWrap = !this.softWrap;
@@ -119,6 +144,7 @@ export class KbqCodeBlockComponent {
119
144
  this.updateMultiline();
120
145
  this.isTopOverflow = false;
121
146
  setTimeout(this.updateHeader);
147
+ setTimeout(() => this.currentCodeBlock.next(this.elementRef.nativeElement.querySelector('code')));
122
148
  }
123
149
  checkOverflow(currentCodeContentElement) {
124
150
  if (this.noHeader) {
@@ -133,13 +159,31 @@ export class KbqCodeBlockComponent {
133
159
  currentCodeContentElement?.scroll({ top: 0, behavior: 'instant' });
134
160
  }
135
161
  }
162
+ // TODO: replace with property to reduce calculations
163
+ canShowFocus(currentCodeContent) {
164
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
165
+ const currentCodeBlock = currentCodeContent.querySelector('code');
166
+ return (hasScroll(currentCodeContent) || hasScroll(currentCodeBlock))
167
+ && (!!this.maxHeight && this.viewAll || !this.maxHeight);
168
+ }
136
169
  getFullFileName(codeFile) {
137
170
  const fileName = codeFile.filename || 'code';
138
171
  const extension = LANGUAGES_EXTENSIONS[codeFile.language] || DEFAULT_EXTENSION;
139
172
  return `${fileName}.${extension}`;
140
173
  }
141
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Clipboard }, { token: i0.Renderer2 }, { token: KBQ_CODE_BLOCK_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
142
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCodeBlockComponent, selector: "kbq-code-block", inputs: { lineNumbers: "lineNumbers", codeFiles: "codeFiles", filled: "filled", maxHeight: "maxHeight", softWrap: "softWrap" }, host: { listeners: { "window:resize": "resizeStream.next($event)" }, properties: { "class.kbq-code-block_filled": "filled", "class.kbq-code-block_outline": "!filled", "class.kbq-code-block_hide-line-numbers": "!lineNumbers", "class.kbq-code-block_single-file": "singleFile", "class.kbq-code-block_no-header": "noHeader", "class.kbq-code-block_header-with-shadow": "isTopOverflow" }, classAttribute: "kbq-code-block" }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: KbqTabGroup, descendants: true }], exportAs: ["kbqCodeBlock"], ngImport: i0, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n (scroll)=\"checkOverflow(codeContent)\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"maxHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <span class=\"bg-wrapper\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"onShowMoreClick(codeContent)\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </span>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-header{padding:var(--kbq-code-block-size-header-padding-vertical, 8px) calc(var(--kbq-code-block-size-header-padding-right, 8px) + 152px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px)}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px)}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block:not(:has(.kbq-code-block__show-more)) .kbq-code-block__code{overflow-y:auto}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:auto}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:100%;position:absolute;bottom:0}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 16px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 0);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}.kbq-code-block__show-more .bg-wrapper{border-radius:var(--kbq-button-size-border-radius, 8px)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i3.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i5.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }, { kind: "component", type: i6.KbqTabGroup, selector: "kbq-tab-group", inputs: ["disabled", "transparent", "onSurface", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["kbqTabGroup"] }, { kind: "directive", type: i6.KbqTabLabel, selector: "[kbq-tab-label], [kbqTabLabel]" }, { kind: "component", type: i6.KbqTab, selector: "kbq-tab", inputs: ["disabled", "tooltipTitle", "tooltipPlacement", "label", "empty", "tabId"], exportAs: ["kbqTab"] }, { kind: "component", type: i7.KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: ["config", "codeFiles", "lessContrast", "selectedTabIndex", "multiLine", "softWrap"], outputs: ["toggleSoftWrap", "downloadCode", "copyCode", "openExternalSystem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
174
+ onEnter(currentCodeBlock) {
175
+ // defer execution after toggle view mode
176
+ setTimeout(() => {
177
+ if (this.canShowFocus(currentCodeBlock)) {
178
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
179
+ this.focusMonitor.focusVia(
180
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
181
+ currentCodeBlock.querySelector('code'), 'keyboard');
182
+ }
183
+ }, 0);
184
+ }
185
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Clipboard }, { token: i0.Renderer2 }, { token: i2.FocusMonitor }, { token: KBQ_CODE_BLOCK_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
186
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCodeBlockComponent, selector: "kbq-code-block", inputs: { lineNumbers: "lineNumbers", codeFiles: "codeFiles", filled: "filled", maxHeight: "maxHeight", softWrap: "softWrap" }, host: { listeners: { "window:resize": "resizeStream.next($event)" }, properties: { "class.kbq-code-block_filled": "filled", "class.kbq-code-block_outline": "!filled", "class.kbq-code-block_hide-line-numbers": "!lineNumbers", "class.kbq-code-block_single-file": "singleFile", "class.kbq-code-block_no-header": "noHeader", "class.kbq-code-block_header-with-shadow": "isTopOverflow" }, classAttribute: "kbq-code-block" }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: KbqTabGroup, descendants: true }], exportAs: ["kbqCodeBlock"], ngImport: i0, template: "<kbq-tab-group\n [class.kbq-focused]=\"hasFocus\"\n (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n (scroll)=\"checkOverflow(codeContent)\"\n ><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n [tabIndex]=\"canShowFocus(codeContent) ? 0 : -1\"\n (highlighted)=\"onHighlighted()\"\n (blur)=\"hasFocus = false\">\n </code></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"maxHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <span class=\"bg-wrapper\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (keydown.enter)=\"onEnter(codeContent)\"\n (click)=\"onShowMoreClick(codeContent)\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </span>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-radius:var(--kbq-code-block-size-container-border-radius, 12px);border-width:0}.kbq-code-block .kbq-tab-header{padding:var(--kbq-code-block-size-header-padding-vertical, 8px) calc(var(--kbq-code-block-size-header-padding-right, 8px) + 152px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px);border-width:var(--kbq-code-block-size-container-border-width, 1px) var(--kbq-code-block-size-container-border-width, 1px) 0 var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px) var(--kbq-code-block-size-container-border-radius, 12px) 0 0}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-code-block__code>code:focus-visible{outline:none}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block:not(.kbq-code-block_no-header) .kbq-tab-body__wrapper{border-top-width:0}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-tab-body__wrapper{border-width:var(--kbq-code-block-size-container-border-width, 1px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block:not(:has(.kbq-code-block__show-more)) .kbq-code-block__code{overflow-y:auto}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:0 0 var(--kbq-code-block-size-container-border-radius, 12px) var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:auto}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:calc(100% - var(--kbq-code-block-size-container-border-width, 1px) * 2);position:absolute;bottom:var(--kbq-code-block-size-container-border-width, 1px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 16px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 0);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}.kbq-code-block__show-more .bg-wrapper{border-radius:var(--kbq-button-size-border-radius, 8px)}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i4.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i6.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }, { kind: "component", type: i7.KbqTabGroup, selector: "kbq-tab-group", inputs: ["disabled", "transparent", "onSurface", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["kbqTabGroup"] }, { kind: "directive", type: i7.KbqTabLabel, selector: "[kbq-tab-label], [kbqTabLabel]" }, { kind: "component", type: i7.KbqTab, selector: "kbq-tab", inputs: ["disabled", "tooltipTitle", "tooltipPlacement", "label", "empty", "tabId"], exportAs: ["kbqTab"] }, { kind: "component", type: i8.KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: ["config", "codeFiles", "lessContrast", "selectedTabIndex", "multiLine", "softWrap"], outputs: ["toggleSoftWrap", "downloadCode", "copyCode", "openExternalSystem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
143
187
  }
144
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockComponent, decorators: [{
145
189
  type: Component,
@@ -152,8 +196,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
152
196
  '[class.kbq-code-block_no-header]': 'noHeader',
153
197
  '[class.kbq-code-block_header-with-shadow]': 'isTopOverflow',
154
198
  '(window:resize)': 'resizeStream.next($event)'
155
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n (scroll)=\"checkOverflow(codeContent)\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"maxHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <span class=\"bg-wrapper\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"onShowMoreClick(codeContent)\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </span>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-header{padding:var(--kbq-code-block-size-header-padding-vertical, 8px) calc(var(--kbq-code-block-size-header-padding-right, 8px) + 152px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px)}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px)}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block:not(:has(.kbq-code-block__show-more)) .kbq-code-block__code{overflow-y:auto}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:auto}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:100%;position:absolute;bottom:0}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 16px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 0);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}.kbq-code-block__show-more .bg-wrapper{border-radius:var(--kbq-button-size-border-radius, 8px)}\n"] }]
156
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Clipboard }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
199
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tab-group\n [class.kbq-focused]=\"hasFocus\"\n (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n (scroll)=\"checkOverflow(codeContent)\"\n ><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n [tabIndex]=\"canShowFocus(codeContent) ? 0 : -1\"\n (highlighted)=\"onHighlighted()\"\n (blur)=\"hasFocus = false\">\n </code></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"maxHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <span class=\"bg-wrapper\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (keydown.enter)=\"onEnter(codeContent)\"\n (click)=\"onShowMoreClick(codeContent)\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </span>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-radius:var(--kbq-code-block-size-container-border-radius, 12px);border-width:0}.kbq-code-block .kbq-tab-header{padding:var(--kbq-code-block-size-header-padding-vertical, 8px) calc(var(--kbq-code-block-size-header-padding-right, 8px) + 152px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px);border-width:var(--kbq-code-block-size-container-border-width, 1px) var(--kbq-code-block-size-container-border-width, 1px) 0 var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px) var(--kbq-code-block-size-container-border-radius, 12px) 0 0}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-code-block__code>code:focus-visible{outline:none}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block:not(.kbq-code-block_no-header) .kbq-tab-body__wrapper{border-top-width:0}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-tab-body__wrapper{border-width:var(--kbq-code-block-size-container-border-width, 1px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block:not(:has(.kbq-code-block__show-more)) .kbq-code-block__code{overflow-y:auto}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:0 0 var(--kbq-code-block-size-container-border-radius, 12px) var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:auto}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:calc(100% - var(--kbq-code-block-size-container-border-width, 1px) * 2);position:absolute;bottom:var(--kbq-code-block-size-container-border-width, 1px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 16px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 0);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}.kbq-code-block__show-more .bg-wrapper{border-radius:var(--kbq-button-size-border-radius, 8px)}\n"] }]
200
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Clipboard }, { type: i0.Renderer2 }, { type: i2.FocusMonitor }, { type: undefined, decorators: [{
157
201
  type: Optional
158
202
  }, {
159
203
  type: Inject,
@@ -172,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
172
216
  }], softWrap: [{
173
217
  type: Input
174
218
  }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLFFBQVEsRUFDUixVQUFVLEVBQ1YsaUJBQWlCLEVBRWpCLFNBQVMsRUFDVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQixXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVE5QyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLElBQUksRUFBRSxNQUFNO0lBQ1osR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLElBQUk7SUFDVixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsQ0FBQyxFQUFFLEdBQUc7SUFD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USxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNMLENBQUM7SUFXTyxlQUFlLENBQUMsUUFBcUI7UUFDekMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7UUFDN0MsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGlCQUFpQixDQUFDO1FBRS9FLE9BQU8sR0FBRyxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7SUFDdEMsQ0FBQztpSUFuSVEscUJBQXFCLCtIQWlDTiw0QkFBNEI7cUhBakMzQyxxQkFBcUIsbW9CQUNuQixXQUFXLDRFQ2pGMUIsaXZFQW1EQTs7MkZENkJhLHFCQUFxQjtrQkFsQmpDLFNBQVM7K0JBQ0ksZ0JBQWdCLFlBQ2hCLGNBQWMsUUFHbEI7d0JBQ0YsS0FBSyxFQUFFLGdCQUFnQjt3QkFDdkIsK0JBQStCLEVBQUUsUUFBUTt3QkFDekMsZ0NBQWdDLEVBQUUsU0FBUzt3QkFDM0MsMENBQTBDLEVBQUUsY0FBYzt3QkFDMUQsb0NBQW9DLEVBQUUsWUFBWTt3QkFDbEQsa0NBQWtDLEVBQUUsVUFBVTt3QkFDOUMsMkNBQTJDLEVBQUUsZUFBZTt3QkFDNUQsaUJBQWlCLEVBQUUsMkJBQTJCO3FCQUNqRCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs7MEJBbUNoQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDRCQUE0Qjt5Q0FoQzVCLFFBQVE7c0JBQS9CLFNBQVM7dUJBQUMsV0FBVztnQkFFYixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIE9wdGlvbmFsLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZCxcbiAgICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLYnFUYWJDaGFuZ2VFdmVudCwgS2JxVGFiR3JvdXAgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBLYnFDb2RlQmxvY2tDb25maWd1cmF0aW9uLFxuICAgIEticUNvZGVGaWxlXG59IGZyb20gJy4vY29kZS1ibG9jay50eXBlcyc7XG5cblxuZXhwb3J0IGNvbnN0IENPUElFRF9NRVNTQUdFX1RPT0xUSVBfVElNRU9VVCA9IDEwMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYVEVOU0lPTiA9ICd0eHQnO1xuZXhwb3J0IGNvbnN0IExBTkdVQUdFU19FWFRFTlNJT05TID0ge1xuICAgIGh0bWw6ICdodG1sJyxcbiAgICBjc3M6ICdjc3MnLFxuICAgIHBocDogJ3BocCcsXG4gICAgamF2YTogJ2phdmEnLFxuICAgIGJhc2g6ICdzaCcsXG4gICAgamF2YXNjcmlwdDogJ2pzJyxcbiAgICB0eXBlc2NyaXB0OiAndHMnLFxuICAgIHB5dGhvbjogJ3B5JyxcbiAgICBydWJ5OiAncmInLFxuICAgIGM6ICdjJyxcbiAgICAnYysrJzogJ2NwcCcsXG4gICAgJ2MjJzogJ2NzJyxcbiAgICBjc2hhcnA6ICdjcycsXG4gICAgbHVhOiAnbHVhJyxcbiAgICB4bWw6ICd4bWwnLFxuICAgIGpzb246ICdqc29uJ1xufTtcblxuZXhwb3J0IGNvbnN0IEtCUV9DT0RFX0JMT0NLX0NPTkZJR1VSQVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignS2JxQ29kZUJsb2NrQ29uZmlndXJhdGlvbicpO1xuXG5leHBvcnQgY29uc3QgS0JRX0NPREVfQkxPQ0tfREVGQVVMVF9DT05GSUdVUkFUSU9OID0ge1xuICAgIHNvZnRXcmFwT25Ub29sdGlwOiAn0JLQutC70Y7Rh9C40YLRjCDQv9C10YDQtdC90L7RgSDQv9C+INGB0LvQvtCy0LDQvCcsXG4gICAgc29mdFdyYXBPZmZUb29sdGlwOiAn0JLRi9C60LvRjtGH0LjRgtGMINC/0LXRgNC10L3QvtGBINC/0L4g0YHQu9C+0LLQsNC8JyxcbiAgICBkb3dubG9hZFRvb2x0aXA6ICfQodC60LDRh9Cw0YLRjCcsXG4gICAgY29waWVkVG9vbHRpcDogJ+KckyDQodC60L7Qv9C40YDQvtCy0LDQvdC+JyxcbiAgICBjb3B5VG9vbHRpcDogJ9Ch0LrQvtC/0LjRgNC+0LLQsNGC0YwnLFxuICAgIHZpZXdBbGxUZXh0OiAn0J/QvtC60LDQt9Cw0YLRjCDQstGB0LUnLFxuICAgIHZpZXdMZXNzVGV4dDogJ9Ch0LLQtdGA0L3Rg9GC0YwnLFxuICAgIG9wZW5FeHRlcm5hbFN5c3RlbVRvb2x0aXA6ICfQntGC0LrRgNGL0YLRjCDQstC+INCy0L3QtdGI0L3QtdC5INGB0LjRgdGC0LXQvNC1J1xufTtcblxuXG5jb25zdCBhY3Rpb25CYXJCbG9ja0xlZnRNYXJnaW4gPSAyNDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYnEtY29kZS1ibG9jaycsXG4gICAgZXhwb3J0QXM6ICdrYnFDb2RlQmxvY2snLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2RlLWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2RlLWJsb2NrLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvZGUtYmxvY2snLFxuICAgICAgICAnW2NsYXNzLmticS1jb2RlLWJsb2NrX2ZpbGxlZF0nOiAnZmlsbGVkJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29kZS1ibG9ja19vdXRsaW5lXSc6ICchZmlsbGVkJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29kZS1ibG9ja19oaWRlLWxpbmUtbnVtYmVyc10nOiAnIWxpbmVOdW1iZXJzJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29kZS1ibG9ja19zaW5nbGUtZmlsZV0nOiAnc2luZ2xlRmlsZScsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvZGUtYmxvY2tfbm8taGVhZGVyXSc6ICdub0hlYWRlcicsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvZGUtYmxvY2tfaGVhZGVyLXdpdGgtc2hhZG93XSc6ICdpc1RvcE92ZXJmbG93JyxcbiAgICAgICAgJyh3aW5kb3c6cmVzaXplKSc6ICdyZXNpemVTdHJlYW0ubmV4dCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb2RlQmxvY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoS2JxVGFiR3JvdXApIHRhYkdyb3VwOiBLYnFUYWJHcm91cDtcblxuICAgIEBJbnB1dCgpIGxpbmVOdW1iZXJzID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBjb2RlRmlsZXM6IEticUNvZGVGaWxlW107XG4gICAgQElucHV0KCkgZmlsbGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG1heEhlaWdodDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHNvZnRXcmFwOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBnZXQgbm9IZWFkZXIoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZUZpbGVzLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5jb2RlRmlsZXNbMF0uZmlsZW5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IHNpbmdsZUZpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVGaWxlcy5sZW5ndGggPT09IDE7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG4gICAgY29waWVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgdmlld0FsbDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIG11bHRpTGluZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlzVG9wT3ZlcmZsb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IHJlc2l6ZVN0cmVhbSA9IG5ldyBTdWJqZWN0PEV2ZW50PigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNpemVEZWJvdW5jZUludGVydmFsOiBudW1iZXIgPSAxMDA7XG4gICAgcHJpdmF0ZSByZXNpemVTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBjbGlwYm9hcmQ6IENsaXBib2FyZCxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEtCUV9DT0RFX0JMT0NLX0NPTkZJR1VSQVRJT04pIHB1YmxpYyBjb25maWc6IEticUNvZGVCbG9ja0NvbmZpZ3VyYXRpb25cbiAgICApIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWcgfHwgS0JRX0NPREVfQkxPQ0tfREVGQVVMVF9DT05GSUdVUkFUSU9OO1xuXG4gICAgICAgIHRoaXMucmVzaXplU3Vic2NyaXB0aW9uID0gdGhpcy5yZXNpemVTdHJlYW1cbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLnJlc2l6ZURlYm91bmNlSW50ZXJ2YWwpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLnVwZGF0ZUhlYWRlcik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlSGVhZGVyID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBjbGllbnRXaWR0aDogbnVtYmVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcigna2JxLWFjdGlvbmJhci1ibG9jaycpLmNsaWVudFdpZHRoO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICB0aGlzLnRhYkdyb3VwLnRhYkhlYWRlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAncGFkZGluZy1yaWdodCcsXG4gICAgICAgICAgICBgJHthY3Rpb25CYXJCbG9ja0xlZnRNYXJnaW4gKyBjbGllbnRXaWR0aH1weGBcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHRvZ2dsZVNvZnRXcmFwKCkge1xuICAgICAgICB0aGlzLnNvZnRXcmFwID0gIXRoaXMuc29mdFdyYXA7XG4gICAgfVxuXG4gICAgdG9nZ2xlVmlld0FsbCgpIHtcbiAgICAgICAgdGhpcy52aWV3QWxsID0gIXRoaXMudmlld0FsbDtcbiAgICB9XG5cbiAgICBkb3dubG9hZENvZGUoKSB7XG4gICAgICAgIGNvbnN0IGNvZGVGaWxlID0gdGhpcy5jb2RlRmlsZXNbdGhpcy5zZWxlY3RlZFRhYkluZGV4XTtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtjb2RlRmlsZS5jb250ZW50XSwgeyB0eXBlOiAndGV4dC9wbGFpbicgfSk7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuXG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgYCR7dGhpcy5nZXRGdWxsRmlsZU5hbWUoY29kZUZpbGUpfWApO1xuICAgICAgICBsaW5rLmNsaWNrKCk7XG4gICAgfVxuXG4gICAgY29weUNvZGUoKSB7XG4gICAgICAgIHRoaXMuY2xpcGJvYXJkLmNvcHkodGhpcy5jb2RlRmlsZXNbdGhpcy5zZWxlY3RlZFRhYkluZGV4XS5jb250ZW50KTtcbiAgICAgICAgdGhpcy5jb3BpZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9wZW5FeHRlcm5hbFN5c3RlbSgpIHtcbiAgICAgICAgY29uc3QgZXh0ZXJuYWxMaW5rID0gdGhpcy5jb2RlRmlsZXNbdGhpcy5zZWxlY3RlZFRhYkluZGV4XS5saW5rO1xuICAgICAgICB3aW5kb3cub3BlbihleHRlcm5hbExpbmssICdfYmxhbmsnKTtcbiAgICB9XG5cbiAgICBvbkhpZ2hsaWdodGVkKCkge1xuICAgICAgICBzZXRUaW1lb3V0KHRoaXMudXBkYXRlTXVsdGlsaW5lLCAxKTtcbiAgICB9XG5cbiAgICBnZXRNYXhIZWlnaHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4SGVpZ2h0ID4gMCAmJiAhdGhpcy52aWV3QWxsID8gYCR7dGhpcy5tYXhIZWlnaHR9cHhgIDogJyc7XG4gICAgfVxuXG4gICAgb25TZWxlY3RUYWIoJGV2ZW50OiBLYnFUYWJDaGFuZ2VFdmVudCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiSW5kZXggPSAkZXZlbnQuaW5kZXg7XG4gICAgICAgIHRoaXMudXBkYXRlTXVsdGlsaW5lKCk7XG4gICAgICAgIHRoaXMuaXNUb3BPdmVyZmxvdyA9IGZhbHNlO1xuXG4gICAgICAgIHNldFRpbWVvdXQodGhpcy51cGRhdGVIZWFkZXIpO1xuICAgIH1cblxuICAgIGNoZWNrT3ZlcmZsb3coY3VycmVudENvZGVDb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMubm9IZWFkZXIpIHsgcmV0dXJuOyB9XG4gICAgICAgIHRoaXMuaXNUb3BPdmVyZmxvdyA9IGN1cnJlbnRDb2RlQ29udGVudEVsZW1lbnQuc2Nyb2xsVG9wID4gMDtcbiAgICB9XG5cbiAgICBvblNob3dNb3JlQ2xpY2soY3VycmVudENvZGVDb250ZW50RWxlbWVudDogSFRNTFByZUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy50b2dnbGVWaWV3QWxsKCk7XG5cbiAgICAgICAgLy8gU2hvdWxkIGV4cGxpY2l0bHkgc2Nyb2xsIHRvIHRvcCBzbyBjb250ZW50IHdpbGwgYmUgY3JvcHBlZCBmcm9tIHRoZSBib3R0b21cbiAgICAgICAgaWYgKCF0aGlzLnZpZXdBbGwpIHtcbiAgICAgICAgICAgIGN1cnJlbnRDb2RlQ29udGVudEVsZW1lbnQ/LnNjcm9sbCh7IHRvcDogMCwgYmVoYXZpb3I6ICdpbnN0YW50JyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTXVsdGlsaW5lID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm11bHRpTGluZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmhsanMtbG4tbnVtYmVycycpLmxlbmd0aCA+IDE7XG5cbiAgICAgICAgdGhpcy51cGRhdGVIZWFkZXIoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RnVsbEZpbGVOYW1lKGNvZGVGaWxlOiBLYnFDb2RlRmlsZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gY29kZUZpbGUuZmlsZW5hbWUgfHwgJ2NvZGUnO1xuICAgICAgICBjb25zdCBleHRlbnNpb24gPSBMQU5HVUFHRVNfRVhURU5TSU9OU1tjb2RlRmlsZS5sYW5ndWFnZV0gfHwgREVGQVVMVF9FWFRFTlNJT047XG5cbiAgICAgICAgcmV0dXJuIGAke2ZpbGVOYW1lfS4ke2V4dGVuc2lvbn1gO1xuICAgIH1cbn1cbiIsIjxrYnEtdGFiLWdyb3VwIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJvblNlbGVjdFRhYigkZXZlbnQpXCI+XG4gICAgPGticS10YWJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvZGVGaWxlIG9mIGNvZGVGaWxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzaW5nbGVGaWxlXCI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGticS10YWItbGFiZWw+e3sgY29kZUZpbGUuZmlsZW5hbWUgfX08L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxwcmUgY2xhc3M9XCJrYnEtY29kZS1ibG9ja19fY29kZSBrYnEtc2Nyb2xsYmFyXCJcbiAgICAgICAgICAgICAjY29kZUNvbnRlbnRcbiAgICAgICAgICAgICBbc3R5bGUubWF4LWhlaWdodF09XCJnZXRNYXhIZWlnaHQoKVwiXG4gICAgICAgICAgICAgW2NsYXNzLmticS1jb2RlLWJsb2NrX19jb2RlX3NvZnQtd3JhcF09XCJzb2Z0V3JhcFwiXG4gICAgICAgICAgICAgW2NsYXNzLmticS1jb2RlLWJsb2NrX19jb2RlX3ZpZXctYWxsXT1cInZpZXdBbGxcIlxuICAgICAgICAgICAgIChzY3JvbGwpPVwiY2hlY2tPdmVyZmxvdyhjb2RlQ29udGVudClcIlxuICAgICAgICAgICAgPjxjb2RlIGNsYXNzPVwiaGxqc1wiXG4gICAgICAgICAgICAgICBbaWRdPVwiY29kZUZpbGUuZmlsZW5hbWUgKyAnXycgKyBpXCJcbiAgICAgICAgICAgICAgIFtjbGFzcy5obGpzLWxpbmUtbnVtYmVyc109XCJsaW5lTnVtYmVyc1wiXG4gICAgICAgICAgICAgICBbaGlnaGxpZ2h0XT1cImNvZGVGaWxlc1tpXS5jb250ZW50XCJcbiAgICAgICAgICAgICAgIFtsaW5lTnVtYmVyc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIChoaWdobGlnaHRlZCk9XCJvbkhpZ2hsaWdodGVkKClcIj5cbiAgICAgICAgICAgIDwvY29kZT48a2JxLWFjdGlvbmJhci1ibG9ja1xuICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtYWN0aW9uYmFyLWJsb2NrX2Zsb2F0aW5nXT1cIm5vSGVhZGVyXCJcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgW2NvZGVGaWxlc109XCJjb2RlRmlsZXNcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZFRhYkluZGV4XT1cInNlbGVjdGVkVGFiSW5kZXhcIlxuICAgICAgICAgICAgICAgIFtsZXNzQ29udHJhc3RdPVwiZmlsbGVkXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlMaW5lXT1cIm11bHRpTGluZVwiXG4gICAgICAgICAgICAgICAgW3NvZnRXcmFwXT1cInNvZnRXcmFwXCJcbiAgICAgICAgICAgICAgICAodG9nZ2xlU29mdFdyYXApPVwidG9nZ2xlU29mdFdyYXAoKVwiXG4gICAgICAgICAgICAgICAgKGRvd25sb2FkQ29kZSk9XCJkb3dubG9hZENvZGUoKVwiXG4gICAgICAgICAgICAgICAgKGNvcHlDb2RlKT1cImNvcHlDb2RlKClcIlxuICAgICAgICAgICAgICAgIChvcGVuRXh0ZXJuYWxTeXN0ZW0pPVwib3BlbkV4dGVybmFsU3lzdGVtKClcIj5cbiAgICAgICAgICAgIDwva2JxLWFjdGlvbmJhci1ibG9jaz48L3ByZT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWNvZGUtYmxvY2tfX3Nob3ctbW9yZVwiXG4gICAgICAgICAgICAgKm5nSWY9XCJtYXhIZWlnaHRcIlxuICAgICAgICAgICAgIFtjbGFzcy5rYnEtY29kZS1ibG9ja19fc2hvdy1tb3JlX2V4cGFuZGVkXT1cInZpZXdBbGxcIlxuICAgICAgICAgICAgIFtjbGFzcy5rYnEtY29kZS1ibG9ja19fc2hvdy1tb3JlX2NvbGxhcHNlZF09XCIhdmlld0FsbFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiZy13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3RoZW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TaG93TW9yZUNsaWNrKGNvZGVDb250ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwibWMtYW5nbGUtZG93bi1MXzE2XCIgKm5nSWY9XCIhdmlld0FsbFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cIm1jLWFuZ2xlLXVwLUxfMTZcIiAqbmdJZj1cInZpZXdBbGxcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIHt7IHZpZXdBbGwgPyBjb25maWcudmlld0xlc3NUZXh0IDogY29uZmlnLnZpZXdBbGxUZXh0fX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ticS10YWI+XG48L2ticS10YWItZ3JvdXA+XG4iXX0=
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLFFBQVEsRUFDUixVQUFVLEVBQ1YsaUJBQWlCLEVBRWpCLFNBQVMsRUFDVCxTQUFTLEVBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQixXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTVFLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7OztBQUc5RCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLElBQUksRUFBRSxNQUFNO0lBQ1osR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLElBQUk7SUFDVixVQUFVLEVBQUUsSUFBSTtJ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QUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztnQkFDdEMsb0VBQW9FO2dCQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVE7Z0JBQ3RCLG9FQUFvRTtnQkFDcEUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBRSxFQUN2QyxVQUFVLENBQ2IsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO2lJQXZMUSxxQkFBcUIsMkpBcUNOLDRCQUE0QjtxSEFyQzNDLHFCQUFxQixtb0JBQ25CLFdBQVcsNEVDeEYxQiw0NUVBd0RBOzsyRkQrQmEscUJBQXFCO2tCQWxCakMsU0FBUzsrQkFDSSxnQkFBZ0IsWUFDaEIsY0FBYyxRQUdsQjt3QkFDRixLQUFLLEVBQUUsZ0JBQWdCO3dCQUN2QiwrQkFBK0IsRUFBRSxRQUFRO3dCQUN6QyxnQ0FBZ0MsRUFBRSxTQUFTO3dCQUMzQywwQ0FBMEMsRUFBRSxjQUFjO3dCQUMxRCxvQ0FBb0MsRUFBRSxZQUFZO3dCQUNsRCxrQ0FBa0MsRUFBRSxVQUFVO3dCQUM5QywyQ0FBMkMsRUFBRSxlQUFlO3dCQUM1RCxpQkFBaUIsRUFBRSwyQkFBMkI7cUJBQ2pELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkF1Q2hDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNEJBQTRCO3lDQXBDNUIsUUFBUTtzQkFBL0IsU0FBUzt1QkFBQyxXQUFXO2dCQUViLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT3B0aW9uYWwsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkLFxuICAgIFJlbmRlcmVyMixcbiAgICBBZnRlclZpZXdJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2JxVGFiQ2hhbmdlRXZlbnQsIEticVRhYkdyb3VwIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgcGFpcndpc2UsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIEticUNvZGVCbG9ja0NvbmZpZ3VyYXRpb24sXG4gICAgS2JxQ29kZUZpbGVcbn0gZnJvbSAnLi9jb2RlLWJsb2NrLnR5cGVzJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cblxuZXhwb3J0IGNvbnN0IENPUElFRF9NRVNTQUdFX1RPT0xUSVBfVElNRU9VVCA9IDEwMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYVEVOU0lPTiA9ICd0eHQnO1xuZXhwb3J0IGNvbnN0IExBTkdVQUdFU19FWFRFTlNJT05TID0ge1xuICAgIGh0bWw6ICdodG1sJyxcbiAgICBjc3M6ICdjc3MnLFxuICAgIHBocDogJ3BocCcsXG4gICAgamF2YTogJ2phdmEnLFxuICAgIGJhc2g6ICdzaCcsXG4gICAgamF2YXNjcmlwdDogJ2pzJyxcbiAgICB0eXBlc2NyaXB0OiAndHMnLFxuICAgIHB5dGhvbjogJ3B5JyxcbiAgICBydWJ5OiAncmInLFxuICAgIGM6ICdjJyxcbiAgICAnYysrJzogJ2NwcCcsXG4gICAgJ2MjJzogJ2NzJyxcbiAgICBjc2hhcnA6ICdjcycsXG4gICAgbHVhOiAnbHVhJyxcbiAgICB4bWw6ICd4bWwnLFxuICAgIGpzb246ICdqc29uJ1xufTtcblxuZXhwb3J0IGNvbnN0IEtCUV9DT0RFX0JMT0NLX0NPTkZJR1VSQVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignS2JxQ29kZUJsb2NrQ29uZmlndXJhdGlvbicpO1xuXG5leHBvcnQgY29uc3QgS0JRX0NPREVfQkxPQ0tfREVGQVVMVF9DT05GSUdVUkFUSU9OID0ge1xuICAgIHNvZnRXcmFwT25Ub29sdGlwOiAn0JLQutC70Y7Rh9C40YLRjCDQv9C10YDQtdC90L7RgSDQv9C+INGB0LvQvtCy0LDQvCcsXG4gICAgc29mdFdyYXBPZmZUb29sdGlwOiAn0JLRi9C60LvRjtGH0LjRgtGMINC/0LXRgNC10L3QvtGBINC/0L4g0YHQu9C+0LLQsNC8JyxcbiAgICBkb3dubG9hZFRvb2x0aXA6ICfQodC60LDRh9Cw0YLRjCcsXG4gICAgY29waWVkVG9vbHRpcDogJ+KckyDQodC60L7Qv9C40YDQvtCy0LDQvdC+JyxcbiAgICBjb3B5VG9vbHRpcDogJ9Ch0LrQvtC/0LjRgNC+0LLQsNGC0YwnLFxuICAgIHZpZXdBbGxUZXh0OiAn0J/QvtC60LDQt9Cw0YLRjCDQstGB0LUnLFxuICAgIHZpZXdMZXNzVGV4dDogJ9Ch0LLQtdGA0L3Rg9GC0YwnLFxuICAgIG9wZW5FeHRlcm5hbFN5c3RlbVRvb2x0aXA6ICfQntGC0LrRgNGL0YLRjCDQstC+INCy0L3QtdGI0L3QtdC5INGB0LjRgdGC0LXQvNC1J1xufTtcblxuXG5jb25zdCBhY3Rpb25CYXJCbG9ja0xlZnRNYXJnaW4gPSAyNDtcblxuY29uc3QgaGFzU2Nyb2xsID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgeyBzY3JvbGxIZWlnaHQsIHNjcm9sbFdpZHRoLCBjbGllbnRIZWlnaHQsIGNsaWVudFdpZHRofSA9IGVsZW1lbnQ7XG4gICAgcmV0dXJuIHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodCB8fCBzY3JvbGxXaWR0aCA+IGNsaWVudFdpZHRoO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1jb2RlLWJsb2NrJyxcbiAgICBleHBvcnRBczogJ2ticUNvZGVCbG9jaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZGUtYmxvY2suY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvZGUtYmxvY2suc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtY29kZS1ibG9jaycsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvZGUtYmxvY2tfZmlsbGVkXSc6ICdmaWxsZWQnLFxuICAgICAgICAnW2NsYXNzLmticS1jb2RlLWJsb2NrX291dGxpbmVdJzogJyFmaWxsZWQnLFxuICAgICAgICAnW2NsYXNzLmticS1jb2RlLWJsb2NrX2hpZGUtbGluZS1udW1iZXJzXSc6ICchbGluZU51bWJlcnMnLFxuICAgICAgICAnW2NsYXNzLmticS1jb2RlLWJsb2NrX3NpbmdsZS1maWxlXSc6ICdzaW5nbGVGaWxlJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29kZS1ibG9ja19uby1oZWFkZXJdJzogJ25vSGVhZGVyJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29kZS1ibG9ja19oZWFkZXItd2l0aC1zaGFkb3ddJzogJ2lzVG9wT3ZlcmZsb3cnLFxuICAgICAgICAnKHdpbmRvdzpyZXNpemUpJzogJ3Jlc2l6ZVN0cmVhbS5uZXh0KCRldmVudCknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticUNvZGVCbG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZChLYnFUYWJHcm91cCkgdGFiR3JvdXA6IEticVRhYkdyb3VwO1xuXG4gICAgQElucHV0KCkgbGluZU51bWJlcnMgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGNvZGVGaWxlczogS2JxQ29kZUZpbGVbXTtcbiAgICBASW5wdXQoKSBmaWxsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbWF4SGVpZ2h0OiBudW1iZXI7XG4gICAgQElucHV0KCkgc29mdFdyYXA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdldCBub0hlYWRlcigpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlRmlsZXMubGVuZ3RoID09PSAxICYmICF0aGlzLmNvZGVGaWxlc1swXS5maWxlbmFtZTtcbiAgICB9XG5cbiAgICBnZXQgc2luZ2xlRmlsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZUZpbGVzLmxlbmd0aCA9PT0gMTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZFRhYkluZGV4ID0gMDtcbiAgICBjb3BpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB2aWV3QWxsOiBib29sZWFuID0gZmFsc2U7XG4gICAgbXVsdGlMaW5lOiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNUb3BPdmVyZmxvdzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGhhc0ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICByZWFkb25seSByZXNpemVTdHJlYW0gPSBuZXcgU3ViamVjdDxFdmVudD4oKTtcbiAgICByZWFkb25seSBjdXJyZW50Q29kZUJsb2NrID0gbmV3IFN1YmplY3Q8SFRNTEVsZW1lbnQ+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc2l6ZURlYm91bmNlSW50ZXJ2YWw6IG51bWJlciA9IDEwMDtcbiAgICBwcml2YXRlIHJlc2l6ZVN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcbiAgICBwcml2YXRlIGNvZGVCbG9ja1N1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGNsaXBib2FyZDogQ2xpcGJvYXJkLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoS0JRX0NPREVfQkxPQ0tfQ09ORklHVVJBVElPTikgcHVibGljIGNvbmZpZzogS2JxQ29kZUJsb2NrQ29uZmlndXJhdGlvblxuICAgICkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZyB8fCBLQlFfQ09ERV9CTE9DS19ERUZBVUxUX0NPTkZJR1VSQVRJT047XG5cbiAgICAgICAgdGhpcy5yZXNpemVTdWJzY3JpcHRpb24gPSB0aGlzLnJlc2l6ZVN0cmVhbVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMucmVzaXplRGVib3VuY2VJbnRlcnZhbCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMudXBkYXRlSGVhZGVyKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIC8vIHJlbmRlciBmb2N1cyBib3JkZXIgaWYgb3JpZ2luIGlzIGtleWJvYXJkXG4gICAgICAgIHRoaXMuY29kZUJsb2NrU3Vic2NyaXB0aW9uID0gdGhpcy5jdXJyZW50Q29kZUJsb2NrLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbcHJldiwgY3VycmVudF0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocHJldikgeyB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyhwcmV2KTsgfVxuXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcihjdXJyZW50ISkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChvcmlnaW46IEZvY3VzT3JpZ2luKSA9PiBvcmlnaW4gPT09ICdrZXlib2FyZCcpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY3VycmVudENvZGVCbG9jay5uZXh0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKSk7XG4gICAgfVxuXG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5jb2RlQmxvY2tTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVIZWFkZXIgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNsaWVudFdpZHRoOiBudW1iZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdrYnEtYWN0aW9uYmFyLWJsb2NrJykuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgIHRoaXMudGFiR3JvdXAudGFiSGVhZGVyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdwYWRkaW5nLXJpZ2h0JyxcbiAgICAgICAgICAgIGAke2FjdGlvbkJhckJsb2NrTGVmdE1hcmdpbiArIGNsaWVudFdpZHRofXB4YFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlU29mdFdyYXAoKSB7XG4gICAgICAgIHRoaXMuc29mdFdyYXAgPSAhdGhpcy5zb2Z0V3JhcDtcbiAgICB9XG5cbiAgICB0b2dnbGVWaWV3QWxsKCkge1xuICAgICAgICB0aGlzLnZpZXdBbGwgPSAhdGhpcy52aWV3QWxsO1xuICAgIH1cblxuICAgIGRvd25sb2FkQ29kZSgpIHtcbiAgICAgICAgY29uc3QgY29kZUZpbGUgPSB0aGlzLmNvZGVGaWxlc1t0aGlzLnNlbGVjdGVkVGFiSW5kZXhdO1xuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2NvZGVGaWxlLmNvbnRlbnRdLCB7IHR5cGU6ICd0ZXh0L3BsYWluJyB9KTtcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG5cbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xuICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBgJHt0aGlzLmdldEZ1bGxGaWxlTmFtZShjb2RlRmlsZSl9YCk7XG4gICAgICAgIGxpbmsuY2xpY2soKTtcbiAgICB9XG5cbiAgICBjb3B5Q29kZSgpIHtcbiAgICAgICAgdGhpcy5jbGlwYm9hcmQuY29weSh0aGlzLmNvZGVGaWxlc1t0aGlzLnNlbGVjdGVkVGFiSW5kZXhdLmNvbnRlbnQpO1xuICAgICAgICB0aGlzLmNvcGllZCA9IHRydWU7XG4gICAgfVxuXG4gICAgb3BlbkV4dGVybmFsU3lzdGVtKCkge1xuICAgICAgICBjb25zdCBleHRlcm5hbExpbmsgPSB0aGlzLmNvZGVGaWxlc1t0aGlzLnNlbGVjdGVkVGFiSW5kZXhdLmxpbms7XG4gICAgICAgIHdpbmRvdy5vcGVuKGV4dGVybmFsTGluaywgJ19ibGFuaycpO1xuICAgIH1cblxuICAgIG9uSGlnaGxpZ2h0ZWQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQodGhpcy51cGRhdGVNdWx0aWxpbmUsIDEpO1xuICAgIH1cblxuICAgIGdldE1heEhlaWdodCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXhIZWlnaHQgPiAwICYmICF0aGlzLnZpZXdBbGwgPyBgJHt0aGlzLm1heEhlaWdodH1weGAgOiAnJztcbiAgICB9XG5cbiAgICBvblNlbGVjdFRhYigkZXZlbnQ6IEticVRhYkNoYW5nZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9ICRldmVudC5pbmRleDtcbiAgICAgICAgdGhpcy51cGRhdGVNdWx0aWxpbmUoKTtcbiAgICAgICAgdGhpcy5pc1RvcE92ZXJmbG93ID0gZmFsc2U7XG5cbiAgICAgICAgc2V0VGltZW91dCh0aGlzLnVwZGF0ZUhlYWRlcik7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jdXJyZW50Q29kZUJsb2NrLm5leHQoXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdjb2RlJylcbiAgICAgICAgKSk7XG4gICAgfVxuXG4gICAgY2hlY2tPdmVyZmxvdyhjdXJyZW50Q29kZUNvbnRlbnRFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5ub0hlYWRlcikgeyByZXR1cm47IH1cbiAgICAgICAgdGhpcy5pc1RvcE92ZXJmbG93ID0gY3VycmVudENvZGVDb250ZW50RWxlbWVudC5zY3JvbGxUb3AgPiAwO1xuICAgIH1cblxuICAgIG9uU2hvd01vcmVDbGljayhjdXJyZW50Q29kZUNvbnRlbnRFbGVtZW50OiBIVE1MUHJlRWxlbWVudCkge1xuICAgICAgICB0aGlzLnRvZ2dsZVZpZXdBbGwoKTtcblxuICAgICAgICAvLyBTaG91bGQgZXhwbGljaXRseSBzY3JvbGwgdG8gdG9wIHNvIGNvbnRlbnQgd2lsbCBiZSBjcm9wcGVkIGZyb20gdGhlIGJvdHRvbVxuICAgICAgICBpZiAoIXRoaXMudmlld0FsbCkge1xuICAgICAgICAgICAgY3VycmVudENvZGVDb250ZW50RWxlbWVudD8uc2Nyb2xsKHsgdG9wOiAwLCBiZWhhdmlvcjogJ2luc3RhbnQnIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogcmVwbGFjZSB3aXRoIHByb3BlcnR5IHRvIHJlZHVjZSBjYWxjdWxhdGlvbnNcbiAgICBjYW5TaG93Rm9jdXMoY3VycmVudENvZGVDb250ZW50OiBIVE1MUHJlRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICBjb25zdCBjdXJyZW50Q29kZUJsb2NrID0gY3VycmVudENvZGVDb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKSE7XG5cbiAgICAgICAgcmV0dXJuIChoYXNTY3JvbGwoY3VycmVudENvZGVDb250ZW50KSB8fCBoYXNTY3JvbGwoY3VycmVudENvZGVCbG9jaykpXG4gICAgICAgICAgICAmJiAoISF0aGlzLm1heEhlaWdodCAmJiB0aGlzLnZpZXdBbGwgfHwgIXRoaXMubWF4SGVpZ2h0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU11bHRpbGluZSA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5tdWx0aUxpbmUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5obGpzLWxuLW51bWJlcnMnKS5sZW5ndGggPiAxO1xuXG4gICAgICAgIHRoaXMudXBkYXRlSGVhZGVyKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZ1bGxGaWxlTmFtZShjb2RlRmlsZTogS2JxQ29kZUZpbGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGNvZGVGaWxlLmZpbGVuYW1lIHx8ICdjb2RlJztcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gTEFOR1VBR0VTX0VYVEVOU0lPTlNbY29kZUZpbGUubGFuZ3VhZ2VdIHx8IERFRkFVTFRfRVhURU5TSU9OO1xuXG4gICAgICAgIHJldHVybiBgJHtmaWxlTmFtZX0uJHtleHRlbnNpb259YDtcbiAgICB9XG5cbiAgICBvbkVudGVyKGN1cnJlbnRDb2RlQmxvY2s6IEhUTUxQcmVFbGVtZW50KSB7XG4gICAgICAgIC8vIGRlZmVyIGV4ZWN1dGlvbiBhZnRlciB0b2dnbGUgdmlldyBtb2RlXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2FuU2hvd0ZvY3VzKGN1cnJlbnRDb2RlQmxvY2spKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYShcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudENvZGVCbG9jay5xdWVyeVNlbGVjdG9yKCdjb2RlJykhLFxuICAgICAgICAgICAgICAgICAgICAna2V5Ym9hcmQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgfVxufVxuIiwiPGticS10YWItZ3JvdXBcbiAgICBbY2xhc3Mua2JxLWZvY3VzZWRdPVwiaGFzRm9jdXNcIlxuICAgIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJvblNlbGVjdFRhYigkZXZlbnQpXCI+XG4gICAgPGticS10YWJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvZGVGaWxlIG9mIGNvZGVGaWxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzaW5nbGVGaWxlXCI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGticS10YWItbGFiZWw+e3sgY29kZUZpbGUuZmlsZW5hbWUgfX08L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxwcmUgY2xhc3M9XCJrYnEtY29kZS1ibG9ja19fY29kZSBrYnEtc2Nyb2xsYmFyXCJcbiAgICAgICAgICAgICAjY29kZUNvbnRlbnRcbiAgICAgICAgICAgICBbc3R5bGUubWF4LWhlaWdodF09XCJnZXRNYXhIZWlnaHQoKVwiXG4gICAgICAgICAgICAgW2NsYXNzLmticS1jb2RlLWJsb2NrX19jb2RlX3NvZnQtd3JhcF09XCJzb2Z0V3JhcFwiXG4gICAgICAgICAgICAgW2NsYXNzLmticS1jb2RlLWJsb2NrX19jb2RlX3ZpZXctYWxsXT1cInZpZXdBbGxcIlxuICAgICAgICAgICAgIChzY3JvbGwpPVwiY2hlY2tPdmVyZmxvdyhjb2RlQ29udGVudClcIlxuICAgICAgICAgICAgPjxrYnEtYWN0aW9uYmFyLWJsb2NrXG4gICAgICAgICAgICBbY2xhc3Mua2JxLWFjdGlvbmJhci1ibG9ja19mbG9hdGluZ109XCJub0hlYWRlclwiXG4gICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgICBbY29kZUZpbGVzXT1cImNvZGVGaWxlc1wiXG4gICAgICAgICAgICBbc2VsZWN0ZWRUYWJJbmRleF09XCJzZWxlY3RlZFRhYkluZGV4XCJcbiAgICAgICAgICAgIFtsZXNzQ29udHJhc3RdPVwiZmlsbGVkXCJcbiAgICAgICAgICAgIFttdWx0aUxpbmVdPVwibXVsdGlMaW5lXCJcbiAgICAgICAgICAgIFtzb2Z0V3JhcF09XCJzb2Z0V3JhcFwiXG4gICAgICAgICAgICAodG9nZ2xlU29mdFdyYXApPVwidG9nZ2xlU29mdFdyYXAoKVwiXG4gICAgICAgICAgICAoZG93bmxvYWRDb2RlKT1cImRvd25sb2FkQ29kZSgpXCJcbiAgICAgICAgICAgIChjb3B5Q29kZSk9XCJjb3B5Q29kZSgpXCJcbiAgICAgICAgICAgIChvcGVuRXh0ZXJuYWxTeXN0ZW0pPVwib3BlbkV4dGVybmFsU3lzdGVtKClcIj5cbiAgICAgICAgICAgIDwva2JxLWFjdGlvbmJhci1ibG9jaz48Y29kZSBjbGFzcz1cImhsanNcIlxuICAgICAgICAgICAgICAgW2lkXT1cImNvZGVGaWxlLmZpbGVuYW1lICsgJ18nICsgaVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuaGxqcy1saW5lLW51bWJlcnNdPVwibGluZU51bWJlcnNcIlxuICAgICAgICAgICAgICAgW2hpZ2hsaWdodF09XCJjb2RlRmlsZXNbaV0uY29udGVudFwiXG4gICAgICAgICAgICAgICBbbGluZU51bWJlcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FuU2hvd0ZvY3VzKGNvZGVDb250ZW50KSA/IDAgOiAtMVwiXG4gICAgICAgICAgICAgICAoaGlnaGxpZ2h0ZWQpPVwib25IaWdobGlnaHRlZCgpXCJcbiAgICAgICAgICAgICAgIChibHVyKT1cImhhc0ZvY3VzID0gZmFsc2VcIj5cbiAgICAgICAgICAgIDwvY29kZT48L3ByZT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWNvZGUtYmxvY2tfX3Nob3ctbW9yZVwiXG4gICAgICAgICAgICAgKm5nSWY9XCJtYXhIZWlnaHRcIlxuICAgICAgICAgICAgIFtjbGFzcy5rYnEtY29kZS1ibG9ja19fc2hvdy1tb3JlX2V4cGFuZGVkXT1cInZpZXdBbGxcIlxuICAgICAgICAgICAgIFtjbGFzcy5rYnEtY29kZS1ibG9ja19fc2hvdy1tb3JlX2NvbGxhcHNlZF09XCIhdmlld0FsbFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiZy13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3RoZW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyKGNvZGVDb250ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNob3dNb3JlQ2xpY2soY29kZUNvbnRlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJtYy1hbmdsZS1kb3duLUxfMTZcIiAqbmdJZj1cIiF2aWV3QWxsXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwibWMtYW5nbGUtdXAtTF8xNlwiICpuZ0lmPVwidmlld0FsbFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAge3sgdmlld0FsbCA/IGNvbmZpZy52aWV3TGVzc1RleHQgOiBjb25maWcudmlld0FsbFRleHR9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwva2JxLXRhYj5cbjwva2JxLXRhYi1ncm91cD5cbiJdfQ==
@@ -21,10 +21,10 @@ export const kbqSelectAnimations = {
21
21
  opacity: 0
22
22
  })),
23
23
  transition('void => *', group([
24
- animate('150ms cubic-bezier(0.25, 0.8, 0.25, 1)')
24
+ animate('0ms cubic-bezier(0.25, 0.8, 0.25, 1)')
25
25
  ])),
26
26
  transition('* => void', [
27
- animate('250ms 100ms linear', style({ opacity: 0 }))
27
+ animate('0ms 0ms linear', style({ opacity: 0 }))
28
28
  ])
29
29
  ]),
30
30
  /**
@@ -36,10 +36,10 @@ export const kbqSelectAnimations = {
36
36
  state('showing', style({ opacity: 1 })),
37
37
  transition('void => showing', [
38
38
  style({ opacity: 0 }),
39
- animate('150ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)')
39
+ animate('0ms 0ms cubic-bezier(0.55, 0, 0.55, 0.2)')
40
40
  ])
41
41
  ])
42
42
  };
43
43
  export const transformPanel = kbqSelectAnimations.transformPanel;
44
44
  export const fadeInContent = kbqSelectAnimations.fadeInContent;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWFuaW1hdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvYW5pbWF0aW9uL3NlbGVjdC1hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxPQUFPLEVBRVAsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNQLEtBQUssRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRzdCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FHNUI7SUFDQTs7Ozs7Ozs7T0FRRztJQUNILGNBQWMsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7UUFDdEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDaEIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsUUFBUSxFQUFFLE1BQU07WUFDaEIsT0FBTyxFQUFFLENBQUM7U0FDYixDQUFDLENBQUM7UUFDSCxVQUFVLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztZQUMxQixPQUFPLENBQUMsd0NBQXdDLENBQUM7U0FDcEQsQ0FBQyxDQUFDO1FBQ0gsVUFBVSxDQUFDLFdBQVcsRUFBRTtZQUNwQixPQUFPLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdkQsQ0FBQztLQUNMLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsYUFBYSxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUU7UUFDcEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QyxVQUFVLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyw4Q0FBOEMsQ0FBQztTQUMxRCxDQUFDO0tBQ0wsQ0FBQztDQUNMLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsY0FBYyxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGFuaW1hdGUsXG4gICAgQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhLFxuICAgIHN0YXRlLFxuICAgIHN0eWxlLFxuICAgIHRyYW5zaXRpb24sXG4gICAgdHJpZ2dlcixcbiAgICBncm91cFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgYXJlIGFsbCB0aGUgYW5pbWF0aW9ucyBmb3IgdGhlIGticS1zZWxlY3QgY29tcG9uZW50LCB3aXRoIGVhY2hcbiAqIGNvbnN0IGNvbnRhaW5pbmcgdGhlIG1ldGFkYXRhIGZvciBvbmUgYW5pbWF0aW9uLlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IGticVNlbGVjdEFuaW1hdGlvbnM6IHtcbiAgICByZWFkb25seSB0cmFuc2Zvcm1QYW5lbDogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhO1xuICAgIHJlYWRvbmx5IGZhZGVJbkNvbnRlbnQ6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YTtcbn0gPSB7XG4gICAgLyoqXG4gICAgICogVGhpcyBhbmltYXRpb24gdHJhbnNmb3JtcyB0aGUgc2VsZWN0J3Mgb3ZlcmxheSBwYW5lbCBvbiBhbmQgb2ZmIHRoZSBwYWdlLlxuICAgICAqXG4gICAgICogV2hlbiB0aGUgcGFuZWwgaXMgYXR0YWNoZWQgdG8gdGhlIERPTSwgaXQgZXhwYW5kcyBpdHMgd2lkdGggYnkgdGhlIGFtb3VudCBvZiBwYWRkaW5nLCBzY2FsZXMgaXRcbiAgICAgKiB1cCB0byAxMDAlIG9uIHRoZSBZIGF4aXMsIGZhZGVzIGluIGl0cyBib3JkZXIsIGFuZCB0cmFuc2xhdGVzIHNsaWdodGx5IHVwIGFuZCB0byB0aGVcbiAgICAgKiBzaWRlIHRvIGVuc3VyZSB0aGUgb3B0aW9uIHRleHQgY29ycmVjdGx5IG92ZXJsYXBzIHRoZSB0cmlnZ2VyIHRleHQuXG4gICAgICpcbiAgICAgKiBXaGVuIHRoZSBwYW5lbCBpcyByZW1vdmVkIGZyb20gdGhlIERPTSwgaXQgc2ltcGx5IGZhZGVzIG91dCBsaW5lYXJseS5cbiAgICAgKi9cbiAgICB0cmFuc2Zvcm1QYW5lbDogdHJpZ2dlcigndHJhbnNmb3JtUGFuZWwnLCBbXG4gICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVZKDApJyxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgIH0pKSxcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgZ3JvdXAoW1xuICAgICAgICAgICAgYW5pbWF0ZSgnMTUwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknKVxuICAgICAgICBdKSksXG4gICAgICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIFtcbiAgICAgICAgICAgIGFuaW1hdGUoJzI1MG1zIDEwMG1zIGxpbmVhcicsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcbiAgICAgICAgXSlcbiAgICBdKSxcblxuICAgIC8qKlxuICAgICAqIFRoaXMgYW5pbWF0aW9uIGZhZGVzIGluIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCB0ZXh0IGNvbnRlbnQgb2YgdGhlXG4gICAgICogc2VsZWN0J3Mgb3B0aW9ucy4gSXQgaXMgdGltZSBkZWxheWVkIHRvIG9jY3VyIDEwMG1zIGFmdGVyIHRoZSBvdmVybGF5XG4gICAgICogcGFuZWwgaGFzIHRyYW5zZm9ybWVkIGluLlxuICAgICAqL1xuICAgIGZhZGVJbkNvbnRlbnQ6IHRyaWdnZXIoJ2ZhZGVJbkNvbnRlbnQnLCBbXG4gICAgICAgIHN0YXRlKCdzaG93aW5nJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBzaG93aW5nJywgW1xuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZSgnMTUwbXMgMTAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMiknKVxuICAgICAgICBdKVxuICAgIF0pXG59O1xuXG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1QYW5lbCA9IGticVNlbGVjdEFuaW1hdGlvbnMudHJhbnNmb3JtUGFuZWw7XG5cbmV4cG9ydCBjb25zdCBmYWRlSW5Db250ZW50ID0ga2JxU2VsZWN0QW5pbWF0aW9ucy5mYWRlSW5Db250ZW50O1xuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWFuaW1hdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvYW5pbWF0aW9uL3NlbGVjdC1hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxPQUFPLEVBRVAsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNQLEtBQUssRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRzdCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FHNUI7SUFDQTs7Ozs7Ozs7T0FRRztJQUNILGNBQWMsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7UUFDdEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDaEIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsUUFBUSxFQUFFLE1BQU07WUFDaEIsT0FBTyxFQUFFLENBQUM7U0FDYixDQUFDLENBQUM7UUFDSCxVQUFVLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztZQUMxQixPQUFPLENBQUMsc0NBQXNDLENBQUM7U0FDbEQsQ0FBQyxDQUFDO1FBQ0gsVUFBVSxDQUFDLFdBQVcsRUFBRTtZQUNwQixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkQsQ0FBQztLQUNMLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsYUFBYSxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUU7UUFDcEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QyxVQUFVLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQztTQUN0RCxDQUFDO0tBQ0wsQ0FBQztDQUNMLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsY0FBYyxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGFuaW1hdGUsXG4gICAgQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhLFxuICAgIHN0YXRlLFxuICAgIHN0eWxlLFxuICAgIHRyYW5zaXRpb24sXG4gICAgdHJpZ2dlcixcbiAgICBncm91cFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgYXJlIGFsbCB0aGUgYW5pbWF0aW9ucyBmb3IgdGhlIGticS1zZWxlY3QgY29tcG9uZW50LCB3aXRoIGVhY2hcbiAqIGNvbnN0IGNvbnRhaW5pbmcgdGhlIG1ldGFkYXRhIGZvciBvbmUgYW5pbWF0aW9uLlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IGticVNlbGVjdEFuaW1hdGlvbnM6IHtcbiAgICByZWFkb25seSB0cmFuc2Zvcm1QYW5lbDogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhO1xuICAgIHJlYWRvbmx5IGZhZGVJbkNvbnRlbnQ6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YTtcbn0gPSB7XG4gICAgLyoqXG4gICAgICogVGhpcyBhbmltYXRpb24gdHJhbnNmb3JtcyB0aGUgc2VsZWN0J3Mgb3ZlcmxheSBwYW5lbCBvbiBhbmQgb2ZmIHRoZSBwYWdlLlxuICAgICAqXG4gICAgICogV2hlbiB0aGUgcGFuZWwgaXMgYXR0YWNoZWQgdG8gdGhlIERPTSwgaXQgZXhwYW5kcyBpdHMgd2lkdGggYnkgdGhlIGFtb3VudCBvZiBwYWRkaW5nLCBzY2FsZXMgaXRcbiAgICAgKiB1cCB0byAxMDAlIG9uIHRoZSBZIGF4aXMsIGZhZGVzIGluIGl0cyBib3JkZXIsIGFuZCB0cmFuc2xhdGVzIHNsaWdodGx5IHVwIGFuZCB0byB0aGVcbiAgICAgKiBzaWRlIHRvIGVuc3VyZSB0aGUgb3B0aW9uIHRleHQgY29ycmVjdGx5IG92ZXJsYXBzIHRoZSB0cmlnZ2VyIHRleHQuXG4gICAgICpcbiAgICAgKiBXaGVuIHRoZSBwYW5lbCBpcyByZW1vdmVkIGZyb20gdGhlIERPTSwgaXQgc2ltcGx5IGZhZGVzIG91dCBsaW5lYXJseS5cbiAgICAgKi9cbiAgICB0cmFuc2Zvcm1QYW5lbDogdHJpZ2dlcigndHJhbnNmb3JtUGFuZWwnLCBbXG4gICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVZKDApJyxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgIH0pKSxcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgZ3JvdXAoW1xuICAgICAgICAgICAgYW5pbWF0ZSgnMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJylcbiAgICAgICAgXSkpLFxuICAgICAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXG4gICAgICAgICAgICBhbmltYXRlKCcwbXMgMG1zIGxpbmVhcicsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcbiAgICAgICAgXSlcbiAgICBdKSxcblxuICAgIC8qKlxuICAgICAqIFRoaXMgYW5pbWF0aW9uIGZhZGVzIGluIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCB0ZXh0IGNvbnRlbnQgb2YgdGhlXG4gICAgICogc2VsZWN0J3Mgb3B0aW9ucy4gSXQgaXMgdGltZSBkZWxheWVkIHRvIG9jY3VyIDEwMG1zIGFmdGVyIHRoZSBvdmVybGF5XG4gICAgICogcGFuZWwgaGFzIHRyYW5zZm9ybWVkIGluLlxuICAgICAqL1xuICAgIGZhZGVJbkNvbnRlbnQ6IHRyaWdnZXIoJ2ZhZGVJbkNvbnRlbnQnLCBbXG4gICAgICAgIHN0YXRlKCdzaG93aW5nJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBzaG93aW5nJywgW1xuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZSgnMG1zIDBtcyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKScpXG4gICAgICAgIF0pXG4gICAgXSlcbn07XG5cblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVBhbmVsID0ga2JxU2VsZWN0QW5pbWF0aW9ucy50cmFuc2Zvcm1QYW5lbDtcblxuZXhwb3J0IGNvbnN0IGZhZGVJbkNvbnRlbnQgPSBrYnFTZWxlY3RBbmltYXRpb25zLmZhZGVJbkNvbnRlbnQ7XG4iXX0=
@@ -16,6 +16,22 @@ export const enUSFormattersData = {
16
16
  groupSeparator: [','],
17
17
  fractionSeparator: '.'
18
18
  }
19
+ },
20
+ sizeUnits: {
21
+ defaultUnitSystem: 'SI',
22
+ defaultPrecision: 2,
23
+ unitSystems: {
24
+ SI: {
25
+ abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],
26
+ base: 10,
27
+ power: 3
28
+ },
29
+ IEC: {
30
+ abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],
31
+ base: 2,
32
+ power: 10
33
+ }
34
+ }
19
35
  }
20
36
  };
21
37
  export const esLAFormattersData = {
@@ -38,6 +54,22 @@ export const esLAFormattersData = {
38
54
  groupSeparator: [' ', ' '],
39
55
  fractionSeparator: ','
40
56
  }
57
+ },
58
+ sizeUnits: {
59
+ defaultUnitSystem: 'SI',
60
+ defaultPrecision: 2,
61
+ unitSystems: {
62
+ SI: {
63
+ abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],
64
+ base: 10,
65
+ power: 3
66
+ },
67
+ IEC: {
68
+ abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],
69
+ base: 2,
70
+ power: 10
71
+ }
72
+ }
41
73
  }
42
74
  };
43
75
  export const faIRFormattersData = {
@@ -59,6 +91,22 @@ export const faIRFormattersData = {
59
91
  groupSeparator: ['\u066C'],
60
92
  fractionSeparator: '\u066B'
61
93
  }
94
+ },
95
+ sizeUnits: {
96
+ defaultUnitSystem: 'SI',
97
+ defaultPrecision: 2,
98
+ unitSystems: {
99
+ SI: {
100
+ abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],
101
+ base: 10,
102
+ power: 3
103
+ },
104
+ IEC: {
105
+ abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],
106
+ base: 2,
107
+ power: 10
108
+ }
109
+ }
62
110
  }
63
111
  };
64
112
  export const ptBRFormattersData = {
@@ -79,6 +127,22 @@ export const ptBRFormattersData = {
79
127
  groupSeparator: ['.'],
80
128
  fractionSeparator: ','
81
129
  }
130
+ },
131
+ sizeUnits: {
132
+ defaultUnitSystem: 'SI',
133
+ defaultPrecision: 2,
134
+ unitSystems: {
135
+ SI: {
136
+ abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],
137
+ base: 10,
138
+ power: 3
139
+ },
140
+ IEC: {
141
+ abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],
142
+ base: 2,
143
+ power: 10
144
+ }
145
+ }
82
146
  }
83
147
  };
84
148
  export const ruRUFormattersData = {
@@ -102,6 +166,22 @@ export const ruRUFormattersData = {
102
166
  fractionSeparator: ',',
103
167
  startFormattingFrom: 4
104
168
  }
169
+ },
170
+ sizeUnits: {
171
+ defaultUnitSystem: 'SI',
172
+ defaultPrecision: 2,
173
+ unitSystems: {
174
+ SI: {
175
+ abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],
176
+ base: 10,
177
+ power: 3
178
+ },
179
+ IEC: {
180
+ abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],
181
+ base: 2,
182
+ power: 10
183
+ }
184
+ }
105
185
  }
106
186
  };
107
187
  export const zhCNFormattersData = {
@@ -121,6 +201,22 @@ export const zhCNFormattersData = {
121
201
  groupSeparator: [','],
122
202
  fractionSeparator: '.'
123
203
  }
204
+ },
205
+ sizeUnits: {
206
+ defaultUnitSystem: 'SI',
207
+ defaultPrecision: 2,
208
+ unitSystems: {
209
+ SI: {
210
+ abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],
211
+ base: 10,
212
+ power: 3
213
+ },
214
+ IEC: {
215
+ abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],
216
+ base: 2,
217
+ power: 10
218
+ }
219
+ }
124
220
  }
125
221
  };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS9sb2NhbGVzL2Zvcm1hdHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDOUIsVUFBVSxFQUFFO1FBQ1IsTUFBTSxFQUFFO1lBQ0osUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxFQUFFO2dCQUNiLGNBQWMsRUFBRSxHQUFHO2dCQUNuQixRQUFRLEVBQUUsR0FBRztnQkFDYixPQUFPLEVBQUUsR0FBRztnQkFDWixPQUFPLEVBQUUsR0FBRztnQkFDWixRQUFRLEVBQUUsR0FBRzthQUNoQjtTQUNKO0tBQ0o7SUFDRCxLQUFLLEVBQUU7UUFDSCxNQUFNLEVBQUU7WUFDSixjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDckIsaUJBQWlCLEVBQUUsR0FBRztTQUN6QjtLQUNKO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLFVBQVUsRUFBRTtRQUNSLE1BQU0sRUFBRTtZQUNKLFFBQVEsRUFBRTtnQkFDTixTQUFTLEVBQUUsRUFBRTtnQkFDYixjQUFjLEVBQUUsR0FBRztnQkFDbkIsUUFBUSxFQUFFLEdBQUc7Z0JBQ2IsT0FBTyxFQUFFLEdBQUc7Z0JBQ1osT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsUUFBUSxFQUFFLEdBQUc7YUFDaEI7U0FDSjtLQUNKO0lBQ0QsS0FBSyxFQUFFO1FBQ0gsTUFBTSxFQUFFO1lBQ0osOERBQThEO1lBQzlELG1EQUFtRDtZQUNuRCxjQUFjLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQzFCLGlCQUFpQixFQUFFLEdBQUc7U0FDekI7S0FDSjtDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUM5QixVQUFVLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDSixRQUFRLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLEdBQUc7Z0JBQ2QsY0FBYyxFQUFFLEdBQUc7Z0JBQ25CLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsT0FBTyxFQUFFLEdBQUc7Z0JBQ1osUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLEdBQUcsRUFBRSxJQUFJO2FBQ1o7U0FDSjtLQUNKO0lBQ0QsS0FBSyxFQUFFO1FBQ0gsTUFBTSxFQUFFO1lBQ0osY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQzFCLGlCQUFpQixFQUFFLFFBQVE7U0FDOUI7S0FDSjtDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUM5QixVQUFVLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDSixRQUFRLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLEdBQUc7Z0JBQ2QsY0FBYyxFQUFFLEdBQUc7Z0JBQ25CLFFBQVEsRUFBRSxLQUFLO2dCQUNmLE9BQU8sRUFBRSxJQUFJO2dCQUNiLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFFBQVEsRUFBRSxLQUFLO2FBQ2xCO1NBQ0o7S0FDSjtJQUNELEtBQUssRUFBRTtRQUNILE1BQU0sRUFBRTtZQUNKLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUNyQixpQkFBaUIsRUFBRSxHQUFHO1NBQ3pCO0tBQ0o7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDOUIsVUFBVSxFQUFFO1FBQ1IsTUFBTSxFQUFFO1lBQ0osUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxHQUFHO2dCQUNkLGNBQWMsRUFBRSxHQUFHO2dCQUNuQixRQUFRLEVBQUUsR0FBRztnQkFDYixPQUFPLEVBQUUsR0FBRztnQkFDWixPQUFPLEVBQUUsR0FBRztnQkFDWixRQUFRLEVBQUUsR0FBRzthQUNoQjtTQUNKO0tBQ0o7SUFDRCxLQUFLLEVBQUU7UUFDSCxNQUFNLEVBQUU7WUFDSiw4REFBOEQ7WUFDOUQsbURBQW1EO1lBQ25ELGNBQWMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7WUFDMUIsaUJBQWlCLEVBQUUsR0FBRztZQUN0QixtQkFBbUIsRUFBRSxDQUFDO1NBQ3pCO0tBQ0o7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDOUIsVUFBVSxFQUFFO1FBQ1IsTUFBTSxFQUFFO1lBQ0osUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxHQUFHO2dCQUNkLGNBQWMsRUFBRSxHQUFHO2dCQUNuQixXQUFXLEVBQUUsR0FBRztnQkFDaEIsa0JBQWtCLEVBQUUsR0FBRztnQkFDdkIsUUFBUSxFQUFFLEdBQUc7YUFDaEI7U0FDSjtLQUNKO0lBQ0QsS0FBSyxFQUFFO1FBQ0gsTUFBTSxFQUFFO1lBQ0osY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ3JCLGlCQUFpQixFQUFFLEdBQUc7U0FDekI7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW5VU0Zvcm1hdHRlcnNEYXRhID0ge1xuICAgIGZvcm1hdHRlcnM6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICByb3VuZGluZzoge1xuICAgICAgICAgICAgICAgIHNlcGFyYXRvcjogJycsXG4gICAgICAgICAgICAgICAgZ3JvdXBTZXBhcmF0b3I6ICcuJyxcbiAgICAgICAgICAgICAgICB0aG91c2FuZDogJ0snLFxuICAgICAgICAgICAgICAgIG1pbGxpb246ICdNJyxcbiAgICAgICAgICAgICAgICBiaWxsaW9uOiAnQicsXG4gICAgICAgICAgICAgICAgdHJpbGxpb246ICdUJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICBudW1iZXI6IHtcbiAgICAgICAgICAgIGdyb3VwU2VwYXJhdG9yOiBbJywnXSxcbiAgICAgICAgICAgIGZyYWN0aW9uU2VwYXJhdG9yOiAnLidcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBlc0xBRm9ybWF0dGVyc0RhdGEgPSB7XG4gICAgZm9ybWF0dGVyczoge1xuICAgICAgICBudW1iZXI6IHtcbiAgICAgICAgICAgIHJvdW5kaW5nOiB7XG4gICAgICAgICAgICAgICAgc2VwYXJhdG9yOiAnJyxcbiAgICAgICAgICAgICAgICBncm91cFNlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgIHRob3VzYW5kOiAnSycsXG4gICAgICAgICAgICAgICAgbWlsbGlvbjogJ00nLFxuICAgICAgICAgICAgICAgIGJpbGxpb246ICdNUkQnLFxuICAgICAgICAgICAgICAgIHRyaWxsaW9uOiAnQidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICAvLyBuYnNwIGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGFuZCB1c2VkIGJ5IGRlZmF1bHQgaW4gc3BlY1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlycmVndWxhci13aGl0ZXNwYWNlXG4gICAgICAgICAgICBncm91cFNlcGFyYXRvcjogWyfCoCcsICcgJ10sXG4gICAgICAgICAgICBmcmFjdGlvblNlcGFyYXRvcjogJywnXG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZmFJUkZvcm1hdHRlcnNEYXRhID0ge1xuICAgIGZvcm1hdHRlcnM6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICByb3VuZGluZzoge1xuICAgICAgICAgICAgICAgIHNlcGFyYXRvcjogJyAnLFxuICAgICAgICAgICAgICAgIGdyb3VwU2VwYXJhdG9yOiAn2asnLFxuICAgICAgICAgICAgICAgIHRob3VzYW5kOiAn2YfYstin2LEnLFxuICAgICAgICAgICAgICAgIG1pbGxpb246ICfZhduM2YTbjNmI2YYnLFxuICAgICAgICAgICAgICAgIGJpbGxpb246ICfZhScsXG4gICAgICAgICAgICAgICAgdHJpbGxpb246ICfYqtix24zZhNuM2YjZhicsXG4gICAgICAgICAgICAgICAgcnRsOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGlucHV0OiB7XG4gICAgICAgIG51bWJlcjoge1xuICAgICAgICAgICAgZ3JvdXBTZXBhcmF0b3I6IFsnXFx1MDY2QyddLFxuICAgICAgICAgICAgZnJhY3Rpb25TZXBhcmF0b3I6ICdcXHUwNjZCJ1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHB0QlJGb3JtYXR0ZXJzRGF0YSA9IHtcbiAgICBmb3JtYXR0ZXJzOiB7XG4gICAgICAgIG51bWJlcjoge1xuICAgICAgICAgICAgcm91bmRpbmc6IHtcbiAgICAgICAgICAgICAgICBzZXBhcmF0b3I6ICcgJyxcbiAgICAgICAgICAgICAgICBncm91cFNlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgIHRob3VzYW5kOiAnbWlsJyxcbiAgICAgICAgICAgICAgICBtaWxsaW9uOiAnbWknLFxuICAgICAgICAgICAgICAgIGJpbGxpb246ICdiaScsXG4gICAgICAgICAgICAgICAgdHJpbGxpb246ICd0cmknXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGlucHV0OiB7XG4gICAgICAgIG51bWJlcjoge1xuICAgICAgICAgICAgZ3JvdXBTZXBhcmF0b3I6IFsnLiddLFxuICAgICAgICAgICAgZnJhY3Rpb25TZXBhcmF0b3I6ICcsJ1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHJ1UlVGb3JtYXR0ZXJzRGF0YSA9IHtcbiAgICBmb3JtYXR0ZXJzOiB7XG4gICAgICAgIG51bWJlcjoge1xuICAgICAgICAgICAgcm91bmRpbmc6IHtcbiAgICAgICAgICAgICAgICBzZXBhcmF0b3I6ICcgJyxcbiAgICAgICAgICAgICAgICBncm91cFNlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgIHRob3VzYW5kOiAn0JonLFxuICAgICAgICAgICAgICAgIG1pbGxpb246ICfQnCcsXG4gICAgICAgICAgICAgICAgYmlsbGlvbjogJ9CcJyxcbiAgICAgICAgICAgICAgICB0cmlsbGlvbjogJ9CiJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICBudW1iZXI6IHtcbiAgICAgICAgICAgIC8vIG5ic3AgaXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYW5kIHVzZWQgYnkgZGVmYXVsdCBpbiBzcGVjXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taXJyZWd1bGFyLXdoaXRlc3BhY2VcbiAgICAgICAgICAgIGdyb3VwU2VwYXJhdG9yOiBbJ8KgJywgJyAnXSxcbiAgICAgICAgICAgIGZyYWN0aW9uU2VwYXJhdG9yOiAnLCcsXG4gICAgICAgICAgICBzdGFydEZvcm1hdHRpbmdGcm9tOiA0XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgemhDTkZvcm1hdHRlcnNEYXRhID0ge1xuICAgIGZvcm1hdHRlcnM6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICByb3VuZGluZzoge1xuICAgICAgICAgICAgICAgIHNlcGFyYXRvcjogJyAnLFxuICAgICAgICAgICAgICAgIGdyb3VwU2VwYXJhdG9yOiAnLicsXG4gICAgICAgICAgICAgICAgdGVuVGhvdXNhbmQ6ICfkuIcnLFxuICAgICAgICAgICAgICAgIG9uZUh1bmRyZWRNaWxsaW9uczogJ+S6vycsXG4gICAgICAgICAgICAgICAgdHJpbGxpb246ICflhYYnXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGlucHV0OiB7XG4gICAgICAgIG51bWJlcjoge1xuICAgICAgICAgICAgZ3JvdXBTZXBhcmF0b3I6IFsnLCddLFxuICAgICAgICAgICAgZnJhY3Rpb25TZXBhcmF0b3I6ICcuJ1xuICAgICAgICB9XG4gICAgfVxufTtcbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS9sb2NhbGVzL2Zvcm1hdHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDOUIsVUFBVSxFQUFFO1FBQ1IsTUFBTSxFQUFFO1lBQ0osUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxFQUFFO2dCQUNiLGNBQWMsRUFBRSxHQUFHO2dCQUNuQixRQUFRLEVBQUUsR0FBRztnQkFDYixPQUFPLEVBQUUsR0FBRztnQkFDWixPQUFPLEVBQUUsR0FBRztnQkFDWixRQUFRLEVBQUUsR0FBRzthQUNoQjtTQUNKO0tBQ0o7SUFDRCxLQUFLLEVBQUU7UUFDSCxNQUFNLEVBQUU7WUFDSixjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDckIsaUJBQWlCLEVBQUUsR0FBRztTQUN6QjtLQUNKO0lBQ0QsU0FBUyxFQUFFO1FBQ1AsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QixnQkFBZ0IsRUFBRSxDQUFDO1FBQ25CLFdBQVcsRUFBRTtZQUNULEVBQUUsRUFBRTtnQkFDQSxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO2dCQUM1QyxJQUFJLEVBQUUsRUFBRTtnQkFDUixLQUFLLEVBQUUsQ0FBQzthQUNYO1lBQ0QsR0FBRyxFQUFFO2dCQUNELGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7Z0JBQ2hELElBQUksRUFBRSxDQUFDO2dCQUNQLEtBQUssRUFBRSxFQUFFO2FBQ1o7U0FDSjtLQUNKO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLFVBQVUsRUFBRTtRQUNSLE1BQU0sRUFBRTtZQUNKLFFB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aEQsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsS0FBSyxFQUFFLEVBQUU7YUFDWjtTQUNKO0tBQ0o7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDOUIsVUFBVSxFQUFFO1FBQ1IsTUFBTSxFQUFFO1lBQ0osUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxHQUFHO2dCQUNkLGNBQWMsRUFBRSxHQUFHO2dCQUNuQixXQUFXLEVBQUUsR0FBRztnQkFDaEIsa0JBQWtCLEVBQUUsR0FBRztnQkFDdkIsUUFBUSxFQUFFLEdBQUc7YUFDaEI7U0FDSjtLQUNKO0lBQ0QsS0FBSyxFQUFFO1FBQ0gsTUFBTSxFQUFFO1lBQ0osY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ3JCLGlCQUFpQixFQUFFLEdBQUc7U0FDekI7S0FDSjtJQUNELFNBQVMsRUFBRTtRQUNQLGlCQUFpQixFQUFFLElBQUk7UUFDdkIsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQixXQUFXLEVBQUU7WUFDVCxFQUFFLEVBQUU7Z0JBQ0EsYUFBYSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztnQkFDNUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLENBQUM7YUFDWDtZQUNELEdBQUcsRUFBRTtnQkFDRCxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO2dCQUNoRCxJQUFJLEVBQUUsQ0FBQztnQkFDUCxLQUFLLEVBQUUsRUFBRTthQUNaO1NBQ0o7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW5VU0Zvcm1hdHRlcnNEYXRhID0ge1xuICAgIGZvcm1hdHRlcnM6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICByb3VuZGluZzoge1xuICAgICAgICAgICAgICAgIHNlcGFyYXRvcjogJycsXG4gICAgICAgICAgICAgICAgZ3JvdXBTZXBhcmF0b3I6ICcuJyxcbiAgICAgICAgICAgICAgICB0aG91c2FuZDogJ0snLFxuICAgICAgICAgICAgICAgIG1pbGxpb246ICdNJyxcbiAgICAgICAgICAgICAgICBiaWxsaW9uOiAnQicsXG4gICAgICAgICAgICAgICAgdHJpbGxpb246ICdUJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICBudW1iZXI6IHtcbiAgICAgICAgICAgIGdyb3VwU2VwYXJhdG9yOiBbJywnXSxcbiAgICAgICAgICAgIGZyYWN0aW9uU2VwYXJhdG9yOiAnLidcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2l6ZVVuaXRzOiB7XG4gICAgICAgIGRlZmF1bHRVbml0U3lzdGVtOiAnU0knLFxuICAgICAgICBkZWZhdWx0UHJlY2lzaW9uOiAyLFxuICAgICAgICB1bml0U3lzdGVtczoge1xuICAgICAgICAgICAgU0k6IHtcbiAgICAgICAgICAgICAgICBhYmJyZXZpYXRpb25zOiBbJ0InLCAnS0InLCAnTUInLCAnR0InLCAnVEInXSxcbiAgICAgICAgICAgICAgICBiYXNlOiAxMCxcbiAgICAgICAgICAgICAgICBwb3dlcjogM1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIElFQzoge1xuICAgICAgICAgICAgICAgIGFiYnJldmlhdGlvbnM6IFsnQicsICdLaUInLCAnTWlCJywgJ0dpQicsICdUaUInXSxcbiAgICAgICAgICAgICAgICBiYXNlOiAyLFxuICAgICAgICAgICAgICAgIHBvd2VyOiAxMFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGVzTEFGb3JtYXR0ZXJzRGF0YSA9IHtcbiAgICBmb3JtYXR0ZXJzOiB7XG4gICAgICAgIG51bWJlcjoge1xuICAgICAgICAgICAgcm91bmRpbmc6IHtcbiAgICAgICAgICAgICAgICBzZXBhcmF0b3I6ICcnLFxuICAgICAgICAgICAgICAgIGdyb3VwU2VwYXJhdG9yOiAnLCcsXG4gICAgICAgICAgICAgICAgdGhvdXNhbmQ6ICdLJyxcbiAgICAgICAgICAgICAgICBtaWxsaW9uOiAnTScsXG4gICAgICAgICAgICAgICAgYmlsbGlvbjogJ01SRCcsXG4gICAgICAgICAgICAgICAgdHJpbGxpb246ICdCJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICBudW1iZXI6IHtcbiAgICAgICAgICAgIC8vIG5ic3AgaXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYW5kIHVzZWQgYnkgZGVmYXVsdCBpbiBzcGVjXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taXJyZWd1bGFyLXdoaXRlc3BhY2VcbiAgICAgICAgICAgIGdyb3VwU2VwYXJhdG9yOiBbJ8KgJywgJyAnXSxcbiAgICAgICAgICAgIGZyYWN0aW9uU2VwYXJhdG9yOiAnLCdcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2l6ZVVuaXRzOiB7XG4gICAgICAgIGRlZmF1bHRVbml0U3lzdGVtOiAnU0knLFxuICAgICAgICBkZWZhdWx0UHJlY2lzaW9uOiAyLFxuICAgICAgICB1bml0U3lzdGVtczoge1xuICAgICAgICAgICAgU0k6IHtcbiAgICAgICAgICAgICAgICBhYmJyZXZpYXRpb25zOiBbJ9CRJywgJ9Ca0JEnLCAn0JzQkScsICfQk9CRJywgJ9Ci0JEnXSxcbiAgICAgICAgICAgICAgICBiYXNlOiAxMCxcbiAgICAgICAgICAgICAgICBwb3dlcjogM1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIElFQzoge1xuICAgICAgICAgICAgICAgIGFiYnJldmlhdGlvbnM6IFsn0JEnLCAn0JrQuNCRJywgJ9Cc0LjQkScsICfQk9C40JEnLCAn0KLQuNCRJ10sXG4gICAgICAgICAgICAgICAgYmFzZTogMixcbiAgICAgICAgICAgICAgICBwb3dlcjogMTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmYUlSRm9ybWF0dGVyc0RhdGEgPSB7XG4gICAgZm9ybWF0dGVyczoge1xuICAgICAgICBudW1iZXI6IHtcbiAgICAgICAgICAgIHJvdW5kaW5nOiB7XG4gICAgICAgICAgICAgICAgc2VwYXJhdG9yOiAnICcsXG4gICAgICAgICAgICAgICAgZ3JvdXBTZXBhcmF0b3I6ICfZqycsXG4gICAgICAgICAgICAgICAgdGhvdXNhbmQ6ICfZh9iy2KfYsScsXG4gICAgICAgICAgICAgICAgbWlsbGlvbjogJ9mF24zZhNuM2YjZhicsXG4gICAgICAgICAgICAgICAgYmlsbGlvbjogJ9mFJyxcbiAgICAgICAgICAgICAgICB0cmlsbGlvbjogJ9iq2LHbjNmE24zZiNmGJyxcbiAgICAgICAgICAgICAgICBydGw6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICBncm91cFNlcGFyYXRvcjogWydcXHUwNjZDJ10sXG4gICAgICAgICAgICBmcmFjdGlvblNlcGFyYXRvcjogJ1xcdTA2NkInXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNpemVVbml0czoge1xuICAgICAgICBkZWZhdWx0VW5pdFN5c3RlbTogJ1NJJyxcbiAgICAgICAgZGVmYXVsdFByZWNpc2lvbjogMixcbiAgICAgICAgdW5pdFN5c3RlbXM6IHtcbiAgICAgICAgICAgIFNJOiB7XG4gICAgICAgICAgICAgICAgYWJicmV2aWF0aW9uczogWyfQkScsICfQmtCRJywgJ9Cc0JEnLCAn0JPQkScsICfQotCRJ10sXG4gICAgICAgICAgICAgICAgYmFzZTogMTAsXG4gICAgICAgICAgICAgICAgcG93ZXI6IDNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBJRUM6IHtcbiAgICAgICAgICAgICAgICBhYmJyZXZpYXRpb25zOiBbJ9CRJywgJ9Ca0LjQkScsICfQnNC40JEnLCAn0JPQuNCRJywgJ9Ci0LjQkSddLFxuICAgICAgICAgICAgICAgIGJhc2U6IDIsXG4gICAgICAgICAgICAgICAgcG93ZXI6IDEwXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgcHRCUkZvcm1hdHRlcnNEYXRhID0ge1xuICAgIGZvcm1hdHRlcnM6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICByb3VuZGluZzoge1xuICAgICAgICAgICAgICAgIHNlcGFyYXRvcjogJyAnLFxuICAgICAgICAgICAgICAgIGdyb3VwU2VwYXJhdG9yOiAnLCcsXG4gICAgICAgICAgICAgICAgdGhvdXNhbmQ6ICdtaWwnLFxuICAgICAgICAgICAgICAgIG1pbGxpb246ICdtaScsXG4gICAgICAgICAgICAgICAgYmlsbGlvbjogJ2JpJyxcbiAgICAgICAgICAgICAgICB0cmlsbGlvbjogJ3RyaSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICBncm91cFNlcGFyYXRvcjogWycuJ10sXG4gICAgICAgICAgICBmcmFjdGlvblNlcGFyYXRvcjogJywnXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNpemVVbml0czoge1xuICAgICAgICBkZWZhdWx0VW5pdFN5c3RlbTogJ1NJJyxcbiAgICAgICAgZGVmYXVsdFByZWNpc2lvbjogMixcbiAgICAgICAgdW5pdFN5c3RlbXM6IHtcbiAgICAgICAgICAgIFNJOiB7XG4gICAgICAgICAgICAgICAgYWJicmV2aWF0aW9uczogWyfQkScsICfQmtCRJywgJ9Cc0JEnLCAn0JPQkScsICfQotCRJ10sXG4gICAgICAgICAgICAgICAgYmFzZTogMTAsXG4gICAgICAgICAgICAgICAgcG93ZXI6IDNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBJRUM6IHtcbiAgICAgICAgICAgICAgICBhYmJyZXZpYXRpb25zOiBbJ9CRJywgJ9Ca0LjQkScsICfQnNC40JEnLCAn0JPQuNCRJywgJ9Ci0LjQkSddLFxuICAgICAgICAgICAgICAgIGJhc2U6IDIsXG4gICAgICAgICAgICAgICAgcG93ZXI6IDEwXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgcnVSVUZvcm1hdHRlcnNEYXRhID0ge1xuICAgIGZvcm1hdHRlcnM6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICByb3VuZGluZzoge1xuICAgICAgICAgICAgICAgIHNlcGFyYXRvcjogJyAnLFxuICAgICAgICAgICAgICAgIGdyb3VwU2VwYXJhdG9yOiAnLCcsXG4gICAgICAgICAgICAgICAgdGhvdXNhbmQ6ICfQmicsXG4gICAgICAgICAgICAgICAgbWlsbGlvbjogJ9CcJyxcbiAgICAgICAgICAgICAgICBiaWxsaW9uOiAn0JwnLFxuICAgICAgICAgICAgICAgIHRyaWxsaW9uOiAn0KInXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGlucHV0OiB7XG4gICAgICAgIG51bWJlcjoge1xuICAgICAgICAgICAgLy8gbmJzcCBpcyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBhbmQgdXNlZCBieSBkZWZhdWx0IGluIHNwZWNcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pcnJlZ3VsYXItd2hpdGVzcGFjZVxuICAgICAgICAgICAgZ3JvdXBTZXBhcmF0b3I6IFsnwqAnLCAnICddLFxuICAgICAgICAgICAgZnJhY3Rpb25TZXBhcmF0b3I6ICcsJyxcbiAgICAgICAgICAgIHN0YXJ0Rm9ybWF0dGluZ0Zyb206IDRcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2l6ZVVuaXRzOiB7XG4gICAgICAgIGRlZmF1bHRVbml0U3lzdGVtOiAnU0knLFxuICAgICAgICBkZWZhdWx0UHJlY2lzaW9uOiAyLFxuICAgICAgICB1bml0U3lzdGVtczoge1xuICAgICAgICAgICAgU0k6IHtcbiAgICAgICAgICAgICAgICBhYmJyZXZpYXRpb25zOiBbJ9CRJywgJ9Ca0JEnLCAn0JzQkScsICfQk9CRJywgJ9Ci0JEnXSxcbiAgICAgICAgICAgICAgICBiYXNlOiAxMCxcbiAgICAgICAgICAgICAgICBwb3dlcjogM1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIElFQzoge1xuICAgICAgICAgICAgICAgIGFiYnJldmlhdGlvbnM6IFsn0JEnLCAn0JrQuNCRJywgJ9Cc0LjQkScsICfQk9C40JEnLCAn0KLQuNCRJ10sXG4gICAgICAgICAgICAgICAgYmFzZTogMixcbiAgICAgICAgICAgICAgICBwb3dlcjogMTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCB6aENORm9ybWF0dGVyc0RhdGEgPSB7XG4gICAgZm9ybWF0dGVyczoge1xuICAgICAgICBudW1iZXI6IHtcbiAgICAgICAgICAgIHJvdW5kaW5nOiB7XG4gICAgICAgICAgICAgICAgc2VwYXJhdG9yOiAnICcsXG4gICAgICAgICAgICAgICAgZ3JvdXBTZXBhcmF0b3I6ICcuJyxcbiAgICAgICAgICAgICAgICB0ZW5UaG91c2FuZDogJ+S4hycsXG4gICAgICAgICAgICAgICAgb25lSHVuZHJlZE1pbGxpb25zOiAn5Lq/JyxcbiAgICAgICAgICAgICAgICB0cmlsbGlvbjogJ+WFhidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICBncm91cFNlcGFyYXRvcjogWycsJ10sXG4gICAgICAgICAgICBmcmFjdGlvblNlcGFyYXRvcjogJy4nXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNpemVVbml0czoge1xuICAgICAgICBkZWZhdWx0VW5pdFN5c3RlbTogJ1NJJyxcbiAgICAgICAgZGVmYXVsdFByZWNpc2lvbjogMixcbiAgICAgICAgdW5pdFN5c3RlbXM6IHtcbiAgICAgICAgICAgIFNJOiB7XG4gICAgICAgICAgICAgICAgYWJicmV2aWF0aW9uczogWyfQkScsICfQmtCRJywgJ9Cc0JEnLCAn0JPQkScsICfQotCRJ10sXG4gICAgICAgICAgICAgICAgYmFzZTogMTAsXG4gICAgICAgICAgICAgICAgcG93ZXI6IDNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBJRUM6IHtcbiAgICAgICAgICAgICAgICBhYmJyZXZpYXRpb25zOiBbJ9CRJywgJ9Ca0LjQkScsICfQnNC40JEnLCAn0JPQuNCRJywgJ9Ci0LjQkSddLFxuICAgICAgICAgICAgICAgIGJhc2U6IDIsXG4gICAgICAgICAgICAgICAgcG93ZXI6IDEwXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuIl19