@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1777034920 → 5.0.0-next-dev.1777038043

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/core/styles/core.scss +24 -0
  2. package/core.css +66 -0
  3. package/development/navigation/common/navigation-action-common.js +1 -1
  4. package/development/navigation/navigation/navigation.component.js +1 -1
  5. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  6. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  7. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  8. package/development/navigation-action-common-BsrmO4QQ.js +92 -0
  9. package/development/navigation-list.component-CQ4q671G.js +90 -0
  10. package/development/navigation-marker.component-D7ks8vbC.js +121 -0
  11. package/development/navigation-section.component-t36xyaq4.js +346 -0
  12. package/development/navigation.component-Djm0PFOA.js +315 -0
  13. package/development/navigation.js +5 -5
  14. package/development/navigation.pure.js +5 -5
  15. package/navigation/common/navigation-action-common.js +1 -1
  16. package/navigation/navigation/navigation.component.js +1 -1
  17. package/navigation/navigation-list/navigation-list.component.js +1 -1
  18. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  19. package/navigation/navigation-section/navigation-section.component.js +1 -1
  20. package/navigation-action-common-XvWVU7Zk.js +66 -0
  21. package/{navigation-list.component-DSJx3LwB.js → navigation-list.component-BX-kv06z.js} +1 -1
  22. package/{navigation-marker.component-xmkTtMap.js → navigation-marker.component-iSodFQRj.js} +1 -1
  23. package/{navigation-section.component-CUrICmbc.js → navigation-section.component-K4Pa53K7.js} +1 -1
  24. package/{navigation.component-CR4vG3vH.js → navigation.component-BFejmwjr.js} +1 -1
  25. package/navigation.js +5 -5
  26. package/navigation.pure.js +5 -5
  27. package/off-brand-theme.css +66 -0
  28. package/package.json +2 -2
  29. package/safety-theme.css +66 -0
  30. package/standard-theme.css +66 -0
  31. package/development/navigation-action-common-DREsZcc7.js +0 -92
  32. package/development/navigation-list.component-3kQyQ-yJ.js +0 -90
  33. package/development/navigation-marker.component-DyWfazQL.js +0 -121
  34. package/development/navigation-section.component-DyPWGns2.js +0 -346
  35. package/development/navigation.component-CZ2P2xfh.js +0 -315
  36. package/navigation-action-common-D3rE0ZNS.js +0 -66
@@ -172,6 +172,21 @@ $theme: 'standard' !default;
172
172
  with (
173
173
  $theme: $theme
174
174
  );
175
+ @use '../../navigation/navigation/navigation.global' as navigation with (
176
+ $theme: $theme
177
+ );
178
+ @use '../../navigation/common/navigation-action.global' as navigation-action with (
179
+ $theme: $theme
180
+ );
181
+ @use '../../navigation/navigation-list/navigation-list.global' as navigation-list with (
182
+ $theme: $theme
183
+ );
184
+ @use '../../navigation/navigation-marker/navigation-marker.global' as navigation-marker with (
185
+ $theme: $theme
186
+ );
187
+ @use '../../navigation/navigation-section/navigation-section.global' as navigation-section with (
188
+ $theme: $theme
189
+ );
175
190
  @use '../../notification/notification.global' as notification with (
176
191
  $theme: $theme
177
192
  );
@@ -346,6 +361,11 @@ $theme: 'standard' !default;
346
361
  @include menu.base;
347
362
  @include menu-action.base;
348
363
  @include message.base;
364
+ @include navigation.base;
365
+ @include navigation-action.base;
366
+ @include navigation-list.base;
367
+ @include navigation-marker.base;
368
+ @include navigation-section.base;
349
369
  @include mini-calendar-day.base;
350
370
  @include mini-calendar-month.base;
351
371
  @include notification.base;
@@ -474,6 +494,8 @@ $theme: 'standard' !default;
474
494
  @include flip-card.base-breakpoint-large;
475
495
  @include form-field.base-breakpoint-large;
476
496
  @include header.base-breakpoint-large;
497
+ @include navigation.base-breakpoint-large;
498
+ @include navigation-section.base-breakpoint-large;
477
499
  @include menu.base-breakpoint-large;
478
500
  @include teaser-panel.base-breakpoint-large;
479
501
  @include teaser-product-common.base-breakpoint-large;
@@ -493,6 +515,8 @@ $theme: 'standard' !default;
493
515
 
494
516
  @include lead-container.base-breakpoint-ultra;
495
517
  @include map-container.base-breakpoint-ultra;
518
+ @include navigation.base-breakpoint-ultra;
519
+ @include navigation-section.base-breakpoint-ultra;
496
520
  @include teaser-panel.base-breakpoint-ultra;
497
521
  }
498
522
  }
package/core.css CHANGED
@@ -1555,6 +1555,54 @@ slot[name=error]::slotted(*) {
1555
1555
  --sbb-message-subtitle-color: var(--sbb-color-granite);
1556
1556
  --sbb-message-subtitle-color: light-dark(var(--sbb-color-granite), var(--sbb-color-platinum));
1557
1557
  --sbb-message-legend-margin-block: var(--sbb-spacing-responsive-xxxs) 0;
1558
+ --sbb-navigation-grid-column: 1 / -1;
1559
+ --sbb-navigation-animation-easing: ease-in;
1560
+ --sbb-navigation-padding-inline: var(--sbb-layout-base-offset-responsive);
1561
+ --sbb-navigation-padding-block-start: var(--sbb-spacing-responsive-l);
1562
+ --sbb-navigation-padding-block-end: var(--sbb-spacing-responsive-xl);
1563
+ --sbb-navigation-backdrop-color: color-mix(in srgb, var(--sbb-color-black) 70%, transparent);
1564
+ --sbb-navigation-backdrop-animation-name: backdrop-open;
1565
+ --sbb-navigation-background-color: var(--sbb-background-color-1-negative);
1566
+ --sbb-navigation-color: var(--sbb-color-1-negative);
1567
+ --sbb-navigation-list-margin-block-start: var(--sbb-spacing-responsive-xxl);
1568
+ --sbb-navigation-expanded-width: 100%;
1569
+ --sbb-navigation-inset: 0 auto auto 0;
1570
+ --sbb-navigation-translate: -100% 0;
1571
+ --sbb-navigation-content-gap: var(--sbb-spacing-responsive-xxl);
1572
+ --sbb-navigation-content-translate: 0;
1573
+ --sbb-navigation-width: 100%;
1574
+ --sbb-navigation-height: 100dvh;
1575
+ --sbb-navigation-action-color: var(--sbb-color-4-negative);
1576
+ --sbb-navigation-action-icon-display: none;
1577
+ --sbb-navigation-action-font-size: var(--sbb-text-font-size-xl);
1578
+ --sbb-navigation-action-letter-spacing: var(--sbb-typo-letter-spacing-heading);
1579
+ --sbb-navigation-action-line-height: var(--sbb-typo-line-height-heading);
1580
+ --sbb-navigation-list-font-size: var(--sbb-text-font-size-xxs);
1581
+ --sbb-navigation-list-gap: var(--sbb-spacing-fixed-2x);
1582
+ --sbb-navigation-list-margin-block: var(--sbb-spacing-fixed-1x);
1583
+ --sbb-navigation-list-padding-block-end: var(--sbb-spacing-fixed-2x);
1584
+ --sbb-navigation-action-gap: var(--sbb-spacing-responsive-xs);
1585
+ --sbb-navigation-marker-position-x: var(--sbb-spacing-fixed-1x);
1586
+ --sbb-navigation-marker-position-y: unset;
1587
+ --sbb-navigation-marker-width: 1.0625rem;
1588
+ --sbb-navigation-marker-border: var(--sbb-border-width-1x);
1589
+ --sbb-navigation-marker-padding-inline-start: var(--sbb-spacing-fixed-6x);
1590
+ --sbb-navigation-marker-typo-line-height: var(--sbb-typo-line-height-heading);
1591
+ --sbb-navigation-margin-inline-start: var(--sbb-spacing-fixed-3x);
1592
+ --sbb-navigation-marker-font-size: var(--sbb-text-font-size-xl);
1593
+ --sbb-navigation-marker-letter-spacing: var(--sbb-typo-letter-spacing-heading);
1594
+ --sbb-navigation-marker-line-height: var(--sbb-typo-line-height-heading);
1595
+ --sbb-navigation-section-column: 1 / -1;
1596
+ --sbb-navigation-section-position: fixed;
1597
+ --sbb-navigation-section-pointer-events: none;
1598
+ --sbb-navigation-section-animation-easing: ease-out;
1599
+ --sbb-navigation-section-padding-inline: var(--sbb-layout-base-offset-responsive);
1600
+ --sbb-navigation-section-padding-block: var(--sbb-spacing-responsive-l);
1601
+ --sbb-navigation-section-translate: 100%;
1602
+ --sbb-navigation-section-content-padding-inline-start: var(--sbb-spacing-fixed-12x);
1603
+ --sbb-navigation-section-width: 100dvw;
1604
+ --sbb-navigation-section-height: 100dvh;
1605
+ --sbb-navigation-section-font-size: var(--sbb-heading-font-size-4);
1558
1606
  --sbb-mini-calendar-day-animation-easing: var(--sbb-animation-easing);
1559
1607
  --sbb-mini-calendar-day-dimensions: 0.375rem;
1560
1608
  --sbb-mini-calendar-day-scale: 1.333;
@@ -2039,6 +2087,19 @@ slot[name=error]::slotted(*) {
2039
2087
  --_sbb-form-field-floating-label-transform: 0.65625rem;
2040
2088
  --_sbb-form-field-spacer-margin-block-end: calc(-1 * var(--_sbb-form-field-label-to-input-overlapping));
2041
2089
  --sbb-header-height: var(--sbb-spacing-fixed-24x);
2090
+ --sbb-navigation-grid-column: 1 / 5;
2091
+ --sbb-navigation-padding-block-start: var(--sbb-spacing-responsive-xl);
2092
+ --sbb-navigation-padding-inline: var(--sbb-layout-base-offset-responsive) 0;
2093
+ --sbb-navigation-list-margin-block-start: var(--sbb-spacing-fixed-1x);
2094
+ --sbb-navigation-inline-start: calc(var(--sbb-layout-base-offset-responsive) * -1);
2095
+ --sbb-navigation-section-column: 5 / 13;
2096
+ --sbb-navigation-section-padding-block: var(--sbb-spacing-responsive-xl);
2097
+ --sbb-navigation-section-padding-inline: var(--sbb-spacing-fixed-8x)
2098
+ var(--sbb-layout-base-offset-responsive);
2099
+ --sbb-navigation-section-position: relative;
2100
+ --sbb-navigation-section-translate: 0;
2101
+ --sbb-navigation-section-content-padding-inline-start: 0;
2102
+ --sbb-navigation-section-font-size: var(--sbb-heading-font-size-2);
2042
2103
  --sbb-menu-max-width: 20rem;
2043
2104
  --sbb-menu-min-width: 11.25rem;
2044
2105
  --sbb-menu-transform-y: var(--sbb-spacing-fixed-2x);
@@ -2074,6 +2135,11 @@ slot[name=error]::slotted(*) {
2074
2135
  --sbb-lead-container-image-ratio: 21 / 9;
2075
2136
  --sbb-lead-container-image-border-radius: var(--sbb-lead-container-border-radius);
2076
2137
  --sbb-map-container-sidebar-width: 30rem;
2138
+ --sbb-navigation-grid-column: 1 / 6;
2139
+ --sbb-navigation-padding-block-start: var(--sbb-spacing-responsive-xxl);
2140
+ --sbb-navigation-section-column: 6 / 17;
2141
+ --sbb-navigation-section-padding-block: var(--sbb-spacing-responsive-xxl)
2142
+ var(--sbb-spacing-responsive-l);
2077
2143
  --sbb-panel-width: 26.75rem;
2078
2144
  --sbb-panel-inner-height: 20.02375rem;
2079
2145
  --sbb-panel-triangle-height: 3.956875rem;
@@ -1,2 +1,2 @@
1
- import { t as SbbNavigationActionCommonElementMixin } from "../../navigation-action-common-DREsZcc7.js";
1
+ import { t as SbbNavigationActionCommonElementMixin } from "../../navigation-action-common-BsrmO4QQ.js";
2
2
  export { SbbNavigationActionCommonElementMixin };
@@ -1,2 +1,2 @@
1
- import { t as SbbNavigationElement } from "../../navigation.component-CZ2P2xfh.js";
1
+ import { t as SbbNavigationElement } from "../../navigation.component-Djm0PFOA.js";
2
2
  export { SbbNavigationElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbNavigationListElement } from "../../navigation-list.component-3kQyQ-yJ.js";
1
+ import { t as SbbNavigationListElement } from "../../navigation-list.component-CQ4q671G.js";
2
2
  export { SbbNavigationListElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbNavigationMarkerElement } from "../../navigation-marker.component-DyWfazQL.js";
1
+ import { t as SbbNavigationMarkerElement } from "../../navigation-marker.component-D7ks8vbC.js";
2
2
  export { SbbNavigationMarkerElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbNavigationSectionElement } from "../../navigation-section.component-DyPWGns2.js";
1
+ import { t as SbbNavigationSectionElement } from "../../navigation-section.component-t36xyaq4.js";
2
2
  export { SbbNavigationSectionElement };
@@ -0,0 +1,92 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { boxSizingStyles } from "./core.js";
5
+ import { html as html$1 } from "lit/static-html.js";
6
+ import { SbbIconElement } from "./icon.pure.js";
7
+ //#region src/elements/navigation/common/navigation-action.scss?inline
8
+ var navigation_action_default = ":host {\n --_sbb-navigation-action-inset-inline-start: calc(\n (var(--sbb-size-icon-ui-small) + var(--sbb-spacing-fixed-1x)) * -1\n );\n --_sbb-navigation-action-inset-block-start: calc(1em * (var(--sbb-typo-line-height-text) / 2));\n --sbb-navigation-action-transition-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-3x)\n );\n display: block;\n outline: none !important;\n}\n\n:host(:is(:state(section-action),[state--section-action]):is(:state(action-active),[state--action-active]).sbb-active) {\n --sbb-navigation-action-icon-display: block;\n}\n\n:host(:is(:state(action-active),[state--action-active])) {\n --sbb-navigation-action-color: var(--sbb-color-5);\n}\n@media (forced-colors: active) {\n :host(:is(:state(action-active),[state--action-active])) {\n --sbb-navigation-action-color: Highlight;\n }\n}\n\nsbb-icon {\n display: var(--sbb-navigation-action-icon-display);\n position: absolute;\n inset-inline-start: var(--_sbb-navigation-action-inset-inline-start);\n inset-block-start: var(--_sbb-navigation-action-inset-block-start);\n translate: 0 -50%;\n}\n\n@media (any-hover: hover) {\n :host(:hover) {\n --sbb-navigation-action-color: var(--sbb-color-5);\n }\n}\n@media (forced-colors: active) {\n :host(:is(:state(button),[state--button])) {\n --sbb-navigation-action-color: ButtonText;\n }\n}\n\n:host([size=l]) {\n --sbb-navigation-action-font-size: var(--sbb-heading-font-size-4);\n --sbb-navigation-action-letter-spacing: var(--sbb-typo-letter-spacing-heading);\n --sbb-navigation-action-line-height: var(--sbb-typo-line-height-heading);\n}\n\n:host([size=m]),\n:host([size=s]) {\n --sbb-navigation-action-line-height: var(--sbb-typo-line-height-text);\n --sbb-navigation-action-letter-spacing: var(--sbb-typo-letter-spacing-text);\n}\n\n:host([size=m]) {\n --sbb-navigation-action-font-size: var(--sbb-text-font-size-s);\n}\n\n:host([size=s]) {\n --sbb-navigation-action-font-size: var(--sbb-text-font-size-xxs);\n}\n\n:is(.sbb-navigation-button, .sbb-navigation-link) {\n display: flex;\n position: relative;\n color: var(--sbb-navigation-action-color);\n cursor: var(--sbb-cursor-pointer);\n transition: color var(--sbb-navigation-action-transition-duration) ease;\n outline: none;\n text-align: left;\n font-size: var(--sbb-navigation-action-font-size);\n line-height: var(--sbb-navigation-action-line-height);\n letter-spacing: var(--sbb-navigation-action-letter-spacing);\n font-weight: bold;\n hyphens: auto;\n text-decoration: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n@media (forced-colors: active) {\n :is(.sbb-navigation-button, .sbb-navigation-link) {\n transition: none;\n }\n}\n:host(:focus-visible) :is(.sbb-navigation-button, .sbb-navigation-link), :is(.sbb-navigation-button, .sbb-navigation-link):focus-visible {\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 border-radius: calc(var(--sbb-border-radius-4x) - var(--sbb-focus-outline-offset));\n}";
9
+ //#endregion
10
+ //#region src/elements/navigation/common/navigation-action-common.ts
11
+ var SbbNavigationActionCommonElementMixin = (superClass) => {
12
+ return (() => {
13
+ let _classSuper = superClass;
14
+ let _size_decorators;
15
+ let _size_initializers = [];
16
+ let _size_extraInitializers = [];
17
+ return class SbbNavigationActionCommonElement extends _classSuper {
18
+ static {
19
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
20
+ _size_decorators = [property({ reflect: true })];
21
+ __esDecorate(this, null, _size_decorators, {
22
+ kind: "accessor",
23
+ name: "size",
24
+ static: false,
25
+ private: false,
26
+ access: {
27
+ has: (obj) => "size" in obj,
28
+ get: (obj) => obj.size,
29
+ set: (obj, value) => {
30
+ obj.size = value;
31
+ }
32
+ },
33
+ metadata: _metadata
34
+ }, _size_initializers, _size_extraInitializers);
35
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
36
+ enumerable: true,
37
+ configurable: true,
38
+ writable: true,
39
+ value: _metadata
40
+ });
41
+ }
42
+ static {
43
+ this.elementDependencies = [SbbIconElement];
44
+ }
45
+ static {
46
+ this.styles = [boxSizingStyles, unsafeCSS(navigation_action_default)];
47
+ }
48
+ #size_accessor_storage;
49
+ /**
50
+ * Action size variant, either s, m or l.
51
+ */
52
+ get size() {
53
+ return this.#size_accessor_storage;
54
+ }
55
+ set size(value) {
56
+ this.#size_accessor_storage = value;
57
+ }
58
+ /** The navigation marker in which the action is nested. */
59
+ get marker() {
60
+ return this._navigationMarker;
61
+ }
62
+ /** The section in which the action is nested. */
63
+ get section() {
64
+ return this._navigationSection;
65
+ }
66
+ constructor(...args) {
67
+ super(...args);
68
+ this.#size_accessor_storage = __runInitializers(this, _size_initializers, "l");
69
+ /** The section that is being controlled by the action, if any. */
70
+ this.connectedSection = __runInitializers(this, _size_extraInitializers);
71
+ this._navigationMarker = null;
72
+ this._navigationSection = null;
73
+ this.addEventListener?.("click", () => {
74
+ if (!this.matches(":is(:state(action-active),[state--action-active])") && this._navigationMarker && !this.connectedSection) this.marker?.select(this);
75
+ });
76
+ }
77
+ connectedCallback() {
78
+ super.connectedCallback();
79
+ this._navigationMarker = this.closest("sbb-navigation-marker");
80
+ this._navigationSection = this.closest("sbb-navigation-section");
81
+ this.toggleState("section-action", !!this._navigationSection);
82
+ }
83
+ renderTemplate() {
84
+ return html$1`<sbb-icon name="dash-small"></sbb-icon> <slot></slot>`;
85
+ }
86
+ };
87
+ })();
88
+ };
89
+ //#endregion
90
+ export { SbbNavigationActionCommonElementMixin as t };
91
+
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1hY3Rpb24tY29tbW9uLUJzcm1PNFFRLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL2NvbW1vbi9uYXZpZ2F0aW9uLWFjdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL2NvbW1vbi9uYXZpZ2F0aW9uLWFjdGlvbi1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLV9zYmItbmF2aWdhdGlvbi1hY3Rpb24taW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICh2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKSArIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KSkgKiAtMVxuICApO1xuICAtLV9zYmItbmF2aWdhdGlvbi1hY3Rpb24taW5zZXQtYmxvY2stc3RhcnQ6IGNhbGMoMWVtICogKHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpIC8gMikpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeClcbiAgKTtcblxuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KDpzdGF0ZShzZWN0aW9uLWFjdGlvbik6c3RhdGUoYWN0aW9uLWFjdGl2ZSkuc2JiLWFjdGl2ZSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1pY29uLWRpc3BsYXk6IGJsb2NrO1xufVxuXG46aG9zdCg6c3RhdGUoYWN0aW9uLWFjdGl2ZSkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tY29sb3I6IEhpZ2hsaWdodDtcbiAgfVxufVxuXG5zYmItaWNvbiB7XG4gIGRpc3BsYXk6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1pY29uLWRpc3BsYXkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0LWlubGluZS1zdGFydDogdmFyKC0tX3NiYi1uYXZpZ2F0aW9uLWFjdGlvbi1pbnNldC1pbmxpbmUtc3RhcnQpO1xuICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tX3NiYi1uYXZpZ2F0aW9uLWFjdGlvbi1pbnNldC1ibG9jay1zdGFydCk7XG4gIHRyYW5zbGF0ZTogMCAtNTAlO1xufVxuXG5AaW5jbHVkZSBzYmIuaG92ZXItbXEoJGhvdmVyOiB0cnVlKSB7XG4gIDpob3N0KDpob3Zlcikge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKGJ1dHRvbikpIHtcbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWNvbG9yOiBCdXR0b25UZXh0O1xuICB9XG59XG5cbjpob3N0KFtzaXplPSdsJ10pIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tZm9udC1zaXplOiB2YXIoLS1zYmItaGVhZGluZy1mb250LXNpemUtNCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy1oZWFkaW5nKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LWhlYWRpbmcpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSxcbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1sZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG59XG5cbjpob3N0KFtzaXplPSdtJ10pIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtcyk7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUteHhzKTtcbn1cblxuOmlzKC5zYmItbmF2aWdhdGlvbi1idXR0b24sIC5zYmItbmF2aWdhdGlvbi1saW5rKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcik7XG4gIGN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24pIGVhc2U7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tbGluZS1oZWlnaHQpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWxldHRlci1zcGFjaW5nKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGh5cGhlbnM6IGF1dG87XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBIYW5kbGUgZm9jdXMgb24gdGhlIGhvc3QgKGJ1dHRvbiB2YXJpYW50KVxuICA6aG9zdCg6Zm9jdXMtdmlzaWJsZSkgJixcbiAgICAvLyBIYW5kbGUgZm9jdXMgb24gdGhlIGFjdGlvbiAobGluayB2YXJpYW50KVxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy00eCkgLSB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1vZmZzZXQpKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgU2JiQWN0aW9uQmFzZUVsZW1lbnQsXG4gIFNiYkVsZW1lbnRDb25zdHJ1Y3RvcixcbiAgU2JiRWxlbWVudFR5cGUsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uRWxlbWVudCB9IGZyb20gJy4uLy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1idXR0b24vbmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1saW5rL25hdmlnYXRpb24tbGluay5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTWFya2VyRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbWFya2VyL25hdmlnYXRpb24tbWFya2VyLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tc2VjdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24uY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi1hY3Rpb24uc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgdHlwZSBTYmJOYXZpZ2F0aW9uQWN0aW9uU2l6ZSA9ICdzJyB8ICdtJyB8ICdsJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiTmF2aWdhdGlvbkFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGUge1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiTmF2aWdhdGlvbkFjdGlvblNpemU7XG4gIHB1YmxpYyBnZXQgbWFya2VyKCk6IFNiYk5hdmlnYXRpb25NYXJrZXJFbGVtZW50IHwgbnVsbDtcbiAgcHVibGljIGdldCBzZWN0aW9uKCk6IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBjb25uZWN0ZWRTZWN0aW9uOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCB1bmRlZmluZWQ7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJBY3Rpb25CYXNlRWxlbWVudD4gJiBTYmJFbGVtZW50Q29uc3RydWN0b3IsXG4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiTmF2aWdhdGlvbkFjdGlvbkNvbW1vbkVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiTmF2aWdhdGlvbkFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiSWNvbkVsZW1lbnRdO1xuICAgIHB1YmxpYyBzdGF0aWMgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gICAgLyoqXG4gICAgICogQWN0aW9uIHNpemUgdmFyaWFudCwgZWl0aGVyIHMsIG0gb3IgbC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiBTYmJOYXZpZ2F0aW9uQWN0aW9uU2l6ZSA9ICdsJztcblxuICAgIC8qKiBUaGUgc2VjdGlvbiB0aGF0IGlzIGJlaW5nIGNvbnRyb2xsZWQgYnkgdGhlIGFjdGlvbiwgaWYgYW55LiAqL1xuICAgIHB1YmxpYyBjb25uZWN0ZWRTZWN0aW9uPzogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50O1xuXG4gICAgLyoqIFRoZSBuYXZpZ2F0aW9uIG1hcmtlciBpbiB3aGljaCB0aGUgYWN0aW9uIGlzIG5lc3RlZC4gKi9cbiAgICBwdWJsaWMgZ2V0IG1hcmtlcigpOiBTYmJOYXZpZ2F0aW9uTWFya2VyRWxlbWVudCB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb25NYXJrZXI7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBzZWN0aW9uIGluIHdoaWNoIHRoZSBhY3Rpb24gaXMgbmVzdGVkLiAqL1xuICAgIHB1YmxpYyBnZXQgc2VjdGlvbigpOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uU2VjdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9uYXZpZ2F0aW9uTWFya2VyOiBTYmJOYXZpZ2F0aW9uTWFya2VyRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX25hdmlnYXRpb25TZWN0aW9uOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhdGhpcy5tYXRjaGVzKCc6c3RhdGUoYWN0aW9uLWFjdGl2ZSknKSAmJlxuICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25NYXJrZXIgJiZcbiAgICAgICAgICAhdGhpcy5jb25uZWN0ZWRTZWN0aW9uXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMubWFya2VyPy5zZWxlY3QoXG4gICAgICAgICAgICB0aGlzIGFzIHVua25vd24gYXMgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyBuZXN0ZWQgaW5zaWRlIGEgbmF2aWdhdGlvbiBtYXJrZXIuXG4gICAgICB0aGlzLl9uYXZpZ2F0aW9uTWFya2VyID0gdGhpcy5jbG9zZXN0KCdzYmItbmF2aWdhdGlvbi1tYXJrZXInKTtcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyBuZXN0ZWQgaW5zaWRlIGEgbmF2aWdhdGlvbiBzZWN0aW9uLlxuICAgICAgdGhpcy5fbmF2aWdhdGlvblNlY3Rpb24gPSB0aGlzLmNsb3Nlc3QoJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nKTtcbiAgICAgIHRoaXMudG9nZ2xlU3RhdGUoJ3NlY3Rpb24tYWN0aW9uJywgISF0aGlzLl9uYXZpZ2F0aW9uU2VjdGlvbik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYDxzYmItaWNvbiBuYW1lPVwiZGFzaC1zbWFsbFwiPjwvc2JiLWljb24+IDxzbG90Pjwvc2xvdD5gO1xuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiTmF2aWdhdGlvbkFjdGlvbkNvbW1vbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUM2QkEsSUFBYSx5Q0FHWCxlQUNzRTtBQTJEdEUsZUExRCtDO29CQUNyQzs7OztlQURLLHlDQUNMLFlBQVU7Ozt3QkFTakIsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7QUFBQyxpQkFBQSxNQUFBLE1BQUEsa0JBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxVQUFBO01BQUEsTUFBQSxRQUFBLElBQWdCO01BQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFKLE9BQUk7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxvQkFBQSx3QkFBQTs7Ozs7Ozs7O0FBTjFCLFNBQUEsc0JBQXdDLENBQUMsZUFBZTs7O0FBQ2pFLFNBQUEsU0FBeUIsQ0FBQyxpQkFBaUIsVUFBVSwwQkFBTSxDQUFDOztHQUs3Qzs7OztHQUFBLElBQWdCLE9BQUk7QUFBQSxXQUFBLE1BQUE7O0dBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLFVBQUEsd0JBQUE7OztHQU1qRCxJQUFXLFNBQU07QUFDZixXQUFPLEtBQUs7OztHQUlkLElBQVcsVUFBTztBQUNoQixXQUFPLEtBQUs7O0dBTWQsWUFBc0IsR0FBRyxNQUFXO0FBQ2xDLFVBQU0sR0FBRyxLQUFLO0FBbkI2QixVQUFBLHdCQUFBLGtCQUFBLE1BQUEsb0JBQWdDLElBQUc7O0FBR3pFLFNBQUEsbUJBQWdCLGtCQUFBLE1BQUEsd0JBQUE7QUFZZixTQUFBLG9CQUF1RDtBQUN2RCxTQUFBLHFCQUF5RDtBQUkvRCxTQUFLLG1CQUFtQixlQUFjO0FBQ3BDLFNBQ0UsQ0FBQyxLQUFLLFFBQVEsb0RBQXdCLElBQ3RDLEtBQUsscUJBQ0wsQ0FBQyxLQUFLLGlCQUVOLE1BQUssUUFBUSxPQUNYLEtBQ0Q7TUFFSDs7R0FHWSxvQkFBaUI7QUFDL0IsVUFBTSxtQkFBbUI7QUFHekIsU0FBSyxvQkFBb0IsS0FBSyxRQUFRLHdCQUF3QjtBQUc5RCxTQUFLLHFCQUFxQixLQUFLLFFBQVEseUJBQXlCO0FBQ2hFLFNBQUssWUFBWSxrQkFBa0IsQ0FBQyxDQUFDLEtBQUssbUJBQW1COztHQUc1QyxpQkFBYztBQUMvQixXQUFPLE1BQUk7OztLQUdSIn0=
@@ -0,0 +1,90 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbElement, SbbNamedSlotListMixin, boxSizingStyles, forceType, omitEmptyConverter } from "./core.js";
5
+ //#region src/elements/navigation/navigation-list/navigation-list.scss?inline
6
+ var navigation_list_default = ":host {\n display: block;\n}\n\n.sbb-navigation-list__content {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--sbb-navigation-list-gap);\n margin-block: var(--sbb-navigation-list-margin-block);\n}\n\n.sbb-navigation-list__label {\n display: block;\n color: var(--sbb-color-5);\n padding-block-end: var(--sbb-navigation-list-padding-block-end);\n font-weight: bold;\n font-size: var(--sbb-navigation-list-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n}\n:host(:not(:is(:state(slotted-label),[state--slotted-label]), [label])) .sbb-navigation-list__label {\n display: none;\n}";
7
+ //#endregion
8
+ //#region src/elements/navigation/navigation-list/navigation-list.component.ts
9
+ /**
10
+ * It can be used as a container for one or more `sbb-navigation-button`/`sbb-navigation-link` within a `sbb-navigation-section`.
11
+ *
12
+ * @slot - Use the unnamed slot to add content to the `sbb-navigation-list`.
13
+ * @slot label - Use this to provide a label element.
14
+ */
15
+ var SbbNavigationListElement = (() => {
16
+ let _classSuper = SbbNamedSlotListMixin(SbbElement);
17
+ let _label_decorators;
18
+ let _label_initializers = [];
19
+ let _label_extraInitializers = [];
20
+ return class SbbNavigationListElement extends _classSuper {
21
+ static {
22
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
23
+ _label_decorators = [forceType(), property({
24
+ reflect: true,
25
+ converter: omitEmptyConverter
26
+ })];
27
+ __esDecorate(this, null, _label_decorators, {
28
+ kind: "accessor",
29
+ name: "label",
30
+ static: false,
31
+ private: false,
32
+ access: {
33
+ has: (obj) => "label" in obj,
34
+ get: (obj) => obj.label,
35
+ set: (obj, value) => {
36
+ obj.label = value;
37
+ }
38
+ },
39
+ metadata: _metadata
40
+ }, _label_initializers, _label_extraInitializers);
41
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true,
45
+ value: _metadata
46
+ });
47
+ }
48
+ static {
49
+ this.elementName = "sbb-navigation-list";
50
+ }
51
+ static {
52
+ this.styles = [boxSizingStyles, unsafeCSS(navigation_list_default)];
53
+ }
54
+ #label_accessor_storage;
55
+ /**
56
+ * The label to be shown before the action list.
57
+ */
58
+ get label() {
59
+ return this.#label_accessor_storage;
60
+ }
61
+ set label(value) {
62
+ this.#label_accessor_storage = value;
63
+ }
64
+ willUpdate(changedProperties) {
65
+ super.willUpdate(changedProperties);
66
+ if (changedProperties.has("listChildren")) this.listChildren.forEach((c) => c.size = "m");
67
+ }
68
+ render() {
69
+ return html`
70
+ <span class="sbb-navigation-list__label" id="sbb-navigation-link-label-id">
71
+ <slot name="label">${this.label}</slot>
72
+ </span>
73
+ ${this.renderList({
74
+ class: "sbb-navigation-list__content",
75
+ ariaLabelledby: "sbb-navigation-link-label-id"
76
+ })}
77
+ `;
78
+ }
79
+ constructor() {
80
+ super(...arguments);
81
+ this.listChildLocalNames = ["sbb-navigation-button", "sbb-navigation-link"];
82
+ this.#label_accessor_storage = __runInitializers(this, _label_initializers, "");
83
+ __runInitializers(this, _label_extraInitializers);
84
+ }
85
+ };
86
+ })();
87
+ //#endregion
88
+ export { SbbNavigationListElement as t };
89
+
90
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudC1DUTRxNjcxRy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1saXN0L25hdmlnYXRpb24tbGlzdC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLWxpc3RfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBzYmIubGlzdC1yZXNldDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1saXN0LWdhcCk7XG4gIG1hcmdpbi1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tbGlzdC1tYXJnaW4tYmxvY2spO1xufVxuXG4uc2JiLW5hdmlnYXRpb24tbGlzdF9fbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbiAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWxpc3QtcGFkZGluZy1ibG9jay1lbmQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1saXN0LWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcblxuICA6aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkLWxhYmVsKSwgW2xhYmVsXSkpICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGZvcmNlVHlwZSxcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICBTYmJFbGVtZW50LFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1idXR0b24vbmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1saW5rL25hdmlnYXRpb24tbGluay5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3Quc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLW5hdmlnYXRpb24tYnV0dG9uYC9gc2JiLW5hdmlnYXRpb24tbGlua2Agd2l0aGluIGEgYHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItbmF2aWdhdGlvbi1saXN0YC5cbiAqIEBzbG90IGxhYmVsIC0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIGxhYmVsIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uTGlzdEVsZW1lbnQgZXh0ZW5kcyBTYmJOYW1lZFNsb3RMaXN0TWl4aW48XG4gIFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50LFxuICB0eXBlb2YgU2JiRWxlbWVudFxuPihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItbmF2aWdhdGlvbi1saXN0JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gW1xuICAgICdzYmItbmF2aWdhdGlvbi1idXR0b24nLFxuICAgICdzYmItbmF2aWdhdGlvbi1saW5rJyxcbiAgXTtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGJlIHNob3duIGJlZm9yZSB0aGUgYWN0aW9uIGxpc3QuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgY29udmVydGVyOiBvbWl0RW1wdHlDb252ZXJ0ZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbi5mb3JFYWNoKChjKSA9PiAoYy5zaXplID0gJ20nKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLWxpc3RfX2xhYmVsXCIgaWQ9XCJzYmItbmF2aWdhdGlvbi1saW5rLWxhYmVsLWlkXCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJsYWJlbFwiPiR7dGhpcy5sYWJlbH08L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgICAke3RoaXMucmVuZGVyTGlzdCh7XG4gICAgICAgIGNsYXNzOiAnc2JiLW5hdmlnYXRpb24tbGlzdF9fY29udGVudCcsXG4gICAgICAgIGFyaWFMYWJlbGxlZGJ5OiAnc2JiLW5hdmlnYXRpb24tbGluay1sYWJlbC1pZCcsXG4gICAgICB9KX1cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbmF2aWdhdGlvbi1saXN0JzogU2JiTmF2aWdhdGlvbkxpc3RFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0lDNEJhLGtDQUF3QjttQkFBUyxzQkFHNUMsV0FBVzs7OztjQUhBLGlDQUFpQyxZQUdqQzs7O3dCQVdWLFdBQVcsRUFDWCxTQUFTO0lBQUUsU0FBUztJQUFNLFdBQVc7SUFBb0IsQ0FBQyxDQUFBO0FBQzNELGdCQUFBLE1BQUEsTUFBQSxtQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFdBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBSyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUwsUUFBSzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHFCQUFBLHlCQUFBOzs7Ozs7Ozs7QUFaVyxRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLHdCQUFNLENBQUM7O0VBV25GOzs7O0VBQUEsSUFBZ0IsUUFBSztBQUFBLFVBQUEsTUFBQTs7RUFBckIsSUFBZ0IsTUFBSyxPQUFBO0FBQUEsU0FBQSx5QkFBQTs7RUFFRixXQUFXLG1CQUF5RDtBQUNyRixTQUFNLFdBQVcsa0JBQWtCO0FBRW5DLE9BQUksa0JBQWtCLElBQUksZUFBZSxDQUN2QyxNQUFLLGFBQWEsU0FBUyxNQUFPLEVBQUUsT0FBTyxJQUFLOztFQUlqQyxTQUFNO0FBQ3ZCLFVBQU8sSUFBSTs7NkJBRWMsS0FBSyxNQUFLOztRQUUvQixLQUFLLFdBQVc7SUFDaEIsT0FBTztJQUNQLGdCQUFnQjtJQUNqQixDQUFDLENBQUE7Ozs7O0FBNUJzQixRQUFBLHNCQUFzQixDQUNoRCx5QkFDQSxzQkFDRDtBQU9lLFNBQUEseUJBQUEsa0JBQUEsTUFBQSxxQkFBZ0IsR0FBRSJ9
@@ -0,0 +1,121 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbElement, SbbNamedSlotListMixin, boxSizingStyles, ɵstateController } from "./core.js";
5
+ import { ResizeController } from "@lit-labs/observers/resize-controller.js";
6
+ //#region src/elements/navigation/navigation-marker/navigation-marker.scss?inline
7
+ var navigation_marker_default = ":host {\n --sbb-navigation-marker-margin-block: calc(\n 1em * var(--sbb-navigation-marker-typo-line-height) / 2 - var(--sbb-navigation-marker-border) /\n 2\n );\n display: block;\n}\n\n:host([size=l]) {\n --sbb-navigation-marker-font-size: var(--sbb-heading-font-size-4);\n --sbb-navigation-marker-letter-spacing: var(--sbb-typo-letter-spacing-heading);\n --sbb-navigation-marker-line-height: var(--sbb-typo-line-height-heading);\n}\n\n:host([size=s]) {\n --sbb-navigation-action-gap: var(--sbb-spacing-fixed-2x);\n --sbb-navigation-marker-width: 0.5rem;\n --sbb-navigation-marker-typo-line-height: var(--sbb-typo-line-height-text);\n --sbb-navigation-margin-inline-start: var(--sbb-spacing-fixed-2x);\n --sbb-navigation-marker-position-x: calc(\n var(--sbb-navigation-marker-padding-inline-start) - var(--sbb-spacing-fixed-2x)\n );\n --sbb-navigation-marker-padding-inline-start: calc(\n var(--sbb-spacing-fixed-6x) + var(--sbb-spacing-fixed-1x)\n );\n --sbb-navigation-marker-font-size: var(--sbb-text-font-size-xxs);\n --sbb-navigation-marker-letter-spacing: var(--sbb-typo-letter-spacing-text);\n --sbb-navigation-marker-line-height: var(--sbb-typo-line-height-text);\n}\n\n.sbb-navigation-marker {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--sbb-navigation-action-gap);\n padding-inline-start: var(--sbb-navigation-marker-padding-inline-start);\n font-size: var(--sbb-navigation-marker-font-size);\n line-height: var(--sbb-navigation-marker-line-height);\n letter-spacing: var(--sbb-navigation-marker-letter-spacing);\n font-weight: bold;\n}\n.sbb-navigation-marker::before {\n content: \"\";\n position: absolute;\n opacity: 0;\n inset-inline-start: var(--sbb-navigation-marker-position-x);\n inset-block-start: var(--sbb-navigation-marker-position-y);\n width: var(--sbb-navigation-marker-width);\n border-block-start: var(--sbb-navigation-marker-border) solid var(--sbb-color-5);\n margin-block: var(--sbb-navigation-marker-margin-block);\n transition-duration: var(--sbb-disable-animation-duration, var(--sbb-animation-duration-6x));\n transition-timing-function: ease;\n transition-property: opacity, inset-block-start;\n}\n:host(:is(:state(has-active-action),[state--has-active-action])) .sbb-navigation-marker::before {\n opacity: 1;\n}\n@media (forced-colors: active) {\n .sbb-navigation-marker::before {\n border-color: CanvasText;\n }\n}\n\n::slotted(:is(sbb-navigation-button, sbb-navigation-link)) {\n margin-inline-start: var(--sbb-navigation-margin-inline-start);\n}";
8
+ //#endregion
9
+ //#region src/elements/navigation/navigation-marker/navigation-marker.component.ts
10
+ /**
11
+ * It can be used as a container for one or more `sbb-navigation-button`/`sbb-navigation-link` within a `sbb-navigation`.
12
+ *
13
+ * @slot - Use the unnamed slot to add `sbb-navigation-button`/`sbb-navigation-link` elements into the `sbb-navigation-marker`.
14
+ */
15
+ var SbbNavigationMarkerElement = (() => {
16
+ let _classSuper = SbbNamedSlotListMixin(SbbElement);
17
+ let _size_decorators;
18
+ let _size_initializers = [];
19
+ let _size_extraInitializers = [];
20
+ return class SbbNavigationMarkerElement extends _classSuper {
21
+ static {
22
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
23
+ _size_decorators = [property({ reflect: true })];
24
+ __esDecorate(this, null, _size_decorators, {
25
+ kind: "accessor",
26
+ name: "size",
27
+ static: false,
28
+ private: false,
29
+ access: {
30
+ has: (obj) => "size" in obj,
31
+ get: (obj) => obj.size,
32
+ set: (obj, value) => {
33
+ obj.size = value;
34
+ }
35
+ },
36
+ metadata: _metadata
37
+ }, _size_initializers, _size_extraInitializers);
38
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: _metadata
43
+ });
44
+ }
45
+ static {
46
+ this.elementName = "sbb-navigation-marker";
47
+ }
48
+ static {
49
+ this.styles = [boxSizingStyles, unsafeCSS(navigation_marker_default)];
50
+ }
51
+ #size_accessor_storage;
52
+ /**
53
+ * Marker size variant, either s or l.
54
+ */
55
+ get size() {
56
+ return this.#size_accessor_storage;
57
+ }
58
+ set size(value) {
59
+ this.#size_accessor_storage = value;
60
+ }
61
+ constructor() {
62
+ super();
63
+ this.listChildLocalNames = ["sbb-navigation-button", "sbb-navigation-link"];
64
+ this.#size_accessor_storage = __runInitializers(this, _size_initializers, "l");
65
+ this._currentActiveAction = __runInitializers(this, _size_extraInitializers);
66
+ this.addController(new ResizeController(this, {
67
+ skipInitial: true,
68
+ callback: () => this._setMarkerPosition()
69
+ }));
70
+ }
71
+ willUpdate(changedProperties) {
72
+ super.willUpdate(changedProperties);
73
+ if (changedProperties.has("size") || changedProperties.has("listChildren")) this._updateMarkerActions();
74
+ this.toggleState("has-active-action", !!this._currentActiveAction);
75
+ }
76
+ _updateMarkerActions() {
77
+ for (const action of this.listChildren) action.size = this.size;
78
+ this._currentActiveAction = this.listChildren.find((action) => action.matches(":is(:state(action-active),[state--action-active])"));
79
+ this._setMarkerPosition();
80
+ }
81
+ connectedCallback() {
82
+ super.connectedCallback();
83
+ this._checkActiveAction();
84
+ }
85
+ _checkActiveAction() {
86
+ const activeAction = this.querySelector(":is(sbb-navigation-button, sbb-navigation-link).sbb-active");
87
+ if (activeAction) this.select(activeAction);
88
+ }
89
+ select(action) {
90
+ if (!action) return;
91
+ this.reset();
92
+ ɵstateController(action).add("action-active");
93
+ this._currentActiveAction = action;
94
+ setTimeout(() => this._setMarkerPosition());
95
+ }
96
+ firstUpdated(changedProperties) {
97
+ super.firstUpdated(changedProperties);
98
+ setTimeout(() => this._setMarkerPosition());
99
+ }
100
+ reset() {
101
+ if (this._currentActiveAction) {
102
+ ɵstateController(this._currentActiveAction).delete("action-active");
103
+ this._currentActiveAction.connectedSection?.close();
104
+ this._currentActiveAction = void 0;
105
+ }
106
+ }
107
+ _setMarkerPosition() {
108
+ if (!this._currentActiveAction) return;
109
+ const index = this.listChildren.indexOf(this._currentActiveAction);
110
+ const value = this.shadowRoot.querySelector(`li:nth-child(${index + 1})`)?.offsetTop;
111
+ if (value != null) this.style?.setProperty("--sbb-navigation-marker-position-y", `${value}px`);
112
+ }
113
+ render() {
114
+ return this.renderList();
115
+ }
116
+ };
117
+ })();
118
+ //#endregion
119
+ export { SbbNavigationMarkerElement as t };
120
+
121
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1tYXJrZXIuY29tcG9uZW50LUQ3a3M4dmJDLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24tbWFya2VyL25hdmlnYXRpb24tbWFya2VyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1tYXJrZXIvbmF2aWdhdGlvbi1tYXJrZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbWFyZ2luLWJsb2NrOiBjYWxjKFxuICAgIDFlbSAqIHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci10eXBvLWxpbmUtaGVpZ2h0KSAvIDIgLSB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItYm9yZGVyKSAvXG4gICAgICAyXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtzaXplPSdsJ10pIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItZm9udC1zaXplOiB2YXIoLS1zYmItaGVhZGluZy1mb250LXNpemUtNCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy1oZWFkaW5nKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LWhlYWRpbmcpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci13aWR0aDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDgpfTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItdHlwby1saW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wb3NpdGlvbi14OiBjYWxjKFxuICAgIHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wYWRkaW5nLWlubGluZS1zdGFydCkgLSB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeClcbiAgKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNngpICsgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpXG4gICk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXh4cyk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG4uc2JiLW5hdmlnYXRpb24tbWFya2VyIHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tZ2FwKTtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wYWRkaW5nLWlubGluZS1zdGFydCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbGluZS1oZWlnaHQpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWxldHRlci1zcGFjaW5nKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wb3NpdGlvbi14KTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLXBvc2l0aW9uLXkpO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItd2lkdGgpO1xuICAgIGJvcmRlci1ibG9jay1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWJvcmRlcikgc29saWQgdmFyKC0tc2JiLWNvbG9yLTUpO1xuICAgIG1hcmdpbi1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLW1hcmdpbi1ibG9jayk7XG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbiwgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eCkpO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICAgICAgcHJvcGVydHk6IG9wYWNpdHksIGluc2V0LWJsb2NrLXN0YXJ0O1xuICAgIH1cblxuICAgIDpob3N0KDpzdGF0ZShoYXMtYWN0aXZlLWFjdGlvbikpICYge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICBib3JkZXItY29sb3I6IENhbnZhc1RleHQ7XG4gICAgfVxuICB9XG59XG5cbjo6c2xvdHRlZCg6aXMoc2JiLW5hdmlnYXRpb24tYnV0dG9uLCBzYmItbmF2aWdhdGlvbi1saW5rKSkge1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJnaW4taW5saW5lLXN0YXJ0KTtcbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBTYmJFbGVtZW50LFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbiAgybVzdGF0ZUNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi1tYXJrZXIuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLW5hdmlnYXRpb24tYnV0dG9uYC9gc2JiLW5hdmlnYXRpb24tbGlua2Agd2l0aGluIGEgYHNiYi1uYXZpZ2F0aW9uYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW5hdmlnYXRpb24tYnV0dG9uYC9gc2JiLW5hdmlnYXRpb24tbGlua2AgZWxlbWVudHMgaW50byB0aGUgYHNiYi1uYXZpZ2F0aW9uLW1hcmtlcmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uTWFya2VyRWxlbWVudCBleHRlbmRzIFNiYk5hbWVkU2xvdExpc3RNaXhpbjxcbiAgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQsXG4gIHR5cGVvZiBTYmJFbGVtZW50XG4+KFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1uYXZpZ2F0aW9uLW1hcmtlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFtcbiAgICAnc2JiLW5hdmlnYXRpb24tYnV0dG9uJyxcbiAgICAnc2JiLW5hdmlnYXRpb24tbGluaycsXG4gIF07XG5cbiAgLyoqXG4gICAqIE1hcmtlciBzaXplIHZhcmlhbnQsIGVpdGhlciBzIG9yIGwuXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbCcgfCAncycgPSAnbCc7XG5cbiAgcHJpdmF0ZSBfY3VycmVudEFjdGl2ZUFjdGlvbj86IFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3NldE1hcmtlclBvc2l0aW9uKCksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykgfHwgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgdGhpcy5fdXBkYXRlTWFya2VyQWN0aW9ucygpO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdoYXMtYWN0aXZlLWFjdGlvbicsICEhdGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbik7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVNYXJrZXJBY3Rpb25zKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMubGlzdENoaWxkcmVuKSB7XG4gICAgICBhY3Rpb24uc2l6ZSA9IHRoaXMuc2l6ZTtcbiAgICB9XG5cbiAgICB0aGlzLl9jdXJyZW50QWN0aXZlQWN0aW9uID0gdGhpcy5saXN0Q2hpbGRyZW4uZmluZCgoYWN0aW9uKSA9PlxuICAgICAgYWN0aW9uLm1hdGNoZXMoJzpzdGF0ZShhY3Rpb24tYWN0aXZlKScpLFxuICAgICk7XG4gICAgdGhpcy5fc2V0TWFya2VyUG9zaXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlQWN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0FjdGl2ZUFjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb24gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScsXG4gICAgKSBhcyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudDtcbiAgICBpZiAoYWN0aXZlQWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdChhY3RpdmVBY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoYWN0aW9uOiBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCk6IHZvaWQge1xuICAgIGlmICghYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVzZXQoKTtcbiAgICDJtXN0YXRlQ29udHJvbGxlcihhY3Rpb24pLmFkZCgnYWN0aW9uLWFjdGl2ZScpO1xuICAgIHRoaXMuX2N1cnJlbnRBY3RpdmVBY3Rpb24gPSBhY3Rpb247XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRNYXJrZXJQb3NpdGlvbigpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fc2V0TWFya2VyUG9zaXRpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnRBY3RpdmVBY3Rpb24pIHtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMuX2N1cnJlbnRBY3RpdmVBY3Rpb24pLmRlbGV0ZSgnYWN0aW9uLWFjdGl2ZScpO1xuICAgICAgdGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbi5jb25uZWN0ZWRTZWN0aW9uPy5jbG9zZSgpO1xuICAgICAgdGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRNYXJrZXJQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRBY3RpdmVBY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMubGlzdENoaWxkcmVuLmluZGV4T2YodGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbikhO1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxMSUVsZW1lbnQ+KFxuICAgICAgYGxpOm50aC1jaGlsZCgke2luZGV4ICsgMX0pYCxcbiAgICApPy5vZmZzZXRUb3A7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wb3NpdGlvbi15JywgYCR7dmFsdWV9cHhgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJMaXN0KCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uLW1hcmtlcic6IFNiYk5hdmlnYXRpb25NYXJrZXJFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0lDcUJhLG9DQUEwQjttQkFBUyxzQkFHOUMsV0FBVzs7OztjQUhBLG1DQUFtQyxZQUduQzs7O3VCQVdWLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0FBQUMsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7Ozs7Ozs7OztBQVZqQixRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLDBCQUFNLENBQUM7O0VBU3REOzs7O0VBQUEsSUFBZ0IsT0FBSTtBQUFBLFVBQUEsTUFBQTs7RUFBcEIsSUFBZ0IsS0FBSSxPQUFBO0FBQUEsU0FBQSx3QkFBQTs7RUFJakQsY0FBQTtBQUNFLFVBQU87QUFibUIsUUFBQSxzQkFBc0IsQ0FDaEQseUJBQ0Esc0JBQ0Q7QUFLNEMsU0FBQSx3QkFBQSxrQkFBQSxNQUFBLG9CQUFrQixJQUFHO0FBRTFELFFBQUEsdUJBQW9CLGtCQUFBLE1BQUEsd0JBQUE7QUFLMUIsUUFBSyxjQUNILElBQUksaUJBQWlCLE1BQU07SUFDekIsYUFBYTtJQUNiLGdCQUFnQixLQUFLLG9CQUFBO0lBQ3RCLENBQUMsQ0FDSDs7RUFHZ0IsV0FBVyxtQkFBeUQ7QUFDckYsU0FBTSxXQUFXLGtCQUFrQjtBQUVuQyxPQUFJLGtCQUFrQixJQUFJLE9BQU8sSUFBSSxrQkFBa0IsSUFBSSxlQUFlLENBQ3hFLE1BQUssc0JBQXNCO0FBRTdCLFFBQUssWUFBWSxxQkFBcUIsQ0FBQyxDQUFDLEtBQUsscUJBQXFCOztFQUc1RCx1QkFBb0I7QUFDMUIsUUFBSyxNQUFNLFVBQVUsS0FBSyxhQUN4QixRQUFPLE9BQU8sS0FBSztBQUdyQixRQUFLLHVCQUF1QixLQUFLLGFBQWEsTUFBTSxXQUNsRCxPQUFPLFFBQVEsb0RBQXdCLENBQ3hDO0FBQ0QsUUFBSyxvQkFBb0I7O0VBR1gsb0JBQWlCO0FBQy9CLFNBQU0sbUJBQW1CO0FBQ3pCLFFBQUssb0JBQW9COztFQUduQixxQkFBa0I7R0FDeEIsTUFBTSxlQUFlLEtBQUssY0FDeEIsNkRBQ3dEO0FBQzFELE9BQUksYUFDRixNQUFLLE9BQU8sYUFBYTs7RUFJdEIsT0FBTyxRQUE2RDtBQUN6RSxPQUFJLENBQUMsT0FDSDtBQUVGLFFBQUssT0FBTztBQUNaLG9CQUFpQixPQUFPLENBQUMsSUFBSSxnQkFBZ0I7QUFDN0MsUUFBSyx1QkFBdUI7QUFDNUIsb0JBQWlCLEtBQUssb0JBQW9CLENBQUM7O0VBRzFCLGFBQWEsbUJBQXlEO0FBQ3ZGLFNBQU0sYUFBYSxrQkFBa0I7QUFFckMsb0JBQWlCLEtBQUssb0JBQW9CLENBQUM7O0VBR3RDLFFBQUs7QUFDVixPQUFJLEtBQUssc0JBQXNCO0FBQzdCLHFCQUFpQixLQUFLLHFCQUFxQixDQUFDLE9BQU8sZ0JBQWdCO0FBQ25FLFNBQUsscUJBQXFCLGtCQUFrQixPQUFPO0FBQ25ELFNBQUssdUJBQXVCLEtBQUE7OztFQUl4QixxQkFBa0I7QUFDeEIsT0FBSSxDQUFDLEtBQUsscUJBQ1I7R0FHRixNQUFNLFFBQVEsS0FBSyxhQUFhLFFBQVEsS0FBSyxxQkFBc0I7R0FDbkUsTUFBTSxRQUFRLEtBQUssV0FBWSxjQUM3QixnQkFBZ0IsUUFBUSxFQUFDLEdBQzFCLEVBQUU7QUFDSCxPQUFJLFNBQVMsS0FDWCxNQUFLLE9BQU8sWUFBWSxzQ0FBc0MsR0FBRyxNQUFLLElBQUs7O0VBSTVELFNBQU07QUFDdkIsVUFBTyxLQUFLLFlBQVkifQ==