@testgorilla/tgo-ui 3.10.20 → 3.11.1

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 (30) hide show
  1. package/components/overflow-menu/overflow-menu.model.d.ts +1 -1
  2. package/esm2022/assets/i18n/da-dk.json +649 -10
  3. package/esm2022/assets/i18n/de.json +649 -10
  4. package/esm2022/assets/i18n/en.json +2 -1
  5. package/esm2022/assets/i18n/es.json +649 -10
  6. package/esm2022/assets/i18n/fr.json +649 -10
  7. package/esm2022/assets/i18n/it-it.json +649 -10
  8. package/esm2022/assets/i18n/ja-jp.json +649 -10
  9. package/esm2022/assets/i18n/nb-no.json +649 -10
  10. package/esm2022/assets/i18n/nl.json +649 -10
  11. package/esm2022/assets/i18n/pl-pl.json +649 -10
  12. package/esm2022/assets/i18n/pt-br.json +649 -10
  13. package/esm2022/assets/i18n/sv-se.json +649 -10
  14. package/esm2022/components/overflow-menu/overflow-menu.component.mjs +3 -3
  15. package/esm2022/components/overflow-menu/overflow-menu.model.mjs +1 -1
  16. package/fesm2022/testgorilla-tgo-ui.mjs +7581 -479
  17. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  18. package/package.json +1 -1
  19. package/projects/tgo-canopy-ui/assets/i18n/da-dk.json +649 -10
  20. package/projects/tgo-canopy-ui/assets/i18n/de.json +649 -10
  21. package/projects/tgo-canopy-ui/assets/i18n/en.json +2 -1
  22. package/projects/tgo-canopy-ui/assets/i18n/es.json +649 -10
  23. package/projects/tgo-canopy-ui/assets/i18n/fr.json +649 -10
  24. package/projects/tgo-canopy-ui/assets/i18n/it-it.json +649 -10
  25. package/projects/tgo-canopy-ui/assets/i18n/ja-jp.json +649 -10
  26. package/projects/tgo-canopy-ui/assets/i18n/nb-no.json +649 -10
  27. package/projects/tgo-canopy-ui/assets/i18n/nl.json +649 -10
  28. package/projects/tgo-canopy-ui/assets/i18n/pl-pl.json +649 -10
  29. package/projects/tgo-canopy-ui/assets/i18n/pt-br.json +649 -10
  30. package/projects/tgo-canopy-ui/assets/i18n/sv-se.json +649 -10
@@ -195,11 +195,11 @@ export class OverflowMenuComponent {
195
195
  });
196
196
  }
197
197
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OverflowMenuComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i1.FocusMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
198
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OverflowMenuComponent, selector: "ui-overflow-menu", inputs: { buttons: "buttons", iconTrigger: "iconTrigger", menuLabel: "menuLabel", applicationTheme: "applicationTheme", ariaLabel: "ariaLabel", ariaRequired: "ariaRequired", describedby: "describedby", contentTemplateRef: "contentTemplateRef", buttonVariant: "buttonVariant", buttonSize: "buttonSize", menuConfig: "menuConfig", isDynamicMenu: "isDynamicMenu" }, outputs: { selectItem: "selectItem", menuOpened: "menuOpened", menuClosed: "menuClosed" }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["buttonElement"], descendants: true }, { propertyName: "matmenus", predicate: MatMenu, descendants: true }, { propertyName: "matTrigger", predicate: MatMenuTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"overflow-menu-container\" [attr.theme]=\"applicationTheme\">\n <button\n #buttonElement\n mat-button\n [ngClass]=\"{\n 'icon-button': !contentTemplateRef && !buttonVariant,\n 'content-template': contentTemplateRef,\n 'no-hover': buttonVariant,\n }\"\n *ngIf=\"isMenuRendered()\"\n [matMenuTriggerFor]=\"matmenus.first\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n [attr.aria-describedby]=\"'describedby'\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isMenuOpened()\"\n disableRipple\n (menuOpened)=\"onMenuOpened()\"\n (menuClosed)=\"onMenuClosed()\"\n class=\"overflow-menu-opener\"\n [matTooltip]=\"menuLabel\"\n >\n <span [id]=\"'describedby'\" [style.display]=\"'none'\">{{ describedby }}</span>\n @if (buttonVariant) {\n <ui-button\n [variant]=\"buttonVariant\"\n [justIcon]=\"true\"\n [iconName]=\"iconTrigger\"\n [applicationTheme]=\"applicationTheme\"\n [disabled]=\"false\"\n [size]=\"buttonSize\"\n >\n </ui-button>\n } @else if (contentTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"contentTemplateRef\"></ng-container>\n } @else {\n <ui-icon\n [name]=\"iconTrigger\"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n ></ui-icon>\n }\n </button>\n\n @for (menu of submenus; track menu) {\n <mat-menu\n [xPosition]=\"menuConfig.xPosition\"\n [yPosition]=\"menuConfig.yPosition\"\n #matMenu\n [class]=\"'overflow-menu ' + menuConfig.panelClass\"\n [overlapTrigger]=\"menuConfig.overlapTrigger\"\n backdropClass=\"overflow-menu-backdrop\"\n >\n <ng-container *ngFor=\"let button of menu; index as id\">\n <ng-container\n *ngIf=\"button.btnTemplate; else uiButton\"\n [ngTemplateOutlet]=\"button.btnTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"\n ></ng-container>\n\n <ng-template #uiButton>\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"getMenu(button.subMenu)\"\n (menuOpened)=\"onSubmenuOpened()\"\n (focus)=\"onButtonFocus(button)\"\n (blur)=\"onButtonBlur(button)\"\n (mouseenter)=\"onButtonHover(button, true)\"\n (mouseleave)=\"onButtonHover(button, false)\"\n [ngClass]=\"{ 'is-destructive': button.isDestructive, disabled: button.disabled }\"\n disableRipple\n (click)=\"onButtonClick(button, $event)\"\n [matTooltip]=\"button.tooltipText ? button.tooltipText : (button.isTextEllipsed ? button.label : '')\"\n [attr.aria-labelledby]=\"'labelledby-' + button.label + id\"\n [attr.aria-describedby]=\"'describedby-' + button.label + id\"\n [attr.aria-label]=\"button.ariaLabel || null\"\n role=\"menuitem\"\n matTooltipPosition=\"right\"\n >\n <span [id]=\"'describedby-' + button.label + id\" [style.display]=\"'none'\">\n {{\n button.disabled\n ? ('MENU.MENUITEM_DISABLED' | uiTranslate | async) + ' ' + (button.describedby || '')\n : button.describedby\n }}\n </span>\n\n <ui-icon\n [name]=\"button.icon\"\n [toggleIconStyle]=\"true\"\n [filled]=\"\n button.disabled ? false : button.isHovered ? true : menuItemHasHovered ? false : !!button.isFocused\n \"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [color]=\"button.isDestructive ? 'red' : button.disabled ? 'dark' : 'rebrand-black'\"\n ></ui-icon>\n <span\n [id]=\"'labelledby-' + button.label + id\"\n class=\"label\"\n uiEllipseText\n [refresh]=\"isMenuOpened()\"\n [maxDiffPixels]=\"1\"\n [isMultiline]=\"true\"\n (onChangeTextState)=\"button.isTextEllipsed = $event\"\n >{{ button.label }}</span\n >\n </button>\n </ng-template>\n </ng-container>\n\n <ng-content select=\"[menu-content]\"></ng-content>\n </mat-menu>\n }\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}:host ::ng-deep .overflow-menu .mat-mdc-menu-content:not(:empty){padding:0}:host ::ng-deep .overflow-menu button{padding:0!important;width:fit-content!important}.overflow-menu-opener{background:transparent;border:unset;cursor:pointer}.overflow-menu-opener.content-template{display:flex;justify-content:flex-start;height:100%;width:100%}.overflow-menu-opener.icon-button{height:40px;width:40px;border-radius:50px;display:flex;align-items:center;justify-content:center}.overflow-menu-opener:focus-visible{outline-color:#242424;outline-style:solid;outline-offset:2px!important;animation:focus-ring-animation .4s forwards}@keyframes focus-ring-animation{0%{outline-width:4px!important}to{outline-width:2px!important}}.overflow-menu-opener:hover{background:#e9e9e9}.overflow-menu-backdrop+* .mat-mdc-menu-panel{min-height:0;border-radius:8px;box-shadow:2px 24px 48px 8px #00000014}.overflow-menu-backdrop+* .mat-mdc-menu-content:not(:empty){padding:0}.overflow-menu-backdrop+* .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-top:16px;padding-bottom:16px}.overflow-menu-backdrop+* ui-button:first-child button.mat-mdc-unelevated-button.menuCell{border-radius:8px 8px 0 0}.overflow-menu-backdrop+* ui-button:last-child button.mat-mdc-unelevated-button.menuCell{border-radius:0 0 8px 8px}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell{color:#cb7b7a}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg{color:#cb7b7a}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover{background-color:#f0dad9}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused{background-color:#f0dad9}[theme=dark] .overflow-menu-backdrop+* .mat-mdc-menu-panel,[theme=light] .overflow-menu-backdrop+* .mat-mdc-menu-panel{min-height:0;border-radius:10px;box-shadow:0 4px 16px #24242414}[theme=dark] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:hover,[theme=light] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}[theme=dark] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:active,[theme=light] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell{color:#e02800!important}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg{color:#e02800!important}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:active,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused{background-color:#ffe6fa}button.is-destructive{background-color:#fff;color:#e02800}button.is-destructive:hover{background-color:#e02800}button.is-destructive:hover ::ng-deep mat-icon.black svg{color:#fff}button.is-destructive:disabled,button.is-destructive:disabled:hover{color:#919191;background:transparent}button.is-destructive ::ng-deep mat-icon.black svg{color:#e02800}button.is-destructive .mat-mdc-progress-spinner ::ng-deep circle{stroke:#242424}button.is-destructive.classic-theme{border:unset;border-radius:4px;background-color:#cb7b7a;color:#fff}button.is-destructive.classic-theme:hover{background-color:#8e5655}button.is-destructive.classic-theme:disabled,button.is-destructive.classic-theme:disabled:hover{background-color:#e3c3c6}button.is-destructive.classic-theme ::ng-deep mat-icon.black svg{color:#fff}button.is-destructive.classic-theme .mat-mdc-progress-spinner ::ng-deep circle{stroke:#000}button .label{text-align:left;overflow:hidden;-webkit-line-clamp:2;display:-webkit-box!important;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal;line-height:16px}button.disabled{background:transparent;color:#888;cursor:not-allowed}button.disabled:hover{background:transparent!important}.overflow-menu-opener.no-hover:hover{background:transparent}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i8.EllipseTextDirective, selector: "[uiEllipseText]", inputs: ["isMultiline", "maxDiffPixels", "refresh"], outputs: ["onChangeTextState"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OverflowMenuComponent, selector: "ui-overflow-menu", inputs: { buttons: "buttons", iconTrigger: "iconTrigger", menuLabel: "menuLabel", applicationTheme: "applicationTheme", ariaLabel: "ariaLabel", ariaRequired: "ariaRequired", describedby: "describedby", contentTemplateRef: "contentTemplateRef", buttonVariant: "buttonVariant", buttonSize: "buttonSize", menuConfig: "menuConfig", isDynamicMenu: "isDynamicMenu" }, outputs: { selectItem: "selectItem", menuOpened: "menuOpened", menuClosed: "menuClosed" }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["buttonElement"], descendants: true }, { propertyName: "matmenus", predicate: MatMenu, descendants: true }, { propertyName: "matTrigger", predicate: MatMenuTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"overflow-menu-container\" [attr.theme]=\"applicationTheme\">\n <button\n #buttonElement\n mat-button\n [ngClass]=\"{\n 'icon-button': !contentTemplateRef && !buttonVariant,\n 'content-template': contentTemplateRef,\n 'no-hover': buttonVariant,\n }\"\n *ngIf=\"isMenuRendered()\"\n [matMenuTriggerFor]=\"matmenus.first\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n [attr.aria-describedby]=\"'describedby'\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isMenuOpened()\"\n disableRipple\n (menuOpened)=\"onMenuOpened()\"\n (menuClosed)=\"onMenuClosed()\"\n class=\"overflow-menu-opener\"\n [matTooltip]=\"menuLabel\"\n >\n <span [id]=\"'describedby'\" [style.display]=\"'none'\">{{ describedby }}</span>\n @if (buttonVariant) {\n <ui-button\n [variant]=\"buttonVariant\"\n [justIcon]=\"true\"\n [iconName]=\"iconTrigger\"\n [applicationTheme]=\"applicationTheme\"\n [disabled]=\"false\"\n [size]=\"buttonSize\"\n >\n </ui-button>\n } @else if (contentTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"contentTemplateRef\"></ng-container>\n } @else {\n <ui-icon\n [name]=\"iconTrigger\"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n ></ui-icon>\n }\n </button>\n\n @for (menu of submenus; track menu) {\n <mat-menu\n [xPosition]=\"menuConfig.xPosition\"\n [yPosition]=\"menuConfig.yPosition\"\n #matMenu\n [class]=\"'overflow-menu ' + menuConfig.panelClass\"\n [overlapTrigger]=\"menuConfig.overlapTrigger\"\n backdropClass=\"overflow-menu-backdrop\"\n >\n <ng-container *ngFor=\"let button of menu; index as id\">\n <ng-container\n *ngIf=\"button.btnTemplate; else uiButton\"\n [ngTemplateOutlet]=\"button.btnTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"\n ></ng-container>\n\n <ng-template #uiButton>\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"getMenu(button.subMenu)\"\n (menuOpened)=\"onSubmenuOpened()\"\n (focus)=\"onButtonFocus(button)\"\n (blur)=\"onButtonBlur(button)\"\n (mouseenter)=\"onButtonHover(button, true)\"\n (mouseleave)=\"onButtonHover(button, false)\"\n [ngClass]=\"{ 'is-destructive': button.isDestructive, disabled: button.disabled }\"\n disableRipple\n (click)=\"onButtonClick(button, $event)\"\n [matTooltip]=\"button.tooltipText ? button.tooltipText : button.isTextEllipsed ? button.label : ''\"\n [attr.aria-labelledby]=\"'labelledby-' + button.label + id\"\n [attr.aria-describedby]=\"'describedby-' + button.label + id\"\n [attr.aria-label]=\"button.ariaLabel || null\"\n role=\"menuitem\"\n matTooltipPosition=\"right\"\n >\n <span [id]=\"'describedby-' + button.label + id\" [style.display]=\"'none'\">\n {{\n button.disabled\n ? ('MENU.MENUITEM_DISABLED' | uiTranslate | async) + ' ' + (button.describedby || '')\n : button.describedby\n }}\n </span>\n @if (button.icon) {\n <ui-icon\n [name]=\"button.icon\"\n [toggleIconStyle]=\"true\"\n [filled]=\"\n button.disabled ? false : button.isHovered ? true : menuItemHasHovered ? false : !!button.isFocused\n \"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [color]=\"button.isDestructive ? 'red' : button.disabled ? 'dark' : 'rebrand-black'\"\n ></ui-icon>\n }\n <span\n [id]=\"'labelledby-' + button.label + id\"\n class=\"label\"\n uiEllipseText\n [refresh]=\"isMenuOpened()\"\n [maxDiffPixels]=\"1\"\n [isMultiline]=\"true\"\n (onChangeTextState)=\"button.isTextEllipsed = $event\"\n >{{ button.label }}</span\n >\n </button>\n </ng-template>\n </ng-container>\n\n <ng-content select=\"[menu-content]\"></ng-content>\n </mat-menu>\n }\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}:host ::ng-deep .overflow-menu .mat-mdc-menu-content:not(:empty){padding:0}:host ::ng-deep .overflow-menu button{padding:0!important;width:fit-content!important}.overflow-menu-opener{background:transparent;border:unset;cursor:pointer}.overflow-menu-opener.content-template{display:flex;justify-content:flex-start;height:100%;width:100%}.overflow-menu-opener.icon-button{height:40px;width:40px;border-radius:50px;display:flex;align-items:center;justify-content:center}.overflow-menu-opener:focus-visible{outline-color:#242424;outline-style:solid;outline-offset:2px!important;animation:focus-ring-animation .4s forwards}@keyframes focus-ring-animation{0%{outline-width:4px!important}to{outline-width:2px!important}}.overflow-menu-opener:hover{background:#e9e9e9}.overflow-menu-backdrop+* .mat-mdc-menu-panel{min-height:0;border-radius:8px;box-shadow:2px 24px 48px 8px #00000014}.overflow-menu-backdrop+* .mat-mdc-menu-content:not(:empty){padding:0}.overflow-menu-backdrop+* .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-top:16px;padding-bottom:16px}.overflow-menu-backdrop+* ui-button:first-child button.mat-mdc-unelevated-button.menuCell{border-radius:8px 8px 0 0}.overflow-menu-backdrop+* ui-button:last-child button.mat-mdc-unelevated-button.menuCell{border-radius:0 0 8px 8px}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell{color:#cb7b7a}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg{color:#cb7b7a}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover{background-color:#f0dad9}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused{background-color:#f0dad9}[theme=dark] .overflow-menu-backdrop+* .mat-mdc-menu-panel,[theme=light] .overflow-menu-backdrop+* .mat-mdc-menu-panel{min-height:0;border-radius:10px;box-shadow:0 4px 16px #24242414}[theme=dark] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:hover,[theme=light] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}[theme=dark] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:active,[theme=light] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell{color:#e02800!important}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg{color:#e02800!important}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:active,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused{background-color:#ffe6fa}button.is-destructive{background-color:#fff;color:#e02800}button.is-destructive:hover{background-color:#e02800}button.is-destructive:hover ::ng-deep mat-icon.black svg{color:#fff}button.is-destructive:disabled,button.is-destructive:disabled:hover{color:#919191;background:transparent}button.is-destructive ::ng-deep mat-icon.black svg{color:#e02800}button.is-destructive .mat-mdc-progress-spinner ::ng-deep circle{stroke:#242424}button.is-destructive.classic-theme{border:unset;border-radius:4px;background-color:#cb7b7a;color:#fff}button.is-destructive.classic-theme:hover{background-color:#8e5655}button.is-destructive.classic-theme:disabled,button.is-destructive.classic-theme:disabled:hover{background-color:#e3c3c6}button.is-destructive.classic-theme ::ng-deep mat-icon.black svg{color:#fff}button.is-destructive.classic-theme .mat-mdc-progress-spinner ::ng-deep circle{stroke:#000}button .label{text-align:left;overflow:hidden;-webkit-line-clamp:2;display:-webkit-box!important;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal;line-height:16px}button.disabled{background:transparent;color:#888;cursor:not-allowed}button.disabled:hover{background:transparent!important}.overflow-menu-opener.no-hover:hover{background:transparent}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i8.EllipseTextDirective, selector: "[uiEllipseText]", inputs: ["isMultiline", "maxDiffPixels", "refresh"], outputs: ["onChangeTextState"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
199
199
  }
200
200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OverflowMenuComponent, decorators: [{
201
201
  type: Component,
202
- args: [{ selector: 'ui-overflow-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"overflow-menu-container\" [attr.theme]=\"applicationTheme\">\n <button\n #buttonElement\n mat-button\n [ngClass]=\"{\n 'icon-button': !contentTemplateRef && !buttonVariant,\n 'content-template': contentTemplateRef,\n 'no-hover': buttonVariant,\n }\"\n *ngIf=\"isMenuRendered()\"\n [matMenuTriggerFor]=\"matmenus.first\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n [attr.aria-describedby]=\"'describedby'\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isMenuOpened()\"\n disableRipple\n (menuOpened)=\"onMenuOpened()\"\n (menuClosed)=\"onMenuClosed()\"\n class=\"overflow-menu-opener\"\n [matTooltip]=\"menuLabel\"\n >\n <span [id]=\"'describedby'\" [style.display]=\"'none'\">{{ describedby }}</span>\n @if (buttonVariant) {\n <ui-button\n [variant]=\"buttonVariant\"\n [justIcon]=\"true\"\n [iconName]=\"iconTrigger\"\n [applicationTheme]=\"applicationTheme\"\n [disabled]=\"false\"\n [size]=\"buttonSize\"\n >\n </ui-button>\n } @else if (contentTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"contentTemplateRef\"></ng-container>\n } @else {\n <ui-icon\n [name]=\"iconTrigger\"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n ></ui-icon>\n }\n </button>\n\n @for (menu of submenus; track menu) {\n <mat-menu\n [xPosition]=\"menuConfig.xPosition\"\n [yPosition]=\"menuConfig.yPosition\"\n #matMenu\n [class]=\"'overflow-menu ' + menuConfig.panelClass\"\n [overlapTrigger]=\"menuConfig.overlapTrigger\"\n backdropClass=\"overflow-menu-backdrop\"\n >\n <ng-container *ngFor=\"let button of menu; index as id\">\n <ng-container\n *ngIf=\"button.btnTemplate; else uiButton\"\n [ngTemplateOutlet]=\"button.btnTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"\n ></ng-container>\n\n <ng-template #uiButton>\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"getMenu(button.subMenu)\"\n (menuOpened)=\"onSubmenuOpened()\"\n (focus)=\"onButtonFocus(button)\"\n (blur)=\"onButtonBlur(button)\"\n (mouseenter)=\"onButtonHover(button, true)\"\n (mouseleave)=\"onButtonHover(button, false)\"\n [ngClass]=\"{ 'is-destructive': button.isDestructive, disabled: button.disabled }\"\n disableRipple\n (click)=\"onButtonClick(button, $event)\"\n [matTooltip]=\"button.tooltipText ? button.tooltipText : (button.isTextEllipsed ? button.label : '')\"\n [attr.aria-labelledby]=\"'labelledby-' + button.label + id\"\n [attr.aria-describedby]=\"'describedby-' + button.label + id\"\n [attr.aria-label]=\"button.ariaLabel || null\"\n role=\"menuitem\"\n matTooltipPosition=\"right\"\n >\n <span [id]=\"'describedby-' + button.label + id\" [style.display]=\"'none'\">\n {{\n button.disabled\n ? ('MENU.MENUITEM_DISABLED' | uiTranslate | async) + ' ' + (button.describedby || '')\n : button.describedby\n }}\n </span>\n\n <ui-icon\n [name]=\"button.icon\"\n [toggleIconStyle]=\"true\"\n [filled]=\"\n button.disabled ? false : button.isHovered ? true : menuItemHasHovered ? false : !!button.isFocused\n \"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [color]=\"button.isDestructive ? 'red' : button.disabled ? 'dark' : 'rebrand-black'\"\n ></ui-icon>\n <span\n [id]=\"'labelledby-' + button.label + id\"\n class=\"label\"\n uiEllipseText\n [refresh]=\"isMenuOpened()\"\n [maxDiffPixels]=\"1\"\n [isMultiline]=\"true\"\n (onChangeTextState)=\"button.isTextEllipsed = $event\"\n >{{ button.label }}</span\n >\n </button>\n </ng-template>\n </ng-container>\n\n <ng-content select=\"[menu-content]\"></ng-content>\n </mat-menu>\n }\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}:host ::ng-deep .overflow-menu .mat-mdc-menu-content:not(:empty){padding:0}:host ::ng-deep .overflow-menu button{padding:0!important;width:fit-content!important}.overflow-menu-opener{background:transparent;border:unset;cursor:pointer}.overflow-menu-opener.content-template{display:flex;justify-content:flex-start;height:100%;width:100%}.overflow-menu-opener.icon-button{height:40px;width:40px;border-radius:50px;display:flex;align-items:center;justify-content:center}.overflow-menu-opener:focus-visible{outline-color:#242424;outline-style:solid;outline-offset:2px!important;animation:focus-ring-animation .4s forwards}@keyframes focus-ring-animation{0%{outline-width:4px!important}to{outline-width:2px!important}}.overflow-menu-opener:hover{background:#e9e9e9}.overflow-menu-backdrop+* .mat-mdc-menu-panel{min-height:0;border-radius:8px;box-shadow:2px 24px 48px 8px #00000014}.overflow-menu-backdrop+* .mat-mdc-menu-content:not(:empty){padding:0}.overflow-menu-backdrop+* .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-top:16px;padding-bottom:16px}.overflow-menu-backdrop+* ui-button:first-child button.mat-mdc-unelevated-button.menuCell{border-radius:8px 8px 0 0}.overflow-menu-backdrop+* ui-button:last-child button.mat-mdc-unelevated-button.menuCell{border-radius:0 0 8px 8px}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell{color:#cb7b7a}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg{color:#cb7b7a}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover{background-color:#f0dad9}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused{background-color:#f0dad9}[theme=dark] .overflow-menu-backdrop+* .mat-mdc-menu-panel,[theme=light] .overflow-menu-backdrop+* .mat-mdc-menu-panel{min-height:0;border-radius:10px;box-shadow:0 4px 16px #24242414}[theme=dark] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:hover,[theme=light] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}[theme=dark] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:active,[theme=light] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell{color:#e02800!important}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg{color:#e02800!important}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:active,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused{background-color:#ffe6fa}button.is-destructive{background-color:#fff;color:#e02800}button.is-destructive:hover{background-color:#e02800}button.is-destructive:hover ::ng-deep mat-icon.black svg{color:#fff}button.is-destructive:disabled,button.is-destructive:disabled:hover{color:#919191;background:transparent}button.is-destructive ::ng-deep mat-icon.black svg{color:#e02800}button.is-destructive .mat-mdc-progress-spinner ::ng-deep circle{stroke:#242424}button.is-destructive.classic-theme{border:unset;border-radius:4px;background-color:#cb7b7a;color:#fff}button.is-destructive.classic-theme:hover{background-color:#8e5655}button.is-destructive.classic-theme:disabled,button.is-destructive.classic-theme:disabled:hover{background-color:#e3c3c6}button.is-destructive.classic-theme ::ng-deep mat-icon.black svg{color:#fff}button.is-destructive.classic-theme .mat-mdc-progress-spinner ::ng-deep circle{stroke:#000}button .label{text-align:left;overflow:hidden;-webkit-line-clamp:2;display:-webkit-box!important;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal;line-height:16px}button.disabled{background:transparent;color:#888;cursor:not-allowed}button.disabled:hover{background:transparent!important}.overflow-menu-opener.no-hover:hover{background:transparent}\n"] }]
202
+ args: [{ selector: 'ui-overflow-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"overflow-menu-container\" [attr.theme]=\"applicationTheme\">\n <button\n #buttonElement\n mat-button\n [ngClass]=\"{\n 'icon-button': !contentTemplateRef && !buttonVariant,\n 'content-template': contentTemplateRef,\n 'no-hover': buttonVariant,\n }\"\n *ngIf=\"isMenuRendered()\"\n [matMenuTriggerFor]=\"matmenus.first\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n [attr.aria-describedby]=\"'describedby'\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isMenuOpened()\"\n disableRipple\n (menuOpened)=\"onMenuOpened()\"\n (menuClosed)=\"onMenuClosed()\"\n class=\"overflow-menu-opener\"\n [matTooltip]=\"menuLabel\"\n >\n <span [id]=\"'describedby'\" [style.display]=\"'none'\">{{ describedby }}</span>\n @if (buttonVariant) {\n <ui-button\n [variant]=\"buttonVariant\"\n [justIcon]=\"true\"\n [iconName]=\"iconTrigger\"\n [applicationTheme]=\"applicationTheme\"\n [disabled]=\"false\"\n [size]=\"buttonSize\"\n >\n </ui-button>\n } @else if (contentTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"contentTemplateRef\"></ng-container>\n } @else {\n <ui-icon\n [name]=\"iconTrigger\"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n ></ui-icon>\n }\n </button>\n\n @for (menu of submenus; track menu) {\n <mat-menu\n [xPosition]=\"menuConfig.xPosition\"\n [yPosition]=\"menuConfig.yPosition\"\n #matMenu\n [class]=\"'overflow-menu ' + menuConfig.panelClass\"\n [overlapTrigger]=\"menuConfig.overlapTrigger\"\n backdropClass=\"overflow-menu-backdrop\"\n >\n <ng-container *ngFor=\"let button of menu; index as id\">\n <ng-container\n *ngIf=\"button.btnTemplate; else uiButton\"\n [ngTemplateOutlet]=\"button.btnTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: button }\"\n ></ng-container>\n\n <ng-template #uiButton>\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"getMenu(button.subMenu)\"\n (menuOpened)=\"onSubmenuOpened()\"\n (focus)=\"onButtonFocus(button)\"\n (blur)=\"onButtonBlur(button)\"\n (mouseenter)=\"onButtonHover(button, true)\"\n (mouseleave)=\"onButtonHover(button, false)\"\n [ngClass]=\"{ 'is-destructive': button.isDestructive, disabled: button.disabled }\"\n disableRipple\n (click)=\"onButtonClick(button, $event)\"\n [matTooltip]=\"button.tooltipText ? button.tooltipText : button.isTextEllipsed ? button.label : ''\"\n [attr.aria-labelledby]=\"'labelledby-' + button.label + id\"\n [attr.aria-describedby]=\"'describedby-' + button.label + id\"\n [attr.aria-label]=\"button.ariaLabel || null\"\n role=\"menuitem\"\n matTooltipPosition=\"right\"\n >\n <span [id]=\"'describedby-' + button.label + id\" [style.display]=\"'none'\">\n {{\n button.disabled\n ? ('MENU.MENUITEM_DISABLED' | uiTranslate | async) + ' ' + (button.describedby || '')\n : button.describedby\n }}\n </span>\n @if (button.icon) {\n <ui-icon\n [name]=\"button.icon\"\n [toggleIconStyle]=\"true\"\n [filled]=\"\n button.disabled ? false : button.isHovered ? true : menuItemHasHovered ? false : !!button.isFocused\n \"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [color]=\"button.isDestructive ? 'red' : button.disabled ? 'dark' : 'rebrand-black'\"\n ></ui-icon>\n }\n <span\n [id]=\"'labelledby-' + button.label + id\"\n class=\"label\"\n uiEllipseText\n [refresh]=\"isMenuOpened()\"\n [maxDiffPixels]=\"1\"\n [isMultiline]=\"true\"\n (onChangeTextState)=\"button.isTextEllipsed = $event\"\n >{{ button.label }}</span\n >\n </button>\n </ng-template>\n </ng-container>\n\n <ng-content select=\"[menu-content]\"></ng-content>\n </mat-menu>\n }\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}:host ::ng-deep .overflow-menu .mat-mdc-menu-content:not(:empty){padding:0}:host ::ng-deep .overflow-menu button{padding:0!important;width:fit-content!important}.overflow-menu-opener{background:transparent;border:unset;cursor:pointer}.overflow-menu-opener.content-template{display:flex;justify-content:flex-start;height:100%;width:100%}.overflow-menu-opener.icon-button{height:40px;width:40px;border-radius:50px;display:flex;align-items:center;justify-content:center}.overflow-menu-opener:focus-visible{outline-color:#242424;outline-style:solid;outline-offset:2px!important;animation:focus-ring-animation .4s forwards}@keyframes focus-ring-animation{0%{outline-width:4px!important}to{outline-width:2px!important}}.overflow-menu-opener:hover{background:#e9e9e9}.overflow-menu-backdrop+* .mat-mdc-menu-panel{min-height:0;border-radius:8px;box-shadow:2px 24px 48px 8px #00000014}.overflow-menu-backdrop+* .mat-mdc-menu-content:not(:empty){padding:0}.overflow-menu-backdrop+* .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-top:16px;padding-bottom:16px}.overflow-menu-backdrop+* ui-button:first-child button.mat-mdc-unelevated-button.menuCell{border-radius:8px 8px 0 0}.overflow-menu-backdrop+* ui-button:last-child button.mat-mdc-unelevated-button.menuCell{border-radius:0 0 8px 8px}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell{color:#cb7b7a}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg{color:#cb7b7a}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover{background-color:#f0dad9}.overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused{background-color:#f0dad9}[theme=dark] .overflow-menu-backdrop+* .mat-mdc-menu-panel,[theme=light] .overflow-menu-backdrop+* .mat-mdc-menu-panel{min-height:0;border-radius:10px;box-shadow:0 4px 16px #24242414}[theme=dark] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:hover,[theme=light] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}[theme=dark] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:active,[theme=light] .overflow-menu-backdrop+* ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell{color:#e02800!important}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell mat-icon.black svg{color:#e02800!important}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:active,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}[theme=dark] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused,[theme=light] .overflow-menu-backdrop+* ui-button.destructive button.mat-mdc-unelevated-button.menuCell:focus.cdk-focused.cdk-mouse-focused{background-color:#ffe6fa}button.is-destructive{background-color:#fff;color:#e02800}button.is-destructive:hover{background-color:#e02800}button.is-destructive:hover ::ng-deep mat-icon.black svg{color:#fff}button.is-destructive:disabled,button.is-destructive:disabled:hover{color:#919191;background:transparent}button.is-destructive ::ng-deep mat-icon.black svg{color:#e02800}button.is-destructive .mat-mdc-progress-spinner ::ng-deep circle{stroke:#242424}button.is-destructive.classic-theme{border:unset;border-radius:4px;background-color:#cb7b7a;color:#fff}button.is-destructive.classic-theme:hover{background-color:#8e5655}button.is-destructive.classic-theme:disabled,button.is-destructive.classic-theme:disabled:hover{background-color:#e3c3c6}button.is-destructive.classic-theme ::ng-deep mat-icon.black svg{color:#fff}button.is-destructive.classic-theme .mat-mdc-progress-spinner ::ng-deep circle{stroke:#000}button .label{text-align:left;overflow:hidden;-webkit-line-clamp:2;display:-webkit-box!important;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal;line-height:16px}button.disabled{background:transparent;color:#888;cursor:not-allowed}button.disabled:hover{background:transparent!important}.overflow-menu-opener.no-hover:hover{background:transparent}\n"] }]
203
203
  }], ctorParameters: () => [{ type: undefined, decorators: [{
204
204
  type: Optional
205
205
  }, {
@@ -245,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
245
245
  type: ViewChild,
246
246
  args: ['buttonElement']
247
247
  }] } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvb3ZlcmZsb3ctbWVudS9vdmVyZmxvdy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9vdmVyZmxvdy1tZW51L292ZXJmbG93LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFFTixNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FHbEIsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFHakUsTUFBTSxtQkFBbUIsR0FBZTtJQUN0QyxjQUFjLEVBQUUsS0FBSztJQUNyQixVQUFVLEVBQUUsRUFBRTtJQUNkLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLFNBQVMsRUFBRSxPQUFPO0NBQ25CLENBQUM7QUFTRixNQUFNLE9BQU8scUJBQXFCO0lBc0doQyxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxZQUM2RSxlQUFpQyxFQUNwRyxZQUEwQixFQUMxQixNQUFjO1FBRnFELG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNwRyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFN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a0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQTZHNUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvQ0FBb0M7eUZBcEdqRCxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csV0FBVztzQkFBbkIsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFRRyxTQUFTO3NCQUFqQixLQUFLO2dCQVFHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUcsV0FBVztzQkFBbkIsS0FBSztnQkFRRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBU0csYUFBYTtzQkFBckIsS0FBSztnQkFRRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFFZ0IsUUFBUTtzQkFBOUIsWUFBWTt1QkFBQyxPQUFPO2dCQUNTLFVBQVU7c0JBQXZDLFlBQVk7dUJBQUMsY0FBYztnQkFDQSxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIHNpZ25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25DaGFuZ2VzLFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb25OYW1lIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZGVsJztcbmltcG9ydCB7IE1lbnVDb25maWcsIE92ZXJmbG93TWVudUJ1dHRvbk1vZGlmeSwgT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGUgfSBmcm9tICcuL292ZXJmbG93LW1lbnUubW9kZWwnO1xuaW1wb3J0IHsgQnV0dG9uQ29sb3IsIEJ1dHRvblNpemUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZGVsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWwnO1xuaW1wb3J0IHsgTWF0TWVudSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuY29uc3QgREVGQVVMVF9NRU5VX0NPTkZJRzogTWVudUNvbmZpZyA9IHtcbiAgb3ZlcmxhcFRyaWdnZXI6IGZhbHNlLFxuICBwYW5lbENsYXNzOiAnJyxcbiAgeFBvc2l0aW9uOiAnYWZ0ZXInLFxuICB5UG9zaXRpb246ICdiZWxvdycsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1vdmVyZmxvdy1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL292ZXJmbG93LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vdmVyZmxvdy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd01lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBNZW51IGJ1dHRvbnNcbiAgICpcbiAgICogQHR5cGUge092ZXJmbG93TWVudUJ1dHRvbnNUeXBlW119XG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGJ1dHRvbnM6IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlW107XG5cbiAgLyoqXG4gICAqIE1lbnUgaWNvbiB0cmlnZ2VyXG4gICAqXG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGljb25UcmlnZ2VyOiBJY29uTmFtZSA9ICdNZW51LWVsbGlwc2lzJztcblxuICAvKipcbiAgICogTGFiZWwgbWVudVxuICAgKlxuICAgKiBAbWVtYmVyb2YgT3ZlcmZsb3dNZW51Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBtZW51TGFiZWwgPSAnJztcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnbGlnaHQnO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIEFSSUEgbGFiZWwgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAqIFRoaXMgbGFiZWwgaXMgdXNlZCB0byBwcm92aWRlIGFuIGFjY2Vzc2libGUgbmFtZSBmb3IgdGhlIGlucHV0IGVsZW1lbnQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIEFSSUEgcmVxdWlyZW1lbnQgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAqIFRoaXMgYXR0cmlidXRlIGlzIHVzZWQgdG8gaW5kaWNhdGUgd2hldGhlciBhbiBpbnB1dCBmaWVsZCBpcyByZXF1aXJlZCBmb3IgZm9ybSBzdWJtaXNzaW9uLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE92ZXJmbG93TWVudUNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXJpYVJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgQVJJQSByZXF1aXJlbWVudCBmb3IgYWNjZXNzaWJpbGl0eS5cbiAgICogVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCB0byBpbmRpY2F0ZSB3aGV0aGVyIGFuIGlucHV0IGZvciBkZXNjcmlwdGlvbi5cbiAgICogQHR5cGUge3RleHR9XG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGRlc2NyaWJlZGJ5ID0gJyc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgdGhlIGJ1dHRvbiAob3B0aW9uYWwpXG4gICAqXG4gICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjxhbnk+fVxuICAgKiBAbWVtYmVyb2YgT3ZlcmZsb3dNZW51Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBjb250ZW50VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIEJ1dHRvbiB2YXJpYW50IGZvciB0aGUgb3ZlcmZsb3cgbWVudSB0cmlnZ2VyXG4gICAqIFdoZW4gbnVsbCwgdXNlcyB0aGUgZGVmYXVsdCBpY29uIHJlbmRlcmluZ1xuICAgKlxuICAgKiBAdHlwZSB7QnV0dG9uQ29sb3IgfCBudWxsfVxuICAgKiBAbWVtYmVyb2YgT3ZlcmZsb3dNZW51Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBidXR0b25WYXJpYW50OiBCdXR0b25Db2xvciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBCdXR0b24gc2l6ZSBmb3IgdGhlIG92ZXJmbG93IG1lbnUgdHJpZ2dlclxuICAgKlxuICAgKiBAdHlwZSB7QnV0dG9uU2l6ZX1cbiAgICogQG1lbWJlcm9mIE92ZXJmbG93TWVudUNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYnV0dG9uU2l6ZTogQnV0dG9uU2l6ZSA9ICdtZWRpdW0nO1xuXG4gIEBJbnB1dCgpIG1lbnVDb25maWc6IE1lbnVDb25maWcgPSBERUZBVUxUX01FTlVfQ09ORklHO1xuXG4gIEBJbnB1dCgpIGlzRHluYW1pY01lbnUgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2VsZWN0SXRlbTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KCkgbWVudU9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KCkgbWVudUNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkcmVuKE1hdE1lbnUpIG1hdG1lbnVzOiBRdWVyeUxpc3Q8TWF0TWVudT47XG4gIEBWaWV3Q2hpbGRyZW4oTWF0TWVudVRyaWdnZXIpIG1hdFRyaWdnZXI6IFF1ZXJ5TGlzdDxNYXRNZW51VHJpZ2dlcj47XG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbkVsZW1lbnQnKSBidXR0b25FbGVtZW50OiBhbnk7XG5cbiAgbWVudUl0ZW1zOiBzdHJpbmdbXSA9IFtdO1xuICBzdWJtZW51czogQXJyYXk8T3ZlcmZsb3dNZW51QnV0dG9uTW9kaWZ5W10+ID0gW107XG5cbiAgaXNNZW51UmVuZGVyZWQgPSBzaWduYWwoZmFsc2UpO1xuICBpc01lbnVPcGVuZWQgPSBzaWduYWwoZmFsc2UpO1xuICBpc0ZvY3VzZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGdldCBtZW51SXRlbUhhc0hvdmVyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3VibWVudXMuc29tZShtZW51ID0+IG1lbnUuc29tZShpdGVtID0+IGl0ZW0uaXNIb3ZlcmVkKSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICkge1xuICAgIGlmIChkZWZhdWx0QXBwVGhlbWUpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25UaGVtZSA9IGRlZmF1bHRBcHBUaGVtZTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZVN1Ym1lbnVzKHRoaXMuYnV0dG9ucywgJ3MwJywgMSk7XG4gICAgdGhpcy5yZWluZGV4KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2J1dHRvbnMnXSAmJiB0aGlzLmlzRHluYW1pY01lbnUpIHtcbiAgICAgIHRoaXMucmVzZXRTdWJtZW51cygpO1xuICAgICAgdGhpcy5jcmVhdGVTdWJtZW51cyh0aGlzLmJ1dHRvbnMsICdzMCcsIDEpO1xuICAgICAgdGhpcy5yZWluZGV4KCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaXNNZW51UmVuZGVyZWQuc2V0KHRydWUpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuYnV0dG9uRWxlbWVudCkuc3Vic2NyaWJlKG9yaWdpbiA9PlxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChvcmlnaW4gPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkLnNldCh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzTWVudU9wZW5lZCgpKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkLnNldChmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9LCAzMDApO1xuICB9XG5cbiAgb25TZWxlY3RJdGVtKGV2ZW50OiBFdmVudCwgdmFsdWU6IHN0cmluZykge1xuICAgIGlmICghIXZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW0uZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25NZW51T3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMubWVudU9wZW5lZC5lbWl0KCk7XG4gICAgdGhpcy5pc01lbnVPcGVuZWQuc2V0KHRydWUpO1xuXG4gICAgaWYgKHRoaXMuaXNGb2N1c2VkKCkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm1hdG1lbnVzLmZpcnN0Ll9hbGxJdGVtcy5maXJzdC5mb2N1cygna2V5Ym9hcmQnKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgb25NZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaXNNZW51T3BlbmVkLnNldChmYWxzZSk7XG4gICAgdGhpcy5tZW51Q2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uQnV0dG9uRm9jdXMoYnV0dG9uOiBPdmVyZmxvd01lbnVCdXR0b25Nb2RpZnkpIHtcbiAgICBpZiAodGhpcy5pc0ZvY3VzZWQoKSkge1xuICAgICAgYnV0dG9uLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25CdXR0b25CbHVyKGJ1dHRvbjogT3ZlcmZsb3dNZW51QnV0dG9uTW9kaWZ5KSB7XG4gICAgYnV0dG9uLmlzRm9jdXNlZCA9IGZhbHNlO1xuICB9XG5cbiAgb25CdXR0b25DbGljayhidXR0b246IE92ZXJmbG93TWVudUJ1dHRvbk1vZGlmeSwgJGV2ZW50OiBFdmVudCkge1xuICAgIGlmIChidXR0b24uZGlzYWJsZWQpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uU2VsZWN0SXRlbSgkZXZlbnQsIGJ1dHRvbi52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25TdWJtZW51T3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMuaXNNZW51T3BlbmVkLnNldCghdGhpcy5pc01lbnVPcGVuZWQpO1xuICAgIGlmICh0aGlzLmlzRm9jdXNlZCgpKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5tYXRtZW51cy5sYXN0Ll9hbGxJdGVtcy5maXJzdC5mb2N1cygna2V5Ym9hcmQnKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgb25CdXR0b25Ib3ZlcihidXR0b246IE92ZXJmbG93TWVudUJ1dHRvbk1vZGlmeSwgc3RhdGU6IGJvb2xlYW4pIHtcbiAgICBidXR0b24uaXNIb3ZlcmVkID0gc3RhdGU7XG4gIH1cblxuICBnZXRNZW51KGluZGV4OiBhbnkpIHtcbiAgICByZXR1cm4gaW5kZXggPj0gMCAmJiB0aGlzLm1hdG1lbnVzID8gKHRoaXMubWF0bWVudXMuZmluZCgoeCwgaSkgPT4gaSA9PT0gaW5kZXgpID8/IG51bGwpIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVpbmRleCgpIHtcbiAgICB0aGlzLnN1Ym1lbnVzLmZvckVhY2goKG1lbnU6IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlW10pID0+IHtcbiAgICAgIG1lbnUuZm9yRWFjaCgoaXRlbTogT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGUpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uc3ViTWVudSAhPT0gLTEpIHtcbiAgICAgICAgICBpdGVtLnN1Yk1lbnUgPSB0aGlzLm1lbnVJdGVtcy5pbmRleE9mKGAke2l0ZW0uYWN0aW9ufWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTdWJtZW51cygpIHtcbiAgICB0aGlzLnN1Ym1lbnVzID0gW107XG4gICAgdGhpcy5tZW51SXRlbXMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3VibWVudXMobWVudTogT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGVbXSwgcHJlZml4OiBzdHJpbmcsIGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVJdGVtcy5wdXNoKHByZWZpeCk7XG4gICAgdGhpcy5zdWJtZW51cy5wdXNoKFxuICAgICAgbWVudS5tYXAoKGl0ZW06IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlLCBpbmRleDogbnVtYmVyKSA9PiAoe1xuICAgICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgICAgaWNvbjogaXRlbS5pY29uLFxuICAgICAgICBpc0Rlc3RydWN0aXZlOiBpdGVtLmlzRGVzdHJ1Y3RpdmUsXG4gICAgICAgIHRvb2x0aXBUZXh0OiBpdGVtLnRvb2x0aXBUZXh0LFxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQsXG4gICAgICAgIGJ0blRlbXBsYXRlOiBpdGVtLmJ0blRlbXBsYXRlLFxuICAgICAgICBzdWJNZW51OiBpdGVtLnN1Yk1lbnUgPyAwIDogLTEsXG4gICAgICAgIGFjdGlvbjogaXRlbS5hY3Rpb24gPyBpdGVtLmFjdGlvbiA6IHByZWZpeCArIGluZGV4LFxuICAgICAgfSkpXG4gICAgKTtcblxuICAgIG1lbnUuZm9yRWFjaCgoaXRlbTogT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChpdGVtLnN1Yk1lbnUpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVTdWJtZW51cygoaXRlbSBhcyB7IHN1Yk1lbnU6IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlW10gfSkuc3ViTWVudSwgcHJlZml4ICsgaW5kZXgsIGNvdW50ICsgMSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1tZW51LWNvbnRhaW5lclwiIFthdHRyLnRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj5cbiAgPGJ1dHRvblxuICAgICNidXR0b25FbGVtZW50XG4gICAgbWF0LWJ1dHRvblxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdpY29uLWJ1dHRvbic6ICFjb250ZW50VGVtcGxhdGVSZWYgJiYgIWJ1dHRvblZhcmlhbnQsXG4gICAgICAnY29udGVudC10ZW1wbGF0ZSc6IGNvbnRlbnRUZW1wbGF0ZVJlZixcbiAgICAgICduby1ob3Zlcic6IGJ1dHRvblZhcmlhbnQsXG4gICAgfVwiXG4gICAgKm5nSWY9XCJpc01lbnVSZW5kZXJlZCgpXCJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWF0bWVudXMuZmlyc3RcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cImFyaWFSZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInZGVzY3JpYmVkYnknXCJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNNZW51T3BlbmVkKClcIlxuICAgIGRpc2FibGVSaXBwbGVcbiAgICAobWVudU9wZW5lZCk9XCJvbk1lbnVPcGVuZWQoKVwiXG4gICAgKG1lbnVDbG9zZWQpPVwib25NZW51Q2xvc2VkKClcIlxuICAgIGNsYXNzPVwib3ZlcmZsb3ctbWVudS1vcGVuZXJcIlxuICAgIFttYXRUb29sdGlwXT1cIm1lbnVMYWJlbFwiXG4gID5cbiAgICA8c3BhbiBbaWRdPVwiJ2Rlc2NyaWJlZGJ5J1wiIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiPnt7IGRlc2NyaWJlZGJ5IH19PC9zcGFuPlxuICAgIEBpZiAoYnV0dG9uVmFyaWFudCkge1xuICAgICAgPHVpLWJ1dHRvblxuICAgICAgICBbdmFyaWFudF09XCJidXR0b25WYXJpYW50XCJcbiAgICAgICAgW2p1c3RJY29uXT1cInRydWVcIlxuICAgICAgICBbaWNvbk5hbWVdPVwiaWNvblRyaWdnZXJcIlxuICAgICAgICBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgW3NpemVdPVwiYnV0dG9uU2l6ZVwiXG4gICAgICA+XG4gICAgICA8L3VpLWJ1dHRvbj5cbiAgICB9IEBlbHNlIGlmIChjb250ZW50VGVtcGxhdGVSZWYpIHtcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8dWktaWNvblxuICAgICAgICBbbmFtZV09XCJpY29uVHJpZ2dlclwiXG4gICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgICBbc2l6ZV09XCInMjQnXCJcbiAgICAgICAgW2NvbG9yXT1cIidyZWJyYW5kLWJsYWNrJ1wiXG4gICAgICA+PC91aS1pY29uPlxuICAgIH1cbiAgPC9idXR0b24+XG5cbiAgQGZvciAobWVudSBvZiBzdWJtZW51czsgdHJhY2sgbWVudSkge1xuICAgIDxtYXQtbWVudVxuICAgICAgW3hQb3NpdGlvbl09XCJtZW51Q29uZmlnLnhQb3NpdGlvblwiXG4gICAgICBbeVBvc2l0aW9uXT1cIm1lbnVDb25maWcueVBvc2l0aW9uXCJcbiAgICAgICNtYXRNZW51XG4gICAgICBbY2xhc3NdPVwiJ292ZXJmbG93LW1lbnUgJyArIG1lbnVDb25maWcucGFuZWxDbGFzc1wiXG4gICAgICBbb3ZlcmxhcFRyaWdnZXJdPVwibWVudUNvbmZpZy5vdmVybGFwVHJpZ2dlclwiXG4gICAgICBiYWNrZHJvcENsYXNzPVwib3ZlcmZsb3ctbWVudS1iYWNrZHJvcFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIG1lbnU7IGluZGV4IGFzIGlkXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cImJ1dHRvbi5idG5UZW1wbGF0ZTsgZWxzZSB1aUJ1dHRvblwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uLmJ0blRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGJ1dHRvbiB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdWlCdXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImdldE1lbnUoYnV0dG9uLnN1Yk1lbnUpXCJcbiAgICAgICAgICAgIChtZW51T3BlbmVkKT1cIm9uU3VibWVudU9wZW5lZCgpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkJ1dHRvbkZvY3VzKGJ1dHRvbilcIlxuICAgICAgICAgICAgKGJsdXIpPVwib25CdXR0b25CbHVyKGJ1dHRvbilcIlxuICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25CdXR0b25Ib3ZlcihidXR0b24sIHRydWUpXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uQnV0dG9uSG92ZXIoYnV0dG9uLCBmYWxzZSlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtZGVzdHJ1Y3RpdmUnOiBidXR0b24uaXNEZXN0cnVjdGl2ZSwgZGlzYWJsZWQ6IGJ1dHRvbi5kaXNhYmxlZCB9XCJcbiAgICAgICAgICAgIGRpc2FibGVSaXBwbGVcbiAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKGJ1dHRvbiwgJGV2ZW50KVwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJidXR0b24udG9vbHRpcFRleHQgPyBidXR0b24udG9vbHRpcFRleHQgOiAoYnV0dG9uLmlzVGV4dEVsbGlwc2VkID8gYnV0dG9uLmxhYmVsIDogJycpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInbGFiZWxsZWRieS0nICsgYnV0dG9uLmxhYmVsICsgaWRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInZGVzY3JpYmVkYnktJyArIGJ1dHRvbi5sYWJlbCArIGlkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uLmFyaWFMYWJlbCB8fCBudWxsXCJcbiAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gW2lkXT1cIidkZXNjcmliZWRieS0nICsgYnV0dG9uLmxhYmVsICsgaWRcIiBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgID8gKCdNRU5VLk1FTlVJVEVNX0RJU0FCTEVEJyB8IHVpVHJhbnNsYXRlIHwgYXN5bmMpICsgJyAnICsgKGJ1dHRvbi5kZXNjcmliZWRieSB8fCAnJylcbiAgICAgICAgICAgICAgICAgIDogYnV0dG9uLmRlc2NyaWJlZGJ5XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDx1aS1pY29uXG4gICAgICAgICAgICAgIFtuYW1lXT1cImJ1dHRvbi5pY29uXCJcbiAgICAgICAgICAgICAgW3RvZ2dsZUljb25TdHlsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2ZpbGxlZF09XCJcbiAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPyBmYWxzZSA6IGJ1dHRvbi5pc0hvdmVyZWQgPyB0cnVlIDogbWVudUl0ZW1IYXNIb3ZlcmVkID8gZmFsc2UgOiAhIWJ1dHRvbi5pc0ZvY3VzZWRcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgICAgICAgIFtzaXplXT1cIicyNCdcIlxuICAgICAgICAgICAgICBbY29sb3JdPVwiYnV0dG9uLmlzRGVzdHJ1Y3RpdmUgPyAncmVkJyA6IGJ1dHRvbi5kaXNhYmxlZCA/ICdkYXJrJyA6ICdyZWJyYW5kLWJsYWNrJ1wiXG4gICAgICAgICAgICA+PC91aS1pY29uPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgW2lkXT1cIidsYWJlbGxlZGJ5LScgKyBidXR0b24ubGFiZWwgKyBpZFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibGFiZWxcIlxuICAgICAgICAgICAgICB1aUVsbGlwc2VUZXh0XG4gICAgICAgICAgICAgIFtyZWZyZXNoXT1cImlzTWVudU9wZW5lZCgpXCJcbiAgICAgICAgICAgICAgW21heERpZmZQaXhlbHNdPVwiMVwiXG4gICAgICAgICAgICAgIFtpc011bHRpbGluZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlVGV4dFN0YXRlKT1cImJ1dHRvbi5pc1RleHRFbGxpcHNlZCA9ICRldmVudFwiXG4gICAgICAgICAgICAgID57eyBidXR0b24ubGFiZWwgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWVudS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L21hdC1tZW51PlxuICB9XG48L2Rpdj5cbiJdfQ==
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvb3ZlcmZsb3ctbWVudS9vdmVyZmxvdy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9vdmVyZmxvdy1tZW51L292ZXJmbG93LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFFTixNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FHbEIsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFHakUsTUFBTSxtQkFBbUIsR0FBZTtJQUN0QyxjQUFjLEVBQUUsS0FBSztJQUNyQixVQUFVLEVBQUUsRUFBRTtJQUNkLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLFNBQVMsRUFBRSxPQUFPO0NBQ25CLENBQUM7QUFTRixNQUFNLE9BQU8scUJBQXFCO0lBc0doQyxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxZQUM2RSxlQUFpQyxFQUNwRyxZQUEwQixFQUMxQixNQUFjO1FBRnFELG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNwRyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFN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a0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQTZHNUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvQ0FBb0M7eUZBcEdqRCxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csV0FBVztzQkFBbkIsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFRRyxTQUFTO3NCQUFqQixLQUFLO2dCQVFHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUcsV0FBVztzQkFBbkIsS0FBSztnQkFRRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBU0csYUFBYTtzQkFBckIsS0FBSztnQkFRRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFFZ0IsUUFBUTtzQkFBOUIsWUFBWTt1QkFBQyxPQUFPO2dCQUNTLFVBQVU7c0JBQXZDLFlBQVk7dUJBQUMsY0FBYztnQkFDQSxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIHNpZ25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25DaGFuZ2VzLFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb25OYW1lIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZGVsJztcbmltcG9ydCB7IE1lbnVDb25maWcsIE92ZXJmbG93TWVudUJ1dHRvbk1vZGlmeSwgT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGUgfSBmcm9tICcuL292ZXJmbG93LW1lbnUubW9kZWwnO1xuaW1wb3J0IHsgQnV0dG9uQ29sb3IsIEJ1dHRvblNpemUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZGVsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWwnO1xuaW1wb3J0IHsgTWF0TWVudSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuY29uc3QgREVGQVVMVF9NRU5VX0NPTkZJRzogTWVudUNvbmZpZyA9IHtcbiAgb3ZlcmxhcFRyaWdnZXI6IGZhbHNlLFxuICBwYW5lbENsYXNzOiAnJyxcbiAgeFBvc2l0aW9uOiAnYWZ0ZXInLFxuICB5UG9zaXRpb246ICdiZWxvdycsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1vdmVyZmxvdy1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL292ZXJmbG93LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vdmVyZmxvdy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd01lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBNZW51IGJ1dHRvbnNcbiAgICpcbiAgICogQHR5cGUge092ZXJmbG93TWVudUJ1dHRvbnNUeXBlW119XG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGJ1dHRvbnM6IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlW107XG5cbiAgLyoqXG4gICAqIE1lbnUgaWNvbiB0cmlnZ2VyXG4gICAqXG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGljb25UcmlnZ2VyOiBJY29uTmFtZSA9ICdNZW51LWVsbGlwc2lzJztcblxuICAvKipcbiAgICogTGFiZWwgbWVudVxuICAgKlxuICAgKiBAbWVtYmVyb2YgT3ZlcmZsb3dNZW51Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBtZW51TGFiZWwgPSAnJztcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnbGlnaHQnO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIEFSSUEgbGFiZWwgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAqIFRoaXMgbGFiZWwgaXMgdXNlZCB0byBwcm92aWRlIGFuIGFjY2Vzc2libGUgbmFtZSBmb3IgdGhlIGlucHV0IGVsZW1lbnQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIEFSSUEgcmVxdWlyZW1lbnQgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAqIFRoaXMgYXR0cmlidXRlIGlzIHVzZWQgdG8gaW5kaWNhdGUgd2hldGhlciBhbiBpbnB1dCBmaWVsZCBpcyByZXF1aXJlZCBmb3IgZm9ybSBzdWJtaXNzaW9uLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE92ZXJmbG93TWVudUNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXJpYVJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgQVJJQSByZXF1aXJlbWVudCBmb3IgYWNjZXNzaWJpbGl0eS5cbiAgICogVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCB0byBpbmRpY2F0ZSB3aGV0aGVyIGFuIGlucHV0IGZvciBkZXNjcmlwdGlvbi5cbiAgICogQHR5cGUge3RleHR9XG4gICAqIEBtZW1iZXJvZiBPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGRlc2NyaWJlZGJ5ID0gJyc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgdGhlIGJ1dHRvbiAob3B0aW9uYWwpXG4gICAqXG4gICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjxhbnk+fVxuICAgKiBAbWVtYmVyb2YgT3ZlcmZsb3dNZW51Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBjb250ZW50VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIEJ1dHRvbiB2YXJpYW50IGZvciB0aGUgb3ZlcmZsb3cgbWVudSB0cmlnZ2VyXG4gICAqIFdoZW4gbnVsbCwgdXNlcyB0aGUgZGVmYXVsdCBpY29uIHJlbmRlcmluZ1xuICAgKlxuICAgKiBAdHlwZSB7QnV0dG9uQ29sb3IgfCBudWxsfVxuICAgKiBAbWVtYmVyb2YgT3ZlcmZsb3dNZW51Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBidXR0b25WYXJpYW50OiBCdXR0b25Db2xvciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBCdXR0b24gc2l6ZSBmb3IgdGhlIG92ZXJmbG93IG1lbnUgdHJpZ2dlclxuICAgKlxuICAgKiBAdHlwZSB7QnV0dG9uU2l6ZX1cbiAgICogQG1lbWJlcm9mIE92ZXJmbG93TWVudUNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYnV0dG9uU2l6ZTogQnV0dG9uU2l6ZSA9ICdtZWRpdW0nO1xuXG4gIEBJbnB1dCgpIG1lbnVDb25maWc6IE1lbnVDb25maWcgPSBERUZBVUxUX01FTlVfQ09ORklHO1xuXG4gIEBJbnB1dCgpIGlzRHluYW1pY01lbnUgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2VsZWN0SXRlbTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KCkgbWVudU9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KCkgbWVudUNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkcmVuKE1hdE1lbnUpIG1hdG1lbnVzOiBRdWVyeUxpc3Q8TWF0TWVudT47XG4gIEBWaWV3Q2hpbGRyZW4oTWF0TWVudVRyaWdnZXIpIG1hdFRyaWdnZXI6IFF1ZXJ5TGlzdDxNYXRNZW51VHJpZ2dlcj47XG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbkVsZW1lbnQnKSBidXR0b25FbGVtZW50OiBhbnk7XG5cbiAgbWVudUl0ZW1zOiBzdHJpbmdbXSA9IFtdO1xuICBzdWJtZW51czogQXJyYXk8T3ZlcmZsb3dNZW51QnV0dG9uTW9kaWZ5W10+ID0gW107XG5cbiAgaXNNZW51UmVuZGVyZWQgPSBzaWduYWwoZmFsc2UpO1xuICBpc01lbnVPcGVuZWQgPSBzaWduYWwoZmFsc2UpO1xuICBpc0ZvY3VzZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGdldCBtZW51SXRlbUhhc0hvdmVyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3VibWVudXMuc29tZShtZW51ID0+IG1lbnUuc29tZShpdGVtID0+IGl0ZW0uaXNIb3ZlcmVkKSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICkge1xuICAgIGlmIChkZWZhdWx0QXBwVGhlbWUpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25UaGVtZSA9IGRlZmF1bHRBcHBUaGVtZTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZVN1Ym1lbnVzKHRoaXMuYnV0dG9ucywgJ3MwJywgMSk7XG4gICAgdGhpcy5yZWluZGV4KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2J1dHRvbnMnXSAmJiB0aGlzLmlzRHluYW1pY01lbnUpIHtcbiAgICAgIHRoaXMucmVzZXRTdWJtZW51cygpO1xuICAgICAgdGhpcy5jcmVhdGVTdWJtZW51cyh0aGlzLmJ1dHRvbnMsICdzMCcsIDEpO1xuICAgICAgdGhpcy5yZWluZGV4KCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaXNNZW51UmVuZGVyZWQuc2V0KHRydWUpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuYnV0dG9uRWxlbWVudCkuc3Vic2NyaWJlKG9yaWdpbiA9PlxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChvcmlnaW4gPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkLnNldCh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzTWVudU9wZW5lZCgpKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkLnNldChmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9LCAzMDApO1xuICB9XG5cbiAgb25TZWxlY3RJdGVtKGV2ZW50OiBFdmVudCwgdmFsdWU6IHN0cmluZykge1xuICAgIGlmICghIXZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW0uZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25NZW51T3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMubWVudU9wZW5lZC5lbWl0KCk7XG4gICAgdGhpcy5pc01lbnVPcGVuZWQuc2V0KHRydWUpO1xuXG4gICAgaWYgKHRoaXMuaXNGb2N1c2VkKCkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm1hdG1lbnVzLmZpcnN0Ll9hbGxJdGVtcy5maXJzdC5mb2N1cygna2V5Ym9hcmQnKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgb25NZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaXNNZW51T3BlbmVkLnNldChmYWxzZSk7XG4gICAgdGhpcy5tZW51Q2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uQnV0dG9uRm9jdXMoYnV0dG9uOiBPdmVyZmxvd01lbnVCdXR0b25Nb2RpZnkpIHtcbiAgICBpZiAodGhpcy5pc0ZvY3VzZWQoKSkge1xuICAgICAgYnV0dG9uLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25CdXR0b25CbHVyKGJ1dHRvbjogT3ZlcmZsb3dNZW51QnV0dG9uTW9kaWZ5KSB7XG4gICAgYnV0dG9uLmlzRm9jdXNlZCA9IGZhbHNlO1xuICB9XG5cbiAgb25CdXR0b25DbGljayhidXR0b246IE92ZXJmbG93TWVudUJ1dHRvbk1vZGlmeSwgJGV2ZW50OiBFdmVudCkge1xuICAgIGlmIChidXR0b24uZGlzYWJsZWQpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uU2VsZWN0SXRlbSgkZXZlbnQsIGJ1dHRvbi52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25TdWJtZW51T3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMuaXNNZW51T3BlbmVkLnNldCghdGhpcy5pc01lbnVPcGVuZWQpO1xuICAgIGlmICh0aGlzLmlzRm9jdXNlZCgpKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5tYXRtZW51cy5sYXN0Ll9hbGxJdGVtcy5maXJzdC5mb2N1cygna2V5Ym9hcmQnKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgb25CdXR0b25Ib3ZlcihidXR0b246IE92ZXJmbG93TWVudUJ1dHRvbk1vZGlmeSwgc3RhdGU6IGJvb2xlYW4pIHtcbiAgICBidXR0b24uaXNIb3ZlcmVkID0gc3RhdGU7XG4gIH1cblxuICBnZXRNZW51KGluZGV4OiBhbnkpIHtcbiAgICByZXR1cm4gaW5kZXggPj0gMCAmJiB0aGlzLm1hdG1lbnVzID8gKHRoaXMubWF0bWVudXMuZmluZCgoeCwgaSkgPT4gaSA9PT0gaW5kZXgpID8/IG51bGwpIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVpbmRleCgpIHtcbiAgICB0aGlzLnN1Ym1lbnVzLmZvckVhY2goKG1lbnU6IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlW10pID0+IHtcbiAgICAgIG1lbnUuZm9yRWFjaCgoaXRlbTogT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGUpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uc3ViTWVudSAhPT0gLTEpIHtcbiAgICAgICAgICBpdGVtLnN1Yk1lbnUgPSB0aGlzLm1lbnVJdGVtcy5pbmRleE9mKGAke2l0ZW0uYWN0aW9ufWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTdWJtZW51cygpIHtcbiAgICB0aGlzLnN1Ym1lbnVzID0gW107XG4gICAgdGhpcy5tZW51SXRlbXMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3VibWVudXMobWVudTogT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGVbXSwgcHJlZml4OiBzdHJpbmcsIGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVJdGVtcy5wdXNoKHByZWZpeCk7XG4gICAgdGhpcy5zdWJtZW51cy5wdXNoKFxuICAgICAgbWVudS5tYXAoKGl0ZW06IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlLCBpbmRleDogbnVtYmVyKSA9PiAoe1xuICAgICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgICAgaWNvbjogaXRlbS5pY29uLFxuICAgICAgICBpc0Rlc3RydWN0aXZlOiBpdGVtLmlzRGVzdHJ1Y3RpdmUsXG4gICAgICAgIHRvb2x0aXBUZXh0OiBpdGVtLnRvb2x0aXBUZXh0LFxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQsXG4gICAgICAgIGJ0blRlbXBsYXRlOiBpdGVtLmJ0blRlbXBsYXRlLFxuICAgICAgICBzdWJNZW51OiBpdGVtLnN1Yk1lbnUgPyAwIDogLTEsXG4gICAgICAgIGFjdGlvbjogaXRlbS5hY3Rpb24gPyBpdGVtLmFjdGlvbiA6IHByZWZpeCArIGluZGV4LFxuICAgICAgfSkpXG4gICAgKTtcblxuICAgIG1lbnUuZm9yRWFjaCgoaXRlbTogT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChpdGVtLnN1Yk1lbnUpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVTdWJtZW51cygoaXRlbSBhcyB7IHN1Yk1lbnU6IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlW10gfSkuc3ViTWVudSwgcHJlZml4ICsgaW5kZXgsIGNvdW50ICsgMSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1tZW51LWNvbnRhaW5lclwiIFthdHRyLnRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj5cbiAgPGJ1dHRvblxuICAgICNidXR0b25FbGVtZW50XG4gICAgbWF0LWJ1dHRvblxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdpY29uLWJ1dHRvbic6ICFjb250ZW50VGVtcGxhdGVSZWYgJiYgIWJ1dHRvblZhcmlhbnQsXG4gICAgICAnY29udGVudC10ZW1wbGF0ZSc6IGNvbnRlbnRUZW1wbGF0ZVJlZixcbiAgICAgICduby1ob3Zlcic6IGJ1dHRvblZhcmlhbnQsXG4gICAgfVwiXG4gICAgKm5nSWY9XCJpc01lbnVSZW5kZXJlZCgpXCJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWF0bWVudXMuZmlyc3RcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cImFyaWFSZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInZGVzY3JpYmVkYnknXCJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNNZW51T3BlbmVkKClcIlxuICAgIGRpc2FibGVSaXBwbGVcbiAgICAobWVudU9wZW5lZCk9XCJvbk1lbnVPcGVuZWQoKVwiXG4gICAgKG1lbnVDbG9zZWQpPVwib25NZW51Q2xvc2VkKClcIlxuICAgIGNsYXNzPVwib3ZlcmZsb3ctbWVudS1vcGVuZXJcIlxuICAgIFttYXRUb29sdGlwXT1cIm1lbnVMYWJlbFwiXG4gID5cbiAgICA8c3BhbiBbaWRdPVwiJ2Rlc2NyaWJlZGJ5J1wiIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiPnt7IGRlc2NyaWJlZGJ5IH19PC9zcGFuPlxuICAgIEBpZiAoYnV0dG9uVmFyaWFudCkge1xuICAgICAgPHVpLWJ1dHRvblxuICAgICAgICBbdmFyaWFudF09XCJidXR0b25WYXJpYW50XCJcbiAgICAgICAgW2p1c3RJY29uXT1cInRydWVcIlxuICAgICAgICBbaWNvbk5hbWVdPVwiaWNvblRyaWdnZXJcIlxuICAgICAgICBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgW3NpemVdPVwiYnV0dG9uU2l6ZVwiXG4gICAgICA+XG4gICAgICA8L3VpLWJ1dHRvbj5cbiAgICB9IEBlbHNlIGlmIChjb250ZW50VGVtcGxhdGVSZWYpIHtcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8dWktaWNvblxuICAgICAgICBbbmFtZV09XCJpY29uVHJpZ2dlclwiXG4gICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgICBbc2l6ZV09XCInMjQnXCJcbiAgICAgICAgW2NvbG9yXT1cIidyZWJyYW5kLWJsYWNrJ1wiXG4gICAgICA+PC91aS1pY29uPlxuICAgIH1cbiAgPC9idXR0b24+XG5cbiAgQGZvciAobWVudSBvZiBzdWJtZW51czsgdHJhY2sgbWVudSkge1xuICAgIDxtYXQtbWVudVxuICAgICAgW3hQb3NpdGlvbl09XCJtZW51Q29uZmlnLnhQb3NpdGlvblwiXG4gICAgICBbeVBvc2l0aW9uXT1cIm1lbnVDb25maWcueVBvc2l0aW9uXCJcbiAgICAgICNtYXRNZW51XG4gICAgICBbY2xhc3NdPVwiJ292ZXJmbG93LW1lbnUgJyArIG1lbnVDb25maWcucGFuZWxDbGFzc1wiXG4gICAgICBbb3ZlcmxhcFRyaWdnZXJdPVwibWVudUNvbmZpZy5vdmVybGFwVHJpZ2dlclwiXG4gICAgICBiYWNrZHJvcENsYXNzPVwib3ZlcmZsb3ctbWVudS1iYWNrZHJvcFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIG1lbnU7IGluZGV4IGFzIGlkXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cImJ1dHRvbi5idG5UZW1wbGF0ZTsgZWxzZSB1aUJ1dHRvblwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uLmJ0blRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGJ1dHRvbiB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdWlCdXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImdldE1lbnUoYnV0dG9uLnN1Yk1lbnUpXCJcbiAgICAgICAgICAgIChtZW51T3BlbmVkKT1cIm9uU3VibWVudU9wZW5lZCgpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkJ1dHRvbkZvY3VzKGJ1dHRvbilcIlxuICAgICAgICAgICAgKGJsdXIpPVwib25CdXR0b25CbHVyKGJ1dHRvbilcIlxuICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25CdXR0b25Ib3ZlcihidXR0b24sIHRydWUpXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uQnV0dG9uSG92ZXIoYnV0dG9uLCBmYWxzZSlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtZGVzdHJ1Y3RpdmUnOiBidXR0b24uaXNEZXN0cnVjdGl2ZSwgZGlzYWJsZWQ6IGJ1dHRvbi5kaXNhYmxlZCB9XCJcbiAgICAgICAgICAgIGRpc2FibGVSaXBwbGVcbiAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKGJ1dHRvbiwgJGV2ZW50KVwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJidXR0b24udG9vbHRpcFRleHQgPyBidXR0b24udG9vbHRpcFRleHQgOiBidXR0b24uaXNUZXh0RWxsaXBzZWQgPyBidXR0b24ubGFiZWwgOiAnJ1wiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2xhYmVsbGVkYnktJyArIGJ1dHRvbi5sYWJlbCArIGlkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2Rlc2NyaWJlZGJ5LScgKyBidXR0b24ubGFiZWwgKyBpZFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbi5hcmlhTGFiZWwgfHwgbnVsbFwiXG4gICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIFtpZF09XCInZGVzY3JpYmVkYnktJyArIGJ1dHRvbi5sYWJlbCArIGlkXCIgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkXG4gICAgICAgICAgICAgICAgICA/ICgnTUVOVS5NRU5VSVRFTV9ESVNBQkxFRCcgfCB1aVRyYW5zbGF0ZSB8IGFzeW5jKSArICcgJyArIChidXR0b24uZGVzY3JpYmVkYnkgfHwgJycpXG4gICAgICAgICAgICAgICAgICA6IGJ1dHRvbi5kZXNjcmliZWRieVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgQGlmIChidXR0b24uaWNvbikge1xuICAgICAgICAgICAgICA8dWktaWNvblxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImJ1dHRvbi5pY29uXCJcbiAgICAgICAgICAgICAgICBbdG9nZ2xlSWNvblN0eWxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtmaWxsZWRdPVwiXG4gICAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPyBmYWxzZSA6IGJ1dHRvbi5pc0hvdmVyZWQgPyB0cnVlIDogbWVudUl0ZW1IYXNIb3ZlcmVkID8gZmFsc2UgOiAhIWJ1dHRvbi5pc0ZvY3VzZWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cIicyNCdcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJidXR0b24uaXNEZXN0cnVjdGl2ZSA/ICdyZWQnIDogYnV0dG9uLmRpc2FibGVkID8gJ2RhcmsnIDogJ3JlYnJhbmQtYmxhY2snXCJcbiAgICAgICAgICAgICAgPjwvdWktaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIFtpZF09XCInbGFiZWxsZWRieS0nICsgYnV0dG9uLmxhYmVsICsgaWRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICAgICAgdWlFbGxpcHNlVGV4dFxuICAgICAgICAgICAgICBbcmVmcmVzaF09XCJpc01lbnVPcGVuZWQoKVwiXG4gICAgICAgICAgICAgIFttYXhEaWZmUGl4ZWxzXT1cIjFcIlxuICAgICAgICAgICAgICBbaXNNdWx0aWxpbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIChvbkNoYW5nZVRleHRTdGF0ZSk9XCJidXR0b24uaXNUZXh0RWxsaXBzZWQgPSAkZXZlbnRcIlxuICAgICAgICAgICAgICA+e3sgYnV0dG9uLmxhYmVsIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21lbnUtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9tYXQtbWVudT5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbWVudS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9vdmVyZmxvdy1tZW51L292ZXJmbG93LW1lbnUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25OYW1lIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZGVsJztcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZW51UG9zaXRpb25YLCBNZW51UG9zaXRpb25ZIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbmV4cG9ydCB0eXBlIE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlID0ge1xuICBpY29uOiBJY29uTmFtZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgaXNEZXN0cnVjdGl2ZT86IGJvb2xlYW47XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgYnRuVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBzdWJNZW51PzogT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGVbXSB8IG51bWJlcjtcbiAgYWN0aW9uPzogbnVtYmVyIHwgc3RyaW5nO1xuICBkZXNjcmliZWRieT86IHN0cmluZztcbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICB0b29sdGlwVGV4dD86IHN0cmluZztcbn07XG5cbnR5cGUgQnV0dG9uT3B0aW9ucyA9IHtcbiAgaXNUZXh0RWxsaXBzZWQ/OiBib29sZWFuO1xuICBpc0ZvY3VzZWQ/OiBib29sZWFuO1xuICBpc0hvdmVyZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBNZW51Q29uZmlnID0ge1xuICB4UG9zaXRpb246IE1lbnVQb3NpdGlvblg7XG4gIHlQb3NpdGlvbjogTWVudVBvc2l0aW9uWTtcbiAgb3ZlcmxhcFRyaWdnZXI6IGJvb2xlYW47XG4gIHBhbmVsQ2xhc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgT3ZlcmZsb3dNZW51QnV0dG9uTW9kaWZ5ID0gT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGUgJiBCdXR0b25PcHRpb25zO1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbWVudS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9vdmVyZmxvdy1tZW51L292ZXJmbG93LW1lbnUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25OYW1lIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZGVsJztcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZW51UG9zaXRpb25YLCBNZW51UG9zaXRpb25ZIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbmV4cG9ydCB0eXBlIE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlID0ge1xuICBpY29uPzogSWNvbk5hbWU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGlzRGVzdHJ1Y3RpdmU/OiBib29sZWFuO1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGJ0blRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgc3ViTWVudT86IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlW10gfCBudW1iZXI7XG4gIGFjdGlvbj86IG51bWJlciB8IHN0cmluZztcbiAgZGVzY3JpYmVkYnk/OiBzdHJpbmc7XG4gIGFyaWFMYWJlbD86IHN0cmluZztcbiAgdG9vbHRpcFRleHQ/OiBzdHJpbmc7XG59O1xuXG50eXBlIEJ1dHRvbk9wdGlvbnMgPSB7XG4gIGlzVGV4dEVsbGlwc2VkPzogYm9vbGVhbjtcbiAgaXNGb2N1c2VkPzogYm9vbGVhbjtcbiAgaXNIb3ZlcmVkPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIE1lbnVDb25maWcgPSB7XG4gIHhQb3NpdGlvbjogTWVudVBvc2l0aW9uWDtcbiAgeVBvc2l0aW9uOiBNZW51UG9zaXRpb25ZO1xuICBvdmVybGFwVHJpZ2dlcjogYm9vbGVhbjtcbiAgcGFuZWxDbGFzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgT3ZlcmZsb3dNZW51QnV0dG9uTW9kaWZ5ID0gT3ZlcmZsb3dNZW51QnV0dG9uc1R5cGUgJiBCdXR0b25PcHRpb25zO1xuIl19