@fundamental-ngx/platform 0.48.0-rc.21 → 0.48.0-rc.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +6 -8
  2. package/esm2022/form/combobox/commons/base-combobox.mjs +6 -5
  3. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +8 -8
  4. package/esm2022/form/form-generator/form-generator.service.mjs +8 -13
  5. package/esm2022/form/form-group/form-field/form-field.component.mjs +27 -29
  6. package/esm2022/form/form-group/form-group.component.mjs +37 -40
  7. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +9 -8
  8. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -3
  9. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +10 -13
  10. package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
  11. package/esm2022/form/multi-input/base-multi-input.mjs +5 -4
  12. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +4 -7
  13. package/esm2022/form/radio-group/radio-group.component.mjs +23 -24
  14. package/esm2022/form/select/commons/base-select.mjs +3 -3
  15. package/esm2022/form/step-input/base.step-input.mjs +25 -35
  16. package/esm2022/form/step-input/number/number-step-input.component.mjs +3 -3
  17. package/esm2022/form/step-input/step-input-action-button.mjs +6 -10
  18. package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +6 -8
  19. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +10 -19
  20. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +7 -9
  21. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +7 -8
  22. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +9 -20
  23. package/esm2022/list/list.component.mjs +7 -8
  24. package/esm2022/menu/menu.component.mjs +3 -4
  25. package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +8 -11
  26. package/esm2022/message-popover/message-popover.component.mjs +52 -53
  27. package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
  28. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +3 -7
  29. package/esm2022/search-field/search-field.component.mjs +20 -21
  30. package/esm2022/settings-generator/settings-generator.service.mjs +9 -10
  31. package/esm2022/shared/form/base.input.mjs +7 -8
  32. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +10 -15
  33. package/esm2022/split-menu-button/split-menu-button.component.mjs +7 -18
  34. package/esm2022/table/components/reset-button/reset-button.component.mjs +5 -6
  35. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +6 -7
  36. package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +6 -8
  37. package/esm2022/table/components/table-group-row/table-group-row.component.mjs +3 -7
  38. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +29 -13
  39. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +7 -11
  40. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +5 -7
  41. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +5 -8
  42. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +5 -8
  43. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +5 -8
  44. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +4 -5
  45. package/esm2022/table/components/table-row/table-row.component.mjs +6 -13
  46. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +34 -21
  47. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +5 -8
  48. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +6 -9
  49. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +6 -9
  50. package/esm2022/table/table.component.mjs +39 -49
  51. package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +1 -1
  52. package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +8 -10
  53. package/esm2022/table-helpers/directives/table-data-source.directive.mjs +6 -6
  54. package/esm2022/table-helpers/services/table-column-resize.service.mjs +14 -17
  55. package/esm2022/table-helpers/services/table-responsive.service.mjs +6 -11
  56. package/esm2022/table-helpers/services/table.service.mjs +20 -18
  57. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +10 -18
  58. package/esm2022/wizard-generator/base-wizard-generator.mjs +12 -19
  59. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +5 -4
  60. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +7 -13
  61. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +8 -7
  62. package/fesm2022/fundamental-ngx-platform-form.mjs +137 -174
  63. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  64. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +24 -46
  65. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  66. package/fesm2022/fundamental-ngx-platform-list.mjs +6 -7
  67. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  68. package/fesm2022/fundamental-ngx-platform-menu.mjs +3 -3
  69. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  70. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +57 -60
  71. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  72. package/fesm2022/fundamental-ngx-platform-search-field.mjs +21 -38
  73. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  74. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +6 -8
  75. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  76. package/fesm2022/fundamental-ngx-platform-shared.mjs +6 -7
  77. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  78. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +9 -15
  79. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  80. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +6 -17
  81. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  82. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +42 -52
  83. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  84. package/fesm2022/fundamental-ngx-platform-table.mjs +145 -157
  85. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  86. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +9 -17
  87. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  88. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +20 -33
  89. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  90. package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +2 -4
  91. package/form/form-generator/form-generator/form-generator.component.d.ts +1 -1
  92. package/form/form-generator/form-generator.service.d.ts +3 -7
  93. package/form/form-group/form-field/form-field.component.d.ts +12 -12
  94. package/form/form-group/form-group.component.d.ts +35 -31
  95. package/form/multi-combobox/commons/base-multi-combobox.d.ts +2 -2
  96. package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +3 -5
  97. package/form/multi-combobox/multi-combobox.interface.d.ts +3 -3
  98. package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -4
  99. package/form/radio-group/radio-group.component.d.ts +3 -3
  100. package/form/step-input/base.step-input.d.ts +5 -6
  101. package/form/step-input/step-input-action-button.d.ts +4 -7
  102. package/fundamental-ngx-platform-v0.48.0-rc.23.tgz +0 -0
  103. package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +1 -1
  104. package/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.d.ts +5 -8
  105. package/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.d.ts +1 -1
  106. package/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.d.ts +1 -1
  107. package/icon-tab-bar/icon-tab-bar.component.d.ts +4 -6
  108. package/list/list.component.d.ts +1 -3
  109. package/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.d.ts +2 -4
  110. package/message-popover/message-popover.component.d.ts +13 -20
  111. package/message-popover/models/message-popover-wrapper.interface.d.ts +2 -2
  112. package/package.json +4 -4
  113. package/search-field/search-field-mobile/search-field/search-field-mobile.component.d.ts +4 -6
  114. package/search-field/search-field.component.d.ts +6 -4
  115. package/settings-generator/settings-generator.service.d.ts +1 -1
  116. package/shared/form/base.input.d.ts +2 -2
  117. package/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.d.ts +4 -8
  118. package/split-menu-button/split-menu-button.component.d.ts +3 -8
  119. package/table/components/reset-button/reset-button.component.d.ts +2 -3
  120. package/table/components/table-cell-header-popover/table-cell-header-popover.component.d.ts +1 -2
  121. package/table/components/table-column-resizer/table-column-resizer.component.d.ts +1 -1
  122. package/table/components/table-group-row/table-group-row.component.d.ts +2 -5
  123. package/table/components/table-header-cell-content/table-header-cell-content.component.d.ts +11 -6
  124. package/table/components/table-header-row/table-header-row.component.d.ts +1 -1
  125. package/table/components/table-p13-dialog/columns/columns.component.d.ts +2 -4
  126. package/table/components/table-p13-dialog/filtering/filtering.component.d.ts +1 -4
  127. package/table/components/table-p13-dialog/grouping/grouping.component.d.ts +1 -4
  128. package/table/components/table-p13-dialog/sorting/sorting.component.d.ts +1 -4
  129. package/table/components/table-row/table-row.component.d.ts +2 -2
  130. package/table/components/table-toolbar/table-toolbar.component.d.ts +20 -7
  131. package/table/components/table-view-settings-dialog/filtering/filters.component.d.ts +1 -4
  132. package/table/components/table-view-settings-dialog/grouping/grouping.component.d.ts +1 -4
  133. package/table/components/table-view-settings-dialog/sorting/sorting.component.d.ts +1 -4
  134. package/table/table.component.d.ts +4 -18
  135. package/table-helpers/directives/table-cell-header-popover.directive.d.ts +2 -3
  136. package/table-helpers/directives/table-cell-resizable.directive.d.ts +1 -1
  137. package/table-helpers/directives/table-data-source.directive.d.ts +1 -1
  138. package/table-helpers/services/table-column-resize.service.d.ts +2 -2
  139. package/table-helpers/services/table-responsive.service.d.ts +3 -5
  140. package/table-helpers/services/table.service.d.ts +12 -10
  141. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +2 -1
  142. package/wizard-generator/base-wizard-generator.d.ts +4 -8
  143. package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +3 -7
  144. package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +1 -1
  145. package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +0 -16
  146. package/fundamental-ngx-platform-v0.48.0-rc.21.tgz +0 -0
  147. package/search-field/search-field-mobile/search-field-mobile.module.d.ts +0 -7
@@ -3,7 +3,6 @@ import { ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE } from '@angular/cdk/keyc
3
3
  import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Optional, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
4
4
  import { Subscription, merge } from 'rxjs';
5
5
  import { startWith, switchMap } from 'rxjs/operators';
6
- import { AsyncPipe } from '@angular/common';
7
6
  import { KeyUtil, RtlService, warnOnce } from '@fundamental-ngx/cdk/utils';
8
7
  import { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';
9
8
  import { MenuItemComponent } from './menu-item.component';
@@ -166,11 +165,11 @@ export class MenuComponent {
166
165
  (this.xPosition === 'before' && this.direction === 'ltr'));
167
166
  }
168
167
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MenuComponent, deps: [{ token: i1.RtlService, optional: true }, { token: i2.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component }); }
169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MenuComponent, isStandalone: true, selector: "fdp-menu", inputs: { id: "id", openByArrowKeys: "openByArrowKeys", xPosition: "xPosition" }, outputs: { close: "close" }, providers: [contentDensityObserverProviders()], queries: [{ propertyName: "menuItems", predicate: MenuItemComponent }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["menuTemplate"], descendants: true }], ngImport: i0, template: "<ng-template #menuTemplate>\n <nav\n [attr.id]=\"menuId\"\n [attr.dir]=\"direction\"\n class=\"fd-menu\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n tabindex=\"0\"\n role=\"menu\"\n (click)=\"_onClick()\"\n (keydown)=\"_onKeydown($event)\"\n >\n <div class=\"fd-menu__list\">\n <ng-content></ng-content>\n </div>\n </nav>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-dialog__body{--fdButton_Menu_Border_Radius:0}.fd-menu{--fdMenu_Icon_Width:2.25rem;--fdMenu_Icon_Before_Margin:0 0 0 -.75rem;--fdMenu_Icon_After_Margin:0 -1rem 0 0;--fdMenu_Link_Height:2.75rem;--fdMenu_Item_Spacing_Left:.75rem;--fdMenu_Item_Spacing_Right:.75rem;--fdMenu_Item_Border_Bottom_Color:transparent;--fdMenu_Shortcut_Padding_Left:1rem;--fdMenu_Shortcut_Padding_Right:.75rem;--fdMenu_Text_Spacing_Right:.75rem;--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Regular);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Background_Color:var(--sapList_Background);--fdMenu_Active_Dot_Size:.75rem;-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:-moz-fit-content;width:fit-content}.fd-menu:after,.fd-menu:before{box-sizing:inherit;font-size:inherit}.fd-menu__list,.fd-menu__sublist{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;-webkit-box-shadow:var(--sapContent_Shadow1);border:0;border-radius:var(--fdButton_Menu_Border_Radius);box-shadow:var(--sapContent_Shadow1);box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;max-width:20rem;padding:0}.fd-menu__list:after,.fd-menu__list:before,.fd-menu__sublist:after,.fd-menu__sublist:before{box-sizing:inherit;font-size:inherit}.fd-menu__list--no-shadow,.fd-menu__sublist--no-shadow{box-shadow:none}.fd-menu__sublist{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;left:100%;line-height:var(--sapContent_LineHeight);margin:.25rem 0 0 -.25rem;min-width:100%;padding:0;position:absolute;top:0;z-index:2}.fd-menu__sublist:after,.fd-menu__sublist:before{box-sizing:inherit;font-size:inherit}.fd-menu__sublist[dir=rtl],[dir=rtl] .fd-menu__sublist{left:auto;margin:.25rem -.25rem 0 0;right:100%}.fd-menu__sublist[aria-hidden=true]{display:none}.fd-menu__list>.fd-menu__item{position:relative;width:100%}.fd-menu__list--overflow{flex-wrap:nowrap;overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow.is-focus,.fd-menu__list--overflow:focus{outline:none;z-index:5}.fd-menu__list--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-menu__list--overflow::-webkit-scrollbar-corner,.fd-menu__list--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-menu__list--overflow::-webkit-scrollbar-thumb:active,.fd-menu__list--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-menu__list--overflow::-webkit-scrollbar-corner,.fd-menu__list--overflow::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-corner,.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-corner,[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu__separator{-webkit-box-sizing:border-box;background-color:var(--sapGroup_ContentBorderColor);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.0625rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-menu__separator:after,.fd-menu__separator:before{box-sizing:inherit;font-size:inherit}.fd-menu__item{-webkit-box-sizing:border-box;background-color:var(--sapList_Background);border:0;border-radius:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;padding:0;position:relative}.fd-menu__item:after,.fd-menu__item:before{box-sizing:inherit;font-size:inherit}.fd-menu__item:first-child,.fd-menu__item:first-child .fd-menu__link:after{border-top-left-radius:var(--fdButton_Menu_Border_Radius);border-top-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item:last-of-type,.fd-menu__item:last-of-type .fd-menu__link:after{border-bottom-left-radius:var(--fdButton_Menu_Border_Radius);border-bottom-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item.has-separator{border-bottom:.0625rem solid var(--sapGroup_ContentBorderColor)}.fd-menu__link{-webkit-box-sizing:border-box;align-items:center;background:var(--fdMenu_Item_Background_Color);border:0;border-bottom:.0625rem solid var(--fdMenu_Item_Border_Bottom_Color);border-radius:inherit;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdMenu_Link_Height);line-height:var(--sapContent_LineHeight);margin:0;outline:none;padding:0;padding-left:var(--fdMenu_Item_Spacing_Left);padding-right:var(--fdMenu_Item_Spacing_Right);text-decoration:none;width:100%}.fd-menu__link:after,.fd-menu__link:before{box-sizing:inherit;font-size:inherit}.fd-menu__link[dir=rtl],[dir=rtl] .fd-menu__link{padding-left:var(--fdMenu_Item_Spacing_Right);padding-right:var(--fdMenu_Item_Spacing_Left)}.fd-menu__link.is-focus:after,.fd-menu__link:focus:after{border-color:var(--sapContent_FocusColor);border-radius:0!important;border-style:var(--sapContent_FocusStyle);border-width:var(--sapContent_FocusWidth);content:\"\";inset:.125rem;pointer-events:none;position:absolute}.fd-menu__link.is-hover,.fd-menu__link:hover{--fdMenu_Item_Background_Color:var(--sapList_Hover_Background)}.fd-menu__link.is-selected,.fd-menu__link[aria-selected=true]{--fdMenu_Item_Background_Color:var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color:var(--sapList_SelectionBorderColor)}.fd-menu__link.is-selected.is-hover:not(:active):not(.is-active),.fd-menu__link.is-selected:hover:not(:active):not(.is-active),.fd-menu__link[aria-selected=true].is-hover:not(:active):not(.is-active),.fd-menu__link[aria-selected=true]:hover:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link.is-selected.is-focus,.fd-menu__link.is-selected:focus,.fd-menu__link[aria-selected=true].is-focus,.fd-menu__link[aria-selected=true]:focus{z-index:5}.fd-menu__link.is-selected.is-focus:after,.fd-menu__link.is-selected:focus:after,.fd-menu__link[aria-selected=true].is-focus:after,.fd-menu__link[aria-selected=true]:focus:after{bottom:.125rem}.fd-menu__link.is-active,.fd-menu__link:active{--fdMenu_Item_Background_Color:var(--sapList_Active_Background);--fdMenu_Icon_Color:var(--sapList_Active_TextColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Active);--fdMenu_Text_Color:var(--fdMenu_Text_Color_Active)}.fd-menu__link.is-active:after,.fd-menu__link:active:after{display:none}.fd-menu__link.is-active.is-focus,.fd-menu__link.is-active:focus,.fd-menu__link:active.is-focus,.fd-menu__link:active:focus{outline-color:var(--fdMenu_Active_State_Focus);z-index:5}.fd-menu__link.is-disabled,.fd-menu__link:disabled,.fd-menu__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-menu__link.is-disabled.is-focus,.fd-menu__link.is-disabled:focus,.fd-menu__link:disabled.is-focus,.fd-menu__link:disabled:focus,.fd-menu__link[aria-disabled=true].is-focus,.fd-menu__link[aria-disabled=true]:focus{z-index:5}.fd-menu__link.is-disabled.is-focus:after,.fd-menu__link.is-disabled:focus:after,.fd-menu__link:disabled.is-focus:after,.fd-menu__link:disabled:focus:after,.fd-menu__link[aria-disabled=true].is-focus:after,.fd-menu__link[aria-disabled=true]:focus:after{display:none}.fd-menu__link.has-child{--fdMenu_Item_Spacing_Right:0}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color:var(--sapList_SelectionBorderColor)}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-hover:not(:active):not(.is-active),.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):hover:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-hover:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):hover:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-focus,.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):focus,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-focus,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):focus{z-index:5}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-focus:after,.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):focus:after,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-focus:after,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):focus:after{bottom:.125rem}.fd-menu__title{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Text_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:left;text-overflow:ellipsis;text-shadow:var(--fdMenu_Text_Shadow);white-space:nowrap;width:100%}.fd-menu__title:after,.fd-menu__title:before{box-sizing:inherit;font-size:inherit}.fd-menu__title[dir=rtl],[dir=rtl] .fd-menu__title{text-align:right}.fd-menu__addon-after,.fd-menu__addon-before{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:transparent;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Icon_Color);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontLargeSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-width:var(--fdMenu_Icon_Width);min-width:var(--fdMenu_Icon_Width);padding:0;text-shadow:var(--fdMenu_Text_Shadow);width:var(--fdMenu_Icon_Width)}.fd-menu__addon-after:after,.fd-menu__addon-after:before,.fd-menu__addon-before:after,.fd-menu__addon-before:before{box-sizing:inherit;font-size:inherit}.fd-menu__addon-after [class*=sap-icon],.fd-menu__addon-after[class*=sap-icon],.fd-menu__addon-before [class*=sap-icon],.fd-menu__addon-before[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;font-size:inherit;line-height:1}.fd-menu__addon-after--submenu{font-size:var(--fdMenu_Affordance_Arrow_Size)}.fd-menu__addon-after--submenu:before{content:\"\\e066\"}.fd-menu__addon-after--submenu:before,.fd-menu__addon-after--submenu[dir=rtl]:before,[dir=rtl] .fd-menu__addon-after--submenu:before{font-family:SAP-icons;text-align:center;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none}.fd-menu__addon-after--submenu[dir=rtl]:before,[dir=rtl] .fd-menu__addon-after--submenu:before{content:\"\\e067\"}.fd-menu__active-dot{-webkit-box-sizing:border-box;background:var(--sapContent_Selected_ForegroundColor);border:0;border-radius:100%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdMenu_Active_Dot_Size);line-height:var(--sapContent_LineHeight);margin:0;min-width:var(--fdMenu_Active_Dot_Size);padding:0;width:var(--fdMenu_Active_Dot_Size)}.fd-menu__active-dot:after,.fd-menu__active-dot:before{box-sizing:inherit;font-size:inherit}.fd-menu__checkmark [class*=sap-icon],.fd-menu__checkmark[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapContent_Selected_ForegroundColor);font-size:inherit;font-size:1rem;line-height:1}.fd-menu__shortcut{-webkit-box-sizing:border-box;-ms-flex-negative:0;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Shortcut_Color);display:flex;flex-shrink:0;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;padding-left:var(--fdMenu_Shortcut_Padding_Left);text-overflow:ellipsis;white-space:nowrap}.fd-menu__shortcut:after,.fd-menu__shortcut:before{box-sizing:inherit;font-size:inherit}.fd-menu__shortcut[dir=rtl],[dir=rtl] .fd-menu__shortcut{padding-left:0;padding-right:var(--fdMenu_Shortcut_Padding_Left)}.fd-menu__shortcut:last-child{padding-left:var(--fdMenu_Shortcut_Padding_Left);padding-right:var(--fdMenu_Shortcut_Padding_Right)}.fd-menu__shortcut:last-child[dir=rtl],[dir=rtl] .fd-menu__shortcut:last-child{padding-left:var(--fdMenu_Shortcut_Padding_Right);padding-right:var(--fdMenu_Shortcut_Padding_Left)}.fd-menu--overflow{-webkit-box-shadow:var(--sapContent_Shadow1);border-radius:var(--fdButton_Menu_Border_Radius);box-shadow:var(--sapContent_Shadow1);overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-menu--overflow.is-focus,.fd-menu--overflow:focus{outline:none;z-index:5}.fd-menu--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-menu--overflow::-webkit-scrollbar-corner,.fd-menu--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-menu--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-menu--overflow::-webkit-scrollbar-thumb:active,.fd-menu--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-menu--overflow::-webkit-scrollbar-corner,.fd-menu--overflow::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-corner,.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-corner,[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu--overflow .fd-menu__list{box-shadow:none}.fd-menu--overflow .fd-menu__item:first-child{border-top-right-radius:0}.fd-menu--overflow .fd-menu__item:first-child[dir=rtl],[dir=rtl] .fd-menu--overflow .fd-menu__item:first-child{border-top-left-radius:0;border-top-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu--overflow .fd-menu__item:last-of-type{border-bottom-right-radius:0}.fd-menu--overflow .fd-menu__item:last-of-type[dir=rtl],[dir=rtl] .fd-menu--overflow .fd-menu__item:last-of-type{border-bottom-left-radius:0;border-bottom-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu--full-width{max-width:100%}.fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu--icons .fd-menu__title:first-child{margin-left:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__title:first-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:first-child{margin-left:0;margin-right:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__title:last-child{margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__title:last-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:last-child{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:0}.fd-menu--icons .fd-menu__title:only-child{margin-left:var(--fdMenu_Icon_Width);margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__title:only-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:only-child{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__input,.fd-menu--icons .fd-menu__input[dir=rtl],.fd-menu--icons input,.fd-menu--icons input[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__input,[dir=rtl] .fd-menu--icons input{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--mobile{--fdMenu_Icon_Before_Margin:0 0 0 -1rem;--fdMenu_Icon_After_Margin:0 -1rem 0 0;--fdMenu_Icon_Width:2.75rem;--fdMenu_Item_Spacing_Left:1rem;--fdMenu_Item_Spacing_Right:1rem;--fdMenu_Shortcut_Padding_Right:1rem;--fdMenu_Text_Spacing_Right:1rem;max-width:100%;width:100%}.fd-menu--mobile .fd-menu__list,.fd-menu--mobile .fd-menu__sublist{-webkit-box-shadow:none;border-radius:0;box-shadow:none;margin:0;position:static}.fd-menu--mobile .fd-menu__list .fd-menu__item,.fd-menu--mobile .fd-menu__sublist .fd-menu__item{border-radius:0}.fd-menu--mobile.fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu--mobile.fd-menu--icons .fd-menu__input,.fd-menu--mobile.fd-menu--icons input{margin-left:1rem;margin-right:1rem}.fd-menu[class*=-compact],.fd-menu[class*=-condensed],[class*=-compact] .fd-menu:not([class*=-cozy]),[class*=-condensed] .fd-menu:not([class*=-cozy]){--fdMenu_Icon_Before_Margin:0 0 0 -.5rem;--fdMenu_Icon_After_Margin:0 -.75rem 0 0;--fdMenu_Icon_Width:2rem;--fdMenu_Link_Height:2rem;--fdMenu_Item_Spacing_Left:.5rem;--fdMenu_Item_Spacing_Right:.5rem;--fdMenu_Shortcut_Padding_Right:.5rem;--fdMenu_Text_Spacing_Right:.5rem}.fd-menu[class*=-compact].fd-menu--icons,.fd-menu[class*=-condensed].fd-menu--icons,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu[class*=-compact].fd-menu--icons .fd-menu__input,.fd-menu[class*=-compact].fd-menu--icons input,.fd-menu[class*=-condensed].fd-menu--icons .fd-menu__input,.fd-menu[class*=-condensed].fd-menu--icons input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons input,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons input{margin-left:.5rem;margin-right:.5rem}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.fd-menu-popover__body--static{position:static}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MenuComponent, isStandalone: true, selector: "fdp-menu", inputs: { id: "id", openByArrowKeys: "openByArrowKeys", xPosition: "xPosition" }, outputs: { close: "close" }, providers: [contentDensityObserverProviders()], queries: [{ propertyName: "menuItems", predicate: MenuItemComponent }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["menuTemplate"], descendants: true }], ngImport: i0, template: "<ng-template #menuTemplate>\n <nav\n [attr.id]=\"menuId\"\n [attr.dir]=\"direction\"\n class=\"fd-menu\"\n [class.is-compact]=\"contentDensityObserver.isCompactSignal()\"\n tabindex=\"0\"\n role=\"menu\"\n (click)=\"_onClick()\"\n (keydown)=\"_onKeydown($event)\"\n >\n <div class=\"fd-menu__list\">\n <ng-content></ng-content>\n </div>\n </nav>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-dialog__body{--fdButton_Menu_Border_Radius:0}.fd-menu{--fdMenu_Icon_Width:2.25rem;--fdMenu_Icon_Before_Margin:0 0 0 -.75rem;--fdMenu_Icon_After_Margin:0 -1rem 0 0;--fdMenu_Link_Height:2.75rem;--fdMenu_Item_Spacing_Left:.75rem;--fdMenu_Item_Spacing_Right:.75rem;--fdMenu_Item_Border_Bottom_Color:transparent;--fdMenu_Shortcut_Padding_Left:1rem;--fdMenu_Shortcut_Padding_Right:.75rem;--fdMenu_Text_Spacing_Right:.75rem;--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Regular);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Background_Color:var(--sapList_Background);--fdMenu_Active_Dot_Size:.75rem;-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:-moz-fit-content;width:fit-content}.fd-menu:after,.fd-menu:before{box-sizing:inherit;font-size:inherit}.fd-menu__list,.fd-menu__sublist{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;-webkit-box-shadow:var(--sapContent_Shadow1);border:0;border-radius:var(--fdButton_Menu_Border_Radius);box-shadow:var(--sapContent_Shadow1);box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;max-width:20rem;padding:0}.fd-menu__list:after,.fd-menu__list:before,.fd-menu__sublist:after,.fd-menu__sublist:before{box-sizing:inherit;font-size:inherit}.fd-menu__list--no-shadow,.fd-menu__sublist--no-shadow{box-shadow:none}.fd-menu__sublist{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;left:100%;line-height:var(--sapContent_LineHeight);margin:.25rem 0 0 -.25rem;min-width:100%;padding:0;position:absolute;top:0;z-index:2}.fd-menu__sublist:after,.fd-menu__sublist:before{box-sizing:inherit;font-size:inherit}.fd-menu__sublist[dir=rtl],[dir=rtl] .fd-menu__sublist{left:auto;margin:.25rem -.25rem 0 0;right:100%}.fd-menu__sublist[aria-hidden=true]{display:none}.fd-menu__list>.fd-menu__item{position:relative;width:100%}.fd-menu__list--overflow{flex-wrap:nowrap;overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow.is-focus,.fd-menu__list--overflow:focus{outline:none;z-index:5}.fd-menu__list--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-menu__list--overflow::-webkit-scrollbar-corner,.fd-menu__list--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-menu__list--overflow::-webkit-scrollbar-thumb:active,.fd-menu__list--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-menu__list--overflow::-webkit-scrollbar-corner,.fd-menu__list--overflow::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-corner,.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-corner,[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu__separator{-webkit-box-sizing:border-box;background-color:var(--sapGroup_ContentBorderColor);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.0625rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-menu__separator:after,.fd-menu__separator:before{box-sizing:inherit;font-size:inherit}.fd-menu__item{-webkit-box-sizing:border-box;background-color:var(--sapList_Background);border:0;border-radius:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;padding:0;position:relative}.fd-menu__item:after,.fd-menu__item:before{box-sizing:inherit;font-size:inherit}.fd-menu__item:first-child,.fd-menu__item:first-child .fd-menu__link:after{border-top-left-radius:var(--fdButton_Menu_Border_Radius);border-top-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item:last-of-type,.fd-menu__item:last-of-type .fd-menu__link:after{border-bottom-left-radius:var(--fdButton_Menu_Border_Radius);border-bottom-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item.has-separator{border-bottom:.0625rem solid var(--sapGroup_ContentBorderColor)}.fd-menu__link{-webkit-box-sizing:border-box;align-items:center;background:var(--fdMenu_Item_Background_Color);border:0;border-bottom:.0625rem solid var(--fdMenu_Item_Border_Bottom_Color);border-radius:inherit;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdMenu_Link_Height);line-height:var(--sapContent_LineHeight);margin:0;outline:none;padding:0;padding-left:var(--fdMenu_Item_Spacing_Left);padding-right:var(--fdMenu_Item_Spacing_Right);text-decoration:none;width:100%}.fd-menu__link:after,.fd-menu__link:before{box-sizing:inherit;font-size:inherit}.fd-menu__link[dir=rtl],[dir=rtl] .fd-menu__link{padding-left:var(--fdMenu_Item_Spacing_Right);padding-right:var(--fdMenu_Item_Spacing_Left)}.fd-menu__link.is-focus:after,.fd-menu__link:focus:after{border-color:var(--sapContent_FocusColor);border-radius:0!important;border-style:var(--sapContent_FocusStyle);border-width:var(--sapContent_FocusWidth);content:\"\";inset:.125rem;pointer-events:none;position:absolute}.fd-menu__link.is-hover,.fd-menu__link:hover{--fdMenu_Item_Background_Color:var(--sapList_Hover_Background)}.fd-menu__link.is-selected,.fd-menu__link[aria-selected=true]{--fdMenu_Item_Background_Color:var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color:var(--sapList_SelectionBorderColor)}.fd-menu__link.is-selected.is-hover:not(:active):not(.is-active),.fd-menu__link.is-selected:hover:not(:active):not(.is-active),.fd-menu__link[aria-selected=true].is-hover:not(:active):not(.is-active),.fd-menu__link[aria-selected=true]:hover:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link.is-selected.is-focus,.fd-menu__link.is-selected:focus,.fd-menu__link[aria-selected=true].is-focus,.fd-menu__link[aria-selected=true]:focus{z-index:5}.fd-menu__link.is-selected.is-focus:after,.fd-menu__link.is-selected:focus:after,.fd-menu__link[aria-selected=true].is-focus:after,.fd-menu__link[aria-selected=true]:focus:after{bottom:.125rem}.fd-menu__link.is-active,.fd-menu__link:active{--fdMenu_Item_Background_Color:var(--sapList_Active_Background);--fdMenu_Icon_Color:var(--sapList_Active_TextColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Active);--fdMenu_Text_Color:var(--fdMenu_Text_Color_Active)}.fd-menu__link.is-active:after,.fd-menu__link:active:after{display:none}.fd-menu__link.is-active.is-focus,.fd-menu__link.is-active:focus,.fd-menu__link:active.is-focus,.fd-menu__link:active:focus{outline-color:var(--fdMenu_Active_State_Focus);z-index:5}.fd-menu__link.is-disabled,.fd-menu__link:disabled,.fd-menu__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-menu__link.is-disabled.is-focus,.fd-menu__link.is-disabled:focus,.fd-menu__link:disabled.is-focus,.fd-menu__link:disabled:focus,.fd-menu__link[aria-disabled=true].is-focus,.fd-menu__link[aria-disabled=true]:focus{z-index:5}.fd-menu__link.is-disabled.is-focus:after,.fd-menu__link.is-disabled:focus:after,.fd-menu__link:disabled.is-focus:after,.fd-menu__link:disabled:focus:after,.fd-menu__link[aria-disabled=true].is-focus:after,.fd-menu__link[aria-disabled=true]:focus:after{display:none}.fd-menu__link.has-child{--fdMenu_Item_Spacing_Right:0}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color:var(--sapList_SelectionBorderColor)}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-hover:not(:active):not(.is-active),.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):hover:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-hover:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):hover:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-focus,.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):focus,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-focus,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):focus{z-index:5}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-focus:after,.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):focus:after,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-focus:after,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):focus:after{bottom:.125rem}.fd-menu__title{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Text_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:left;text-overflow:ellipsis;text-shadow:var(--fdMenu_Text_Shadow);white-space:nowrap;width:100%}.fd-menu__title:after,.fd-menu__title:before{box-sizing:inherit;font-size:inherit}.fd-menu__title[dir=rtl],[dir=rtl] .fd-menu__title{text-align:right}.fd-menu__addon-after,.fd-menu__addon-before{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:transparent;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Icon_Color);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontLargeSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-width:var(--fdMenu_Icon_Width);min-width:var(--fdMenu_Icon_Width);padding:0;text-shadow:var(--fdMenu_Text_Shadow);width:var(--fdMenu_Icon_Width)}.fd-menu__addon-after:after,.fd-menu__addon-after:before,.fd-menu__addon-before:after,.fd-menu__addon-before:before{box-sizing:inherit;font-size:inherit}.fd-menu__addon-after [class*=sap-icon],.fd-menu__addon-after[class*=sap-icon],.fd-menu__addon-before [class*=sap-icon],.fd-menu__addon-before[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;font-size:inherit;line-height:1}.fd-menu__addon-after--submenu{font-size:var(--fdMenu_Affordance_Arrow_Size)}.fd-menu__addon-after--submenu:before{content:\"\\e066\"}.fd-menu__addon-after--submenu:before,.fd-menu__addon-after--submenu[dir=rtl]:before,[dir=rtl] .fd-menu__addon-after--submenu:before{font-family:SAP-icons;text-align:center;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none}.fd-menu__addon-after--submenu[dir=rtl]:before,[dir=rtl] .fd-menu__addon-after--submenu:before{content:\"\\e067\"}.fd-menu__active-dot{-webkit-box-sizing:border-box;background:var(--sapContent_Selected_ForegroundColor);border:0;border-radius:100%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdMenu_Active_Dot_Size);line-height:var(--sapContent_LineHeight);margin:0;min-width:var(--fdMenu_Active_Dot_Size);padding:0;width:var(--fdMenu_Active_Dot_Size)}.fd-menu__active-dot:after,.fd-menu__active-dot:before{box-sizing:inherit;font-size:inherit}.fd-menu__checkmark [class*=sap-icon],.fd-menu__checkmark[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapContent_Selected_ForegroundColor);font-size:inherit;font-size:1rem;line-height:1}.fd-menu__shortcut{-webkit-box-sizing:border-box;-ms-flex-negative:0;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Shortcut_Color);display:flex;flex-shrink:0;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;padding-left:var(--fdMenu_Shortcut_Padding_Left);text-overflow:ellipsis;white-space:nowrap}.fd-menu__shortcut:after,.fd-menu__shortcut:before{box-sizing:inherit;font-size:inherit}.fd-menu__shortcut[dir=rtl],[dir=rtl] .fd-menu__shortcut{padding-left:0;padding-right:var(--fdMenu_Shortcut_Padding_Left)}.fd-menu__shortcut:last-child{padding-left:var(--fdMenu_Shortcut_Padding_Left);padding-right:var(--fdMenu_Shortcut_Padding_Right)}.fd-menu__shortcut:last-child[dir=rtl],[dir=rtl] .fd-menu__shortcut:last-child{padding-left:var(--fdMenu_Shortcut_Padding_Right);padding-right:var(--fdMenu_Shortcut_Padding_Left)}.fd-menu--overflow{-webkit-box-shadow:var(--sapContent_Shadow1);border-radius:var(--fdButton_Menu_Border_Radius);box-shadow:var(--sapContent_Shadow1);overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-menu--overflow.is-focus,.fd-menu--overflow:focus{outline:none;z-index:5}.fd-menu--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-menu--overflow::-webkit-scrollbar-corner,.fd-menu--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-menu--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-menu--overflow::-webkit-scrollbar-thumb:active,.fd-menu--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-menu--overflow::-webkit-scrollbar-corner,.fd-menu--overflow::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-corner,.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-corner,[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu--overflow .fd-menu__list{box-shadow:none}.fd-menu--overflow .fd-menu__item:first-child{border-top-right-radius:0}.fd-menu--overflow .fd-menu__item:first-child[dir=rtl],[dir=rtl] .fd-menu--overflow .fd-menu__item:first-child{border-top-left-radius:0;border-top-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu--overflow .fd-menu__item:last-of-type{border-bottom-right-radius:0}.fd-menu--overflow .fd-menu__item:last-of-type[dir=rtl],[dir=rtl] .fd-menu--overflow .fd-menu__item:last-of-type{border-bottom-left-radius:0;border-bottom-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu--full-width{max-width:100%}.fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu--icons .fd-menu__title:first-child{margin-left:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__title:first-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:first-child{margin-left:0;margin-right:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__title:last-child{margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__title:last-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:last-child{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:0}.fd-menu--icons .fd-menu__title:only-child{margin-left:var(--fdMenu_Icon_Width);margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__title:only-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:only-child{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__input,.fd-menu--icons .fd-menu__input[dir=rtl],.fd-menu--icons input,.fd-menu--icons input[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__input,[dir=rtl] .fd-menu--icons input{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--mobile{--fdMenu_Icon_Before_Margin:0 0 0 -1rem;--fdMenu_Icon_After_Margin:0 -1rem 0 0;--fdMenu_Icon_Width:2.75rem;--fdMenu_Item_Spacing_Left:1rem;--fdMenu_Item_Spacing_Right:1rem;--fdMenu_Shortcut_Padding_Right:1rem;--fdMenu_Text_Spacing_Right:1rem;max-width:100%;width:100%}.fd-menu--mobile .fd-menu__list,.fd-menu--mobile .fd-menu__sublist{-webkit-box-shadow:none;border-radius:0;box-shadow:none;margin:0;position:static}.fd-menu--mobile .fd-menu__list .fd-menu__item,.fd-menu--mobile .fd-menu__sublist .fd-menu__item{border-radius:0}.fd-menu--mobile.fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu--mobile.fd-menu--icons .fd-menu__input,.fd-menu--mobile.fd-menu--icons input{margin-left:1rem;margin-right:1rem}.fd-menu[class*=-compact],.fd-menu[class*=-condensed],[class*=-compact] .fd-menu:not([class*=-cozy]),[class*=-condensed] .fd-menu:not([class*=-cozy]){--fdMenu_Icon_Before_Margin:0 0 0 -.5rem;--fdMenu_Icon_After_Margin:0 -.75rem 0 0;--fdMenu_Icon_Width:2rem;--fdMenu_Link_Height:2rem;--fdMenu_Item_Spacing_Left:.5rem;--fdMenu_Item_Spacing_Right:.5rem;--fdMenu_Shortcut_Padding_Right:.5rem;--fdMenu_Text_Spacing_Right:.5rem}.fd-menu[class*=-compact].fd-menu--icons,.fd-menu[class*=-condensed].fd-menu--icons,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu[class*=-compact].fd-menu--icons .fd-menu__input,.fd-menu[class*=-compact].fd-menu--icons input,.fd-menu[class*=-condensed].fd-menu--icons .fd-menu__input,.fd-menu[class*=-condensed].fd-menu--icons input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons input,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons input{margin-left:.5rem;margin-right:.5rem}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.fd-menu-popover__body--static{position:static}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
170
169
  }
171
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MenuComponent, decorators: [{
172
171
  type: Component,
173
- args: [{ selector: 'fdp-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [contentDensityObserverProviders()], standalone: true, imports: [AsyncPipe], template: "<ng-template #menuTemplate>\n <nav\n [attr.id]=\"menuId\"\n [attr.dir]=\"direction\"\n class=\"fd-menu\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n tabindex=\"0\"\n role=\"menu\"\n (click)=\"_onClick()\"\n (keydown)=\"_onKeydown($event)\"\n >\n <div class=\"fd-menu__list\">\n <ng-content></ng-content>\n </div>\n </nav>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-dialog__body{--fdButton_Menu_Border_Radius:0}.fd-menu{--fdMenu_Icon_Width:2.25rem;--fdMenu_Icon_Before_Margin:0 0 0 -.75rem;--fdMenu_Icon_After_Margin:0 -1rem 0 0;--fdMenu_Link_Height:2.75rem;--fdMenu_Item_Spacing_Left:.75rem;--fdMenu_Item_Spacing_Right:.75rem;--fdMenu_Item_Border_Bottom_Color:transparent;--fdMenu_Shortcut_Padding_Left:1rem;--fdMenu_Shortcut_Padding_Right:.75rem;--fdMenu_Text_Spacing_Right:.75rem;--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Regular);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Background_Color:var(--sapList_Background);--fdMenu_Active_Dot_Size:.75rem;-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:-moz-fit-content;width:fit-content}.fd-menu:after,.fd-menu:before{box-sizing:inherit;font-size:inherit}.fd-menu__list,.fd-menu__sublist{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;-webkit-box-shadow:var(--sapContent_Shadow1);border:0;border-radius:var(--fdButton_Menu_Border_Radius);box-shadow:var(--sapContent_Shadow1);box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;max-width:20rem;padding:0}.fd-menu__list:after,.fd-menu__list:before,.fd-menu__sublist:after,.fd-menu__sublist:before{box-sizing:inherit;font-size:inherit}.fd-menu__list--no-shadow,.fd-menu__sublist--no-shadow{box-shadow:none}.fd-menu__sublist{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;left:100%;line-height:var(--sapContent_LineHeight);margin:.25rem 0 0 -.25rem;min-width:100%;padding:0;position:absolute;top:0;z-index:2}.fd-menu__sublist:after,.fd-menu__sublist:before{box-sizing:inherit;font-size:inherit}.fd-menu__sublist[dir=rtl],[dir=rtl] .fd-menu__sublist{left:auto;margin:.25rem -.25rem 0 0;right:100%}.fd-menu__sublist[aria-hidden=true]{display:none}.fd-menu__list>.fd-menu__item{position:relative;width:100%}.fd-menu__list--overflow{flex-wrap:nowrap;overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow.is-focus,.fd-menu__list--overflow:focus{outline:none;z-index:5}.fd-menu__list--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-menu__list--overflow::-webkit-scrollbar-corner,.fd-menu__list--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-menu__list--overflow::-webkit-scrollbar-thumb:active,.fd-menu__list--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-menu__list--overflow::-webkit-scrollbar-corner,.fd-menu__list--overflow::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-corner,.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-corner,[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu__separator{-webkit-box-sizing:border-box;background-color:var(--sapGroup_ContentBorderColor);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.0625rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-menu__separator:after,.fd-menu__separator:before{box-sizing:inherit;font-size:inherit}.fd-menu__item{-webkit-box-sizing:border-box;background-color:var(--sapList_Background);border:0;border-radius:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;padding:0;position:relative}.fd-menu__item:after,.fd-menu__item:before{box-sizing:inherit;font-size:inherit}.fd-menu__item:first-child,.fd-menu__item:first-child .fd-menu__link:after{border-top-left-radius:var(--fdButton_Menu_Border_Radius);border-top-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item:last-of-type,.fd-menu__item:last-of-type .fd-menu__link:after{border-bottom-left-radius:var(--fdButton_Menu_Border_Radius);border-bottom-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item.has-separator{border-bottom:.0625rem solid var(--sapGroup_ContentBorderColor)}.fd-menu__link{-webkit-box-sizing:border-box;align-items:center;background:var(--fdMenu_Item_Background_Color);border:0;border-bottom:.0625rem solid var(--fdMenu_Item_Border_Bottom_Color);border-radius:inherit;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdMenu_Link_Height);line-height:var(--sapContent_LineHeight);margin:0;outline:none;padding:0;padding-left:var(--fdMenu_Item_Spacing_Left);padding-right:var(--fdMenu_Item_Spacing_Right);text-decoration:none;width:100%}.fd-menu__link:after,.fd-menu__link:before{box-sizing:inherit;font-size:inherit}.fd-menu__link[dir=rtl],[dir=rtl] .fd-menu__link{padding-left:var(--fdMenu_Item_Spacing_Right);padding-right:var(--fdMenu_Item_Spacing_Left)}.fd-menu__link.is-focus:after,.fd-menu__link:focus:after{border-color:var(--sapContent_FocusColor);border-radius:0!important;border-style:var(--sapContent_FocusStyle);border-width:var(--sapContent_FocusWidth);content:\"\";inset:.125rem;pointer-events:none;position:absolute}.fd-menu__link.is-hover,.fd-menu__link:hover{--fdMenu_Item_Background_Color:var(--sapList_Hover_Background)}.fd-menu__link.is-selected,.fd-menu__link[aria-selected=true]{--fdMenu_Item_Background_Color:var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color:var(--sapList_SelectionBorderColor)}.fd-menu__link.is-selected.is-hover:not(:active):not(.is-active),.fd-menu__link.is-selected:hover:not(:active):not(.is-active),.fd-menu__link[aria-selected=true].is-hover:not(:active):not(.is-active),.fd-menu__link[aria-selected=true]:hover:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link.is-selected.is-focus,.fd-menu__link.is-selected:focus,.fd-menu__link[aria-selected=true].is-focus,.fd-menu__link[aria-selected=true]:focus{z-index:5}.fd-menu__link.is-selected.is-focus:after,.fd-menu__link.is-selected:focus:after,.fd-menu__link[aria-selected=true].is-focus:after,.fd-menu__link[aria-selected=true]:focus:after{bottom:.125rem}.fd-menu__link.is-active,.fd-menu__link:active{--fdMenu_Item_Background_Color:var(--sapList_Active_Background);--fdMenu_Icon_Color:var(--sapList_Active_TextColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Active);--fdMenu_Text_Color:var(--fdMenu_Text_Color_Active)}.fd-menu__link.is-active:after,.fd-menu__link:active:after{display:none}.fd-menu__link.is-active.is-focus,.fd-menu__link.is-active:focus,.fd-menu__link:active.is-focus,.fd-menu__link:active:focus{outline-color:var(--fdMenu_Active_State_Focus);z-index:5}.fd-menu__link.is-disabled,.fd-menu__link:disabled,.fd-menu__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-menu__link.is-disabled.is-focus,.fd-menu__link.is-disabled:focus,.fd-menu__link:disabled.is-focus,.fd-menu__link:disabled:focus,.fd-menu__link[aria-disabled=true].is-focus,.fd-menu__link[aria-disabled=true]:focus{z-index:5}.fd-menu__link.is-disabled.is-focus:after,.fd-menu__link.is-disabled:focus:after,.fd-menu__link:disabled.is-focus:after,.fd-menu__link:disabled:focus:after,.fd-menu__link[aria-disabled=true].is-focus:after,.fd-menu__link[aria-disabled=true]:focus:after{display:none}.fd-menu__link.has-child{--fdMenu_Item_Spacing_Right:0}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color:var(--sapList_SelectionBorderColor)}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-hover:not(:active):not(.is-active),.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):hover:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-hover:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):hover:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-focus,.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):focus,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-focus,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):focus{z-index:5}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-focus:after,.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):focus:after,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-focus:after,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):focus:after{bottom:.125rem}.fd-menu__title{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Text_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:left;text-overflow:ellipsis;text-shadow:var(--fdMenu_Text_Shadow);white-space:nowrap;width:100%}.fd-menu__title:after,.fd-menu__title:before{box-sizing:inherit;font-size:inherit}.fd-menu__title[dir=rtl],[dir=rtl] .fd-menu__title{text-align:right}.fd-menu__addon-after,.fd-menu__addon-before{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:transparent;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Icon_Color);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontLargeSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-width:var(--fdMenu_Icon_Width);min-width:var(--fdMenu_Icon_Width);padding:0;text-shadow:var(--fdMenu_Text_Shadow);width:var(--fdMenu_Icon_Width)}.fd-menu__addon-after:after,.fd-menu__addon-after:before,.fd-menu__addon-before:after,.fd-menu__addon-before:before{box-sizing:inherit;font-size:inherit}.fd-menu__addon-after [class*=sap-icon],.fd-menu__addon-after[class*=sap-icon],.fd-menu__addon-before [class*=sap-icon],.fd-menu__addon-before[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;font-size:inherit;line-height:1}.fd-menu__addon-after--submenu{font-size:var(--fdMenu_Affordance_Arrow_Size)}.fd-menu__addon-after--submenu:before{content:\"\\e066\"}.fd-menu__addon-after--submenu:before,.fd-menu__addon-after--submenu[dir=rtl]:before,[dir=rtl] .fd-menu__addon-after--submenu:before{font-family:SAP-icons;text-align:center;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none}.fd-menu__addon-after--submenu[dir=rtl]:before,[dir=rtl] .fd-menu__addon-after--submenu:before{content:\"\\e067\"}.fd-menu__active-dot{-webkit-box-sizing:border-box;background:var(--sapContent_Selected_ForegroundColor);border:0;border-radius:100%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdMenu_Active_Dot_Size);line-height:var(--sapContent_LineHeight);margin:0;min-width:var(--fdMenu_Active_Dot_Size);padding:0;width:var(--fdMenu_Active_Dot_Size)}.fd-menu__active-dot:after,.fd-menu__active-dot:before{box-sizing:inherit;font-size:inherit}.fd-menu__checkmark [class*=sap-icon],.fd-menu__checkmark[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapContent_Selected_ForegroundColor);font-size:inherit;font-size:1rem;line-height:1}.fd-menu__shortcut{-webkit-box-sizing:border-box;-ms-flex-negative:0;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Shortcut_Color);display:flex;flex-shrink:0;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;padding-left:var(--fdMenu_Shortcut_Padding_Left);text-overflow:ellipsis;white-space:nowrap}.fd-menu__shortcut:after,.fd-menu__shortcut:before{box-sizing:inherit;font-size:inherit}.fd-menu__shortcut[dir=rtl],[dir=rtl] .fd-menu__shortcut{padding-left:0;padding-right:var(--fdMenu_Shortcut_Padding_Left)}.fd-menu__shortcut:last-child{padding-left:var(--fdMenu_Shortcut_Padding_Left);padding-right:var(--fdMenu_Shortcut_Padding_Right)}.fd-menu__shortcut:last-child[dir=rtl],[dir=rtl] .fd-menu__shortcut:last-child{padding-left:var(--fdMenu_Shortcut_Padding_Right);padding-right:var(--fdMenu_Shortcut_Padding_Left)}.fd-menu--overflow{-webkit-box-shadow:var(--sapContent_Shadow1);border-radius:var(--fdButton_Menu_Border_Radius);box-shadow:var(--sapContent_Shadow1);overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-menu--overflow.is-focus,.fd-menu--overflow:focus{outline:none;z-index:5}.fd-menu--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-menu--overflow::-webkit-scrollbar-corner,.fd-menu--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-menu--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-menu--overflow::-webkit-scrollbar-thumb:active,.fd-menu--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-menu--overflow::-webkit-scrollbar-corner,.fd-menu--overflow::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-corner,.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-corner,[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu--overflow .fd-menu__list{box-shadow:none}.fd-menu--overflow .fd-menu__item:first-child{border-top-right-radius:0}.fd-menu--overflow .fd-menu__item:first-child[dir=rtl],[dir=rtl] .fd-menu--overflow .fd-menu__item:first-child{border-top-left-radius:0;border-top-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu--overflow .fd-menu__item:last-of-type{border-bottom-right-radius:0}.fd-menu--overflow .fd-menu__item:last-of-type[dir=rtl],[dir=rtl] .fd-menu--overflow .fd-menu__item:last-of-type{border-bottom-left-radius:0;border-bottom-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu--full-width{max-width:100%}.fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu--icons .fd-menu__title:first-child{margin-left:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__title:first-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:first-child{margin-left:0;margin-right:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__title:last-child{margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__title:last-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:last-child{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:0}.fd-menu--icons .fd-menu__title:only-child{margin-left:var(--fdMenu_Icon_Width);margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__title:only-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:only-child{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__input,.fd-menu--icons .fd-menu__input[dir=rtl],.fd-menu--icons input,.fd-menu--icons input[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__input,[dir=rtl] .fd-menu--icons input{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--mobile{--fdMenu_Icon_Before_Margin:0 0 0 -1rem;--fdMenu_Icon_After_Margin:0 -1rem 0 0;--fdMenu_Icon_Width:2.75rem;--fdMenu_Item_Spacing_Left:1rem;--fdMenu_Item_Spacing_Right:1rem;--fdMenu_Shortcut_Padding_Right:1rem;--fdMenu_Text_Spacing_Right:1rem;max-width:100%;width:100%}.fd-menu--mobile .fd-menu__list,.fd-menu--mobile .fd-menu__sublist{-webkit-box-shadow:none;border-radius:0;box-shadow:none;margin:0;position:static}.fd-menu--mobile .fd-menu__list .fd-menu__item,.fd-menu--mobile .fd-menu__sublist .fd-menu__item{border-radius:0}.fd-menu--mobile.fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu--mobile.fd-menu--icons .fd-menu__input,.fd-menu--mobile.fd-menu--icons input{margin-left:1rem;margin-right:1rem}.fd-menu[class*=-compact],.fd-menu[class*=-condensed],[class*=-compact] .fd-menu:not([class*=-cozy]),[class*=-condensed] .fd-menu:not([class*=-cozy]){--fdMenu_Icon_Before_Margin:0 0 0 -.5rem;--fdMenu_Icon_After_Margin:0 -.75rem 0 0;--fdMenu_Icon_Width:2rem;--fdMenu_Link_Height:2rem;--fdMenu_Item_Spacing_Left:.5rem;--fdMenu_Item_Spacing_Right:.5rem;--fdMenu_Shortcut_Padding_Right:.5rem;--fdMenu_Text_Spacing_Right:.5rem}.fd-menu[class*=-compact].fd-menu--icons,.fd-menu[class*=-condensed].fd-menu--icons,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu[class*=-compact].fd-menu--icons .fd-menu__input,.fd-menu[class*=-compact].fd-menu--icons input,.fd-menu[class*=-condensed].fd-menu--icons .fd-menu__input,.fd-menu[class*=-condensed].fd-menu--icons input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons input,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons input{margin-left:.5rem;margin-right:.5rem}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.fd-menu-popover__body--static{position:static}\n"] }]
172
+ args: [{ selector: 'fdp-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [contentDensityObserverProviders()], standalone: true, template: "<ng-template #menuTemplate>\n <nav\n [attr.id]=\"menuId\"\n [attr.dir]=\"direction\"\n class=\"fd-menu\"\n [class.is-compact]=\"contentDensityObserver.isCompactSignal()\"\n tabindex=\"0\"\n role=\"menu\"\n (click)=\"_onClick()\"\n (keydown)=\"_onKeydown($event)\"\n >\n <div class=\"fd-menu__list\">\n <ng-content></ng-content>\n </div>\n </nav>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-dialog__body{--fdButton_Menu_Border_Radius:0}.fd-menu{--fdMenu_Icon_Width:2.25rem;--fdMenu_Icon_Before_Margin:0 0 0 -.75rem;--fdMenu_Icon_After_Margin:0 -1rem 0 0;--fdMenu_Link_Height:2.75rem;--fdMenu_Item_Spacing_Left:.75rem;--fdMenu_Item_Spacing_Right:.75rem;--fdMenu_Item_Border_Bottom_Color:transparent;--fdMenu_Shortcut_Padding_Left:1rem;--fdMenu_Shortcut_Padding_Right:.75rem;--fdMenu_Text_Spacing_Right:.75rem;--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Regular);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Background_Color:var(--sapList_Background);--fdMenu_Active_Dot_Size:.75rem;-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:-moz-fit-content;width:fit-content}.fd-menu:after,.fd-menu:before{box-sizing:inherit;font-size:inherit}.fd-menu__list,.fd-menu__sublist{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;-webkit-box-shadow:var(--sapContent_Shadow1);border:0;border-radius:var(--fdButton_Menu_Border_Radius);box-shadow:var(--sapContent_Shadow1);box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;max-width:20rem;padding:0}.fd-menu__list:after,.fd-menu__list:before,.fd-menu__sublist:after,.fd-menu__sublist:before{box-sizing:inherit;font-size:inherit}.fd-menu__list--no-shadow,.fd-menu__sublist--no-shadow{box-shadow:none}.fd-menu__sublist{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;left:100%;line-height:var(--sapContent_LineHeight);margin:.25rem 0 0 -.25rem;min-width:100%;padding:0;position:absolute;top:0;z-index:2}.fd-menu__sublist:after,.fd-menu__sublist:before{box-sizing:inherit;font-size:inherit}.fd-menu__sublist[dir=rtl],[dir=rtl] .fd-menu__sublist{left:auto;margin:.25rem -.25rem 0 0;right:100%}.fd-menu__sublist[aria-hidden=true]{display:none}.fd-menu__list>.fd-menu__item{position:relative;width:100%}.fd-menu__list--overflow{flex-wrap:nowrap;overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow.is-focus,.fd-menu__list--overflow:focus{outline:none;z-index:5}.fd-menu__list--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-menu__list--overflow::-webkit-scrollbar-corner,.fd-menu__list--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-menu__list--overflow::-webkit-scrollbar-thumb:active,.fd-menu__list--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-menu__list--overflow::-webkit-scrollbar-corner,.fd-menu__list--overflow::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-corner,.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-corner,[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu__separator{-webkit-box-sizing:border-box;background-color:var(--sapGroup_ContentBorderColor);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.0625rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-menu__separator:after,.fd-menu__separator:before{box-sizing:inherit;font-size:inherit}.fd-menu__item{-webkit-box-sizing:border-box;background-color:var(--sapList_Background);border:0;border-radius:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;padding:0;position:relative}.fd-menu__item:after,.fd-menu__item:before{box-sizing:inherit;font-size:inherit}.fd-menu__item:first-child,.fd-menu__item:first-child .fd-menu__link:after{border-top-left-radius:var(--fdButton_Menu_Border_Radius);border-top-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item:last-of-type,.fd-menu__item:last-of-type .fd-menu__link:after{border-bottom-left-radius:var(--fdButton_Menu_Border_Radius);border-bottom-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item.has-separator{border-bottom:.0625rem solid var(--sapGroup_ContentBorderColor)}.fd-menu__link{-webkit-box-sizing:border-box;align-items:center;background:var(--fdMenu_Item_Background_Color);border:0;border-bottom:.0625rem solid var(--fdMenu_Item_Border_Bottom_Color);border-radius:inherit;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdMenu_Link_Height);line-height:var(--sapContent_LineHeight);margin:0;outline:none;padding:0;padding-left:var(--fdMenu_Item_Spacing_Left);padding-right:var(--fdMenu_Item_Spacing_Right);text-decoration:none;width:100%}.fd-menu__link:after,.fd-menu__link:before{box-sizing:inherit;font-size:inherit}.fd-menu__link[dir=rtl],[dir=rtl] .fd-menu__link{padding-left:var(--fdMenu_Item_Spacing_Right);padding-right:var(--fdMenu_Item_Spacing_Left)}.fd-menu__link.is-focus:after,.fd-menu__link:focus:after{border-color:var(--sapContent_FocusColor);border-radius:0!important;border-style:var(--sapContent_FocusStyle);border-width:var(--sapContent_FocusWidth);content:\"\";inset:.125rem;pointer-events:none;position:absolute}.fd-menu__link.is-hover,.fd-menu__link:hover{--fdMenu_Item_Background_Color:var(--sapList_Hover_Background)}.fd-menu__link.is-selected,.fd-menu__link[aria-selected=true]{--fdMenu_Item_Background_Color:var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color:var(--sapList_SelectionBorderColor)}.fd-menu__link.is-selected.is-hover:not(:active):not(.is-active),.fd-menu__link.is-selected:hover:not(:active):not(.is-active),.fd-menu__link[aria-selected=true].is-hover:not(:active):not(.is-active),.fd-menu__link[aria-selected=true]:hover:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link.is-selected.is-focus,.fd-menu__link.is-selected:focus,.fd-menu__link[aria-selected=true].is-focus,.fd-menu__link[aria-selected=true]:focus{z-index:5}.fd-menu__link.is-selected.is-focus:after,.fd-menu__link.is-selected:focus:after,.fd-menu__link[aria-selected=true].is-focus:after,.fd-menu__link[aria-selected=true]:focus:after{bottom:.125rem}.fd-menu__link.is-active,.fd-menu__link:active{--fdMenu_Item_Background_Color:var(--sapList_Active_Background);--fdMenu_Icon_Color:var(--sapList_Active_TextColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Active);--fdMenu_Text_Color:var(--fdMenu_Text_Color_Active)}.fd-menu__link.is-active:after,.fd-menu__link:active:after{display:none}.fd-menu__link.is-active.is-focus,.fd-menu__link.is-active:focus,.fd-menu__link:active.is-focus,.fd-menu__link:active:focus{outline-color:var(--fdMenu_Active_State_Focus);z-index:5}.fd-menu__link.is-disabled,.fd-menu__link:disabled,.fd-menu__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-menu__link.is-disabled.is-focus,.fd-menu__link.is-disabled:focus,.fd-menu__link:disabled.is-focus,.fd-menu__link:disabled:focus,.fd-menu__link[aria-disabled=true].is-focus,.fd-menu__link[aria-disabled=true]:focus{z-index:5}.fd-menu__link.is-disabled.is-focus:after,.fd-menu__link.is-disabled:focus:after,.fd-menu__link:disabled.is-focus:after,.fd-menu__link:disabled:focus:after,.fd-menu__link[aria-disabled=true].is-focus:after,.fd-menu__link[aria-disabled=true]:focus:after{display:none}.fd-menu__link.has-child{--fdMenu_Item_Spacing_Right:0}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color:var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color:var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color:var(--sapList_SelectionBorderColor)}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-hover:not(:active):not(.is-active),.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):hover:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-hover:not(:active):not(.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):hover:not(:active):not(.is-active){--fdMenu_Item_Background_Color:var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color:var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-focus,.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):focus,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-focus,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):focus{z-index:5}.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active).is-focus:after,.fd-menu__link.has-child.is-expanded:not(:active):not(.is-active):focus:after,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active).is-focus:after,.fd-menu__link.has-child[aria-expanded=true]:not(:active):not(.is-active):focus:after{bottom:.125rem}.fd-menu__title{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Text_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:left;text-overflow:ellipsis;text-shadow:var(--fdMenu_Text_Shadow);white-space:nowrap;width:100%}.fd-menu__title:after,.fd-menu__title:before{box-sizing:inherit;font-size:inherit}.fd-menu__title[dir=rtl],[dir=rtl] .fd-menu__title{text-align:right}.fd-menu__addon-after,.fd-menu__addon-before{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:transparent;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Icon_Color);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontLargeSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-width:var(--fdMenu_Icon_Width);min-width:var(--fdMenu_Icon_Width);padding:0;text-shadow:var(--fdMenu_Text_Shadow);width:var(--fdMenu_Icon_Width)}.fd-menu__addon-after:after,.fd-menu__addon-after:before,.fd-menu__addon-before:after,.fd-menu__addon-before:before{box-sizing:inherit;font-size:inherit}.fd-menu__addon-after [class*=sap-icon],.fd-menu__addon-after[class*=sap-icon],.fd-menu__addon-before [class*=sap-icon],.fd-menu__addon-before[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;font-size:inherit;line-height:1}.fd-menu__addon-after--submenu{font-size:var(--fdMenu_Affordance_Arrow_Size)}.fd-menu__addon-after--submenu:before{content:\"\\e066\"}.fd-menu__addon-after--submenu:before,.fd-menu__addon-after--submenu[dir=rtl]:before,[dir=rtl] .fd-menu__addon-after--submenu:before{font-family:SAP-icons;text-align:center;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none}.fd-menu__addon-after--submenu[dir=rtl]:before,[dir=rtl] .fd-menu__addon-after--submenu:before{content:\"\\e067\"}.fd-menu__active-dot{-webkit-box-sizing:border-box;background:var(--sapContent_Selected_ForegroundColor);border:0;border-radius:100%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdMenu_Active_Dot_Size);line-height:var(--sapContent_LineHeight);margin:0;min-width:var(--fdMenu_Active_Dot_Size);padding:0;width:var(--fdMenu_Active_Dot_Size)}.fd-menu__active-dot:after,.fd-menu__active-dot:before{box-sizing:inherit;font-size:inherit}.fd-menu__checkmark [class*=sap-icon],.fd-menu__checkmark[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapContent_Selected_ForegroundColor);font-size:inherit;font-size:1rem;line-height:1}.fd-menu__shortcut{-webkit-box-sizing:border-box;-ms-flex-negative:0;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdMenu_Shortcut_Color);display:flex;flex-shrink:0;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;padding-left:var(--fdMenu_Shortcut_Padding_Left);text-overflow:ellipsis;white-space:nowrap}.fd-menu__shortcut:after,.fd-menu__shortcut:before{box-sizing:inherit;font-size:inherit}.fd-menu__shortcut[dir=rtl],[dir=rtl] .fd-menu__shortcut{padding-left:0;padding-right:var(--fdMenu_Shortcut_Padding_Left)}.fd-menu__shortcut:last-child{padding-left:var(--fdMenu_Shortcut_Padding_Left);padding-right:var(--fdMenu_Shortcut_Padding_Right)}.fd-menu__shortcut:last-child[dir=rtl],[dir=rtl] .fd-menu__shortcut:last-child{padding-left:var(--fdMenu_Shortcut_Padding_Right);padding-right:var(--fdMenu_Shortcut_Padding_Left)}.fd-menu--overflow{-webkit-box-shadow:var(--sapContent_Shadow1);border-radius:var(--fdButton_Menu_Border_Radius);box-shadow:var(--sapContent_Shadow1);overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-menu--overflow.is-focus,.fd-menu--overflow:focus{outline:none;z-index:5}.fd-menu--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-menu--overflow::-webkit-scrollbar-corner,.fd-menu--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-menu--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-menu--overflow::-webkit-scrollbar-thumb:active,.fd-menu--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-menu--overflow::-webkit-scrollbar-corner,.fd-menu--overflow::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-corner,.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-corner,[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu--overflow .fd-menu__list{box-shadow:none}.fd-menu--overflow .fd-menu__item:first-child{border-top-right-radius:0}.fd-menu--overflow .fd-menu__item:first-child[dir=rtl],[dir=rtl] .fd-menu--overflow .fd-menu__item:first-child{border-top-left-radius:0;border-top-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu--overflow .fd-menu__item:last-of-type{border-bottom-right-radius:0}.fd-menu--overflow .fd-menu__item:last-of-type[dir=rtl],[dir=rtl] .fd-menu--overflow .fd-menu__item:last-of-type{border-bottom-left-radius:0;border-bottom-right-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu--full-width{max-width:100%}.fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu--icons .fd-menu__title:first-child{margin-left:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__title:first-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:first-child{margin-left:0;margin-right:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__title:last-child{margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__title:last-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:last-child{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:0}.fd-menu--icons .fd-menu__title:only-child{margin-left:var(--fdMenu_Icon_Width);margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__title:only-child[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__title:only-child{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__input,.fd-menu--icons .fd-menu__input[dir=rtl],.fd-menu--icons input,.fd-menu--icons input[dir=rtl],[dir=rtl] .fd-menu--icons .fd-menu__input,[dir=rtl] .fd-menu--icons input{margin-left:var(--fdMenu_Text_Spacing_Right);margin-right:var(--fdMenu_Text_Spacing_Right)}.fd-menu--mobile{--fdMenu_Icon_Before_Margin:0 0 0 -1rem;--fdMenu_Icon_After_Margin:0 -1rem 0 0;--fdMenu_Icon_Width:2.75rem;--fdMenu_Item_Spacing_Left:1rem;--fdMenu_Item_Spacing_Right:1rem;--fdMenu_Shortcut_Padding_Right:1rem;--fdMenu_Text_Spacing_Right:1rem;max-width:100%;width:100%}.fd-menu--mobile .fd-menu__list,.fd-menu--mobile .fd-menu__sublist{-webkit-box-shadow:none;border-radius:0;box-shadow:none;margin:0;position:static}.fd-menu--mobile .fd-menu__list .fd-menu__item,.fd-menu--mobile .fd-menu__sublist .fd-menu__item{border-radius:0}.fd-menu--mobile.fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu--mobile.fd-menu--icons .fd-menu__input,.fd-menu--mobile.fd-menu--icons input{margin-left:1rem;margin-right:1rem}.fd-menu[class*=-compact],.fd-menu[class*=-condensed],[class*=-compact] .fd-menu:not([class*=-cozy]),[class*=-condensed] .fd-menu:not([class*=-cozy]){--fdMenu_Icon_Before_Margin:0 0 0 -.5rem;--fdMenu_Icon_After_Margin:0 -.75rem 0 0;--fdMenu_Icon_Width:2rem;--fdMenu_Link_Height:2rem;--fdMenu_Item_Spacing_Left:.5rem;--fdMenu_Item_Spacing_Right:.5rem;--fdMenu_Shortcut_Padding_Right:.5rem;--fdMenu_Text_Spacing_Right:.5rem}.fd-menu[class*=-compact].fd-menu--icons,.fd-menu[class*=-condensed].fd-menu--icons,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons{--fdMenu_Item_Spacing_Left:0;--fdMenu_Item_Spacing_Right:0}.fd-menu[class*=-compact].fd-menu--icons .fd-menu__input,.fd-menu[class*=-compact].fd-menu--icons input,.fd-menu[class*=-condensed].fd-menu--icons .fd-menu__input,.fd-menu[class*=-condensed].fd-menu--icons input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons input,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons input{margin-left:.5rem;margin-right:.5rem}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.fd-menu-popover__body--static{position:static}\n"] }]
174
173
  }], ctorParameters: () => [{ type: i1.RtlService, decorators: [{
175
174
  type: Optional
176
175
  }] }, { type: i2.ContentDensityObserver }], propDecorators: { id: [{
@@ -190,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
190
189
  close: [{
191
190
  type: Output
192
191
  }] } });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUkxRDs7O0dBR0c7QUFDSCxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUM7QUFDakMsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0FBRXRCOzs7R0FHRztBQVdILE1BQU0sT0FBTyxhQUFhO0lBQ3RC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Q0FBQywrQkFBK0IsRUFBRSxDQUFDLGNBQ2xDLElBQUksV0FDUCxDQUFDLFNBQVMsQ0FBQzs7MEJBb0VmLFFBQVE7OEVBL0RULEVBQUU7c0JBREwsS0FBSztnQkFnQk4sZUFBZTtzQkFEZCxLQUFLO2dCQU9OLFNBQVM7c0JBRFIsS0FBSztnQkFRTixXQUFXO3NCQURWLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFPNUMsU0FBUztzQkFEUixlQUFlO3VCQUFDLGlCQUFpQjs7UUFPbEMsNERBQTREO1FBQzVELEtBQUs7c0JBRkosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBFTlRFUiwgRVNDQVBFLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBLZXlVdGlsLCBSdGxTZXJ2aWNlLCB3YXJuT25jZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9tZW51LWl0ZW0uY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgTWVudUNsb3NlTWV0aG9kID0gdm9pZCB8ICdtb3VzZScgfCAna2V5Ym9hcmQnIHwgJ3RhYicgfCAnYXJyb3cnO1xuXG4vKipcbiAqIFZhcmlhYmxlcyBmb3IgZ2VuZXJhdGluZyBtZW51IElEcy5cbiAqIE5lZWRlZCBmb3IgZXN0YWJsaXNoaW5nICdhcmlhLWNvbnRyb2wnIGJldHdlZW4gdHJpZ2dlciBhbmQgbWVudS5cbiAqL1xuY29uc3QgTUVOVV9JRF9ST09UID0gJ2ZkcC1tZW51LSc7XG5sZXQgbWVudUlkQ291bnRlciA9IDA7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIE1lbnUgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQuIFVzZSBgZmQtbWVudWAgZnJvbSBgQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnVgIGluc3RlYWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbWVudS5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKCldLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIE1lbnUgSUQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBpZChpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2lkID0gaWQ7XG5cbiAgICAgICAgLy8gVXNlICdpZCcgcHJvcGVydHkgdG8gY3JlYXRlIG1lbnUgSUQgZm9yIGFyaWEtY29udHJvbCBwdXJwb3Nlcy5cbiAgICAgICAgdGhpcy5tZW51SWQgPSBNRU5VX0lEX1JPT1QgKyBpZDtcbiAgICB9XG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG1lbnUgY2FuIGJlIG9wZW5lZCB1c2luZyBhcnJvdyBrZXlzXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgb3BlbkJ5QXJyb3dLZXlzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEhvcml6b250YWwgcG9zaXRpb24gb2YgbWVudSBpbiByZWxhdGlvbiB0byB0cmlnZ2VyIGVsZW1lbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB4UG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJyA9ICdhZnRlcic7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGVSZWYgbmVlZHMgdG8gYmUgYXZhaWxhYmxlIHRvIHRoZSBtZW51IHRyaWdnZXIgZm9yXG4gICAgICogb3BlbmluZyBpbiBhIENESyBvdmVybGF5LlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQ2hpbGQgaXRlbXMgb2YgdGhlIG1lbnUuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihNZW51SXRlbUNvbXBvbmVudClcbiAgICBtZW51SXRlbXM6IFF1ZXJ5TGlzdDxNZW51SXRlbUNvbXBvbmVudD47XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGV2ZW50IHdoZW4gbWVudSBjbG9zZXNcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICBjbG9zZTogRXZlbnRFbWl0dGVyPE1lbnVDbG9zZU1ldGhvZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogTWVudSBkaXJlY3Rpb24gKi9cbiAgICBkaXJlY3Rpb246ICdsdHInIHwgJ3J0bCcgPSAnbHRyJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbWVudUlkOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lkOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2tleU1hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxNZW51SXRlbUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYlN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGlyQ2hhbmdlU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcnRsOiBSdGxTZXJ2aWNlLFxuICAgICAgICByZWFkb25seSBjb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLl9ydGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuX3J0bC5ydGwuc3Vic2NyaWJlKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uID0gdmFsdWUgPyAncnRsJyA6ICdsdHInO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldE1lbnVJdGVtQ2FzY2FkZURpcmVjdGlvbigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd2Fybk9uY2UoYE1lbnVDb21wb25lbnQgaXMgZGVwcmVjYXRlZC4gVXNlICdmZC1tZW51JyBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudScgaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm1lbnVJZCkge1xuICAgICAgICAgICAgdGhpcy5tZW51SWQgPSBNRU5VX0lEX1JPT1QgKyBtZW51SWRDb3VudGVyKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWVudUl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLm1lbnVJdGVtcyk7XG4gICAgICAgICAgICB0aGlzLl90YWJTdWJzY3JpcHRpb24gPSB0aGlzLl9rZXlNYW5hZ2VyLnRhYk91dC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UuZW1pdCgna2V5Ym9hcmQnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldE1lbnVJdGVtQ2FzY2FkZURpcmVjdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2UuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fdGFiU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGZvY3VzIG9uIGZpcnN0IGl0ZW1cbiAgICAgKiBAcGFyYW0gb3JpZ2luIEZvY3VzT3JpZ2luXG4gICAgICovXG4gICAgZm9jdXNPbkZpcnN0SXRlbShvcmlnaW46IEZvY3VzT3JpZ2luID0gJ3Byb2dyYW0nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIuc2V0Rm9jdXNPcmlnaW4ob3JpZ2luKS5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBtZW51XG4gICAgICogQHBhcmFtIG1ldGhvZCBtZW51IGNsb3NlIG1ldGhvZFxuICAgICAqL1xuICAgIGNsb3NlTWVudShtZXRob2Q6IE1lbnVDbG9zZU1ldGhvZCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlLmVtaXQobWV0aG9kKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWVudSBrZXlkb3duIGhhbmRsZXJcbiAgICAgKi9cbiAgICBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgTEVGVF9BUlJPVykpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jYXNjYWRlc1JpZ2h0KCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlLmVtaXQoJ2Fycm93Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFJJR0hUX0FSUk9XKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2Nhc2NhZGVzTGVmdCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCdhcnJvdycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBFU0NBUEUpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlLmVtaXQoJ2tleWJvYXJkJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UuZW1pdCgna2V5Ym9hcmQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZW51IGNsaWNrIGhhbmRsZXJcbiAgICAgKi9cbiAgICBfb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCdtb3VzZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBHZXQgc3RyZWFtIG9mIG1lbnUgaXRlbXMgaG92ZXIgY2hhbmdlXG4gICAgICovXG4gICAgX21lbnVJdGVtSG92ZXJDaGFuZ2UoKTogT2JzZXJ2YWJsZTxNZW51SXRlbUNvbXBvbmVudD4ge1xuICAgICAgICBjb25zdCBtZW51SXRlbXMgPSB0aGlzLm1lbnVJdGVtcy5jaGFuZ2VzIGFzIE9ic2VydmFibGU8UXVlcnlMaXN0PE1lbnVJdGVtQ29tcG9uZW50Pj47XG4gICAgICAgIHJldHVybiBtZW51SXRlbXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLm1lbnVJdGVtcyksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGl0ZW1zKSA9PiBtZXJnZSguLi5pdGVtcy5tYXAoKGl0ZW06IE1lbnVJdGVtQ29tcG9uZW50KSA9PiBpdGVtLmhvdmVyZWQpKSlcbiAgICAgICAgKSBhcyBPYnNlcnZhYmxlPE1lbnVJdGVtQ29tcG9uZW50PjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRNZW51SXRlbUNhc2NhZGVEaXJlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5tZW51SXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBzZXQgY2FzY2FkZSBkaXJlY3Rpb25cbiAgICAgICAgdGhpcy5tZW51SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5jYXNjYWRlRGlyZWN0aW9uID0gdGhpcy5fY2FzY2FkZXNMZWZ0KCkgPyAnbGVmdCcgOiAncmlnaHQnO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2hlY2sgaWYgY2FzY2FkZSBtZW51IHNob3VsZCBhcHBlYXIgZnJvbSByaWdodFxuICAgICAqL1xuICAgIF9jYXNjYWRlc1JpZ2h0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHRoaXMueFBvc2l0aW9uID09PSAnYWZ0ZXInICYmIHRoaXMuZGlyZWN0aW9uID09PSAnbHRyJykgfHxcbiAgICAgICAgICAgICh0aGlzLnhQb3NpdGlvbiA9PT0gJ2JlZm9yZScgJiYgdGhpcy5kaXJlY3Rpb24gPT09ICdydGwnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDaGVjayBpZiBjYXNjYWRlIG1lbnUgc2hvdWxkIGFwcGVhciBmcm9tIGxlZnRcbiAgICAgKi9cbiAgICBfY2FzY2FkZXNMZWZ0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHRoaXMueFBvc2l0aW9uID09PSAnYWZ0ZXInICYmIHRoaXMuZGlyZWN0aW9uID09PSAncnRsJykgfHxcbiAgICAgICAgICAgICh0aGlzLnhQb3NpdGlvbiA9PT0gJ2JlZm9yZScgJiYgdGhpcy5kaXJlY3Rpb24gPT09ICdsdHInKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWVudVRlbXBsYXRlPlxuICAgIDxuYXZcbiAgICAgICAgW2F0dHIuaWRdPVwibWVudUlkXCJcbiAgICAgICAgW2F0dHIuZGlyXT1cImRpcmVjdGlvblwiXG4gICAgICAgIGNsYXNzPVwiZmQtbWVudVwiXG4gICAgICAgIFtjbGFzcy5pcy1jb21wYWN0XT1cImNvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuaXNDb21wYWN0JCB8IGFzeW5jXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgICAoY2xpY2spPVwiX29uQ2xpY2soKVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleWRvd24oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtbWVudV9fbGlzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBSTFEOzs7R0FHRztBQUNILE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQztBQUNqQyxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFFdEI7OztHQUdHO0FBVUgsTUFBTSxPQUFPLGFBQWE7SUFDdEIsY0FBYztJQUNkLElBQ0ksRUFBRSxDQUFDLEVBQVU7UUFDYixJQUFJLENB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RTtzQkFETCxLQUFLO2dCQWdCTixlQUFlO3NCQURkLEtBQUs7Z0JBT04sU0FBUztzQkFEUixLQUFLO2dCQVFOLFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU81QyxTQUFTO3NCQURSLGVBQWU7dUJBQUMsaUJBQWlCOztRQU9sQyw0REFBNEQ7UUFDNUQsS0FBSztzQkFGSixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEVOVEVSLCBFU0NBUEUsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgS2V5VXRpbCwgUnRsU2VydmljZSwgd2Fybk9uY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIE1lbnVDbG9zZU1ldGhvZCA9IHZvaWQgfCAnbW91c2UnIHwgJ2tleWJvYXJkJyB8ICd0YWInIHwgJ2Fycm93JztcblxuLyoqXG4gKiBWYXJpYWJsZXMgZm9yIGdlbmVyYXRpbmcgbWVudSBJRHMuXG4gKiBOZWVkZWQgZm9yIGVzdGFibGlzaGluZyAnYXJpYS1jb250cm9sJyBiZXR3ZWVuIHRyaWdnZXIgYW5kIG1lbnUuXG4gKi9cbmNvbnN0IE1FTlVfSURfUk9PVCA9ICdmZHAtbWVudS0nO1xubGV0IG1lbnVJZENvdW50ZXIgPSAwO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBNZW51IGNvbXBvbmVudCBpcyBkZXByZWNhdGVkLiBVc2UgYGZkLW1lbnVgIGZyb20gYEBmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZW51YCBpbnN0ZWFkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL21lbnUuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBNZW51IElEICovXG4gICAgQElucHV0KClcbiAgICBzZXQgaWQoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9pZCA9IGlkO1xuXG4gICAgICAgIC8vIFVzZSAnaWQnIHByb3BlcnR5IHRvIGNyZWF0ZSBtZW51IElEIGZvciBhcmlhLWNvbnRyb2wgcHVycG9zZXMuXG4gICAgICAgIHRoaXMubWVudUlkID0gTUVOVV9JRF9ST09UICsgaWQ7XG4gICAgfVxuICAgIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5faWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBtZW51IGNhbiBiZSBvcGVuZWQgdXNpbmcgYXJyb3cga2V5c1xuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG9wZW5CeUFycm93S2V5cyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBIb3Jpem9udGFsIHBvc2l0aW9uIG9mIG1lbnUgaW4gcmVsYXRpb24gdG8gdHJpZ2dlciBlbGVtZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgeFBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgPSAnYWZ0ZXInO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlUmVmIG5lZWRzIHRvIGJlIGF2YWlsYWJsZSB0byB0aGUgbWVudSB0cmlnZ2VyIGZvclxuICAgICAqIG9wZW5pbmcgaW4gYSBDREsgb3ZlcmxheS5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdtZW51VGVtcGxhdGUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIENoaWxkIGl0ZW1zIG9mIHRoZSBtZW51LlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTWVudUl0ZW1Db21wb25lbnQpXG4gICAgbWVudUl0ZW1zOiBRdWVyeUxpc3Q8TWVudUl0ZW1Db21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCBldmVudCB3aGVuIG1lbnUgY2xvc2VzXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgY2xvc2U6IEV2ZW50RW1pdHRlcjxNZW51Q2xvc2VNZXRob2Q+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIE1lbnUgZGlyZWN0aW9uICovXG4gICAgZGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnID0gJ2x0cic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1lbnVJZDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pZDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9rZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8TWVudUl0ZW1Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RpckNoYW5nZVN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3J0bDogUnRsU2VydmljZSxcbiAgICAgICAgcmVhZG9ubHkgY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5fcnRsKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXJDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLl9ydGwucnRsLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IHZhbHVlID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRNZW51SXRlbUNhc2NhZGVEaXJlY3Rpb24oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHdhcm5PbmNlKGBNZW51Q29tcG9uZW50IGlzIGRlcHJlY2F0ZWQuIFVzZSAnZmQtbWVudScgZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnUnIGluc3RlYWQuYCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5tZW51SWQpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUlkID0gTUVOVV9JRF9ST09UICsgbWVudUlkQ291bnRlcisrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1lbnVJdGVtcykge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5tZW51SXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5fdGFiU3Vic2NyaXB0aW9uID0gdGhpcy5fa2V5TWFuYWdlci50YWJPdXQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlLmVtaXQoJ2tleWJvYXJkJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRNZW51SXRlbUNhc2NhZGVEaXJlY3Rpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3RhYlN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9kaXJDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uZGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBmb2N1cyBvbiBmaXJzdCBpdGVtXG4gICAgICogQHBhcmFtIG9yaWdpbiBGb2N1c09yaWdpblxuICAgICAqL1xuICAgIGZvY3VzT25GaXJzdEl0ZW0ob3JpZ2luOiBGb2N1c09yaWdpbiA9ICdwcm9ncmFtJyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKG9yaWdpbikuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgbWVudVxuICAgICAqIEBwYXJhbSBtZXRob2QgbWVudSBjbG9zZSBtZXRob2RcbiAgICAgKi9cbiAgICBjbG9zZU1lbnUobWV0aG9kOiBNZW51Q2xvc2VNZXRob2QpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZS5lbWl0KG1ldGhvZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1lbnUga2V5ZG93biBoYW5kbGVyXG4gICAgICovXG4gICAgX29uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIExFRlRfQVJST1cpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2FzY2FkZXNSaWdodCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCdhcnJvdycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBSSUdIVF9BUlJPVykpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jYXNjYWRlc0xlZnQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UuZW1pdCgnYXJyb3cnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRVNDQVBFKSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCdrZXlib2FyZCcpO1xuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlLmVtaXQoJ2tleWJvYXJkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWVudSBjbGljayBoYW5kbGVyXG4gICAgICovXG4gICAgX29uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2UuZW1pdCgnbW91c2UnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2V0IHN0cmVhbSBvZiBtZW51IGl0ZW1zIGhvdmVyIGNoYW5nZVxuICAgICAqL1xuICAgIF9tZW51SXRlbUhvdmVyQ2hhbmdlKCk6IE9ic2VydmFibGU8TWVudUl0ZW1Db21wb25lbnQ+IHtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1zID0gdGhpcy5tZW51SXRlbXMuY2hhbmdlcyBhcyBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxNZW51SXRlbUNvbXBvbmVudD4+O1xuICAgICAgICByZXR1cm4gbWVudUl0ZW1zLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5tZW51SXRlbXMpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChpdGVtcykgPT4gbWVyZ2UoLi4uaXRlbXMubWFwKChpdGVtOiBNZW51SXRlbUNvbXBvbmVudCkgPT4gaXRlbS5ob3ZlcmVkKSkpXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxNZW51SXRlbUNvbXBvbmVudD47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0TWVudUl0ZW1DYXNjYWRlRGlyZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubWVudUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gc2V0IGNhc2NhZGUgZGlyZWN0aW9uXG4gICAgICAgIHRoaXMubWVudUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY2FzY2FkZURpcmVjdGlvbiA9IHRoaXMuX2Nhc2NhZGVzTGVmdCgpID8gJ2xlZnQnIDogJ3JpZ2h0JztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIENoZWNrIGlmIGNhc2NhZGUgbWVudSBzaG91bGQgYXBwZWFyIGZyb20gcmlnaHRcbiAgICAgKi9cbiAgICBfY2FzY2FkZXNSaWdodCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0aGlzLnhQb3NpdGlvbiA9PT0gJ2FmdGVyJyAmJiB0aGlzLmRpcmVjdGlvbiA9PT0gJ2x0cicpIHx8XG4gICAgICAgICAgICAodGhpcy54UG9zaXRpb24gPT09ICdiZWZvcmUnICYmIHRoaXMuZGlyZWN0aW9uID09PSAncnRsJylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2hlY2sgaWYgY2FzY2FkZSBtZW51IHNob3VsZCBhcHBlYXIgZnJvbSBsZWZ0XG4gICAgICovXG4gICAgX2Nhc2NhZGVzTGVmdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0aGlzLnhQb3NpdGlvbiA9PT0gJ2FmdGVyJyAmJiB0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHx8XG4gICAgICAgICAgICAodGhpcy54UG9zaXRpb24gPT09ICdiZWZvcmUnICYmIHRoaXMuZGlyZWN0aW9uID09PSAnbHRyJylcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI21lbnVUZW1wbGF0ZT5cbiAgICA8bmF2XG4gICAgICAgIFthdHRyLmlkXT1cIm1lbnVJZFwiXG4gICAgICAgIFthdHRyLmRpcl09XCJkaXJlY3Rpb25cIlxuICAgICAgICBjbGFzcz1cImZkLW1lbnVcIlxuICAgICAgICBbY2xhc3MuaXMtY29tcGFjdF09XCJjb250ZW50RGVuc2l0eU9ic2VydmVyLmlzQ29tcGFjdFNpZ25hbCgpXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgICAoY2xpY2spPVwiX29uQ2xpY2soKVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleWRvd24oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtbWVudV9fbGlzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,8 +1,8 @@
1
- import { ChangeDetectionStrategy, Component, ContentChildren, DestroyRef, Inject, Input, QueryList, ViewEncapsulation } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ContentChildren, DestroyRef, Inject, Input, QueryList, ViewEncapsulation, signal } from '@angular/core';
2
2
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { ControlContainer, FormGroup } from '@angular/forms';
4
4
  import { FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';
5
- import { BehaviorSubject, Subject, Subscription, filter, startWith, switchMap, zip } from 'rxjs';
5
+ import { Subject, Subscription, filter, startWith, switchMap, zip } from 'rxjs';
6
6
  import { FDP_MESSAGE_POPOVER_CONFIG } from '../../default-config';
7
7
  import { MessagePopoverFormItemDirective } from '../../directives/message-popover-form-item.directive';
8
8
  import { convertFormState } from '../../utils';
@@ -35,13 +35,10 @@ export class MessagePopoverFormWrapperComponent {
35
35
  this._config = _config;
36
36
  /** Message Popover instance. */
37
37
  this.messagePopover$ = new Subject();
38
- /** @hidden */
39
- this._errors$ = new BehaviorSubject([]);
40
38
  /**
41
- * Error models Observable. Emitted when form submitted and contains invalid fields.
39
+ * Error models Signal. Emitted when form submitted and contains invalid fields.
42
40
  */
43
- // eslint-disable-next-line @typescript-eslint/member-ordering
44
- this.errors = this._errors$.asObservable();
41
+ this.errors$ = signal([]);
45
42
  /** @hidden */
46
43
  this._formFields = [];
47
44
  /** @hidden */
@@ -99,14 +96,14 @@ export class MessagePopoverFormWrapperComponent {
99
96
  return;
100
97
  }
101
98
  this._formErrorsSubscription?.unsubscribe();
102
- this._errors$.next([]);
99
+ this.errors$.set([]);
103
100
  const formSubmitEvents = this._ngForms.map((form) => form.ngSubmit.pipe(switchMap(() => form.statusChanges.pipe(startWith(form.status), filter((status) => status.toLowerCase() !== 'pending')))));
104
101
  this._formErrorsSubscription = zip(...formSubmitEvents)
105
102
  .pipe(takeUntilDestroyed(this._destroyRef))
106
103
  .subscribe(() => {
107
104
  this._formSubmitted = true;
108
105
  const errors = this._directiveItems.length > 0 ? this._collectPlainFormData() : this._collectAdvancedFormData();
109
- this._errors$.next(errors);
106
+ this.errors$.set(errors);
110
107
  });
111
108
  this._listenToFormFieldErrors(this._projectedFormFieldControls.toArray());
112
109
  this._projectedFormFieldControls?.changes.subscribe(() => {
@@ -125,7 +122,7 @@ export class MessagePopoverFormWrapperComponent {
125
122
  const errors = this._directiveItems.length > 0
126
123
  ? this._collectPlainFormData()
127
124
  : this._collectAdvancedFormData();
128
- this._errors$.next(errors);
125
+ this.errors$.set(errors);
129
126
  }));
130
127
  });
131
128
  }
@@ -336,4 +333,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
336
333
  }], formFields: [{
337
334
  type: Input
338
335
  }] } });
339
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wb3BvdmVyLWZvcm0td3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9jb21wb25lbnRzL21lc3NhZ2UtcG9wb3Zlci1mb3JtLXdyYXBwZXIvbWVzc2FnZS1wb3BvdmVyLWZvcm0td3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFtQixnQkFBZ0IsRUFBRSxTQUFTLEVBQThCLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUcsT0FBTyxFQUFFLHFCQUFxQixFQUFjLE1BQU0sNEJBQTRCLENBQUM7QUFPL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRyxPQUFPLEVBQUUsMEJBQTBCLEVBQW1ELE1BQU0sc0JBQXNCLENBQUM7QUFDbkgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFRdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVkvQyxNQUFNLE9BQU8sa0NBQWtDO0lBZ0IzQzs7T0FFRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWdEO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFB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RSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUt2QywyQkFBMkI7c0JBRDNDLGVBQWU7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUs1QyxlQUFlO3NCQUQvQixlQUFlO3VCQUFDLCtCQUErQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFVbkUsS0FBSztzQkFEUixLQUFLO2dCQWNGLFVBQVU7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVDb250ZXh0LFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGRFBfTUVTU0FHRV9QT1BPVkVSX0NPTkZJRywgTWVzc2FnZVBvcG92ZXJDb25maWcsIE1lc3NhZ2VQb3BvdmVyRXJyb3JDb25maWcgfSBmcm9tICcuLi8uLi9kZWZhdWx0LWNvbmZpZyc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlckZvcm1JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9tZXNzYWdlLXBvcG92ZXItZm9ybS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIE1lc3NhZ2VQb3BvdmVyRW50cnksXG4gICAgTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwLFxuICAgIE1lc3NhZ2VQb3BvdmVyRXJyb3JUZXh0XG59IGZyb20gJy4uLy4uL21vZGVscy9tZXNzYWdlLXBvcG92ZXItZW50cnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lc3NhZ2VQb3BvdmVyV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVscy9tZXNzYWdlLXBvcG92ZXItd3JhcHBlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjb252ZXJ0Rm9ybVN0YXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlUG9wb3ZlckZvcm0gPSBOZ0Zvcm0gfCBGb3JtR3JvdXBEaXJlY3RpdmU7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLW1lc3NhZ2UtcG9wb3Zlci1mb3JtLXdyYXBwZXInLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgZXhwb3J0QXM6ICdtZXNzYWdlUG9wb3ZlcldyYXBwZXInLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlUG9wb3ZlckZvcm1XcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgTWVzc2FnZVBvcG92ZXJXcmFwcGVyLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihDb250cm9sQ29udGFpbmVyLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcHJvamVjdGVkRm9ybTogUXVlcnlMaXN0PE1lc3NhZ2VQb3BvdmVyRm9ybT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRfRk9STV9GSUVMRF9DT05UUk9MLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcHJvamVjdGVkRm9ybUZpZWxkQ29udHJvbHMhOiBRdWVyeUxpc3Q8UGxhdGZvcm1Gb3JtRmllbGRDb250cm9sPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihNZXNzYWdlUG9wb3ZlckZvcm1JdGVtRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGlyZWN0aXZlSXRlbXMhOiBRdWVyeUxpc3Q8TWVzc2FnZVBvcG92ZXJGb3JtSXRlbURpcmVjdGl2ZT47XG5cbiAgICAvKiogTWVzc2FnZSBQb3BvdmVyIGluc3RhbmNlLiAqL1xuICAgIG1lc3NhZ2VQb3BvdmVyJCA9IG5ldyBTdWJqZWN0PE1lc3NhZ2VQb3BvdmVyPigpO1xuXG4gICAgLyoqXG4gICAgICogVXNlci1wYXNzZWQgZm9ybXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9ybXMoZm9ybXM6IE1lc3NhZ2VQb3BvdmVyRm9ybSB8IE1lc3NhZ2VQb3BvdmVyRm9ybVtdKSB7XG4gICAgICAgIGlmICghZm9ybXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZm9ybXMpKSB7XG4gICAgICAgICAgICBmb3JtcyA9IFtmb3Jtc107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbmdGb3JtcyA9IGZvcm1zO1xuICAgICAgICB0aGlzLl9zdGFydExpc3RlbmluZ0ZvckVycm9ycygpO1xuICAgIH1cblxuICAgIC8qKiBVc2VyLXBhc3NlZCBmb3JtIGZpZWxkcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmb3JtRmllbGRzKHZhbHVlOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xbXSkge1xuICAgICAgICB0aGlzLl9mb3JtRmllbGRzID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvRm9ybUZpZWxkRXJyb3JzKHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybUZpZWxkcygpOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGRzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXJyb3JzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10+KFtdKTtcblxuICAgIC8qKlxuICAgICAqIEVycm9yIG1vZGVscyBPYnNlcnZhYmxlLiBFbWl0dGVkIHdoZW4gZm9ybSBzdWJtaXR0ZWQgYW5kIGNvbnRhaW5zIGludmFsaWQgZmllbGRzLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gICAgZXJyb3JzID0gdGhpcy5fZXJyb3JzJC5hc09ic2VydmFibGUoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybUZpZWxkczogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybUVycm9yc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9uZ0Zvcm1zOiAoTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlKVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JtU3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgICAgICBASW5qZWN0KEZEUF9NRVNTQUdFX1BPUE9WRVJfQ09ORklHKSBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc6IE1lc3NhZ2VQb3BvdmVyQ29uZmlnXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEZvcm1zIGFyZSBwYXNzZWQgdmlhIGlucHV0IHByb3BlcnR5LlxuICAgICAgICBpZiAodGhpcy5fbmdGb3Jtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHJvamVjdGVkRm9ybT8uY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbmdGb3JtcyA9IHRoaXMuX3Byb2plY3RlZEZvcm0udG9BcnJheSgpO1xuICAgICAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBNZXNzYWdlIFBvcG92ZXIgY29tcG9uZW50IGluc3RhbmNlLlxuICAgICAqL1xuICAgIHNldE1lc3NhZ2VQb3BvdmVyKG1lc3NhZ2VQb3BvdmVyOiBNZXNzYWdlUG9wb3Zlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VQb3BvdmVyJC5uZXh0KG1lc3NhZ2VQb3BvdmVyKTtcbiAgICAgICAgLy8gdGhpcy5tZXNzYWdlUG9wb3ZlciA9IG1lc3NhZ2VQb3BvdmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2dyYW1tYXRpY2FsbHkgYWRkIG5ldyBmb3JtIHRvIGFycmF5IG9mIGZvcm1zLlxuICAgICAqIEBwYXJhbSBmb3Jtc1xuICAgICAqL1xuICAgIGFkZEZvcm1zKGZvcm1zOiBNZXNzYWdlUG9wb3ZlckZvcm0gfCBNZXNzYWdlUG9wb3ZlckZvcm1bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb3Jtc0FycmF5ID0gQXJyYXkuaXNBcnJheShmb3JtcykgPyBmb3JtcyA6IFtmb3Jtc107XG4gICAgICAgIHRoaXMuX25nRm9ybXMucHVzaCguLi5mb3Jtc0FycmF5KTtcbiAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9ncmFtbWF0aWNhbGx5IGFkZCBuZXcgZm9ybSBmaWVsZHMgdG8gYXJyYXkgb2YgbGlzdGVuZWQgZm9ybSBmaWVsZHMuXG4gICAgICogQHBhcmFtIGZvcm1GaWVsZHNcbiAgICAgKi9cbiAgICBhZGRGb3JtRmllbGRzKGZvcm1GaWVsZHM6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1GaWVsZHMucHVzaCguLi5mb3JtRmllbGRzKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Gb3JtRmllbGRFcnJvcnModGhpcy5fZm9ybUZpZWxkcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUl0ZW1FcnJvcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGlzdGVucyB0byB0aGUgZm9ybSBzdWJtaXNzaW9uIGFuZCBjb2xsZWN0cyBmb3JtIGNvbnRyb2wgZXJyb3JzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3N0YXJ0TGlzdGVuaW5nRm9yRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX25nRm9ybXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb3JtRXJyb3JzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9lcnJvcnMkLm5leHQoW10pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1TdWJtaXRFdmVudHMgPSB0aGlzLl9uZ0Zvcm1zLm1hcCgoZm9ybSkgPT5cbiAgICAgICAgICAgIGZvcm0ubmdTdWJtaXQucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgZm9ybS5zdGF0dXNDaGFuZ2VzIS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKGZvcm0uc3RhdHVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoc3RhdHVzOiBzdHJpbmcpID0+IHN0YXR1cy50b0xvd2VyQ2FzZSgpICE9PSAncGVuZGluZycpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fZm9ybUVycm9yc1N1YnNjcmlwdGlvbiA9IHppcCguLi5mb3JtU3VibWl0RXZlbnRzKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9ybVN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlyZWN0aXZlSXRlbXMubGVuZ3RoID4gMCA/IHRoaXMuX2NvbGxlY3RQbGFpbkZvcm1EYXRhKCkgOiB0aGlzLl9jb2xsZWN0QWR2YW5jZWRGb3JtRGF0YSgpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyb3JzJC5uZXh0KGVycm9ycyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9saXN0ZW5Ub0Zvcm1GaWVsZEVycm9ycyh0aGlzLl9wcm9qZWN0ZWRGb3JtRmllbGRDb250cm9scy50b0FycmF5KCkpO1xuXG4gICAgICAgIHRoaXMuX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzPy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub0Zvcm1GaWVsZEVycm9ycyh0aGlzLl9wcm9qZWN0ZWRGb3JtRmllbGRDb250cm9scy50b0FycmF5KCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvRm9ybUZpZWxkRXJyb3JzKGZpZWxkczogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUl0ZW1FcnJvcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICB0aGlzLl9mb3JtSXRlbUVycm9yc1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgICAgICBmaWVsZHM/LmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtSXRlbUVycm9yc1N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICAgICAgZmllbGQuZm9ybUZpZWxkPy5lcnJvcnNDaGFuZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5fZm9ybVN1Ym1pdHRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaXJlY3RpdmVJdGVtcy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl9jb2xsZWN0UGxhaW5Gb3JtRGF0YSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9jb2xsZWN0QWR2YW5jZWRGb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnJvcnMkLm5leHQoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb2xsZWN0UGxhaW5Gb3JtRGF0YSgpOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXSB7XG4gICAgICAgIGNvbnN0IGVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXJyb3JzOiBbXVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICB0aGlzLl9uZ0Zvcm1zLmZvckVhY2goKGZvcm0pID0+IHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGZvcm0uZm9ybS5jb250cm9scykuZm9yRWFjaCgoY29udHJvbE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5mb3JtLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZm9ybUZpZWxkKSA9PiBmb3JtRmllbGQuY29udHJvbD8ubmFtZSA9PT0gY29udHJvbE5hbWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFjb250cm9sPy5lcnJvcnMgfHwgIWZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWdFcnJvcnMgPSBPYmplY3Qua2V5cyh0aGlzLl9jb25maWcuZXJyb3JzKTtcblxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChlcnJvcikgPT4gY29uZmlnRXJyb3JzLmluY2x1ZGVzKGVycm9yKSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKGVycm9yS2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck9iaiA9IGNvbnRyb2wuZXJyb3JzIVtlcnJvcktleV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dE1vZGVsID0gdGhpcy5fZ2V0Q29uZmlnRXJyb3JNb2RlbChlcnJvcktleSwgZmllbGQuZXJyb3JUeXBlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckNvbmZpZyA9IGZpZWxkPy5lcnJvclR5cGVzID8gZmllbGQ/LmVycm9yVHlwZXNbZXJyb3JLZXldIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ29uZmlnICYmIHRoaXMuX2lzQWR2YW5jZWRFcnJvcihlcnJvckNvbmZpZykgJiYgZXJyb3JDb25maWcudHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVycm9yQ29uZmlnLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3I6IE1lc3NhZ2VQb3BvdmVyRW50cnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY29udHJvbE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZXJyb3JUZXh0TW9kZWwudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogY29udmVydEZvcm1TdGF0ZShlcnJvclN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGZpZWxkPy5sYWJlbCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBmaWVsZD8uZWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JPYmosXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVGV4dE1vZGVsLmhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JPYmosXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVGV4dE1vZGVsLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM6IGNvbnRyb2whLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzWzBdLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbGxlY3RBZHZhbmNlZEZvcm1EYXRhKCk6IE1lc3NhZ2VQb3BvdmVyRXJyb3JHcm91cFtdIHtcbiAgICAgICAgbGV0IGVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5mb3JtRmllbGRzLmxlbmd0aCA+IDAgPyB0aGlzLmZvcm1GaWVsZHMgOiB0aGlzLl9wcm9qZWN0ZWRGb3JtRmllbGRDb250cm9scy50b0FycmF5KCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEl0ZXJhdGVzIG92ZXIgZm9ybSBjb250cm9scyB0byBjb2xsZWN0IHRoZWlyIGVycm9ycy5cbiAgICAgICAgICogQHBhcmFtIGZvcm0gRm9ybSBHcm91cCBvciBhIGNvbGxlY3Rpb24gb2YgRm9ybSBHcm91cHMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBpdGVyYXRlT3ZlckZvcm0gPSAoZm9ybTogRm9ybUdyb3VwIHwgRm9ybUdyb3VwW10pOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtKSkge1xuICAgICAgICAgICAgICAgIGZvcm0uZm9yRWFjaCgoZm9ybUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGl0ZXJhdGVPdmVyRm9ybShmb3JtR3JvdXApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZm9ybUZpZWxkKSA9PiBmb3JtRmllbGQuaWQgPT09IGNvbnRyb2xOYW1lKTtcblxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGl0ZXJhdGVPdmVyRm9ybShjb250cm9sKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2w/LmVycm9ycyB8fCAhZmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5mb3JFYWNoKChlcnJvcktleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckRpcmVjdGl2ZSA9IGZpZWxkLmZvcm1GaWVsZD8uZ3JvdXBlZEVycm9ycy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGdyb3VwZWRFcnJvcikgPT4gZ3JvdXBlZEVycm9yLmRpcmVjdGl2ZS5lcnJvciA9PT0gZXJyb3JLZXlcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cE5hbWUgPSB0aGlzLl9nZXRHcm91cE5hbWUoZmllbGQ/LmZvcm1GaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5fZ2V0RXJyb3JNb2RlbChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuZXJyb3JzIVtlcnJvcktleV1cbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3JHcm91cEluZGV4ID0gZXJyb3JzLmZpbmRJbmRleCgoZXJyb3JHcm91cCkgPT4gZXJyb3JHcm91cC5ncm91cCA9PT0gZ3JvdXBOYW1lKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JHcm91cEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JHcm91cEluZGV4ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwOiBncm91cE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSAtIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IGVycm9yc1tlcnJvckdyb3VwSW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBpdGVyYXRlT3ZlckZvcm0odGhpcy5fbmdGb3Jtcy5tYXAoKGZvcm0pID0+IGZvcm0uZm9ybSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVzIGVycm9yIG1vZGVsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RXJyb3JNb2RlbChcbiAgICAgICAgY29udHJvbE5hbWU6IHN0cmluZyxcbiAgICAgICAgZ3JvdXBOYW1lOiBzdHJpbmcsXG4gICAgICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICAgICAgZmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgZXJyb3JLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3JEaXJlY3RpdmU/OiBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZUNvbnRleHQsXG4gICAgICAgIGVycm9yPzogYW55XG4gICAgKTogTWVzc2FnZVBvcG92ZXJFbnRyeSB7XG4gICAgICAgIGxldCBzdGF0ZTogRm9ybVN0YXRlcyA9ICdlcnJvcic7XG4gICAgICAgIGNvbnN0IGNvbmZpZ0Vycm9yID0gdGhpcy5fY29uZmlnLmVycm9yc1tlcnJvcktleV07XG5cbiAgICAgICAgaWYgKGVycm9yRGlyZWN0aXZlPy5kaXJlY3RpdmUudHlwZSkge1xuICAgICAgICAgICAgc3RhdGUgPSBlcnJvckRpcmVjdGl2ZS5kaXJlY3RpdmUudHlwZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pc0FkdmFuY2VkRXJyb3IoY29uZmlnRXJyb3IpKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IGNvbmZpZ0Vycm9yLnR5cGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogY29udHJvbE5hbWUsXG4gICAgICAgICAgICB0eXBlOiBzdGF0ZSxcbiAgICAgICAgICAgIHN0YXRlOiBjb252ZXJ0Rm9ybVN0YXRlKHN0YXRlKSxcbiAgICAgICAgICAgIGdyb3VwOiBncm91cE5hbWUsXG4gICAgICAgICAgICBmaWVsZE5hbWU6IGZpZWxkPy5mb3JtRmllbGQ/LmxhYmVsID8/ICcnLFxuICAgICAgICAgICAgaGVhZGluZzogdGhpcy5fZ2V0RXJyb3JUZXh0KGZpZWxkLCBlcnJvckRpcmVjdGl2ZSwgJ2hlYWRpbmcnLCBlcnJvcktleSwgZXJyb3IpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuX2dldEVycm9yVGV4dChmaWVsZCwgZXJyb3JEaXJlY3RpdmUsICdkZXNjcmlwdGlvbicsIGVycm9yS2V5LCBlcnJvciksXG4gICAgICAgICAgICBlcnJvcnM6IGNvbnRyb2whLmVycm9ycyxcbiAgICAgICAgICAgIGZvcm1GaWVsZDogZmllbGQsXG4gICAgICAgICAgICBlbGVtZW50OiBmaWVsZD8uZWxlbWVudFJlZlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVzIGVycm9yIHRleHQgYmFzZWQgb24gdGhlIHR5cGUgb2YgdGhlIGVycm9yLlxuICAgICAqIEBwYXJhbSBmaWVsZCBGb3JtIEZpZWxkIENvbnRyb2wuXG4gICAgICogQHBhcmFtIGVycm9yRGlyZWN0aXZlIE9wdGlvbmFsIEVycm9yIGRpcmVjdGl2ZVxuICAgICAqIEBwYXJhbSBzZWN0aW9uIFNlY3Rpb24gd2hlcmUgdGV4dCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAgICogQHBhcmFtIGVycm9yS2V5XG4gICAgICogQHBhcmFtIGVycm9yXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RXJyb3JUZXh0KFxuICAgICAgICBmaWVsZDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBlcnJvckRpcmVjdGl2ZTogTnVsbGFibGU8Rm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVDb250ZXh0PixcbiAgICAgICAgc2VjdGlvbjogJ2hlYWRpbmcnIHwgJ2Rlc2NyaXB0aW9uJyA9ICdoZWFkaW5nJyxcbiAgICAgICAgZXJyb3JLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3I/OiBhbnlcbiAgICApOiBNZXNzYWdlUG9wb3ZlckVycm9yVGV4dCB7XG4gICAgICAgIGNvbnN0IGVycm9yVGV4dE9iajogTWVzc2FnZVBvcG92ZXJFcnJvclRleHQgPSB7XG4gICAgICAgICAgICBlcnJvcjogZXJyb3JEaXJlY3RpdmU/LmVycm9yLFxuICAgICAgICAgICAgdHlwZTogZXJyb3JEaXJlY3RpdmU/LmRpcmVjdGl2ZSA/ICdkaXJlY3RpdmUnIDogZmllbGQ/LmZvcm1GaWVsZD8uaTE4U3RyaW5ncyA/ICd0ZW1wbGF0ZVJlZicgOiAnc3RyaW5nJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChlcnJvclRleHRPYmoudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dE1vZGVsID0gdGhpcy5fZ2V0Q29uZmlnRXJyb3JNb2RlbChlcnJvcktleSk7XG5cbiAgICAgICAgICAgIGVycm9yVGV4dE9iai5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgZXJyb3JUZXh0T2JqLm1lc3NhZ2UgPSBlcnJvclRleHRNb2RlbFtzZWN0aW9uXTtcbiAgICAgICAgICAgIHJldHVybiBlcnJvclRleHRPYmo7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3JEaXJlY3RpdmU/LmRpcmVjdGl2ZSkge1xuICAgICAgICAgICAgZXJyb3JUZXh0T2JqLm1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgIHNlY3Rpb24gPT09ICdoZWFkaW5nJ1xuICAgICAgICAgICAgICAgICAgICA/IGVycm9yRGlyZWN0aXZlLmRpcmVjdGl2ZS5faGVhZGluZ1RlbXBsYXRlUmVmID8/IGVycm9yRGlyZWN0aXZlLmRpcmVjdGl2ZS5fZGVzY3JpcHRpb25UZW1wbGF0ZVJlZlxuICAgICAgICAgICAgICAgICAgICA6IGVycm9yRGlyZWN0aXZlLmRpcmVjdGl2ZS5fZGVzY3JpcHRpb25UZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgIHJldHVybiBlcnJvclRleHRPYmo7XG4gICAgICAgIH1cblxuICAgICAgICBlcnJvclRleHRPYmoubWVzc2FnZSA9IGZpZWxkPy5mb3JtRmllbGQ/LmkxOFN0cmluZ3MgPz8gbnVsbDtcbiAgICAgICAgcmV0dXJuIGVycm9yVGV4dE9iajtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEdyb3VwTmFtZShmb3JtRmllbGQ6IE51bGxhYmxlPFBsYXRmb3JtRm9ybUZpZWxkPik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmIChmb3JtRmllbGQ/LmZvcm1Hcm91cENvbnRhaW5lcj8ubWFpblRpdGxlKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKGZvcm1GaWVsZC5mb3JtR3JvdXBDb250YWluZXIubWFpblRpdGxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmb3JtRmllbGQ/LmZvcm1GaWVsZEdyb3VwPy5sYWJlbCkge1xuICAgICAgICAgICAgcGFydHMucHVzaChmb3JtRmllbGQuZm9ybUZpZWxkR3JvdXAubGFiZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRDb25maWdFcnJvck1vZGVsKFxuICAgICAgICBlcnJvcktleTogc3RyaW5nLFxuICAgICAgICBjdXN0b21FcnJvclR5cGVzPzogTWVzc2FnZVBvcG92ZXJDb25maWdbJ2Vycm9ycyddXG4gICAgKTogTWVzc2FnZVBvcG92ZXJFcnJvckNvbmZpZyB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ0Vycm9yID1cbiAgICAgICAgICAgIGN1c3RvbUVycm9yVHlwZXMgJiYgY3VzdG9tRXJyb3JUeXBlc1tlcnJvcktleV0gPyBjdXN0b21FcnJvclR5cGVzW2Vycm9yS2V5XSA6IHRoaXMuX2NvbmZpZy5lcnJvcnNbZXJyb3JLZXldO1xuICAgICAgICBjb25zdCBpc1BsYWluRXJyb3IgPSAhdGhpcy5faXNBZHZhbmNlZEVycm9yKGNvbmZpZ0Vycm9yKTtcbiAgICAgICAgY29uc3QgZXJyb3JUeXBlID0gaXNQbGFpbkVycm9yID8gJ2Vycm9yJyA6IGNvbmZpZ0Vycm9yLnR5cGU7XG4gICAgICAgIGNvbnN0IGhlYWRpbmdNZXNzYWdlID0gaXNQbGFpbkVycm9yID8gY29uZmlnRXJyb3IgOiBjb25maWdFcnJvci5oZWFkaW5nO1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbk1lc3NhZ2UgPSBpc1BsYWluRXJyb3IgPyB1bmRlZmluZWQgOiBjb25maWdFcnJvci5kZXNjcmlwdGlvbjtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogZXJyb3JUeXBlLFxuICAgICAgICAgICAgaGVhZGluZzogaGVhZGluZ01lc3NhZ2UsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb25NZXNzYWdlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0FkdmFuY2VkRXJyb3IoZXJyb3I6IHN0cmluZyB8IE1lc3NhZ2VQb3BvdmVyRXJyb3JDb25maWcpOiBlcnJvciBpcyBNZXNzYWdlUG9wb3ZlckVycm9yQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuICEhZXJyb3IgJiYgdHlwZW9mIGVycm9yICE9PSAnc3RyaW5nJztcbiAgICB9XG59XG4iXX0=
336
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wb3BvdmVyLWZvcm0td3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL21lc3NhZ2UtcG9wb3Zlci9jb21wb25lbnRzL21lc3NhZ2UtcG9wb3Zlci1mb3JtLXdyYXBwZXIvbWVzc2FnZS1wb3BvdmVyLWZvcm0td3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsU0FBUyxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxxQkFBcUIsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBTy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQW1ELE1BQU0sc0JBQXNCLENBQUM7QUFDbkgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFRdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVkvQyxNQUFNLE9BQU8sa0NBQWtDO0lBZ0IzQzs7T0FFRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWdEO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFB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RSxJQUFJLEVBQUU7Z0JBSzVDLGVBQWU7c0JBRC9CLGVBQWU7dUJBQUMsK0JBQStCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVVuRSxLQUFLO3NCQURSLEtBQUs7Z0JBY0YsVUFBVTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVDb250ZXh0LFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRkRQX01FU1NBR0VfUE9QT1ZFUl9DT05GSUcsIE1lc3NhZ2VQb3BvdmVyQ29uZmlnLCBNZXNzYWdlUG9wb3ZlckVycm9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vZGVmYXVsdC1jb25maWcnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJGb3JtSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbWVzc2FnZS1wb3BvdmVyLWZvcm0taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBNZXNzYWdlUG9wb3ZlckVudHJ5LFxuICAgIE1lc3NhZ2VQb3BvdmVyRXJyb3JHcm91cCxcbiAgICBNZXNzYWdlUG9wb3ZlckVycm9yVGV4dFxufSBmcm9tICcuLi8uLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLWVudHJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZXNzYWdlUG9wb3ZlcldyYXBwZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVzc2FnZS1wb3BvdmVyLXdyYXBwZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lc3NhZ2VQb3BvdmVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lc3NhZ2UtcG9wb3Zlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgY29udmVydEZvcm1TdGF0ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVBvcG92ZXJGb3JtID0gTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1tZXNzYWdlLXBvcG92ZXItZm9ybS13cmFwcGVyJyxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGV4cG9ydEFzOiAnbWVzc2FnZVBvcG92ZXJXcmFwcGVyJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVBvcG92ZXJGb3JtV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE1lc3NhZ2VQb3BvdmVyV3JhcHBlciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oQ29udHJvbENvbnRhaW5lciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plY3RlZEZvcm06IFF1ZXJ5TGlzdDxNZXNzYWdlUG9wb3ZlckZvcm0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzITogUXVlcnlMaXN0PFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTWVzc2FnZVBvcG92ZXJGb3JtSXRlbURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RpcmVjdGl2ZUl0ZW1zITogUXVlcnlMaXN0PE1lc3NhZ2VQb3BvdmVyRm9ybUl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIE1lc3NhZ2UgUG9wb3ZlciBpbnN0YW5jZS4gKi9cbiAgICBtZXNzYWdlUG9wb3ZlciQgPSBuZXcgU3ViamVjdDxNZXNzYWdlUG9wb3Zlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIFVzZXItcGFzc2VkIGZvcm1zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvcm1zKGZvcm1zOiBNZXNzYWdlUG9wb3ZlckZvcm0gfCBNZXNzYWdlUG9wb3ZlckZvcm1bXSkge1xuICAgICAgICBpZiAoIWZvcm1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZvcm1zKSkge1xuICAgICAgICAgICAgZm9ybXMgPSBbZm9ybXNdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX25nRm9ybXMgPSBmb3JtcztcbiAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKiogVXNlci1wYXNzZWQgZm9ybSBmaWVsZHMuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9ybUZpZWxkcyh2YWx1ZTogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10pIHtcbiAgICAgICAgdGhpcy5fZm9ybUZpZWxkcyA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0Zvcm1GaWVsZEVycm9ycyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1GaWVsZHMoKTogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUZpZWxkcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFcnJvciBtb2RlbHMgU2lnbmFsLiBFbWl0dGVkIHdoZW4gZm9ybSBzdWJtaXR0ZWQgYW5kIGNvbnRhaW5zIGludmFsaWQgZmllbGRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVycm9ycyQgPSBzaWduYWw8TWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybUZpZWxkczogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybUVycm9yc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9uZ0Zvcm1zOiAoTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlKVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JtU3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgICAgICBASW5qZWN0KEZEUF9NRVNTQUdFX1BPUE9WRVJfQ09ORklHKSBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc6IE1lc3NhZ2VQb3BvdmVyQ29uZmlnXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEZvcm1zIGFyZSBwYXNzZWQgdmlhIGlucHV0IHByb3BlcnR5LlxuICAgICAgICBpZiAodGhpcy5fbmdGb3Jtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHJvamVjdGVkRm9ybT8uY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbmdGb3JtcyA9IHRoaXMuX3Byb2plY3RlZEZvcm0udG9BcnJheSgpO1xuICAgICAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBNZXNzYWdlIFBvcG92ZXIgY29tcG9uZW50IGluc3RhbmNlLlxuICAgICAqL1xuICAgIHNldE1lc3NhZ2VQb3BvdmVyKG1lc3NhZ2VQb3BvdmVyOiBNZXNzYWdlUG9wb3Zlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VQb3BvdmVyJC5uZXh0KG1lc3NhZ2VQb3BvdmVyKTtcbiAgICAgICAgLy8gdGhpcy5tZXNzYWdlUG9wb3ZlciA9IG1lc3NhZ2VQb3BvdmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2dyYW1tYXRpY2FsbHkgYWRkIG5ldyBmb3JtIHRvIGFycmF5IG9mIGZvcm1zLlxuICAgICAqIEBwYXJhbSBmb3Jtc1xuICAgICAqL1xuICAgIGFkZEZvcm1zKGZvcm1zOiBNZXNzYWdlUG9wb3ZlckZvcm0gfCBNZXNzYWdlUG9wb3ZlckZvcm1bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb3Jtc0FycmF5ID0gQXJyYXkuaXNBcnJheShmb3JtcykgPyBmb3JtcyA6IFtmb3Jtc107XG4gICAgICAgIHRoaXMuX25nRm9ybXMucHVzaCguLi5mb3Jtc0FycmF5KTtcbiAgICAgICAgdGhpcy5fc3RhcnRMaXN0ZW5pbmdGb3JFcnJvcnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9ncmFtbWF0aWNhbGx5IGFkZCBuZXcgZm9ybSBmaWVsZHMgdG8gYXJyYXkgb2YgbGlzdGVuZWQgZm9ybSBmaWVsZHMuXG4gICAgICogQHBhcmFtIGZvcm1GaWVsZHNcbiAgICAgKi9cbiAgICBhZGRGb3JtRmllbGRzKGZvcm1GaWVsZHM6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1GaWVsZHMucHVzaCguLi5mb3JtRmllbGRzKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Gb3JtRmllbGRFcnJvcnModGhpcy5fZm9ybUZpZWxkcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUl0ZW1FcnJvcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGlzdGVucyB0byB0aGUgZm9ybSBzdWJtaXNzaW9uIGFuZCBjb2xsZWN0cyBmb3JtIGNvbnRyb2wgZXJyb3JzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3N0YXJ0TGlzdGVuaW5nRm9yRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX25nRm9ybXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb3JtRXJyb3JzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmVycm9ycyQuc2V0KFtdKTtcblxuICAgICAgICBjb25zdCBmb3JtU3VibWl0RXZlbnRzID0gdGhpcy5fbmdGb3Jtcy5tYXAoKGZvcm0pID0+XG4gICAgICAgICAgICBmb3JtLm5nU3VibWl0LnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIGZvcm0uc3RhdHVzQ2hhbmdlcyEucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChmb3JtLnN0YXR1cyksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKHN0YXR1czogc3RyaW5nKSA9PiBzdGF0dXMudG9Mb3dlckNhc2UoKSAhPT0gJ3BlbmRpbmcnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1FcnJvcnNTdWJzY3JpcHRpb24gPSB6aXAoLi4uZm9ybVN1Ym1pdEV2ZW50cylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1TdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLmxlbmd0aCA+IDAgPyB0aGlzLl9jb2xsZWN0UGxhaW5Gb3JtRGF0YSgpIDogdGhpcy5fY29sbGVjdEFkdmFuY2VkRm9ybURhdGEoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzJC5zZXQoZXJyb3JzKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvRm9ybUZpZWxkRXJyb3JzKHRoaXMuX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzLnRvQXJyYXkoKSk7XG5cbiAgICAgICAgdGhpcy5fcHJvamVjdGVkRm9ybUZpZWxkQ29udHJvbHM/LmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvRm9ybUZpZWxkRXJyb3JzKHRoaXMuX3Byb2plY3RlZEZvcm1GaWVsZENvbnRyb2xzLnRvQXJyYXkoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9Gb3JtRmllbGRFcnJvcnMoZmllbGRzOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtSXRlbUVycm9yc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgIGZpZWxkcz8uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1JdGVtRXJyb3JzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgICAgICBmaWVsZC5mb3JtRmllbGQ/LmVycm9yc0NoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9mb3JtU3VibWl0dGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX2NvbGxlY3RQbGFpbkZvcm1EYXRhKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuX2NvbGxlY3RBZHZhbmNlZEZvcm1EYXRhKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzJC5zZXQoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb2xsZWN0UGxhaW5Gb3JtRGF0YSgpOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXSB7XG4gICAgICAgIGNvbnN0IGVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXJyb3JzOiBbXVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuX2RpcmVjdGl2ZUl0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICB0aGlzLl9uZ0Zvcm1zLmZvckVhY2goKGZvcm0pID0+IHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGZvcm0uZm9ybS5jb250cm9scykuZm9yRWFjaCgoY29udHJvbE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5mb3JtLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZm9ybUZpZWxkKSA9PiBmb3JtRmllbGQuY29udHJvbD8ubmFtZSA9PT0gY29udHJvbE5hbWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFjb250cm9sPy5lcnJvcnMgfHwgIWZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWdFcnJvcnMgPSBPYmplY3Qua2V5cyh0aGlzLl9jb25maWcuZXJyb3JzKTtcblxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChlcnJvcikgPT4gY29uZmlnRXJyb3JzLmluY2x1ZGVzKGVycm9yKSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKGVycm9yS2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck9iaiA9IGNvbnRyb2wuZXJyb3JzIVtlcnJvcktleV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dE1vZGVsID0gdGhpcy5fZ2V0Q29uZmlnRXJyb3JNb2RlbChlcnJvcktleSwgZmllbGQuZXJyb3JUeXBlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckNvbmZpZyA9IGZpZWxkPy5lcnJvclR5cGVzID8gZmllbGQ/LmVycm9yVHlwZXNbZXJyb3JLZXldIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ29uZmlnICYmIHRoaXMuX2lzQWR2YW5jZWRFcnJvcihlcnJvckNvbmZpZykgJiYgZXJyb3JDb25maWcudHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVycm9yQ29uZmlnLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3I6IE1lc3NhZ2VQb3BvdmVyRW50cnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY29udHJvbE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZXJyb3JUZXh0TW9kZWwudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogY29udmVydEZvcm1TdGF0ZShlcnJvclN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGZpZWxkPy5sYWJlbCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBmaWVsZD8uZWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JPYmosXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVGV4dE1vZGVsLmhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JPYmosXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVGV4dE1vZGVsLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM6IGNvbnRyb2whLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzWzBdLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbGxlY3RBZHZhbmNlZEZvcm1EYXRhKCk6IE1lc3NhZ2VQb3BvdmVyRXJyb3JHcm91cFtdIHtcbiAgICAgICAgbGV0IGVycm9yczogTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwW10gPSBbXTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5mb3JtRmllbGRzLmxlbmd0aCA+IDAgPyB0aGlzLmZvcm1GaWVsZHMgOiB0aGlzLl9wcm9qZWN0ZWRGb3JtRmllbGRDb250cm9scy50b0FycmF5KCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEl0ZXJhdGVzIG92ZXIgZm9ybSBjb250cm9scyB0byBjb2xsZWN0IHRoZWlyIGVycm9ycy5cbiAgICAgICAgICogQHBhcmFtIGZvcm0gRm9ybSBHcm91cCBvciBhIGNvbGxlY3Rpb24gb2YgRm9ybSBHcm91cHMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBpdGVyYXRlT3ZlckZvcm0gPSAoZm9ybTogRm9ybUdyb3VwIHwgRm9ybUdyb3VwW10pOiBNZXNzYWdlUG9wb3ZlckVycm9yR3JvdXBbXSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtKSkge1xuICAgICAgICAgICAgICAgIGZvcm0uZm9yRWFjaCgoZm9ybUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGl0ZXJhdGVPdmVyRm9ybShmb3JtR3JvdXApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZm9ybUZpZWxkKSA9PiBmb3JtRmllbGQuaWQgPT09IGNvbnRyb2xOYW1lKTtcblxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGl0ZXJhdGVPdmVyRm9ybShjb250cm9sKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2w/LmVycm9ycyB8fCAhZmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5mb3JFYWNoKChlcnJvcktleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckRpcmVjdGl2ZSA9IGZpZWxkLmZvcm1GaWVsZD8uZ3JvdXBlZEVycm9ycy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGdyb3VwZWRFcnJvcikgPT4gZ3JvdXBlZEVycm9yLmRpcmVjdGl2ZS5lcnJvciA9PT0gZXJyb3JLZXlcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cE5hbWUgPSB0aGlzLl9nZXRHcm91cE5hbWUoZmllbGQ/LmZvcm1GaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5fZ2V0RXJyb3JNb2RlbChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuZXJyb3JzIVtlcnJvcktleV1cbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3JHcm91cEluZGV4ID0gZXJyb3JzLmZpbmRJbmRleCgoZXJyb3JHcm91cCkgPT4gZXJyb3JHcm91cC5ncm91cCA9PT0gZ3JvdXBOYW1lKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JHcm91cEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JHcm91cEluZGV4ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwOiBncm91cE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSAtIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IGVycm9yc1tlcnJvckdyb3VwSW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBpdGVyYXRlT3ZlckZvcm0odGhpcy5fbmdGb3Jtcy5tYXAoKGZvcm0pID0+IGZvcm0uZm9ybSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVzIGVycm9yIG1vZGVsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RXJyb3JNb2RlbChcbiAgICAgICAgY29udHJvbE5hbWU6IHN0cmluZyxcbiAgICAgICAgZ3JvdXBOYW1lOiBzdHJpbmcsXG4gICAgICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICAgICAgZmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgZXJyb3JLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3JEaXJlY3RpdmU/OiBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZUNvbnRleHQsXG4gICAgICAgIGVycm9yPzogYW55XG4gICAgKTogTWVzc2FnZVBvcG92ZXJFbnRyeSB7XG4gICAgICAgIGxldCBzdGF0ZTogRm9ybVN0YXRlcyA9ICdlcnJvcic7XG4gICAgICAgIGNvbnN0IGNvbmZpZ0Vycm9yID0gdGhpcy5fY29uZmlnLmVycm9yc1tlcnJvcktleV07XG5cbiAgICAgICAgaWYgKGVycm9yRGlyZWN0aXZlPy5kaXJlY3RpdmUudHlwZSkge1xuICAgICAgICAgICAgc3RhdGUgPSBlcnJvckRpcmVjdGl2ZS5kaXJlY3RpdmUudHlwZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pc0FkdmFuY2VkRXJyb3IoY29uZmlnRXJyb3IpKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IGNvbmZpZ0Vycm9yLnR5cGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogY29udHJvbE5hbWUsXG4gICAgICAgICAgICB0eXBlOiBzdGF0ZSxcbiAgICAgICAgICAgIHN0YXRlOiBjb252ZXJ0Rm9ybVN0YXRlKHN0YXRlKSxcbiAgICAgICAgICAgIGdyb3VwOiBncm91cE5hbWUsXG4gICAgICAgICAgICBmaWVsZE5hbWU6IGZpZWxkPy5mb3JtRmllbGQ/LmxhYmVsID8/ICcnLFxuICAgICAgICAgICAgaGVhZGluZzogdGhpcy5fZ2V0RXJyb3JUZXh0KGZpZWxkLCBlcnJvckRpcmVjdGl2ZSwgJ2hlYWRpbmcnLCBlcnJvcktleSwgZXJyb3IpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuX2dldEVycm9yVGV4dChmaWVsZCwgZXJyb3JEaXJlY3RpdmUsICdkZXNjcmlwdGlvbicsIGVycm9yS2V5LCBlcnJvciksXG4gICAgICAgICAgICBlcnJvcnM6IGNvbnRyb2whLmVycm9ycyxcbiAgICAgICAgICAgIGZvcm1GaWVsZDogZmllbGQsXG4gICAgICAgICAgICBlbGVtZW50OiBmaWVsZD8uZWxlbWVudFJlZlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVzIGVycm9yIHRleHQgYmFzZWQgb24gdGhlIHR5cGUgb2YgdGhlIGVycm9yLlxuICAgICAqIEBwYXJhbSBmaWVsZCBGb3JtIEZpZWxkIENvbnRyb2wuXG4gICAgICogQHBhcmFtIGVycm9yRGlyZWN0aXZlIE9wdGlvbmFsIEVycm9yIGRpcmVjdGl2ZVxuICAgICAqIEBwYXJhbSBzZWN0aW9uIFNlY3Rpb24gd2hlcmUgdGV4dCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAgICogQHBhcmFtIGVycm9yS2V5XG4gICAgICogQHBhcmFtIGVycm9yXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RXJyb3JUZXh0KFxuICAgICAgICBmaWVsZDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBlcnJvckRpcmVjdGl2ZTogTnVsbGFibGU8Rm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVDb250ZXh0PixcbiAgICAgICAgc2VjdGlvbjogJ2hlYWRpbmcnIHwgJ2Rlc2NyaXB0aW9uJyA9ICdoZWFkaW5nJyxcbiAgICAgICAgZXJyb3JLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3I/OiBhbnlcbiAgICApOiBNZXNzYWdlUG9wb3ZlckVycm9yVGV4dCB7XG4gICAgICAgIGNvbnN0IGVycm9yVGV4dE9iajogTWVzc2FnZVBvcG92ZXJFcnJvclRleHQgPSB7XG4gICAgICAgICAgICBlcnJvcjogZXJyb3JEaXJlY3RpdmU/LmVycm9yLFxuICAgICAgICAgICAgdHlwZTogZXJyb3JEaXJlY3RpdmU/LmRpcmVjdGl2ZSA/ICdkaXJlY3RpdmUnIDogZmllbGQ/LmZvcm1GaWVsZD8uaTE4U3RyaW5ncyA/ICd0ZW1wbGF0ZVJlZicgOiAnc3RyaW5nJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChlcnJvclRleHRPYmoudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dE1vZGVsID0gdGhpcy5fZ2V0Q29uZmlnRXJyb3JNb2RlbChlcnJvcktleSk7XG5cbiAgICAgICAgICAgIGVycm9yVGV4dE9iai5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgZXJyb3JUZXh0T2JqLm1lc3NhZ2UgPSBlcnJvclRleHRNb2RlbFtzZWN0aW9uXTtcbiAgICAgICAgICAgIHJldHVybiBlcnJvclRleHRPYmo7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3JEaXJlY3RpdmU/LmRpcmVjdGl2ZSkge1xuICAgICAgICAgICAgZXJyb3JUZXh0T2JqLm1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgIHNlY3Rpb24gPT09ICdoZWFkaW5nJ1xuICAgICAgICAgICAgICAgICAgICA/IGVycm9yRGlyZWN0aXZlLmRpcmVjdGl2ZS5faGVhZGluZ1RlbXBsYXRlUmVmID8/IGVycm9yRGlyZWN0aXZlLmRpcmVjdGl2ZS5fZGVzY3JpcHRpb25UZW1wbGF0ZVJlZlxuICAgICAgICAgICAgICAgICAgICA6IGVycm9yRGlyZWN0aXZlLmRpcmVjdGl2ZS5fZGVzY3JpcHRpb25UZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgIHJldHVybiBlcnJvclRleHRPYmo7XG4gICAgICAgIH1cblxuICAgICAgICBlcnJvclRleHRPYmoubWVzc2FnZSA9IGZpZWxkPy5mb3JtRmllbGQ/LmkxOFN0cmluZ3MgPz8gbnVsbDtcbiAgICAgICAgcmV0dXJuIGVycm9yVGV4dE9iajtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEdyb3VwTmFtZShmb3JtRmllbGQ6IE51bGxhYmxlPFBsYXRmb3JtRm9ybUZpZWxkPik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmIChmb3JtRmllbGQ/LmZvcm1Hcm91cENvbnRhaW5lcj8ubWFpblRpdGxlKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKGZvcm1GaWVsZC5mb3JtR3JvdXBDb250YWluZXIubWFpblRpdGxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmb3JtRmllbGQ/LmZvcm1GaWVsZEdyb3VwPy5sYWJlbCkge1xuICAgICAgICAgICAgcGFydHMucHVzaChmb3JtRmllbGQuZm9ybUZpZWxkR3JvdXAubGFiZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRDb25maWdFcnJvck1vZGVsKFxuICAgICAgICBlcnJvcktleTogc3RyaW5nLFxuICAgICAgICBjdXN0b21FcnJvclR5cGVzPzogTWVzc2FnZVBvcG92ZXJDb25maWdbJ2Vycm9ycyddXG4gICAgKTogTWVzc2FnZVBvcG92ZXJFcnJvckNvbmZpZyB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ0Vycm9yID1cbiAgICAgICAgICAgIGN1c3RvbUVycm9yVHlwZXMgJiYgY3VzdG9tRXJyb3JUeXBlc1tlcnJvcktleV0gPyBjdXN0b21FcnJvclR5cGVzW2Vycm9yS2V5XSA6IHRoaXMuX2NvbmZpZy5lcnJvcnNbZXJyb3JLZXldO1xuICAgICAgICBjb25zdCBpc1BsYWluRXJyb3IgPSAhdGhpcy5faXNBZHZhbmNlZEVycm9yKGNvbmZpZ0Vycm9yKTtcbiAgICAgICAgY29uc3QgZXJyb3JUeXBlID0gaXNQbGFpbkVycm9yID8gJ2Vycm9yJyA6IGNvbmZpZ0Vycm9yLnR5cGU7XG4gICAgICAgIGNvbnN0IGhlYWRpbmdNZXNzYWdlID0gaXNQbGFpbkVycm9yID8gY29uZmlnRXJyb3IgOiBjb25maWdFcnJvci5oZWFkaW5nO1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbk1lc3NhZ2UgPSBpc1BsYWluRXJyb3IgPyB1bmRlZmluZWQgOiBjb25maWdFcnJvci5kZXNjcmlwdGlvbjtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogZXJyb3JUeXBlLFxuICAgICAgICAgICAgaGVhZGluZzogaGVhZGluZ01lc3NhZ2UsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb25NZXNzYWdlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0FkdmFuY2VkRXJyb3IoZXJyb3I6IHN0cmluZyB8IE1lc3NhZ2VQb3BvdmVyRXJyb3JDb25maWcpOiBlcnJvciBpcyBNZXNzYWdlUG9wb3ZlckVycm9yQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuICEhZXJyb3IgJiYgdHlwZW9mIGVycm9yICE9PSAnc3RyaW5nJztcbiAgICB9XG59XG4iXX0=