@fundamental-ngx/btp 0.53.1-rc.8 → 0.53.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.
@@ -181,7 +181,7 @@ export class ToolHeaderComponent extends ToolHeaderComponentClass {
181
181
  provide: ToolHeaderComponentClass,
182
182
  useExisting: ToolHeaderComponent
183
183
  }
184
- ], queries: [{ propertyName: "_toolHeaderLogoDirective", first: true, predicate: ToolHeaderLogoDirective, descendants: true }, { propertyName: "_searchField", first: true, predicate: SearchFieldComponent, descendants: true }, { propertyName: "_toolHeaderUser", first: true, predicate: ToolHeaderUserDirective, descendants: true }, { propertyName: "_toolHeaderProductSwitch", first: true, predicate: FD_PRODUCT_SWITCH_COMPONENT, descendants: true }, { propertyName: "_contentActions", predicate: ToolHeaderActionClass }], usesInheritance: true, ngImport: i0, template: "<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n [ariaLabel]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_delayedHiddenActions$ | async; as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n", styles: [".fd-tool-header{--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Cozy);--fdToolHeader_Padding_Left:1.5rem;--fdToolHeader_Padding_Right:1.25rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--sapShellColor);border:.0625rem solid var(--fdToolHeader_Border_Color);border-radius:var(--sapToolHeader_Border_Radius);-webkit-box-shadow:var(--sapToolHeader_Shadow1);box-shadow:var(--sapToolHeader_Shadow1);-ms-flex-direction:row;flex-direction:row;gap:.75rem;height:auto;min-height:var(--fdToolHeader_Min_Height);padding-block:var(--sapToolHeader_Paddings_Y);padding-inline:var(--fdToolHeader_Padding_Left) var(--fdToolHeader_Padding_Right);width:100%}.fd-tool-header:after,.fd-tool-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.375rem;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-tool-header__group:after,.fd-tool-header__group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group--center,.fd-tool-header__group--menu{-webkit-box-flex:0;-ms-flex:0;flex:0}.fd-tool-header__group--actions{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-tool-header__group--hidden{display:none}.fd-tool-header__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-tool-header__element:after,.fd-tool-header__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__element--hidden{display:none}.fd-tool-header__logo{background-repeat:no-repeat;background-size:contain;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.625rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:auto}.fd-tool-header__logo:after,.fd-tool-header__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__logo.is-focus,.fd-tool-header__logo:focus{border-radius:.25rem;outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:.125rem;z-index:5}.fd-tool-header__separator{background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding-block:0;padding-inline:0;width:.75rem}.fd-tool-header__separator:after,.fd-tool-header__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__product-name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Product_Name_Color);font-family:var(--sapFontFamily);font-family:var(--sapFontBlackFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Product_Name_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.625rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__product-name:after,.fd-tool-header__product-name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__second-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Second_Title_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Second_Title_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:var(--sapContent_LineHeight);margin-block:0;margin-inline:0;margin-top:var(--sapToolHeader_Second_Title_Offset);padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__second-title:after,.fd-tool-header__second-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header--menu{--fdToolHeader_Padding_Left:.75rem}.fd-tool-header[class*=-compact],[class*=-compact] .fd-tool-header:not([class*=-cozy]){--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Compact)}.fd-overflow-layout__items>.fd-overflow-layout__item:not(.fd-overflow-layout__item--last)>.fd-tool-header__element>*{margin-right:.375rem}.fd-tool-header__group--center+.fd-tool-header__group--actions{max-width:calc((100% - 16rem)/2)}.fd-tool-header__element.is-separator+.fd-tool-header__element.is-separator{display:none}.fd-tool-header__navigation-menu{display:flex;flex-direction:column;overflow:visible}.fd-tool-header .fd-button .fd-button__text{display:none}\n/*!\n * Fundamental Library Styles v0.38.0\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "directive", type: ToolHeaderGroupDirective, selector: "[fdbToolHeaderGroup]", inputs: ["center", "actions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ToolHeaderElementDirective, selector: "[fdbToolHeaderElement]" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ToolHeaderButtonDirective, selector: "[fd-button][fdbToolHeaderButton]", inputs: ["fdType"] }, { kind: "directive", type: ToolHeaderLogoDirective, selector: "[fdbToolHeaderLogo]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "component", type: NavigationMenuComponent, selector: "fdb-navigation-menu, ul[fdb-navigation-menu]" }, { kind: "directive", type: IndirectFocusableListDirective, selector: "[fdkIndirectFocusableList]", exportAs: ["fdkIndirectFocusableList"] }, { kind: "component", type: NavigationMenuPopoverComponent, selector: "fdb-navigation-menu-popover" }, { kind: "directive", type: NavigationMenuPopoverControlDirective, selector: "[fdbNavigationMenuPopoverControl]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "renderShowMoreButton", "reverseHiddenItems", "enableKeyboardNavigation", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount", "hiddenItemsChange"] }, { kind: "directive", type: OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "directive", type: OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: ToolHeaderActionButtonDirective, selector: "[fd-button][fdbToolHeaderActionButton]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
184
+ ], queries: [{ propertyName: "_toolHeaderLogoDirective", first: true, predicate: ToolHeaderLogoDirective, descendants: true }, { propertyName: "_searchField", first: true, predicate: SearchFieldComponent, descendants: true }, { propertyName: "_toolHeaderUser", first: true, predicate: ToolHeaderUserDirective, descendants: true }, { propertyName: "_toolHeaderProductSwitch", first: true, predicate: FD_PRODUCT_SWITCH_COMPONENT, descendants: true }, { propertyName: "_contentActions", predicate: ToolHeaderActionClass }], usesInheritance: true, ngImport: i0, template: "<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n [ariaLabel]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_delayedHiddenActions$ | async; as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n", styles: [".fd-tool-header{--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Cozy);--fdToolHeader_Padding_Left:1.5rem;--fdToolHeader_Padding_Right:1.25rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--sapShellColor);border:.0625rem solid var(--fdToolHeader_Border_Color);border-radius:var(--sapToolHeader_Border_Radius);-webkit-box-shadow:var(--sapToolHeader_Shadow1);box-shadow:var(--sapToolHeader_Shadow1);-ms-flex-direction:row;flex-direction:row;gap:.75rem;height:auto;min-height:var(--fdToolHeader_Min_Height);padding-block:var(--sapToolHeader_Paddings_Y);padding-inline:var(--fdToolHeader_Padding_Left) var(--fdToolHeader_Padding_Right);width:100%}.fd-tool-header:after,.fd-tool-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.375rem;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-tool-header__group:after,.fd-tool-header__group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group--center,.fd-tool-header__group--menu{-webkit-box-flex:0;-ms-flex:0;flex:0}.fd-tool-header__group--actions{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-tool-header__group--hidden{display:none}.fd-tool-header__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-tool-header__element:after,.fd-tool-header__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__element--hidden{display:none}.fd-tool-header__logo{background-repeat:no-repeat;background-size:contain;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.625rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:auto}.fd-tool-header__logo:after,.fd-tool-header__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__logo.is-focus,.fd-tool-header__logo:focus{border-radius:.25rem;outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:.125rem;z-index:5}.fd-tool-header__separator{background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding-block:0;padding-inline:0;width:.75rem}.fd-tool-header__separator:after,.fd-tool-header__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__product-name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Product_Name_Color);font-family:var(--sapFontFamily);font-family:var(--sapFontBlackFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Product_Name_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.625rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__product-name:after,.fd-tool-header__product-name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__second-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Second_Title_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Second_Title_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:var(--sapContent_LineHeight);margin-block:0;margin-inline:0;margin-top:var(--sapToolHeader_Second_Title_Offset);padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__second-title:after,.fd-tool-header__second-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header--menu{--fdToolHeader_Padding_Left:.75rem}.fd-tool-header[class*=-compact],[class*=-compact] .fd-tool-header:not([class*=-cozy]){--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Compact)}.fd-overflow-layout__items>.fd-overflow-layout__item:not(.fd-overflow-layout__item--last)>.fd-tool-header__element>*{margin-right:.375rem}.fd-tool-header__group--center+.fd-tool-header__group--actions{max-width:calc((100% - 16rem)/2)}.fd-tool-header__element.is-separator+.fd-tool-header__element.is-separator{display:none}.fd-tool-header__navigation-menu{display:flex;flex-direction:column;overflow:visible}.fd-tool-header .fd-button .fd-button__text{display:none}\n/*!\n * Fundamental Library Styles v0.38.0\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "directive", type: ToolHeaderGroupDirective, selector: "[fdbToolHeaderGroup]", inputs: ["center", "actions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ToolHeaderElementDirective, selector: "[fdbToolHeaderElement]" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ToolHeaderButtonDirective, selector: "[fd-button][fdbToolHeaderButton]", inputs: ["fdType"] }, { kind: "directive", type: ToolHeaderLogoDirective, selector: "[fdbToolHeaderLogo]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "component", type: NavigationMenuComponent, selector: "fdb-navigation-menu, ul[fdb-navigation-menu]" }, { kind: "directive", type: IndirectFocusableListDirective, selector: "[fdkIndirectFocusableList]", exportAs: ["fdkIndirectFocusableList"] }, { kind: "component", type: NavigationMenuPopoverComponent, selector: "fdb-navigation-menu-popover" }, { kind: "directive", type: NavigationMenuPopoverControlDirective, selector: "[fdbNavigationMenuPopoverControl]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "renderShowMoreButton", "reverseHiddenItems", "enableKeyboardNavigation", "ariaRole", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount", "hiddenItemsChange"] }, { kind: "directive", type: OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "directive", type: OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: ToolHeaderActionButtonDirective, selector: "[fd-button][fdbToolHeaderActionButton]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
185
185
  }
186
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToolHeaderComponent, decorators: [{
187
187
  type: Component,
@@ -279,4 +279,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
279
279
  type: HostListener,
280
280
  args: ['document:keydown.meta.k', ['$event']]
281
281
  }] } });
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvdG9vbC1oZWFkZXIvc3JjL2NvbXBvbmVudHMvdG9vbC1oZWFkZXIvdG9vbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvdG9vbC1oZWFkZXIvc3JjL2NvbXBvbmVudHMvdG9vbC1oZWFkZXIvdG9vbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsOEJBQThCLEVBQzlCLHFDQUFxQyxFQUN4QyxNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXpFLE9BQU8sRUFDSCxpQ0FBaUMsRUFDakMsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDakMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFF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QkFEbkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFPdEMsU0FBUztzQkFEUixNQUFNO2dCQVNQLFVBQVU7c0JBRFQsTUFBTTtnQkFTUCxZQUFZO3NCQURYLE1BQU07Z0JBT1AsZUFBZTtzQkFEZCxNQUFNO2dCQU9QLFNBQVM7c0JBRFIsTUFBTTtnQkFLUCxlQUFlO3NCQURkLGVBQWU7dUJBQUMscUJBQXFCO2dCQUt0Qyx3QkFBd0I7c0JBRHZCLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUtqQyxZQUFZO3NCQURmLFlBQVk7dUJBQUMsb0JBQW9CO2dCQU9sQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUtyQyx3QkFBd0I7c0JBRHZCLFlBQVk7dUJBQUMsMkJBQTJCO2dCQXdCekMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXNCMUMsVUFBVTtzQkFGVCxZQUFZO3VCQUFDLDRCQUE0QixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDckQsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sSGVhZGVyQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9idHAvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgTmF2aWdhdGlvbk1lbnVDb21wb25lbnQsXG4gICAgTmF2aWdhdGlvbk1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE5hdmlnYXRpb25NZW51UG9wb3ZlckNvbXBvbmVudCxcbiAgICBOYXZpZ2F0aW9uTWVudVBvcG92ZXJDb250cm9sRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvYnRwL25hdmlnYXRpb24tbWVudSc7XG5pbXBvcnQgeyBTZWFyY2hGaWVsZENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvYnRwL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBGZGJWaWV3TW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvYnRwL3NoYXJlZCc7XG5pbXBvcnQge1xuICAgIEZES19JTkRJUkVDVF9GT0NVU0FCTEVfSVRFTV9PUkRFUixcbiAgICBGb2N1c2FibGVJdGVtRGlyZWN0aXZlLFxuICAgIEZvY3VzYWJsZUxpc3REaXJlY3RpdmUsXG4gICAgSW5kaXJlY3RGb2N1c2FibGVMaXN0RGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7XG4gICAgR2x5cGhNZW51QWRkb25EaXJlY3RpdmUsXG4gICAgTWVudUFkZG9uRGlyZWN0aXZlLFxuICAgIE1lbnVDb21wb25lbnQsXG4gICAgTWVudUludGVyYWN0aXZlQ29tcG9uZW50LFxuICAgIE1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE1lbnVUaXRsZURpcmVjdGl2ZSxcbiAgICBNZW51VHJpZ2dlckRpcmVjdGl2ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5pbXBvcnQge1xuICAgIE92ZXJmbG93SXRlbVJlZixcbiAgICBPdmVyZmxvd0l0ZW1SZWZEaXJlY3RpdmUsXG4gICAgT3ZlcmZsb3dMYXlvdXRDb21wb25lbnQsXG4gICAgT3ZlcmZsb3dMYXlvdXRJdGVtRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9vdmVyZmxvdy1sYXlvdXQnO1xuaW1wb3J0IHsgUG9wb3ZlckJvZHlEaXJlY3RpdmUsIFBvcG92ZXJDb21wb25lbnQsIFBvcG92ZXJDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgRkRfUFJPRFVDVF9TV0lUQ0hfQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Byb2R1Y3Qtc3dpdGNoJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZGVsYXlXaGVuLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckFjdGlvbkJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9vbC1oZWFkZXItYWN0aW9uLWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckFjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9vbC1oZWFkZXItYWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb29sSGVhZGVyRWxlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9vbC1oZWFkZXItZWxlbWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy90b29sLWhlYWRlci1ncm91cC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckxvZ29EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Rvb2wtaGVhZGVyLWxvZ28uZGlyZWN0aXZlJztcbmltcG9ydCB7IFRvb2xIZWFkZXJVc2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy90b29sLWhlYWRlci11c2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb29sSGVhZGVyQWN0aW9uQ2xhc3MgfSBmcm9tICcuLi8uLi90b29sLWhlYWRlci1hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckNvbXBvbmVudENsYXNzIH0gZnJvbSAnLi4vLi4vdG9vbC1oZWFkZXItY29tcG9uZW50LmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZGItdG9vbC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9vbC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXRvb2wtaGVhZGVyJyxcbiAgICAgICAgJ1tjbGFzcy5mZC10b29sLWhlYWRlci0tbWVudV0nOiAnc2hvd01lbnVCdXR0b24nXG4gICAgfSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRvb2xIZWFkZXJHcm91cERpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckNvbnRyb2xDb21wb25lbnQsXG4gICAgICAgIE1lbnVUcmlnZ2VyRGlyZWN0aXZlLFxuICAgICAgICBNZW51Q29tcG9uZW50LFxuICAgICAgICBNZW51SXRlbUNvbXBvbmVudCxcbiAgICAgICAgTWVudUludGVyYWN0aXZlQ29tcG9uZW50LFxuICAgICAgICBNZW51VGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIE1lbnVBZGRvbkRpcmVjdGl2ZSxcbiAgICAgICAgR2x5cGhNZW51QWRkb25EaXJlY3RpdmUsXG4gICAgICAgIFRvb2xIZWFkZXJFbGVtZW50RGlyZWN0aXZlLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRvb2xIZWFkZXJCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIFRvb2xIZWFkZXJMb2dvRGlyZWN0aXZlLFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIE5hdmlnYXRpb25NZW51Q29tcG9uZW50LFxuICAgICAgICBOYXZpZ2F0aW9uTWVudUl0ZW1Db21wb25lbnQsXG4gICAgICAgIEZvY3VzYWJsZUxpc3REaXJlY3RpdmUsXG4gICAgICAgIEluZGlyZWN0Rm9jdXNhYmxlTGlzdERpcmVjdGl2ZSxcbiAgICAgICAgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSxcbiAgICAgICAgTmF2aWdhdGlvbk1lbnVQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBOYXZpZ2F0aW9uTWVudVBvcG92ZXJDb250cm9sRGlyZWN0aXZlLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIE92ZXJmbG93TGF5b3V0Q29tcG9uZW50LFxuICAgICAgICBPdmVyZmxvd0xheW91dEl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIE92ZXJmbG93SXRlbVJlZkRpcmVjdGl2ZSxcbiAgICAgICAgUG9wb3ZlckJvZHlEaXJlY3RpdmUsXG4gICAgICAgIFBvcnRhbE1vZHVsZSxcbiAgICAgICAgVG9vbEhlYWRlckFjdGlvbkJ1dHRvbkRpcmVjdGl2ZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVG9vbEhlYWRlckNvbXBvbmVudENsYXNzLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRvb2xIZWFkZXJDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVG9vbEhlYWRlckNvbXBvbmVudCBleHRlbmRzIFRvb2xIZWFkZXJDb21wb25lbnRDbGFzcyBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogKHJlcXVpcmVkKSB0aGUgUHJvZHVjdCBOYW1lIGlzIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoZSB0b29sLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHByb2R1Y3ROYW1lITogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNlY29uZCBUaXRsZSBpcyBhbiBvcHRpb25hbCBzZWNvbmQgdGV4dCBpZGVudGlmaWVyIG9mIHRoZSB0b29sLlxuICAgICAqKi9cbiAgICBASW5wdXQoKSBzZWNvbmRUaXRsZT86IHN0cmluZztcbiAgICAvKiogTW9kZSAqL1xuICAgIEBJbnB1dCgnbW9kZScpXG4gICAgc2V0IF9tb2RlKG1vZGU6IEZkYlZpZXdNb2RlKSB7XG4gICAgICAgIGlmIChtb2RlICE9PSB0aGlzLl9tb2RlJCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlJC5zZXQobW9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgnb3JpZW50YXRpb24nKVxuICAgIHNldCBfb3JpZW50YXRpb24ob3JpZW50YXRpb246ICdsYW5kc2NhcGUnIHwgJ3BvcnRyYWl0Jykge1xuICAgICAgICBpZiAob3JpZW50YXRpb24gIT09IHRoaXMuX29yaWVudGF0aW9uJCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9vcmllbnRhdGlvbiQuc2V0KG9yaWVudGF0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgbWVudSBidXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzaG93TWVudUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHRoZSB2b2ljZSBpbnB1dCBhY3Rpb24gYnV0dG9uIG9uXG4gICAgICogdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHRvb2wgaGVhZGVyLCB3aGVuIHRoZSBtb2RlIGlzIG1vYmlsZVxuICAgICAqIGFuZCB0aGUgc2VhcmNoIGlucHV0IGlzIGV4cGFuZGVkXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2hvd1ZvaWNlSW5wdXRBY3Rpb24gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBtZW51IGJ1dHRvbiBpcyBjbGlja2VkXG4gICAgICoqL1xuICAgIEBPdXRwdXQoKVxuICAgIG1lbnVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGludGVuZHMgdG8gZXhwYW5kIHRoZSBtZW51LlxuICAgICAqIEhhcHBlbnMgd2hlbiB1c2VyIGNsaWNrcyBgcmlnaHQgYXJyb3dgIGtleSBvbiB0aGUgbWVudSBidXR0b25cbiAgICAgKiBpZiBvbiBsdHIgb3IgYGxlZnQgYXJyb3dgIGtleSBpZiBvbiBydGwuXG4gICAgICoqL1xuICAgIEBPdXRwdXQoKVxuICAgIG1lbnVFeHBhbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBpbnRlbmRzIHRvIGNvbGxhcHNlIHRoZSBtZW51LlxuICAgICAqIEhhcHBlbnMgd2hlbiB1c2VyIGNsaWNrcyBgbGVmdCBhcnJvd2Aga2V5IG9uIHRoZSBtZW51IGJ1dHRvblxuICAgICAqIGlmIG9uIGx0ciBvciBgcmlnaHQgYXJyb3dgIGtleSBpZiBvbiBydGwuXG4gICAgICoqL1xuICAgIEBPdXRwdXQoKVxuICAgIG1lbnVDb2xsYXBzZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgbWljcm9waG9uZSBidXR0b24gaXMgY2xpY2tlZFxuICAgICAqKi9cbiAgICBAT3V0cHV0KClcbiAgICBtaWNyb3Bob25lQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGRlZmF1bHQgbG9nbyBpcyBjbGlja2VkXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgbG9nb0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFRvb2xIZWFkZXJBY3Rpb25DbGFzcylcbiAgICBfY29udGVudEFjdGlvbnM6IFF1ZXJ5TGlzdDxUb29sSGVhZGVyQWN0aW9uQ2xhc3M+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRvb2xIZWFkZXJMb2dvRGlyZWN0aXZlKVxuICAgIF90b29sSGVhZGVyTG9nb0RpcmVjdGl2ZT86IFRvb2xIZWFkZXJMb2dvRGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFNlYXJjaEZpZWxkQ29tcG9uZW50KVxuICAgIHNldCBfc2VhcmNoRmllbGQoc2VhcmNoRmllbGQ6IFNlYXJjaEZpZWxkQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuX3NlYXJjaEZpZWxkJC5zZXQoc2VhcmNoRmllbGQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChUb29sSGVhZGVyVXNlckRpcmVjdGl2ZSlcbiAgICBfdG9vbEhlYWRlclVzZXI/OiBUb29sSGVhZGVyVXNlckRpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9QUk9EVUNUX1NXSVRDSF9DT01QT05FTlQpXG4gICAgX3Rvb2xIZWFkZXJQcm9kdWN0U3dpdGNoPzogdW5rbm93bjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9oaWRkZW5BY3Rpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3ZlcmZsb3dJdGVtUmVmPFRvb2xIZWFkZXJBY3Rpb25EaXJlY3RpdmU+W10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9kZWxheWVkSGlkZGVuQWN0aW9ucyQgPSB0aGlzLl9oaWRkZW5BY3Rpb25zJC5waXBlKGRlbGF5V2hlbigoKSA9PiB0aGlzLl9uZ1pvbmUub25TdGFibGUpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VhcmNoRmllbGRPdXRzaWRlQ2xpY2tTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tYXBPZkl0ZW1zQW5kSW5qZWN0b3JzID0gbmV3IFdlYWtNYXA8T3ZlcmZsb3dJdGVtUmVmPFRvb2xIZWFkZXJBY3Rpb25EaXJlY3RpdmU+LCBJbmplY3Rvcj4oKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBoYW5kbGVyLCByZXNwb25zaWJsZSBmb3IgY2xvc2luZyB0aGUgc2VhcmNoIGZpZWxkXG4gICAgICogb24gb3V0c2lkZSBjbGlja1xuICAgICAqIEBoaWRkZW5cbiAgICAgKiovXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICAgIF9vbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9zZWFyY2hGaWVsZEV4cGFuZGVkJCgpKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kZSQoKSA9PT0gJ3RhYmxldCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9vcmllbnRhdGlvbiQoKSA9PT0gJ3BvcnRyYWl0JyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaEZpZWxkJCgpICYmXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICAgICAgICAhZXZlbnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXModGhpcy5fc2VhcmNoRmllbGQkKCkhLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaEZpZWxkRXhwYW5kZWQkLnNldChmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaGFuZGxlciwgcmVzcG9uc2libGUgZm9yIHRoZSBmb2N1c2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkLFxuICAgICAqIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyBgQ3RybCArIEtgIG9yIGBDbWQgKyBLYCBrZXlzXG4gICAgICogQGhpZGRlblxuICAgICAqKi9cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmNvbnRyb2wuaycsIFsnJGV2ZW50J10pXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5tZXRhLmsnLCBbJyRldmVudCddKVxuICAgIF9vbktleURvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9tb2RlJCgpID09PSAndGFibGV0JyAmJiB0aGlzLl9vcmllbnRhdGlvbiQoKSA9PT0gJ3BvcnRyYWl0JyAmJiB0aGlzLl9zZWFyY2hGaWVsZCQoKSkge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoRmllbGRFeHBhbmRlZCQuc2V0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoRmllbGQkKCk/LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fc2VhcmNoRmllbGRPdXRzaWRlQ2xpY2tTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaEZpZWxkT3V0c2lkZUNsaWNrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBhbmQgdGhlIHNlYXJjaCBmaWVsZFxuICAgICAqKi9cbiAgICBleHBhbmRTZWFyY2hGaWVsZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoRmllbGRFeHBhbmRlZCQuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoRmllbGQkKCk/LmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVNZW51TGVmdEFycm93S2V5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fcnRsKCkpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUV4cGFuZC5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVDb2xsYXBzZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfaGFuZGxlTWVudVJpZ2h0QXJyb3dLZXkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9ydGwoKSkge1xuICAgICAgICAgICAgdGhpcy5tZW51Q29sbGFwc2UuZW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZW51RXhwYW5kLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVIaWRkZW5JdGVtc0NoYW5nZSgkZXZlbnQ6IE92ZXJmbG93SXRlbVJlZjxUb29sSGVhZGVyQWN0aW9uRGlyZWN0aXZlPltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9oaWRkZW5BY3Rpb25zJC5uZXh0KFxuICAgICAgICAgICAgICAgICRldmVudC5yZWR1Y2UoKGFjYzogT3ZlcmZsb3dJdGVtUmVmPFRvb2xIZWFkZXJBY3Rpb25EaXJlY3RpdmU+W10sIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpLml0ZW0uaXNTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjYy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwT2ZJdGVtc0FuZEluamVjdG9ycy5kZWxldGUoaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCBbXSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9pbmRpcmVjdEZvY3VzYWJsZUl0ZW1JbmplY3RvcihcbiAgICAgICAgcGFyZW50OiBJbmplY3RvcixcbiAgICAgICAgaXRlbTogT3ZlcmZsb3dJdGVtUmVmPFRvb2xIZWFkZXJBY3Rpb25EaXJlY3RpdmU+XG4gICAgKTogSW5qZWN0b3Ige1xuICAgICAgICBsZXQgaW5qZWN0b3IgPSB0aGlzLl9tYXBPZkl0ZW1zQW5kSW5qZWN0b3JzLmdldChpdGVtKTtcbiAgICAgICAgaWYgKCFpbmplY3Rvcikge1xuICAgICAgICAgICAgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogRkRLX0lORElSRUNUX0ZPQ1VTQUJMRV9JVEVNX09SREVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGl0ZW0uZ2xvYmFsSW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fbWFwT2ZJdGVtc0FuZEluamVjdG9ycy5zZXQoaXRlbSwgaW5qZWN0b3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbmplY3RvcjtcbiAgICB9XG59XG4iLCI8ZGl2IGZkYlRvb2xIZWFkZXJHcm91cCBbY2xhc3MuZmQtdG9vbC1oZWFkZXItLW1lbnVdPVwic2hvd01lbnVCdXR0b25cIj5cbiAgICBAaWYgKGZkYlRvb2xIZWFkZXJTdGF0ZSgpLmJhY2tCdXR0b25WaXNpYmxlKSB7XG4gICAgICAgIDxkaXYgZmRiVG9vbEhlYWRlckVsZW1lbnQ+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRiVG9vbEhlYWRlckJ1dHRvblxuICAgICAgICAgICAgICAgIGdseXBoPVwic2xpbS1hcnJvdy1sZWZ0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3NlYXJjaEZpZWxkRXhwYW5kZWQkLnNldChmYWxzZSlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5tZW51QnV0dG9uVmlzaWJsZSAmJiBzaG93TWVudUJ1dHRvbikge1xuICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkYlRvb2xIZWFkZXJCdXR0b25cbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ2J0cFRvb2xIZWFkZXIubWVudUJ1dHRvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInYnRwVG9vbEhlYWRlci5tZW51QnV0dG9uQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBnbHlwaD1cIm1lbnUyXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd0xlZnQpPVwiX2hhbmRsZU1lbnVMZWZ0QXJyb3dLZXkoKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uYXJyb3dSaWdodCk9XCJfaGFuZGxlTWVudVJpZ2h0QXJyb3dLZXkoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnVDbGljay5lbWl0KClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5sb2dvVmlzaWJsZSkge1xuICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50PlxuICAgICAgICAgICAgQGlmIChfdG9vbEhlYWRlckxvZ29EaXJlY3RpdmUpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmRiVG9vbEhlYWRlckxvZ29dXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBmZGJUb29sSGVhZGVyTG9nb1xuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9nb0NsaWNrLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vdW5wa2cuY29tL2Z1bmRhbWVudGFsLXN0eWxlcy9kaXN0L2ltYWdlcy9zYXAtbG9nby5wbmdcIlxuICAgICAgICAgICAgICAgICAgICBzcmNzZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vdW5wa2cuY29tL2Z1bmRhbWVudGFsLXN0eWxlcy9kaXN0L2ltYWdlcy9zYXAtbG9nbyYjNjQ7MngucG5nIDF4LFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly91bnBrZy5jb20vZnVuZGFtZW50YWwtc3R5bGVzL2Rpc3QvaW1hZ2VzL3NhcC1sb2dvJiM2NDszeC5wbmcgMngsXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwczovL3VucGtnLmNvbS9mdW5kYW1lbnRhbC1zdHlsZXMvZGlzdC9pbWFnZXMvc2FwLWxvZ28mIzY0OzR4LnBuZyAzeFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJTQVAgbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTQVAgbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiU0FQIGxvZ29cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGZkYlRvb2xIZWFkZXJTdGF0ZSgpLnByb2R1Y3ROYW1lVmlzaWJsZSkge1xuICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50PlxuICAgICAgICAgICAgPGgxIGNsYXNzPVwiZmQtdG9vbC1oZWFkZXJfX3Byb2R1Y3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgIHt7IHByb2R1Y3ROYW1lIH19XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5zZWNvbmRUaXRsZVZpc2libGUgJiYgc2Vjb25kVGl0bGUpIHtcbiAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC10b29sLWhlYWRlcl9fc2Vjb25kLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3sgc2Vjb25kVGl0bGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cbkBpZiAoZmRiVG9vbEhlYWRlclN0YXRlKCkuc2VhcmNoRmllbGRWaXNpYmxlKSB7XG4gICAgPGRpdiBmZGJUb29sSGVhZGVyR3JvdXAgY2VudGVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZGItc2VhcmNoLWZpZWxkXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxufVxuPGZkLW92ZXJmbG93LWxheW91dFxuICAgIGZkYlRvb2xIZWFkZXJHcm91cFxuICAgIGFjdGlvbnNcbiAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cIidlbmQnXCJcbiAgICAoaGlkZGVuSXRlbXNDaGFuZ2UpPVwiX2hhbmRsZUhpZGRlbkl0ZW1zQ2hhbmdlKCRldmVudClcIlxuICAgIFtyZW5kZXJTaG93TW9yZUJ1dHRvbl09XCJmYWxzZVwiXG4+XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5zZWFyY2hGaWVsZFRvZ2dsZUFjdGlvblZpc2libGUpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIGZkT3ZlcmZsb3dJdGVtUmVmPlxuICAgICAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudCBmZE92ZXJmbG93TGF5b3V0SXRlbSBbZm9yY2VWaXNpYmlsaXR5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZGJUb29sSGVhZGVyQWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZXhwYW5kU2VhcmNoRmllbGQoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoZmRiVG9vbEhlYWRlclN0YXRlKCkucHJvdmlkZWRBY3Rpb25zVmlzaWJsZSkge1xuICAgICAgICBAZm9yIChhY3Rpb24gb2YgX2NvbnRlbnRBY3Rpb25zOyB0cmFjayBhY3Rpb24pIHtcbiAgICAgICAgICAgIEBpZiAoYWN0aW9uLmlzU2VwYXJhdG9yID8gZmRiVG9vbEhlYWRlclN0YXRlKCkuc2VwYXJhdG9yc0JldHdlZW5BY3Rpb25zVmlzaWJsZSA6IHRydWUpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2ZkT3ZlcmZsb3dJdGVtUmVmXT1cImFjdGlvblwiIGxldC1oaWRkZW4gbGV0LWluamVjdG9yPVwiaW5qZWN0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChoaWRkZW4gPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50IGZkT3ZlcmZsb3dMYXlvdXRJdGVtIFtmb3JjZVZpc2liaWxpdHldPVwiISFhY3Rpb24uZm9yY2VWaXNpYmlsaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGlvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGlvbi50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaGlkZGVuOiBoaWRkZW4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcl09XCJpbmplY3RvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYWN0aW9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3Rpb24udGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGhpZGRlbjogaGlkZGVuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3JdPVwiaW5qZWN0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIDwhLS0gQ3VzdG9tIG92ZXJmbG93IGJ1dHRvbiB1c2VkIGFzIG92ZXJmbG93IGl0ZW0gU1RBUlQgLS0+XG4gICAgQGlmIChfZGVsYXllZEhpZGRlbkFjdGlvbnMkIHwgYXN5bmM7IGFzIGhpZGRlbkFjdGlvbnMpIHtcbiAgICAgICAgQGlmIChoaWRkZW5BY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZE92ZXJmbG93SXRlbVJlZj5cbiAgICAgICAgICAgICAgICA8ZmRiLW5hdmlnYXRpb24tbWVudS1wb3BvdmVyIGZkYlRvb2xIZWFkZXJFbGVtZW50IGZkT3ZlcmZsb3dMYXlvdXRJdGVtIFtmb3JjZVZpc2liaWxpdHldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAqZmRiTmF2aWdhdGlvbk1lbnVQb3BvdmVyQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZGJUb29sSGVhZGVyQWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cIm92ZXJmbG93XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZmRiLW5hdmlnYXRpb24tbWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC10b29sLWhlYWRlcl9fbmF2aWdhdGlvbi1tZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZka0luZGlyZWN0Rm9jdXNhYmxlTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgI2luZGlyZWN0Rm9jdXNhYmxlTGlzdD1cImZka0luZGlyZWN0Rm9jdXNhYmxlTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaGlkZGVuQWN0aW9uczsgdHJhY2sgaXRlbS5nbG9iYWxJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpdGVtLmluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsSW5kZXg6IGl0ZW0uZ2xvYmFsSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdDogaXRlbS5maXJzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Q6IGl0ZW0ubGFzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdG9yOiBfaW5kaXJlY3RGb2N1c2FibGVJdGVtSW5qZWN0b3IoaW5kaXJlY3RGb2N1c2FibGVMaXN0LmluamVjdG9yLCBpdGVtKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9mZGItbmF2aWdhdGlvbi1tZW51PlxuICAgICAgICAgICAgICAgIDwvZmRiLW5hdmlnYXRpb24tbWVudS1wb3BvdmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfVxuICAgIH1cbiAgICA8IS0tIEN1c3RvbSBvdmVyZmxvdyBidXR0b24gdXNlZCBhcyBvdmVyZmxvdyBpdGVtIEVORCAtLT5cbiAgICBAaWYgKGZkYlRvb2xIZWFkZXJTdGF0ZSgpLnVzZXJBdmF0YXJWaXNpYmxlICYmIF90b29sSGVhZGVyVXNlcikge1xuICAgICAgICBAaWYgKGZkYlRvb2xIZWFkZXJTdGF0ZSgpLnNlcGFyYXRvcnNCZXR3ZWVuQWN0aW9uc1Zpc2libGUpIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZE92ZXJmbG93SXRlbVJlZj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50IGZkT3ZlcmZsb3dMYXlvdXRJdGVtIFtmb3JjZVZpc2liaWxpdHldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtdG9vbC1oZWFkZXJfX3NlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfVxuICAgICAgICA8bmctdGVtcGxhdGUgZmRPdmVyZmxvd0l0ZW1SZWY+XG4gICAgICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50IGZkT3ZlcmZsb3dMYXlvdXRJdGVtIFtmb3JjZVZpc2liaWxpdHldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZGJUb29sSGVhZGVyVXNlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5wcm9kdWN0U3dpdGNoVmlzaWJsZSAmJiBfdG9vbEhlYWRlclByb2R1Y3RTd2l0Y2gpIHtcbiAgICAgICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5zZXBhcmF0b3JzQmV0d2VlbkFjdGlvbnNWaXNpYmxlKSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRPdmVyZmxvd0l0ZW1SZWY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudCBmZE92ZXJmbG93TGF5b3V0SXRlbSBbZm9yY2VWaXNpYmlsaXR5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLXRvb2wtaGVhZGVyX19zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cbiAgICAgICAgPG5nLXRlbXBsYXRlIGZkT3ZlcmZsb3dJdGVtUmVmPlxuICAgICAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudCBmZE92ZXJmbG93TGF5b3V0SXRlbSBbZm9yY2VWaXNpYmlsaXR5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZGItdG9vbC1oZWFkZXItcHJvZHVjdC1zd2l0Y2gsIGZkLXByb2R1Y3Qtc3dpdGNoXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoZmRiVG9vbEhlYWRlclN0YXRlKCkudm9pY2VJbnB1dFZpc2libGUpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIGZkT3ZlcmZsb3dJdGVtUmVmPlxuICAgICAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudCBmZE92ZXJmbG93TGF5b3V0SXRlbSBbZm9yY2VWaXNpYmlsaXR5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZGJUb29sSGVhZGVyQWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwibWljcm9waG9uZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ1NlYXJjaCB3aXRoIHZvaWNlJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtaWNyb3Bob25lQ2xpY2suZW1pdCgpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9XG48L2ZkLW92ZXJmbG93LWxheW91dD5cbiJdfQ==
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvdG9vbC1oZWFkZXIvc3JjL2NvbXBvbmVudHMvdG9vbC1oZWFkZXIvdG9vbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvdG9vbC1oZWFkZXIvc3JjL2NvbXBvbmVudHMvdG9vbC1oZWFkZXIvdG9vbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsOEJBQThCLEVBQzlCLHFDQUFxQyxFQUN4QyxNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXpFLE9BQU8sRUFDSCxpQ0FBaUMsRUFDakMsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDakMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDdkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBRUgsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDOUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUV2RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFzRDdFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx3QkFBd0I7SUFwRGpFOztRQTZFSTs7V0FFRztRQUVILG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCOzs7O1dBSUc7UUFFSCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFNUI7O1lBRUk7UUFFSixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVyQzs7OztZQUlJO1FBRUosZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEM7Ozs7WUFJSTtRQUVKLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4Qzs7WUFFSTtRQUVKLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzQzs7V0FFRztRQUVILGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBd0JyQyxjQUFjO1FBQ0osb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBK0MsRUFBRSxDQUFDLENBQUM7UUFFbEcsY0FBYztRQUNKLDJCQUFzQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFLckcsY0FBYztRQUNOLFlBQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakMsY0FBYztRQUNOLDRCQUF1QixHQUFHLElBQUksT0FBTyxFQUF3RCxDQUFDO0tBMEd6RztJQTdNRyxXQUFXO0lBQ1gsSUFDSSxLQUFLLENBQUMsSUFBaUI7UUFDdkIsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsSUFDSSxZQUFZLENBQUMsV0FBcUM7UUFDbEQsSUFBSSxXQUFXLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUEwREQsY0FBYztJQUNkLElBQ0ksWUFBWSxDQUFDLFdBQWlDO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUF5QkQ7Ozs7UUFJSTtJQUVKLFFBQVEsQ0FBQyxLQUFpQjtRQUN0QixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUM7WUFDL0IsSUFDSSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssUUFBUTtnQkFDMUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLFVBQVU7Z0JBQ25DLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3BCLG9FQUFvRTtnQkFDcEUsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQ2hGLENBQUM7Z0JBQ0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztRQUlJO0lBR0osVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssVUFBVSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzVGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1RCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztRQUVJO0lBQ0osaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9DLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO0lBQ0osdUJBQXVCO1FBQzdCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDSix3QkFBd0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNKLHdCQUF3QixDQUFDLE1BQW9EO1FBQ25GLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBaUQsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3RCLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ1osSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztnQkFDRCxPQUFPLEdBQUcsQ0FBQztZQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDVCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztJQUNKLDhCQUE4QixDQUNwQyxNQUFnQixFQUNoQixJQUFnRDtRQUVoRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNaLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUN2QixNQUFNO2dCQUNOLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsaUNBQWlDO3dCQUMxQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVc7cUJBQzdCO2lCQUNKO2FBQ0osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7OEdBck5RLG1CQUFtQjtrR0FBbkIsbUJBQW1CLG1QQTRCUixnQkFBZ0IsMEVBUWhCLGdCQUFnQiwrYUE1Q3pCO1lBQ1AsK0JBQStCLEVBQUU7WUFDakM7Z0JBQ0ksT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsV0FBVyxFQUFFLG1CQUFtQjthQUNuQztTQUNKLGdGQWdGYSx1QkFBdUIsK0VBSXZCLG9CQUFvQixrRkFNcEIsdUJBQXVCLDJGQUl2QiwyQkFBMkIscUVBbEJ4QixxQkFBcUIsb0RDaE0xQyxnMFFBK0xBLHk4TERqSFEsd0JBQXdCLGdHQUN4QixnQkFBZ0Isb0pBVWhCLDBCQUEwQixtRUFFMUIsZUFBZSx5SUFDZix5QkFBeUIsaUdBQ3pCLHVCQUF1QiwyREFDdkIsZUFBZSxvREFDZix1QkFBdUIseUZBR3ZCLDhCQUE4QiwrR0FFOUIsOEJBQThCLHdFQUM5QixxQ0FBcUMseUVBQ3JDLFNBQVMsOENBQ1QsdUJBQXVCLDJUQUN2QiwyQkFBMkIsMkhBQzNCLHdCQUF3Qiw4RkFFeEIsWUFBWSwrQkFDWiwrQkFBK0I7OzJGQVUxQixtQkFBbUI7a0JBcEQvQixTQUFTOytCQUNJLGlCQUFpQixjQUdmLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixLQUFLLEVBQUUsZ0JBQWdCO3dCQUN2Qiw4QkFBOEIsRUFBRSxnQkFBZ0I7cUJBQ25ELFdBQ1E7d0JBQ0wsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsMkJBQTJCO3dCQUMzQixzQkFBc0I7d0JBQ3RCLDhCQUE4Qjt3QkFDOUIsc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLHFDQUFxQzt3QkFDckMsU0FBUzt3QkFDVCx1QkFBdUI7d0JBQ3ZCLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osK0JBQStCO3FCQUNsQyxhQUNVO3dCQUNQLCtCQUErQixFQUFFO3dCQUNqQzs0QkFDSSxPQUFPLEVBQUUsd0JBQXdCOzRCQUNqQyxXQUFXLHFCQUFxQjt5QkFDbkM7cUJBQ0o7OEJBTTBCLFdBQVc7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUloQixXQUFXO3NCQUFuQixLQUFLO2dCQUdGLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxNQUFNO2dCQVNULFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxhQUFhO2dCQVdwQixjQUFjO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBU3RDLG9CQUFvQjtzQkFEbkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFPdEMsU0FBUztzQkFEUixNQUFNO2dCQVNQLFVBQVU7c0JBRFQsTUFBTTtnQkFTUCxZQUFZO3NCQURYLE1BQU07Z0JBT1AsZUFBZTtzQkFEZCxNQUFNO2dCQU9QLFNBQVM7c0JBRFIsTUFBTTtnQkFLUCxlQUFlO3NCQURkLGVBQWU7dUJBQUMscUJBQXFCO2dCQUt0Qyx3QkFBd0I7c0JBRHZCLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUtqQyxZQUFZO3NCQURmLFlBQVk7dUJBQUMsb0JBQW9CO2dCQU9sQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUtyQyx3QkFBd0I7c0JBRHZCLFlBQVk7dUJBQUMsMkJBQTJCO2dCQXdCekMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXNCMUMsVUFBVTtzQkFGVCxZQUFZO3VCQUFDLDRCQUE0QixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDckQsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sSGVhZGVyQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9idHAvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgTmF2aWdhdGlvbk1lbnVDb21wb25lbnQsXG4gICAgTmF2aWdhdGlvbk1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE5hdmlnYXRpb25NZW51UG9wb3ZlckNvbXBvbmVudCxcbiAgICBOYXZpZ2F0aW9uTWVudVBvcG92ZXJDb250cm9sRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvYnRwL25hdmlnYXRpb24tbWVudSc7XG5pbXBvcnQgeyBTZWFyY2hGaWVsZENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvYnRwL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBGZGJWaWV3TW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvYnRwL3NoYXJlZCc7XG5pbXBvcnQge1xuICAgIEZES19JTkRJUkVDVF9GT0NVU0FCTEVfSVRFTV9PUkRFUixcbiAgICBGb2N1c2FibGVJdGVtRGlyZWN0aXZlLFxuICAgIEZvY3VzYWJsZUxpc3REaXJlY3RpdmUsXG4gICAgSW5kaXJlY3RGb2N1c2FibGVMaXN0RGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7XG4gICAgR2x5cGhNZW51QWRkb25EaXJlY3RpdmUsXG4gICAgTWVudUFkZG9uRGlyZWN0aXZlLFxuICAgIE1lbnVDb21wb25lbnQsXG4gICAgTWVudUludGVyYWN0aXZlQ29tcG9uZW50LFxuICAgIE1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE1lbnVUaXRsZURpcmVjdGl2ZSxcbiAgICBNZW51VHJpZ2dlckRpcmVjdGl2ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5pbXBvcnQge1xuICAgIE92ZXJmbG93SXRlbVJlZixcbiAgICBPdmVyZmxvd0l0ZW1SZWZEaXJlY3RpdmUsXG4gICAgT3ZlcmZsb3dMYXlvdXRDb21wb25lbnQsXG4gICAgT3ZlcmZsb3dMYXlvdXRJdGVtRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9vdmVyZmxvdy1sYXlvdXQnO1xuaW1wb3J0IHsgUG9wb3ZlckJvZHlEaXJlY3RpdmUsIFBvcG92ZXJDb21wb25lbnQsIFBvcG92ZXJDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgRkRfUFJPRFVDVF9TV0lUQ0hfQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Byb2R1Y3Qtc3dpdGNoJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZGVsYXlXaGVuLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckFjdGlvbkJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9vbC1oZWFkZXItYWN0aW9uLWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckFjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9vbC1oZWFkZXItYWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb29sSGVhZGVyRWxlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9vbC1oZWFkZXItZWxlbWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy90b29sLWhlYWRlci1ncm91cC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckxvZ29EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Rvb2wtaGVhZGVyLWxvZ28uZGlyZWN0aXZlJztcbmltcG9ydCB7IFRvb2xIZWFkZXJVc2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy90b29sLWhlYWRlci11c2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb29sSGVhZGVyQWN0aW9uQ2xhc3MgfSBmcm9tICcuLi8uLi90b29sLWhlYWRlci1hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgVG9vbEhlYWRlckNvbXBvbmVudENsYXNzIH0gZnJvbSAnLi4vLi4vdG9vbC1oZWFkZXItY29tcG9uZW50LmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZGItdG9vbC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9vbC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXRvb2wtaGVhZGVyJyxcbiAgICAgICAgJ1tjbGFzcy5mZC10b29sLWhlYWRlci0tbWVudV0nOiAnc2hvd01lbnVCdXR0b24nXG4gICAgfSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRvb2xIZWFkZXJHcm91cERpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckNvbnRyb2xDb21wb25lbnQsXG4gICAgICAgIE1lbnVUcmlnZ2VyRGlyZWN0aXZlLFxuICAgICAgICBNZW51Q29tcG9uZW50LFxuICAgICAgICBNZW51SXRlbUNvbXBvbmVudCxcbiAgICAgICAgTWVudUludGVyYWN0aXZlQ29tcG9uZW50LFxuICAgICAgICBNZW51VGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIE1lbnVBZGRvbkRpcmVjdGl2ZSxcbiAgICAgICAgR2x5cGhNZW51QWRkb25EaXJlY3RpdmUsXG4gICAgICAgIFRvb2xIZWFkZXJFbGVtZW50RGlyZWN0aXZlLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRvb2xIZWFkZXJCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIFRvb2xIZWFkZXJMb2dvRGlyZWN0aXZlLFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIE5hdmlnYXRpb25NZW51Q29tcG9uZW50LFxuICAgICAgICBOYXZpZ2F0aW9uTWVudUl0ZW1Db21wb25lbnQsXG4gICAgICAgIEZvY3VzYWJsZUxpc3REaXJlY3RpdmUsXG4gICAgICAgIEluZGlyZWN0Rm9jdXNhYmxlTGlzdERpcmVjdGl2ZSxcbiAgICAgICAgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSxcbiAgICAgICAgTmF2aWdhdGlvbk1lbnVQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBOYXZpZ2F0aW9uTWVudVBvcG92ZXJDb250cm9sRGlyZWN0aXZlLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIE92ZXJmbG93TGF5b3V0Q29tcG9uZW50LFxuICAgICAgICBPdmVyZmxvd0xheW91dEl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIE92ZXJmbG93SXRlbVJlZkRpcmVjdGl2ZSxcbiAgICAgICAgUG9wb3ZlckJvZHlEaXJlY3RpdmUsXG4gICAgICAgIFBvcnRhbE1vZHVsZSxcbiAgICAgICAgVG9vbEhlYWRlckFjdGlvbkJ1dHRvbkRpcmVjdGl2ZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVG9vbEhlYWRlckNvbXBvbmVudENsYXNzLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRvb2xIZWFkZXJDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVG9vbEhlYWRlckNvbXBvbmVudCBleHRlbmRzIFRvb2xIZWFkZXJDb21wb25lbnRDbGFzcyBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogKHJlcXVpcmVkKSB0aGUgUHJvZHVjdCBOYW1lIGlzIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoZSB0b29sLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHByb2R1Y3ROYW1lITogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNlY29uZCBUaXRsZSBpcyBhbiBvcHRpb25hbCBzZWNvbmQgdGV4dCBpZGVudGlmaWVyIG9mIHRoZSB0b29sLlxuICAgICAqKi9cbiAgICBASW5wdXQoKSBzZWNvbmRUaXRsZT86IHN0cmluZztcbiAgICAvKiogTW9kZSAqL1xuICAgIEBJbnB1dCgnbW9kZScpXG4gICAgc2V0IF9tb2RlKG1vZGU6IEZkYlZpZXdNb2RlKSB7XG4gICAgICAgIGlmIChtb2RlICE9PSB0aGlzLl9tb2RlJCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlJC5zZXQobW9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgnb3JpZW50YXRpb24nKVxuICAgIHNldCBfb3JpZW50YXRpb24ob3JpZW50YXRpb246ICdsYW5kc2NhcGUnIHwgJ3BvcnRyYWl0Jykge1xuICAgICAgICBpZiAob3JpZW50YXRpb24gIT09IHRoaXMuX29yaWVudGF0aW9uJCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9vcmllbnRhdGlvbiQuc2V0KG9yaWVudGF0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgbWVudSBidXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzaG93TWVudUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHRoZSB2b2ljZSBpbnB1dCBhY3Rpb24gYnV0dG9uIG9uXG4gICAgICogdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHRvb2wgaGVhZGVyLCB3aGVuIHRoZSBtb2RlIGlzIG1vYmlsZVxuICAgICAqIGFuZCB0aGUgc2VhcmNoIGlucHV0IGlzIGV4cGFuZGVkXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2hvd1ZvaWNlSW5wdXRBY3Rpb24gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBtZW51IGJ1dHRvbiBpcyBjbGlja2VkXG4gICAgICoqL1xuICAgIEBPdXRwdXQoKVxuICAgIG1lbnVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGludGVuZHMgdG8gZXhwYW5kIHRoZSBtZW51LlxuICAgICAqIEhhcHBlbnMgd2hlbiB1c2VyIGNsaWNrcyBgcmlnaHQgYXJyb3dgIGtleSBvbiB0aGUgbWVudSBidXR0b25cbiAgICAgKiBpZiBvbiBsdHIgb3IgYGxlZnQgYXJyb3dgIGtleSBpZiBvbiBydGwuXG4gICAgICoqL1xuICAgIEBPdXRwdXQoKVxuICAgIG1lbnVFeHBhbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBpbnRlbmRzIHRvIGNvbGxhcHNlIHRoZSBtZW51LlxuICAgICAqIEhhcHBlbnMgd2hlbiB1c2VyIGNsaWNrcyBgbGVmdCBhcnJvd2Aga2V5IG9uIHRoZSBtZW51IGJ1dHRvblxuICAgICAqIGlmIG9uIGx0ciBvciBgcmlnaHQgYXJyb3dgIGtleSBpZiBvbiBydGwuXG4gICAgICoqL1xuICAgIEBPdXRwdXQoKVxuICAgIG1lbnVDb2xsYXBzZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgbWljcm9waG9uZSBidXR0b24gaXMgY2xpY2tlZFxuICAgICAqKi9cbiAgICBAT3V0cHV0KClcbiAgICBtaWNyb3Bob25lQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGRlZmF1bHQgbG9nbyBpcyBjbGlja2VkXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgbG9nb0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFRvb2xIZWFkZXJBY3Rpb25DbGFzcylcbiAgICBfY29udGVudEFjdGlvbnM6IFF1ZXJ5TGlzdDxUb29sSGVhZGVyQWN0aW9uQ2xhc3M+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRvb2xIZWFkZXJMb2dvRGlyZWN0aXZlKVxuICAgIF90b29sSGVhZGVyTG9nb0RpcmVjdGl2ZT86IFRvb2xIZWFkZXJMb2dvRGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFNlYXJjaEZpZWxkQ29tcG9uZW50KVxuICAgIHNldCBfc2VhcmNoRmllbGQoc2VhcmNoRmllbGQ6IFNlYXJjaEZpZWxkQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuX3NlYXJjaEZpZWxkJC5zZXQoc2VhcmNoRmllbGQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChUb29sSGVhZGVyVXNlckRpcmVjdGl2ZSlcbiAgICBfdG9vbEhlYWRlclVzZXI/OiBUb29sSGVhZGVyVXNlckRpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9QUk9EVUNUX1NXSVRDSF9DT01QT05FTlQpXG4gICAgX3Rvb2xIZWFkZXJQcm9kdWN0U3dpdGNoPzogdW5rbm93bjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9oaWRkZW5BY3Rpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3ZlcmZsb3dJdGVtUmVmPFRvb2xIZWFkZXJBY3Rpb25EaXJlY3RpdmU+W10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9kZWxheWVkSGlkZGVuQWN0aW9ucyQgPSB0aGlzLl9oaWRkZW5BY3Rpb25zJC5waXBlKGRlbGF5V2hlbigoKSA9PiB0aGlzLl9uZ1pvbmUub25TdGFibGUpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VhcmNoRmllbGRPdXRzaWRlQ2xpY2tTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tYXBPZkl0ZW1zQW5kSW5qZWN0b3JzID0gbmV3IFdlYWtNYXA8T3ZlcmZsb3dJdGVtUmVmPFRvb2xIZWFkZXJBY3Rpb25EaXJlY3RpdmU+LCBJbmplY3Rvcj4oKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBoYW5kbGVyLCByZXNwb25zaWJsZSBmb3IgY2xvc2luZyB0aGUgc2VhcmNoIGZpZWxkXG4gICAgICogb24gb3V0c2lkZSBjbGlja1xuICAgICAqIEBoaWRkZW5cbiAgICAgKiovXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICAgIF9vbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9zZWFyY2hGaWVsZEV4cGFuZGVkJCgpKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5fbW9kZSQoKSA9PT0gJ3RhYmxldCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9vcmllbnRhdGlvbiQoKSA9PT0gJ3BvcnRyYWl0JyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaEZpZWxkJCgpICYmXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICAgICAgICAhZXZlbnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXModGhpcy5fc2VhcmNoRmllbGQkKCkhLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaEZpZWxkRXhwYW5kZWQkLnNldChmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaGFuZGxlciwgcmVzcG9uc2libGUgZm9yIHRoZSBmb2N1c2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkLFxuICAgICAqIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyBgQ3RybCArIEtgIG9yIGBDbWQgKyBLYCBrZXlzXG4gICAgICogQGhpZGRlblxuICAgICAqKi9cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmNvbnRyb2wuaycsIFsnJGV2ZW50J10pXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5tZXRhLmsnLCBbJyRldmVudCddKVxuICAgIF9vbktleURvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9tb2RlJCgpID09PSAndGFibGV0JyAmJiB0aGlzLl9vcmllbnRhdGlvbiQoKSA9PT0gJ3BvcnRyYWl0JyAmJiB0aGlzLl9zZWFyY2hGaWVsZCQoKSkge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoRmllbGRFeHBhbmRlZCQuc2V0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoRmllbGQkKCk/LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fc2VhcmNoRmllbGRPdXRzaWRlQ2xpY2tTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaEZpZWxkT3V0c2lkZUNsaWNrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBhbmQgdGhlIHNlYXJjaCBmaWVsZFxuICAgICAqKi9cbiAgICBleHBhbmRTZWFyY2hGaWVsZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoRmllbGRFeHBhbmRlZCQuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoRmllbGQkKCk/LmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVNZW51TGVmdEFycm93S2V5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fcnRsKCkpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUV4cGFuZC5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVDb2xsYXBzZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfaGFuZGxlTWVudVJpZ2h0QXJyb3dLZXkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9ydGwoKSkge1xuICAgICAgICAgICAgdGhpcy5tZW51Q29sbGFwc2UuZW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZW51RXhwYW5kLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVIaWRkZW5JdGVtc0NoYW5nZSgkZXZlbnQ6IE92ZXJmbG93SXRlbVJlZjxUb29sSGVhZGVyQWN0aW9uRGlyZWN0aXZlPltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9oaWRkZW5BY3Rpb25zJC5uZXh0KFxuICAgICAgICAgICAgICAgICRldmVudC5yZWR1Y2UoKGFjYzogT3ZlcmZsb3dJdGVtUmVmPFRvb2xIZWFkZXJBY3Rpb25EaXJlY3RpdmU+W10sIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpLml0ZW0uaXNTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjYy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwT2ZJdGVtc0FuZEluamVjdG9ycy5kZWxldGUoaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCBbXSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9pbmRpcmVjdEZvY3VzYWJsZUl0ZW1JbmplY3RvcihcbiAgICAgICAgcGFyZW50OiBJbmplY3RvcixcbiAgICAgICAgaXRlbTogT3ZlcmZsb3dJdGVtUmVmPFRvb2xIZWFkZXJBY3Rpb25EaXJlY3RpdmU+XG4gICAgKTogSW5qZWN0b3Ige1xuICAgICAgICBsZXQgaW5qZWN0b3IgPSB0aGlzLl9tYXBPZkl0ZW1zQW5kSW5qZWN0b3JzLmdldChpdGVtKTtcbiAgICAgICAgaWYgKCFpbmplY3Rvcikge1xuICAgICAgICAgICAgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogRkRLX0lORElSRUNUX0ZPQ1VTQUJMRV9JVEVNX09SREVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGl0ZW0uZ2xvYmFsSW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fbWFwT2ZJdGVtc0FuZEluamVjdG9ycy5zZXQoaXRlbSwgaW5qZWN0b3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbmplY3RvcjtcbiAgICB9XG59XG4iLCI8ZGl2IGZkYlRvb2xIZWFkZXJHcm91cCBbY2xhc3MuZmQtdG9vbC1oZWFkZXItLW1lbnVdPVwic2hvd01lbnVCdXR0b25cIj5cbiAgICBAaWYgKGZkYlRvb2xIZWFkZXJTdGF0ZSgpLmJhY2tCdXR0b25WaXNpYmxlKSB7XG4gICAgICAgIDxkaXYgZmRiVG9vbEhlYWRlckVsZW1lbnQ+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRiVG9vbEhlYWRlckJ1dHRvblxuICAgICAgICAgICAgICAgIGdseXBoPVwic2xpbS1hcnJvdy1sZWZ0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3NlYXJjaEZpZWxkRXhwYW5kZWQkLnNldChmYWxzZSlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5tZW51QnV0dG9uVmlzaWJsZSAmJiBzaG93TWVudUJ1dHRvbikge1xuICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkYlRvb2xIZWFkZXJCdXR0b25cbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ2J0cFRvb2xIZWFkZXIubWVudUJ1dHRvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInYnRwVG9vbEhlYWRlci5tZW51QnV0dG9uQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBnbHlwaD1cIm1lbnUyXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd0xlZnQpPVwiX2hhbmRsZU1lbnVMZWZ0QXJyb3dLZXkoKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uYXJyb3dSaWdodCk9XCJfaGFuZGxlTWVudVJpZ2h0QXJyb3dLZXkoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnVDbGljay5lbWl0KClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5sb2dvVmlzaWJsZSkge1xuICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50PlxuICAgICAgICAgICAgQGlmIChfdG9vbEhlYWRlckxvZ29EaXJlY3RpdmUpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmRiVG9vbEhlYWRlckxvZ29dXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBmZGJUb29sSGVhZGVyTG9nb1xuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9nb0NsaWNrLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vdW5wa2cuY29tL2Z1bmRhbWVudGFsLXN0eWxlcy9kaXN0L2ltYWdlcy9zYXAtbG9nby5wbmdcIlxuICAgICAgICAgICAgICAgICAgICBzcmNzZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vdW5wa2cuY29tL2Z1bmRhbWVudGFsLXN0eWxlcy9kaXN0L2ltYWdlcy9zYXAtbG9nbyYjNjQ7MngucG5nIDF4LFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly91bnBrZy5jb20vZnVuZGFtZW50YWwtc3R5bGVzL2Rpc3QvaW1hZ2VzL3NhcC1sb2dvJiM2NDszeC5wbmcgMngsXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwczovL3VucGtnLmNvbS9mdW5kYW1lbnRhbC1zdHlsZXMvZGlzdC9pbWFnZXMvc2FwLWxvZ28mIzY0OzR4LnBuZyAzeFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJTQVAgbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTQVAgbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiU0FQIGxvZ29cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGZkYlRvb2xIZWFkZXJTdGF0ZSgpLnByb2R1Y3ROYW1lVmlzaWJsZSkge1xuICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50PlxuICAgICAgICAgICAgPGgxIGNsYXNzPVwiZmQtdG9vbC1oZWFkZXJfX3Byb2R1Y3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgIHt7IHByb2R1Y3ROYW1lIH19XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5zZWNvbmRUaXRsZVZpc2libGUgJiYgc2Vjb25kVGl0bGUpIHtcbiAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC10b29sLWhlYWRlcl9fc2Vjb25kLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3sgc2Vjb25kVGl0bGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cbkBpZiAoZmRiVG9vbEhlYWRlclN0YXRlKCkuc2VhcmNoRmllbGRWaXNpYmxlKSB7XG4gICAgPGRpdiBmZGJUb29sSGVhZGVyR3JvdXAgY2VudGVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZGItc2VhcmNoLWZpZWxkXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxufVxuPGZkLW92ZXJmbG93LWxheW91dFxuICAgIGZkYlRvb2xIZWFkZXJHcm91cFxuICAgIGFjdGlvbnNcbiAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cIidlbmQnXCJcbiAgICAoaGlkZGVuSXRlbXNDaGFuZ2UpPVwiX2hhbmRsZUhpZGRlbkl0ZW1zQ2hhbmdlKCRldmVudClcIlxuICAgIFtyZW5kZXJTaG93TW9yZUJ1dHRvbl09XCJmYWxzZVwiXG4+XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5zZWFyY2hGaWVsZFRvZ2dsZUFjdGlvblZpc2libGUpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIGZkT3ZlcmZsb3dJdGVtUmVmPlxuICAgICAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudCBmZE92ZXJmbG93TGF5b3V0SXRlbSBbZm9yY2VWaXNpYmlsaXR5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZGJUb29sSGVhZGVyQWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZXhwYW5kU2VhcmNoRmllbGQoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoZmRiVG9vbEhlYWRlclN0YXRlKCkucHJvdmlkZWRBY3Rpb25zVmlzaWJsZSkge1xuICAgICAgICBAZm9yIChhY3Rpb24gb2YgX2NvbnRlbnRBY3Rpb25zOyB0cmFjayBhY3Rpb24pIHtcbiAgICAgICAgICAgIEBpZiAoYWN0aW9uLmlzU2VwYXJhdG9yID8gZmRiVG9vbEhlYWRlclN0YXRlKCkuc2VwYXJhdG9yc0JldHdlZW5BY3Rpb25zVmlzaWJsZSA6IHRydWUpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2ZkT3ZlcmZsb3dJdGVtUmVmXT1cImFjdGlvblwiIGxldC1oaWRkZW4gbGV0LWluamVjdG9yPVwiaW5qZWN0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChoaWRkZW4gPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50IGZkT3ZlcmZsb3dMYXlvdXRJdGVtIFtmb3JjZVZpc2liaWxpdHldPVwiISFhY3Rpb24uZm9yY2VWaXNpYmlsaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGlvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGlvbi50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaGlkZGVuOiBoaWRkZW4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcl09XCJpbmplY3RvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYWN0aW9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3Rpb24udGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGhpZGRlbjogaGlkZGVuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3JdPVwiaW5qZWN0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIDwhLS0gQ3VzdG9tIG92ZXJmbG93IGJ1dHRvbiB1c2VkIGFzIG92ZXJmbG93IGl0ZW0gU1RBUlQgLS0+XG4gICAgQGlmIChfZGVsYXllZEhpZGRlbkFjdGlvbnMkIHwgYXN5bmM7IGFzIGhpZGRlbkFjdGlvbnMpIHtcbiAgICAgICAgQGlmIChoaWRkZW5BY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZE92ZXJmbG93SXRlbVJlZj5cbiAgICAgICAgICAgICAgICA8ZmRiLW5hdmlnYXRpb24tbWVudS1wb3BvdmVyIGZkYlRvb2xIZWFkZXJFbGVtZW50IGZkT3ZlcmZsb3dMYXlvdXRJdGVtIFtmb3JjZVZpc2liaWxpdHldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAqZmRiTmF2aWdhdGlvbk1lbnVQb3BvdmVyQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZGJUb29sSGVhZGVyQWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cIm92ZXJmbG93XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZmRiLW5hdmlnYXRpb24tbWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC10b29sLWhlYWRlcl9fbmF2aWdhdGlvbi1tZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZka0luZGlyZWN0Rm9jdXNhYmxlTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgI2luZGlyZWN0Rm9jdXNhYmxlTGlzdD1cImZka0luZGlyZWN0Rm9jdXNhYmxlTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaGlkZGVuQWN0aW9uczsgdHJhY2sgaXRlbS5nbG9iYWxJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpdGVtLmluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsSW5kZXg6IGl0ZW0uZ2xvYmFsSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdDogaXRlbS5maXJzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Q6IGl0ZW0ubGFzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdG9yOiBfaW5kaXJlY3RGb2N1c2FibGVJdGVtSW5qZWN0b3IoaW5kaXJlY3RGb2N1c2FibGVMaXN0LmluamVjdG9yLCBpdGVtKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9mZGItbmF2aWdhdGlvbi1tZW51PlxuICAgICAgICAgICAgICAgIDwvZmRiLW5hdmlnYXRpb24tbWVudS1wb3BvdmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfVxuICAgIH1cbiAgICA8IS0tIEN1c3RvbSBvdmVyZmxvdyBidXR0b24gdXNlZCBhcyBvdmVyZmxvdyBpdGVtIEVORCAtLT5cbiAgICBAaWYgKGZkYlRvb2xIZWFkZXJTdGF0ZSgpLnVzZXJBdmF0YXJWaXNpYmxlICYmIF90b29sSGVhZGVyVXNlcikge1xuICAgICAgICBAaWYgKGZkYlRvb2xIZWFkZXJTdGF0ZSgpLnNlcGFyYXRvcnNCZXR3ZWVuQWN0aW9uc1Zpc2libGUpIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZE92ZXJmbG93SXRlbVJlZj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50IGZkT3ZlcmZsb3dMYXlvdXRJdGVtIFtmb3JjZVZpc2liaWxpdHldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtdG9vbC1oZWFkZXJfX3NlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfVxuICAgICAgICA8bmctdGVtcGxhdGUgZmRPdmVyZmxvd0l0ZW1SZWY+XG4gICAgICAgICAgICA8ZGl2IGZkYlRvb2xIZWFkZXJFbGVtZW50IGZkT3ZlcmZsb3dMYXlvdXRJdGVtIFtmb3JjZVZpc2liaWxpdHldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZGJUb29sSGVhZGVyVXNlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5wcm9kdWN0U3dpdGNoVmlzaWJsZSAmJiBfdG9vbEhlYWRlclByb2R1Y3RTd2l0Y2gpIHtcbiAgICAgICAgQGlmIChmZGJUb29sSGVhZGVyU3RhdGUoKS5zZXBhcmF0b3JzQmV0d2VlbkFjdGlvbnNWaXNpYmxlKSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRPdmVyZmxvd0l0ZW1SZWY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudCBmZE92ZXJmbG93TGF5b3V0SXRlbSBbZm9yY2VWaXNpYmlsaXR5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLXRvb2wtaGVhZGVyX19zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cbiAgICAgICAgPG5nLXRlbXBsYXRlIGZkT3ZlcmZsb3dJdGVtUmVmPlxuICAgICAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudCBmZE92ZXJmbG93TGF5b3V0SXRlbSBbZm9yY2VWaXNpYmlsaXR5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZGItdG9vbC1oZWFkZXItcHJvZHVjdC1zd2l0Y2gsIGZkLXByb2R1Y3Qtc3dpdGNoXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoZmRiVG9vbEhlYWRlclN0YXRlKCkudm9pY2VJbnB1dFZpc2libGUpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIGZkT3ZlcmZsb3dJdGVtUmVmPlxuICAgICAgICAgICAgPGRpdiBmZGJUb29sSGVhZGVyRWxlbWVudCBmZE92ZXJmbG93TGF5b3V0SXRlbSBbZm9yY2VWaXNpYmlsaXR5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZGJUb29sSGVhZGVyQWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwibWljcm9waG9uZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ1NlYXJjaCB3aXRoIHZvaWNlJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtaWNyb3Bob25lQ2xpY2suZW1pdCgpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9XG48L2ZkLW92ZXJmbG93LWxheW91dD5cbiJdfQ==
@@ -496,7 +496,7 @@ class ToolHeaderComponent extends ToolHeaderComponentClass {
496
496
  provide: ToolHeaderComponentClass,
497
497
  useExisting: ToolHeaderComponent
498
498
  }
499
- ], queries: [{ propertyName: "_toolHeaderLogoDirective", first: true, predicate: ToolHeaderLogoDirective, descendants: true }, { propertyName: "_searchField", first: true, predicate: SearchFieldComponent, descendants: true }, { propertyName: "_toolHeaderUser", first: true, predicate: ToolHeaderUserDirective, descendants: true }, { propertyName: "_toolHeaderProductSwitch", first: true, predicate: FD_PRODUCT_SWITCH_COMPONENT, descendants: true }, { propertyName: "_contentActions", predicate: ToolHeaderActionClass }], usesInheritance: true, ngImport: i0, template: "<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n [ariaLabel]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_delayedHiddenActions$ | async; as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n", styles: [".fd-tool-header{--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Cozy);--fdToolHeader_Padding_Left:1.5rem;--fdToolHeader_Padding_Right:1.25rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--sapShellColor);border:.0625rem solid var(--fdToolHeader_Border_Color);border-radius:var(--sapToolHeader_Border_Radius);-webkit-box-shadow:var(--sapToolHeader_Shadow1);box-shadow:var(--sapToolHeader_Shadow1);-ms-flex-direction:row;flex-direction:row;gap:.75rem;height:auto;min-height:var(--fdToolHeader_Min_Height);padding-block:var(--sapToolHeader_Paddings_Y);padding-inline:var(--fdToolHeader_Padding_Left) var(--fdToolHeader_Padding_Right);width:100%}.fd-tool-header:after,.fd-tool-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.375rem;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-tool-header__group:after,.fd-tool-header__group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group--center,.fd-tool-header__group--menu{-webkit-box-flex:0;-ms-flex:0;flex:0}.fd-tool-header__group--actions{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-tool-header__group--hidden{display:none}.fd-tool-header__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-tool-header__element:after,.fd-tool-header__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__element--hidden{display:none}.fd-tool-header__logo{background-repeat:no-repeat;background-size:contain;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.625rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:auto}.fd-tool-header__logo:after,.fd-tool-header__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__logo.is-focus,.fd-tool-header__logo:focus{border-radius:.25rem;outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:.125rem;z-index:5}.fd-tool-header__separator{background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding-block:0;padding-inline:0;width:.75rem}.fd-tool-header__separator:after,.fd-tool-header__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__product-name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Product_Name_Color);font-family:var(--sapFontFamily);font-family:var(--sapFontBlackFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Product_Name_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.625rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__product-name:after,.fd-tool-header__product-name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__second-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Second_Title_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Second_Title_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:var(--sapContent_LineHeight);margin-block:0;margin-inline:0;margin-top:var(--sapToolHeader_Second_Title_Offset);padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__second-title:after,.fd-tool-header__second-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header--menu{--fdToolHeader_Padding_Left:.75rem}.fd-tool-header[class*=-compact],[class*=-compact] .fd-tool-header:not([class*=-cozy]){--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Compact)}.fd-overflow-layout__items>.fd-overflow-layout__item:not(.fd-overflow-layout__item--last)>.fd-tool-header__element>*{margin-right:.375rem}.fd-tool-header__group--center+.fd-tool-header__group--actions{max-width:calc((100% - 16rem)/2)}.fd-tool-header__element.is-separator+.fd-tool-header__element.is-separator{display:none}.fd-tool-header__navigation-menu{display:flex;flex-direction:column;overflow:visible}.fd-tool-header .fd-button .fd-button__text{display:none}\n/*!\n * Fundamental Library Styles v0.38.0\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "directive", type: ToolHeaderGroupDirective, selector: "[fdbToolHeaderGroup]", inputs: ["center", "actions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ToolHeaderElementDirective, selector: "[fdbToolHeaderElement]" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ToolHeaderButtonDirective, selector: "[fd-button][fdbToolHeaderButton]", inputs: ["fdType"] }, { kind: "directive", type: ToolHeaderLogoDirective, selector: "[fdbToolHeaderLogo]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "component", type: NavigationMenuComponent, selector: "fdb-navigation-menu, ul[fdb-navigation-menu]" }, { kind: "directive", type: IndirectFocusableListDirective, selector: "[fdkIndirectFocusableList]", exportAs: ["fdkIndirectFocusableList"] }, { kind: "component", type: NavigationMenuPopoverComponent, selector: "fdb-navigation-menu-popover" }, { kind: "directive", type: NavigationMenuPopoverControlDirective, selector: "[fdbNavigationMenuPopoverControl]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "renderShowMoreButton", "reverseHiddenItems", "enableKeyboardNavigation", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount", "hiddenItemsChange"] }, { kind: "directive", type: OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "directive", type: OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: ToolHeaderActionButtonDirective, selector: "[fd-button][fdbToolHeaderActionButton]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
499
+ ], queries: [{ propertyName: "_toolHeaderLogoDirective", first: true, predicate: ToolHeaderLogoDirective, descendants: true }, { propertyName: "_searchField", first: true, predicate: SearchFieldComponent, descendants: true }, { propertyName: "_toolHeaderUser", first: true, predicate: ToolHeaderUserDirective, descendants: true }, { propertyName: "_toolHeaderProductSwitch", first: true, predicate: FD_PRODUCT_SWITCH_COMPONENT, descendants: true }, { propertyName: "_contentActions", predicate: ToolHeaderActionClass }], usesInheritance: true, ngImport: i0, template: "<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n [ariaLabel]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_delayedHiddenActions$ | async; as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n", styles: [".fd-tool-header{--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Cozy);--fdToolHeader_Padding_Left:1.5rem;--fdToolHeader_Padding_Right:1.25rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--sapShellColor);border:.0625rem solid var(--fdToolHeader_Border_Color);border-radius:var(--sapToolHeader_Border_Radius);-webkit-box-shadow:var(--sapToolHeader_Shadow1);box-shadow:var(--sapToolHeader_Shadow1);-ms-flex-direction:row;flex-direction:row;gap:.75rem;height:auto;min-height:var(--fdToolHeader_Min_Height);padding-block:var(--sapToolHeader_Paddings_Y);padding-inline:var(--fdToolHeader_Padding_Left) var(--fdToolHeader_Padding_Right);width:100%}.fd-tool-header:after,.fd-tool-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.375rem;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-tool-header__group:after,.fd-tool-header__group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__group--center,.fd-tool-header__group--menu{-webkit-box-flex:0;-ms-flex:0;flex:0}.fd-tool-header__group--actions{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-tool-header__group--hidden{display:none}.fd-tool-header__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-tool-header__element:after,.fd-tool-header__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__element--hidden{display:none}.fd-tool-header__logo{background-repeat:no-repeat;background-size:contain;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1.625rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;width:auto}.fd-tool-header__logo:after,.fd-tool-header__logo:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__logo.is-focus,.fd-tool-header__logo:focus{border-radius:.25rem;outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:.125rem;z-index:5}.fd-tool-header__separator{background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding-block:0;padding-inline:0;width:.75rem}.fd-tool-header__separator:after,.fd-tool-header__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__product-name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Product_Name_Color);font-family:var(--sapFontFamily);font-family:var(--sapFontBlackFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Product_Name_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.625rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__product-name:after,.fd-tool-header__product-name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header__second-title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapToolHeader_Second_Title_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapToolHeader_Second_Title_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:var(--sapContent_LineHeight);margin-block:0;margin-inline:0;margin-top:var(--sapToolHeader_Second_Title_Offset);padding-block:0;padding-inline:0;vertical-align:baseline}.fd-tool-header__second-title:after,.fd-tool-header__second-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-tool-header--menu{--fdToolHeader_Padding_Left:.75rem}.fd-tool-header[class*=-compact],[class*=-compact] .fd-tool-header:not([class*=-cozy]){--fdToolHeader_Min_Height:var(--sapToolHeader_Min_Height_Compact)}.fd-overflow-layout__items>.fd-overflow-layout__item:not(.fd-overflow-layout__item--last)>.fd-tool-header__element>*{margin-right:.375rem}.fd-tool-header__group--center+.fd-tool-header__group--actions{max-width:calc((100% - 16rem)/2)}.fd-tool-header__element.is-separator+.fd-tool-header__element.is-separator{display:none}.fd-tool-header__navigation-menu{display:flex;flex-direction:column;overflow:visible}.fd-tool-header .fd-button .fd-button__text{display:none}\n/*!\n * Fundamental Library Styles v0.38.0\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "directive", type: ToolHeaderGroupDirective, selector: "[fdbToolHeaderGroup]", inputs: ["center", "actions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ToolHeaderElementDirective, selector: "[fdbToolHeaderElement]" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ToolHeaderButtonDirective, selector: "[fd-button][fdbToolHeaderButton]", inputs: ["fdType"] }, { kind: "directive", type: ToolHeaderLogoDirective, selector: "[fdbToolHeaderLogo]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "component", type: NavigationMenuComponent, selector: "fdb-navigation-menu, ul[fdb-navigation-menu]" }, { kind: "directive", type: IndirectFocusableListDirective, selector: "[fdkIndirectFocusableList]", exportAs: ["fdkIndirectFocusableList"] }, { kind: "component", type: NavigationMenuPopoverComponent, selector: "fdb-navigation-menu-popover" }, { kind: "directive", type: NavigationMenuPopoverControlDirective, selector: "[fdbNavigationMenuPopoverControl]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "renderShowMoreButton", "reverseHiddenItems", "enableKeyboardNavigation", "ariaRole", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount", "hiddenItemsChange"] }, { kind: "directive", type: OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "directive", type: OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: ToolHeaderActionButtonDirective, selector: "[fd-button][fdbToolHeaderActionButton]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
500
500
  }
501
501
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToolHeaderComponent, decorators: [{
502
502
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-btp-tool-header.mjs","sources":["../../../../libs/btp/tool-header/src/tool-header-action.class.ts","../../../../libs/btp/tool-header/src/components/tool-header-action-separator.component.ts","../../../../libs/btp/tool-header/src/components/tool-header-product-switch.component.ts","../../../../libs/btp/tool-header/src/directives/tool-header-action-button.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-element.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-group.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-logo.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-user.directive.ts","../../../../libs/btp/tool-header/src/tool-header-component.class.ts","../../../../libs/btp/tool-header/src/components/tool-header/tool-header.component.ts","../../../../libs/btp/tool-header/src/components/tool-header/tool-header.component.html","../../../../libs/btp/tool-header/src/directives/tool-header-action.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-auto-mode.directive.ts","../../../../libs/btp/tool-header/src/fundamental-ngx-btp-tool-header.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, booleanAttribute } from '@angular/core';\n\n@Directive()\nexport class ToolHeaderActionClass<ActionTemplateContext = any> {\n /** Whether the element is forced to be visible. */\n @Input({ transform: booleanAttribute })\n forceVisibility: boolean;\n\n /** Template of the action section */\n templateRef: TemplateRef<ActionTemplateContext>;\n\n /** @hidden */\n readonly isSeparator: boolean;\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { ToolHeaderActionClass } from '../tool-header-action.class';\n\n@Component({\n selector: 'fdb-tool-header-action-separator',\n template: `\n <ng-template>\n <div class=\"fd-tool-header__separator\"></div>\n </ng-template>\n `,\n providers: [\n {\n provide: ToolHeaderActionClass,\n useExisting: ToolHeaderActionSeparatorComponent\n }\n ],\n standalone: true\n})\nexport class ToolHeaderActionSeparatorComponent extends ToolHeaderActionClass {\n /** @hidden */\n @ViewChild(TemplateRef)\n templateRef: TemplateRef<void>;\n\n /** @hidden */\n readonly isSeparator = true;\n}\n","import { Component, Input } from '@angular/core';\nimport { ToolHeaderButtonDirective } from '@fundamental-ngx/btp/button';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n BasePopoverClass,\n PopoverBodyComponent,\n PopoverComponent,\n PopoverControlComponent\n} from '@fundamental-ngx/core/popover';\nimport {\n FD_PRODUCT_SWITCH_COMPONENT,\n ProductSwitchButtonDirective,\n ProductSwitchComponent\n} from '@fundamental-ngx/core/product-switch';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n@Component({\n selector: 'fdb-tool-header-product-switch',\n imports: [\n ButtonComponent,\n FdTranslatePipe,\n PopoverBodyComponent,\n PopoverComponent,\n PopoverControlComponent,\n ProductSwitchComponent,\n ProductSwitchButtonDirective,\n ToolHeaderButtonDirective\n ],\n template: `\n <fd-product-switch\n [placement]=\"placement\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"isOpenChange.emit($event)\"\n [disabled]=\"disabled\"\n [triggers]=\"triggers\"\n [focusTrapped]=\"false\"\n [focusAutoCapture]=\"true\"\n [noArrow]=\"noArrow\"\n [disableScrollbar]=\"true\"\n >\n <button\n *fdProductSwitchButton\n fd-button\n fdbToolHeaderButton\n [attr.aria-label]=\"'coreProductSwitch.ariaLabel' | fdTranslate\"\n [attr.title]=\"'coreProductSwitch.ariaLabel' | fdTranslate\"\n glyph=\"grid\"\n ></button>\n <ng-content></ng-content>\n </fd-product-switch>\n `,\n providers: [\n {\n provide: FD_PRODUCT_SWITCH_COMPONENT,\n useExisting: ToolHeaderProductSwitchComponent\n }\n ],\n standalone: true\n})\nexport class ToolHeaderProductSwitchComponent extends BasePopoverClass {\n /** Placement of a popover. */\n @Input()\n override placement: Placement = 'bottom-end';\n\n /** Whether the product switch is disabled. */\n @Input()\n override disabled = false;\n}\n","import { Directive } from '@angular/core';\nimport { ToolHeaderButtonDirective } from '@fundamental-ngx/btp/button';\nimport { FocusableItemDirective, IndirectFocusableItemDirective } from '@fundamental-ngx/cdk/utils';\n\n@Directive({\n selector: '[fd-button][fdbToolHeaderActionButton]',\n standalone: true,\n hostDirectives: [\n { directive: ToolHeaderButtonDirective, inputs: ['fdType'] },\n IndirectFocusableItemDirective,\n FocusableItemDirective\n ],\n host: {\n '[class.fd-tool-header__action-button]': 'true'\n }\n})\nexport class ToolHeaderActionButtonDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdbToolHeaderElement]',\n host: {\n class: 'fd-tool-header__element'\n },\n standalone: true\n})\nexport class ToolHeaderElementDirective {}\n","import { Directive, ElementRef, Input, booleanAttribute, inject } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\n@Directive({\n selector: '[fdbToolHeaderGroup]',\n host: {\n class: 'fd-tool-header__group',\n '[class.fd-tool-header__group--center]': 'center',\n '[class.fd-tool-header__group--actions]': 'actions'\n },\n standalone: true\n})\nexport class ToolHeaderGroupDirective implements HasElementRef {\n /** @hidden */\n @Input({ transform: booleanAttribute })\n center = false;\n\n /** @hidden */\n @Input({ transform: booleanAttribute })\n actions = false;\n\n /** @hidden */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdbToolHeaderLogo]',\n host: {\n '[attr.role]': '\"button\"',\n '[attr.tabindex]': '0',\n class: 'fd-tool-header__logo'\n },\n standalone: true\n})\nexport class ToolHeaderLogoDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdbToolHeaderUser]',\n standalone: true\n})\nexport class ToolHeaderUserDirective {}\n","import { computed, inject, Signal, signal } from '@angular/core';\nimport { SearchFieldComponent } from '@fundamental-ngx/btp/search-field';\nimport { FdbViewMode } from '@fundamental-ngx/btp/shared';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport { FdbToolHeaderState } from './tool-header-state.type';\n\nexport abstract class ToolHeaderComponentClass {\n /** @hidden */\n mode$: Signal<FdbViewMode>;\n\n /** @hidden */\n orientation$: Signal<'landscape' | 'portrait'>;\n\n /** @hidden */\n searchField$: Signal<SearchFieldComponent | null>;\n\n /** @hidden */\n searchFieldExpanded$: Signal<boolean>;\n\n /** Mode signal */\n protected _mode$ = signal<FdbViewMode>('');\n\n /** @hidden */\n protected _orientation$ = signal<'landscape' | 'portrait'>('landscape');\n\n /** @hidden */\n protected fdbToolHeaderState = computed<FdbToolHeaderState>(() => {\n if (this._mode$() === 'phone') {\n return {\n backButtonVisible: this._searchFieldExpanded$(),\n menuButtonVisible: !this._searchFieldExpanded$(),\n logoVisible: !this._searchFieldExpanded$(),\n productNameVisible: false,\n secondTitleVisible: false,\n searchFieldVisible: this._searchFieldExpanded$(),\n searchFieldToggleActionVisible: !!this._searchField$() && !this._searchFieldExpanded$(),\n providedActionsVisible: !this._searchFieldExpanded$(),\n userAvatarVisible: !this._searchFieldExpanded$(),\n productSwitchVisible: !this._searchFieldExpanded$(),\n voiceInputVisible: this._searchFieldExpanded$(),\n separatorsBetweenActionsVisible: false\n };\n }\n if (this._mode$() === 'tablet') {\n const isPortrait = this._orientation$() === 'portrait';\n const isLandscape = !isPortrait;\n const searchFieldVisible = this._searchFieldExpanded$() || isLandscape;\n const searchFieldToggleActionVisible = !searchFieldVisible && !!this._searchField$();\n\n return {\n backButtonVisible: false,\n menuButtonVisible: true,\n logoVisible: true,\n productNameVisible: isPortrait ? !this._searchFieldExpanded$() : true,\n secondTitleVisible: false,\n searchFieldVisible,\n searchFieldToggleActionVisible,\n providedActionsVisible: true,\n userAvatarVisible: true,\n productSwitchVisible: true,\n voiceInputVisible: false,\n separatorsBetweenActionsVisible: this._orientation$() === 'landscape'\n };\n }\n return {\n backButtonVisible: false,\n menuButtonVisible: true,\n logoVisible: true,\n productNameVisible: true,\n secondTitleVisible: true,\n searchFieldVisible: true,\n searchFieldToggleActionVisible: false,\n providedActionsVisible: true,\n userAvatarVisible: true,\n productSwitchVisible: true,\n voiceInputVisible: false,\n separatorsBetweenActionsVisible: true\n };\n });\n\n /** Search field signal */\n protected _searchField$ = signal<SearchFieldComponent | null>(null);\n\n /** @hidden */\n protected _searchFieldExpanded$ = signal<boolean>(false);\n\n /**\n * RTL signal\n * @hidden\n */\n protected _rtl = computed<boolean>(() => !!this._rtlService?.rtlSignal());\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n constructor() {\n this.mode$ = this._mode$.asReadonly();\n this.orientation$ = this._orientation$.asReadonly();\n this.searchField$ = this._searchField$.asReadonly();\n this.searchFieldExpanded$ = this._searchFieldExpanded$.asReadonly();\n }\n}\n","/* eslint-disable @angular-eslint/no-input-rename */\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n HostListener,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { ToolHeaderButtonDirective } from '@fundamental-ngx/btp/button';\nimport {\n NavigationMenuComponent,\n NavigationMenuItemComponent,\n NavigationMenuPopoverComponent,\n NavigationMenuPopoverControlDirective\n} from '@fundamental-ngx/btp/navigation-menu';\nimport { SearchFieldComponent } from '@fundamental-ngx/btp/search-field';\nimport { FdbViewMode } from '@fundamental-ngx/btp/shared';\nimport {\n FDK_INDIRECT_FOCUSABLE_ITEM_ORDER,\n FocusableItemDirective,\n FocusableListDirective,\n IndirectFocusableListDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuComponent,\n MenuInteractiveComponent,\n MenuItemComponent,\n MenuTitleDirective,\n MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport {\n OverflowItemRef,\n OverflowItemRefDirective,\n OverflowLayoutComponent,\n OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { PopoverBodyDirective, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { FD_PRODUCT_SWITCH_COMPONENT } from '@fundamental-ngx/core/product-switch';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { BehaviorSubject, Subscription, delayWhen, first } from 'rxjs';\nimport { ToolHeaderActionButtonDirective } from '../../directives/tool-header-action-button.directive';\nimport { ToolHeaderActionDirective } from '../../directives/tool-header-action.directive';\nimport { ToolHeaderElementDirective } from '../../directives/tool-header-element.directive';\nimport { ToolHeaderGroupDirective } from '../../directives/tool-header-group.directive';\nimport { ToolHeaderLogoDirective } from '../../directives/tool-header-logo.directive';\nimport { ToolHeaderUserDirective } from '../../directives/tool-header-user.directive';\nimport { ToolHeaderActionClass } from '../../tool-header-action.class';\nimport { ToolHeaderComponentClass } from '../../tool-header-component.class';\n\n@Component({\n selector: 'fdb-tool-header',\n templateUrl: './tool-header.component.html',\n styleUrls: ['./tool-header.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-tool-header',\n '[class.fd-tool-header--menu]': 'showMenuButton'\n },\n imports: [\n ToolHeaderGroupDirective,\n NgTemplateOutlet,\n PopoverComponent,\n PopoverControlComponent,\n MenuTriggerDirective,\n MenuComponent,\n MenuItemComponent,\n MenuInteractiveComponent,\n MenuTitleDirective,\n MenuAddonDirective,\n GlyphMenuAddonDirective,\n ToolHeaderElementDirective,\n IconComponent,\n ButtonComponent,\n ToolHeaderButtonDirective,\n ToolHeaderLogoDirective,\n FdTranslatePipe,\n NavigationMenuComponent,\n NavigationMenuItemComponent,\n FocusableListDirective,\n IndirectFocusableListDirective,\n FocusableItemDirective,\n NavigationMenuPopoverComponent,\n NavigationMenuPopoverControlDirective,\n AsyncPipe,\n OverflowLayoutComponent,\n OverflowLayoutItemDirective,\n OverflowItemRefDirective,\n PopoverBodyDirective,\n PortalModule,\n ToolHeaderActionButtonDirective\n ],\n providers: [\n contentDensityObserverProviders(),\n {\n provide: ToolHeaderComponentClass,\n useExisting: ToolHeaderComponent\n }\n ]\n})\nexport class ToolHeaderComponent extends ToolHeaderComponentClass implements OnDestroy {\n /**\n * (required) the Product Name is the official name of the tool.\n */\n @Input({ required: true }) productName!: string;\n /**\n * Second Title is an optional second text identifier of the tool.\n **/\n @Input() secondTitle?: string;\n /** Mode */\n @Input('mode')\n set _mode(mode: FdbViewMode) {\n if (mode !== this._mode$()) {\n this._mode$.set(mode);\n }\n }\n\n /** @hidden */\n @Input('orientation')\n set _orientation(orientation: 'landscape' | 'portrait') {\n if (orientation !== this._orientation$()) {\n this._orientation$.set(orientation);\n }\n }\n\n /**\n * Whether to show the menu button\n */\n @Input({ transform: booleanAttribute })\n showMenuButton = false;\n\n /**\n * Whether to show the voice input action button on\n * the right side of the tool header, when the mode is mobile\n * and the search input is expanded\n */\n @Input({ transform: booleanAttribute })\n showVoiceInputAction = true;\n\n /**\n * Event emitted when the menu button is clicked\n **/\n @Output()\n menuClick = new EventEmitter<void>();\n\n /**\n * Event emitted when user intends to expand the menu.\n * Happens when user clicks `right arrow` key on the menu button\n * if on ltr or `left arrow` key if on rtl.\n **/\n @Output()\n menuExpand = new EventEmitter<void>();\n\n /**\n * Event emitted when user intends to collapse the menu.\n * Happens when user clicks `left arrow` key on the menu button\n * if on ltr or `right arrow` key if on rtl.\n **/\n @Output()\n menuCollapse = new EventEmitter<void>();\n\n /**\n * Event emitted when the microphone button is clicked\n **/\n @Output()\n microphoneClick = new EventEmitter<void>();\n\n /**\n * Event emitted when the default logo is clicked\n */\n @Output()\n logoClick = new EventEmitter<void>();\n\n /** @hidden */\n @ContentChildren(ToolHeaderActionClass)\n _contentActions: QueryList<ToolHeaderActionClass>;\n\n /** @hidden */\n @ContentChild(ToolHeaderLogoDirective)\n _toolHeaderLogoDirective?: ToolHeaderLogoDirective;\n\n /** @hidden */\n @ContentChild(SearchFieldComponent)\n set _searchField(searchField: SearchFieldComponent) {\n this._searchField$.set(searchField);\n }\n\n /** @hidden */\n @ContentChild(ToolHeaderUserDirective)\n _toolHeaderUser?: ToolHeaderUserDirective;\n\n /** @hidden */\n @ContentChild(FD_PRODUCT_SWITCH_COMPONENT)\n _toolHeaderProductSwitch?: unknown;\n\n /** @hidden */\n protected _hiddenActions$ = new BehaviorSubject<OverflowItemRef<ToolHeaderActionDirective>[]>([]);\n\n /** @hidden */\n protected _delayedHiddenActions$ = this._hiddenActions$.pipe(delayWhen(() => this._ngZone.onStable));\n\n /** @hidden */\n private _searchFieldOutsideClickSubscription?: Subscription;\n\n /** @hidden */\n private _ngZone = inject(NgZone);\n\n /** @hidden */\n private _mapOfItemsAndInjectors = new WeakMap<OverflowItemRef<ToolHeaderActionDirective>, Injector>();\n\n /**\n * The handler, responsible for closing the search field\n * on outside click\n * @hidden\n **/\n @HostListener('document:click', ['$event'])\n _onClick(event: MouseEvent): void {\n if (this._searchFieldExpanded$()) {\n if (\n this._mode$() === 'tablet' &&\n this._orientation$() === 'portrait' &&\n this._searchField$() &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n !event.composedPath().includes(this._searchField$()!.elementRef.nativeElement)\n ) {\n this._searchFieldExpanded$.set(false);\n }\n }\n }\n\n /**\n * The handler, responsible for the focusing on the search field,\n * when the user presses `Ctrl + K` or `Cmd + K` keys\n * @hidden\n **/\n @HostListener('document:keydown.control.k', ['$event'])\n @HostListener('document:keydown.meta.k', ['$event'])\n _onKeyDown(): void {\n if (this._mode$() === 'tablet' && this._orientation$() === 'portrait' && this._searchField$()) {\n this._searchFieldExpanded$.set(true);\n this._searchField$()?.focus();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this._searchFieldOutsideClickSubscription) {\n this._searchFieldOutsideClickSubscription.unsubscribe();\n }\n }\n\n /**\n * Expand the search field\n **/\n expandSearchField(): void {\n this._searchFieldExpanded$.set(true);\n this._ngZone.onStable.pipe(first()).subscribe(() => {\n this._searchField$()?.focus();\n });\n }\n\n /** @hidden */\n protected _handleMenuLeftArrowKey(): void {\n if (this._rtl()) {\n this.menuExpand.emit();\n } else {\n this.menuCollapse.emit();\n }\n }\n\n /** @hidden */\n protected _handleMenuRightArrowKey(): void {\n if (this._rtl()) {\n this.menuCollapse.emit();\n } else {\n this.menuExpand.emit();\n }\n }\n\n /** @hidden */\n protected _handleHiddenItemsChange($event: OverflowItemRef<ToolHeaderActionDirective>[]): void {\n this._ngZone.runOutsideAngular(() => {\n this._hiddenActions$.next(\n $event.reduce((acc: OverflowItemRef<ToolHeaderActionDirective>[], i) => {\n if (!i.item.isSeparator) {\n acc.push(i);\n this._mapOfItemsAndInjectors.delete(i);\n }\n return acc;\n }, [])\n );\n });\n }\n\n /** @hidden */\n protected _indirectFocusableItemInjector(\n parent: Injector,\n item: OverflowItemRef<ToolHeaderActionDirective>\n ): Injector {\n let injector = this._mapOfItemsAndInjectors.get(item);\n if (!injector) {\n injector = Injector.create({\n parent,\n providers: [\n {\n provide: FDK_INDIRECT_FOCUSABLE_ITEM_ORDER,\n useValue: item.globalIndex\n }\n ]\n });\n this._mapOfItemsAndInjectors.set(item, injector);\n }\n return injector;\n }\n}\n","<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n [ariaLabel]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_delayedHiddenActions$ | async; as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n","import { ContentChild, Directive, inject, TemplateRef } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ToolHeaderActionClass } from '../tool-header-action.class';\n\nexport interface ToolHeaderActionContext {\n hidden: boolean;\n}\n\n@Directive({\n selector: '[fdbToolHeaderAction]',\n providers: [\n {\n provide: ToolHeaderActionClass,\n useExisting: ToolHeaderActionDirective\n }\n ],\n standalone: true\n})\nexport class ToolHeaderActionDirective extends ToolHeaderActionClass {\n /**\n * Button component which will be used for the action\n **/\n @ContentChild(ButtonComponent, { descendants: true })\n button: ButtonComponent;\n\n /** @hidden */\n templateRef = inject<TemplateRef<ToolHeaderActionContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(dir: ToolHeaderActionDirective, ctx: unknown): ctx is ToolHeaderActionContext {\n return !(dir.isSeparator || dir.forceVisibility);\n }\n}\n","import { computed, Directive, ElementRef, EventEmitter, inject, Input, Output, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { FdbViewMode } from '@fundamental-ngx/btp/shared';\nimport { HasElementRef, ResizeObserverService, ResponsiveBreakpoints } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityDirective, ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\nimport { ToolHeaderComponent } from '../components/tool-header/tool-header.component';\n\ninterface FdbToolHeaderModeConfig {\n desktop: number;\n tabletLandscape: [number, number];\n tabletPortrait: [number, number];\n phone: number;\n}\n\nconst DEFAULT_CONFIG: FdbToolHeaderModeConfig = {\n desktop: ResponsiveBreakpoints.L + 1,\n tabletLandscape: [ResponsiveBreakpoints.M + 1, ResponsiveBreakpoints.L],\n tabletPortrait: [ResponsiveBreakpoints.S + 1, ResponsiveBreakpoints.M],\n phone: ResponsiveBreakpoints.S\n};\n\n@Directive({\n selector: 'fdb-tool-header[fdbToolHeaderAutoMode]',\n exportAs: 'fdbToolHeaderAutoMode',\n hostDirectives: [ContentDensityDirective],\n standalone: true\n})\nexport class ToolHeaderAutoModeDirective implements HasElementRef {\n /**\n * What sizes should be used to determine mode.\n * Sizes mean the width of the tool header, not the whole screen.\n **/\n @Input() set config(config: Partial<FdbToolHeaderModeConfig>) {\n this._config.set({ ...DEFAULT_CONFIG, ...config });\n }\n\n /**\n * Current mode of the ToolHeaderComponent\n */\n @Output()\n modeChange = new EventEmitter<FdbViewMode>();\n\n /**\n * Current orientation of the ToolHeaderComponent\n */\n @Output()\n orientationChange = new EventEmitter<'landscape' | 'portrait'>();\n\n /**\n * Current content density of the ToolHeaderComponent\n */\n @Output()\n contentDensityChange = new EventEmitter<ContentDensityMode>();\n\n /**\n * Reference to the element on which the directive is applied.\n */\n readonly elementRef: ElementRef = inject(ElementRef);\n\n /**\n * Current configuration of the directive.\n */\n protected _config = signal(DEFAULT_CONFIG);\n\n /** @hidden */\n protected _contentDensity = inject(ContentDensityDirective);\n\n /**\n * Signal of the Width of the element\n */\n protected _elementWidth = toSignal(\n inject(ResizeObserverService)\n .observe(this.elementRef.nativeElement)\n .pipe(\n map((entries) => entries[0].contentRect.width),\n startWith(this.elementRef.nativeElement.clientWidth)\n ),\n { requireSync: true }\n );\n /**\n * Reference to the ToolHeaderComponent\n */\n protected _toolHeaderComponent = inject(ToolHeaderComponent, { host: true });\n\n /**\n * Current mode of the ToolHeaderComponent\n */\n protected _currentMode = computed(() => this._getMode(this._elementWidth(), this._config()));\n\n /**\n * @hidden\n */\n constructor() {\n toObservable(this._currentMode)\n .pipe(\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n takeUntilDestroyed()\n )\n .subscribe((_mode) => {\n const [mode, orientation = 'landscape'] = _mode;\n this._toolHeaderComponent._mode = mode;\n this._toolHeaderComponent._orientation = orientation;\n const contentDensity = mode ? ContentDensityMode.COZY : ContentDensityMode.COMPACT;\n this._contentDensity.fdContentDensity = contentDensity;\n this.modeChange.emit(mode);\n this.orientationChange.emit(orientation);\n this.contentDensityChange.emit(contentDensity);\n });\n }\n\n /**\n * What mode should be used for the given width and configuration\n * @param width\n * @param config\n * @private\n */\n private _getMode(width: number, config: FdbToolHeaderModeConfig): [FdbViewMode, 'landscape' | 'portrait'] {\n if (width >= config.desktop) {\n return ['', 'landscape'];\n }\n if (width <= config.phone) {\n return ['phone', 'landscape'];\n }\n return [\n 'tablet',\n width >= config.tabletLandscape[0] && width <= config.tabletLandscape[1] ? 'landscape' : 'portrait'\n ];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-btp-tool-header.mjs","sources":["../../../../libs/btp/tool-header/src/tool-header-action.class.ts","../../../../libs/btp/tool-header/src/components/tool-header-action-separator.component.ts","../../../../libs/btp/tool-header/src/components/tool-header-product-switch.component.ts","../../../../libs/btp/tool-header/src/directives/tool-header-action-button.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-element.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-group.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-logo.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-user.directive.ts","../../../../libs/btp/tool-header/src/tool-header-component.class.ts","../../../../libs/btp/tool-header/src/components/tool-header/tool-header.component.ts","../../../../libs/btp/tool-header/src/components/tool-header/tool-header.component.html","../../../../libs/btp/tool-header/src/directives/tool-header-action.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-auto-mode.directive.ts","../../../../libs/btp/tool-header/src/fundamental-ngx-btp-tool-header.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, booleanAttribute } from '@angular/core';\n\n@Directive()\nexport class ToolHeaderActionClass<ActionTemplateContext = any> {\n /** Whether the element is forced to be visible. */\n @Input({ transform: booleanAttribute })\n forceVisibility: boolean;\n\n /** Template of the action section */\n templateRef: TemplateRef<ActionTemplateContext>;\n\n /** @hidden */\n readonly isSeparator: boolean;\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { ToolHeaderActionClass } from '../tool-header-action.class';\n\n@Component({\n selector: 'fdb-tool-header-action-separator',\n template: `\n <ng-template>\n <div class=\"fd-tool-header__separator\"></div>\n </ng-template>\n `,\n providers: [\n {\n provide: ToolHeaderActionClass,\n useExisting: ToolHeaderActionSeparatorComponent\n }\n ],\n standalone: true\n})\nexport class ToolHeaderActionSeparatorComponent extends ToolHeaderActionClass {\n /** @hidden */\n @ViewChild(TemplateRef)\n templateRef: TemplateRef<void>;\n\n /** @hidden */\n readonly isSeparator = true;\n}\n","import { Component, Input } from '@angular/core';\nimport { ToolHeaderButtonDirective } from '@fundamental-ngx/btp/button';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n BasePopoverClass,\n PopoverBodyComponent,\n PopoverComponent,\n PopoverControlComponent\n} from '@fundamental-ngx/core/popover';\nimport {\n FD_PRODUCT_SWITCH_COMPONENT,\n ProductSwitchButtonDirective,\n ProductSwitchComponent\n} from '@fundamental-ngx/core/product-switch';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n@Component({\n selector: 'fdb-tool-header-product-switch',\n imports: [\n ButtonComponent,\n FdTranslatePipe,\n PopoverBodyComponent,\n PopoverComponent,\n PopoverControlComponent,\n ProductSwitchComponent,\n ProductSwitchButtonDirective,\n ToolHeaderButtonDirective\n ],\n template: `\n <fd-product-switch\n [placement]=\"placement\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"isOpenChange.emit($event)\"\n [disabled]=\"disabled\"\n [triggers]=\"triggers\"\n [focusTrapped]=\"false\"\n [focusAutoCapture]=\"true\"\n [noArrow]=\"noArrow\"\n [disableScrollbar]=\"true\"\n >\n <button\n *fdProductSwitchButton\n fd-button\n fdbToolHeaderButton\n [attr.aria-label]=\"'coreProductSwitch.ariaLabel' | fdTranslate\"\n [attr.title]=\"'coreProductSwitch.ariaLabel' | fdTranslate\"\n glyph=\"grid\"\n ></button>\n <ng-content></ng-content>\n </fd-product-switch>\n `,\n providers: [\n {\n provide: FD_PRODUCT_SWITCH_COMPONENT,\n useExisting: ToolHeaderProductSwitchComponent\n }\n ],\n standalone: true\n})\nexport class ToolHeaderProductSwitchComponent extends BasePopoverClass {\n /** Placement of a popover. */\n @Input()\n override placement: Placement = 'bottom-end';\n\n /** Whether the product switch is disabled. */\n @Input()\n override disabled = false;\n}\n","import { Directive } from '@angular/core';\nimport { ToolHeaderButtonDirective } from '@fundamental-ngx/btp/button';\nimport { FocusableItemDirective, IndirectFocusableItemDirective } from '@fundamental-ngx/cdk/utils';\n\n@Directive({\n selector: '[fd-button][fdbToolHeaderActionButton]',\n standalone: true,\n hostDirectives: [\n { directive: ToolHeaderButtonDirective, inputs: ['fdType'] },\n IndirectFocusableItemDirective,\n FocusableItemDirective\n ],\n host: {\n '[class.fd-tool-header__action-button]': 'true'\n }\n})\nexport class ToolHeaderActionButtonDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdbToolHeaderElement]',\n host: {\n class: 'fd-tool-header__element'\n },\n standalone: true\n})\nexport class ToolHeaderElementDirective {}\n","import { Directive, ElementRef, Input, booleanAttribute, inject } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\n@Directive({\n selector: '[fdbToolHeaderGroup]',\n host: {\n class: 'fd-tool-header__group',\n '[class.fd-tool-header__group--center]': 'center',\n '[class.fd-tool-header__group--actions]': 'actions'\n },\n standalone: true\n})\nexport class ToolHeaderGroupDirective implements HasElementRef {\n /** @hidden */\n @Input({ transform: booleanAttribute })\n center = false;\n\n /** @hidden */\n @Input({ transform: booleanAttribute })\n actions = false;\n\n /** @hidden */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdbToolHeaderLogo]',\n host: {\n '[attr.role]': '\"button\"',\n '[attr.tabindex]': '0',\n class: 'fd-tool-header__logo'\n },\n standalone: true\n})\nexport class ToolHeaderLogoDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdbToolHeaderUser]',\n standalone: true\n})\nexport class ToolHeaderUserDirective {}\n","import { computed, inject, Signal, signal } from '@angular/core';\nimport { SearchFieldComponent } from '@fundamental-ngx/btp/search-field';\nimport { FdbViewMode } from '@fundamental-ngx/btp/shared';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport { FdbToolHeaderState } from './tool-header-state.type';\n\nexport abstract class ToolHeaderComponentClass {\n /** @hidden */\n mode$: Signal<FdbViewMode>;\n\n /** @hidden */\n orientation$: Signal<'landscape' | 'portrait'>;\n\n /** @hidden */\n searchField$: Signal<SearchFieldComponent | null>;\n\n /** @hidden */\n searchFieldExpanded$: Signal<boolean>;\n\n /** Mode signal */\n protected _mode$ = signal<FdbViewMode>('');\n\n /** @hidden */\n protected _orientation$ = signal<'landscape' | 'portrait'>('landscape');\n\n /** @hidden */\n protected fdbToolHeaderState = computed<FdbToolHeaderState>(() => {\n if (this._mode$() === 'phone') {\n return {\n backButtonVisible: this._searchFieldExpanded$(),\n menuButtonVisible: !this._searchFieldExpanded$(),\n logoVisible: !this._searchFieldExpanded$(),\n productNameVisible: false,\n secondTitleVisible: false,\n searchFieldVisible: this._searchFieldExpanded$(),\n searchFieldToggleActionVisible: !!this._searchField$() && !this._searchFieldExpanded$(),\n providedActionsVisible: !this._searchFieldExpanded$(),\n userAvatarVisible: !this._searchFieldExpanded$(),\n productSwitchVisible: !this._searchFieldExpanded$(),\n voiceInputVisible: this._searchFieldExpanded$(),\n separatorsBetweenActionsVisible: false\n };\n }\n if (this._mode$() === 'tablet') {\n const isPortrait = this._orientation$() === 'portrait';\n const isLandscape = !isPortrait;\n const searchFieldVisible = this._searchFieldExpanded$() || isLandscape;\n const searchFieldToggleActionVisible = !searchFieldVisible && !!this._searchField$();\n\n return {\n backButtonVisible: false,\n menuButtonVisible: true,\n logoVisible: true,\n productNameVisible: isPortrait ? !this._searchFieldExpanded$() : true,\n secondTitleVisible: false,\n searchFieldVisible,\n searchFieldToggleActionVisible,\n providedActionsVisible: true,\n userAvatarVisible: true,\n productSwitchVisible: true,\n voiceInputVisible: false,\n separatorsBetweenActionsVisible: this._orientation$() === 'landscape'\n };\n }\n return {\n backButtonVisible: false,\n menuButtonVisible: true,\n logoVisible: true,\n productNameVisible: true,\n secondTitleVisible: true,\n searchFieldVisible: true,\n searchFieldToggleActionVisible: false,\n providedActionsVisible: true,\n userAvatarVisible: true,\n productSwitchVisible: true,\n voiceInputVisible: false,\n separatorsBetweenActionsVisible: true\n };\n });\n\n /** Search field signal */\n protected _searchField$ = signal<SearchFieldComponent | null>(null);\n\n /** @hidden */\n protected _searchFieldExpanded$ = signal<boolean>(false);\n\n /**\n * RTL signal\n * @hidden\n */\n protected _rtl = computed<boolean>(() => !!this._rtlService?.rtlSignal());\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n constructor() {\n this.mode$ = this._mode$.asReadonly();\n this.orientation$ = this._orientation$.asReadonly();\n this.searchField$ = this._searchField$.asReadonly();\n this.searchFieldExpanded$ = this._searchFieldExpanded$.asReadonly();\n }\n}\n","/* eslint-disable @angular-eslint/no-input-rename */\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n HostListener,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { ToolHeaderButtonDirective } from '@fundamental-ngx/btp/button';\nimport {\n NavigationMenuComponent,\n NavigationMenuItemComponent,\n NavigationMenuPopoverComponent,\n NavigationMenuPopoverControlDirective\n} from '@fundamental-ngx/btp/navigation-menu';\nimport { SearchFieldComponent } from '@fundamental-ngx/btp/search-field';\nimport { FdbViewMode } from '@fundamental-ngx/btp/shared';\nimport {\n FDK_INDIRECT_FOCUSABLE_ITEM_ORDER,\n FocusableItemDirective,\n FocusableListDirective,\n IndirectFocusableListDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuComponent,\n MenuInteractiveComponent,\n MenuItemComponent,\n MenuTitleDirective,\n MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport {\n OverflowItemRef,\n OverflowItemRefDirective,\n OverflowLayoutComponent,\n OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { PopoverBodyDirective, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { FD_PRODUCT_SWITCH_COMPONENT } from '@fundamental-ngx/core/product-switch';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { BehaviorSubject, Subscription, delayWhen, first } from 'rxjs';\nimport { ToolHeaderActionButtonDirective } from '../../directives/tool-header-action-button.directive';\nimport { ToolHeaderActionDirective } from '../../directives/tool-header-action.directive';\nimport { ToolHeaderElementDirective } from '../../directives/tool-header-element.directive';\nimport { ToolHeaderGroupDirective } from '../../directives/tool-header-group.directive';\nimport { ToolHeaderLogoDirective } from '../../directives/tool-header-logo.directive';\nimport { ToolHeaderUserDirective } from '../../directives/tool-header-user.directive';\nimport { ToolHeaderActionClass } from '../../tool-header-action.class';\nimport { ToolHeaderComponentClass } from '../../tool-header-component.class';\n\n@Component({\n selector: 'fdb-tool-header',\n templateUrl: './tool-header.component.html',\n styleUrls: ['./tool-header.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-tool-header',\n '[class.fd-tool-header--menu]': 'showMenuButton'\n },\n imports: [\n ToolHeaderGroupDirective,\n NgTemplateOutlet,\n PopoverComponent,\n PopoverControlComponent,\n MenuTriggerDirective,\n MenuComponent,\n MenuItemComponent,\n MenuInteractiveComponent,\n MenuTitleDirective,\n MenuAddonDirective,\n GlyphMenuAddonDirective,\n ToolHeaderElementDirective,\n IconComponent,\n ButtonComponent,\n ToolHeaderButtonDirective,\n ToolHeaderLogoDirective,\n FdTranslatePipe,\n NavigationMenuComponent,\n NavigationMenuItemComponent,\n FocusableListDirective,\n IndirectFocusableListDirective,\n FocusableItemDirective,\n NavigationMenuPopoverComponent,\n NavigationMenuPopoverControlDirective,\n AsyncPipe,\n OverflowLayoutComponent,\n OverflowLayoutItemDirective,\n OverflowItemRefDirective,\n PopoverBodyDirective,\n PortalModule,\n ToolHeaderActionButtonDirective\n ],\n providers: [\n contentDensityObserverProviders(),\n {\n provide: ToolHeaderComponentClass,\n useExisting: ToolHeaderComponent\n }\n ]\n})\nexport class ToolHeaderComponent extends ToolHeaderComponentClass implements OnDestroy {\n /**\n * (required) the Product Name is the official name of the tool.\n */\n @Input({ required: true }) productName!: string;\n /**\n * Second Title is an optional second text identifier of the tool.\n **/\n @Input() secondTitle?: string;\n /** Mode */\n @Input('mode')\n set _mode(mode: FdbViewMode) {\n if (mode !== this._mode$()) {\n this._mode$.set(mode);\n }\n }\n\n /** @hidden */\n @Input('orientation')\n set _orientation(orientation: 'landscape' | 'portrait') {\n if (orientation !== this._orientation$()) {\n this._orientation$.set(orientation);\n }\n }\n\n /**\n * Whether to show the menu button\n */\n @Input({ transform: booleanAttribute })\n showMenuButton = false;\n\n /**\n * Whether to show the voice input action button on\n * the right side of the tool header, when the mode is mobile\n * and the search input is expanded\n */\n @Input({ transform: booleanAttribute })\n showVoiceInputAction = true;\n\n /**\n * Event emitted when the menu button is clicked\n **/\n @Output()\n menuClick = new EventEmitter<void>();\n\n /**\n * Event emitted when user intends to expand the menu.\n * Happens when user clicks `right arrow` key on the menu button\n * if on ltr or `left arrow` key if on rtl.\n **/\n @Output()\n menuExpand = new EventEmitter<void>();\n\n /**\n * Event emitted when user intends to collapse the menu.\n * Happens when user clicks `left arrow` key on the menu button\n * if on ltr or `right arrow` key if on rtl.\n **/\n @Output()\n menuCollapse = new EventEmitter<void>();\n\n /**\n * Event emitted when the microphone button is clicked\n **/\n @Output()\n microphoneClick = new EventEmitter<void>();\n\n /**\n * Event emitted when the default logo is clicked\n */\n @Output()\n logoClick = new EventEmitter<void>();\n\n /** @hidden */\n @ContentChildren(ToolHeaderActionClass)\n _contentActions: QueryList<ToolHeaderActionClass>;\n\n /** @hidden */\n @ContentChild(ToolHeaderLogoDirective)\n _toolHeaderLogoDirective?: ToolHeaderLogoDirective;\n\n /** @hidden */\n @ContentChild(SearchFieldComponent)\n set _searchField(searchField: SearchFieldComponent) {\n this._searchField$.set(searchField);\n }\n\n /** @hidden */\n @ContentChild(ToolHeaderUserDirective)\n _toolHeaderUser?: ToolHeaderUserDirective;\n\n /** @hidden */\n @ContentChild(FD_PRODUCT_SWITCH_COMPONENT)\n _toolHeaderProductSwitch?: unknown;\n\n /** @hidden */\n protected _hiddenActions$ = new BehaviorSubject<OverflowItemRef<ToolHeaderActionDirective>[]>([]);\n\n /** @hidden */\n protected _delayedHiddenActions$ = this._hiddenActions$.pipe(delayWhen(() => this._ngZone.onStable));\n\n /** @hidden */\n private _searchFieldOutsideClickSubscription?: Subscription;\n\n /** @hidden */\n private _ngZone = inject(NgZone);\n\n /** @hidden */\n private _mapOfItemsAndInjectors = new WeakMap<OverflowItemRef<ToolHeaderActionDirective>, Injector>();\n\n /**\n * The handler, responsible for closing the search field\n * on outside click\n * @hidden\n **/\n @HostListener('document:click', ['$event'])\n _onClick(event: MouseEvent): void {\n if (this._searchFieldExpanded$()) {\n if (\n this._mode$() === 'tablet' &&\n this._orientation$() === 'portrait' &&\n this._searchField$() &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n !event.composedPath().includes(this._searchField$()!.elementRef.nativeElement)\n ) {\n this._searchFieldExpanded$.set(false);\n }\n }\n }\n\n /**\n * The handler, responsible for the focusing on the search field,\n * when the user presses `Ctrl + K` or `Cmd + K` keys\n * @hidden\n **/\n @HostListener('document:keydown.control.k', ['$event'])\n @HostListener('document:keydown.meta.k', ['$event'])\n _onKeyDown(): void {\n if (this._mode$() === 'tablet' && this._orientation$() === 'portrait' && this._searchField$()) {\n this._searchFieldExpanded$.set(true);\n this._searchField$()?.focus();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this._searchFieldOutsideClickSubscription) {\n this._searchFieldOutsideClickSubscription.unsubscribe();\n }\n }\n\n /**\n * Expand the search field\n **/\n expandSearchField(): void {\n this._searchFieldExpanded$.set(true);\n this._ngZone.onStable.pipe(first()).subscribe(() => {\n this._searchField$()?.focus();\n });\n }\n\n /** @hidden */\n protected _handleMenuLeftArrowKey(): void {\n if (this._rtl()) {\n this.menuExpand.emit();\n } else {\n this.menuCollapse.emit();\n }\n }\n\n /** @hidden */\n protected _handleMenuRightArrowKey(): void {\n if (this._rtl()) {\n this.menuCollapse.emit();\n } else {\n this.menuExpand.emit();\n }\n }\n\n /** @hidden */\n protected _handleHiddenItemsChange($event: OverflowItemRef<ToolHeaderActionDirective>[]): void {\n this._ngZone.runOutsideAngular(() => {\n this._hiddenActions$.next(\n $event.reduce((acc: OverflowItemRef<ToolHeaderActionDirective>[], i) => {\n if (!i.item.isSeparator) {\n acc.push(i);\n this._mapOfItemsAndInjectors.delete(i);\n }\n return acc;\n }, [])\n );\n });\n }\n\n /** @hidden */\n protected _indirectFocusableItemInjector(\n parent: Injector,\n item: OverflowItemRef<ToolHeaderActionDirective>\n ): Injector {\n let injector = this._mapOfItemsAndInjectors.get(item);\n if (!injector) {\n injector = Injector.create({\n parent,\n providers: [\n {\n provide: FDK_INDIRECT_FOCUSABLE_ITEM_ORDER,\n useValue: item.globalIndex\n }\n ]\n });\n this._mapOfItemsAndInjectors.set(item, injector);\n }\n return injector;\n }\n}\n","<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n @if (fdbToolHeaderState().backButtonVisible) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n glyph=\"slim-arrow-left\"\n (click)=\"_searchFieldExpanded$.set(false)\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n <div fdbToolHeaderElement>\n <button\n fd-button\n fdbToolHeaderButton\n [title]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n [ariaLabel]=\"'btpToolHeader.menuButtonAriaLabel' | fdTranslate\"\n glyph=\"menu2\"\n (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n (click)=\"menuClick.emit()\"\n ></button>\n </div>\n }\n @if (fdbToolHeaderState().logoVisible) {\n <div fdbToolHeaderElement>\n @if (_toolHeaderLogoDirective) {\n <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n } @else {\n <img\n fdbToolHeaderLogo\n (click)=\"logoClick.emit()\"\n src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n srcset=\"\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;2x.png 1x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;3x.png 2x,\n https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;4x.png 3x\n \"\n alt=\"SAP logo\"\n aria-label=\"SAP logo\"\n title=\"SAP logo\"\n />\n }\n </div>\n }\n @if (fdbToolHeaderState().productNameVisible) {\n <div fdbToolHeaderElement>\n <h1 class=\"fd-tool-header__product-name\">\n {{ productName }}\n </h1>\n </div>\n }\n @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n <div fdbToolHeaderElement>\n <div class=\"fd-tool-header__second-title\">\n {{ secondTitle }}\n </div>\n </div>\n }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n <div fdbToolHeaderGroup center>\n <ng-content select=\"fdb-search-field\"></ng-content>\n </div>\n}\n<fd-overflow-layout\n fdbToolHeaderGroup\n actions\n [style.justify-content]=\"'end'\"\n (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n [renderShowMoreButton]=\"false\"\n>\n @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"search\"\n (click)=\"$event.stopPropagation(); expandSearchField()\"\n ></button>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().providedActionsVisible) {\n @for (action of _contentActions; track action) {\n @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n @if (hidden === false) {\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n }\n <ng-template #actionTemplate>\n <ng-template\n [ngTemplateOutlet]=\"action.templateRef\"\n [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n [ngTemplateOutletInjector]=\"injector\"\n >\n </ng-template>\n </ng-template>\n </ng-template>\n }\n }\n }\n <!-- Custom overflow button used as overflow item START -->\n @if (_delayedHiddenActions$ | async; as hiddenActions) {\n @if (hiddenActions.length > 0) {\n <ng-template fdOverflowItemRef>\n <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n *fdbNavigationMenuPopoverControl\n fd-button\n fdbToolHeaderActionButton\n glyph=\"overflow\"\n ></button>\n <fdb-navigation-menu\n class=\"fd-tool-header__navigation-menu\"\n fdkIndirectFocusableList\n #indirectFocusableList=\"fdkIndirectFocusableList\"\n >\n @for (item of hiddenActions; track item.globalIndex) {\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: true,\n index: item.index,\n globalIndex: item.globalIndex,\n first: item.first,\n last: item.last,\n injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n }\"\n >\n </ng-template>\n }\n </fdb-navigation-menu>\n </fdb-navigation-menu-popover>\n </ng-template>\n }\n }\n <!-- Custom overflow button used as overflow item END -->\n @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <div class=\"fd-tool-header__separator\"></div>\n </div>\n </ng-template>\n }\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n </div>\n </ng-template>\n }\n @if (fdbToolHeaderState().voiceInputVisible) {\n <ng-template fdOverflowItemRef>\n <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n <button\n fd-button\n fdbToolHeaderActionButton\n glyph=\"microphone\"\n [ariaLabel]=\"'Search with voice'\"\n (click)=\"microphoneClick.emit()\"\n ></button>\n </div>\n </ng-template>\n }\n</fd-overflow-layout>\n","import { ContentChild, Directive, inject, TemplateRef } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ToolHeaderActionClass } from '../tool-header-action.class';\n\nexport interface ToolHeaderActionContext {\n hidden: boolean;\n}\n\n@Directive({\n selector: '[fdbToolHeaderAction]',\n providers: [\n {\n provide: ToolHeaderActionClass,\n useExisting: ToolHeaderActionDirective\n }\n ],\n standalone: true\n})\nexport class ToolHeaderActionDirective extends ToolHeaderActionClass {\n /**\n * Button component which will be used for the action\n **/\n @ContentChild(ButtonComponent, { descendants: true })\n button: ButtonComponent;\n\n /** @hidden */\n templateRef = inject<TemplateRef<ToolHeaderActionContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(dir: ToolHeaderActionDirective, ctx: unknown): ctx is ToolHeaderActionContext {\n return !(dir.isSeparator || dir.forceVisibility);\n }\n}\n","import { computed, Directive, ElementRef, EventEmitter, inject, Input, Output, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { FdbViewMode } from '@fundamental-ngx/btp/shared';\nimport { HasElementRef, ResizeObserverService, ResponsiveBreakpoints } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityDirective, ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\nimport { ToolHeaderComponent } from '../components/tool-header/tool-header.component';\n\ninterface FdbToolHeaderModeConfig {\n desktop: number;\n tabletLandscape: [number, number];\n tabletPortrait: [number, number];\n phone: number;\n}\n\nconst DEFAULT_CONFIG: FdbToolHeaderModeConfig = {\n desktop: ResponsiveBreakpoints.L + 1,\n tabletLandscape: [ResponsiveBreakpoints.M + 1, ResponsiveBreakpoints.L],\n tabletPortrait: [ResponsiveBreakpoints.S + 1, ResponsiveBreakpoints.M],\n phone: ResponsiveBreakpoints.S\n};\n\n@Directive({\n selector: 'fdb-tool-header[fdbToolHeaderAutoMode]',\n exportAs: 'fdbToolHeaderAutoMode',\n hostDirectives: [ContentDensityDirective],\n standalone: true\n})\nexport class ToolHeaderAutoModeDirective implements HasElementRef {\n /**\n * What sizes should be used to determine mode.\n * Sizes mean the width of the tool header, not the whole screen.\n **/\n @Input() set config(config: Partial<FdbToolHeaderModeConfig>) {\n this._config.set({ ...DEFAULT_CONFIG, ...config });\n }\n\n /**\n * Current mode of the ToolHeaderComponent\n */\n @Output()\n modeChange = new EventEmitter<FdbViewMode>();\n\n /**\n * Current orientation of the ToolHeaderComponent\n */\n @Output()\n orientationChange = new EventEmitter<'landscape' | 'portrait'>();\n\n /**\n * Current content density of the ToolHeaderComponent\n */\n @Output()\n contentDensityChange = new EventEmitter<ContentDensityMode>();\n\n /**\n * Reference to the element on which the directive is applied.\n */\n readonly elementRef: ElementRef = inject(ElementRef);\n\n /**\n * Current configuration of the directive.\n */\n protected _config = signal(DEFAULT_CONFIG);\n\n /** @hidden */\n protected _contentDensity = inject(ContentDensityDirective);\n\n /**\n * Signal of the Width of the element\n */\n protected _elementWidth = toSignal(\n inject(ResizeObserverService)\n .observe(this.elementRef.nativeElement)\n .pipe(\n map((entries) => entries[0].contentRect.width),\n startWith(this.elementRef.nativeElement.clientWidth)\n ),\n { requireSync: true }\n );\n /**\n * Reference to the ToolHeaderComponent\n */\n protected _toolHeaderComponent = inject(ToolHeaderComponent, { host: true });\n\n /**\n * Current mode of the ToolHeaderComponent\n */\n protected _currentMode = computed(() => this._getMode(this._elementWidth(), this._config()));\n\n /**\n * @hidden\n */\n constructor() {\n toObservable(this._currentMode)\n .pipe(\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n takeUntilDestroyed()\n )\n .subscribe((_mode) => {\n const [mode, orientation = 'landscape'] = _mode;\n this._toolHeaderComponent._mode = mode;\n this._toolHeaderComponent._orientation = orientation;\n const contentDensity = mode ? ContentDensityMode.COZY : ContentDensityMode.COMPACT;\n this._contentDensity.fdContentDensity = contentDensity;\n this.modeChange.emit(mode);\n this.orientationChange.emit(orientation);\n this.contentDensityChange.emit(contentDensity);\n });\n }\n\n /**\n * What mode should be used for the given width and configuration\n * @param width\n * @param config\n * @private\n */\n private _getMode(width: number, config: FdbToolHeaderModeConfig): [FdbViewMode, 'landscape' | 'portrait'] {\n if (width >= config.desktop) {\n return ['', 'landscape'];\n }\n if (width <= config.phone) {\n return ['phone', 'landscape'];\n }\n return [\n 'tablet',\n width >= config.tabletLandscape[0] && width <= config.tabletLandscape[1] ? 'landscape' : 'portrait'\n ];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/btp",
3
- "version": "0.53.1-rc.8",
3
+ "version": "0.53.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.0.0",
6
6
  "@angular/core": "^18.0.0",
7
- "@fundamental-ngx/cdk": "0.53.1-rc.8",
8
- "@fundamental-ngx/core": "0.53.1-rc.8"
7
+ "@fundamental-ngx/cdk": "0.53.1",
8
+ "@fundamental-ngx/core": "0.53.1"
9
9
  },
10
10
  "dependencies": {
11
11
  "tslib": "^2.3.0"