@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776724490 → 5.0.0-next-dev.1776756036
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.
- package/core/overlay/overlay-trigger-attributes.js +3 -3
- package/core.js +2 -2
- package/custom-elements.json +13 -13
- package/datepicker/datepicker/datepicker.component.js +1 -1
- package/{datepicker.component-BBmEvmW3.js → datepicker.component-CNQGkdr-.js} +11 -11
- package/datepicker.js +1 -1
- package/datepicker.pure.js +1 -1
- package/development/core/overlay/overlay-trigger-attributes.d.ts +4 -4
- package/development/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
- package/development/core/overlay/overlay-trigger-attributes.js +12 -12
- package/development/core.js +2 -2
- package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
- package/development/datepicker/datepicker/datepicker.component.js +1 -1
- package/development/datepicker.component-Chnvwnp7.js +212 -0
- package/development/datepicker.js +1 -1
- package/development/datepicker.pure.js +1 -1
- package/development/dialog/dialog/dialog.component.d.ts +0 -1
- package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
- package/development/dialog/dialog/dialog.component.js +1 -1
- package/development/{dialog.component-BYVTZAUU.js → dialog.component-B4cZfRCl.js} +1 -6
- package/development/dialog.js +1 -1
- package/development/dialog.pure.js +1 -1
- package/development/header/header/header.component.d.ts.map +1 -1
- package/development/header/header/header.component.js +1 -1
- package/development/{header.component-Hfgz9sSb.js → header.component-B2T2pmHs.js} +2 -3
- package/development/header.js +1 -1
- package/development/header.pure.js +1 -1
- package/development/menu/common/menu-action-common.js +1 -1
- package/development/menu/menu/menu.component.d.ts.map +1 -1
- package/development/menu/menu/menu.component.js +1 -1
- package/development/menu-action-common-CEnwq60Z.js +32 -0
- package/development/menu.component-BM7hhOb4.js +365 -0
- package/development/menu.js +2 -2
- package/development/menu.pure.js +2 -2
- package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
- package/development/navigation/navigation/navigation.component.js +1 -1
- package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
- package/development/navigation/navigation-section/navigation-section.component.js +1 -1
- package/development/{navigation-section.component-C_9myQKr.js → navigation-section.component-6tqZADWM.js} +6 -8
- package/development/{navigation.component-C8MhqBLY.js → navigation.component-DUy2QGHI.js} +6 -8
- package/development/navigation.js +2 -2
- package/development/navigation.pure.js +2 -2
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay-base-element.js +6 -6
- package/development/overlay/overlay.component.d.ts +0 -1
- package/development/overlay/overlay.component.d.ts.map +1 -1
- package/development/overlay/overlay.component.js +1 -1
- package/development/{overlay.component-BuCkqG6Q.js → overlay.component-CA0fWX47.js} +1 -6
- package/development/overlay.js +1 -1
- package/development/overlay.pure.js +1 -1
- package/development/popover/popover.component.d.ts.map +1 -1
- package/development/popover/popover.component.js +1 -1
- package/development/popover.component-B1gMzBuv.js +527 -0
- package/development/popover.js +1 -1
- package/development/popover.pure.js +1 -1
- package/development/{step-label.component-CxqPgbzK.js → step-label.component-B7M9Yqyz.js} +1 -3
- package/development/{step.component-B2qbHl0l.js → step.component-CVWxYkrv.js} +1 -3
- package/development/stepper/step/step.component.d.ts.map +1 -1
- package/development/stepper/step/step.component.js +1 -1
- package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
- package/development/stepper/step-label/step-label.component.js +1 -1
- package/development/stepper.js +2 -2
- package/development/stepper.pure.js +2 -2
- package/development/{tab.component-DteuwiHv.js → tab.component-CvzGdR9_.js} +1 -3
- package/development/tabs/tab/tab.component.d.ts.map +1 -1
- package/development/tabs/tab/tab.component.js +1 -1
- package/development/tabs.js +1 -1
- package/development/tabs.pure.js +1 -1
- package/development/tooltip/tooltip.component.d.ts.map +1 -1
- package/development/tooltip/tooltip.component.js +1 -1
- package/development/tooltip.component-lvElko6C.js +369 -0
- package/development/tooltip.js +1 -1
- package/development/tooltip.pure.js +1 -1
- package/dialog/dialog/dialog.component.js +1 -1
- package/{dialog.component-ca14M0hZ.js → dialog.component-DTbAHlVd.js} +7 -10
- package/dialog.js +1 -1
- package/dialog.pure.js +1 -1
- package/header/header/header.component.js +1 -1
- package/{header.component-BxizSy1O.js → header.component-D-WVEMFn.js} +2 -2
- package/header.js +1 -1
- package/header.pure.js +1 -1
- package/menu/common/menu-action-common.js +1 -1
- package/menu/menu/menu.component.js +1 -1
- package/{menu-action-common-DY4RrfCy.js → menu-action-common-krzD_Ca2.js} +1 -1
- package/{menu.component-XvtyRok7.js → menu.component-i-X_ag2Y.js} +14 -14
- package/menu.js +2 -2
- package/menu.pure.js +2 -2
- package/navigation/navigation/navigation.component.js +1 -1
- package/navigation/navigation-section/navigation-section.component.js +1 -1
- package/{navigation-section.component-CLcdmPV3.js → navigation-section.component-Db2MWBDn.js} +17 -17
- package/{navigation.component-Cnyb5_4R.js → navigation.component-Bym1kjzt.js} +16 -16
- package/navigation.js +2 -2
- package/navigation.pure.js +2 -2
- package/overlay/overlay-base-element.js +4 -4
- package/overlay/overlay.component.js +1 -1
- package/{overlay.component-OzDUV8t1.js → overlay.component-BydJOM2r.js} +10 -13
- package/overlay.js +1 -1
- package/overlay.pure.js +1 -1
- package/package.json +2 -2
- package/popover/popover.component.js +1 -1
- package/{popover.component-BfSXNxKK.js → popover.component-Dd4rKGml.js} +12 -12
- package/popover.js +1 -1
- package/popover.pure.js +1 -1
- package/{step-label.component-qdfunibJ.js → step-label.component-BXg13qOD.js} +3 -3
- package/{step.component-aBAfTJyO.js → step.component-sQbJslHx.js} +3 -3
- package/stepper/step/step.component.js +1 -1
- package/stepper/step-label/step-label.component.js +1 -1
- package/stepper.js +2 -2
- package/stepper.pure.js +2 -2
- package/{tab.component-DGzqld4u.js → tab.component-D39b0S04.js} +3 -3
- package/tabs/tab/tab.component.js +1 -1
- package/tabs.js +1 -1
- package/tabs.pure.js +1 -1
- package/tooltip/tooltip.component.js +1 -1
- package/{tooltip.component-C5y6zCtF.js → tooltip.component-Do4V1jGd.js} +12 -12
- package/tooltip.js +1 -1
- package/tooltip.pure.js +1 -1
- package/development/datepicker.component-AKlc7SAO.js +0 -214
- package/development/menu-action-common-Crx-dDgH.js +0 -32
- package/development/menu.component-DOv7PKIi.js +0 -367
- package/development/popover.component-B15jFLe9.js +0 -529
- package/development/tooltip.component-BtWTK2R0.js +0 -371
|
@@ -0,0 +1,365 @@
|
|
|
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, 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 --sbb-scrollbar-thumb-width: 0.125rem;\n --sbb-scrollbar-thumb-width-hover: 0.25rem;\n --sbb-scrollbar-width-firefox: thin;\n --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);\n --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);\n --sbb-scrollbar-track-color: transparent;\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])) {\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 --sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);\n}\n.sbb-menu__content::-webkit-scrollbar {\n width: var(--sbb-scrollbar-width);\n height: var(--sbb-scrollbar-width);\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n.sbb-menu__content::-webkit-scrollbar-corner {\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n.sbb-menu__content::-webkit-scrollbar-thumb {\n background-color: var(--sbb-scrollbar-color, currentcolor);\n border: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;\n border-radius: var(--sbb-border-radius-4x);\n background-clip: padding-box;\n}\n.sbb-menu__content::-webkit-scrollbar-thumb:hover {\n background-color: var(--sbb-scrollbar-color-hover, currentcolor);\n border-width: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)));\n}\n.sbb-menu__content::-webkit-scrollbar-button, .sbb-menu__content::-webkit-scrollbar-corner {\n display: none;\n}\n@supports not selector(::-webkit-scrollbar) {\n .sbb-menu__content {\n scrollbar-width: var(--sbb-scrollbar-width-firefox);\n scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);\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 = [boxSizingStyles, unsafeCSS(menu_default)];
|
|
72
|
+
}
|
|
73
|
+
static {
|
|
74
|
+
this.role = "menu";
|
|
75
|
+
}
|
|
76
|
+
#trigger_accessor_storage;
|
|
77
|
+
/**
|
|
78
|
+
* The element that will trigger the menu overlay.
|
|
79
|
+
*
|
|
80
|
+
* For attribute usage, provide an id reference.
|
|
81
|
+
*/
|
|
82
|
+
get trigger() {
|
|
83
|
+
return this.#trigger_accessor_storage;
|
|
84
|
+
}
|
|
85
|
+
set trigger(value) {
|
|
86
|
+
this.#trigger_accessor_storage = value;
|
|
87
|
+
}
|
|
88
|
+
constructor() {
|
|
89
|
+
super();
|
|
90
|
+
this.#trigger_accessor_storage = __runInitializers(this, _trigger_initializers, null);
|
|
91
|
+
this._menu = __runInitializers(this, _trigger_extraInitializers);
|
|
92
|
+
this._triggerElement = null;
|
|
93
|
+
this._isPointerDownEventOnMenu = false;
|
|
94
|
+
this._escapableOverlayController = new SbbEscapableOverlayController(this);
|
|
95
|
+
this._focusTrapController = new SbbFocusTrapController(this);
|
|
96
|
+
this._scrollHandler = new SbbScrollHandler();
|
|
97
|
+
this._inertController = new SbbInertController(this);
|
|
98
|
+
this._mobileBreakpoint = SbbMediaQueryBreakpointSmallAndBelow;
|
|
99
|
+
this._mediaMatcher = new SbbMediaMatcherController(this, { [this._mobileBreakpoint]: (matches) => {
|
|
100
|
+
if (matches && (this.state === "opening" || this.state === "opened")) this._scrollHandler.disableScroll();
|
|
101
|
+
else this._scrollHandler.enableScroll();
|
|
102
|
+
} });
|
|
103
|
+
this._darkModeController = new SbbDarkModeController(this, () => this._syncNegative());
|
|
104
|
+
this._language = new SbbLanguageController(this);
|
|
105
|
+
this._nestedMenu = null;
|
|
106
|
+
this._pointerDownListener = (event) => {
|
|
107
|
+
const menu = event.target.closest("sbb-menu");
|
|
108
|
+
this._isPointerDownEventOnMenu = isEventOnElement(this._menu, event) || this._nestedMenus().some((el) => menu === el);
|
|
109
|
+
};
|
|
110
|
+
this._closeOnBackdropClick = (event) => {
|
|
111
|
+
const target = event.target;
|
|
112
|
+
if (!this._isPointerDownEventOnMenu && !isEventOnElement(this._menu, event) && !this._nestedMenus().some((el) => el === target)) this.closeAll();
|
|
113
|
+
};
|
|
114
|
+
this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
|
|
115
|
+
}
|
|
116
|
+
firstUpdated(changedProperties) {
|
|
117
|
+
super.firstUpdated(changedProperties);
|
|
118
|
+
this._configureTrigger();
|
|
119
|
+
}
|
|
120
|
+
escapeStrategy() {
|
|
121
|
+
this.closeAll();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Opens the menu on trigger click.
|
|
125
|
+
*/
|
|
126
|
+
open() {
|
|
127
|
+
if (this.state === "closing" || this.state === "opened" || !this._menu || !this.dispatchBeforeOpenEvent()) return;
|
|
128
|
+
if (this._isNested()) {
|
|
129
|
+
const parentMenu = this._parentMenu();
|
|
130
|
+
parentMenu.internals.states.add("nested-child");
|
|
131
|
+
if (parentMenu._nestedMenu !== this) parentMenu._nestedMenu?.close();
|
|
132
|
+
parentMenu._nestedMenu = this;
|
|
133
|
+
}
|
|
134
|
+
this.showPopover?.();
|
|
135
|
+
this.state = "opening";
|
|
136
|
+
this._setMenuPosition();
|
|
137
|
+
if (this._triggerElement) this._triggerElement.ariaExpanded = "true";
|
|
138
|
+
if (this._isMobile()) this._scrollHandler.disableScroll();
|
|
139
|
+
if (this._isZeroAnimationDuration()) this._handleOpening();
|
|
140
|
+
}
|
|
141
|
+
/** Closes the menu and all its nested menus. */
|
|
142
|
+
close() {
|
|
143
|
+
this._close();
|
|
144
|
+
}
|
|
145
|
+
/** Closes the menu and all related menus (nested and parent menus). */
|
|
146
|
+
closeAll() {
|
|
147
|
+
this._mainMenu()._close(true);
|
|
148
|
+
}
|
|
149
|
+
/** @param [closeAll='false'] - If true, it ensures animations are correct by toggling some states when closing all related menus at once. */
|
|
150
|
+
_close(closeAll = false) {
|
|
151
|
+
if (this.state === "opening" && !this._isNested() || !this.dispatchBeforeCloseEvent()) return;
|
|
152
|
+
this._nestedMenu?._close(closeAll);
|
|
153
|
+
if (this._isNested()) {
|
|
154
|
+
const parentMenu = this._parentMenu();
|
|
155
|
+
if (closeAll) {
|
|
156
|
+
this.internals.states.add("close-all");
|
|
157
|
+
parentMenu.internals.states.add("skip-animation");
|
|
158
|
+
} else {
|
|
159
|
+
this.internals.states.delete("close-all");
|
|
160
|
+
parentMenu.internals.states.delete("skip-animation");
|
|
161
|
+
}
|
|
162
|
+
parentMenu.internals.states.delete("nested-child");
|
|
163
|
+
parentMenu._nestedMenu = null;
|
|
164
|
+
}
|
|
165
|
+
this.state = "closing";
|
|
166
|
+
if (this._triggerElement) this._triggerElement.ariaExpanded = "false";
|
|
167
|
+
if (this._isZeroAnimationDuration()) this._handleClosing();
|
|
168
|
+
}
|
|
169
|
+
_isZeroAnimationDuration() {
|
|
170
|
+
return isZeroAnimationDuration(this, "--sbb-menu-animation-duration");
|
|
171
|
+
}
|
|
172
|
+
_handleOpening() {
|
|
173
|
+
this.state = "opened";
|
|
174
|
+
if (!this._isNested()) this._inertController.activate();
|
|
175
|
+
else this._updateNestedInert();
|
|
176
|
+
this._escapableOverlayController.connect();
|
|
177
|
+
this._focusTrapController.focusInitialElement();
|
|
178
|
+
this._focusTrapController.enabled = true;
|
|
179
|
+
this._attachWindowEvents();
|
|
180
|
+
this.dispatchOpenEvent();
|
|
181
|
+
}
|
|
182
|
+
_handleClosing() {
|
|
183
|
+
this.state = "closed";
|
|
184
|
+
this.internals.states.delete("skip-animation");
|
|
185
|
+
this.internals.states.delete("close-all");
|
|
186
|
+
this.hidePopover?.();
|
|
187
|
+
this._menu?.firstElementChild?.scrollTo(0, 0);
|
|
188
|
+
if (!this._isNested()) this._inertController.deactivate();
|
|
189
|
+
else this._updateNestedInert();
|
|
190
|
+
this._triggerElement?.focus({ preventScroll: ["sbb-header-button", "sbb-header-link"].includes(this._triggerElement.localName) });
|
|
191
|
+
this._escapableOverlayController.disconnect();
|
|
192
|
+
this.dispatchCloseEvent();
|
|
193
|
+
this._windowEventsController?.abort();
|
|
194
|
+
this._focusTrapController.enabled = false;
|
|
195
|
+
this._scrollHandler.enableScroll();
|
|
196
|
+
}
|
|
197
|
+
_handleKeyDown(evt) {
|
|
198
|
+
if (!isArrowKeyOrPageKeysPressed(evt)) return;
|
|
199
|
+
evt.preventDefault();
|
|
200
|
+
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));
|
|
201
|
+
const current = enabledActions.findIndex((e) => e === evt.target);
|
|
202
|
+
let nextIndex;
|
|
203
|
+
switch (evt.key) {
|
|
204
|
+
case "ArrowUp":
|
|
205
|
+
case "ArrowDown":
|
|
206
|
+
nextIndex = getNextElementIndex(evt, current, enabledActions.length);
|
|
207
|
+
break;
|
|
208
|
+
case "ArrowLeft":
|
|
209
|
+
if (this._isNested()) this.close();
|
|
210
|
+
break;
|
|
211
|
+
case "ArrowRight":
|
|
212
|
+
if (evt.target.matches(":is(:state(sbb-menu-trigger),[state--sbb-menu-trigger])")) evt.target.click();
|
|
213
|
+
break;
|
|
214
|
+
case "PageUp":
|
|
215
|
+
case "Home":
|
|
216
|
+
nextIndex = 0;
|
|
217
|
+
break;
|
|
218
|
+
case "End":
|
|
219
|
+
case "PageDown":
|
|
220
|
+
nextIndex = enabledActions.length - 1;
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
if (nextIndex !== void 0) enabledActions[nextIndex].focus();
|
|
224
|
+
}
|
|
225
|
+
createRenderRoot() {
|
|
226
|
+
const renderRoot = super.createRenderRoot();
|
|
227
|
+
this.shadowRoot?.addEventListener("slotchange", () => this._syncNegative(), { capture: true });
|
|
228
|
+
return renderRoot;
|
|
229
|
+
}
|
|
230
|
+
connectedCallback() {
|
|
231
|
+
this.popover = "manual";
|
|
232
|
+
super.connectedCallback();
|
|
233
|
+
if (this.hasUpdated) this._configureTrigger();
|
|
234
|
+
}
|
|
235
|
+
disconnectedCallback() {
|
|
236
|
+
super.disconnectedCallback();
|
|
237
|
+
this._triggerElement = null;
|
|
238
|
+
this._triggerAbortController?.abort();
|
|
239
|
+
this._windowEventsController?.abort();
|
|
240
|
+
this._scrollHandler.enableScroll();
|
|
241
|
+
}
|
|
242
|
+
requestUpdate(name, oldValue, options) {
|
|
243
|
+
super.requestUpdate(name, oldValue, options);
|
|
244
|
+
if (!isServer && (!name || name === "trigger") && this.hasUpdated) this._configureTrigger();
|
|
245
|
+
}
|
|
246
|
+
_configureTrigger() {
|
|
247
|
+
if (this.trigger === this._triggerElement) return;
|
|
248
|
+
this._triggerAbortController?.abort();
|
|
249
|
+
removeAriaOverlayTriggerProperties(this._triggerElement);
|
|
250
|
+
this._triggerElement = this.trigger;
|
|
251
|
+
if (!this._triggerElement) return;
|
|
252
|
+
setAriaOverlayTriggerProperties(this, this._triggerElement, "menu", this.state);
|
|
253
|
+
this._triggerAbortController = new AbortController();
|
|
254
|
+
this._triggerElement.addEventListener("click", () => this.open(), { signal: this._triggerAbortController.signal });
|
|
255
|
+
this.toggleState("nested", ["sbb-menu-button", "sbb-menu-link"].includes(this._triggerElement.localName));
|
|
256
|
+
ɵstateController(this._triggerElement).add("sbb-menu-trigger");
|
|
257
|
+
}
|
|
258
|
+
_attachWindowEvents() {
|
|
259
|
+
this._windowEventsController = new AbortController();
|
|
260
|
+
document.addEventListener("scroll", () => this._setMenuPosition(), {
|
|
261
|
+
passive: true,
|
|
262
|
+
signal: this._windowEventsController.signal,
|
|
263
|
+
capture: true
|
|
264
|
+
});
|
|
265
|
+
window.addEventListener("resize", () => this._setMenuPosition(), {
|
|
266
|
+
passive: true,
|
|
267
|
+
signal: this._windowEventsController.signal
|
|
268
|
+
});
|
|
269
|
+
if (!this._isNested()) {
|
|
270
|
+
window.addEventListener("pointerdown", this._pointerDownListener, { signal: this._windowEventsController.signal });
|
|
271
|
+
window.addEventListener("pointerup", this._closeOnBackdropClick, { signal: this._windowEventsController.signal });
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
_interactiveElementClick(event) {
|
|
275
|
+
const target = event.target;
|
|
276
|
+
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();
|
|
277
|
+
}
|
|
278
|
+
/** Converts the linked list into an array of SbbMenuElement. */
|
|
279
|
+
_nestedMenus() {
|
|
280
|
+
const menus = [];
|
|
281
|
+
let current = this._nestedMenu;
|
|
282
|
+
while (current) {
|
|
283
|
+
menus.push(current);
|
|
284
|
+
current = current._nestedMenu;
|
|
285
|
+
}
|
|
286
|
+
return menus;
|
|
287
|
+
}
|
|
288
|
+
_parentMenu() {
|
|
289
|
+
return this._triggerElement?.closest("sbb-menu") ?? null;
|
|
290
|
+
}
|
|
291
|
+
/** The outermost menu. */
|
|
292
|
+
_mainMenu() {
|
|
293
|
+
return this._isNested() ? this._parentMenu()?._mainMenu() ?? this : this;
|
|
294
|
+
}
|
|
295
|
+
_isNested() {
|
|
296
|
+
return !!this._parentMenu();
|
|
297
|
+
}
|
|
298
|
+
_updateNestedInert() {
|
|
299
|
+
this._inertController.restoreAllExempted();
|
|
300
|
+
this._mainMenu()._nestedMenus().forEach((menu) => this._inertController.exempt(menu));
|
|
301
|
+
}
|
|
302
|
+
_handleMouseOver(event) {
|
|
303
|
+
const element = event.target;
|
|
304
|
+
const isMobile = this._isMobile();
|
|
305
|
+
if (!isMobile && this._nestedMenu && !element.classList.contains("sbb-menu__content") && !(element.ariaExpanded === "true")) this._nestedMenu.close();
|
|
306
|
+
if (element.matches(":is(:state(sbb-menu-trigger),[state--sbb-menu-trigger])") && !isMobile) element.click();
|
|
307
|
+
}
|
|
308
|
+
_onMenuAnimationEnd(event) {
|
|
309
|
+
if ((event.animationName === "open" || event.animationName === "open-sideways") && this.state === "opening") this._handleOpening();
|
|
310
|
+
else if ((event.animationName === "close" || event.animationName === "close-sideways") && this.state === "closing") this._handleClosing();
|
|
311
|
+
}
|
|
312
|
+
_setMenuPosition() {
|
|
313
|
+
if (this._isMobile() || !this._menu || !this._triggerElement || this.state === "closing") return;
|
|
314
|
+
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"), {
|
|
315
|
+
horizontalOffset: MENU_OFFSET,
|
|
316
|
+
verticalOffset: NESTED_MENU_OFFSET,
|
|
317
|
+
contentSelector: ".sbb-menu__content"
|
|
318
|
+
});
|
|
319
|
+
this.style.setProperty("--sbb-menu-position-x", `${menuPosition.left}px`);
|
|
320
|
+
this.style.setProperty("--sbb-menu-position-y", `${menuPosition.top}px`);
|
|
321
|
+
this.style.setProperty("--sbb-menu-max-height", menuPosition.maxHeight);
|
|
322
|
+
}
|
|
323
|
+
_syncNegative() {
|
|
324
|
+
this.querySelectorAll(":is(:state(sbb-link),[state--sbb-link]), :is(:state(sbb-button),[state--sbb-button])")?.forEach((el) => {
|
|
325
|
+
customElements.upgrade(el);
|
|
326
|
+
el.negative = !this._darkModeController.matches();
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
_isMobile() {
|
|
330
|
+
return this._mediaMatcher.matches(this._mobileBreakpoint) ?? true;
|
|
331
|
+
}
|
|
332
|
+
render() {
|
|
333
|
+
return html`
|
|
334
|
+
<div class="sbb-menu__container">
|
|
335
|
+
<div
|
|
336
|
+
@animationend=${this._onMenuAnimationEnd}
|
|
337
|
+
@mouseover=${(e) => this._handleMouseOver(e)}
|
|
338
|
+
class="sbb-menu"
|
|
339
|
+
${ref((el) => this._menu = el)}
|
|
340
|
+
>
|
|
341
|
+
<div
|
|
342
|
+
@click=${(event) => this._interactiveElementClick(event)}
|
|
343
|
+
@scroll=${(e) => forwardEvent(e, document)}
|
|
344
|
+
class="sbb-menu__content"
|
|
345
|
+
>
|
|
346
|
+
<slot></slot>
|
|
347
|
+
<sbb-divider></sbb-divider>
|
|
348
|
+
<sbb-menu-button
|
|
349
|
+
id="sbb-menu__back-button"
|
|
350
|
+
@click=${() => this.close()}
|
|
351
|
+
icon-name="chevron-small-left-small"
|
|
352
|
+
>
|
|
353
|
+
${i18nGoBack[this._language.current]}
|
|
354
|
+
</sbb-menu-button>
|
|
355
|
+
</div>
|
|
356
|
+
</div>
|
|
357
|
+
</div>
|
|
358
|
+
`;
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
})();
|
|
362
|
+
//#endregion
|
|
363
|
+
export { SbbMenuElement as t };
|
|
364
|
+
|
|
365
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQtQk03aGhPYjQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC8vIFdlIHVzZSB0aGlzIHJ1bGUgdG8gbWFrZSB0aGUgaW5uZXIgY29udGFpbmVyIGVsZW1lbnQgdG8gYXBwZWFyIGFzIGlmIGl0IHdlcmUgYVxuICAvLyBkaXJlY3QgY2hpbGQgb2YgdGhlIGhvc3QncyBwYXJlbnQgZWxlbWVudC4gVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSB0aGUgaG9zdFxuICAvLyBzaG91bGQgYmUgaWdub3JlZCB3aGVuIHVzaW5nIENTUyBncmlkIG9yIHNpbWlsYXIgbGF5b3V0IHRlY2huaXF1ZXMuXG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gIC0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eClcbiAgKTtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG4gIC0tX3NiYi1tZW51LWluc2V0OiAwIGF1dG8gYXV0byAwO1xuXG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXItdmFyaWFibGVzKCRuZWdhdGl2ZTogdHJ1ZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW1lbnUtYmFjay1idXR0b24tZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkpIHtcbiAgLS1zYmItbWVudS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAtLXNiYi1tZW51LWJhY2tkcm9wLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSAyMCUsIHRyYW5zcGFyZW50KTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgLS1zYmItbWVudS1iYWNrZHJvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUobmVzdGVkKSkpIHtcbiAgLS1zYmItbWVudS1iYWNrLWJ1dHRvbi1kaXNwbGF5OiBub25lO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkge1xuICAtLV9zYmItbWVudS1pbnNldDogMDtcbn1cblxuOmhvc3QoOnN0YXRlKGRhcmspKSB7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRlZmF1bHQpO1xuXG4gIC8vIFdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIHNjcm9sbGJhciBpcyB2aXNpYmxlIGluIGRhcmsgbW9kZSB3aXRoIG5vbi1kYXJrIG1vZGUgdmFsdWVzLlxuICAtLXNiYi1zY3JvbGxiYXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zYmItY29sb3ItYmxhY2spIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAtLXNiYi1zY3JvbGxiYXItY29sb3ItaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zYmItY29sb3ItYmxhY2spIDYwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG5AaW5jbHVkZSBzYmIubXEoJHRvOiBsYXJnZSkge1xuICA6aG9zdCg6c3RhdGUoc2tpcC1hbmltYXRpb24pKSB7XG4gICAgLS1zYmItbWVudS1hbmltYXRpb24tZHVyYXRpb246IDBtcztcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShuZXN0ZWQtY2hpbGQpKSB7XG4gICAgLS1zYmItbWVudS10cmFuc2Zvcm0teDogLTEwMCU7XG4gIH1cblxuICA6aG9zdCg6c3RhdGUobmVzdGVkKTppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSB7XG4gICAgLS1zYmItbWVudS1vcGVuLWFuaW1hdGlvbi1uYW1lOiBvcGVuLXNpZGV3YXlzO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpOnN0YXRlKG5lc3RlZCk6bm90KDpzdGF0ZShjbG9zZS1hbGwpKSkge1xuICAgIC0tc2JiLW1lbnUtY2xvc2UtYW5pbWF0aW9uLW5hbWU6IGNsb3NlLXNpZGV3YXlzO1xuICB9XG59XG5cbjo6c2xvdHRlZCg6bm90KHNiYi1tZW51LWJ1dHRvbiwgc2JiLW1lbnUtbGluaywgc2JiLWRpdmlkZXIpKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNXgpO1xufVxuXG5zYmItZGl2aWRlcixcbjo6c2xvdHRlZChzYmItZGl2aWRlcikge1xuICAtLXNiYi1kaXZpZGVyLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci00LWludmVydGVkKTtcblxuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbn1cblxuc2JiLWRpdmlkZXIsXG4jc2JiLW1lbnVfX2JhY2stYnV0dG9uIHtcbiAgZGlzcGxheTogdmFyKC0tc2JiLW1lbnUtYmFjay1idXR0b24tZGlzcGxheSwgYmxvY2spO1xufVxuXG4uc2JiLW1lbnVfX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGluc2V0OiB2YXIoLS1fc2JiLW1lbnUtaW5zZXQpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1tZW51LWNvbnRhaW5lci1oZWlnaHQpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItbWVudS16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcblxuICAvLyBNZW51IGJhY2tkcm9wIChvbmx5IHZpc2libGUgb24gbW9iaWxlKVxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHZpc2liaWxpdHk6IHZhcigtLXNiYi1tZW51LXZpc2liaWxpdHksIGhpZGRlbik7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IHZhcigtLV9zYmItbWVudS1pbnNldCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItbWVudS1jb250YWluZXItaGVpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbWVudS1iYWNrZHJvcC1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItbWVudS1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbWVudS1hbmltYXRpb24tZWFzaW5nKTtcbiAgICAgIHByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCB2aXNpYmlsaXR5O1xuICAgIH1cblxuICAgIC8vIEhpZGUgdGhlIGJhY2tkcm9wIHdoZW4gaW4gbmVzdGVkIHN0YXRlXG4gICAgOmhvc3QoOnN0YXRlKG5lc3RlZCkpICYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG1heC13aWR0aDogdmFyKC0tc2JiLW1lbnUtbWF4LXdpZHRoKTtcbiAgbWluLXdpZHRoOiB2YXIoLS1zYmItbWVudS1taW4td2lkdGgpO1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiB1bnNldDtcbiAgaW5zZXQtYmxvY2stZW5kOiAwO1xuICBpbnNldC1pbmxpbmUtZW5kOiB1bnNldDtcbiAgY29sb3I6IHZhcigtLXNiYi1tZW51LWNvbG9yKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItbWVudS1ib3JkZXItcmFkaXVzKSB2YXIoLS1zYmItbWVudS1ib3JkZXItcmFkaXVzKSAwIDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1tZW51LWJhY2tncm91bmQtY29sb3IpO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2xhdGU6IHZhcigtLXNiYi1tZW51LXRyYW5zZm9ybS14LCAwKSAwO1xuXG4gIC8vIFVzZWQgd2hlbiBuYXZpZ2F0aW5nIGJhY2sgZnJvbSBuZXN0ZWQgbWVudSBpbiBtb2JpbGUgdmlld1xuICB0cmFuc2l0aW9uOiB0cmFuc2xhdGUgdmFyKC0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uKTtcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkgJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiB2YXIoLS1zYmItbWVudS1vcGVuLWFuaW1hdGlvbi1uYW1lLCBvcGVuKTtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItbWVudS1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbWVudS1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGFuaW1hdGlvbi1uYW1lOiB2YXIoLS1zYmItbWVudS1jbG9zZS1hbmltYXRpb24tbmFtZSwgY2xvc2UpO1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIG91dGxpbmU6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogdW5zZXQ7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogdW5zZXQ7XG4gICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLW1lbnUtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICA6aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkgJiB7XG4gICAgICB0b3A6IHZhcigtLXNiYi1tZW51LXBvc2l0aW9uLXksIDApO1xuICAgICAgbGVmdDogdmFyKC0tc2JiLW1lbnUtcG9zaXRpb24teCwgMCk7XG4gICAgICBtYXgtaGVpZ2h0OiB2YXIoLS1zYmItbWVudS1tYXgtaGVpZ2h0KTtcbiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1tZW51LW1pbi1oZWlnaHQpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW1lbnVfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyLXJ1bGVzO1xuXG4gIG1heC1oZWlnaHQ6IHZhcigtLXNiYi1tZW51LW1heC1oZWlnaHQpO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCk7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBvdXRsaW5lOiBub25lO1xuXG4gIC8vIE1hcmdpbiBib3R0b20gaW4gbW9iaWxlIHZhcmlhbnRcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtOHgpO1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIG1heC1oZWlnaHQ6IGZpdC1jb250ZW50O1xuXG4gICAgOmhvc3QoOm5vdCg6c3RhdGUoc3RhdGUtY2xvc2VkKSkpICYge1xuICAgICAgbWF4LWhlaWdodDogdmFyKC0tc2JiLW1lbnUtbWF4LWhlaWdodCk7XG4gICAgICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItbWVudS1taW4taGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG46OnNsb3R0ZWQoOmlzKDpzdGF0ZShzYmItbGluayksIDpzdGF0ZShzYmItYnV0dG9uKSkpIHtcbiAgLy8gQXMgdGhlIGJhY2tncm91bmQgdHVybnMgd2hpdGUsIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgYnV0dG9ucyBhbmQgbGlua3MgYXJlIGRpc3BsYXllZCBpbiBwb3NpdGl2ZS5cbiAgY29sb3Itc2NoZW1lOiBvbmx5IGxpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1zYmItbWVudS10cmFuc2Zvcm0teSwgMTAwJSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1zYmItbWVudS10cmFuc2Zvcm0teSwgMTAwJSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBvcGVuLXNpZGV3YXlzIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiAxMDAlIDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNsYXRlOiAwIDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZS1zaWRld2F5cyB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogMCAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogMTAwJSAwO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgZm9yd2FyZEV2ZW50LFxuICBnZXRFbGVtZW50UG9zaXRpb24sXG4gIGdldEVsZW1lbnRQb3NpdGlvbkhvcml6b250YWwsXG4gIGdldE5leHRFbGVtZW50SW5kZXgsXG4gIGkxOG5Hb0JhY2ssXG4gIGlkUmVmZXJlbmNlLFxuICBpbnRlcmFjdGl2aXR5Q2hlY2tlcixcbiAgaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgU2JiRGFya01vZGVDb250cm9sbGVyLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9jdXNUcmFwQ29udHJvbGxlcixcbiAgU2JiSW5lcnRDb250cm9sbGVyLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRCZWxvdyxcbiAgdHlwZSBTYmJOZWdhdGl2ZU1peGluVHlwZSxcbiAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQsXG4gIFNiYlNjcm9sbEhhbmRsZXIsXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkRpdmlkZXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vZGl2aWRlci5wdXJlLnRzJztcbmltcG9ydCB7IFNiYk1lbnVCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vbWVudS1idXR0b24vbWVudS1idXR0b24uY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTWVudUxpbmtFbGVtZW50IH0gZnJvbSAnLi4vbWVudS1saW5rL21lbnUtbGluay5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9tZW51LnNjc3M/aW5saW5lJztcblxuY29uc3QgTUVOVV9PRkZTRVQgPSA4O1xuY29uc3QgTkVTVEVEX01FTlVfT0ZGU0VUID0gLTQ7XG5jb25zdCBJTlRFUkFDVElWRV9FTEVNRU5UUyA9IFtcbiAgJ0EnLFxuICAnQlVUVE9OJyxcbiAgJ1NCQi1CVVRUT04nLFxuICAnU0JCLUJVVFRPTi1MSU5LJyxcbiAgJ1NCQi1MSU5LJyxcbiAgJ1NCQi1CTE9DSy1MSU5LJyxcbiAgJ1NCQi1MSU5LLUJVVFRPTicsXG4gICdTQkItQkxPQ0stTElOSy1CVVRUT04nLFxuICAnU0JCLU1FTlUtQlVUVE9OJyxcbiAgJ1NCQi1NRU5VLUxJTksnLFxuXTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGNvbnRleHR1YWwgbWVudSB3aXRoIG9uZSBvciBtb3JlIGFjdGlvbiBlbGVtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItbWVudS1idXR0b25gL2BzYmItbWVudS1saW5rYCBvciBvdGhlciBlbGVtZW50cyB0byB0aGUgbWVudS5cbiAqIEBjc3Nwcm9wIFstLXNiYi1tZW51LXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYk1lbnVFbGVtZW50IGV4dGVuZHMgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW1lbnUnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbXG4gICAgU2JiRGl2aWRlckVsZW1lbnQsXG4gICAgU2JiTWVudUJ1dHRvbkVsZW1lbnQsXG4gIF07XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbWVudSc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBtZW51IG92ZXJsYXkuXG4gICAqXG4gICAqIEZvciBhdHRyaWJ1dGUgdXNhZ2UsIHByb3ZpZGUgYW4gaWQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQGlkUmVmZXJlbmNlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfbWVudSE6IEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfaXNQb2ludGVyRG93bkV2ZW50T25NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pbmVydENvbnRyb2xsZXIgPSBuZXcgU2JiSW5lcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9tb2JpbGVCcmVha3BvaW50ID0gU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93O1xuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gICAgW3RoaXMuX21vYmlsZUJyZWFrcG9pbnRdOiAobWF0Y2hlcykgPT4ge1xuICAgICAgaWYgKG1hdGNoZXMgJiYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJykpIHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuICBwcml2YXRlIF9kYXJrTW9kZUNvbnRyb2xsZXIgPSBuZXcgU2JiRGFya01vZGVDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuX3N5bmNOZWdhdGl2ZSgpKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9uZXN0ZWRNZW51OiBTYmJNZW51RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGVzY2FwZVN0cmF0ZWd5KCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgbWVudSBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnIHx8XG4gICAgICB0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fFxuICAgICAgIXRoaXMuX21lbnUgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgY29uc3QgcGFyZW50TWVudSA9IHRoaXMuX3BhcmVudE1lbnUoKSE7XG4gICAgICBwYXJlbnRNZW51LmludGVybmFscy5zdGF0ZXMuYWRkKCduZXN0ZWQtY2hpbGQnKTtcblxuICAgICAgLy8gSW4gY2FzZSB3ZSBjaGFuZ2UgYmV0d2VlbiBhcnJvdyBrZXkgbmF2aWdhdGlvbiBhbmQgbW91c2UgbmF2aWdhdGlvbiwgaXQgY2FuIGJlIHRoYXQgYW5vdGhlclxuICAgICAgLy8gbmVzdGVkIHBhcmVudCBtZW51IGlzIHN0aWxsIG9wZW4uIFdlIGhhdmUgdG8gY2xvc2UgaXQuXG4gICAgICBpZiAocGFyZW50TWVudS5fbmVzdGVkTWVudSAhPT0gdGhpcykge1xuICAgICAgICBwYXJlbnRNZW51Ll9uZXN0ZWRNZW51Py5jbG9zZSgpO1xuICAgICAgfVxuICAgICAgcGFyZW50TWVudS5fbmVzdGVkTWVudSA9IHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9zZXRNZW51UG9zaXRpb24oKTtcblxuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIEZyb20gemVybyB0byBsYXJnZSwgZGlzYWJsZSBzY3JvbGxcbiAgICBpZiAodGhpcy5faXNNb2JpbGUoKSkge1xuICAgICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBtZW51IGFuZCBhbGwgaXRzIG5lc3RlZCBtZW51cy4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlKCk7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBtZW51IGFuZCBhbGwgcmVsYXRlZCBtZW51cyAobmVzdGVkIGFuZCBwYXJlbnQgbWVudXMpLiAqL1xuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fbWFpbk1lbnUoKS5fY2xvc2UodHJ1ZSk7XG4gIH1cblxuICAvKiogQHBhcmFtIFtjbG9zZUFsbD0nZmFsc2UnXSAtIElmIHRydWUsIGl0IGVuc3VyZXMgYW5pbWF0aW9ucyBhcmUgY29ycmVjdCBieSB0b2dnbGluZyBzb21lIHN0YXRlcyB3aGVuIGNsb3NpbmcgYWxsIHJlbGF0ZWQgbWVudXMgYXQgb25jZS4gKi9cbiAgcHJpdmF0ZSBfY2xvc2UoY2xvc2VBbGwgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICgodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnICYmICF0aGlzLl9pc05lc3RlZCgpKSB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENsb3NlIG5lc3RlZCBtZW51cyBmaXJzdFxuICAgIHRoaXMuX25lc3RlZE1lbnU/Ll9jbG9zZShjbG9zZUFsbCk7XG5cbiAgICBpZiAodGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgY29uc3QgcGFyZW50TWVudSA9IHRoaXMuX3BhcmVudE1lbnUoKSE7XG4gICAgICBpZiAoY2xvc2VBbGwpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnY2xvc2UtYWxsJyk7XG4gICAgICAgIHBhcmVudE1lbnUuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ3NraXAtYW5pbWF0aW9uJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdjbG9zZS1hbGwnKTtcbiAgICAgICAgcGFyZW50TWVudS5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnc2tpcC1hbmltYXRpb24nKTtcbiAgICAgIH1cbiAgICAgIHBhcmVudE1lbnUuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ25lc3RlZC1jaGlsZCcpO1xuICAgICAgcGFyZW50TWVudS5fbmVzdGVkTWVudSA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICBpZiAodGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFFeHBhbmRlZCA9ICdmYWxzZSc7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcblxuICAgIGlmICghdGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgdGhpcy5faW5lcnRDb250cm9sbGVyLmFjdGl2YXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3VwZGF0ZU5lc3RlZEluZXJ0KCk7XG4gICAgfVxuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3NraXAtYW5pbWF0aW9uJyk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnY2xvc2UtYWxsJyk7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG5cbiAgICB0aGlzLl9tZW51Py5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgaWYgKCF0aGlzLl9pc05lc3RlZCgpKSB7XG4gICAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIuZGVhY3RpdmF0ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVOZXN0ZWRJbmVydCgpO1xuICAgIH1cbiAgICAvLyBNYW51YWxseSBmb2N1cyBsYXN0IGZvY3VzZWQgZWxlbWVudFxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cyh7XG4gICAgICAvLyBXaGVuIGluc2lkZSB0aGUgc2JiLWhlYWRlciwgd2UgcHJldmVudCB0aGUgc2Nyb2xsIHRvIGF2b2lkIHRoZSBzbmFwcGluZyB0byB0aGUgdG9wIG9mIHRoZSBwYWdlXG4gICAgICBwcmV2ZW50U2Nyb2xsOiBbJ3NiYi1oZWFkZXItYnV0dG9uJywgJ3NiYi1oZWFkZXItbGluayddLmluY2x1ZGVzKFxuICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5sb2NhbE5hbWUsXG4gICAgICApLFxuICAgIH0pO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fZm9jdXNUcmFwQ29udHJvbGxlci5lbmFibGVkID0gZmFsc2U7XG5cbiAgICAvLyBTdGFydGluZyBmcm9tIGJyZWFrcG9pbnQgbGFyZ2UsIGVuYWJsZSBzY3JvbGxcbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIWlzQXJyb3dLZXlPclBhZ2VLZXlzUHJlc3NlZChldnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgZW5hYmxlZEFjdGlvbnM6IEVsZW1lbnRbXSA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw8U2JiTWVudUJ1dHRvbkVsZW1lbnQgfCBTYmJNZW51TGlua0VsZW1lbnQ+KFxuICAgICAgICAnc2JiLW1lbnUtYnV0dG9uLCBzYmItbWVudS1saW5rJyxcbiAgICAgICksXG4gICAgKVxuICAgICAgLmNvbmNhdCh0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1tZW51LWJ1dHRvbicpISlcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChlbCkgPT4gKCFlbC5kaXNhYmxlZCB8fCBlbC5kaXNhYmxlZEludGVyYWN0aXZlKSAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUoZWwpLFxuICAgICAgKTtcbiAgICBjb25zdCBjdXJyZW50ID0gZW5hYmxlZEFjdGlvbnMuZmluZEluZGV4KChlOiBFbGVtZW50KSA9PiBlID09PSBldnQudGFyZ2V0KTtcblxuICAgIGxldCBuZXh0SW5kZXg7XG4gICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIG5leHRJbmRleCA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkQWN0aW9ucy5sZW5ndGgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgaWYgKHRoaXMuX2lzTmVzdGVkKCkpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICBpZiAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLm1hdGNoZXMoJzpzdGF0ZShzYmItbWVudS10cmlnZ2VyKScpKSB7XG4gICAgICAgICAgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ1BhZ2VVcCc6XG4gICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgIG5leHRJbmRleCA9IGVuYWJsZWRBY3Rpb25zLmxlbmd0aCAtIDE7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChuZXh0SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgKGVuYWJsZWRBY3Rpb25zW25leHRJbmRleF0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLlxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlUmVuZGVyUm9vdCgpOiBIVE1MRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQge1xuICAgIGNvbnN0IHJlbmRlclJvb3QgPSBzdXBlci5jcmVhdGVSZW5kZXJSb290KCk7XG4gICAgLy8gRHVlIHRvIHRoZSBmYWN0IHRoYXQgbWVudSBjYW4gYm90aCBiZSBhIGxpc3QgYW5kIGp1c3QgYSBjb250YWluZXIsIHdlIG5lZWQgdG8gY2hlY2sgaXRzXG4gICAgLy8gc3RhdGUgYmVmb3JlIHRoZSBTYmJOYW1lZFNsb3RMaXN0TWl4aW4gaGFuZGxlcyB0aGUgc2xvdGNoYW5nZSBldmVudCwgaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAvLyBpdCBpbnRlcnByZXRpbmcgdGhlIG5vbiBsaXN0IGNhc2UgYXMgYSBsaXN0LlxuICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsICgpID0+IHRoaXMuX3N5bmNOZWdhdGl2ZSgpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgcmV0dXJuIHJlbmRlclJvb3Q7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICghbmFtZSB8fCBuYW1lID09PSAndHJpZ2dlcicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENvbnNpZGVyIHRoZSBtZW51IGFzIG5lc3RlZCBpZiB0aGUgdHJpZ2dlciBpcyBhIG1lbnUgYnV0dG9uIG9yIG1lbnUgbGluay5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ25lc3RlZCcsXG4gICAgICBbJ3NiYi1tZW51LWJ1dHRvbicsICdzYmItbWVudS1saW5rJ10uaW5jbHVkZXModGhpcy5fdHJpZ2dlckVsZW1lbnQubG9jYWxOYW1lKSxcbiAgICApO1xuICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMuX3RyaWdnZXJFbGVtZW50KS5hZGQoJ3NiYi1tZW51LXRyaWdnZXInKTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaFdpbmRvd0V2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3NldE1lbnVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIC8vIFdpdGhvdXQgY2FwdHVyZSwgb3RoZXIgc2Nyb2xsIGNvbnRleHRzIHdvdWxkIG5vdCBidWJibGUgdG8gdGhpcyBldmVudCBsaXN0ZW5lci5cbiAgICAgIC8vIENhcHR1cmUgYWxsb3dzIHVzIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgY29udGV4dHMgaW4gdGhpcyBET00uXG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRNZW51UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBPbmx5IHRoZSBvdXRlcm1vc3QgbWVudSBuZWVkcyB0byBsaXN0ZW4gdG8gdGhlIGJhY2tkcm9wIGNsaWNrc1xuICAgIGlmICghdGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgLy8gQ2xvc2UgbWVudSBvbiBiYWNrZHJvcCBjbGlja1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lciwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2ssIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIENsb3NlIG1lbnUgYXQgYW55IGNsaWNrIG9uIGFuIGludGVyYWN0aXZlIGVsZW1lbnQgaW5zaWRlIHRoZSA8c2JiLW1lbnU+IHRoYXQgYnViYmxlcyB0byB0aGUgY29udGFpbmVyLlxuICBwcml2YXRlIF9pbnRlcmFjdGl2ZUVsZW1lbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoXG4gICAgICBJTlRFUkFDVElWRV9FTEVNRU5UUy5pbmNsdWRlcyh0YXJnZXQubm9kZU5hbWUpICYmXG4gICAgICAhdGFyZ2V0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJlxuICAgICAgIXRhcmdldC5tYXRjaGVzKCc6c3RhdGUoc2JiLW1lbnUtdHJpZ2dlciknKSAmJlxuICAgICAgdGFyZ2V0LmlkICE9PSAnc2JiLW1lbnVfX2JhY2stYnV0dG9uJ1xuICAgICkge1xuICAgICAgdGhpcy5jbG9zZUFsbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBtZW51LlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCBtZW51ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnc2JiLW1lbnUnKTtcblxuICAgIC8vIFRoZSBwb2ludGVyIGRvd24gaXMgb24gdGhlIG1lbnUgb3Igb25lIG9mIGl0cyBuZXN0ZWQgbWVudXMuXG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ID1cbiAgICAgIGlzRXZlbnRPbkVsZW1lbnQodGhpcy5fbWVudSwgZXZlbnQpIHx8IHRoaXMuX25lc3RlZE1lbnVzKCkuc29tZSgoZWwpID0+IG1lbnUgPT09IGVsKTtcbiAgfTtcblxuICAvLyBDbG9zZSBtZW51IG9uIGJhY2tkcm9wIGNsaWNrLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgLy8gVGhlIGJhY2tkcm9wIGlzIG9ubHkgbGlzdGVuZWQgb24gdGhlIG1haW4gbWVudSAob3V0ZXJtb3N0IG1lbnUpLlxuICAgIC8vIFRvIGNsb3NlLlxuICAgIC8vIC0gVGhlIHBvaW50ZXIgZG93biBhbmQgdXAgbmVlZCB0byBiZSBvdXRzaWRlIHRoZSBtZW51LlxuICAgIC8vIC0gVGhlIHRhcmdldCBzaG91bGQgYmUgbm90IG9uIGEgbmVzdGVkIG1lbnVcbiAgICBpZiAoXG4gICAgICAhdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ICYmXG4gICAgICAhaXNFdmVudE9uRWxlbWVudCh0aGlzLl9tZW51LCBldmVudCkgJiZcbiAgICAgICF0aGlzLl9uZXN0ZWRNZW51cygpLnNvbWUoKGVsKSA9PiBlbCA9PT0gdGFyZ2V0KVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZUFsbCgpO1xuICAgIH1cbiAgfTtcblxuICAvKiogQ29udmVydHMgdGhlIGxpbmtlZCBsaXN0IGludG8gYW4gYXJyYXkgb2YgU2JiTWVudUVsZW1lbnQuICovXG4gIHByaXZhdGUgX25lc3RlZE1lbnVzKCk6IFNiYk1lbnVFbGVtZW50W10ge1xuICAgIGNvbnN0IG1lbnVzOiBTYmJNZW51RWxlbWVudFtdID0gW107XG4gICAgbGV0IGN1cnJlbnQgPSB0aGlzLl9uZXN0ZWRNZW51O1xuXG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgIG1lbnVzLnB1c2goY3VycmVudCk7XG4gICAgICBjdXJyZW50ID0gY3VycmVudC5fbmVzdGVkTWVudTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVudXM7XG4gIH1cblxuICBwcml2YXRlIF9wYXJlbnRNZW51KCk6IFNiYk1lbnVFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5jbG9zZXN0KCdzYmItbWVudScpID8/IG51bGw7XG4gIH1cblxuICAvKiogVGhlIG91dGVybW9zdCBtZW51LiAqL1xuICBwcml2YXRlIF9tYWluTWVudSgpOiBTYmJNZW51RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTmVzdGVkKCkgPyAodGhpcy5fcGFyZW50TWVudSgpPy5fbWFpbk1lbnUoKSA/PyB0aGlzKSA6IHRoaXM7XG4gIH1cblxuICBwcml2YXRlIF9pc05lc3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9wYXJlbnRNZW51KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVOZXN0ZWRJbmVydCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIucmVzdG9yZUFsbEV4ZW1wdGVkKCk7XG4gICAgdGhpcy5fbWFpbk1lbnUoKVxuICAgICAgLl9uZXN0ZWRNZW51cygpXG4gICAgICAuZm9yRWFjaCgobWVudSkgPT4gdGhpcy5faW5lcnRDb250cm9sbGVyLmV4ZW1wdChtZW51KSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBuZXN0ZWQgbWVudSBzaG91bGQgYmUgY2xvc2VkLlxuICBwcml2YXRlIF9oYW5kbGVNb3VzZU92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGlzTW9iaWxlID0gdGhpcy5faXNNb2JpbGUoKTtcblxuICAgIC8vIEFsbCBuZXN0ZWQgbWVudXMgc2hvdWxkIGNsb3NlIGluIGRlc2t0b3AgbW9kZSBpZiB0aGUgY3Vyc29yIGxhbmRlZCBvblxuICAgIC8vIGFueXRoaW5nIG90aGVyIHRoYW4gdGhlIGNvbnRhaW5lciwgdGhlIGNvbnRhaW5lcidzIHNjcm9sbGJhciBvciB0aGUgdHJpZ2dlciBpdHNlbGZcbiAgICBpZiAoXG4gICAgICAhaXNNb2JpbGUgJiZcbiAgICAgIHRoaXMuX25lc3RlZE1lbnUgJiZcbiAgICAgICFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnc2JiLW1lbnVfX2NvbnRlbnQnKSAmJlxuICAgICAgIShlbGVtZW50LmFyaWFFeHBhbmRlZCA9PT0gJ3RydWUnKVxuICAgICkge1xuICAgICAgdGhpcy5fbmVzdGVkTWVudS5jbG9zZSgpO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50Lm1hdGNoZXMoJzpzdGF0ZShzYmItbWVudS10cmlnZ2VyKScpICYmICFpc01vYmlsZSkge1xuICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBtZW51IHBvc2l0aW9uICh4LCB5KSB0byAnMCcgb25jZSB0aGUgbWVudSBpcyBjbG9zZWQgYW5kIHRoZSB0cmFuc2l0aW9uIGVuZGVkIHRvIHByZXZlbnQgdGhlXG4gIC8vIHZpZXdwb3J0IGZyb20gb3ZlcmZsb3dpbmcuIEFuZCBzZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBvbmNlIHRoZSBtZW51IGlzIG9wZW4uXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25NZW51QW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgfHwgZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tc2lkZXdheXMnKSAmJlxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnXG4gICAgKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnIHx8IGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZS1zaWRld2F5cycpICYmXG4gICAgICB0aGlzLnN0YXRlID09PSAnY2xvc2luZydcbiAgICApIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgbWVudSBwb3NpdGlvbiBhbmQgbWF4IGhlaWdodCBpZiB0aGUgYnJlYWtwb2ludCBpcyBsYXJnZS11bHRyYS5cbiAgcHJpdmF0ZSBfc2V0TWVudVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBsYXJnZVxuICAgIGlmICh0aGlzLl9pc01vYmlsZSgpIHx8ICF0aGlzLl9tZW51IHx8ICF0aGlzLl90cmlnZ2VyRWxlbWVudCB8fCB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51UG9zaXRpb24gPSAhdGhpcy5faXNOZXN0ZWQoKVxuICAgICAgPyBnZXRFbGVtZW50UG9zaXRpb24oXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLW1lbnVfX2NvbnRlbnQnKSEsXG4gICAgICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQsXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLW1lbnVfX2NvbnRhaW5lcicpISxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2ZXJ0aWNhbE9mZnNldDogTUVOVV9PRkZTRVQsXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgOiBnZXRFbGVtZW50UG9zaXRpb25Ib3Jpem9udGFsKFxuICAgICAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250ZW50JykhLFxuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LFxuICAgICAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250YWluZXInKSEsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaG9yaXpvbnRhbE9mZnNldDogTUVOVV9PRkZTRVQsXG4gICAgICAgICAgICB2ZXJ0aWNhbE9mZnNldDogTkVTVEVEX01FTlVfT0ZGU0VULFxuICAgICAgICAgICAgY29udGVudFNlbGVjdG9yOiAnLnNiYi1tZW51X19jb250ZW50JyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbWVudS1wb3NpdGlvbi14JywgYCR7bWVudVBvc2l0aW9uLmxlZnR9cHhgKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1tZW51LXBvc2l0aW9uLXknLCBgJHttZW51UG9zaXRpb24udG9wfXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbWVudS1tYXgtaGVpZ2h0JywgbWVudVBvc2l0aW9uLm1heEhlaWdodCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgLy8gTGlua3MgYW5kIGJ1dHRvbnMgYXJlIHRoZSBtb3N0IGV4cGVjdGVkIGNvbnRlbnRzIHdoaWNoIGhhdmUgYSBuZWdhdGl2ZSBwcm9wZXJ0eVxuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOnN0YXRlKHNiYi1saW5rKSwgOnN0YXRlKHNiYi1idXR0b24pJyk/LmZvckVhY2goKGVsOiBFbGVtZW50KSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKGVsKTtcbiAgICAgIChlbCBhcyBFbGVtZW50ICYgU2JiTmVnYXRpdmVNaXhpblR5cGUpLm5lZ2F0aXZlID0gIXRoaXMuX2RhcmtNb2RlQ29udHJvbGxlci5tYXRjaGVzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWFNYXRjaGVyLm1hdGNoZXModGhpcy5fbW9iaWxlQnJlYWtwb2ludCkgPz8gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1tZW51X19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbk1lbnVBbmltYXRpb25FbmR9XG4gICAgICAgICAgQG1vdXNlb3Zlcj0keyhlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLl9oYW5kbGVNb3VzZU92ZXIoZSl9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbWVudVwiXG4gICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX21lbnUgPSBlbCBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5faW50ZXJhY3RpdmVFbGVtZW50Q2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgQHNjcm9sbD0keyhlOiBFdmVudCkgPT4gZm9yd2FyZEV2ZW50KGUsIGRvY3VtZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLW1lbnVfX2NvbnRlbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDxzYmItZGl2aWRlcj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgICAgPHNiYi1tZW51LWJ1dHRvblxuICAgICAgICAgICAgICBpZD1cInNiYi1tZW51X19iYWNrLWJ1dHRvblwiXG4gICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuY2xvc2UoKX1cbiAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgJHtpMThuR29CYWNrW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgPC9zYmItbWVudS1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW1lbnUnOiBTYmJNZW51RWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQzZDQSxJQUFNLGNBQWM7QUFD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
|
package/development/menu.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as SbbMenuActionCommonElementMixin } from "./menu-action-common-
|
|
1
|
+
import { t as SbbMenuActionCommonElementMixin } from "./menu-action-common-CEnwq60Z.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-
|
|
4
|
+
import { t as SbbMenuElement } from "./menu.component-BM7hhOb4.js";
|
|
5
5
|
import "./menu.pure.js";
|
|
6
6
|
//#region src/elements/menu.ts
|
|
7
7
|
/** @entrypoint */
|
package/development/menu.pure.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as SbbMenuActionCommonElementMixin } from "./menu-action-common-
|
|
1
|
+
import { t as SbbMenuActionCommonElementMixin } from "./menu-action-common-CEnwq60Z.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-
|
|
4
|
+
import { t as SbbMenuElement } from "./menu.component-BM7hhOb4.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;;
|
|
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;CAkC5C;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-
|
|
1
|
+
import { t as SbbNavigationElement } from "../../navigation.component-DUy2QGHI.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;;
|
|
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;CAmC5C;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-
|
|
1
|
+
import { t as SbbNavigationSectionElement } from "../../navigation-section.component-6tqZADWM.js";
|
|
2
2
|
export { SbbNavigationSectionElement };
|