@sbb-esta/lyne-elements-dev 5.0.0-next.1-dev.1777534945 → 5.0.0-next.1-dev.1777543026

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 (144) hide show
  1. package/autocomplete/autocomplete-base-element.js +1 -1
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/{autocomplete-base-element-CSCv_WVh.js → autocomplete-base-element-BiLyvcN-.js} +1 -1
  4. package/autocomplete.js +1 -1
  5. package/autocomplete.pure.js +1 -1
  6. package/core/styles/mixins/scrollbar.scss +0 -6
  7. package/core/styles/scrollbar.scss +19 -24
  8. package/core/styles/styles.js +2 -2
  9. package/core.css +0 -37
  10. package/core.js +2 -2
  11. package/custom-elements.json +66 -16
  12. package/development/autocomplete/autocomplete-base-element.js +1 -1
  13. package/development/autocomplete/autocomplete.component.js +1 -1
  14. package/development/{autocomplete-base-element-Bwkns3IL.js → autocomplete-base-element-BxBpn8_e.js} +2 -2
  15. package/development/autocomplete.js +1 -1
  16. package/development/autocomplete.pure.js +1 -1
  17. package/development/core/styles/styles.d.ts +1 -0
  18. package/development/core/styles/styles.d.ts.map +1 -1
  19. package/development/core/styles/styles.js +2 -2
  20. package/development/core.js +2 -2
  21. package/development/dialog/dialog-content/dialog-content.component.d.ts +1 -0
  22. package/development/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
  23. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  24. package/development/{dialog-content.component-B7Grxjk6.js → dialog-content.component-Bzt-PL6f.js} +10 -3
  25. package/development/dialog.js +1 -1
  26. package/development/dialog.pure.js +1 -1
  27. package/development/file-selector/common/file-selector-common.d.ts +1 -2
  28. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  29. package/development/file-selector/common/file-selector-common.js +2 -2
  30. package/development/file-selector/file-selector/file-selector.component.d.ts +1 -2
  31. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  32. package/development/file-selector/file-selector/file-selector.component.js +3 -6
  33. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  34. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  35. package/development/file-selector-common-BH_iIjcB.js +417 -0
  36. package/development/{file-selector-dropzone.component-DRUUWI1A.js → file-selector-dropzone.component-ZCanLwF-.js} +4 -8
  37. package/development/file-selector.js +3 -3
  38. package/development/file-selector.pure.js +3 -3
  39. package/development/map-container/map-container.component.d.ts.map +1 -1
  40. package/development/map-container/map-container.component.js +1 -1
  41. package/development/map-container.component-DoFCVBoh.js +180 -0
  42. package/development/map-container.js +1 -1
  43. package/development/map-container.pure.js +1 -1
  44. package/development/menu/menu/menu.component.d.ts.map +1 -1
  45. package/development/menu/menu/menu.component.js +1 -1
  46. package/development/menu.component-CDBUaD8s.js +369 -0
  47. package/development/menu.js +1 -1
  48. package/development/menu.pure.js +1 -1
  49. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  50. package/development/navigation/navigation/navigation.component.js +1 -1
  51. package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  52. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  53. package/development/navigation-section.component-D3_XVwyt.js +350 -0
  54. package/development/navigation.component-Cco4llBt.js +319 -0
  55. package/development/navigation.js +2 -2
  56. package/development/navigation.pure.js +2 -2
  57. package/development/overlay/overlay.component.d.ts.map +1 -1
  58. package/development/overlay/overlay.component.js +1 -1
  59. package/development/overlay.component-DBzb0PdD.js +206 -0
  60. package/development/overlay.js +1 -1
  61. package/development/overlay.pure.js +1 -1
  62. package/development/popover/popover.component.d.ts +1 -0
  63. package/development/popover/popover.component.d.ts.map +1 -1
  64. package/development/popover/popover.component.js +1 -1
  65. package/development/popover.component-Dj0INQsI.js +564 -0
  66. package/development/popover.js +1 -1
  67. package/development/popover.pure.js +1 -1
  68. package/development/select/select.component.js +1 -1
  69. package/development/{select.component-C1Xfvvii.js → select.component-D_9pjl7T.js} +2 -2
  70. package/development/select.js +1 -1
  71. package/development/select.pure.js +1 -1
  72. package/development/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
  73. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  74. package/development/sidebar.component-CYLbI1Vp.js +356 -0
  75. package/development/sidebar.js +1 -1
  76. package/development/sidebar.pure.js +1 -1
  77. package/development/styles-B_IWjHc5.js +22 -0
  78. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  79. package/development/table-wrapper.component-D8IFPow6.js +119 -0
  80. package/development/table.js +1 -1
  81. package/development/table.pure.js +1 -1
  82. package/dialog/dialog-content/dialog-content.component.js +1 -1
  83. package/{dialog-content.component-are-UBx3.js → dialog-content.component-iRLHPKPb.js} +7 -2
  84. package/dialog.js +1 -1
  85. package/dialog.pure.js +1 -1
  86. package/file-selector/common/file-selector-common.js +2 -2
  87. package/file-selector/file-selector/file-selector.component.js +10 -13
  88. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  89. package/{file-selector-common-jpJmVqAw.js → file-selector-common-PcqPdsnN.js} +44 -38
  90. package/{file-selector-dropzone.component-DDRTu6p2.js → file-selector-dropzone.component-2XUfh1NC.js} +20 -24
  91. package/file-selector.js +5 -5
  92. package/file-selector.pure.js +4 -4
  93. package/map-container/map-container.component.js +1 -1
  94. package/{map-container.component-Btnl3n9d.js → map-container.component-5I5DW5dJ.js} +23 -16
  95. package/map-container.js +1 -1
  96. package/map-container.pure.js +1 -1
  97. package/menu/menu/menu.component.js +1 -1
  98. package/{menu.component-CpNMheMG.js → menu.component-Bd37u3Ps.js} +26 -22
  99. package/menu.js +1 -1
  100. package/menu.pure.js +1 -1
  101. package/navigation/navigation/navigation.component.js +1 -1
  102. package/navigation/navigation-section/navigation-section.component.js +1 -1
  103. package/{navigation-section.component-219JlVIe.js → navigation-section.component-B_0xi30L.js} +24 -20
  104. package/{navigation.component-gLrMCbh9.js → navigation.component-CmrLIeDB.js} +24 -20
  105. package/navigation.js +2 -2
  106. package/navigation.pure.js +2 -2
  107. package/off-brand-theme.css +33 -134
  108. package/overlay/overlay.component.js +1 -1
  109. package/overlay.component-D2jtCeeb.js +156 -0
  110. package/overlay.js +1 -1
  111. package/overlay.pure.js +1 -1
  112. package/package.json +2 -2
  113. package/popover/popover.component.js +1 -1
  114. package/{popover.component-DnY9obd7.js → popover.component-CiMeNnO-.js} +27 -24
  115. package/popover.js +1 -1
  116. package/popover.pure.js +1 -1
  117. package/safety-theme.css +33 -134
  118. package/scrollbar.css +33 -97
  119. package/select/select.component.js +1 -1
  120. package/{select.component-Bhvd_sUV.js → select.component-BXPU7X_X.js} +1 -1
  121. package/select.js +1 -1
  122. package/select.pure.js +1 -1
  123. package/sidebar/sidebar/sidebar.component.js +1 -1
  124. package/{sidebar.component-Dpf9jZ1P.js → sidebar.component-CeUPJaqy.js} +28 -21
  125. package/sidebar.js +1 -1
  126. package/sidebar.pure.js +1 -1
  127. package/standard-theme.css +33 -134
  128. package/styles-Cb4jdMeE.js +5 -0
  129. package/table/table-wrapper/table-wrapper.component.js +1 -1
  130. package/{table-wrapper.component-DGL8RaxF.js → table-wrapper.component-CZ90q3pY.js} +1 -1
  131. package/table.js +1 -1
  132. package/table.pure.js +1 -1
  133. package/development/file-selector-common-BwkZZzA0.js +0 -409
  134. package/development/map-container.component-BLF21LG7.js +0 -173
  135. package/development/menu.component-BpKGNICN.js +0 -365
  136. package/development/navigation-section.component-DumXFFfg.js +0 -346
  137. package/development/navigation.component-CpoBEP55.js +0 -315
  138. package/development/overlay.component-CC_quHYI.js +0 -206
  139. package/development/popover.component-DT-cfDqo.js +0 -561
  140. package/development/sidebar.component-DR2JGwnM.js +0 -349
  141. package/development/styles-6T7UvhxK.js +0 -18
  142. package/development/table-wrapper.component-CjMOENHV.js +0 -119
  143. package/overlay.component-B00EoAd5.js +0 -156
  144. package/styles-D5okOWF1.js +0 -5
@@ -0,0 +1,369 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, isServer, unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbDarkModeController, SbbEscapableOverlayController, SbbFocusTrapController, SbbInertController, SbbLanguageController, SbbMediaMatcherController, SbbMediaQueryBreakpointSmallAndBelow, SbbOpenCloseBaseElement, SbbScrollHandler, boxSizingStyles, forwardEvent, getElementPosition, getElementPositionHorizontal, getNextElementIndex, i18nGoBack, idReference, interactivityChecker, isArrowKeyOrPageKeysPressed, isEventOnElement, isZeroAnimationDuration, removeAriaOverlayTriggerProperties, scrollbarStyles, setAriaOverlayTriggerProperties, ɵstateController } from "./core.js";
5
+ import { SbbDividerElement } from "./divider.pure.js";
6
+ import { ref } from "lit/directives/ref.js";
7
+ import { SbbMenuButtonElement } from "./menu/menu-button/menu-button.component.js";
8
+ //#region src/elements/menu/menu/menu.scss?inline
9
+ var menu_default = ":host {\n display: contents;\n --sbb-menu-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n --_sbb-menu-inset: 0 auto auto 0;\n}\n@media (min-width: calc(64rem)) {\n :host {\n --sbb-menu-back-button-display: none;\n }\n}\n\n:host(:is(:is(:state(state-opened),[state--state-opened]), :is(:state(state-opening),[state--state-opening]))) {\n --sbb-menu-visibility: visible;\n --sbb-menu-backdrop-color: color-mix(in srgb, var(--sbb-color-black) 20%, transparent);\n}\n@media (min-width: calc(64rem)) {\n :host(:is(:is(:state(state-opened),[state--state-opened]), :is(:state(state-opening),[state--state-opening]))) {\n --sbb-menu-backdrop-color: transparent;\n }\n}\n\n:host(:not(:is(:state(nested),[state--nested]))) {\n --sbb-menu-back-button-display: none;\n}\n\n:host(:not(:is(:state(state-closed),[state--state-closed]))) {\n --_sbb-menu-inset: 0;\n}\n\n:host(:is(:state(dark),[state--dark])) .sbb-scrollbar-negative {\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-default);\n --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);\n}\n\n@media (max-width: calc(63.9375rem)) {\n :host(:is(:state(skip-animation),[state--skip-animation])) {\n --sbb-menu-animation-duration: 0ms;\n }\n :host(:is(:state(nested-child),[state--nested-child])) {\n --sbb-menu-transform-x: -100%;\n }\n :host(:is(:state(nested),[state--nested]):is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) {\n --sbb-menu-open-animation-name: open-sideways;\n }\n :host(:is(:state(state-closing),[state--state-closing]):is(:state(nested),[state--nested]):not(:is(:state(close-all),[state--close-all]))) {\n --sbb-menu-close-animation-name: close-sideways;\n }\n}\n::slotted(:not(sbb-menu-button, sbb-menu-link, sbb-divider)) {\n display: block;\n padding-inline: var(--sbb-spacing-fixed-5x);\n}\n\nsbb-divider,\n::slotted(sbb-divider) {\n --sbb-divider-color: var(--sbb-background-color-4-inverted);\n margin-block: var(--sbb-spacing-fixed-2x);\n}\n\nsbb-divider,\n#sbb-menu__back-button {\n display: var(--sbb-menu-back-button-display, block);\n}\n\n.sbb-menu__container {\n position: fixed;\n pointer-events: none;\n inset: var(--_sbb-menu-inset);\n height: var(--sbb-menu-container-height);\n z-index: var(--sbb-menu-z-index, var(--sbb-overlay-default-z-index));\n}\n.sbb-menu__container::before {\n content: \"\";\n visibility: var(--sbb-menu-visibility, hidden);\n pointer-events: all;\n position: fixed;\n inset: var(--_sbb-menu-inset);\n height: var(--sbb-menu-container-height);\n background-color: var(--sbb-menu-backdrop-color, transparent);\n transition-duration: var(--sbb-menu-animation-duration);\n transition-timing-function: var(--sbb-menu-animation-easing);\n transition-property: background-color, visibility;\n}\n:host(:is(:state(nested),[state--nested])) .sbb-menu__container::before {\n display: none;\n}\n\n.sbb-menu {\n display: none;\n opacity: 0;\n pointer-events: none;\n max-width: var(--sbb-menu-max-width);\n min-width: var(--sbb-menu-min-width);\n text-align: start;\n position: absolute;\n inset-inline-start: 0;\n inset-block-start: unset;\n inset-block-end: 0;\n inset-inline-end: unset;\n color: var(--sbb-menu-color);\n border: none;\n border-radius: var(--sbb-menu-border-radius) var(--sbb-menu-border-radius) 0 0;\n background-color: var(--sbb-menu-background-color);\n padding: 0;\n overflow: hidden;\n translate: var(--sbb-menu-transform-x, 0) 0;\n transition: translate var(--sbb-menu-animation-duration);\n}\n:host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) .sbb-menu {\n display: block;\n opacity: 1;\n pointer-events: all;\n animation-name: var(--sbb-menu-open-animation-name, open);\n animation-duration: var(--sbb-menu-animation-duration);\n animation-timing-function: var(--sbb-menu-animation-easing);\n}\n:host(:is(:state(state-closing),[state--state-closing])) .sbb-menu {\n pointer-events: none;\n animation-name: var(--sbb-menu-close-animation-name, close);\n}\n@media (forced-colors: active) {\n .sbb-menu {\n outline: var(--sbb-border-width-1x) solid CanvasText;\n }\n}\n@media (min-width: calc(64rem)) {\n .sbb-menu {\n top: 0;\n bottom: unset;\n left: 0;\n right: unset;\n max-height: fit-content;\n border-radius: var(--sbb-menu-border-radius);\n }\n :host(:not(:is(:state(state-closed),[state--state-closed]))) .sbb-menu {\n top: var(--sbb-menu-position-y, 0);\n left: var(--sbb-menu-position-x, 0);\n max-height: var(--sbb-menu-max-height);\n min-height: var(--sbb-menu-min-height);\n }\n}\n\n.sbb-menu__content {\n max-height: var(--sbb-menu-max-height);\n padding-block: var(--sbb-spacing-fixed-1x);\n overflow: auto;\n outline: none;\n}\n.sbb-menu__content::after {\n content: \"\";\n display: block;\n height: var(--sbb-spacing-fixed-8x);\n}\n@media (min-width: calc(64rem)) {\n .sbb-menu__content {\n max-height: fit-content;\n }\n :host(:not(:is(:state(state-closed),[state--state-closed]))) .sbb-menu__content {\n max-height: var(--sbb-menu-max-height);\n min-height: var(--sbb-menu-min-height);\n }\n .sbb-menu__content::after {\n display: none;\n }\n}\n\n::slotted(:is(:is(:state(sbb-link),[state--sbb-link]), :is(:state(sbb-button),[state--sbb-button]))) {\n color-scheme: only light;\n}\n\n@keyframes open {\n from {\n opacity: 0;\n translate: 0 var(--sbb-menu-transform-y, 100%);\n }\n to {\n opacity: 1;\n translate: 0 0;\n }\n}\n@keyframes close {\n from {\n opacity: 1;\n translate: 0 0;\n }\n to {\n opacity: 0;\n translate: 0 var(--sbb-menu-transform-y, 100%);\n }\n}\n@keyframes open-sideways {\n from {\n translate: 100% 0;\n }\n to {\n translate: 0 0;\n }\n}\n@keyframes close-sideways {\n from {\n translate: 0 0;\n }\n to {\n translate: 100% 0;\n }\n}";
10
+ //#endregion
11
+ //#region src/elements/menu/menu/menu.component.ts
12
+ var MENU_OFFSET = 8;
13
+ var NESTED_MENU_OFFSET = -4;
14
+ var INTERACTIVE_ELEMENTS = [
15
+ "A",
16
+ "BUTTON",
17
+ "SBB-BUTTON",
18
+ "SBB-BUTTON-LINK",
19
+ "SBB-LINK",
20
+ "SBB-BLOCK-LINK",
21
+ "SBB-LINK-BUTTON",
22
+ "SBB-BLOCK-LINK-BUTTON",
23
+ "SBB-MENU-BUTTON",
24
+ "SBB-MENU-LINK"
25
+ ];
26
+ /**
27
+ * It displays a contextual menu with one or more action element.
28
+ *
29
+ * @slot - Use the unnamed slot to add `sbb-menu-button`/`sbb-menu-link` or other elements to the menu.
30
+ * @cssprop [--sbb-menu-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
31
+ * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
32
+ * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
33
+ */
34
+ var SbbMenuElement = (() => {
35
+ let _classSuper = SbbOpenCloseBaseElement;
36
+ let _trigger_decorators;
37
+ let _trigger_initializers = [];
38
+ let _trigger_extraInitializers = [];
39
+ return class SbbMenuElement extends _classSuper {
40
+ static {
41
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
42
+ _trigger_decorators = [idReference(), property()];
43
+ __esDecorate(this, null, _trigger_decorators, {
44
+ kind: "accessor",
45
+ name: "trigger",
46
+ static: false,
47
+ private: false,
48
+ access: {
49
+ has: (obj) => "trigger" in obj,
50
+ get: (obj) => obj.trigger,
51
+ set: (obj, value) => {
52
+ obj.trigger = value;
53
+ }
54
+ },
55
+ metadata: _metadata
56
+ }, _trigger_initializers, _trigger_extraInitializers);
57
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
58
+ enumerable: true,
59
+ configurable: true,
60
+ writable: true,
61
+ value: _metadata
62
+ });
63
+ }
64
+ static {
65
+ this.elementName = "sbb-menu";
66
+ }
67
+ static {
68
+ this.elementDependencies = [SbbDividerElement, SbbMenuButtonElement];
69
+ }
70
+ static {
71
+ this.styles = [
72
+ boxSizingStyles,
73
+ scrollbarStyles,
74
+ unsafeCSS(menu_default)
75
+ ];
76
+ }
77
+ static {
78
+ this.role = "menu";
79
+ }
80
+ #trigger_accessor_storage;
81
+ /**
82
+ * The element that will trigger the menu overlay.
83
+ *
84
+ * For attribute usage, provide an id reference.
85
+ */
86
+ get trigger() {
87
+ return this.#trigger_accessor_storage;
88
+ }
89
+ set trigger(value) {
90
+ this.#trigger_accessor_storage = value;
91
+ }
92
+ constructor() {
93
+ super();
94
+ this.#trigger_accessor_storage = __runInitializers(this, _trigger_initializers, null);
95
+ this._menu = __runInitializers(this, _trigger_extraInitializers);
96
+ this._triggerElement = null;
97
+ this._isPointerDownEventOnMenu = false;
98
+ this._escapableOverlayController = new SbbEscapableOverlayController(this);
99
+ this._focusTrapController = new SbbFocusTrapController(this);
100
+ this._scrollHandler = new SbbScrollHandler();
101
+ this._inertController = new SbbInertController(this);
102
+ this._mobileBreakpoint = SbbMediaQueryBreakpointSmallAndBelow;
103
+ this._mediaMatcher = new SbbMediaMatcherController(this, { [this._mobileBreakpoint]: (matches) => {
104
+ if (matches && (this.state === "opening" || this.state === "opened")) this._scrollHandler.disableScroll();
105
+ else this._scrollHandler.enableScroll();
106
+ } });
107
+ this._darkModeController = new SbbDarkModeController(this, () => this._syncNegative());
108
+ this._language = new SbbLanguageController(this);
109
+ this._nestedMenu = null;
110
+ this._pointerDownListener = (event) => {
111
+ const menu = event.target.closest("sbb-menu");
112
+ this._isPointerDownEventOnMenu = isEventOnElement(this._menu, event) || this._nestedMenus().some((el) => menu === el);
113
+ };
114
+ this._closeOnBackdropClick = (event) => {
115
+ const target = event.target;
116
+ if (!this._isPointerDownEventOnMenu && !isEventOnElement(this._menu, event) && !this._nestedMenus().some((el) => el === target)) this.closeAll();
117
+ };
118
+ this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
119
+ }
120
+ firstUpdated(changedProperties) {
121
+ super.firstUpdated(changedProperties);
122
+ this._configureTrigger();
123
+ }
124
+ escapeStrategy() {
125
+ this.closeAll();
126
+ }
127
+ /**
128
+ * Opens the menu on trigger click.
129
+ */
130
+ open() {
131
+ if (this.state === "closing" || this.state === "opened" || !this._menu || !this.dispatchBeforeOpenEvent()) return;
132
+ if (this._isNested()) {
133
+ const parentMenu = this._parentMenu();
134
+ parentMenu.internals.states.add("nested-child");
135
+ if (parentMenu._nestedMenu !== this) parentMenu._nestedMenu?.close();
136
+ parentMenu._nestedMenu = this;
137
+ }
138
+ this.showPopover?.();
139
+ this.state = "opening";
140
+ this._setMenuPosition();
141
+ if (this._triggerElement) this._triggerElement.ariaExpanded = "true";
142
+ if (this._isMobile()) this._scrollHandler.disableScroll();
143
+ if (this._isZeroAnimationDuration()) this._handleOpening();
144
+ }
145
+ /** Closes the menu and all its nested menus. */
146
+ close() {
147
+ this._close();
148
+ }
149
+ /** Closes the menu and all related menus (nested and parent menus). */
150
+ closeAll() {
151
+ this._mainMenu()._close(true);
152
+ }
153
+ /** @param [closeAll='false'] - If true, it ensures animations are correct by toggling some states when closing all related menus at once. */
154
+ _close(closeAll = false) {
155
+ if (this.state === "opening" && !this._isNested() || !this.dispatchBeforeCloseEvent()) return;
156
+ this._nestedMenu?._close(closeAll);
157
+ if (this._isNested()) {
158
+ const parentMenu = this._parentMenu();
159
+ if (closeAll) {
160
+ this.internals.states.add("close-all");
161
+ parentMenu.internals.states.add("skip-animation");
162
+ } else {
163
+ this.internals.states.delete("close-all");
164
+ parentMenu.internals.states.delete("skip-animation");
165
+ }
166
+ parentMenu.internals.states.delete("nested-child");
167
+ parentMenu._nestedMenu = null;
168
+ }
169
+ this.state = "closing";
170
+ if (this._triggerElement) this._triggerElement.ariaExpanded = "false";
171
+ if (this._isZeroAnimationDuration()) this._handleClosing();
172
+ }
173
+ _isZeroAnimationDuration() {
174
+ return isZeroAnimationDuration(this, "--sbb-menu-animation-duration");
175
+ }
176
+ _handleOpening() {
177
+ this.state = "opened";
178
+ if (!this._isNested()) this._inertController.activate();
179
+ else this._updateNestedInert();
180
+ this._escapableOverlayController.connect();
181
+ this._focusTrapController.focusInitialElement();
182
+ this._focusTrapController.enabled = true;
183
+ this._attachWindowEvents();
184
+ this.dispatchOpenEvent();
185
+ }
186
+ _handleClosing() {
187
+ this.state = "closed";
188
+ this.internals.states.delete("skip-animation");
189
+ this.internals.states.delete("close-all");
190
+ this.hidePopover?.();
191
+ this._menu?.firstElementChild?.scrollTo(0, 0);
192
+ if (!this._isNested()) this._inertController.deactivate();
193
+ else this._updateNestedInert();
194
+ this._triggerElement?.focus({ preventScroll: ["sbb-header-button", "sbb-header-link"].includes(this._triggerElement.localName) });
195
+ this._escapableOverlayController.disconnect();
196
+ this.dispatchCloseEvent();
197
+ this._windowEventsController?.abort();
198
+ this._focusTrapController.enabled = false;
199
+ this._scrollHandler.enableScroll();
200
+ }
201
+ _handleKeyDown(evt) {
202
+ if (!isArrowKeyOrPageKeysPressed(evt)) return;
203
+ evt.preventDefault();
204
+ const enabledActions = Array.from(this.querySelectorAll("sbb-menu-button, sbb-menu-link")).concat(this.shadowRoot.querySelector("sbb-menu-button")).filter((el) => (!el.disabled || el.disabledInteractive) && interactivityChecker.isVisible(el));
205
+ const current = enabledActions.findIndex((e) => e === evt.target);
206
+ let nextIndex;
207
+ switch (evt.key) {
208
+ case "ArrowUp":
209
+ case "ArrowDown":
210
+ nextIndex = getNextElementIndex(evt, current, enabledActions.length);
211
+ break;
212
+ case "ArrowLeft":
213
+ if (this._isNested()) this.close();
214
+ break;
215
+ case "ArrowRight":
216
+ if (evt.target.matches(":is(:state(sbb-menu-trigger),[state--sbb-menu-trigger])")) evt.target.click();
217
+ break;
218
+ case "PageUp":
219
+ case "Home":
220
+ nextIndex = 0;
221
+ break;
222
+ case "End":
223
+ case "PageDown":
224
+ nextIndex = enabledActions.length - 1;
225
+ break;
226
+ }
227
+ if (nextIndex !== void 0) enabledActions[nextIndex].focus();
228
+ }
229
+ createRenderRoot() {
230
+ const renderRoot = super.createRenderRoot();
231
+ this.shadowRoot?.addEventListener("slotchange", () => this._syncNegative(), { capture: true });
232
+ return renderRoot;
233
+ }
234
+ connectedCallback() {
235
+ this.popover = "manual";
236
+ super.connectedCallback();
237
+ if (this.hasUpdated) this._configureTrigger();
238
+ }
239
+ disconnectedCallback() {
240
+ super.disconnectedCallback();
241
+ this._triggerElement = null;
242
+ this._triggerAbortController?.abort();
243
+ this._windowEventsController?.abort();
244
+ this._scrollHandler.enableScroll();
245
+ }
246
+ requestUpdate(name, oldValue, options) {
247
+ super.requestUpdate(name, oldValue, options);
248
+ if (!isServer && (!name || name === "trigger") && this.hasUpdated) this._configureTrigger();
249
+ }
250
+ _configureTrigger() {
251
+ if (this.trigger === this._triggerElement) return;
252
+ this._triggerAbortController?.abort();
253
+ removeAriaOverlayTriggerProperties(this._triggerElement);
254
+ this._triggerElement = this.trigger;
255
+ if (!this._triggerElement) return;
256
+ setAriaOverlayTriggerProperties(this, this._triggerElement, "menu", this.state);
257
+ this._triggerAbortController = new AbortController();
258
+ this._triggerElement.addEventListener("click", () => this.open(), { signal: this._triggerAbortController.signal });
259
+ this.toggleState("nested", ["sbb-menu-button", "sbb-menu-link"].includes(this._triggerElement.localName));
260
+ ɵstateController(this._triggerElement).add("sbb-menu-trigger");
261
+ }
262
+ _attachWindowEvents() {
263
+ this._windowEventsController = new AbortController();
264
+ document.addEventListener("scroll", () => this._setMenuPosition(), {
265
+ passive: true,
266
+ signal: this._windowEventsController.signal,
267
+ capture: true
268
+ });
269
+ window.addEventListener("resize", () => this._setMenuPosition(), {
270
+ passive: true,
271
+ signal: this._windowEventsController.signal
272
+ });
273
+ if (!this._isNested()) {
274
+ window.addEventListener("pointerdown", this._pointerDownListener, { signal: this._windowEventsController.signal });
275
+ window.addEventListener("pointerup", this._closeOnBackdropClick, { signal: this._windowEventsController.signal });
276
+ }
277
+ }
278
+ _interactiveElementClick(event) {
279
+ const target = event.target;
280
+ if (INTERACTIVE_ELEMENTS.includes(target.nodeName) && !target.hasAttribute("disabled") && !target.matches(":is(:state(sbb-menu-trigger),[state--sbb-menu-trigger])") && target.id !== "sbb-menu__back-button") this.closeAll();
281
+ }
282
+ /** Converts the linked list into an array of SbbMenuElement. */
283
+ _nestedMenus() {
284
+ const menus = [];
285
+ let current = this._nestedMenu;
286
+ while (current) {
287
+ menus.push(current);
288
+ current = current._nestedMenu;
289
+ }
290
+ return menus;
291
+ }
292
+ _parentMenu() {
293
+ return this._triggerElement?.closest("sbb-menu") ?? null;
294
+ }
295
+ /** The outermost menu. */
296
+ _mainMenu() {
297
+ return this._isNested() ? this._parentMenu()?._mainMenu() ?? this : this;
298
+ }
299
+ _isNested() {
300
+ return !!this._parentMenu();
301
+ }
302
+ _updateNestedInert() {
303
+ this._inertController.restoreAllExempted();
304
+ this._mainMenu()._nestedMenus().forEach((menu) => this._inertController.exempt(menu));
305
+ }
306
+ _handleMouseOver(event) {
307
+ const element = event.target;
308
+ const isMobile = this._isMobile();
309
+ if (!isMobile && this._nestedMenu && !element.classList.contains("sbb-menu__content") && !(element.ariaExpanded === "true")) this._nestedMenu.close();
310
+ if (element.matches(":is(:state(sbb-menu-trigger),[state--sbb-menu-trigger])") && !isMobile) element.click();
311
+ }
312
+ _onMenuAnimationEnd(event) {
313
+ if ((event.animationName === "open" || event.animationName === "open-sideways") && this.state === "opening") this._handleOpening();
314
+ else if ((event.animationName === "close" || event.animationName === "close-sideways") && this.state === "closing") this._handleClosing();
315
+ }
316
+ _setMenuPosition() {
317
+ if (this._isMobile() || !this._menu || !this._triggerElement || this.state === "closing") return;
318
+ const menuPosition = !this._isNested() ? getElementPosition(this.shadowRoot.querySelector(".sbb-menu__content"), this._triggerElement, this.shadowRoot.querySelector(".sbb-menu__container"), { verticalOffset: MENU_OFFSET }) : getElementPositionHorizontal(this.shadowRoot.querySelector(".sbb-menu__content"), this._triggerElement, this.shadowRoot.querySelector(".sbb-menu__container"), {
319
+ horizontalOffset: MENU_OFFSET,
320
+ verticalOffset: NESTED_MENU_OFFSET,
321
+ contentSelector: ".sbb-menu__content"
322
+ });
323
+ this.style.setProperty("--sbb-menu-position-x", `${menuPosition.left}px`);
324
+ this.style.setProperty("--sbb-menu-position-y", `${menuPosition.top}px`);
325
+ this.style.setProperty("--sbb-menu-max-height", menuPosition.maxHeight);
326
+ }
327
+ _syncNegative() {
328
+ this.querySelectorAll(":is(:state(sbb-link),[state--sbb-link]), :is(:state(sbb-button),[state--sbb-button])")?.forEach((el) => {
329
+ customElements.upgrade(el);
330
+ el.negative = !this._darkModeController.matches();
331
+ });
332
+ }
333
+ _isMobile() {
334
+ return this._mediaMatcher.matches(this._mobileBreakpoint) ?? true;
335
+ }
336
+ render() {
337
+ return html`
338
+ <div class="sbb-menu__container">
339
+ <div
340
+ @animationend=${this._onMenuAnimationEnd}
341
+ @mouseover=${(e) => this._handleMouseOver(e)}
342
+ class="sbb-menu"
343
+ ${ref((el) => this._menu = el)}
344
+ >
345
+ <div
346
+ @click=${(event) => this._interactiveElementClick(event)}
347
+ @scroll=${(e) => forwardEvent(e, document)}
348
+ class="sbb-menu__content sbb-scrollbar-negative"
349
+ >
350
+ <slot></slot>
351
+ <sbb-divider></sbb-divider>
352
+ <sbb-menu-button
353
+ id="sbb-menu__back-button"
354
+ @click=${() => this.close()}
355
+ icon-name="chevron-small-left-small"
356
+ >
357
+ ${i18nGoBack[this._language.current]}
358
+ </sbb-menu-button>
359
+ </div>
360
+ </div>
361
+ </div>
362
+ `;
363
+ }
364
+ };
365
+ })();
366
+ //#endregion
367
+ export { SbbMenuElement as t };
368
+
369
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQtQ0RCVWFEOHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC8vIFdlIHVzZSB0aGlzIHJ1bGUgdG8gbWFrZSB0aGUgaW5uZXIgY29udGFpbmVyIGVsZW1lbnQgdG8gYXBwZWFyIGFzIGlmIGl0IHdlcmUgYVxuICAvLyBkaXJlY3QgY2hpbGQgb2YgdGhlIGhvc3QncyBwYXJlbnQgZWxlbWVudC4gVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSB0aGUgaG9zdFxuICAvLyBzaG91bGQgYmUgaWdub3JlZCB3aGVuIHVzaW5nIENTUyBncmlkIG9yIHNpbWlsYXIgbGF5b3V0IHRlY2huaXF1ZXMuXG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gIC0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eClcbiAgKTtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG4gIC0tX3NiYi1tZW51LWluc2V0OiAwIGF1dG8gYXV0byAwO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAtLXNiYi1tZW51LWJhY2stYnV0dG9uLWRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpKSB7XG4gIC0tc2JiLW1lbnUtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLS1zYmItbWVudS1iYWNrZHJvcC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNiYi1jb2xvci1ibGFjaykgMjAlLCB0cmFuc3BhcmVudCk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW1lbnUtYmFja2Ryb3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbjpob3N0KDpub3QoOnN0YXRlKG5lc3RlZCkpKSB7XG4gIC0tc2JiLW1lbnUtYmFjay1idXR0b24tZGlzcGxheTogbm9uZTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc3RhdGUtY2xvc2VkKSkpIHtcbiAgLS1fc2JiLW1lbnUtaW5zZXQ6IDA7XG59XG5cbjpob3N0KDpzdGF0ZShkYXJrKSkgLnNiYi1zY3JvbGxiYXItbmVnYXRpdmUge1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kZWZhdWx0KTtcblxuICAvLyBXZSBoYXZlIHRvIGVuc3VyZSB0aGF0IHRoZSBzY3JvbGxiYXIgaXMgdmlzaWJsZSBpbiBkYXJrIG1vZGUgd2l0aCBub24tZGFyayBtb2RlIHZhbHVlcy5cbiAgLS1zYmItc2Nyb2xsYmFyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgLS1zYmItc2Nyb2xsYmFyLWNvbG9yLWhvdmVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSA2MCUsIHRyYW5zcGFyZW50KTtcbn1cblxuQGluY2x1ZGUgc2JiLm1xKCR0bzogbGFyZ2UpIHtcbiAgOmhvc3QoOnN0YXRlKHNraXAtYW5pbWF0aW9uKSkge1xuICAgIC0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uOiAwbXM7XG4gIH1cblxuICA6aG9zdCg6c3RhdGUobmVzdGVkLWNoaWxkKSkge1xuICAgIC0tc2JiLW1lbnUtdHJhbnNmb3JtLXg6IC0xMDAlO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKG5lc3RlZCk6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICAgIC0tc2JiLW1lbnUtb3Blbi1hbmltYXRpb24tbmFtZTogb3Blbi1zaWRld2F5cztcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKTpzdGF0ZShuZXN0ZWQpOm5vdCg6c3RhdGUoY2xvc2UtYWxsKSkpIHtcbiAgICAtLXNiYi1tZW51LWNsb3NlLWFuaW1hdGlvbi1uYW1lOiBjbG9zZS1zaWRld2F5cztcbiAgfVxufVxuXG46OnNsb3R0ZWQoOm5vdChzYmItbWVudS1idXR0b24sIHNiYi1tZW51LWxpbmssIHNiYi1kaXZpZGVyKSkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTV4KTtcbn1cblxuc2JiLWRpdmlkZXIsXG46OnNsb3R0ZWQoc2JiLWRpdmlkZXIpIHtcbiAgLS1zYmItZGl2aWRlci1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItNC1pbnZlcnRlZCk7XG5cbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCk7XG59XG5cbnNiYi1kaXZpZGVyLFxuI3NiYi1tZW51X19iYWNrLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IHZhcigtLXNiYi1tZW51LWJhY2stYnV0dG9uLWRpc3BsYXksIGJsb2NrKTtcbn1cblxuLnNiYi1tZW51X19jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBpbnNldDogdmFyKC0tX3NiYi1tZW51LWluc2V0KTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbWVudS1jb250YWluZXItaGVpZ2h0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW1lbnUtei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG5cbiAgLy8gTWVudSBiYWNrZHJvcCAob25seSB2aXNpYmxlIG9uIG1vYmlsZSlcbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB2aXNpYmlsaXR5OiB2YXIoLS1zYmItbWVudS12aXNpYmlsaXR5LCBoaWRkZW4pO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiB2YXIoLS1fc2JiLW1lbnUtaW5zZXQpO1xuICAgIGhlaWdodDogdmFyKC0tc2JiLW1lbnUtY29udGFpbmVyLWhlaWdodCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW1lbnUtYmFja2Ryb3AtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICB0cmFuc2l0aW9uOiB7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW1lbnUtYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgICBwcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgdmlzaWJpbGl0eTtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHRoZSBiYWNrZHJvcCB3aGVuIGluIG5lc3RlZCBzdGF0ZVxuICAgIDpob3N0KDpzdGF0ZShuZXN0ZWQpKSAmIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5zYmItbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBtYXgtd2lkdGg6IHZhcigtLXNiYi1tZW51LW1heC13aWR0aCk7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLW1lbnUtbWluLXdpZHRoKTtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBpbnNldC1ibG9jay1zdGFydDogdW5zZXQ7XG4gIGluc2V0LWJsb2NrLWVuZDogMDtcbiAgaW5zZXQtaW5saW5lLWVuZDogdW5zZXQ7XG4gIGNvbG9yOiB2YXIoLS1zYmItbWVudS1jb2xvcik7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLW1lbnUtYm9yZGVyLXJhZGl1cykgdmFyKC0tc2JiLW1lbnUtYm9yZGVyLXJhZGl1cykgMCAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbWVudS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbWVudS10cmFuc2Zvcm0teCwgMCkgMDtcblxuICAvLyBVc2VkIHdoZW4gbmF2aWdhdGluZyBiYWNrIGZyb20gbmVzdGVkIG1lbnUgaW4gbW9iaWxlIHZpZXdcbiAgdHJhbnNpdGlvbjogdHJhbnNsYXRlIHZhcigtLXNiYi1tZW51LWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgIGFuaW1hdGlvbjoge1xuICAgICAgbmFtZTogdmFyKC0tc2JiLW1lbnUtb3Blbi1hbmltYXRpb24tbmFtZSwgb3Blbik7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW1lbnUtYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBhbmltYXRpb24tbmFtZTogdmFyKC0tc2JiLW1lbnUtY2xvc2UtYW5pbWF0aW9uLW5hbWUsIGNsb3NlKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBvdXRsaW5lOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IHVuc2V0O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IHVuc2V0O1xuICAgIG1heC1oZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1tZW51LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgOmhvc3QoOm5vdCg6c3RhdGUoc3RhdGUtY2xvc2VkKSkpICYge1xuICAgICAgdG9wOiB2YXIoLS1zYmItbWVudS1wb3NpdGlvbi15LCAwKTtcbiAgICAgIGxlZnQ6IHZhcigtLXNiYi1tZW51LXBvc2l0aW9uLXgsIDApO1xuICAgICAgbWF4LWhlaWdodDogdmFyKC0tc2JiLW1lbnUtbWF4LWhlaWdodCk7XG4gICAgICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItbWVudS1taW4taGVpZ2h0KTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1tZW51X19jb250ZW50IHtcbiAgbWF4LWhlaWdodDogdmFyKC0tc2JiLW1lbnUtbWF4LWhlaWdodCk7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG5cbiAgLy8gTWFyZ2luIGJvdHRvbSBpbiBtb2JpbGUgdmFyaWFudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC04eCk7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7XG5cbiAgICA6aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkgJiB7XG4gICAgICBtYXgtaGVpZ2h0OiB2YXIoLS1zYmItbWVudS1tYXgtaGVpZ2h0KTtcbiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1tZW51LW1pbi1oZWlnaHQpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbjo6c2xvdHRlZCg6aXMoOnN0YXRlKHNiYi1saW5rKSwgOnN0YXRlKHNiYi1idXR0b24pKSkge1xuICAvLyBBcyB0aGUgYmFja2dyb3VuZCB0dXJucyB3aGl0ZSwgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCBidXR0b25zIGFuZCBsaW5rcyBhcmUgZGlzcGxheWVkIGluIHBvc2l0aXZlLlxuICBjb2xvci1zY2hlbWU6IG9ubHkgbGlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgb3BlbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiAwIHZhcigtLXNiYi1tZW51LXRyYW5zZm9ybS15LCAxMDAlKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zbGF0ZTogMCAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zbGF0ZTogMCAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiAwIHZhcigtLXNiYi1tZW51LXRyYW5zZm9ybS15LCAxMDAlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4tc2lkZXdheXMge1xuICBmcm9tIHtcbiAgICB0cmFuc2xhdGU6IDEwMCUgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlLXNpZGV3YXlzIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiAwIDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNsYXRlOiAxMDAlIDA7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3J3YXJkRXZlbnQsXG4gIGdldEVsZW1lbnRQb3NpdGlvbixcbiAgZ2V0RWxlbWVudFBvc2l0aW9uSG9yaXpvbnRhbCxcbiAgZ2V0TmV4dEVsZW1lbnRJbmRleCxcbiAgaTE4bkdvQmFjayxcbiAgaWRSZWZlcmVuY2UsXG4gIGludGVyYWN0aXZpdHlDaGVja2VyLFxuICBpc0Fycm93S2V5T3JQYWdlS2V5c1ByZXNzZWQsXG4gIGlzRXZlbnRPbkVsZW1lbnQsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICBTYmJEYXJrTW9kZUNvbnRyb2xsZXIsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLFxuICBTYmJGb2N1c1RyYXBDb250cm9sbGVyLFxuICBTYmJJbmVydENvbnRyb2xsZXIsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93LFxuICB0eXBlIFNiYk5lZ2F0aXZlTWl4aW5UeXBlLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiU2Nyb2xsSGFuZGxlcixcbiAgc2Nyb2xsYmFyU3R5bGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICDJtXN0YXRlQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uLy4uL2RpdmlkZXIucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJNZW51QnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL21lbnUtYnV0dG9uL21lbnUtYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk1lbnVMaW5rRWxlbWVudCB9IGZyb20gJy4uL21lbnUtbGluay9tZW51LWxpbmsuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbWVudS5zY3NzP2lubGluZSc7XG5cbmNvbnN0IE1FTlVfT0ZGU0VUID0gODtcbmNvbnN0IE5FU1RFRF9NRU5VX09GRlNFVCA9IC00O1xuY29uc3QgSU5URVJBQ1RJVkVfRUxFTUVOVFMgPSBbXG4gICdBJyxcbiAgJ0JVVFRPTicsXG4gICdTQkItQlVUVE9OJyxcbiAgJ1NCQi1CVVRUT04tTElOSycsXG4gICdTQkItTElOSycsXG4gICdTQkItQkxPQ0stTElOSycsXG4gICdTQkItTElOSy1CVVRUT04nLFxuICAnU0JCLUJMT0NLLUxJTkstQlVUVE9OJyxcbiAgJ1NCQi1NRU5VLUJVVFRPTicsXG4gICdTQkItTUVOVS1MSU5LJyxcbl07XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBjb250ZXh0dWFsIG1lbnUgd2l0aCBvbmUgb3IgbW9yZSBhY3Rpb24gZWxlbWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW1lbnUtYnV0dG9uYC9gc2JiLW1lbnUtbGlua2Agb3Igb3RoZXIgZWxlbWVudHMgdG8gdGhlIG1lbnUuXG4gKiBAY3NzcHJvcCBbLS1zYmItbWVudS16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJNZW51RWxlbWVudCBleHRlbmRzIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1tZW51JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1xuICAgIFNiYkRpdmlkZXJFbGVtZW50LFxuICAgIFNiYk1lbnVCdXR0b25FbGVtZW50LFxuICBdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbXG4gICAgYm94U2l6aW5nU3R5bGVzLFxuICAgIHNjcm9sbGJhclN0eWxlcyxcbiAgICB1bnNhZmVDU1Moc3R5bGUpLFxuICBdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbWVudSc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBtZW51IG92ZXJsYXkuXG4gICAqXG4gICAqIEZvciBhdHRyaWJ1dGUgdXNhZ2UsIHByb3ZpZGUgYW4gaWQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQGlkUmVmZXJlbmNlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfbWVudSE6IEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfaXNQb2ludGVyRG93bkV2ZW50T25NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pbmVydENvbnRyb2xsZXIgPSBuZXcgU2JiSW5lcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9tb2JpbGVCcmVha3BvaW50ID0gU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93O1xuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gICAgW3RoaXMuX21vYmlsZUJyZWFrcG9pbnRdOiAobWF0Y2hlcykgPT4ge1xuICAgICAgaWYgKG1hdGNoZXMgJiYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJykpIHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuICBwcml2YXRlIF9kYXJrTW9kZUNvbnRyb2xsZXIgPSBuZXcgU2JiRGFya01vZGVDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuX3N5bmNOZWdhdGl2ZSgpKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9uZXN0ZWRNZW51OiBTYmJNZW51RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGVzY2FwZVN0cmF0ZWd5KCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgbWVudSBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnIHx8XG4gICAgICB0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fFxuICAgICAgIXRoaXMuX21lbnUgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgY29uc3QgcGFyZW50TWVudSA9IHRoaXMuX3BhcmVudE1lbnUoKSE7XG4gICAgICBwYXJlbnRNZW51LmludGVybmFscy5zdGF0ZXMuYWRkKCduZXN0ZWQtY2hpbGQnKTtcblxuICAgICAgLy8gSW4gY2FzZSB3ZSBjaGFuZ2UgYmV0d2VlbiBhcnJvdyBrZXkgbmF2aWdhdGlvbiBhbmQgbW91c2UgbmF2aWdhdGlvbiwgaXQgY2FuIGJlIHRoYXQgYW5vdGhlclxuICAgICAgLy8gbmVzdGVkIHBhcmVudCBtZW51IGlzIHN0aWxsIG9wZW4uIFdlIGhhdmUgdG8gY2xvc2UgaXQuXG4gICAgICBpZiAocGFyZW50TWVudS5fbmVzdGVkTWVudSAhPT0gdGhpcykge1xuICAgICAgICBwYXJlbnRNZW51Ll9uZXN0ZWRNZW51Py5jbG9zZSgpO1xuICAgICAgfVxuICAgICAgcGFyZW50TWVudS5fbmVzdGVkTWVudSA9IHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9zZXRNZW51UG9zaXRpb24oKTtcblxuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIEZyb20gemVybyB0byBsYXJnZSwgZGlzYWJsZSBzY3JvbGxcbiAgICBpZiAodGhpcy5faXNNb2JpbGUoKSkge1xuICAgICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBtZW51IGFuZCBhbGwgaXRzIG5lc3RlZCBtZW51cy4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlKCk7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBtZW51IGFuZCBhbGwgcmVsYXRlZCBtZW51cyAobmVzdGVkIGFuZCBwYXJlbnQgbWVudXMpLiAqL1xuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fbWFpbk1lbnUoKS5fY2xvc2UodHJ1ZSk7XG4gIH1cblxuICAvKiogQHBhcmFtIFtjbG9zZUFsbD0nZmFsc2UnXSAtIElmIHRydWUsIGl0IGVuc3VyZXMgYW5pbWF0aW9ucyBhcmUgY29ycmVjdCBieSB0b2dnbGluZyBzb21lIHN0YXRlcyB3aGVuIGNsb3NpbmcgYWxsIHJlbGF0ZWQgbWVudXMgYXQgb25jZS4gKi9cbiAgcHJpdmF0ZSBfY2xvc2UoY2xvc2VBbGwgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICgodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnICYmICF0aGlzLl9pc05lc3RlZCgpKSB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENsb3NlIG5lc3RlZCBtZW51cyBmaXJzdFxuICAgIHRoaXMuX25lc3RlZE1lbnU/Ll9jbG9zZShjbG9zZUFsbCk7XG5cbiAgICBpZiAodGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgY29uc3QgcGFyZW50TWVudSA9IHRoaXMuX3BhcmVudE1lbnUoKSE7XG4gICAgICBpZiAoY2xvc2VBbGwpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnY2xvc2UtYWxsJyk7XG4gICAgICAgIHBhcmVudE1lbnUuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ3NraXAtYW5pbWF0aW9uJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdjbG9zZS1hbGwnKTtcbiAgICAgICAgcGFyZW50TWVudS5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnc2tpcC1hbmltYXRpb24nKTtcbiAgICAgIH1cbiAgICAgIHBhcmVudE1lbnUuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ25lc3RlZC1jaGlsZCcpO1xuICAgICAgcGFyZW50TWVudS5fbmVzdGVkTWVudSA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICBpZiAodGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFFeHBhbmRlZCA9ICdmYWxzZSc7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcblxuICAgIGlmICghdGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgdGhpcy5faW5lcnRDb250cm9sbGVyLmFjdGl2YXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3VwZGF0ZU5lc3RlZEluZXJ0KCk7XG4gICAgfVxuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3NraXAtYW5pbWF0aW9uJyk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnY2xvc2UtYWxsJyk7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG5cbiAgICB0aGlzLl9tZW51Py5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgaWYgKCF0aGlzLl9pc05lc3RlZCgpKSB7XG4gICAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIuZGVhY3RpdmF0ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVOZXN0ZWRJbmVydCgpO1xuICAgIH1cbiAgICAvLyBNYW51YWxseSBmb2N1cyBsYXN0IGZvY3VzZWQgZWxlbWVudFxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cyh7XG4gICAgICAvLyBXaGVuIGluc2lkZSB0aGUgc2JiLWhlYWRlciwgd2UgcHJldmVudCB0aGUgc2Nyb2xsIHRvIGF2b2lkIHRoZSBzbmFwcGluZyB0byB0aGUgdG9wIG9mIHRoZSBwYWdlXG4gICAgICBwcmV2ZW50U2Nyb2xsOiBbJ3NiYi1oZWFkZXItYnV0dG9uJywgJ3NiYi1oZWFkZXItbGluayddLmluY2x1ZGVzKFxuICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5sb2NhbE5hbWUsXG4gICAgICApLFxuICAgIH0pO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fZm9jdXNUcmFwQ29udHJvbGxlci5lbmFibGVkID0gZmFsc2U7XG5cbiAgICAvLyBTdGFydGluZyBmcm9tIGJyZWFrcG9pbnQgbGFyZ2UsIGVuYWJsZSBzY3JvbGxcbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIWlzQXJyb3dLZXlPclBhZ2VLZXlzUHJlc3NlZChldnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgZW5hYmxlZEFjdGlvbnM6IEVsZW1lbnRbXSA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw8U2JiTWVudUJ1dHRvbkVsZW1lbnQgfCBTYmJNZW51TGlua0VsZW1lbnQ+KFxuICAgICAgICAnc2JiLW1lbnUtYnV0dG9uLCBzYmItbWVudS1saW5rJyxcbiAgICAgICksXG4gICAgKVxuICAgICAgLmNvbmNhdCh0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1tZW51LWJ1dHRvbicpISlcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChlbCkgPT4gKCFlbC5kaXNhYmxlZCB8fCBlbC5kaXNhYmxlZEludGVyYWN0aXZlKSAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUoZWwpLFxuICAgICAgKTtcbiAgICBjb25zdCBjdXJyZW50ID0gZW5hYmxlZEFjdGlvbnMuZmluZEluZGV4KChlOiBFbGVtZW50KSA9PiBlID09PSBldnQudGFyZ2V0KTtcblxuICAgIGxldCBuZXh0SW5kZXg7XG4gICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIG5leHRJbmRleCA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkQWN0aW9ucy5sZW5ndGgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgaWYgKHRoaXMuX2lzTmVzdGVkKCkpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICBpZiAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLm1hdGNoZXMoJzpzdGF0ZShzYmItbWVudS10cmlnZ2VyKScpKSB7XG4gICAgICAgICAgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ1BhZ2VVcCc6XG4gICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgIG5leHRJbmRleCA9IGVuYWJsZWRBY3Rpb25zLmxlbmd0aCAtIDE7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChuZXh0SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgKGVuYWJsZWRBY3Rpb25zW25leHRJbmRleF0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLlxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlUmVuZGVyUm9vdCgpOiBIVE1MRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQge1xuICAgIGNvbnN0IHJlbmRlclJvb3QgPSBzdXBlci5jcmVhdGVSZW5kZXJSb290KCk7XG4gICAgLy8gRHVlIHRvIHRoZSBmYWN0IHRoYXQgbWVudSBjYW4gYm90aCBiZSBhIGxpc3QgYW5kIGp1c3QgYSBjb250YWluZXIsIHdlIG5lZWQgdG8gY2hlY2sgaXRzXG4gICAgLy8gc3RhdGUgYmVmb3JlIHRoZSBTYmJOYW1lZFNsb3RMaXN0TWl4aW4gaGFuZGxlcyB0aGUgc2xvdGNoYW5nZSBldmVudCwgaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAvLyBpdCBpbnRlcnByZXRpbmcgdGhlIG5vbiBsaXN0IGNhc2UgYXMgYSBsaXN0LlxuICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsICgpID0+IHRoaXMuX3N5bmNOZWdhdGl2ZSgpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgcmV0dXJuIHJlbmRlclJvb3Q7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICghbmFtZSB8fCBuYW1lID09PSAndHJpZ2dlcicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENvbnNpZGVyIHRoZSBtZW51IGFzIG5lc3RlZCBpZiB0aGUgdHJpZ2dlciBpcyBhIG1lbnUgYnV0dG9uIG9yIG1lbnUgbGluay5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ25lc3RlZCcsXG4gICAgICBbJ3NiYi1tZW51LWJ1dHRvbicsICdzYmItbWVudS1saW5rJ10uaW5jbHVkZXModGhpcy5fdHJpZ2dlckVsZW1lbnQubG9jYWxOYW1lKSxcbiAgICApO1xuICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMuX3RyaWdnZXJFbGVtZW50KS5hZGQoJ3NiYi1tZW51LXRyaWdnZXInKTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaFdpbmRvd0V2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3NldE1lbnVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIC8vIFdpdGhvdXQgY2FwdHVyZSwgb3RoZXIgc2Nyb2xsIGNvbnRleHRzIHdvdWxkIG5vdCBidWJibGUgdG8gdGhpcyBldmVudCBsaXN0ZW5lci5cbiAgICAgIC8vIENhcHR1cmUgYWxsb3dzIHVzIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgY29udGV4dHMgaW4gdGhpcyBET00uXG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRNZW51UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBPbmx5IHRoZSBvdXRlcm1vc3QgbWVudSBuZWVkcyB0byBsaXN0ZW4gdG8gdGhlIGJhY2tkcm9wIGNsaWNrc1xuICAgIGlmICghdGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgLy8gQ2xvc2UgbWVudSBvbiBiYWNrZHJvcCBjbGlja1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lciwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2ssIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIENsb3NlIG1lbnUgYXQgYW55IGNsaWNrIG9uIGFuIGludGVyYWN0aXZlIGVsZW1lbnQgaW5zaWRlIHRoZSA8c2JiLW1lbnU+IHRoYXQgYnViYmxlcyB0byB0aGUgY29udGFpbmVyLlxuICBwcml2YXRlIF9pbnRlcmFjdGl2ZUVsZW1lbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoXG4gICAgICBJTlRFUkFDVElWRV9FTEVNRU5UUy5pbmNsdWRlcyh0YXJnZXQubm9kZU5hbWUpICYmXG4gICAgICAhdGFyZ2V0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJlxuICAgICAgIXRhcmdldC5tYXRjaGVzKCc6c3RhdGUoc2JiLW1lbnUtdHJpZ2dlciknKSAmJlxuICAgICAgdGFyZ2V0LmlkICE9PSAnc2JiLW1lbnVfX2JhY2stYnV0dG9uJ1xuICAgICkge1xuICAgICAgdGhpcy5jbG9zZUFsbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBtZW51LlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCBtZW51ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnc2JiLW1lbnUnKTtcblxuICAgIC8vIFRoZSBwb2ludGVyIGRvd24gaXMgb24gdGhlIG1lbnUgb3Igb25lIG9mIGl0cyBuZXN0ZWQgbWVudXMuXG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ID1cbiAgICAgIGlzRXZlbnRPbkVsZW1lbnQodGhpcy5fbWVudSwgZXZlbnQpIHx8IHRoaXMuX25lc3RlZE1lbnVzKCkuc29tZSgoZWwpID0+IG1lbnUgPT09IGVsKTtcbiAgfTtcblxuICAvLyBDbG9zZSBtZW51IG9uIGJhY2tkcm9wIGNsaWNrLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgLy8gVGhlIGJhY2tkcm9wIGlzIG9ubHkgbGlzdGVuZWQgb24gdGhlIG1haW4gbWVudSAob3V0ZXJtb3N0IG1lbnUpLlxuICAgIC8vIFRvIGNsb3NlLlxuICAgIC8vIC0gVGhlIHBvaW50ZXIgZG93biBhbmQgdXAgbmVlZCB0byBiZSBvdXRzaWRlIHRoZSBtZW51LlxuICAgIC8vIC0gVGhlIHRhcmdldCBzaG91bGQgYmUgbm90IG9uIGEgbmVzdGVkIG1lbnVcbiAgICBpZiAoXG4gICAgICAhdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ICYmXG4gICAgICAhaXNFdmVudE9uRWxlbWVudCh0aGlzLl9tZW51LCBldmVudCkgJiZcbiAgICAgICF0aGlzLl9uZXN0ZWRNZW51cygpLnNvbWUoKGVsKSA9PiBlbCA9PT0gdGFyZ2V0KVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZUFsbCgpO1xuICAgIH1cbiAgfTtcblxuICAvKiogQ29udmVydHMgdGhlIGxpbmtlZCBsaXN0IGludG8gYW4gYXJyYXkgb2YgU2JiTWVudUVsZW1lbnQuICovXG4gIHByaXZhdGUgX25lc3RlZE1lbnVzKCk6IFNiYk1lbnVFbGVtZW50W10ge1xuICAgIGNvbnN0IG1lbnVzOiBTYmJNZW51RWxlbWVudFtdID0gW107XG4gICAgbGV0IGN1cnJlbnQgPSB0aGlzLl9uZXN0ZWRNZW51O1xuXG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgIG1lbnVzLnB1c2goY3VycmVudCk7XG4gICAgICBjdXJyZW50ID0gY3VycmVudC5fbmVzdGVkTWVudTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVudXM7XG4gIH1cblxuICBwcml2YXRlIF9wYXJlbnRNZW51KCk6IFNiYk1lbnVFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5jbG9zZXN0KCdzYmItbWVudScpID8/IG51bGw7XG4gIH1cblxuICAvKiogVGhlIG91dGVybW9zdCBtZW51LiAqL1xuICBwcml2YXRlIF9tYWluTWVudSgpOiBTYmJNZW51RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTmVzdGVkKCkgPyAodGhpcy5fcGFyZW50TWVudSgpPy5fbWFpbk1lbnUoKSA/PyB0aGlzKSA6IHRoaXM7XG4gIH1cblxuICBwcml2YXRlIF9pc05lc3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9wYXJlbnRNZW51KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVOZXN0ZWRJbmVydCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIucmVzdG9yZUFsbEV4ZW1wdGVkKCk7XG4gICAgdGhpcy5fbWFpbk1lbnUoKVxuICAgICAgLl9uZXN0ZWRNZW51cygpXG4gICAgICAuZm9yRWFjaCgobWVudSkgPT4gdGhpcy5faW5lcnRDb250cm9sbGVyLmV4ZW1wdChtZW51KSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBuZXN0ZWQgbWVudSBzaG91bGQgYmUgY2xvc2VkLlxuICBwcml2YXRlIF9oYW5kbGVNb3VzZU92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGlzTW9iaWxlID0gdGhpcy5faXNNb2JpbGUoKTtcblxuICAgIC8vIEFsbCBuZXN0ZWQgbWVudXMgc2hvdWxkIGNsb3NlIGluIGRlc2t0b3AgbW9kZSBpZiB0aGUgY3Vyc29yIGxhbmRlZCBvblxuICAgIC8vIGFueXRoaW5nIG90aGVyIHRoYW4gdGhlIGNvbnRhaW5lciwgdGhlIGNvbnRhaW5lcidzIHNjcm9sbGJhciBvciB0aGUgdHJpZ2dlciBpdHNlbGZcbiAgICBpZiAoXG4gICAgICAhaXNNb2JpbGUgJiZcbiAgICAgIHRoaXMuX25lc3RlZE1lbnUgJiZcbiAgICAgICFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnc2JiLW1lbnVfX2NvbnRlbnQnKSAmJlxuICAgICAgIShlbGVtZW50LmFyaWFFeHBhbmRlZCA9PT0gJ3RydWUnKVxuICAgICkge1xuICAgICAgdGhpcy5fbmVzdGVkTWVudS5jbG9zZSgpO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50Lm1hdGNoZXMoJzpzdGF0ZShzYmItbWVudS10cmlnZ2VyKScpICYmICFpc01vYmlsZSkge1xuICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBtZW51IHBvc2l0aW9uICh4LCB5KSB0byAnMCcgb25jZSB0aGUgbWVudSBpcyBjbG9zZWQgYW5kIHRoZSB0cmFuc2l0aW9uIGVuZGVkIHRvIHByZXZlbnQgdGhlXG4gIC8vIHZpZXdwb3J0IGZyb20gb3ZlcmZsb3dpbmcuIEFuZCBzZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBvbmNlIHRoZSBtZW51IGlzIG9wZW4uXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25NZW51QW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgfHwgZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tc2lkZXdheXMnKSAmJlxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnXG4gICAgKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnIHx8IGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZS1zaWRld2F5cycpICYmXG4gICAgICB0aGlzLnN0YXRlID09PSAnY2xvc2luZydcbiAgICApIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgbWVudSBwb3NpdGlvbiBhbmQgbWF4IGhlaWdodCBpZiB0aGUgYnJlYWtwb2ludCBpcyBsYXJnZS11bHRyYS5cbiAgcHJpdmF0ZSBfc2V0TWVudVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBsYXJnZVxuICAgIGlmICh0aGlzLl9pc01vYmlsZSgpIHx8ICF0aGlzLl9tZW51IHx8ICF0aGlzLl90cmlnZ2VyRWxlbWVudCB8fCB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51UG9zaXRpb24gPSAhdGhpcy5faXNOZXN0ZWQoKVxuICAgICAgPyBnZXRFbGVtZW50UG9zaXRpb24oXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLW1lbnVfX2NvbnRlbnQnKSEsXG4gICAgICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQsXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLW1lbnVfX2NvbnRhaW5lcicpISxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2ZXJ0aWNhbE9mZnNldDogTUVOVV9PRkZTRVQsXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgOiBnZXRFbGVtZW50UG9zaXRpb25Ib3Jpem9udGFsKFxuICAgICAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250ZW50JykhLFxuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LFxuICAgICAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250YWluZXInKSEsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaG9yaXpvbnRhbE9mZnNldDogTUVOVV9PRkZTRVQsXG4gICAgICAgICAgICB2ZXJ0aWNhbE9mZnNldDogTkVTVEVEX01FTlVfT0ZGU0VULFxuICAgICAgICAgICAgY29udGVudFNlbGVjdG9yOiAnLnNiYi1tZW51X19jb250ZW50JyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbWVudS1wb3NpdGlvbi14JywgYCR7bWVudVBvc2l0aW9uLmxlZnR9cHhgKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1tZW51LXBvc2l0aW9uLXknLCBgJHttZW51UG9zaXRpb24udG9wfXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbWVudS1tYXgtaGVpZ2h0JywgbWVudVBvc2l0aW9uLm1heEhlaWdodCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgLy8gTGlua3MgYW5kIGJ1dHRvbnMgYXJlIHRoZSBtb3N0IGV4cGVjdGVkIGNvbnRlbnRzIHdoaWNoIGhhdmUgYSBuZWdhdGl2ZSBwcm9wZXJ0eVxuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOnN0YXRlKHNiYi1saW5rKSwgOnN0YXRlKHNiYi1idXR0b24pJyk/LmZvckVhY2goKGVsOiBFbGVtZW50KSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKGVsKTtcbiAgICAgIChlbCBhcyBFbGVtZW50ICYgU2JiTmVnYXRpdmVNaXhpblR5cGUpLm5lZ2F0aXZlID0gIXRoaXMuX2RhcmtNb2RlQ29udHJvbGxlci5tYXRjaGVzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWFNYXRjaGVyLm1hdGNoZXModGhpcy5fbW9iaWxlQnJlYWtwb2ludCkgPz8gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1tZW51X19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbk1lbnVBbmltYXRpb25FbmR9XG4gICAgICAgICAgQG1vdXNlb3Zlcj0keyhlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLl9oYW5kbGVNb3VzZU92ZXIoZSl9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbWVudVwiXG4gICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX21lbnUgPSBlbCBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5faW50ZXJhY3RpdmVFbGVtZW50Q2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgQHNjcm9sbD0keyhlOiBFdmVudCkgPT4gZm9yd2FyZEV2ZW50KGUsIGRvY3VtZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLW1lbnVfX2NvbnRlbnQgc2JiLXNjcm9sbGJhci1uZWdhdGl2ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPHNiYi1kaXZpZGVyPjwvc2JiLWRpdmlkZXI+XG4gICAgICAgICAgICA8c2JiLW1lbnUtYnV0dG9uXG4gICAgICAgICAgICAgIGlkPVwic2JiLW1lbnVfX2JhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5jbG9zZSgpfVxuICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLWxlZnQtc21hbGxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAke2kxOG5Hb0JhY2tbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICA8L3NiYi1tZW51LWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbWVudSc6IFNiYk1lbnVFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FDOENB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
@@ -1,7 +1,7 @@
1
1
  import { t as SbbMenuActionCommonElementMixin } from "./menu-action-common-zev1oItt.js";
2
2
  import { SbbMenuButtonElement } from "./menu/menu-button/menu-button.component.js";
3
3
  import { SbbMenuLinkElement } from "./menu/menu-link/menu-link.component.js";
4
- import { t as SbbMenuElement } from "./menu.component-BpKGNICN.js";
4
+ import { t as SbbMenuElement } from "./menu.component-CDBUaD8s.js";
5
5
  import "./menu.pure.js";
6
6
  //#region src/elements/menu.ts
7
7
  /** @entrypoint */
@@ -1,5 +1,5 @@
1
1
  import { t as SbbMenuActionCommonElementMixin } from "./menu-action-common-zev1oItt.js";
2
2
  import { SbbMenuButtonElement } from "./menu/menu-button/menu-button.component.js";
3
3
  import { SbbMenuLinkElement } from "./menu/menu-link/menu-link.component.js";
4
- import { t as SbbMenuElement } from "./menu.component-BpKGNICN.js";
4
+ import { t as SbbMenuElement } from "./menu.component-CDBUaD8s.js";
5
5
  export { SbbMenuActionCommonElementMixin, SbbMenuButtonElement, SbbMenuElement, SbbMenuLinkElement };
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/navigation/navigation/navigation.component.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAKb,OAAO,EAQL,KAAK,cAAc,EAKnB,uBAAuB,EAIxB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uDAAuD,CAAC;;AAMzG;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,yBAAgD;IACxF,gBAAgC,WAAW,EAAE,MAAM,CAAoB;IACvE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAAiC;IAC7F,gBAAgC,IAAI,gBAAgB;IACpD,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF;;;;OAIG;IACH,SAEgB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnD,wEAAwE;IACxE,SAEgB,uBAAuB,EAAE,MAAM,CAAM;IAErD,iDAAiD;IACxC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA4C;IAE9F,qDAAqD;IACrD,IAAW,uBAAuB,IAAI,2BAA2B,GAAG,IAAI,CAEvE;IAED,wCAAwC;IACxC,IAAW,WAAW,IAAI,WAAW,GAAG,IAAI,CAE3C;IAED,8CAA8C;IAC9C,IAAW,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAEjD;IAED,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,2BAA2B,CAA2C;IAC9E,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,+BAA+B,CAAkB;IACzD,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,yBAAyB,CAG9B;;IA2BH,4BAA4B;IACrB,IAAI,IAAI,IAAI;IAwBnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAO3B,6BAA6B;IACtB,KAAK,IAAI,IAAI;IAkBpB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,oBAAoB,CAS1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAEF,OAAO,CAAC,mBAAmB;IAkBX,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAQY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAK3D,MAAM,IAAI,cAAc;CAiC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
1
+ {"version":3,"file":"navigation.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/navigation/navigation/navigation.component.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAKb,OAAO,EAQL,KAAK,cAAc,EAKnB,uBAAuB,EAKxB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uDAAuD,CAAC;;AAMzG;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,yBAAgD;IACxF,gBAAgC,WAAW,EAAE,MAAM,CAAoB;IACvE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAAiC;IAC7F,gBAAgC,IAAI,gBAAgB;IACpD,OAAuB,MAAM,EAAE,cAAc,CAI3C;IAEF;;;;OAIG;IACH,SAEgB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnD,wEAAwE;IACxE,SAEgB,uBAAuB,EAAE,MAAM,CAAM;IAErD,iDAAiD;IACxC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA4C;IAE9F,qDAAqD;IACrD,IAAW,uBAAuB,IAAI,2BAA2B,GAAG,IAAI,CAEvE;IAED,wCAAwC;IACxC,IAAW,WAAW,IAAI,WAAW,GAAG,IAAI,CAE3C;IAED,8CAA8C;IAC9C,IAAW,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAEjD;IAED,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,2BAA2B,CAA2C;IAC9E,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,+BAA+B,CAAkB;IACzD,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,yBAAyB,CAG9B;;IA2BH,4BAA4B;IACrB,IAAI,IAAI,IAAI;IAwBnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAO3B,6BAA6B;IACtB,KAAK,IAAI,IAAI;IAkBpB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,oBAAoB,CAS1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAEF,OAAO,CAAC,mBAAmB;IAkBX,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAQY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAK3D,MAAM,IAAI,cAAc;CAiC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbNavigationElement } from "../../navigation.component-CpoBEP55.js";
1
+ import { t as SbbNavigationElement } from "../../navigation.component-Cco4llBt.js";
2
2
  export { SbbNavigationElement };
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-section.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/navigation/navigation-section/navigation-section.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EASL,KAAK,cAAc,EAMnB,uBAAuB,EACvB,KAAK,oBAAoB,EAI1B,MAAM,eAAe,CAAC;;AAOvB;;;;GAIG;AACH,qBAAa,2BAA4B,SAAQ,gCAAgD;IAC/F,gBAAgC,WAAW,EAAE,MAAM,CAA4B;IAC/E,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAAiC;IAC7F,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF;;OAEG;IACH,SAEgB,YAAY,EAAE,MAAM,CAAM;IAE1C;;;;OAIG;IACH,SAEgB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnD;;OAEG;IACH,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD;;OAEG;IACH,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD,kCAAkC;IAClC,cAAuB,KAAK,CAAC,KAAK,EAAE,oBAAoB,EAGvD;IACD,cAAuB,KAAK,IAAI,oBAAoB,CAEnD;IAED,OAAO,CAAC,qBAAqB,CAAC,CAAqC;IACnE,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,uBAAuB,CAM5B;;IAgCH;;OAEG;IACI,IAAI,IAAI,IAAI;IA0BnB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,+BAA+B;IAIvC;;OAEG;IACI,KAAK,IAAI,IAAI;IAsBpB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,6BAA6B,CASnC;IAEF,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;IAOV,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAQY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAK3D,MAAM,IAAI,cAAc;CAkC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,2BAA2B,CAAC;KACvD;CACF"}
1
+ {"version":3,"file":"navigation-section.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/navigation/navigation-section/navigation-section.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EASL,KAAK,cAAc,EAMnB,uBAAuB,EACvB,KAAK,oBAAoB,EAK1B,MAAM,eAAe,CAAC;;AAOvB;;;;GAIG;AACH,qBAAa,2BAA4B,SAAQ,gCAAgD;IAC/F,gBAAgC,WAAW,EAAE,MAAM,CAA4B;IAC/E,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAAiC;IAC7F,OAAuB,MAAM,EAAE,cAAc,CAI3C;IAEF;;OAEG;IACH,SAEgB,YAAY,EAAE,MAAM,CAAM;IAE1C;;;;OAIG;IACH,SAEgB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnD;;OAEG;IACH,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD;;OAEG;IACH,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD,kCAAkC;IAClC,cAAuB,KAAK,CAAC,KAAK,EAAE,oBAAoB,EAGvD;IACD,cAAuB,KAAK,IAAI,oBAAoB,CAEnD;IAED,OAAO,CAAC,qBAAqB,CAAC,CAAqC;IACnE,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,uBAAuB,CAM5B;;IAgCH;;OAEG;IACI,IAAI,IAAI,IAAI;IA0BnB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,+BAA+B;IAIvC;;OAEG;IACI,KAAK,IAAI,IAAI;IAsBpB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,6BAA6B,CASnC;IAEF,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;IAOV,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAQY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAK3D,MAAM,IAAI,cAAc;CAkC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,2BAA2B,CAAC;KACvD;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbNavigationSectionElement } from "../../navigation-section.component-DumXFFfg.js";
1
+ import { t as SbbNavigationSectionElement } from "../../navigation-section.component-D3_XVwyt.js";
2
2
  export { SbbNavigationSectionElement };