@testgorilla/tgo-ui 2.23.55 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/components/alert-banner/alert-banner.component.d.ts +3 -13
  2. package/components/autocomplete/autocomplete.component.d.ts +3 -12
  3. package/components/button/button.component.d.ts +3 -12
  4. package/components/checkbox/checkbox.component.d.ts +3 -12
  5. package/components/checklist/checklist.component.d.ts +60 -0
  6. package/components/checklist/checklist.model.d.ts +7 -0
  7. package/components/datepicker/datepicker.component.d.ts +3 -12
  8. package/components/dialog/dialog.component.d.ts +3 -12
  9. package/components/dropdown/dropdown.component.d.ts +3 -12
  10. package/components/empty-state/empty-state.component.d.ts +3 -11
  11. package/components/field/field.component.d.ts +3 -12
  12. package/components/file-upload/file-upload.component.d.ts +3 -12
  13. package/components/icon/icon.config.d.ts +1 -1
  14. package/components/multi-input/multi-input.component.d.ts +3 -12
  15. package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +1 -2
  16. package/components/navbar/navbar.component.d.ts +3 -12
  17. package/components/overflow-menu/overflow-menu.component.d.ts +3 -12
  18. package/components/page-header/page-header.component.d.ts +3 -12
  19. package/components/password-criteria/password.component.d.ts +3 -12
  20. package/components/password-strength/password-strength.component.d.ts +3 -12
  21. package/components/phone-input/phone-input.component.d.ts +3 -12
  22. package/components/progress-bar/progress-bar.component.d.ts +7 -9
  23. package/components/side-panel/side-panel.component.d.ts +3 -5
  24. package/components/side-sheet/side-sheet.component.d.ts +3 -12
  25. package/components/slider/slider.component.d.ts +3 -12
  26. package/components/snackbar/snackbar.component.d.ts +3 -12
  27. package/components/spinner/spinner.component.d.ts +3 -12
  28. package/components/spinner/spinner.module.d.ts +1 -1
  29. package/components/stepper/stepper.component.d.ts +3 -12
  30. package/components/tag/tag.component.d.ts +3 -12
  31. package/components/toggle/toggle.component.d.ts +3 -12
  32. package/components/validation-error/validation-error.component.d.ts +2 -12
  33. package/esm2022/assets/i18n/en.json +2 -1
  34. package/esm2022/components/alert-banner/alert-banner.component.mjs +6 -28
  35. package/esm2022/components/autocomplete/autocomplete.component.mjs +6 -27
  36. package/esm2022/components/avatar/avatar.component.mjs +1 -1
  37. package/esm2022/components/button/button.component.mjs +5 -26
  38. package/esm2022/components/checkbox/checkbox.component.mjs +6 -27
  39. package/esm2022/components/checklist/checklist.component.mjs +133 -0
  40. package/esm2022/components/checklist/checklist.model.mjs +2 -0
  41. package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +5 -4
  42. package/esm2022/components/datepicker/datepicker.component.mjs +6 -27
  43. package/esm2022/components/dialog/dialog.component.mjs +5 -26
  44. package/esm2022/components/dropdown/dropdown.component.mjs +6 -27
  45. package/esm2022/components/empty-state/empty-state.component.mjs +5 -25
  46. package/esm2022/components/field/field.component.mjs +6 -27
  47. package/esm2022/components/file-upload/file-upload.component.mjs +6 -27
  48. package/esm2022/components/icon/icon.config.mjs +5 -1
  49. package/esm2022/components/multi-input/multi-input.component.mjs +6 -27
  50. package/esm2022/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.mjs +5 -8
  51. package/esm2022/components/navbar/navbar.component.mjs +6 -28
  52. package/esm2022/components/overflow-menu/overflow-menu.component.mjs +6 -27
  53. package/esm2022/components/page-header/page-header.component.mjs +5 -26
  54. package/esm2022/components/password-criteria/password.component.mjs +8 -29
  55. package/esm2022/components/password-strength/password-strength.component.mjs +5 -26
  56. package/esm2022/components/phone-input/phone-input.component.mjs +6 -27
  57. package/esm2022/components/progress-bar/progress-bar.component.mjs +10 -22
  58. package/esm2022/components/radial-progress/radial-progress.component.mjs +1 -1
  59. package/esm2022/components/side-panel/side-panel.component.mjs +8 -18
  60. package/esm2022/components/side-sheet/side-sheet.component.mjs +6 -27
  61. package/esm2022/components/slider/slider.component.mjs +6 -27
  62. package/esm2022/components/snackbar/snackbar.component.mjs +6 -27
  63. package/esm2022/components/spinner/spinner.component.mjs +5 -26
  64. package/esm2022/components/spinner/spinner.module.mjs +4 -4
  65. package/esm2022/components/stepper/stepper.component.mjs +5 -26
  66. package/esm2022/components/tag/tag.component.mjs +5 -26
  67. package/esm2022/components/toggle/toggle.component.mjs +5 -26
  68. package/esm2022/components/validation-error/validation-error.component.mjs +7 -28
  69. package/esm2022/pipes/ui-translate.pipe.mjs +19 -14
  70. package/esm2022/public-api.mjs +5 -3
  71. package/esm2022/utils/localization/language.service.mjs +12 -1
  72. package/fesm2022/testgorilla-tgo-ui.mjs +337 -674
  73. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  74. package/package.json +1 -1
  75. package/pipes/ui-translate.pipe.d.ts +5 -1
  76. package/projects/tgo-canopy-ui/assets/i18n/en.json +2 -1
  77. package/projects/tgo-canopy-ui/assets/icons/rebrand/Circle-filled.svg +3 -0
  78. package/projects/tgo-canopy-ui/assets/icons/rebrand/Circle-in-line.svg +3 -0
  79. package/public-api.d.ts +3 -1
  80. package/utils/localization/language.service.d.ts +4 -0
  81. package/esm2022/tokens/app-lang.token.mjs +0 -3
  82. package/tokens/app-lang.token.d.ts +0 -2
@@ -1,22 +1,18 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Inject, Input, Optional, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
2
2
  import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { LanguageService } from '../../utils/localization/language.service';
4
- import { CANOPY_UI_LANG } from '../../tokens/app-lang.token';
5
3
  import * as i0 from "@angular/core";
6
4
  import * as i1 from "@angular/material/dialog";
7
5
  import * as i2 from "@angular/common";
8
6
  import * as i3 from "../button/button.component";
9
7
  import * as i4 from "../../pipes/ui-translate.pipe";
10
- import * as i5 from "../../utils/localization/language.model";
11
8
  export class DialogComponent {
12
9
  onEsc(_) {
13
10
  this.dismiss();
14
11
  }
15
- constructor(defaultAppTheme, dialogRef, data, appLang) {
12
+ constructor(defaultAppTheme, dialogRef, data) {
16
13
  this.defaultAppTheme = defaultAppTheme;
17
14
  this.dialogRef = dialogRef;
18
15
  this.data = data;
19
- this.appLang = appLang;
20
16
  /**
21
17
  * Dialog title
22
18
  *
@@ -59,13 +55,6 @@ export class DialogComponent {
59
55
  * @memberof DialogComponent
60
56
  */
61
57
  this.primaryButtonType = 'primary';
62
- /**
63
- * The language to be used
64
- * @property language
65
- * @type {Language}
66
- * @memberof DialogComponent
67
- */
68
- this.language = LanguageService.defaultLanguage;
69
58
  /**
70
59
  * Primary button test id
71
60
  *
@@ -148,9 +137,6 @@ export class DialogComponent {
148
137
  if (defaultAppTheme) {
149
138
  this.applicationTheme = defaultAppTheme;
150
139
  }
151
- if (appLang) {
152
- this.language = appLang;
153
- }
154
140
  }
155
141
  ngOnInit() {
156
142
  this.areButtonsDisabled();
@@ -200,12 +186,12 @@ export class DialogComponent {
200
186
  onPrimaryButtonClick(event) {
201
187
  this.primaryButtonClickEvent.emit(event);
202
188
  }
203
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: CANOPY_UI_LANG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DialogComponent, selector: "ui-dialog", inputs: { title: "title", showCloseButton: "showCloseButton", canCloseFn: "canCloseFn", secondaryButtonLabel: "secondaryButtonLabel", primaryButtonLabel: "primaryButtonLabel", secondaryButtonType: "secondaryButtonType", primaryButtonType: "primaryButtonType", language: "language", primaryButtonDataTestId: "primaryButtonDataTestId", secondaryButtonDataTestId: "secondaryButtonDataTestId", companyColor: "companyColor", applicationTheme: "applicationTheme", disablePrimaryButton: "disablePrimaryButton", disableClose: "disableClose", shouldDisableButtons: "shouldDisableButtons", ariaLabelledby: "ariaLabelledby", ariaDescribedby: "ariaDescribedby", keyboardOpen: "keyboardOpen" }, outputs: { closeEvent: "closeEvent", secondaryButtonClickEvent: "secondaryButtonClickEvent", primaryButtonClickEvent: "primaryButtonClickEvent" }, host: { listeners: { "keydown.esc": "onEsc($event)" }, properties: { "style.--color": "this.companyColor" } }, viewQueries: [{ propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"dialog-container\" [attr.theme]=\"applicationTheme\">\n <div\n mat-dialog-title\n class=\"dialog-title\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"'labelledby'\"\n [attr.aria-describedby]=\"'ariaDescribedby'\"\n >\n\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\n <h3 class=\"bold\" id=\"labelledby\">{{ title }}</h3>\n <div *ngIf=\"showCloseButton\">\n <ui-button\n #closeButton\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.CLOSE') | uiTranslate : language\"\n (click)=\"onClose($event)\"\n (buttonClickEvent)=\"dismiss()\"\n id=\"dialog-close-button\"\n ></ui-button>\n </div>\n </div>\n <mat-dialog-content>\n <ng-content></ng-content>\n </mat-dialog-content>\n <div mat-dialog-actions *ngIf=\"secondaryButtonLabel !== '' || primaryButtonLabel !== ''\">\n <ui-button\n [companyColor]=\"companyColor\"\n [variant]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!!secondaryButtonLabel\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick($event)\"\n ></ui-button>\n <ui-button\n [variant]=\"primaryButtonType\"\n *ngIf=\"!!primaryButtonLabel\"\n [disabled]=\"disableButtons || disablePrimaryButton\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"onPrimaryButtonClick($event)\"\n [label]=\"primaryButtonLabel\"\n [companyColor]=\"companyColor\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (buttonClickEvent)=\"dismiss()\"\n ></ui-button>\n </div>\n\n<!-- This is announcement for screen reader that dialog was closed-->\n <div aria-live=\"assertive\" role=\"alert\" style=\"position: absolute; left: -9999px;\">\n <span *ngIf=\"modalClosed\">{{ 'DIALOG.CLOSED' | uiTranslate : language }}</span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.ui-dialog-wrapper{display:flex;flex-flow:column}.ui-dialog-wrapper.small{width:600px}.ui-dialog-wrapper.large{width:956px}.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{border-radius:8px;padding:16px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface,.ui-dialog-wrapper.light .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{padding:32px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface,.ui-dialog-wrapper.light .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{border-radius:10px}.ui-dialog-wrapper.dark .dialog-title,.ui-dialog-wrapper.light .dialog-title{height:40px;padding:0;margin-bottom:32px}.ui-dialog-wrapper.dark .mat-mdc-dialog-content,.ui-dialog-wrapper.light .mat-mdc-dialog-content{padding:0}.ui-dialog-wrapper.dark .mat-mdc-dialog-actions,.ui-dialog-wrapper.light .mat-mdc-dialog-actions{padding:0;margin-top:32px}.ui-dialog-wrapper .mat-mdc-dialog-content{font-size:14px;color:#000;line-height:20px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container{--mdc-dialog-container-color: #424242}.ui-dialog-wrapper.dark .mat-mdc-dialog-content{color:#fff!important}.ui-dialog-wrapper.dark .dialog-title{--mdc-dialog-subhead-color: #ffffff}.dialog-title{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin:0}.dialog-title .close{margin-right:-24px}.dialog-title:before{content:none}.mat-mdc-dialog-actions{display:flex;justify-content:flex-end;column-gap:16px;padding:16px 0 0;margin-bottom:0;min-height:48px}@media (max-width: 1024px){.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{min-width:320px;max-width:600px;border-radius:0}.mat-mdc-dialog-content{max-height:524px}}@media (max-width: 600px){.cdk-overlay-pane.ui-dialog-wrapper{max-width:100%!important;min-height:100%;display:flex;justify-content:center}.cdk-overlay-pane.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{min-width:100%;max-width:100%;height:100%;display:flex;flex-grow:1;border-radius:0}ui-dialog{height:100%;display:flex;flex-flow:column}.mat-mdc-dialog-content{max-height:unset;display:flex;flex-grow:1;flex-direction:column}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "language", "preventDefault", "tooltipPosition"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "pipe", type: i4.UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
189
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
190
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DialogComponent, selector: "ui-dialog", inputs: { title: "title", showCloseButton: "showCloseButton", canCloseFn: "canCloseFn", secondaryButtonLabel: "secondaryButtonLabel", primaryButtonLabel: "primaryButtonLabel", secondaryButtonType: "secondaryButtonType", primaryButtonType: "primaryButtonType", primaryButtonDataTestId: "primaryButtonDataTestId", secondaryButtonDataTestId: "secondaryButtonDataTestId", companyColor: "companyColor", applicationTheme: "applicationTheme", disablePrimaryButton: "disablePrimaryButton", disableClose: "disableClose", shouldDisableButtons: "shouldDisableButtons", ariaLabelledby: "ariaLabelledby", ariaDescribedby: "ariaDescribedby", keyboardOpen: "keyboardOpen" }, outputs: { closeEvent: "closeEvent", secondaryButtonClickEvent: "secondaryButtonClickEvent", primaryButtonClickEvent: "primaryButtonClickEvent" }, host: { listeners: { "keydown.esc": "onEsc($event)" }, properties: { "style.--color": "this.companyColor" } }, viewQueries: [{ propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"dialog-container\" [attr.theme]=\"applicationTheme\">\n <div\n mat-dialog-title\n class=\"dialog-title\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"'labelledby'\"\n [attr.aria-describedby]=\"'ariaDescribedby'\"\n >\n\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\n <h3 class=\"bold\" id=\"labelledby\">{{ title }}</h3>\n <div *ngIf=\"showCloseButton\">\n <ui-button\n #closeButton\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"(('COMMON.CLOSE') | uiTranslate | async)!\"\n (click)=\"onClose($event)\"\n (buttonClickEvent)=\"dismiss()\"\n id=\"dialog-close-button\"\n ></ui-button>\n </div>\n </div>\n <mat-dialog-content>\n <ng-content></ng-content>\n </mat-dialog-content>\n <div mat-dialog-actions *ngIf=\"secondaryButtonLabel !== '' || primaryButtonLabel !== ''\">\n <ui-button\n [companyColor]=\"companyColor\"\n [variant]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!!secondaryButtonLabel\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick($event)\"\n ></ui-button>\n <ui-button\n [variant]=\"primaryButtonType\"\n *ngIf=\"!!primaryButtonLabel\"\n [disabled]=\"disableButtons || disablePrimaryButton\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"onPrimaryButtonClick($event)\"\n [label]=\"primaryButtonLabel\"\n [companyColor]=\"companyColor\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (buttonClickEvent)=\"dismiss()\"\n ></ui-button>\n </div>\n\n<!-- This is announcement for screen reader that dialog was closed-->\n <div aria-live=\"assertive\" role=\"alert\" style=\"position: absolute; left: -9999px;\">\n <span *ngIf=\"modalClosed\">{{ 'DIALOG.CLOSED' | uiTranslate | async }}</span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.ui-dialog-wrapper{display:flex;flex-flow:column}.ui-dialog-wrapper.small{width:600px}.ui-dialog-wrapper.large{width:956px}.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{border-radius:8px;padding:16px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface,.ui-dialog-wrapper.light .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{padding:32px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface,.ui-dialog-wrapper.light .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{border-radius:10px}.ui-dialog-wrapper.dark .dialog-title,.ui-dialog-wrapper.light .dialog-title{height:40px;padding:0;margin-bottom:32px}.ui-dialog-wrapper.dark .mat-mdc-dialog-content,.ui-dialog-wrapper.light .mat-mdc-dialog-content{padding:0}.ui-dialog-wrapper.dark .mat-mdc-dialog-actions,.ui-dialog-wrapper.light .mat-mdc-dialog-actions{padding:0;margin-top:32px}.ui-dialog-wrapper .mat-mdc-dialog-content{font-size:14px;color:#000;line-height:20px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container{--mdc-dialog-container-color: #424242}.ui-dialog-wrapper.dark .mat-mdc-dialog-content{color:#fff!important}.ui-dialog-wrapper.dark .dialog-title{--mdc-dialog-subhead-color: #ffffff}.dialog-title{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin:0}.dialog-title .close{margin-right:-24px}.dialog-title:before{content:none}.mat-mdc-dialog-actions{display:flex;justify-content:flex-end;column-gap:16px;padding:16px 0 0;margin-bottom:0;min-height:48px}@media (max-width: 1024px){.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{min-width:320px;max-width:600px;border-radius:0}.mat-mdc-dialog-content{max-height:524px}}@media (max-width: 600px){.cdk-overlay-pane.ui-dialog-wrapper{max-width:100%!important;min-height:100%;display:flex;justify-content:center}.cdk-overlay-pane.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{min-width:100%;max-width:100%;height:100%;display:flex;flex-grow:1;border-radius:0}ui-dialog{height:100%;display:flex;flex-flow:column}.mat-mdc-dialog-content{max-height:unset;display:flex;flex-grow:1;flex-direction:column}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "tooltipPosition"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
205
191
  }
206
192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogComponent, decorators: [{
207
193
  type: Component,
208
- args: [{ selector: 'ui-dialog', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"dialog-container\" [attr.theme]=\"applicationTheme\">\n <div\n mat-dialog-title\n class=\"dialog-title\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"'labelledby'\"\n [attr.aria-describedby]=\"'ariaDescribedby'\"\n >\n\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\n <h3 class=\"bold\" id=\"labelledby\">{{ title }}</h3>\n <div *ngIf=\"showCloseButton\">\n <ui-button\n #closeButton\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.CLOSE') | uiTranslate : language\"\n (click)=\"onClose($event)\"\n (buttonClickEvent)=\"dismiss()\"\n id=\"dialog-close-button\"\n ></ui-button>\n </div>\n </div>\n <mat-dialog-content>\n <ng-content></ng-content>\n </mat-dialog-content>\n <div mat-dialog-actions *ngIf=\"secondaryButtonLabel !== '' || primaryButtonLabel !== ''\">\n <ui-button\n [companyColor]=\"companyColor\"\n [variant]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!!secondaryButtonLabel\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick($event)\"\n ></ui-button>\n <ui-button\n [variant]=\"primaryButtonType\"\n *ngIf=\"!!primaryButtonLabel\"\n [disabled]=\"disableButtons || disablePrimaryButton\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"onPrimaryButtonClick($event)\"\n [label]=\"primaryButtonLabel\"\n [companyColor]=\"companyColor\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (buttonClickEvent)=\"dismiss()\"\n ></ui-button>\n </div>\n\n<!-- This is announcement for screen reader that dialog was closed-->\n <div aria-live=\"assertive\" role=\"alert\" style=\"position: absolute; left: -9999px;\">\n <span *ngIf=\"modalClosed\">{{ 'DIALOG.CLOSED' | uiTranslate : language }}</span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.ui-dialog-wrapper{display:flex;flex-flow:column}.ui-dialog-wrapper.small{width:600px}.ui-dialog-wrapper.large{width:956px}.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{border-radius:8px;padding:16px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface,.ui-dialog-wrapper.light .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{padding:32px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface,.ui-dialog-wrapper.light .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{border-radius:10px}.ui-dialog-wrapper.dark .dialog-title,.ui-dialog-wrapper.light .dialog-title{height:40px;padding:0;margin-bottom:32px}.ui-dialog-wrapper.dark .mat-mdc-dialog-content,.ui-dialog-wrapper.light .mat-mdc-dialog-content{padding:0}.ui-dialog-wrapper.dark .mat-mdc-dialog-actions,.ui-dialog-wrapper.light .mat-mdc-dialog-actions{padding:0;margin-top:32px}.ui-dialog-wrapper .mat-mdc-dialog-content{font-size:14px;color:#000;line-height:20px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container{--mdc-dialog-container-color: #424242}.ui-dialog-wrapper.dark .mat-mdc-dialog-content{color:#fff!important}.ui-dialog-wrapper.dark .dialog-title{--mdc-dialog-subhead-color: #ffffff}.dialog-title{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin:0}.dialog-title .close{margin-right:-24px}.dialog-title:before{content:none}.mat-mdc-dialog-actions{display:flex;justify-content:flex-end;column-gap:16px;padding:16px 0 0;margin-bottom:0;min-height:48px}@media (max-width: 1024px){.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{min-width:320px;max-width:600px;border-radius:0}.mat-mdc-dialog-content{max-height:524px}}@media (max-width: 600px){.cdk-overlay-pane.ui-dialog-wrapper{max-width:100%!important;min-height:100%;display:flex;justify-content:center}.cdk-overlay-pane.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{min-width:100%;max-width:100%;height:100%;display:flex;flex-grow:1;border-radius:0}ui-dialog{height:100%;display:flex;flex-flow:column}.mat-mdc-dialog-content{max-height:unset;display:flex;flex-grow:1;flex-direction:column}}\n"] }]
194
+ args: [{ selector: 'ui-dialog', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"dialog-container\" [attr.theme]=\"applicationTheme\">\n <div\n mat-dialog-title\n class=\"dialog-title\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"'labelledby'\"\n [attr.aria-describedby]=\"'ariaDescribedby'\"\n >\n\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\n <h3 class=\"bold\" id=\"labelledby\">{{ title }}</h3>\n <div *ngIf=\"showCloseButton\">\n <ui-button\n #closeButton\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"(('COMMON.CLOSE') | uiTranslate | async)!\"\n (click)=\"onClose($event)\"\n (buttonClickEvent)=\"dismiss()\"\n id=\"dialog-close-button\"\n ></ui-button>\n </div>\n </div>\n <mat-dialog-content>\n <ng-content></ng-content>\n </mat-dialog-content>\n <div mat-dialog-actions *ngIf=\"secondaryButtonLabel !== '' || primaryButtonLabel !== ''\">\n <ui-button\n [companyColor]=\"companyColor\"\n [variant]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n *ngIf=\"!!secondaryButtonLabel\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick($event)\"\n ></ui-button>\n <ui-button\n [variant]=\"primaryButtonType\"\n *ngIf=\"!!primaryButtonLabel\"\n [disabled]=\"disableButtons || disablePrimaryButton\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"onPrimaryButtonClick($event)\"\n [label]=\"primaryButtonLabel\"\n [companyColor]=\"companyColor\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (buttonClickEvent)=\"dismiss()\"\n ></ui-button>\n </div>\n\n<!-- This is announcement for screen reader that dialog was closed-->\n <div aria-live=\"assertive\" role=\"alert\" style=\"position: absolute; left: -9999px;\">\n <span *ngIf=\"modalClosed\">{{ 'DIALOG.CLOSED' | uiTranslate | async }}</span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.ui-dialog-wrapper{display:flex;flex-flow:column}.ui-dialog-wrapper.small{width:600px}.ui-dialog-wrapper.large{width:956px}.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{border-radius:8px;padding:16px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface,.ui-dialog-wrapper.light .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{padding:32px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface,.ui-dialog-wrapper.light .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{border-radius:10px}.ui-dialog-wrapper.dark .dialog-title,.ui-dialog-wrapper.light .dialog-title{height:40px;padding:0;margin-bottom:32px}.ui-dialog-wrapper.dark .mat-mdc-dialog-content,.ui-dialog-wrapper.light .mat-mdc-dialog-content{padding:0}.ui-dialog-wrapper.dark .mat-mdc-dialog-actions,.ui-dialog-wrapper.light .mat-mdc-dialog-actions{padding:0;margin-top:32px}.ui-dialog-wrapper .mat-mdc-dialog-content{font-size:14px;color:#000;line-height:20px}.ui-dialog-wrapper.dark .mat-mdc-dialog-container{--mdc-dialog-container-color: #424242}.ui-dialog-wrapper.dark .mat-mdc-dialog-content{color:#fff!important}.ui-dialog-wrapper.dark .dialog-title{--mdc-dialog-subhead-color: #ffffff}.dialog-title{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin:0}.dialog-title .close{margin-right:-24px}.dialog-title:before{content:none}.mat-mdc-dialog-actions{display:flex;justify-content:flex-end;column-gap:16px;padding:16px 0 0;margin-bottom:0;min-height:48px}@media (max-width: 1024px){.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{min-width:320px;max-width:600px;border-radius:0}.mat-mdc-dialog-content{max-height:524px}}@media (max-width: 600px){.cdk-overlay-pane.ui-dialog-wrapper{max-width:100%!important;min-height:100%;display:flex;justify-content:center}.cdk-overlay-pane.ui-dialog-wrapper .mat-mdc-dialog-container .mdc-dialog__container .mat-mdc-dialog-surface{min-width:100%;max-width:100%;height:100%;display:flex;flex-grow:1;border-radius:0}ui-dialog{height:100%;display:flex;flex-flow:column}.mat-mdc-dialog-content{max-height:unset;display:flex;flex-grow:1;flex-direction:column}}\n"] }]
209
195
  }], ctorParameters: () => [{ type: undefined, decorators: [{
210
196
  type: Optional
211
197
  }, {
@@ -214,11 +200,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
214
200
  }] }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
215
201
  type: Inject,
216
202
  args: [MAT_DIALOG_DATA]
217
- }] }, { type: i5.Language, decorators: [{
218
- type: Optional
219
- }, {
220
- type: Inject,
221
- args: [CANOPY_UI_LANG]
222
203
  }] }], propDecorators: { title: [{
223
204
  type: Input
224
205
  }], showCloseButton: [{
@@ -233,8 +214,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
233
214
  type: Input
234
215
  }], primaryButtonType: [{
235
216
  type: Input
236
- }], language: [{
237
- type: Input
238
217
  }], primaryButtonDataTestId: [{
239
218
  type: Input
240
219
  }], secondaryButtonDataTestId: [{
@@ -271,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
271
250
  type: HostListener,
272
251
  args: ['keydown.esc', ['$event']]
273
252
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUcsUUFBUSxFQUNoQixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUc1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFVN0QsTUFBTSxPQUFPLGVBQWU7SUF1SjFCLEtBQUssQ0FBQyxDQUFnQjtRQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFlBQzZFLGVBQWlDLEVBQ3JHLFNBQXdDLEVBQ2QsSUFBNEMsRUFDdEIsT0FBaUI7UUFIRyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFDckcsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUF3QztRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFVO1FBN0oxRTs7OztXQUlHO1FBQ00sVUFBSyxHQUFJLEVBQUUsQ0FBQztRQUVyQjs7OztXQUlHO1FBQ00sb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFaEM7Ozs7V0FJRztRQUNNLGVBQVUsR0FBa0IsR0FBRyxFQUFFLENB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LEtBQUs7Z0JBT0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQU9HLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFPRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBT0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQVFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQU9HLHlCQUF5QjtzQkFBakMsS0FBSztnQkFXTixZQUFZO3NCQUZYLFdBQVc7dUJBQUMsZUFBZTs7c0JBQzNCLEtBQUs7Z0JBVUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQVFHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFRRyxZQUFZO3NCQUFwQixLQUFLO2dCQVNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFRRyxjQUFjO3NCQUF0QixLQUFLO2dCQVFHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBUUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLHlCQUF5QjtzQkFBbEMsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRW1CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFLeEIsS0FBSztzQkFESixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQnV0dG9uQ29sb3IgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZGVsJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2FsaXphdGlvbi9sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWwnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ0FOT1BZX1VJX0xBTkcgfSBmcm9tICcuLi8uLi90b2tlbnMvYXBwLWxhbmcudG9rZW4nO1xuaW1wb3J0IHsgTGFuZ3VhZ2UgfSBmcm9tICcuLi8uLi91dGlscy9sb2NhbGl6YXRpb24vbGFuZ3VhZ2UubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqXG4gICAqIERpYWxvZyB0aXRsZVxuICAgKlxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSB0aXRsZT8gPSAnJztcblxuICAvKipcbiAgICogU2hvdyBjbG9zZSBidXR0b25cbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcblxuICAvKipcbiAgICogRnVjdGlvbiBjYWxsZWQgYmVmb3JlIGRpYWxnbyBpcyBjbG9zZWRcbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgY2FuQ2xvc2VGbjogKCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWU7XG5cbiAgLyoqXG4gICAqIFNlY29uZGFyeSBidXR0b24gbGFiZWxcbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2Vjb25kYXJ5QnV0dG9uTGFiZWw/ID0gJyc7XG5cbiAgLyoqXG4gICAqIFByaW1hcnkgYnV0dG9uIGxhYmVsXG4gICAqXG4gICAqIEBtZW1iZXJvZiBEaWFsb2dDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHByaW1hcnlCdXR0b25MYWJlbD8gPSAnJztcblxuICAvKipcbiAgICogU2Vjb25kYXJ5IGJ1dHRvbiB0eXBlXG4gICAqXG4gICAqIEBtZW1iZXJvZiBEaWFsb2dDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNlY29uZGFyeUJ1dHRvblR5cGU6IEJ1dHRvbkNvbG9yID0gJ3NlY29uZGFyeSc7XG5cbiAgLyoqXG4gICAqIFByaW1hcnkgYnV0dG9uIHR5cGVcbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgcHJpbWFyeUJ1dHRvblR5cGU6IEJ1dHRvbkNvbG9yID0gJ3ByaW1hcnknO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFuZ3VhZ2UgdG8gYmUgdXNlZFxuICAgKiBAcHJvcGVydHkgbGFuZ3VhZ2VcbiAgICogQHR5cGUge0xhbmd1YWdlfVxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsYW5ndWFnZSA9IExhbmd1YWdlU2VydmljZS5kZWZhdWx0TGFuZ3VhZ2U7XG5cbiAgLyoqXG4gICAqIFByaW1hcnkgYnV0dG9uIHRlc3QgaWRcbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgcHJpbWFyeUJ1dHRvbkRhdGFUZXN0SWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTZWNvbmRhcnkgYnV0dG9uIHRlc3QgaWRcbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2Vjb25kYXJ5QnV0dG9uRGF0YVRlc3RJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIENvbG9yIG9mIHRoZSBkaWFsb2cuXG4gICAqIERlZmF1bHRzIHRvIFRlc3QgR29yaWxsYSBwcmltYXJ5IGNvbG9yLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tY29sb3InKVxuICBASW5wdXQoKVxuICBjb21wYW55Q29sb3I6IHN0cmluZyB8IG51bGwgPSAnJztcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBEaWFsb2dDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnbGlnaHQnO1xuICAvKipcbiAgICpcbiAgICogRGlzYWJsZSBwcmltYXJ5IGJ1dHRvblxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZVByaW1hcnlCdXR0b24gPSBmYWxzZTtcbiAgLyoqXG4gICAqXG4gICAqIERpc2FibGUgY2xvc2UgYnV0dG9uXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlQ2xvc2UgPSBmYWxzZTtcblxuICAvKipcbiAgICpcbiAgICogRGlzYWJsZSBidXR0b24gd2hlbiBjYW5DbG9zZUZuIGlzIHVzZWRcbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBEaWFsb2dDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNob3VsZERpc2FibGVCdXR0b25zID0gdHJ1ZTtcblxuICAvKipcbiAgICogQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBBUklBIHJlcXVpcmVtZW50IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIHRvIGluZGljYXRlIHdoZXRoZXIgYW4gaW5wdXQgZmllbGQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gc3VibWlzc2lvbi5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsbGVkYnkgPSAnJztcblxuICAvKipcbiAgICogQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBBUklBIHJlcXVpcmVtZW50IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIHRvIGluZGljYXRlIHdoZXRoZXIgYW4gaW5wdXQgZmllbGQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gc3VibWlzc2lvbi5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXJpYURlc2NyaWJlZGJ5ID0gJyc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IG1vZGFsIHdhcyBvcGVuZWQgKHdpdGgga2V5Ym9hcmQgb3Igbm90KVxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkga2V5Ym9hcmRPcGVuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNsb3NlRXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBAT3V0cHV0KCkgc2Vjb25kYXJ5QnV0dG9uQ2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBwcmltYXJ5QnV0dG9uQ2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY2xvc2VCdXR0b24nKSBjbG9zZUJ1dHRvbjogQnV0dG9uQ29tcG9uZW50O1xuXG4gIG1vZGFsQ2xvc2VkID0gZmFsc2U7XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2MnLCBbJyRldmVudCddKVxuICBvbkVzYyhfOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5kaXNtaXNzKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogeyBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lIH0sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDQU5PUFlfVUlfTEFORykgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcExhbmc6IExhbmd1YWdlLFxuICApIHtcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSBkZWZhdWx0QXBwVGhlbWU7XG4gICAgfVxuICAgIGlmIChhcHBMYW5nKSB7XG4gICAgICB0aGlzLmxhbmd1YWdlID0gYXBwTGFuZztcbiAgICB9XG4gIH1cblxuICBkaXNhYmxlQnV0dG9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRpb25Db250ZXh0ID0gJ0RJQUxPRy4nO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXJlQnV0dG9uc0Rpc2FibGVkKCk7XG4gICAgaWYgKHRoaXMuZGF0YT8uYXBwbGljYXRpb25UaGVtZSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblRoZW1lID0gdGhpcy5kYXRhLmFwcGxpY2F0aW9uVGhlbWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9uVGhlbWUgIT09ICdjbGFzc2ljJykge1xuICAgICAgdGhpcy5zZWNvbmRhcnlCdXR0b25UeXBlID0gJ2dob3N0JztcbiAgICAgIHRoaXMuY29tcGFueUNvbG9yID0gdGhpcy5jb21wYW55Q29sb3IgfHwgJyNENDEwQUEnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbXBhbnlDb2xvciA9IHRoaXMuY29tcGFueUNvbG9yIHx8ICcjNDZBOTk3JztcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2NhbkNsb3NlRm4nXSkge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gIXRoaXMuY2FuQ2xvc2VGbigpO1xuICAgICAgdGhpcy5hcmVCdXR0b25zRGlzYWJsZWQoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMua2V5Ym9hcmRPcGVuKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZUJ1dHRvbi5idXR0b25FbGVtZW50LmZvY3VzKCdrZXlib2FyZCcpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cblxuICAvL0Rpc2FibGUgcHJpbWFyeSBidXR0b24gd2hlbiBjYW5DbG9zZSBpcyBmYWxzZVxuICBhcmVCdXR0b25zRGlzYWJsZWQoKSB7XG4gICAgdGhpcy5kaXNhYmxlQnV0dG9ucyA9ICF0aGlzLmNhbkNsb3NlRm4oKSAmJiB0aGlzLnNob3VsZERpc2FibGVCdXR0b25zO1xuICB9XG5cbiAgLy9DbG9zZSBtb2RhbFxuICBkaXNtaXNzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbkNsb3NlRm4oKSkge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gZmFsc2U7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgdGhpcy5tb2RhbENsb3NlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25DbG9zZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdChldmVudCk7XG4gICAgdGhpcy5tb2RhbENsb3NlZCA9IHRydWU7XG4gIH1cblxuICBvblNlY29uZGFyeUJ1dHRvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2Vjb25kYXJ5QnV0dG9uQ2xpY2tFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uUHJpbWFyeUJ1dHRvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucHJpbWFyeUJ1dHRvbkNsaWNrRXZlbnQuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGFpbmVyXCIgW2F0dHIudGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiPlxuICA8ZGl2XG4gICAgbWF0LWRpYWxvZy10aXRsZVxuICAgIGNsYXNzPVwiZGlhbG9nLXRpdGxlXCJcbiAgICBbYXR0ci5hcmlhLW1vZGFsXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInbGFiZWxsZWRieSdcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2FyaWFEZXNjcmliZWRieSdcIlxuICA+XG5cbiAgICA8c3BhbiBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIiBpZD1cImFyaWFEZXNjcmliZWRieVwiPnt7IGFyaWFEZXNjcmliZWRieSB9fTwvc3Bhbj5cbiAgICA8aDMgY2xhc3M9XCJib2xkXCIgaWQ9XCJsYWJlbGxlZGJ5XCI+e3sgdGl0bGUgfX08L2gzPlxuICAgIDxkaXYgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b25cIj5cbiAgICAgIDx1aS1idXR0b25cbiAgICAgICAgI2Nsb3NlQnV0dG9uXG4gICAgICAgIFt2YXJpYW50XT1cIidpY29uLWJ1dHRvbidcIlxuICAgICAgICBbaWNvbk5hbWVdPVwiJ0Nsb3NlJ1wiXG4gICAgICAgIFtjb21wYW55Q29sb3JdPVwiYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnID8gJyMwMDAnIDogJyMyNDI0MjQnXCJcbiAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIignQ09NTU9OLkNMT1NFJykgfCB1aVRyYW5zbGF0ZSA6IGxhbmd1YWdlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoJGV2ZW50KVwiXG4gICAgICAgIChidXR0b25DbGlja0V2ZW50KT1cImRpc21pc3MoKVwiXG4gICAgICAgIGlkPVwiZGlhbG9nLWNsb3NlLWJ1dHRvblwiXG4gICAgICA+PC91aS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zICpuZ0lmPVwic2Vjb25kYXJ5QnV0dG9uTGFiZWwgIT09ICcnIHx8IHByaW1hcnlCdXR0b25MYWJlbCAhPT0gJydcIj5cbiAgICA8dWktYnV0dG9uXG4gICAgICBbY29tcGFueUNvbG9yXT1cImNvbXBhbnlDb2xvclwiXG4gICAgICBbdmFyaWFudF09XCJzZWNvbmRhcnlCdXR0b25UeXBlXCJcbiAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgKm5nSWY9XCIhIXNlY29uZGFyeUJ1dHRvbkxhYmVsXCJcbiAgICAgIFtsYWJlbF09XCJzZWNvbmRhcnlCdXR0b25MYWJlbFwiXG4gICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJzZWNvbmRhcnlCdXR0b25EYXRhVGVzdElkXCJcbiAgICAgIChjbGljayk9XCJvblNlY29uZGFyeUJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgID48L3VpLWJ1dHRvbj5cbiAgICA8dWktYnV0dG9uXG4gICAgICBbdmFyaWFudF09XCJwcmltYXJ5QnV0dG9uVHlwZVwiXG4gICAgICAqbmdJZj1cIiEhcHJpbWFyeUJ1dHRvbkxhYmVsXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnV0dG9ucyB8fCBkaXNhYmxlUHJpbWFyeUJ1dHRvblwiXG4gICAgICBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgIChjbGljayk9XCJvblByaW1hcnlCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgIFtsYWJlbF09XCJwcmltYXJ5QnV0dG9uTGFiZWxcIlxuICAgICAgW2NvbXBhbnlDb2xvcl09XCJjb21wYW55Q29sb3JcIlxuICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwicHJpbWFyeUJ1dHRvbkRhdGFUZXN0SWRcIlxuICAgICAgKGJ1dHRvbkNsaWNrRXZlbnQpPVwiZGlzbWlzcygpXCJcbiAgICA+PC91aS1idXR0b24+XG4gIDwvZGl2PlxuXG48IS0tICBUaGlzIGlzIGFubm91bmNlbWVudCBmb3Igc2NyZWVuIHJlYWRlciB0aGF0IGRpYWxvZyB3YXMgY2xvc2VkLS0+XG4gIDxkaXYgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCIgcm9sZT1cImFsZXJ0XCIgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC05OTk5cHg7XCI+XG4gICAgPHNwYW4gKm5nSWY9XCJtb2RhbENsb3NlZFwiPnt7ICdESUFMT0cuQ0xPU0VEJyB8IHVpVHJhbnNsYXRlIDogbGFuZ3VhZ2UgfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUcsUUFBUSxFQUNoQixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFZekUsTUFBTSxPQUFPLGVBQWU7SUErSTFCLEtBQUssQ0FBQyxDQUFnQjtRQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFlBQzZFLGVBQWlDLEVBQ3JHLFNBQXdDLEVBQ2QsSUFBNEM7UUFGRixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFDckcsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUF3QztRQXBKL0U7Ozs7V0FJRztRQUNNLFVBQUssR0FBSSxFQUFFLENBQUM7UUFFckI7Ozs7V0FJRztRQUNNLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRWhDOzs7O1dBSUc7UUFDTSxlQUFVLEdBQWtCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztRQUVoRDs7OztXQUlHO1FBQ00seUJBQW9CLEdBQUksRUFBRSxDQUFDO1FBRXBDOzs7O1dBSUc7UUFDTSx1QkFBa0IsR0FBSSxFQUFFLENBQUM7UUFFbEM7Ozs7V0FJRztRQUNNLHdCQUFtQixHQUFn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QixLQUFLO2dCQVFHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBUUcsZUFBZTtzQkFBdkIsS0FBSztnQkFRRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0cseUJBQXlCO3NCQUFsQyxNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFbUIsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUt4QixLQUFLO3NCQURKLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCwgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBCdXR0b25Db2xvciB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kZWwnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25UaGVtZSB9IGZyb20gJy4uLy4uL21vZGVscy9hcHBsaWNhdGlvbi10aGVtZS5tb2RlbCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogRGlhbG9nIHRpdGxlXG4gICAqXG4gICAqIEBtZW1iZXJvZiBEaWFsb2dDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHRpdGxlPyA9ICcnO1xuXG4gIC8qKlxuICAgKiBTaG93IGNsb3NlIGJ1dHRvblxuICAgKlxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBGdWN0aW9uIGNhbGxlZCBiZWZvcmUgZGlhbGdvIGlzIGNsb3NlZFxuICAgKlxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBjYW5DbG9zZUZuOiAoKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcblxuICAvKipcbiAgICogU2Vjb25kYXJ5IGJ1dHRvbiBsYWJlbFxuICAgKlxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzZWNvbmRhcnlCdXR0b25MYWJlbD8gPSAnJztcblxuICAvKipcbiAgICogUHJpbWFyeSBidXR0b24gbGFiZWxcbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgcHJpbWFyeUJ1dHRvbkxhYmVsPyA9ICcnO1xuXG4gIC8qKlxuICAgKiBTZWNvbmRhcnkgYnV0dG9uIHR5cGVcbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2Vjb25kYXJ5QnV0dG9uVHlwZTogQnV0dG9uQ29sb3IgPSAnc2Vjb25kYXJ5JztcblxuICAvKipcbiAgICogUHJpbWFyeSBidXR0b24gdHlwZVxuICAgKlxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBwcmltYXJ5QnV0dG9uVHlwZTogQnV0dG9uQ29sb3IgPSAncHJpbWFyeSc7XG5cbiAgLyoqXG4gICAqIFByaW1hcnkgYnV0dG9uIHRlc3QgaWRcbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgcHJpbWFyeUJ1dHRvbkRhdGFUZXN0SWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTZWNvbmRhcnkgYnV0dG9uIHRlc3QgaWRcbiAgICpcbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2Vjb25kYXJ5QnV0dG9uRGF0YVRlc3RJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIENvbG9yIG9mIHRoZSBkaWFsb2cuXG4gICAqIERlZmF1bHRzIHRvIFRlc3QgR29yaWxsYSBwcmltYXJ5IGNvbG9yLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tY29sb3InKVxuICBASW5wdXQoKVxuICBjb21wYW55Q29sb3I6IHN0cmluZyB8IG51bGwgPSAnJztcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBEaWFsb2dDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnbGlnaHQnO1xuICAvKipcbiAgICpcbiAgICogRGlzYWJsZSBwcmltYXJ5IGJ1dHRvblxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZVByaW1hcnlCdXR0b24gPSBmYWxzZTtcbiAgLyoqXG4gICAqXG4gICAqIERpc2FibGUgY2xvc2UgYnV0dG9uXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgRGlhbG9nQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlQ2xvc2UgPSBmYWxzZTtcblxuICAvKipcbiAgICpcbiAgICogRGlzYWJsZSBidXR0b24gd2hlbiBjYW5DbG9zZUZuIGlzIHVzZWRcbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBEaWFsb2dDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNob3VsZERpc2FibGVCdXR0b25zID0gdHJ1ZTtcblxuICAvKipcbiAgICogQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBBUklBIHJlcXVpcmVtZW50IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIHRvIGluZGljYXRlIHdoZXRoZXIgYW4gaW5wdXQgZmllbGQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gc3VibWlzc2lvbi5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsbGVkYnkgPSAnJztcblxuICAvKipcbiAgICogQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBBUklBIHJlcXVpcmVtZW50IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIHRvIGluZGljYXRlIHdoZXRoZXIgYW4gaW5wdXQgZmllbGQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gc3VibWlzc2lvbi5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXJpYURlc2NyaWJlZGJ5ID0gJyc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IG1vZGFsIHdhcyBvcGVuZWQgKHdpdGgga2V5Ym9hcmQgb3Igbm90KVxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIERpYWxvZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkga2V5Ym9hcmRPcGVuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNsb3NlRXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBAT3V0cHV0KCkgc2Vjb25kYXJ5QnV0dG9uQ2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBwcmltYXJ5QnV0dG9uQ2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY2xvc2VCdXR0b24nKSBjbG9zZUJ1dHRvbjogQnV0dG9uQ29tcG9uZW50O1xuXG4gIG1vZGFsQ2xvc2VkID0gZmFsc2U7XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2MnLCBbJyRldmVudCddKVxuICBvbkVzYyhfOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5kaXNtaXNzKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogeyBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lIH0sXG4gICkge1xuICAgIGlmIChkZWZhdWx0QXBwVGhlbWUpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25UaGVtZSA9IGRlZmF1bHRBcHBUaGVtZTtcbiAgICB9XG4gIH1cblxuICBkaXNhYmxlQnV0dG9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRpb25Db250ZXh0ID0gJ0RJQUxPRy4nO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXJlQnV0dG9uc0Rpc2FibGVkKCk7XG4gICAgaWYgKHRoaXMuZGF0YT8uYXBwbGljYXRpb25UaGVtZSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblRoZW1lID0gdGhpcy5kYXRhLmFwcGxpY2F0aW9uVGhlbWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9uVGhlbWUgIT09ICdjbGFzc2ljJykge1xuICAgICAgdGhpcy5zZWNvbmRhcnlCdXR0b25UeXBlID0gJ2dob3N0JztcbiAgICAgIHRoaXMuY29tcGFueUNvbG9yID0gdGhpcy5jb21wYW55Q29sb3IgfHwgJyNENDEwQUEnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbXBhbnlDb2xvciA9IHRoaXMuY29tcGFueUNvbG9yIHx8ICcjNDZBOTk3JztcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2NhbkNsb3NlRm4nXSkge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gIXRoaXMuY2FuQ2xvc2VGbigpO1xuICAgICAgdGhpcy5hcmVCdXR0b25zRGlzYWJsZWQoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMua2V5Ym9hcmRPcGVuKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZUJ1dHRvbi5idXR0b25FbGVtZW50LmZvY3VzKCdrZXlib2FyZCcpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cblxuICAvL0Rpc2FibGUgcHJpbWFyeSBidXR0b24gd2hlbiBjYW5DbG9zZSBpcyBmYWxzZVxuICBhcmVCdXR0b25zRGlzYWJsZWQoKSB7XG4gICAgdGhpcy5kaXNhYmxlQnV0dG9ucyA9ICF0aGlzLmNhbkNsb3NlRm4oKSAmJiB0aGlzLnNob3VsZERpc2FibGVCdXR0b25zO1xuICB9XG5cbiAgLy9DbG9zZSBtb2RhbFxuICBkaXNtaXNzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbkNsb3NlRm4oKSkge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gZmFsc2U7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgdGhpcy5tb2RhbENsb3NlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25DbG9zZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdChldmVudCk7XG4gICAgdGhpcy5tb2RhbENsb3NlZCA9IHRydWU7XG4gIH1cblxuICBvblNlY29uZGFyeUJ1dHRvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2Vjb25kYXJ5QnV0dG9uQ2xpY2tFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uUHJpbWFyeUJ1dHRvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucHJpbWFyeUJ1dHRvbkNsaWNrRXZlbnQuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGFpbmVyXCIgW2F0dHIudGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiPlxuICA8ZGl2XG4gICAgbWF0LWRpYWxvZy10aXRsZVxuICAgIGNsYXNzPVwiZGlhbG9nLXRpdGxlXCJcbiAgICBbYXR0ci5hcmlhLW1vZGFsXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInbGFiZWxsZWRieSdcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2FyaWFEZXNjcmliZWRieSdcIlxuICA+XG5cbiAgICA8c3BhbiBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIiBpZD1cImFyaWFEZXNjcmliZWRieVwiPnt7IGFyaWFEZXNjcmliZWRieSB9fTwvc3Bhbj5cbiAgICA8aDMgY2xhc3M9XCJib2xkXCIgaWQ9XCJsYWJlbGxlZGJ5XCI+e3sgdGl0bGUgfX08L2gzPlxuICAgIDxkaXYgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b25cIj5cbiAgICAgIDx1aS1idXR0b25cbiAgICAgICAgI2Nsb3NlQnV0dG9uXG4gICAgICAgIFt2YXJpYW50XT1cIidpY29uLWJ1dHRvbidcIlxuICAgICAgICBbaWNvbk5hbWVdPVwiJ0Nsb3NlJ1wiXG4gICAgICAgIFtjb21wYW55Q29sb3JdPVwiYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnID8gJyMwMDAnIDogJyMyNDI0MjQnXCJcbiAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIigoJ0NPTU1PTi5DTE9TRScpIHwgdWlUcmFuc2xhdGUgfCBhc3luYykhXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoJGV2ZW50KVwiXG4gICAgICAgIChidXR0b25DbGlja0V2ZW50KT1cImRpc21pc3MoKVwiXG4gICAgICAgIGlkPVwiZGlhbG9nLWNsb3NlLWJ1dHRvblwiXG4gICAgICA+PC91aS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zICpuZ0lmPVwic2Vjb25kYXJ5QnV0dG9uTGFiZWwgIT09ICcnIHx8IHByaW1hcnlCdXR0b25MYWJlbCAhPT0gJydcIj5cbiAgICA8dWktYnV0dG9uXG4gICAgICBbY29tcGFueUNvbG9yXT1cImNvbXBhbnlDb2xvclwiXG4gICAgICBbdmFyaWFudF09XCJzZWNvbmRhcnlCdXR0b25UeXBlXCJcbiAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgKm5nSWY9XCIhIXNlY29uZGFyeUJ1dHRvbkxhYmVsXCJcbiAgICAgIFtsYWJlbF09XCJzZWNvbmRhcnlCdXR0b25MYWJlbFwiXG4gICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJzZWNvbmRhcnlCdXR0b25EYXRhVGVzdElkXCJcbiAgICAgIChjbGljayk9XCJvblNlY29uZGFyeUJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgID48L3VpLWJ1dHRvbj5cbiAgICA8dWktYnV0dG9uXG4gICAgICBbdmFyaWFudF09XCJwcmltYXJ5QnV0dG9uVHlwZVwiXG4gICAgICAqbmdJZj1cIiEhcHJpbWFyeUJ1dHRvbkxhYmVsXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnV0dG9ucyB8fCBkaXNhYmxlUHJpbWFyeUJ1dHRvblwiXG4gICAgICBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgIChjbGljayk9XCJvblByaW1hcnlCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgIFtsYWJlbF09XCJwcmltYXJ5QnV0dG9uTGFiZWxcIlxuICAgICAgW2NvbXBhbnlDb2xvcl09XCJjb21wYW55Q29sb3JcIlxuICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwicHJpbWFyeUJ1dHRvbkRhdGFUZXN0SWRcIlxuICAgICAgKGJ1dHRvbkNsaWNrRXZlbnQpPVwiZGlzbWlzcygpXCJcbiAgICA+PC91aS1idXR0b24+XG4gIDwvZGl2PlxuXG48IS0tICBUaGlzIGlzIGFubm91bmNlbWVudCBmb3Igc2NyZWVuIHJlYWRlciB0aGF0IGRpYWxvZyB3YXMgY2xvc2VkLS0+XG4gIDxkaXYgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCIgcm9sZT1cImFsZXJ0XCIgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC05OTk5cHg7XCI+XG4gICAgPHNwYW4gKm5nSWY9XCJtb2RhbENsb3NlZFwiPnt7ICdESUFMT0cuQ0xPU0VEJyB8IHVpVHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=