@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1780495434 → 5.0.0-next.3-dev.1780500158
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/styles/mixins/_scrollbar.scss +6 -0
- package/core/styles/styles.js +1 -1
- package/core.js +1 -1
- package/custom-elements.json +10 -2
- package/development/core/styles/styles.js +1 -1
- package/development/core.js +1 -1
- package/development/header/header/header.component.d.ts +2 -0
- package/development/header/header/header.component.d.ts.map +1 -1
- package/development/header/header/header.component.js +1 -1
- package/development/header.component-FVw_5NRT.js +336 -0
- package/development/header.js +1 -1
- package/development/header.pure.js +1 -1
- package/development/map-container/map-container.component.d.ts +2 -2
- package/development/map-container/map-container.component.js +1 -1
- package/development/map-container.component-ASCfDs-R.js +176 -0
- package/development/map-container.js +1 -1
- package/development/map-container.pure.js +1 -1
- package/development/{styles-AtR8n_N4.js → styles-CUz7LBUc.js} +3 -3
- package/header/_header.global.scss +8 -1
- package/header/header/header.component.js +1 -1
- package/{header.component-DgWfgTse.js → header.component-BbdHh5fF.js} +1 -1
- package/header.js +1 -1
- package/header.pure.js +1 -1
- package/lean-off-brand-theme.css +7 -1
- package/lean-safety-theme.css +7 -1
- package/lean-theme.css +7 -1
- package/map-container/map-container.component.js +1 -1
- package/{map-container.component-bI8Gb4I8.js → map-container.component-C2_Miiv0.js} +1 -1
- package/map-container.js +1 -1
- package/map-container.pure.js +1 -1
- package/off-brand-theme.css +7 -1
- package/package.json +2 -2
- package/safety-theme.css +7 -1
- package/standard-theme.css +7 -1
- package/styles-BwvY_TyZ.js +5 -0
- package/development/header.component-B43X03Jg.js +0 -334
- package/development/map-container.component-N-e2oBnd.js +0 -176
- package/styles-Cx8wGnh9.js +0 -5
|
@@ -67,6 +67,10 @@
|
|
|
67
67
|
);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
@mixin scrollbar-variables--color-track-invisible {
|
|
71
|
+
--sbb-scrollbar-track-color: transparent;
|
|
72
|
+
}
|
|
73
|
+
|
|
70
74
|
@mixin scrollbar-variables--color-positive-track-visible {
|
|
71
75
|
--sbb-scrollbar-track-color: var(--sbb-background-color-4);
|
|
72
76
|
}
|
|
@@ -99,6 +103,8 @@
|
|
|
99
103
|
@include scrollbar-variables--color-negative-track-visible;
|
|
100
104
|
} @else if $track-visible {
|
|
101
105
|
@include scrollbar-variables--color-positive-track-visible;
|
|
106
|
+
} @else {
|
|
107
|
+
@include scrollbar-variables--color-track-invisible;
|
|
102
108
|
}
|
|
103
109
|
}
|
|
104
110
|
|
package/core/styles/styles.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, t as a } from "../../styles-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, t as a } from "../../styles-BwvY_TyZ.js";
|
|
2
2
|
export { a as buttonResetStyles, n as hostScrollbarStyles, i as listResetStyles, t as popoverResetStyles, e as screenReaderOnlyStyles, r as scrollbarStyles };
|
package/core.js
CHANGED
|
@@ -58,5 +58,5 @@ import { getElementPosition as Gn, getElementPositionHorizontal as Kn, getElemen
|
|
|
58
58
|
import { setOverlayPosition as Yn } from "./core/overlay/overlay-option-panel.js";
|
|
59
59
|
import { SbbOverlayOutsidePointerEventListener as Xn, sbbOverlayOutsidePointerEventListener as Zn } from "./core/overlay/overlay-outside-pointer-event-listener.js";
|
|
60
60
|
import { removeAriaComboBoxAttributes as Qn, removeAriaOverlayTriggerProperties as $n, setAriaComboBoxAttributes as er, setAriaOverlayTriggerProperties as tr } from "./core/overlay/overlay-trigger-attributes.js";
|
|
61
|
-
import { a as nr, i as rr, n as ir, o as ar, r as or, t as sr } from "./styles-
|
|
61
|
+
import { a as nr, i as rr, n as ir, o as ar, r as or, t as sr } from "./styles-BwvY_TyZ.js";
|
|
62
62
|
export { q as DateAdapter, J as FORMAT_DATE, Y as FRIDAY, X as ISO8601_FORMAT_DATE, l as IS_FOCUSABLE_QUERY, u as InteractivityChecker, d as IsFocusableConfig, Z as MONDAY, re as NativeDateAdapter, Q as SATURDAY, $ as SUNDAY, x as SbbActionBaseElement, kn as SbbAnimationCompleteMixin, S as SbbButtonBaseElement, C as SbbButtonLikeBaseElement, P as SbbDarkModeController, An as SbbDisabledInteractiveMixin, jn as SbbDisabledMixin, Mn as SbbDisabledTabIndexActionMixin, b as SbbElement, A as SbbEscapableOverlayController, p as SbbFocusTrapController, c as SbbFocusVisibleWithinController, Fn as SbbFormAssociatedCheckboxMixin, Ln as SbbFormAssociatedInputMixin, Nn as SbbFormAssociatedMixin, Rn as SbbFormAssociatedRadioButtonMixin, j as SbbIdReferenceController, M as SbbInertController, N as SbbLanguageController, w as SbbLinkBaseElement, m as SbbLiveAnnouncer, F as SbbMediaMatcherController, I as SbbMediaQueryBreakpointLargeAndAbove, L as SbbMediaQueryBreakpointLargeAndBelow, R as SbbMediaQueryBreakpointSmallAndAbove, z as SbbMediaQueryBreakpointSmallAndBelow, B as SbbMediaQueryBreakpointUltraAndAbove, V as SbbMediaQueryBreakpointZeroAndAbove, H as SbbMediaQueryDarkMode, U as SbbMediaQueryForcedColors, W as SbbMediaQueryHover, G as SbbMediaQueryPointerCoarse, Bn as SbbNamedSlotListMixin, Vn as SbbNegativeMixin, T as SbbOpenCloseBaseElement, Xn as SbbOverlayOutsidePointerEventListener, K as SbbOverlayPositionController, Hn as SbbPanelMixin, k as SbbPropertyWatcherController, In as SbbReadonlyMixin, Pn as SbbRequiredMixin, Oe as SbbScrollHandler, E as SbbSelectionGroupBaseElement, Un as SbbSelectionPanelMixin, v as SbbSlottedChangeEvent, Wn as SbbUpdateSchedulerMixin, ee as THURSDAY, te as TUESDAY, ae as TemporalDateAdapter, ne as WEDNESDAY, y as appendAriaElements, sr as buttonResetStyles, me as containsPierceShadowDom, ie as defaultDateAdapter, oe as forceType, Me as forwardEvent, Gn as getElementPosition, Kn as getElementPositionHorizontal, qn as getElementRectangle, Ae as getEventTarget, e as getNextElementIndex, se as getOverride, ce as handleDistinctChange, ir as hostScrollbarStyles, Pe as i18nAdditionalWagonInformationHeading, Fe as i18nAnd, Ie as i18nArrival, Le as i18nBlockedPassage, Re as i18nBreadcrumbEllipsisButtonLabel, ze as i18nCalendarDateSelection, Be as i18nCalendarWeekNumber, Ve as i18nCarouselArrowsNavigationHint, He as i18nCarouselItemAriaLabel, Ue as i18nCheckboxRequired, We as i18nChipDelete, Ge as i18nChipGroupInputDescription, Ke as i18nClass, qe as i18nClearInput, Je as i18nCloseAlert, Ye as i18nCloseDialog, Xe as i18nCloseNavigation, Ze as i18nCloseNotification, Qe as i18nClosePopover, $e as i18nCloseSidebar, et as i18nClosedCompartmentLabel, tt as i18nCollapsed, nt as i18nConnectionFrom, rt as i18nConnectionRoundtrip, it as i18nConnectionTo, at as i18nCouchetteWagonLabel, ot as i18nDateChangedTo, st as i18nDateInvalid, ct as i18nDateMax, lt as i18nDateMin, ut as i18nDatePickerPlaceholder, dt as i18nDeparture, ft as i18nDialog, pt as i18nDirection, mt as i18nDurationDay, ht as i18nDurationHour, gt as i18nDurationMinute, _t as i18nExpanded, vt as i18nFileSelectorButtonLabel, yt as i18nFileSelectorButtonLabelMultiple, bt as i18nFileSelectorCurrentlySelected, xt as i18nFileSelectorDeleteFile, St as i18nFileSelectorSubtitleLabel, Ct as i18nFileSelectorSubtitleLabelMultiple, wt as i18nFlipCard, Tt as i18nFromPlatform, Et as i18nGoBack, Dt as i18nInputRequired, Ot as i18nItemsPerPage, kt as i18nLocomotiveLabel, At as i18nMapContainerButtonLabel, jt as i18nMeansOfTransport, Mt as i18nNew, Nt as i18nNextDay, Pt as i18nNextMonth, Ft as i18nNextPage, It as i18nNextSlide, Lt as i18nNextYear, Rt as i18nNextYearRange, zt as i18nOccupancy, Bt as i18nPage, Vt as i18nPaginatorOf, Ht as i18nPaginatorSelected, Ut as i18nPreviousDay, Wt as i18nPreviousMonth, Gt as i18nPreviousPage, Kt as i18nPreviousSlide, qt as i18nPreviousYear, Jt as i18nPreviousYearRange, Yt as i18nRealTimeInfo, Xt as i18nRemainingCharacters, Zt as i18nRestaurantWagonLabel, Qt as i18nReverseCard, $t as i18nSector, en as i18nSectorShort, tn as i18nSelectNextDay, nn as i18nSelectPreviousDay, rn as i18nSelectionRequired, an as i18nShowCalendar, on as i18nSleepingWagonLabel, sn as i18nSlide, cn as i18nSupersaver, ln as i18nTargetOpensInNewWindow, un as i18nTimeInputChange, dn as i18nTimeInvalid, fn as i18nTimeMax, pn as i18nTimeMaxLength, mn as i18nTimetableFormSwapButtonLabel, hn as i18nToday, gn as i18nTrain, _n as i18nTrains, vn as i18nTransferProcedure, yn as i18nTransferProcedures, bn as i18nTravelhints, xn as i18nTripDuration, Sn as i18nTripQuayChange, Cn as i18nWagonLabel, wn as i18nWagonLabelNumber, Tn as i18nWagonsLabel, En as i18nWalkingDistanceArrival, Dn as i18nWalkingDistanceDeparture, On as i18nYearMonthSelection, le as idReference, f as interactivityChecker, ge as isAndroid, t as isArrowKeyOrPageKeysPressed, n as isArrowKeyPressed, _e as isBlink, ve as isChromium, ye as isEdge, Jn as isEventOnElement, Ne as isEventPrevented, a as isFakeMousedownFromScreenReader, o as isFakeTouchstartFromScreenReader, be as isFirefox, xe as isIOS, Se as isMacOS, r as isNextArrowKeyPressed, Ce as isNextjs, i as isPreviousArrowKeyPressed, we as isSafari, Te as isTrident, Ee as isWebkit, pe as isZeroAnimationDuration, or as listResetStyles, D as mergeConfig, ue as omitEmptyConverter, ke as pageScrollDisabled, de as plainDate, fe as plainDateConverter, rr as popoverResetStyles, je as preventScrollOnSpacebarPress, De as queueDomContentLoaded, zn as radioButtonRegistry, O as readConfig, Qn as removeAriaComboBoxAttributes, _ as removeAriaElements, $n as removeAriaOverlayTriggerProperties, s as sbbInputModalityDetector, h as sbbLiveAnnouncer, Zn as sbbOverlayOutsidePointerEventListener, nr as screenReaderOnlyStyles, ar as scrollbarStyles, er as setAriaComboBoxAttributes, tr as setAriaOverlayTriggerProperties, he as setOrRemoveAttribute, Yn as setOverlayPosition, g as ɵstateController };
|
package/custom-elements.json
CHANGED
|
@@ -113736,6 +113736,14 @@
|
|
|
113736
113736
|
"description": "Can be used to modify height of the header.",
|
|
113737
113737
|
"name": "--sbb-header-height",
|
|
113738
113738
|
"default": "zero-small:var(--sbb-spacing-fixed-14x);large-ultra:var(--sbb-spacing-fixed-24x)"
|
|
113739
|
+
},
|
|
113740
|
+
{
|
|
113741
|
+
"description": "Defines the header's padding-block-start. It defaults to the device's safe-area inset to prevent the header from being obscured by display cutouts or system UI elements. This variable must be set on the root document element (`<html>`) so that components relying on the header's height can calculate their layout correctly.",
|
|
113742
|
+
"name": "--sbb-header-padding-block-start:env(safe-area-inset-top, 0)"
|
|
113743
|
+
},
|
|
113744
|
+
{
|
|
113745
|
+
"description": "Readonly; sum of var(--sbb-header-height) and var(--sbb-header-padding-block-start) that can be used to manage spacing of absolute positioned elements that shouldn't overlap the header.",
|
|
113746
|
+
"name": "--sbb-header-vertical-spacing"
|
|
113739
113747
|
}
|
|
113740
113748
|
],
|
|
113741
113749
|
"slots": [
|
|
@@ -125872,7 +125880,7 @@
|
|
|
125872
125880
|
{
|
|
125873
125881
|
"description": "The component comes along with a height calculation that subtracts the height of the header. For specific use cases, this variable can be used to modify the preset height.",
|
|
125874
125882
|
"name": "--sbb-map-container-margin-start",
|
|
125875
|
-
"default": "var(--sbb-header-
|
|
125883
|
+
"default": "var(--sbb-header-vertical-spacing)"
|
|
125876
125884
|
},
|
|
125877
125885
|
{
|
|
125878
125886
|
"description": "Can be used to modify the width of the left sidebar.",
|
|
@@ -125880,7 +125888,7 @@
|
|
|
125880
125888
|
"default": "zero-large:400px;ultra:480px"
|
|
125881
125889
|
},
|
|
125882
125890
|
{
|
|
125883
|
-
"description": "If e.g. a header with a fixed height is placed before the map-container, the map should be sticky respecting this offset from the document's top. Only applied on mobile views. Most commonly it can be set to `var(--sbb-header-
|
|
125891
|
+
"description": "If e.g. a header with a fixed height is placed before the map-container, the map should be sticky respecting this offset from the document's top. Only applied on mobile views. Most commonly it can be set to `var(--sbb-header-vertical-spacing)`.",
|
|
125884
125892
|
"name": "--sbb-map-container-mobile-sticky-block-start",
|
|
125885
125893
|
"default": "0"
|
|
125886
125894
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as screenReaderOnlyStyles, i as popoverResetStyles, n as hostScrollbarStyles, o as scrollbarStyles, r as listResetStyles, t as buttonResetStyles } from "../../styles-
|
|
1
|
+
import { a as screenReaderOnlyStyles, i as popoverResetStyles, n as hostScrollbarStyles, o as scrollbarStyles, r as listResetStyles, t as buttonResetStyles } from "../../styles-CUz7LBUc.js";
|
|
2
2
|
export { buttonResetStyles, hostScrollbarStyles, listResetStyles, popoverResetStyles, screenReaderOnlyStyles, scrollbarStyles };
|
package/development/core.js
CHANGED
|
@@ -58,5 +58,5 @@ import { getElementPosition, getElementPositionHorizontal, getElementRectangle,
|
|
|
58
58
|
import { setOverlayPosition } from "./core/overlay/overlay-option-panel.js";
|
|
59
59
|
import { SbbOverlayOutsidePointerEventListener, sbbOverlayOutsidePointerEventListener } from "./core/overlay/overlay-outside-pointer-event-listener.js";
|
|
60
60
|
import { removeAriaComboBoxAttributes, removeAriaOverlayTriggerProperties, setAriaComboBoxAttributes, setAriaOverlayTriggerProperties } from "./core/overlay/overlay-trigger-attributes.js";
|
|
61
|
-
import { a as screenReaderOnlyStyles, i as popoverResetStyles, n as hostScrollbarStyles, o as scrollbarStyles, r as listResetStyles, t as buttonResetStyles } from "./styles-
|
|
61
|
+
import { a as screenReaderOnlyStyles, i as popoverResetStyles, n as hostScrollbarStyles, o as scrollbarStyles, r as listResetStyles, t as buttonResetStyles } from "./styles-CUz7LBUc.js";
|
|
62
62
|
export { DateAdapter, FORMAT_DATE, FRIDAY, ISO8601_FORMAT_DATE, IS_FOCUSABLE_QUERY, InteractivityChecker, IsFocusableConfig, MONDAY, NativeDateAdapter, SATURDAY, SUNDAY, SbbActionBaseElement, SbbAnimationCompleteMixin, SbbButtonBaseElement, SbbButtonLikeBaseElement, SbbDarkModeController, SbbDisabledInteractiveMixin, SbbDisabledMixin, SbbDisabledTabIndexActionMixin, SbbElement, SbbEscapableOverlayController, SbbFocusTrapController, SbbFocusVisibleWithinController, SbbFormAssociatedCheckboxMixin, SbbFormAssociatedInputMixin, SbbFormAssociatedMixin, SbbFormAssociatedRadioButtonMixin, SbbIdReferenceController, SbbInertController, SbbLanguageController, SbbLinkBaseElement, SbbLiveAnnouncer, SbbMediaMatcherController, SbbMediaQueryBreakpointLargeAndAbove, SbbMediaQueryBreakpointLargeAndBelow, SbbMediaQueryBreakpointSmallAndAbove, SbbMediaQueryBreakpointSmallAndBelow, SbbMediaQueryBreakpointUltraAndAbove, SbbMediaQueryBreakpointZeroAndAbove, SbbMediaQueryDarkMode, SbbMediaQueryForcedColors, SbbMediaQueryHover, SbbMediaQueryPointerCoarse, SbbNamedSlotListMixin, SbbNegativeMixin, SbbOpenCloseBaseElement, SbbOverlayOutsidePointerEventListener, SbbOverlayPositionController, SbbPanelMixin, SbbPropertyWatcherController, SbbReadonlyMixin, SbbRequiredMixin, SbbScrollHandler, SbbSelectionGroupBaseElement, SbbSelectionPanelMixin, SbbSlottedChangeEvent, SbbUpdateSchedulerMixin, THURSDAY, TUESDAY, TemporalDateAdapter, WEDNESDAY, appendAriaElements, buttonResetStyles, containsPierceShadowDom, defaultDateAdapter, forceType, forwardEvent, getElementPosition, getElementPositionHorizontal, getElementRectangle, getEventTarget, getNextElementIndex, getOverride, handleDistinctChange, hostScrollbarStyles, i18nAdditionalWagonInformationHeading, i18nAnd, i18nArrival, i18nBlockedPassage, i18nBreadcrumbEllipsisButtonLabel, i18nCalendarDateSelection, i18nCalendarWeekNumber, i18nCarouselArrowsNavigationHint, i18nCarouselItemAriaLabel, i18nCheckboxRequired, i18nChipDelete, i18nChipGroupInputDescription, i18nClass, i18nClearInput, i18nCloseAlert, i18nCloseDialog, i18nCloseNavigation, i18nCloseNotification, i18nClosePopover, i18nCloseSidebar, i18nClosedCompartmentLabel, i18nCollapsed, i18nConnectionFrom, i18nConnectionRoundtrip, i18nConnectionTo, i18nCouchetteWagonLabel, i18nDateChangedTo, i18nDateInvalid, i18nDateMax, i18nDateMin, i18nDatePickerPlaceholder, i18nDeparture, i18nDialog, i18nDirection, i18nDurationDay, i18nDurationHour, i18nDurationMinute, i18nExpanded, i18nFileSelectorButtonLabel, i18nFileSelectorButtonLabelMultiple, i18nFileSelectorCurrentlySelected, i18nFileSelectorDeleteFile, i18nFileSelectorSubtitleLabel, i18nFileSelectorSubtitleLabelMultiple, i18nFlipCard, i18nFromPlatform, i18nGoBack, i18nInputRequired, i18nItemsPerPage, i18nLocomotiveLabel, i18nMapContainerButtonLabel, i18nMeansOfTransport, i18nNew, i18nNextDay, i18nNextMonth, i18nNextPage, i18nNextSlide, i18nNextYear, i18nNextYearRange, i18nOccupancy, i18nPage, i18nPaginatorOf, i18nPaginatorSelected, i18nPreviousDay, i18nPreviousMonth, i18nPreviousPage, i18nPreviousSlide, i18nPreviousYear, i18nPreviousYearRange, i18nRealTimeInfo, i18nRemainingCharacters, i18nRestaurantWagonLabel, i18nReverseCard, i18nSector, i18nSectorShort, i18nSelectNextDay, i18nSelectPreviousDay, i18nSelectionRequired, i18nShowCalendar, i18nSleepingWagonLabel, i18nSlide, i18nSupersaver, i18nTargetOpensInNewWindow, i18nTimeInputChange, i18nTimeInvalid, i18nTimeMax, i18nTimeMaxLength, i18nTimetableFormSwapButtonLabel, i18nToday, i18nTrain, i18nTrains, i18nTransferProcedure, i18nTransferProcedures, i18nTravelhints, i18nTripDuration, i18nTripQuayChange, i18nWagonLabel, i18nWagonLabelNumber, i18nWagonsLabel, i18nWalkingDistanceArrival, i18nWalkingDistanceDeparture, i18nYearMonthSelection, idReference, interactivityChecker, isAndroid, isArrowKeyOrPageKeysPressed, isArrowKeyPressed, isBlink, isChromium, isEdge, isEventOnElement, isEventPrevented, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader, isFirefox, isIOS, isMacOS, isNextArrowKeyPressed, isNextjs, isPreviousArrowKeyPressed, isSafari, isTrident, isWebkit, isZeroAnimationDuration, listResetStyles, mergeConfig, omitEmptyConverter, pageScrollDisabled, plainDate, plainDateConverter, popoverResetStyles, preventScrollOnSpacebarPress, queueDomContentLoaded, radioButtonRegistry, readConfig, removeAriaComboBoxAttributes, removeAriaElements, removeAriaOverlayTriggerProperties, sbbInputModalityDetector, sbbLiveAnnouncer, sbbOverlayOutsidePointerEventListener, screenReaderOnlyStyles, scrollbarStyles, setAriaComboBoxAttributes, setAriaOverlayTriggerProperties, setOrRemoveAttribute, setOverlayPosition, ɵstateController };
|
|
@@ -6,6 +6,8 @@ import { SbbElement } from '../../core.ts';
|
|
|
6
6
|
* @slot - Use the unnamed slot to add actions, content and logo to the header.
|
|
7
7
|
* @cssprop [--sbb-header-z-index=10] - Can be used to modify the z-index of the header.
|
|
8
8
|
* @cssprop [--sbb-header-height=zero-small:var(--sbb-spacing-fixed-14x);large-ultra:var(--sbb-spacing-fixed-24x)] - Can be used to modify height of the header.
|
|
9
|
+
* @cssprop [--sbb-header-padding-block-start:env(safe-area-inset-top, 0)] - Defines the header's padding-block-start. It defaults to the device's safe-area inset to prevent the header from being obscured by display cutouts or system UI elements. This variable must be set on the root document element (`<html>`) so that components relying on the header's height can calculate their layout correctly.
|
|
10
|
+
* @cssprop [--sbb-header-vertical-spacing] - Readonly; sum of var(--sbb-header-height) and var(--sbb-header-padding-block-start) that can be used to manage spacing of absolute positioned elements that shouldn't overlap the header.
|
|
9
11
|
*/
|
|
10
12
|
export declare class SbbHeaderElement extends SbbElement {
|
|
11
13
|
static readonly elementName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/header/header/header.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAIL,UAAU,EAEX,MAAM,eAAe,CAAC;AAMvB
|
|
1
|
+
{"version":3,"file":"header.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/header/header/header.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAIL,UAAU,EAEX,MAAM,eAAe,CAAC;AAMvB;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,gBAAgC,WAAW,EAAE,MAAM,CAAgB;IACnE,OAAuB,MAAM,EAAE,cAAc,CAAsB;IAEnE,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAA0B;IAC7D,OAAO,CAAC,MAAM,CAAC,eAAe,CAA+B;IAU7D;;;OAGG;IACH,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C;;;;OAIG;IACH,SAEgB,YAAY,EAAE,WAAW,GAAG,IAAI,CAAQ;IAExD,yDAAyD;IACzD,SAEgB,YAAY,EAAE,OAAO,CAAS;IAE9C;;OAEG;IACH,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAQ;IAElE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IAE9C,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,yBAAyB,CAA4B;;IAO7D,OAAO,CAAC,MAAM,CAAC,+BAA+B;IA2B9C,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAM1C,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAQzC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAgBpC,gGAAgG;IAChF,iBAAiB,IAAI,IAAI;IAQzC,2DAA2D;IAC3C,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;IAK9E,OAAO,CAAC,qBAAqB;IAuB7B,wDAAwD;IACxD,OAAO,CAAC,kBAAkB;IAI1B,2DAA2D;IAC3D,OAAO,CAAC,yBAAyB;IAOjC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA8CvB,uEAAuE;IACvE,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,kBAAkB;cAiBP,MAAM,IAAI,cAAc;CAS5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbHeaderElement } from "../../header.component-
|
|
1
|
+
import { t as SbbHeaderElement } from "../../header.component-FVw_5NRT.js";
|
|
2
2
|
export { SbbHeaderElement };
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { html, isServer, unsafeCSS } from "lit";
|
|
3
|
+
import { property, state } from "lit/decorators.js";
|
|
4
|
+
import { SbbElement, SbbFocusVisibleWithinController, forceType, idReference, queueDomContentLoaded } from "./core.js";
|
|
5
|
+
//#region src/elements/header/header/header.scss?inline
|
|
6
|
+
var header_default = ":host {\n --sbb-logo-height: 1rem;\n --sbb-signet-height: 1rem;\n --sbb-header-transition-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n}\n@media (min-width: calc(64rem)) {\n :host {\n --sbb-logo-height: 1.25rem;\n --sbb-signet-height: 1.25rem;\n }\n}\n:host {\n display: block;\n height: var(--sbb-header-height);\n line-height: var(--sbb-typo-line-height-text);\n padding-block-start: calc(var(--sbb-header-height) + var(--sbb-header-padding-block-start));\n}\n\n:host([size=s]) {\n --sbb-header-height: var(--sbb-header-height-s);\n}\n\n:host([size=m]) {\n --sbb-header-height: var(--sbb-header-height-m);\n}\n\n:host([hide-on-scroll]) {\n --sbb-header-position: absolute;\n}\n\n:host([hide-on-scroll]:is(:state(fixed),[state--fixed])) {\n --sbb-header-position: fixed;\n --sbb-header-animation-name: hide;\n --sbb-header-transform: translate3d(0, -100%, 0);\n --sbb-header-inset-inline-end: var(--sbb-scrollbar-width, 0);\n}\n\n:host([hide-on-scroll]:is(:state(fixed),[state--fixed]):is(:state(animated),[state--animated])) {\n --sbb-header-transition-timing: cubic-bezier(0.4, 0, 1, 1);\n}\n\n:host([hide-on-scroll]:is(:state(fixed),[state--fixed]):is(:state(visible),[state--visible])) {\n --sbb-header-animation-name: show;\n --sbb-header-transform: translate3d(0, 0, 0);\n --sbb-header-transition-timing: cubic-bezier(0, 0, 0.2, 1);\n}\n\n:host([hide-on-scroll]:is(:state(fixed),[state--fixed]):is(:state(has-visible-focus-within),[state--has-visible-focus-within])) {\n --sbb-header-transition-duration: 0;\n --sbb-header-transform: translate3d(0, 0, 0);\n}\n\n.sbb-header {\n position: var(--sbb-header-position);\n inset: 0 var(--sbb-header-inset-inline-end) auto 0;\n padding-block-start: var(--sbb-header-padding-block-start);\n background: var(--sbb-header-background);\n z-index: var(--sbb-header-z-index, 10);\n transform: var(--sbb-header-transform);\n transition-property: box-shadow;\n transition-duration: var(--sbb-header-transition-duration);\n transition-timing-function: var(--sbb-header-transition-timing);\n animation-name: var(--sbb-header-animation-name);\n animation-duration: var(--sbb-header-transition-duration);\n animation-timing-function: var(--sbb-header-transition-timing);\n}\n:host(:is(:is(:state(shadow),[state--shadow]), :is(:state(has-visible-focus-within),[state--has-visible-focus-within]):is(:state(fixed),[state--fixed]))) .sbb-header {\n box-shadow: var(--sbb-header-box-shadow);\n}\n@media (forced-colors: active) {\n .sbb-header {\n border-block-end: var(--sbb-border-width-1x) solid CanvasText;\n }\n}\n\n.sbb-header__wrapper {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n height: var(--sbb-header-height);\n}\n:host(:not([expanded])) .sbb-header__wrapper {\n padding-inline: var(--sbb-page-spacing-padding, var(--sbb-layout-base-offset-responsive));\n margin-inline: auto;\n width: 100%;\n}\n@media (min-width: calc(90rem)) {\n :host(:not([expanded])) .sbb-header__wrapper {\n max-width: var(--sbb-spacing-max-width, calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive)));\n }\n}\n:host([expanded]) .sbb-header__wrapper {\n padding-inline: var(--sbb-page-spacing-padding, var(--sbb-spacing-responsive-xxs));\n}\n\n::slotted(:is(sbb-header-button, sbb-header-link):first-child) {\n margin-inline-start: var(--sbb-header-first-item-margin-inline-start);\n}\n\n::slotted(*) {\n flex: 0 0 auto;\n}\n\n::slotted(.sbb-header-shrinkable) {\n flex-shrink: 1;\n min-width: 0;\n}\n\n::slotted(.sbb-header-spacer) {\n flex-grow: 1;\n}\n\n::slotted(.sbb-header-logo) {\n margin-inline-start: var(--sbb-spacing-responsive-s);\n}\n\n::slotted(a.sbb-header-logo) {\n display: block;\n padding-block: var(--sbb-spacing-fixed-3x);\n position: relative;\n outline: none !important;\n}\n\n::slotted(a.sbb-header-logo)::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: var(--sbb-spacing-fixed-3x) 0;\n}\n\n::slotted(a.sbb-header-logo:focus-visible)::before {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n outline-offset: var(--sbb-spacing-fixed-3x);\n border-radius: 1px;\n}\n\n@keyframes show {\n from {\n transform: translate3d(0, -100%, 0);\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes hide {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n transform: translate3d(0, -100%, 0);\n }\n}";
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region src/elements/header/header/header.component.ts
|
|
9
|
+
var IS_MENU_OPENED_QUERY = "[aria-controls][aria-expanded='true']";
|
|
10
|
+
/**
|
|
11
|
+
* It displays a header section for the page.
|
|
12
|
+
*
|
|
13
|
+
* @slot - Use the unnamed slot to add actions, content and logo to the header.
|
|
14
|
+
* @cssprop [--sbb-header-z-index=10] - Can be used to modify the z-index of the header.
|
|
15
|
+
* @cssprop [--sbb-header-height=zero-small:var(--sbb-spacing-fixed-14x);large-ultra:var(--sbb-spacing-fixed-24x)] - Can be used to modify height of the header.
|
|
16
|
+
* @cssprop [--sbb-header-padding-block-start:env(safe-area-inset-top, 0)] - Defines the header's padding-block-start. It defaults to the device's safe-area inset to prevent the header from being obscured by display cutouts or system UI elements. This variable must be set on the root document element (`<html>`) so that components relying on the header's height can calculate their layout correctly.
|
|
17
|
+
* @cssprop [--sbb-header-vertical-spacing] - Readonly; sum of var(--sbb-header-height) and var(--sbb-header-padding-block-start) that can be used to manage spacing of absolute positioned elements that shouldn't overlap the header.
|
|
18
|
+
*/
|
|
19
|
+
var SbbHeaderElement = (() => {
|
|
20
|
+
let _classSuper = SbbElement;
|
|
21
|
+
let _expanded_decorators;
|
|
22
|
+
let _expanded_initializers = [];
|
|
23
|
+
let _expanded_extraInitializers = [];
|
|
24
|
+
let _scrollOrigin_decorators;
|
|
25
|
+
let _scrollOrigin_initializers = [];
|
|
26
|
+
let _scrollOrigin_extraInitializers = [];
|
|
27
|
+
let _hideOnScroll_decorators;
|
|
28
|
+
let _hideOnScroll_initializers = [];
|
|
29
|
+
let _hideOnScroll_extraInitializers = [];
|
|
30
|
+
let _size_decorators;
|
|
31
|
+
let _size_initializers = [];
|
|
32
|
+
let _size_extraInitializers = [];
|
|
33
|
+
let __headerOnTop_decorators;
|
|
34
|
+
let __headerOnTop_initializers = [];
|
|
35
|
+
let __headerOnTop_extraInitializers = [];
|
|
36
|
+
return class SbbHeaderElement extends _classSuper {
|
|
37
|
+
static {
|
|
38
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
39
|
+
_expanded_decorators = [forceType(), property({
|
|
40
|
+
reflect: true,
|
|
41
|
+
type: Boolean
|
|
42
|
+
})];
|
|
43
|
+
_scrollOrigin_decorators = [idReference(), property({ attribute: "scroll-origin" })];
|
|
44
|
+
_hideOnScroll_decorators = [forceType(), property({
|
|
45
|
+
attribute: "hide-on-scroll",
|
|
46
|
+
reflect: true,
|
|
47
|
+
type: Boolean
|
|
48
|
+
})];
|
|
49
|
+
_size_decorators = [property({ reflect: true })];
|
|
50
|
+
__headerOnTop_decorators = [state()];
|
|
51
|
+
__esDecorate(this, null, _expanded_decorators, {
|
|
52
|
+
kind: "accessor",
|
|
53
|
+
name: "expanded",
|
|
54
|
+
static: false,
|
|
55
|
+
private: false,
|
|
56
|
+
access: {
|
|
57
|
+
has: (obj) => "expanded" in obj,
|
|
58
|
+
get: (obj) => obj.expanded,
|
|
59
|
+
set: (obj, value) => {
|
|
60
|
+
obj.expanded = value;
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
metadata: _metadata
|
|
64
|
+
}, _expanded_initializers, _expanded_extraInitializers);
|
|
65
|
+
__esDecorate(this, null, _scrollOrigin_decorators, {
|
|
66
|
+
kind: "accessor",
|
|
67
|
+
name: "scrollOrigin",
|
|
68
|
+
static: false,
|
|
69
|
+
private: false,
|
|
70
|
+
access: {
|
|
71
|
+
has: (obj) => "scrollOrigin" in obj,
|
|
72
|
+
get: (obj) => obj.scrollOrigin,
|
|
73
|
+
set: (obj, value) => {
|
|
74
|
+
obj.scrollOrigin = value;
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
metadata: _metadata
|
|
78
|
+
}, _scrollOrigin_initializers, _scrollOrigin_extraInitializers);
|
|
79
|
+
__esDecorate(this, null, _hideOnScroll_decorators, {
|
|
80
|
+
kind: "accessor",
|
|
81
|
+
name: "hideOnScroll",
|
|
82
|
+
static: false,
|
|
83
|
+
private: false,
|
|
84
|
+
access: {
|
|
85
|
+
has: (obj) => "hideOnScroll" in obj,
|
|
86
|
+
get: (obj) => obj.hideOnScroll,
|
|
87
|
+
set: (obj, value) => {
|
|
88
|
+
obj.hideOnScroll = value;
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
metadata: _metadata
|
|
92
|
+
}, _hideOnScroll_initializers, _hideOnScroll_extraInitializers);
|
|
93
|
+
__esDecorate(this, null, _size_decorators, {
|
|
94
|
+
kind: "accessor",
|
|
95
|
+
name: "size",
|
|
96
|
+
static: false,
|
|
97
|
+
private: false,
|
|
98
|
+
access: {
|
|
99
|
+
has: (obj) => "size" in obj,
|
|
100
|
+
get: (obj) => obj.size,
|
|
101
|
+
set: (obj, value) => {
|
|
102
|
+
obj.size = value;
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
metadata: _metadata
|
|
106
|
+
}, _size_initializers, _size_extraInitializers);
|
|
107
|
+
__esDecorate(this, null, __headerOnTop_decorators, {
|
|
108
|
+
kind: "accessor",
|
|
109
|
+
name: "_headerOnTop",
|
|
110
|
+
static: false,
|
|
111
|
+
private: false,
|
|
112
|
+
access: {
|
|
113
|
+
has: (obj) => "_headerOnTop" in obj,
|
|
114
|
+
get: (obj) => obj._headerOnTop,
|
|
115
|
+
set: (obj, value) => {
|
|
116
|
+
obj._headerOnTop = value;
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
metadata: _metadata
|
|
120
|
+
}, __headerOnTop_initializers, __headerOnTop_extraInitializers);
|
|
121
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
122
|
+
enumerable: true,
|
|
123
|
+
configurable: true,
|
|
124
|
+
writable: true,
|
|
125
|
+
value: _metadata
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
static {
|
|
129
|
+
this.elementName = "sbb-header";
|
|
130
|
+
}
|
|
131
|
+
static {
|
|
132
|
+
this.styles = [unsafeCSS(header_default)];
|
|
133
|
+
}
|
|
134
|
+
static {
|
|
135
|
+
this._headerScrollOrigins = /* @__PURE__ */ new Set();
|
|
136
|
+
}
|
|
137
|
+
static {
|
|
138
|
+
this._headerElements = /* @__PURE__ */ new Set();
|
|
139
|
+
}
|
|
140
|
+
static {
|
|
141
|
+
if (!isServer) queueDomContentLoaded(() => this._initializeScrollOriginObserver());
|
|
142
|
+
}
|
|
143
|
+
#expanded_accessor_storage;
|
|
144
|
+
/**
|
|
145
|
+
* Whether to allow the header content to stretch to full width.
|
|
146
|
+
* By default, the content has the appropriate page size.
|
|
147
|
+
*/
|
|
148
|
+
get expanded() {
|
|
149
|
+
return this.#expanded_accessor_storage;
|
|
150
|
+
}
|
|
151
|
+
set expanded(value) {
|
|
152
|
+
this.#expanded_accessor_storage = value;
|
|
153
|
+
}
|
|
154
|
+
#scrollOrigin_accessor_storage;
|
|
155
|
+
/**
|
|
156
|
+
* The element's id or the element on which the scroll listener is attached.
|
|
157
|
+
*
|
|
158
|
+
* For attribute usage, provide an id reference.
|
|
159
|
+
*/
|
|
160
|
+
get scrollOrigin() {
|
|
161
|
+
return this.#scrollOrigin_accessor_storage;
|
|
162
|
+
}
|
|
163
|
+
set scrollOrigin(value) {
|
|
164
|
+
this.#scrollOrigin_accessor_storage = value;
|
|
165
|
+
}
|
|
166
|
+
#hideOnScroll_accessor_storage;
|
|
167
|
+
/** Whether the header should hide and show on scroll. */
|
|
168
|
+
get hideOnScroll() {
|
|
169
|
+
return this.#hideOnScroll_accessor_storage;
|
|
170
|
+
}
|
|
171
|
+
set hideOnScroll(value) {
|
|
172
|
+
this.#hideOnScroll_accessor_storage = value;
|
|
173
|
+
}
|
|
174
|
+
#size_accessor_storage;
|
|
175
|
+
/**
|
|
176
|
+
* Size of the header, either s (lean theme default) or m (standard theme default).
|
|
177
|
+
*/
|
|
178
|
+
get size() {
|
|
179
|
+
return this.#size_accessor_storage;
|
|
180
|
+
}
|
|
181
|
+
set size(value) {
|
|
182
|
+
this.#size_accessor_storage = value;
|
|
183
|
+
}
|
|
184
|
+
#_headerOnTop_accessor_storage;
|
|
185
|
+
get _headerOnTop() {
|
|
186
|
+
return this.#_headerOnTop_accessor_storage;
|
|
187
|
+
}
|
|
188
|
+
set _headerOnTop(value) {
|
|
189
|
+
this.#_headerOnTop_accessor_storage = value;
|
|
190
|
+
}
|
|
191
|
+
constructor() {
|
|
192
|
+
super();
|
|
193
|
+
this.#expanded_accessor_storage = __runInitializers(this, _expanded_initializers, false);
|
|
194
|
+
this.#scrollOrigin_accessor_storage = (__runInitializers(this, _expanded_extraInitializers), __runInitializers(this, _scrollOrigin_initializers, null));
|
|
195
|
+
this.#hideOnScroll_accessor_storage = (__runInitializers(this, _scrollOrigin_extraInitializers), __runInitializers(this, _hideOnScroll_initializers, false));
|
|
196
|
+
this.#size_accessor_storage = (__runInitializers(this, _hideOnScroll_extraInitializers), __runInitializers(this, _size_initializers, null));
|
|
197
|
+
this.#_headerOnTop_accessor_storage = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, __headerOnTop_initializers, true));
|
|
198
|
+
this._scrollElement = __runInitializers(this, __headerOnTop_extraInitializers);
|
|
199
|
+
this._lastScroll = 0;
|
|
200
|
+
this._scrollOriginFromObserver = null;
|
|
201
|
+
this.addController(new SbbFocusVisibleWithinController(this));
|
|
202
|
+
}
|
|
203
|
+
static _initializeScrollOriginObserver() {
|
|
204
|
+
new MutationObserver((mutations) => {
|
|
205
|
+
for (const mutation of mutations) if (mutation.type === "attributes") this._handleScrollOriginElement(mutation.target);
|
|
206
|
+
else if (mutation.type === "childList") for (const node of [...mutation.addedNodes, ...mutation.removedNodes].filter((n) => n.nodeType === n.ELEMENT_NODE)) {
|
|
207
|
+
this._handleScrollOriginElement(node);
|
|
208
|
+
this._findAndHandleScrollOrigins(node);
|
|
209
|
+
}
|
|
210
|
+
this._updateHeaderElements();
|
|
211
|
+
}).observe(document.documentElement, {
|
|
212
|
+
attributeFilter: ["sbb-header-scroll-origin"],
|
|
213
|
+
childList: true,
|
|
214
|
+
subtree: true
|
|
215
|
+
});
|
|
216
|
+
this._findAndHandleScrollOrigins(document.body);
|
|
217
|
+
this._updateHeaderElements();
|
|
218
|
+
}
|
|
219
|
+
static _findAndHandleScrollOrigins(root) {
|
|
220
|
+
root.querySelectorAll("[sbb-header-scroll-origin]").forEach((e) => this._handleScrollOriginElement(e));
|
|
221
|
+
}
|
|
222
|
+
static _handleScrollOriginElement(element) {
|
|
223
|
+
if (element.isConnected && element.hasAttribute("sbb-header-scroll-origin")) this._headerScrollOrigins.add(element);
|
|
224
|
+
else this._headerScrollOrigins.delete(element);
|
|
225
|
+
}
|
|
226
|
+
static _updateHeaderElements() {
|
|
227
|
+
for (const header of this._headerElements) {
|
|
228
|
+
if (this._headerScrollOrigins.size === 0) header._scrollOriginFromObserver = null;
|
|
229
|
+
else if (this._headerScrollOrigins.size === 1) header._scrollOriginFromObserver = this._headerScrollOrigins.values().next().value ?? null;
|
|
230
|
+
else header._scrollOriginFromObserver = Array.from(this._headerScrollOrigins).sort((c1, c2) => c1.compareDocumentPosition(c2) & Node.DOCUMENT_POSITION_CONTAINS).at(-1) ?? null;
|
|
231
|
+
header._updateScrollListener();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/** If `hideOnScroll` is set, checks the element to hook the listener on, and possibly add it.*/
|
|
235
|
+
connectedCallback() {
|
|
236
|
+
super.connectedCallback();
|
|
237
|
+
SbbHeaderElement._headerElements.add(this);
|
|
238
|
+
if (this.hasUpdated) this._updateScrollListener();
|
|
239
|
+
}
|
|
240
|
+
/** Removes the scroll listener, if previously attached. */
|
|
241
|
+
disconnectedCallback() {
|
|
242
|
+
super.disconnectedCallback();
|
|
243
|
+
this._scrollElement = null;
|
|
244
|
+
this._scrollEventsController?.abort();
|
|
245
|
+
SbbHeaderElement._headerElements.delete(this);
|
|
246
|
+
}
|
|
247
|
+
requestUpdate(name, oldValue, options) {
|
|
248
|
+
super.requestUpdate(name, oldValue, options);
|
|
249
|
+
if (!isServer && (!name || name === "scrollOrigin") && this.hasUpdated) this._updateScrollListener();
|
|
250
|
+
}
|
|
251
|
+
firstUpdated(changedProperties) {
|
|
252
|
+
super.firstUpdated(changedProperties);
|
|
253
|
+
this._updateScrollListener();
|
|
254
|
+
}
|
|
255
|
+
_updateScrollListener() {
|
|
256
|
+
const scrollElement = this.scrollOrigin ?? this._scrollOriginFromObserver ?? document;
|
|
257
|
+
if (scrollElement === this._scrollElement) return;
|
|
258
|
+
this._scrollEventsController?.abort();
|
|
259
|
+
this._scrollElement = scrollElement;
|
|
260
|
+
if (!this._scrollElement) return;
|
|
261
|
+
this._scrollEventsController = new AbortController();
|
|
262
|
+
this._scrollFunction = this._getScrollFunction.bind(this);
|
|
263
|
+
this._scrollElement.addEventListener("scroll", this._scrollFunction, {
|
|
264
|
+
passive: true,
|
|
265
|
+
signal: this._scrollEventsController.signal
|
|
266
|
+
});
|
|
267
|
+
const currentScroll = this._getCurrentScrollProperty("scrollTop");
|
|
268
|
+
this._lastScroll = currentScroll <= 0 ? 0 : currentScroll;
|
|
269
|
+
}
|
|
270
|
+
/** Returns the correct function to attach on scroll. */
|
|
271
|
+
_getScrollFunction() {
|
|
272
|
+
return this.hideOnScroll ? this._scrollListener() : this._scrollShadowListener();
|
|
273
|
+
}
|
|
274
|
+
/** Returns the requested property of the scrollContext. */
|
|
275
|
+
_getCurrentScrollProperty(property) {
|
|
276
|
+
if (this._scrollElement instanceof Document) return this._scrollElement.documentElement[property] || this._scrollElement.body[property];
|
|
277
|
+
return this._scrollElement?.[property] || 0;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Sets the correct value for `scrollTop`, then:
|
|
281
|
+
* - apply the shadow if the element/document has been scrolled down;
|
|
282
|
+
* - hides the header, remove the shadow and possibly close any open menu on the header if it is not visible anymore;
|
|
283
|
+
* - shows the header and re-apply the shadow if the element/document has been scrolled up.
|
|
284
|
+
*/
|
|
285
|
+
_scrollListener() {
|
|
286
|
+
const currentScroll = this._getCurrentScrollProperty("scrollTop");
|
|
287
|
+
if (this._getCurrentScrollProperty("scrollHeight") - window.innerHeight - currentScroll <= 0) return;
|
|
288
|
+
this.toggleState("shadow", currentScroll !== 0);
|
|
289
|
+
if (currentScroll > this.offsetHeight && currentScroll > 0 && this._lastScroll < currentScroll) this._closeOpenOverlays();
|
|
290
|
+
if (currentScroll > this.offsetHeight * 2) {
|
|
291
|
+
this._headerOnTop = false;
|
|
292
|
+
if (currentScroll > 0 && this._lastScroll < currentScroll) ["shadow", "visible"].forEach((name) => this.internals.states.delete(name));
|
|
293
|
+
else [
|
|
294
|
+
"fixed",
|
|
295
|
+
"shadow",
|
|
296
|
+
"animated",
|
|
297
|
+
"visible"
|
|
298
|
+
].forEach((name) => this.internals.states.add(name));
|
|
299
|
+
} else {
|
|
300
|
+
if (currentScroll === 0) this._headerOnTop = true;
|
|
301
|
+
if (this._headerOnTop) [
|
|
302
|
+
"shadow",
|
|
303
|
+
"animated",
|
|
304
|
+
"fixed",
|
|
305
|
+
"visible"
|
|
306
|
+
].forEach((name) => this.internals.states.delete(name));
|
|
307
|
+
}
|
|
308
|
+
this._lastScroll = currentScroll <= 0 ? 0 : currentScroll;
|
|
309
|
+
}
|
|
310
|
+
/** Apply the shadow if the element/document has been scrolled down. */
|
|
311
|
+
_scrollShadowListener() {
|
|
312
|
+
this.toggleState("shadow", this._getCurrentScrollProperty("scrollTop") !== 0);
|
|
313
|
+
}
|
|
314
|
+
_closeOpenOverlays() {
|
|
315
|
+
if (this.matches(":is(:state(has-visible-focus-within),[state--has-visible-focus-within])")) return;
|
|
316
|
+
const overlayTriggers = Array.from(this.querySelectorAll(IS_MENU_OPENED_QUERY));
|
|
317
|
+
for (const overlayTrigger of overlayTriggers) {
|
|
318
|
+
const overlay = overlayTrigger.ariaControlsElements[0];
|
|
319
|
+
if (typeof overlay?.close === "function") overlay.close();
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
render() {
|
|
323
|
+
return html`
|
|
324
|
+
<header class="sbb-header">
|
|
325
|
+
<div class="sbb-header__wrapper">
|
|
326
|
+
<slot></slot>
|
|
327
|
+
</div>
|
|
328
|
+
</header>
|
|
329
|
+
`;
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
})();
|
|
333
|
+
//#endregion
|
|
334
|
+
export { SbbHeaderElement as t };
|
|
335
|
+
|
|
336
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC1GVndfNU5SVC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvaGVhZGVyL2hlYWRlci9oZWFkZXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvaGVhZGVyL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItbG9nby1oZWlnaHQ6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxNil9O1xuICAtLXNiYi1zaWduZXQtaGVpZ2h0OiAje3NiYi5weC10by1yZW0tYnVpbGQoMTYpfTtcbiAgLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTZ4KVxuICApO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAtLXNiYi1sb2dvLWhlaWdodDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDIwKX07XG4gICAgLS1zYmItc2lnbmV0LWhlaWdodDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDIwKX07XG4gIH1cblxuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBTZXR0aW5nIHRoZSBoZWlnaHQgaGVyZSByZXNlcnZlcyB0aGUgc3BhY2UgZm9yIHRoZSBoZWFkZXIgd2hpY2ggd2lsbCBlbHNlIGJlIGxvc3Qgd2l0aCBmaXhlZCBwb3NpdGlvbi5cbiAgaGVpZ2h0OiB2YXIoLS1zYmItaGVhZGVyLWhlaWdodCk7XG5cbiAgLy8gU2V0IHRoZSBsaW5lLWhlaWdodCBmb3IgYWRqYWNlbnQgZWxlbWVudHMgaW4gb3JkZXIgdG8gcHJldmVudCBmcm9tIGluZmx1ZW5jZSBvZiBhIGNvbnN1bWVyLXNldCBsaW5lLWhlaWdodC5cbiAgbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKHZhcigtLXNiYi1oZWFkZXItaGVpZ2h0KSArIHZhcigtLXNiYi1oZWFkZXItcGFkZGluZy1ibG9jay1zdGFydCkpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLWhlYWRlci1oZWlnaHQ6IHZhcigtLXNiYi1oZWFkZXItaGVpZ2h0LXMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLWhlYWRlci1oZWlnaHQ6IHZhcigtLXNiYi1oZWFkZXItaGVpZ2h0LW0pO1xufVxuXG46aG9zdChbaGlkZS1vbi1zY3JvbGxdKSB7XG4gIC0tc2JiLWhlYWRlci1wb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbjpob3N0KFtoaWRlLW9uLXNjcm9sbF06c3RhdGUoZml4ZWQpKSB7XG4gIC0tc2JiLWhlYWRlci1wb3NpdGlvbjogZml4ZWQ7XG4gIC0tc2JiLWhlYWRlci1hbmltYXRpb24tbmFtZTogaGlkZTtcbiAgLS1zYmItaGVhZGVyLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAtLXNiYi1oZWFkZXItaW5zZXQtaW5saW5lLWVuZDogdmFyKC0tc2JiLXNjcm9sbGJhci13aWR0aCwgMCk7XG59XG5cbjpob3N0KFtoaWRlLW9uLXNjcm9sbF06c3RhdGUoZml4ZWQpOnN0YXRlKGFuaW1hdGVkKSkge1xuICAvLyBIaWRlIHRyYW5zaXRpb25cbiAgLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tdGltaW5nOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcbn1cblxuOmhvc3QoW2hpZGUtb24tc2Nyb2xsXTpzdGF0ZShmaXhlZCk6c3RhdGUodmlzaWJsZSkpIHtcbiAgLS1zYmItaGVhZGVyLWFuaW1hdGlvbi1uYW1lOiBzaG93O1xuICAtLXNiYi1oZWFkZXItdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblxuICAvLyBTaG93IHRyYW5zaXRpb25cbiAgLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tdGltaW5nOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuOmhvc3QoW2hpZGUtb24tc2Nyb2xsXTpzdGF0ZShmaXhlZCk6c3RhdGUoaGFzLXZpc2libGUtZm9jdXMtd2l0aGluKSkge1xuICAtLXNiYi1oZWFkZXItdHJhbnNpdGlvbi1kdXJhdGlvbjogMDtcbiAgLS1zYmItaGVhZGVyLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zYmItaGVhZGVyIHtcbiAgcG9zaXRpb246IHZhcigtLXNiYi1oZWFkZXItcG9zaXRpb24pO1xuICBpbnNldDogMCB2YXIoLS1zYmItaGVhZGVyLWluc2V0LWlubGluZS1lbmQpIGF1dG8gMDtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tc2JiLWhlYWRlci1wYWRkaW5nLWJsb2NrLXN0YXJ0KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2JiLWhlYWRlci1iYWNrZ3JvdW5kKTtcbiAgei1pbmRleDogdmFyKC0tc2JiLWhlYWRlci16LWluZGV4LCAxMCk7XG4gIHRyYW5zZm9ybTogdmFyKC0tc2JiLWhlYWRlci10cmFuc2Zvcm0pO1xuICB0cmFuc2l0aW9uOiB7XG4gICAgcHJvcGVydHk6IGJveC1zaGFkb3c7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1oZWFkZXItdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItaGVhZGVyLXRyYW5zaXRpb24tdGltaW5nKTtcbiAgfVxuICBhbmltYXRpb246IHtcbiAgICBuYW1lOiB2YXIoLS1zYmItaGVhZGVyLWFuaW1hdGlvbi1uYW1lKTtcbiAgICBkdXJhdGlvbjogdmFyKC0tc2JiLWhlYWRlci10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1oZWFkZXItdHJhbnNpdGlvbi10aW1pbmcpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzaGFkb3cpLCA6c3RhdGUoaGFzLXZpc2libGUtZm9jdXMtd2l0aGluKTpzdGF0ZShmaXhlZCkpKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItaGVhZGVyLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICBib3JkZXItYmxvY2stZW5kOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICB9XG59XG5cbi5zYmItaGVhZGVyX193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBoZWlnaHQ6IHZhcigtLXNiYi1oZWFkZXItaGVpZ2h0KTtcblxuICA6aG9zdCg6bm90KFtleHBhbmRlZF0pKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIucGFnZS1zcGFjaW5nO1xuICB9XG5cbiAgOmhvc3QoW2V4cGFuZGVkXSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLnBhZ2Utc3BhY2luZy1leHBhbmRlZDtcbiAgfVxufVxuXG4vLyBGaXggbGVmdCBvZmZzZXQgaWYgZmlyc3QgZWxlbWVudCBvZiB0aGUgaGVhZGVyIGlzIGEgc2JiLWhlYWRlci1idXR0b24vc2JiLWhlYWRlci1saW5rLlxuLy8gVGhlIHZhbHVlIG9mIHRoZSBvZmZzZXQgaXMgY2FsY3VsYXRlZCBpbnNpZGUgc2JiLWhlYWRlci1idXR0b24vc2JiLWhlYWRlci1saW5rIHN0eWxlcy5cbjo6c2xvdHRlZCg6aXMoc2JiLWhlYWRlci1idXR0b24sIHNiYi1oZWFkZXItbGluayk6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2JiLWhlYWRlci1maXJzdC1pdGVtLW1hcmdpbi1pbmxpbmUtc3RhcnQpO1xufVxuXG46OnNsb3R0ZWQoKikge1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuOjpzbG90dGVkKC5zYmItaGVhZGVyLXNocmlua2FibGUpIHtcbiAgZmxleC1zaHJpbms6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuOjpzbG90dGVkKC5zYmItaGVhZGVyLXNwYWNlcikge1xuICBmbGV4LWdyb3c6IDE7XG59XG5cbjo6c2xvdHRlZCguc2JiLWhlYWRlci1sb2dvKSB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtcyk7XG59XG5cbi8vIEFwcGx5IHBhZGRpbmcgYW5kIG91dGxpbmUgdG8gcG9zc2libGUgc2xvdHRlZCBsaW5rIGluIGxvZ28gc2xvdFxuOjpzbG90dGVkKGEuc2JiLWhlYWRlci1sb2dvKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIFRvIHNob3cgdGhlIGNvcnJlY3Qgb3V0bGluZSwgd2UgbmVlZCB0byBzcGFuIGEgaGlkZGVuIGVsZW1lbnQgZmlsbGluZyB0aGUgbGluayBidXQgd2l0aG91dCB0aGUgb3V0bGluZS1vZmZzZXQuXG46OnNsb3R0ZWQoYS5zYmItaGVhZGVyLWxvZ28pOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KSAwO1xufVxuXG46OnNsb3R0ZWQoYS5zYmItaGVhZGVyLWxvZ286Zm9jdXMtdmlzaWJsZSk6OmJlZm9yZSB7XG4gIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG5cbiAgLy8gQXMgaWYgdGhlIG91dGxpbmUgaGFzIGFuIG9mZnNldCwgdGhlIGJvcmRlciByYWRpdXMgaW5jcmVhc2VzLCB3ZSBzZXQgaXQgdG8gdGhlIHNtYWxsZXN0IHBvc3NpYmxlIGJvcmRlci1yYWRpdXMuXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cblxuQGtleWZyYW1lcyBzaG93IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGhpZGUge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGZvcmNlVHlwZSxcbiAgaWRSZWZlcmVuY2UsXG4gIHF1ZXVlRG9tQ29udGVudExvYWRlZCxcbiAgU2JiRWxlbWVudCxcbiAgU2JiRm9jdXNWaXNpYmxlV2l0aGluQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2hlYWRlci5zY3NzP2lubGluZSc7XG5cbmNvbnN0IElTX01FTlVfT1BFTkVEX1FVRVJZID0gXCJbYXJpYS1jb250cm9sc11bYXJpYS1leHBhbmRlZD0ndHJ1ZSddXCI7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBoZWFkZXIgc2VjdGlvbiBmb3IgdGhlIHBhZ2UuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYWN0aW9ucywgY29udGVudCBhbmQgbG9nbyB0byB0aGUgaGVhZGVyLlxuICogQGNzc3Byb3AgWy0tc2JiLWhlYWRlci16LWluZGV4PTEwXSAtIENhbiBiZSB1c2VkIHRvIG1vZGlmeSB0aGUgei1pbmRleCBvZiB0aGUgaGVhZGVyLlxuICogQGNzc3Byb3AgWy0tc2JiLWhlYWRlci1oZWlnaHQ9emVyby1zbWFsbDp2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xNHgpO2xhcmdlLXVsdHJhOnZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTI0eCldIC0gQ2FuIGJlIHVzZWQgdG8gbW9kaWZ5IGhlaWdodCBvZiB0aGUgaGVhZGVyLlxuICogQGNzc3Byb3AgWy0tc2JiLWhlYWRlci1wYWRkaW5nLWJsb2NrLXN0YXJ0OmVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwKV0gLSBEZWZpbmVzIHRoZSBoZWFkZXIncyBwYWRkaW5nLWJsb2NrLXN0YXJ0LiBJdCBkZWZhdWx0cyB0byB0aGUgZGV2aWNlJ3Mgc2FmZS1hcmVhIGluc2V0IHRvIHByZXZlbnQgdGhlIGhlYWRlciBmcm9tIGJlaW5nIG9ic2N1cmVkIGJ5IGRpc3BsYXkgY3V0b3V0cyBvciBzeXN0ZW0gVUkgZWxlbWVudHMuIFRoaXMgdmFyaWFibGUgbXVzdCBiZSBzZXQgb24gdGhlIHJvb3QgZG9jdW1lbnQgZWxlbWVudCAoYDxodG1sPmApIHNvIHRoYXQgY29tcG9uZW50cyByZWx5aW5nIG9uIHRoZSBoZWFkZXIncyBoZWlnaHQgY2FuIGNhbGN1bGF0ZSB0aGVpciBsYXlvdXQgY29ycmVjdGx5LlxuICogQGNzc3Byb3AgWy0tc2JiLWhlYWRlci12ZXJ0aWNhbC1zcGFjaW5nXSAtIFJlYWRvbmx5OyBzdW0gb2YgdmFyKC0tc2JiLWhlYWRlci1oZWlnaHQpIGFuZCB2YXIoLS1zYmItaGVhZGVyLXBhZGRpbmctYmxvY2stc3RhcnQpIHRoYXQgY2FuIGJlIHVzZWQgdG8gbWFuYWdlIHNwYWNpbmcgb2YgYWJzb2x1dGUgcG9zaXRpb25lZCBlbGVtZW50cyB0aGF0IHNob3VsZG4ndCBvdmVybGFwIHRoZSBoZWFkZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJIZWFkZXJFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItaGVhZGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgc3RhdGljIF9oZWFkZXJTY3JvbGxPcmlnaW5zID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbiAgcHJpdmF0ZSBzdGF0aWMgX2hlYWRlckVsZW1lbnRzID0gbmV3IFNldDxTYmJIZWFkZXJFbGVtZW50PigpO1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplU2Nyb2xsT3JpZ2luT2JzZXJ2ZXIoKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIGhlYWRlciBjb250ZW50IHRvIHN0cmV0Y2ggdG8gZnVsbCB3aWR0aC5cbiAgICogQnkgZGVmYXVsdCwgdGhlIGNvbnRlbnQgaGFzIHRoZSBhcHByb3ByaWF0ZSBwYWdlIHNpemUuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQncyBpZCBvciB0aGUgZWxlbWVudCBvbiB3aGljaCB0aGUgc2Nyb2xsIGxpc3RlbmVyIGlzIGF0dGFjaGVkLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3Njcm9sbC1vcmlnaW4nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzY3JvbGxPcmlnaW46IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGhlYWRlciBzaG91bGQgaGlkZSBhbmQgc2hvdyBvbiBzY3JvbGwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLW9uLXNjcm9sbCcsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGVPblNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBoZWFkZXIsIGVpdGhlciBzIChsZWFuIHRoZW1lIGRlZmF1bHQpIG9yIG0gKHN0YW5kYXJkIHRoZW1lIGRlZmF1bHQpLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbCA9IG51bGw7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaGVhZGVyT25Ub3AgPSB0cnVlO1xuXG4gIHByaXZhdGUgX3Njcm9sbEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9zY3JvbGxFdmVudHNDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9zY3JvbGxGdW5jdGlvbjogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9sYXN0U2Nyb2xsID0gMDtcbiAgcHJpdmF0ZSBfc2Nyb2xsT3JpZ2luRnJvbU9ic2VydmVyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkQ29udHJvbGxlcihuZXcgU2JiRm9jdXNWaXNpYmxlV2l0aGluQ29udHJvbGxlcih0aGlzKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfaW5pdGlhbGl6ZVNjcm9sbE9yaWdpbk9ic2VydmVyKCk6IHZvaWQge1xuICAgIC8vIFdlIGFyZSB1c2luZyBNdXRhdGlvbk9ic2VydmVyIGRpcmVjdGx5IGhlcmUsIGFzIGl0IHdpbGwgb25seSBiZSBjYWxsZWQgb24gY2xpZW50IHNpZGUsXG4gICAgLy8gYW5kIHdlIGRvIG5vdCBuZWVkIHRvIGRpc2Nvbm5lY3QgaXQsIGFzIHdlIHdhbnQgaXQgdG8gd29yayBkdXJpbmcgdGhlIGZ1bGwgbGlmZXRpbWVcbiAgICAvLyBvZiB0aGUgcGFnZS5cbiAgICBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgICAgdGhpcy5faGFuZGxlU2Nyb2xsT3JpZ2luRWxlbWVudChtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdLmZpbHRlcihcbiAgICAgICAgICAgIChuKTogbiBpcyBIVE1MRWxlbWVudCA9PiBuLm5vZGVUeXBlID09PSBuLkVMRU1FTlRfTk9ERSxcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVTY3JvbGxPcmlnaW5FbGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgdGhpcy5fZmluZEFuZEhhbmRsZVNjcm9sbE9yaWdpbnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLl91cGRhdGVIZWFkZXJFbGVtZW50cygpO1xuICAgIH0pLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB7XG4gICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnc2JiLWhlYWRlci1zY3JvbGwtb3JpZ2luJ10sXG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVTY3JvbGxPcmlnaW5zKGRvY3VtZW50LmJvZHkpO1xuICAgIHRoaXMuX3VwZGF0ZUhlYWRlckVsZW1lbnRzKCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfZmluZEFuZEhhbmRsZVNjcm9sbE9yaWdpbnMocm9vdDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByb290XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tzYmItaGVhZGVyLXNjcm9sbC1vcmlnaW5dJylcbiAgICAgIC5mb3JFYWNoKChlKSA9PiB0aGlzLl9oYW5kbGVTY3JvbGxPcmlnaW5FbGVtZW50KGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVTY3JvbGxPcmlnaW5FbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKGVsZW1lbnQuaXNDb25uZWN0ZWQgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1oZWFkZXItc2Nyb2xsLW9yaWdpbicpKSB7XG4gICAgICB0aGlzLl9oZWFkZXJTY3JvbGxPcmlnaW5zLmFkZChlbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faGVhZGVyU2Nyb2xsT3JpZ2lucy5kZWxldGUoZWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX3VwZGF0ZUhlYWRlckVsZW1lbnRzKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgaGVhZGVyIG9mIHRoaXMuX2hlYWRlckVsZW1lbnRzKSB7XG4gICAgICBpZiAodGhpcy5faGVhZGVyU2Nyb2xsT3JpZ2lucy5zaXplID09PSAwKSB7XG4gICAgICAgIGhlYWRlci5fc2Nyb2xsT3JpZ2luRnJvbU9ic2VydmVyID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faGVhZGVyU2Nyb2xsT3JpZ2lucy5zaXplID09PSAxKSB7XG4gICAgICAgIGhlYWRlci5fc2Nyb2xsT3JpZ2luRnJvbU9ic2VydmVyID0gdGhpcy5faGVhZGVyU2Nyb2xsT3JpZ2lucy52YWx1ZXMoKS5uZXh0KCkudmFsdWUgPz8gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhlYWRlci5fc2Nyb2xsT3JpZ2luRnJvbU9ic2VydmVyID1cbiAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuX2hlYWRlclNjcm9sbE9yaWdpbnMpXG4gICAgICAgICAgICAuc29ydCgoYzEsIGMyKSA9PiBjMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjMikgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TKVxuICAgICAgICAgICAgLmF0KC0xKSA/PyBudWxsO1xuICAgICAgfVxuICAgICAgaGVhZGVyLl91cGRhdGVTY3JvbGxMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiBgaGlkZU9uU2Nyb2xsYCBpcyBzZXQsIGNoZWNrcyB0aGUgZWxlbWVudCB0byBob29rIHRoZSBsaXN0ZW5lciBvbiwgYW5kIHBvc3NpYmx5IGFkZCBpdC4qL1xuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBTYmJIZWFkZXJFbGVtZW50Ll9oZWFkZXJFbGVtZW50cy5hZGQodGhpcyk7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVtb3ZlcyB0aGUgc2Nyb2xsIGxpc3RlbmVyLCBpZiBwcmV2aW91c2x5IGF0dGFjaGVkLiAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9zY3JvbGxFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl9zY3JvbGxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIFNiYkhlYWRlckVsZW1lbnQuX2hlYWRlckVsZW1lbnRzLmRlbGV0ZSh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAoIW5hbWUgfHwgbmFtZSA9PT0gJ3Njcm9sbE9yaWdpbicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fdXBkYXRlU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fdXBkYXRlU2Nyb2xsTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNjcm9sbExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSB0aGlzLnNjcm9sbE9yaWdpbiA/PyB0aGlzLl9zY3JvbGxPcmlnaW5Gcm9tT2JzZXJ2ZXIgPz8gZG9jdW1lbnQ7XG4gICAgaWYgKHNjcm9sbEVsZW1lbnQgPT09IHRoaXMuX3Njcm9sbEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zY3JvbGxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQgPSBzY3JvbGxFbGVtZW50O1xuICAgIGlmICghdGhpcy5fc2Nyb2xsRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9zY3JvbGxFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX3Njcm9sbEZ1bmN0aW9uID0gdGhpcy5fZ2V0U2Nyb2xsRnVuY3Rpb24uYmluZCh0aGlzKTtcbiAgICB0aGlzLl9zY3JvbGxFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuX3Njcm9sbEZ1bmN0aW9uLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9zY3JvbGxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSB0aGlzLl9nZXRDdXJyZW50U2Nyb2xsUHJvcGVydHkoJ3Njcm9sbFRvcCcpO1xuICAgIC8vIGBjdXJyZW50U2Nyb2xsYCBjYW4gYmUgbmVnYXRpdmUsIGUuZy4gb24gbW9iaWxlOyB0aGlzIGlzIG5vdCBhbGxvd2VkLlxuICAgIHRoaXMuX2xhc3RTY3JvbGwgPSBjdXJyZW50U2Nyb2xsIDw9IDAgPyAwIDogY3VycmVudFNjcm9sbDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBjb3JyZWN0IGZ1bmN0aW9uIHRvIGF0dGFjaCBvbiBzY3JvbGwuICovXG4gIHByaXZhdGUgX2dldFNjcm9sbEZ1bmN0aW9uKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmhpZGVPblNjcm9sbCA/IHRoaXMuX3Njcm9sbExpc3RlbmVyKCkgOiB0aGlzLl9zY3JvbGxTaGFkb3dMaXN0ZW5lcigpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIHJlcXVlc3RlZCBwcm9wZXJ0eSBvZiB0aGUgc2Nyb2xsQ29udGV4dC4gKi9cbiAgcHJpdmF0ZSBfZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KHByb3BlcnR5OiAnc2Nyb2xsVG9wJyB8ICdzY3JvbGxIZWlnaHQnKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5fc2Nyb2xsRWxlbWVudCBpbnN0YW5jZW9mIERvY3VtZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2Nyb2xsRWxlbWVudC5kb2N1bWVudEVsZW1lbnRbcHJvcGVydHldIHx8IHRoaXMuX3Njcm9sbEVsZW1lbnQuYm9keVtwcm9wZXJ0eV07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50Py5bcHJvcGVydHldIHx8IDA7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29ycmVjdCB2YWx1ZSBmb3IgYHNjcm9sbFRvcGAsIHRoZW46XG4gICAqIC0gYXBwbHkgdGhlIHNoYWRvdyBpZiB0aGUgZWxlbWVudC9kb2N1bWVudCBoYXMgYmVlbiBzY3JvbGxlZCBkb3duO1xuICAgKiAtIGhpZGVzIHRoZSBoZWFkZXIsIHJlbW92ZSB0aGUgc2hhZG93IGFuZCBwb3NzaWJseSBjbG9zZSBhbnkgb3BlbiBtZW51IG9uIHRoZSBoZWFkZXIgaWYgaXQgaXMgbm90IHZpc2libGUgYW55bW9yZTtcbiAgICogLSBzaG93cyB0aGUgaGVhZGVyIGFuZCByZS1hcHBseSB0aGUgc2hhZG93IGlmIHRoZSBlbGVtZW50L2RvY3VtZW50IGhhcyBiZWVuIHNjcm9sbGVkIHVwLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2Nyb2xsTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFNjcm9sbCA9IHRoaXMuX2dldEN1cnJlbnRTY3JvbGxQcm9wZXJ0eSgnc2Nyb2xsVG9wJyk7XG5cbiAgICAvLyBXaGV0aGVyIHRoZSBzY3JvbGwgdmlldyBpcyBib3VuY2luZyBwYXN0IHRoZSBlZGdlIG9mIGNvbnRlbnQgYW5kIGJhY2sgYWdhaW4uXG4gICAgaWYgKHRoaXMuX2dldEN1cnJlbnRTY3JvbGxQcm9wZXJ0eSgnc2Nyb2xsSGVpZ2h0JykgLSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBjdXJyZW50U2Nyb2xsIDw9IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdzaGFkb3cnLCBjdXJyZW50U2Nyb2xsICE9PSAwKTtcblxuICAgIC8vIENsb3NlIG9wZW4gb3ZlcmxheXMgd2hlbiBzY3JvbGxpbmcgZG93biBpZiB0aGUgaGVhZGVyIGlzIHNjcm9sbGVkIG91dCBvZiBzaWdodC5cbiAgICBpZiAoXG4gICAgICBjdXJyZW50U2Nyb2xsID4gdGhpcy5vZmZzZXRIZWlnaHQgJiZcbiAgICAgIGN1cnJlbnRTY3JvbGwgPiAwICYmXG4gICAgICB0aGlzLl9sYXN0U2Nyb2xsIDwgY3VycmVudFNjcm9sbFxuICAgICkge1xuICAgICAgdGhpcy5fY2xvc2VPcGVuT3ZlcmxheXMoKTtcbiAgICB9XG4gICAgLy8gQ2hlY2sgaWYgdGhlIGhlYWRlciBpcyBzY3JvbGxlZCBvdXQgb2Ygc2lnaHQsIHNjcm9sbCBwb3NpdGlvbiA+IGhlYWRlciBoZWlnaHQgKiAyLlxuICAgIGlmIChjdXJyZW50U2Nyb2xsID4gdGhpcy5vZmZzZXRIZWlnaHQgKiAyKSB7XG4gICAgICB0aGlzLl9oZWFkZXJPblRvcCA9IGZhbHNlO1xuICAgICAgaWYgKGN1cnJlbnRTY3JvbGwgPiAwICYmIHRoaXMuX2xhc3RTY3JvbGwgPCBjdXJyZW50U2Nyb2xsKSB7XG4gICAgICAgIC8vIFNjcm9sbGluZyBkb3duXG4gICAgICAgIFsnc2hhZG93JywgJ3Zpc2libGUnXS5mb3JFYWNoKChuYW1lKSA9PiB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKG5hbWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNjcm9sbGluZyB1cFxuICAgICAgICBbJ2ZpeGVkJywgJ3NoYWRvdycsICdhbmltYXRlZCcsICd2aXNpYmxlJ10uZm9yRWFjaCgobmFtZSkgPT5cbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKG5hbWUpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDaGVjayBpZiBoZWFkZXIgaW4gaXRzIG9yaWdpbmFsIHBvc2l0aW9uLCBzY3JvbGwgcG9zaXRpb24gPCBoZWFkZXIgaGVpZ2h0LlxuICAgICAgLy8gUmVzZXQgaGVhZGVyIGJlaGF2aW9yIHdoZW4gc2Nyb2xsIGhpdHMgdG9wIG9mIHRoZSBwYWdlLCBvbiBzY3JvbGwgcG9zaXRpb24gPSAwLlxuICAgICAgaWYgKGN1cnJlbnRTY3JvbGwgPT09IDApIHtcbiAgICAgICAgdGhpcy5faGVhZGVyT25Ub3AgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX2hlYWRlck9uVG9wKSB7XG4gICAgICAgIFsnc2hhZG93JywgJ2FuaW1hdGVkJywgJ2ZpeGVkJywgJ3Zpc2libGUnXS5mb3JFYWNoKChuYW1lKSA9PlxuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUobmFtZSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGBjdXJyZW50U2Nyb2xsYCBjYW4gYmUgbmVnYXRpdmUsIGUuZy4gb24gbW9iaWxlOyB0aGlzIGlzIG5vdCBhbGxvd2VkLlxuICAgIHRoaXMuX2xhc3RTY3JvbGwgPSBjdXJyZW50U2Nyb2xsIDw9IDAgPyAwIDogY3VycmVudFNjcm9sbDtcbiAgfVxuXG4gIC8qKiBBcHBseSB0aGUgc2hhZG93IGlmIHRoZSBlbGVtZW50L2RvY3VtZW50IGhhcyBiZWVuIHNjcm9sbGVkIGRvd24uICovXG4gIHByaXZhdGUgX3Njcm9sbFNoYWRvd0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ3NoYWRvdycsIHRoaXMuX2dldEN1cnJlbnRTY3JvbGxQcm9wZXJ0eSgnc2Nyb2xsVG9wJykgIT09IDApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPcGVuT3ZlcmxheXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWF0Y2hlcygnOnN0YXRlKGhhcy12aXNpYmxlLWZvY3VzLXdpdGhpbiknKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvdmVybGF5VHJpZ2dlcnM6IEhUTUxFbGVtZW50W10gPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKElTX01FTlVfT1BFTkVEX1FVRVJZKSBhcyBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PixcbiAgICApO1xuICAgIGZvciAoY29uc3Qgb3ZlcmxheVRyaWdnZXIgb2Ygb3ZlcmxheVRyaWdnZXJzKSB7XG4gICAgICBjb25zdCBvdmVybGF5ID0gb3ZlcmxheVRyaWdnZXIuYXJpYUNvbnRyb2xzRWxlbWVudHMhWzBdIGFzIEhUTUxFbGVtZW50ICYge1xuICAgICAgICBjbG9zZTogKCkgPT4gdm9pZDtcbiAgICAgIH07XG4gICAgICBpZiAodHlwZW9mIG92ZXJsYXk/LmNsb3NlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG92ZXJsYXkuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJzYmItaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItaGVhZGVyX193cmFwcGVyXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaGVhZGVyPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1oZWFkZXInOiBTYmJIZWFkZXJFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FDcUJBLElBQU0sdUJBQXVCOzs7Ozs7Ozs7O0lBV2hCLDBCQUFnQjttQkFBUzs7Ozs7Ozs7Ozs7Ozs7OztjQUF6Qix5QkFBeUIsWUFBVTs7OzJCQW1CN0MsVUFBUyxHQUNULFNBQVM7SUFBRSxTQUFTO0lBQU0sTUFBTTtHQUFPLENBQUUsQ0FBQzsrQkFRMUMsWUFBVyxHQUNYLFNBQVMsRUFBRSxXQUFXLGdCQUFlLENBQUUsQ0FBQzsrQkFJeEMsVUFBUyxHQUNULFNBQVM7SUFBRSxXQUFXO0lBQWtCLFNBQVM7SUFBTSxNQUFNO0dBQU8sQ0FBRSxDQUFDO3VCQU12RSxTQUFTLEVBQUUsU0FBUyxLQUFJLENBQUUsQ0FBQzsrQkFFM0IsTUFBSyxDQUFFO0dBckJSLGFBQUEsTUFBQSxNQUFBLHNCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsY0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFRLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBUixXQUFRO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLHdCQUFBLDJCQUFBO0dBU3hCLGFBQUEsTUFBQSxNQUFBLDBCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsa0JBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBWSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVosZUFBWTtLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSw0QkFBQSwrQkFBQTtHQUs1QixhQUFBLE1BQUEsTUFBQSwwQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGtCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVksTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFaLGVBQVk7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsNEJBQUEsK0JBQUE7R0FLQyxhQUFBLE1BQUEsTUFBQSxrQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFVBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBSSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQUosT0FBSTtLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSxvQkFBQSx1QkFBQTtHQUV4QyxhQUFBLE1BQUEsTUFBQSwwQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGtCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWlCO0tBQVksTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFaLGVBQVk7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsNEJBQUEsK0JBQUE7Ozs7Ozs7OztHQXpDTixLQUFBLGNBQXNCO0VBQWE7O0dBQzVDLEtBQUEsU0FBeUIsQ0FBQyxVQUFVLGNBQUssQ0FBQztFQUFFOztHQUVwRCxLQUFBLHVDQUF1QixJQUFJLElBQUc7RUFBZ0I7O0dBQzlDLEtBQUEsa0NBQWtCLElBQUksSUFBRztFQUFxQjtFQUU3RDtHQUNFLElBQUksQ0FBQyxVQUdILDRCQUE0QixLQUFLLGdDQUErQixDQUFFO0VBRXRFO0VBUUE7Ozs7O0VBQUEsSUFBZ0IsV0FBUTtHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQXhCLElBQWdCLFNBQVEsT0FBQTtHQUFBLEtBQUEsNkJBQUE7RUFBQTtFQVN4Qjs7Ozs7O0VBQUEsSUFBZ0IsZUFBWTtHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQTVCLElBQWdCLGFBQVksT0FBQTtHQUFBLEtBQUEsaUNBQUE7RUFBQTtFQUs1Qjs7RUFBQSxJQUFnQixlQUFZO0dBQUEsT0FBQSxLQUFBO0VBQUE7RUFBNUIsSUFBZ0IsYUFBWSxPQUFBO0dBQUEsS0FBQSxpQ0FBQTtFQUFBO0VBS0M7Ozs7RUFBQSxJQUFnQixPQUFJO0dBQUEsT0FBQSxLQUFBO0VBQUE7RUFBcEIsSUFBZ0IsS0FBSSxPQUFBO0dBQUEsS0FBQSx5QkFBQTtFQUFBO0VBRXhDO0VBQUEsSUFBaUIsZUFBWTtHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQTdCLElBQWlCLGFBQVksT0FBQTtHQUFBLEtBQUEsaUNBQUE7RUFBQTtFQVF0QyxjQUFBO0dBQ0UsTUFBSztHQTlCUyxLQUFBLDZCQUFBLGtCQUFBLE1BQUEsd0JBQW9CLEtBQUs7R0FTekIsS0FBQSxrQ0FBQSxrQkFBQSxNQUFBLDJCQUFBLEdBQUEsa0JBQUEsTUFBQSw0QkFBbUMsSUFBSTtHQUt2QyxLQUFBLGtDQUFBLGtCQUFBLE1BQUEsK0JBQUEsR0FBQSxrQkFBQSxNQUFBLDRCQUF3QixLQUFLO0dBS0EsS0FBQSwwQkFBQSxrQkFBQSxNQUFBLCtCQUFBLEdBQUEsa0JBQUEsTUFBQSxvQkFBeUIsSUFBSTtHQUVoRCxLQUFBLGtDQUFBLGtCQUFBLE1BQUEsdUJBQUEsR0FBQSxrQkFBQSxNQUFBLDRCQUFlLElBQUk7R0FFckMsS0FBQSxpQkFBYyxrQkFBQSxNQUFBLCtCQUFBO0dBR2QsS0FBQSxjQUFjO0dBQ2QsS0FBQSw0QkFBZ0Q7R0FJdEQsS0FBSyxjQUFjLElBQUksZ0NBQWdDLElBQUksQ0FBQztFQUM5RDtFQUVRLE9BQU8sa0NBQStCO0dBSTVDLElBQUksa0JBQWtCLGNBQWE7SUFDakMsS0FBSyxNQUFNLFlBQVksV0FDckIsSUFBSSxTQUFTLFNBQVMsY0FDcEIsS0FBSywyQkFBMkIsU0FBUyxNQUFxQjtTQUN6RCxJQUFJLFNBQVMsU0FBUyxhQUMzQixLQUFLLE1BQU0sUUFBUSxDQUFDLEdBQUcsU0FBUyxZQUFZLEdBQUcsU0FBUyxZQUFZLEVBQUUsUUFDbkUsTUFBd0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxHQUNyRDtLQUNELEtBQUssMkJBQTJCLElBQUk7S0FDcEMsS0FBSyw0QkFBNEIsSUFBSTtJQUN2QztJQUdKLEtBQUssc0JBQXFCO0dBQzVCLENBQUMsRUFBRSxRQUFRLFNBQVMsaUJBQWlCO0lBQ25DLGlCQUFpQixDQUFDLDBCQUEwQjtJQUM1QyxXQUFXO0lBQ1gsU0FBUztJQUNWO0dBQ0QsS0FBSyw0QkFBNEIsU0FBUyxJQUFJO0dBQzlDLEtBQUssc0JBQXFCO0VBQzVCO0VBRVEsT0FBTyw0QkFBNEIsTUFBaUI7R0FDMUQsS0FDRyxpQkFBOEIsNEJBQTRCLEVBQzFELFNBQVMsTUFBTSxLQUFLLDJCQUEyQixDQUFDLENBQUM7RUFDdEQ7RUFFUSxPQUFPLDJCQUEyQixTQUFvQjtHQUM1RCxJQUFJLFFBQVEsZUFBZSxRQUFRLGFBQWEsMEJBQTBCLEdBQ3hFLEtBQUsscUJBQXFCLElBQUksT0FBTztRQUVyQyxLQUFLLHFCQUFxQixPQUFPLE9BQU87RUFFNUM7RUFFUSxPQUFPLHdCQUFxQjtHQUNsQyxLQUFLLE1BQU0sVUFBVSxLQUFLLGlCQUFpQjtJQUN6QyxJQUFJLEtBQUsscUJBQXFCLFNBQVMsR0FDckMsT0FBTyw0QkFBNEI7U0FDOUIsSUFBSSxLQUFLLHFCQUFxQixTQUFTLEdBQzVDLE9BQU8sNEJBQTRCLEtBQUsscUJBQXFCLE9BQU0sRUFBRyxLQUFJLEVBQUcsU0FBUztTQUV0RixPQUFPLDRCQUNMLE1BQU0sS0FBSyxLQUFLLG9CQUFvQixFQUNqQyxNQUFNLElBQUksT0FBTyxHQUFHLHdCQUF3QixFQUFFLElBQUksS0FBSywwQkFBMEIsRUFDakYsR0FBRyxFQUFFLEtBQUs7SUFFakIsT0FBTyxzQkFBcUI7R0FDOUI7RUFDRjs7RUFHZ0Isb0JBQWlCO0dBQy9CLE1BQU0sa0JBQWlCO0dBQ3ZCLGlCQUFpQixnQkFBZ0IsSUFBSSxJQUFJO0dBQ3pDLElBQUksS0FBSyxZQUNQLEtBQUssc0JBQXFCO0VBRTlCOztFQUdnQix1QkFBb0I7R0FDbEMsTUFBTSxxQkFBb0I7R0FDMUIsS0FBSyxpQkFBaUI7R0FDdEIsS0FBSyx5QkFBeUIsTUFBSztHQUNuQyxpQkFBaUIsZ0JBQWdCLE9BQU8sSUFBSTtFQUM5QztFQUVnQixjQUNkLE1BQ0EsVUFDQSxTQUE2QjtHQUU3QixNQUFNLGNBQWMsTUFBTSxVQUFVLE9BQU87R0FFM0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLFNBQVMsbUJBQW1CLEtBQUssWUFDMUQsS0FBSyxzQkFBcUI7RUFFOUI7RUFFbUIsYUFBYSxtQkFBdUM7R0FDckUsTUFBTSxhQUFhLGlCQUFpQjtHQUNwQyxLQUFLLHNCQUFxQjtFQUM1QjtFQUVRLHdCQUFxQjtHQUMzQixNQUFNLGdCQUFnQixLQUFLLGdCQUFnQixLQUFLLDZCQUE2QjtHQUM3RSxJQUFJLGtCQUFrQixLQUFLLGdCQUN6QjtHQUdGLEtBQUsseUJBQXlCLE1BQUs7R0FDbkMsS0FBSyxpQkFBaUI7R0FDdEIsSUFBSSxDQUFDLEtBQUssZ0JBQ1I7R0FFRixLQUFLLDBCQUEwQixJQUFJLGdCQUFlO0dBQ2xELEtBQUssa0JBQWtCLEtBQUssbUJBQW1CLEtBQUssSUFBSTtHQUN4RCxLQUFLLGVBQWUsaUJBQWlCLFVBQVUsS0FBSyxpQkFBaUI7SUFDbkUsU0FBUztJQUNULFFBQVEsS0FBSyx3QkFBd0I7SUFDdEM7R0FFRCxNQUFNLGdCQUFnQixLQUFLLDBCQUEwQixXQUFXO0dBRWhFLEtBQUssY0FBYyxpQkFBaUIsSUFBSSxJQUFJO0VBQzlDOztFQUdRLHFCQUFrQjtHQUN4QixPQUFPLEtBQUssZUFBZSxLQUFLLGdCQUFlLElBQUssS0FBSyxzQkFBcUI7RUFDaEY7O0VBR1EsMEJBQTBCLFVBQXNDO0dBQ3RFLElBQUksS0FBSywwQkFBMEIsVUFDakMsT0FBTyxLQUFLLGVBQWUsZ0JBQWdCLGFBQWEsS0FBSyxlQUFlLEtBQUs7R0FFbkYsT0FBTyxLQUFLLGlCQUFpQixhQUFhO0VBQzVDOzs7Ozs7O0VBUVEsa0JBQWU7R0FDckIsTUFBTSxnQkFBZ0IsS0FBSywwQkFBMEIsV0FBVztHQUdoRSxJQUFJLEtBQUssMEJBQTBCLGNBQWMsSUFBSSxPQUFPLGNBQWMsaUJBQWlCLEdBQ3pGO0dBR0YsS0FBSyxZQUFZLFVBQVUsa0JBQWtCLENBQUM7R0FHOUMsSUFDRSxnQkFBZ0IsS0FBSyxnQkFDckIsZ0JBQWdCLEtBQ2hCLEtBQUssY0FBYyxlQUVuQixLQUFLLG1CQUFrQjtHQUd6QixJQUFJLGdCQUFnQixLQUFLLGVBQWUsR0FBRztJQUN6QyxLQUFLLGVBQWU7SUFDcEIsSUFBSSxnQkFBZ0IsS0FBSyxLQUFLLGNBQWMsZUFFMUMsQ0FBQyxVQUFVLFNBQVMsRUFBRSxTQUFTLFNBQVMsS0FBSyxVQUFVLE9BQU8sT0FBTyxJQUFJLENBQUM7U0FHMUU7S0FBQztLQUFTO0tBQVU7S0FBWTtJQUFTLEVBQUUsU0FBUyxTQUNsRCxLQUFLLFVBQVUsT0FBTyxJQUFJLElBQUksQ0FBQztHQUdyQyxPQUFPO0lBR0wsSUFBSSxrQkFBa0IsR0FDcEIsS0FBSyxlQUFlO0lBRXRCLElBQUksS0FBSyxjQUNQO0tBQUM7S0FBVTtLQUFZO0tBQVM7SUFBUyxFQUFFLFNBQVMsU0FDbEQsS0FBSyxVQUFVLE9BQU8sT0FBTyxJQUFJLENBQUM7R0FHeEM7R0FFQSxLQUFLLGNBQWMsaUJBQWlCLElBQUksSUFBSTtFQUM5Qzs7RUFHUSx3QkFBcUI7R0FDM0IsS0FBSyxZQUFZLFVBQVUsS0FBSywwQkFBMEIsV0FBVyxNQUFNLENBQUM7RUFDOUU7RUFFUSxxQkFBa0I7R0FDeEIsSUFBSSxLQUFLLFFBQVEseUVBQWtDLEdBQ2pEO0dBRUYsTUFBTSxrQkFBaUMsTUFBTSxLQUMzQyxLQUFLLGlCQUFpQixvQkFBb0IsQ0FBNEI7R0FFeEUsS0FBSyxNQUFNLGtCQUFrQixpQkFBaUI7SUFDNUMsTUFBTSxVQUFVLGVBQWUscUJBQXNCO0lBR3JELElBQUksT0FBTyxTQUFTLFVBQVUsWUFDNUIsUUFBUSxNQUFLO0dBRWpCO0VBQ0Y7RUFFbUIsU0FBTTtHQUN2QixPQUFPLElBQUk7Ozs7Ozs7RUFPYiJ9
|
package/development/header.js
CHANGED
|
@@ -2,7 +2,7 @@ import { t as SbbHeaderActionCommonElementMixin } from "./header-action-common-D
|
|
|
2
2
|
import { SbbHeaderButtonElement } from "./header/header-button/header-button.component.js";
|
|
3
3
|
import { t as SbbHeaderEnvironmentElement } from "./header-environment.component--4YEZyKq.js";
|
|
4
4
|
import { SbbHeaderLinkElement } from "./header/header-link/header-link.component.js";
|
|
5
|
-
import { t as SbbHeaderElement } from "./header.component-
|
|
5
|
+
import { t as SbbHeaderElement } from "./header.component-FVw_5NRT.js";
|
|
6
6
|
import "./header.pure.js";
|
|
7
7
|
//#region src/elements/header.ts
|
|
8
8
|
/** @entrypoint */
|
|
@@ -2,5 +2,5 @@ import { t as SbbHeaderActionCommonElementMixin } from "./header-action-common-D
|
|
|
2
2
|
import { SbbHeaderButtonElement } from "./header/header-button/header-button.component.js";
|
|
3
3
|
import { t as SbbHeaderEnvironmentElement } from "./header-environment.component--4YEZyKq.js";
|
|
4
4
|
import { SbbHeaderLinkElement } from "./header/header-link/header-link.component.js";
|
|
5
|
-
import { t as SbbHeaderElement } from "./header.component-
|
|
5
|
+
import { t as SbbHeaderElement } from "./header.component-FVw_5NRT.js";
|
|
6
6
|
export { SbbHeaderActionCommonElementMixin, SbbHeaderButtonElement, SbbHeaderElement, SbbHeaderEnvironmentElement, SbbHeaderLinkElement };
|
|
@@ -5,7 +5,7 @@ import { SbbElement, SbbElementType } from '../core.ts';
|
|
|
5
5
|
*
|
|
6
6
|
* @slot - Use the unnamed slot to add content to the sidebar.
|
|
7
7
|
* @slot map - Used for slotting the map.
|
|
8
|
-
* @cssprop [--sbb-map-container-margin-start=var(--sbb-header-
|
|
8
|
+
* @cssprop [--sbb-map-container-margin-start=var(--sbb-header-vertical-spacing)] - The component
|
|
9
9
|
* comes along with a height calculation that subtracts the height of the header.
|
|
10
10
|
* For specific use cases, this variable can be used to modify the preset height.
|
|
11
11
|
* @cssprop [--sbb-map-container-sidebar-width=zero-large:400px;ultra:480px] - Can be used
|
|
@@ -13,7 +13,7 @@ import { SbbElement, SbbElementType } from '../core.ts';
|
|
|
13
13
|
* @cssprop [--sbb-map-container-mobile-sticky-block-start=0] - If e.g. a header with a fixed height
|
|
14
14
|
* is placed before the map-container, the map should be sticky respecting
|
|
15
15
|
* this offset from the document's top. Only applied on mobile views.
|
|
16
|
-
* Most commonly it can be set to `var(--sbb-header-
|
|
16
|
+
* Most commonly it can be set to `var(--sbb-header-vertical-spacing)`.
|
|
17
17
|
*/
|
|
18
18
|
export declare class SbbMapContainerElement extends SbbElement {
|
|
19
19
|
static readonly elementName: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbMapContainerElement } from "../map-container.component-
|
|
1
|
+
import { t as SbbMapContainerElement } from "../map-container.component-ASCfDs-R.js";
|
|
2
2
|
export { SbbMapContainerElement };
|