@sbb-esta/lyne-elements-dev 4.7.0-dev.1773755649 → 4.7.0-dev.1773817331
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/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
- package/breadcrumb/breadcrumb-group.js +1 -1
- package/{breadcrumb-group.component-BA8KK3Om.js → breadcrumb-group.component-CfUyO1sI.js} +1 -1
- package/breadcrumb.js +1 -1
- package/breadcrumb.pure.js +1 -1
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
- package/development/breadcrumb/breadcrumb-group.js +1 -1
- package/development/breadcrumb-group.component-zU06d9ni.js +279 -0
- package/development/breadcrumb.js +1 -1
- package/development/breadcrumb.pure.js +1 -1
- package/package.json +2 -2
- package/development/breadcrumb-group.component-DjsoMTPI.js +0 -278
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../../breadcrumb-group.component-
|
|
1
|
+
import { t as e } from "../../breadcrumb-group.component-CfUyO1sI.js";
|
|
2
2
|
export { e as SbbBreadcrumbGroupElement };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as e } from "../breadcrumb-group.component-
|
|
1
|
+
import { t as e } from "../breadcrumb-group.component-CfUyO1sI.js";
|
|
2
2
|
e.define(), console.warn("The entrypoint '@sbb-esta/elements/breadcrumb/breadcrumb-group.js' has been deprecated.\nUse either '@sbb-esta/elements/breadcrumb.js' or '@sbb-esta/elements/breadcrumb.pure.js' instead.");
|
|
3
3
|
//#endregion
|
|
4
4
|
export { e as SbbBreadcrumbGroupElement };
|
|
@@ -10,7 +10,7 @@ import "./icon.js";
|
|
|
10
10
|
import { ResizeController as d } from "@lit-labs/observers/resize-controller.js";
|
|
11
11
|
import { getNextElementIndex as f, isArrowKeyPressed as p, sbbInputModalityDetector as m } from "./core/a11y.js";
|
|
12
12
|
//#region src/elements/breadcrumb/breadcrumb-group/breadcrumb-group.scss?lit&inline
|
|
13
|
-
var h = n`:host{display:block}:host(:is(:state(loaded),[state--loaded])){--sbb-breadcrumb-group-visibility:visible}:host(:is(:is(:state(state-collapsed),[state--state-collapsed]),:is(:state(state-manually-expanded),[state--state-manually-expanded]))){--sbb-breadcrumb-group-wrap:wrap}.sbb-breadcrumb-group{font-size:inherit;flex-wrap:var(--sbb-breadcrumb-group-wrap);column-gap:var(--sbb-spacing-fixed-1x);visibility:var(--sbb-breadcrumb-group-visibility);margin:0;padding:0;list-style:none;display:flex}.sbb-breadcrumb-group__item{column-gap:var(--sbb-spacing-fixed-1x);flex:none;display:flex}.sbb-breadcrumb-group__divider-icon{color:var(--sbb-breadcrumb-group-ellipsis-color)}#sbb-breadcrumb-ellipsis{appearance:none;box-sizing:border-box;-webkit-tap-highlight-color:transparent;color:var(--sbb-breadcrumb-group-ellipsis-color);--sbb-text-font-size:var(--sbb-text-font-size-xxs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);letter-spacing:.01em;line-height:0;font-size:var(--sbb-text-font-size-xxs);width:var(--sbb-size-icon-ui-small);height:var(--sbb-size-icon-ui-small);border:none;border:var(--sbb-breadcrumb-group-ellipsis-border-width) solid var(--sbb-breadcrumb-group-ellipsis-border-color);padding:0;cursor:var(--sbb-cursor-pointer);background:0 0;background-color:var(--sbb-breadcrumb-group-ellipsis-background-color);border-radius:50%;outline:none;margin:0;padding-block-end:.5em;overflow:hidden}@media (forced-colors:active){#sbb-breadcrumb-ellipsis{--sbb-breadcrumb-group-ellipsis-border-width:var(--sbb-border-width-2x);--sbb-breadcrumb-group-ellipsis-border-color:CanvasText}}@media (any-hover:hover){#sbb-breadcrumb-ellipsis:hover{--sbb-breadcrumb-group-ellipsis-color:var(--sbb-color-2);--sbb-breadcrumb-group-ellipsis-background-color:var(--sbb-background-color-3)}}@media (any-hover:hover) and (forced-colors:active){#sbb-breadcrumb-ellipsis:hover{--sbb-breadcrumb-group-ellipsis-border-color:Highlight}}#sbb-breadcrumb-ellipsis:focus-visible{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style,solid) var(--sbb-focus-outline-width)}`, g = 3, _ = (() => {
|
|
13
|
+
var h = n`:host{min-width:0;display:block}:host(:is(:state(loaded),[state--loaded])){--sbb-breadcrumb-group-visibility:visible}:host(:is(:is(:state(state-collapsed),[state--state-collapsed]),:is(:state(state-manually-expanded),[state--state-manually-expanded]))){--sbb-breadcrumb-group-wrap:wrap}.sbb-breadcrumb-group{font-size:inherit;flex-wrap:var(--sbb-breadcrumb-group-wrap);column-gap:var(--sbb-spacing-fixed-1x);visibility:var(--sbb-breadcrumb-group-visibility);margin:0;padding:0;list-style:none;display:flex}.sbb-breadcrumb-group__item{column-gap:var(--sbb-spacing-fixed-1x);flex:none;display:flex}.sbb-breadcrumb-group__divider-icon{color:var(--sbb-breadcrumb-group-ellipsis-color)}#sbb-breadcrumb-ellipsis{appearance:none;box-sizing:border-box;-webkit-tap-highlight-color:transparent;color:var(--sbb-breadcrumb-group-ellipsis-color);--sbb-text-font-size:var(--sbb-text-font-size-xxs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);letter-spacing:.01em;line-height:0;font-size:var(--sbb-text-font-size-xxs);width:var(--sbb-size-icon-ui-small);height:var(--sbb-size-icon-ui-small);border:none;border:var(--sbb-breadcrumb-group-ellipsis-border-width) solid var(--sbb-breadcrumb-group-ellipsis-border-color);padding:0;cursor:var(--sbb-cursor-pointer);background:0 0;background-color:var(--sbb-breadcrumb-group-ellipsis-background-color);border-radius:50%;outline:none;margin:0;padding-block-end:.5em;overflow:hidden}@media (forced-colors:active){#sbb-breadcrumb-ellipsis{--sbb-breadcrumb-group-ellipsis-border-width:var(--sbb-border-width-2x);--sbb-breadcrumb-group-ellipsis-border-color:CanvasText}}@media (any-hover:hover){#sbb-breadcrumb-ellipsis:hover{--sbb-breadcrumb-group-ellipsis-color:var(--sbb-color-2);--sbb-breadcrumb-group-ellipsis-background-color:var(--sbb-background-color-3)}}@media (any-hover:hover) and (forced-colors:active){#sbb-breadcrumb-ellipsis:hover{--sbb-breadcrumb-group-ellipsis-border-color:Highlight}}#sbb-breadcrumb-ellipsis:focus-visible{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style,solid) var(--sbb-focus-outline-width)}`, g = 3, _ = (() => {
|
|
14
14
|
let n = s(o), _ = [], v;
|
|
15
15
|
return class extends n {
|
|
16
16
|
static {
|
package/breadcrumb.js
CHANGED
package/breadcrumb.pure.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbBreadcrumbGroupElement } from "../../breadcrumb-group.component-
|
|
1
|
+
import { t as SbbBreadcrumbGroupElement } from "../../breadcrumb-group.component-zU06d9ni.js";
|
|
2
2
|
export { SbbBreadcrumbGroupElement };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as SbbBreadcrumbGroupElement } from "../breadcrumb-group.component-
|
|
1
|
+
import { t as SbbBreadcrumbGroupElement } from "../breadcrumb-group.component-zU06d9ni.js";
|
|
2
2
|
//#region src/elements/breadcrumb/breadcrumb-group.ts
|
|
3
3
|
/** @entrypoint */
|
|
4
4
|
SbbBreadcrumbGroupElement.define();
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { css, html, nothing } from "lit";
|
|
3
|
+
import { state } from "lit/decorators.js";
|
|
4
|
+
import { SbbElement } from "./core/base-elements.js";
|
|
5
|
+
import { SbbNamedSlotListMixin } from "./core/mixins.js";
|
|
6
|
+
import { boxSizingStyles } from "./core/styles.js";
|
|
7
|
+
import { SbbLanguageController } from "./core/controllers.js";
|
|
8
|
+
import { i18nBreadcrumbEllipsisButtonLabel } from "./core/i18n.js";
|
|
9
|
+
import "./icon.js";
|
|
10
|
+
import { ResizeController } from "@lit-labs/observers/resize-controller.js";
|
|
11
|
+
import { getNextElementIndex, isArrowKeyPressed, sbbInputModalityDetector } from "./core/a11y.js";
|
|
12
|
+
//#region src/elements/breadcrumb/breadcrumb-group/breadcrumb-group.scss?lit&inline
|
|
13
|
+
var breadcrumb_group_default = css`:host {
|
|
14
|
+
display: block;
|
|
15
|
+
min-width: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
:host(:is(:state(loaded),[state--loaded])) {
|
|
19
|
+
--sbb-breadcrumb-group-visibility: visible;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:host(:is(:is(:state(state-collapsed),[state--state-collapsed]), :is(:state(state-manually-expanded),[state--state-manually-expanded]))) {
|
|
23
|
+
--sbb-breadcrumb-group-wrap: wrap;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.sbb-breadcrumb-group {
|
|
27
|
+
list-style: none;
|
|
28
|
+
margin: 0;
|
|
29
|
+
padding: 0;
|
|
30
|
+
font-size: inherit;
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-wrap: var(--sbb-breadcrumb-group-wrap);
|
|
33
|
+
column-gap: var(--sbb-spacing-fixed-1x);
|
|
34
|
+
visibility: var(--sbb-breadcrumb-group-visibility);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.sbb-breadcrumb-group__item {
|
|
38
|
+
flex: 0 0 auto;
|
|
39
|
+
display: flex;
|
|
40
|
+
column-gap: var(--sbb-spacing-fixed-1x);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.sbb-breadcrumb-group__divider-icon {
|
|
44
|
+
color: var(--sbb-breadcrumb-group-ellipsis-color);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
#sbb-breadcrumb-ellipsis {
|
|
48
|
+
appearance: none;
|
|
49
|
+
box-sizing: border-box;
|
|
50
|
+
margin: 0;
|
|
51
|
+
outline: none;
|
|
52
|
+
border: none;
|
|
53
|
+
border-radius: 0;
|
|
54
|
+
padding: 0;
|
|
55
|
+
background: none;
|
|
56
|
+
-webkit-tap-highlight-color: transparent;
|
|
57
|
+
color: inherit;
|
|
58
|
+
--sbb-text-font-size: var(--sbb-text-font-size-xxs);
|
|
59
|
+
font-family: var(--sbb-typo-font-family);
|
|
60
|
+
font-weight: normal;
|
|
61
|
+
line-height: var(--sbb-typo-line-height-text);
|
|
62
|
+
letter-spacing: var(--sbb-typo-letter-spacing-text);
|
|
63
|
+
font-size: var(--sbb-text-font-size);
|
|
64
|
+
line-height: 0;
|
|
65
|
+
letter-spacing: 0.01em;
|
|
66
|
+
font-size: var(--sbb-text-font-size-xxs);
|
|
67
|
+
width: var(--sbb-size-icon-ui-small);
|
|
68
|
+
height: var(--sbb-size-icon-ui-small);
|
|
69
|
+
border: var(--sbb-breadcrumb-group-ellipsis-border-width) solid var(--sbb-breadcrumb-group-ellipsis-border-color);
|
|
70
|
+
border-radius: 50%;
|
|
71
|
+
padding-block-end: 0.5em;
|
|
72
|
+
cursor: var(--sbb-cursor-pointer);
|
|
73
|
+
color: var(--sbb-breadcrumb-group-ellipsis-color);
|
|
74
|
+
background-color: var(--sbb-breadcrumb-group-ellipsis-background-color);
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
}
|
|
77
|
+
@media (forced-colors: active) {
|
|
78
|
+
#sbb-breadcrumb-ellipsis {
|
|
79
|
+
--sbb-breadcrumb-group-ellipsis-border-width: var(--sbb-border-width-2x);
|
|
80
|
+
--sbb-breadcrumb-group-ellipsis-border-color: CanvasText;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
@media (any-hover: hover) {
|
|
84
|
+
#sbb-breadcrumb-ellipsis:hover {
|
|
85
|
+
--sbb-breadcrumb-group-ellipsis-color: var(--sbb-color-2);
|
|
86
|
+
--sbb-breadcrumb-group-ellipsis-background-color: var(--sbb-background-color-3);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
@media (any-hover: hover) and (forced-colors: active) {
|
|
90
|
+
#sbb-breadcrumb-ellipsis:hover {
|
|
91
|
+
--sbb-breadcrumb-group-ellipsis-border-color: Highlight;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
#sbb-breadcrumb-ellipsis:focus-visible {
|
|
95
|
+
outline-offset: var(--sbb-focus-outline-offset);
|
|
96
|
+
outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
|
|
97
|
+
}`;
|
|
98
|
+
//#endregion
|
|
99
|
+
//#region src/elements/breadcrumb/breadcrumb-group/breadcrumb-group.component.ts
|
|
100
|
+
var MIN_BREADCRUMBS_TO_COLLAPSE = 3;
|
|
101
|
+
/**
|
|
102
|
+
* It can be used as a container for one or more `sbb-breadcrumb` component.
|
|
103
|
+
*
|
|
104
|
+
* @slot - Use the unnamed slot to add `sbb-breadcrumb` elements.
|
|
105
|
+
*/
|
|
106
|
+
var SbbBreadcrumbGroupElement = (() => {
|
|
107
|
+
let _classSuper = SbbNamedSlotListMixin(SbbElement);
|
|
108
|
+
let _instanceExtraInitializers = [];
|
|
109
|
+
let _set__state_decorators;
|
|
110
|
+
return class SbbBreadcrumbGroupElement extends _classSuper {
|
|
111
|
+
static {
|
|
112
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
113
|
+
_set__state_decorators = [state()];
|
|
114
|
+
__esDecorate(this, null, _set__state_decorators, {
|
|
115
|
+
kind: "setter",
|
|
116
|
+
name: "_state",
|
|
117
|
+
static: false,
|
|
118
|
+
private: false,
|
|
119
|
+
access: {
|
|
120
|
+
has: (obj) => "_state" in obj,
|
|
121
|
+
set: (obj, value) => {
|
|
122
|
+
obj._state = value;
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
metadata: _metadata
|
|
126
|
+
}, null, _instanceExtraInitializers);
|
|
127
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
128
|
+
enumerable: true,
|
|
129
|
+
configurable: true,
|
|
130
|
+
writable: true,
|
|
131
|
+
value: _metadata
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
static {
|
|
135
|
+
this.elementName = "sbb-breadcrumb-group";
|
|
136
|
+
}
|
|
137
|
+
static {
|
|
138
|
+
this.role = "navigation";
|
|
139
|
+
}
|
|
140
|
+
static {
|
|
141
|
+
this.styles = [boxSizingStyles, breadcrumb_group_default];
|
|
142
|
+
}
|
|
143
|
+
/** The state of the breadcrumb group. */
|
|
144
|
+
set _state(state) {
|
|
145
|
+
if (this._stateInternal) this.internals.states.delete(`state-${this._stateInternal}`);
|
|
146
|
+
this._stateInternal = state;
|
|
147
|
+
if (this._stateInternal) this.internals.states.add(`state-${this._stateInternal}`);
|
|
148
|
+
}
|
|
149
|
+
get _state() {
|
|
150
|
+
return this._stateInternal;
|
|
151
|
+
}
|
|
152
|
+
constructor() {
|
|
153
|
+
super();
|
|
154
|
+
this.listChildLocalNames = (__runInitializers(this, _instanceExtraInitializers), ["sbb-breadcrumb"]);
|
|
155
|
+
this._stateInternal = null;
|
|
156
|
+
this._resizeObserver = new ResizeController(this, {
|
|
157
|
+
target: null,
|
|
158
|
+
skipInitial: true,
|
|
159
|
+
callback: () => this._evaluateCollapsedState()
|
|
160
|
+
});
|
|
161
|
+
this._language = new SbbLanguageController(this);
|
|
162
|
+
this._markForFocus = false;
|
|
163
|
+
this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
|
|
164
|
+
}
|
|
165
|
+
_handleKeyDown(evt) {
|
|
166
|
+
if (!this.listChildren.length || evt.target !== this && evt.target.parentElement !== this) return;
|
|
167
|
+
if (isArrowKeyPressed(evt)) {
|
|
168
|
+
if (this._state === "collapsed") return this._focusNextCollapsed(evt);
|
|
169
|
+
this._focusNext(evt);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
firstUpdated(changedProperties) {
|
|
173
|
+
super.firstUpdated(changedProperties);
|
|
174
|
+
this._resizeObserver.observe(this);
|
|
175
|
+
this.internals.states.add("loaded");
|
|
176
|
+
}
|
|
177
|
+
willUpdate(changedProperties) {
|
|
178
|
+
super.willUpdate(changedProperties);
|
|
179
|
+
if (changedProperties.has("listChildren")) this._syncBreadcrumbs();
|
|
180
|
+
}
|
|
181
|
+
updated(changedProperties) {
|
|
182
|
+
super.updated(changedProperties);
|
|
183
|
+
if (changedProperties.has("listChildren")) Promise.resolve().then(() => this._evaluateCollapsedState());
|
|
184
|
+
if (this._markForFocus && sbbInputModalityDetector.mostRecentModality === "keyboard") {
|
|
185
|
+
this.listChildren[1]?.focus();
|
|
186
|
+
this._markForFocus = false;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/** Apply the aria-current attribute to the last sbb-breadcrumb element. */
|
|
190
|
+
_syncBreadcrumbs() {
|
|
191
|
+
this.listChildren.slice(0, -1).filter((c) => c.hasAttribute("accessibility-current")).forEach((c) => c.removeAttribute("accessibility-current"));
|
|
192
|
+
this.listChildren[this.listChildren.length - 1]?.setAttribute("accessibility-current", "page");
|
|
193
|
+
if (this.listChildren.length < MIN_BREADCRUMBS_TO_COLLAPSE) this._state = null;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Sets the focus on the correct element when the ellipsis breadcrumb is displayed and the user is navigating with keyboard's arrows.
|
|
197
|
+
*/
|
|
198
|
+
_focusNextCollapsed(evt) {
|
|
199
|
+
const arrayCollapsed = [
|
|
200
|
+
this.listChildren[0],
|
|
201
|
+
this.shadowRoot.querySelector("#sbb-breadcrumb-ellipsis"),
|
|
202
|
+
this.listChildren[this.listChildren.length - 1]
|
|
203
|
+
];
|
|
204
|
+
this._focusNext(evt, arrayCollapsed);
|
|
205
|
+
}
|
|
206
|
+
_focusNext(evt, breadcrumbs = this.listChildren) {
|
|
207
|
+
breadcrumbs[getNextElementIndex(evt, breadcrumbs.findIndex((e) => e === document.activeElement || e === this.shadowRoot.activeElement), breadcrumbs.length)]?.focus();
|
|
208
|
+
evt.preventDefault();
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Note: due to @State annotation on _state, this method triggers a new render; as a consequence, the focus is moved
|
|
212
|
+
* to the `body`, so if the ellipsis element has focus, it's asynchronously forced to the first element.
|
|
213
|
+
*/
|
|
214
|
+
_expandBreadcrumbs() {
|
|
215
|
+
this._state = "manually-expanded";
|
|
216
|
+
this._markForFocus = true;
|
|
217
|
+
}
|
|
218
|
+
/** Evaluate if the expanded breadcrumb element fits in page width, otherwise it needs ellipsis */
|
|
219
|
+
_evaluateCollapsedState() {
|
|
220
|
+
if (!this._state && this.scrollWidth > this.offsetWidth && this.listChildren.length >= MIN_BREADCRUMBS_TO_COLLAPSE) {
|
|
221
|
+
this._state = "collapsed";
|
|
222
|
+
this._resizeObserver.hostDisconnected();
|
|
223
|
+
this.removeController(this._resizeObserver);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
_renderCollapsed() {
|
|
227
|
+
return html`
|
|
228
|
+
<li class="sbb-breadcrumb-group__item">
|
|
229
|
+
<slot name="li-0"></slot>
|
|
230
|
+
</li>
|
|
231
|
+
<li class="sbb-breadcrumb-group__item" id="sbb-breadcrumb-group-ellipsis">
|
|
232
|
+
<sbb-icon
|
|
233
|
+
name="chevron-small-right-small"
|
|
234
|
+
class="sbb-breadcrumb-group__divider-icon"
|
|
235
|
+
></sbb-icon>
|
|
236
|
+
<button
|
|
237
|
+
type="button"
|
|
238
|
+
id="sbb-breadcrumb-ellipsis"
|
|
239
|
+
aria-label=${i18nBreadcrumbEllipsisButtonLabel[this._language.current]}
|
|
240
|
+
aria-expanded="false"
|
|
241
|
+
@click=${() => this._expandBreadcrumbs()}
|
|
242
|
+
>
|
|
243
|
+
...
|
|
244
|
+
</button>
|
|
245
|
+
</li>
|
|
246
|
+
<li class="sbb-breadcrumb-group__item">
|
|
247
|
+
<sbb-icon
|
|
248
|
+
name="chevron-small-right-small"
|
|
249
|
+
class="sbb-breadcrumb-group__divider-icon"
|
|
250
|
+
></sbb-icon>
|
|
251
|
+
<slot name=${`li-${this.listChildren.length - 1}`}></slot>
|
|
252
|
+
</li>
|
|
253
|
+
`;
|
|
254
|
+
}
|
|
255
|
+
_renderExpanded() {
|
|
256
|
+
return this.listSlotEntries().map((slot, index, array) => html`
|
|
257
|
+
<li class="sbb-breadcrumb-group__item">
|
|
258
|
+
<slot name=${slot.name}></slot>
|
|
259
|
+
${index !== array.length - 1 ? html`<sbb-icon
|
|
260
|
+
name="chevron-small-right-small"
|
|
261
|
+
class="sbb-breadcrumb-group__divider-icon"
|
|
262
|
+
></sbb-icon>` : nothing}
|
|
263
|
+
</li>
|
|
264
|
+
`);
|
|
265
|
+
}
|
|
266
|
+
render() {
|
|
267
|
+
return html`
|
|
268
|
+
<ol class="sbb-breadcrumb-group">
|
|
269
|
+
${this._state === "collapsed" ? this._renderCollapsed() : this._renderExpanded()}
|
|
270
|
+
</ol>
|
|
271
|
+
${this.renderHiddenSlot()}
|
|
272
|
+
`;
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
})();
|
|
276
|
+
//#endregion
|
|
277
|
+
export { SbbBreadcrumbGroupElement as t };
|
|
278
|
+
|
|
279
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ncm91cC5jb21wb25lbnQtelUwNmQ5bmkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi1ncm91cC9icmVhZGNydW1iLWdyb3VwLnNjc3M/bGl0JmlubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWItZ3JvdXAvYnJlYWRjcnVtYi1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBBbGxvd3Mgc2l6ZSBjYWxjdWxhdGlvbiBldmVuIGlmIGluIGdyaWQgb3IgZmxleCBjb250ZXh0LlxuICBtaW4td2lkdGg6IDA7XG59XG5cbjpob3N0KDpzdGF0ZShsb2FkZWQpKSB7XG4gIC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1jb2xsYXBzZWQpLCA6c3RhdGUoc3RhdGUtbWFudWFsbHktZXhwYW5kZWQpKSkge1xuICAtLXNiYi1icmVhZGNydW1iLWdyb3VwLXdyYXA6IHdyYXA7XG59XG5cbi5zYmItYnJlYWRjcnVtYi1ncm91cCB7XG4gIEBpbmNsdWRlIHNiYi5saXN0LXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogdmFyKC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtd3JhcCk7XG4gIGNvbHVtbi1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgdmlzaWJpbGl0eTogdmFyKC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtdmlzaWJpbGl0eSk7XG59XG5cbi5zYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2x1bW4tZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCk7XG59XG5cbi5zYmItYnJlYWRjcnVtYi1ncm91cF9fZGl2aWRlci1pY29uIHtcbiAgY29sb3I6IHZhcigtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWNvbG9yKTtcbn1cblxuI3NiYi1icmVhZGNydW1iLWVsbGlwc2lzIHtcbiAgQGluY2x1ZGUgc2JiLmJ1dHRvbi1yZXNldDtcbiAgQGluY2x1ZGUgc2JiLnRleHQteHhzLS1yZWd1bGFyO1xuXG4gIC8vIGxpbmUgaGVpZ2h0IGFuZCBsZXR0ZXItc3BhY2luZyBuZWVkZWQgdG8gbWF0Y2ggc3F1YXJlcyBkcmF3biBpbiBGaWdtYS5cbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXh4cyk7XG4gIHdpZHRoOiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1ib3JkZXItd2lkdGgpIHNvbGlkXG4gICAgdmFyKC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXMtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIC8vIEluIG9yZGVyIHRvIHZlcnRpY2FsbHkgY2VudGVyIC4uLiwgd2UgdXNlIHBhZGRpbmcgd2l0aCBoYWxmIHRoZSBmb250IHNpemUuXG4gIHBhZGRpbmctYmxvY2stZW5kOiAwLjVlbTtcbiAgY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuICBjb2xvcjogdmFyKC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXMtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMngpO1xuICAgIC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXMtYm9yZGVyLWNvbG9yOiBDYW52YXNUZXh0O1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICAgICY6aG92ZXIge1xuICAgICAgLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTIpO1xuICAgICAgLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0zKTtcblxuICAgICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgICAtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWJvcmRlci1jb2xvcjogSGlnaGxpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG4gIH1cbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGdldE5leHRFbGVtZW50SW5kZXgsXG4gIGlzQXJyb3dLZXlQcmVzc2VkLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG59IGZyb20gJy4uLy4uL2NvcmUvYTExeS50cyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMudHMnO1xuaW1wb3J0IHsgaTE4bkJyZWFkY3J1bWJFbGxpcHNpc0J1dHRvbkxhYmVsIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLnRzJztcbmltcG9ydCB7IFNiYk5hbWVkU2xvdExpc3RNaXhpbiwgdHlwZSBXaXRoTGlzdENoaWxkcmVuIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJCcmVhZGNydW1iRWxlbWVudCB9IGZyb20gJy4uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9icmVhZGNydW1iLWdyb3VwLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vaWNvbi50cyc7XG5cbmNvbnN0IE1JTl9CUkVBRENSVU1CU19UT19DT0xMQVBTRSA9IDM7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItYnJlYWRjcnVtYmAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYnJlYWRjcnVtYmAgZWxlbWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJCcmVhZGNydW1iR3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJCcmVhZGNydW1iRWxlbWVudCxcbiAgdHlwZW9mIFNiYkVsZW1lbnRcbj4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWJyZWFkY3J1bWItZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHN0eWxlXTtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxpc3RDaGlsZExvY2FsTmFtZXMgPSBbJ3NiYi1icmVhZGNydW1iJ107XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgYnJlYWRjcnVtYiBncm91cC4gKi9cbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBzZXQgX3N0YXRlKHN0YXRlOiAnY29sbGFwc2VkJyB8ICdtYW51YWxseS1leHBhbmRlZCcgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gICAgdGhpcy5fc3RhdGVJbnRlcm5hbCA9IHN0YXRlO1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiAnY29sbGFwc2VkJyB8ICdtYW51YWxseS1leHBhbmRlZCcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVJbnRlcm5hbDtcbiAgfVxuICBwcml2YXRlIF9zdGF0ZUludGVybmFsOiAnY29sbGFwc2VkJyB8ICdtYW51YWxseS1leHBhbmRlZCcgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX2V2YWx1YXRlQ29sbGFwc2VkU3RhdGUoKSxcbiAgfSk7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbWFya0ZvckZvY3VzID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5RG93bihlKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggfHxcbiAgICAgIC8vIGRvbid0IHRyYXAgbmVzdGVkIGhhbmRsaW5nXG4gICAgICAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpICE9PSB0aGlzICYmIChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50ICE9PSB0aGlzKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0Fycm93S2V5UHJlc3NlZChldnQpKSB7XG4gICAgICBpZiAodGhpcy5fc3RhdGUgPT09ICdjb2xsYXBzZWQnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c05leHRDb2xsYXBzZWQoZXZ0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2ZvY3VzTmV4dChldnQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnbG9hZGVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICB0aGlzLl9zeW5jQnJlYWRjcnVtYnMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLl9ldmFsdWF0ZUNvbGxhcHNlZFN0YXRlKCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbWFya0ZvckZvY3VzICYmIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuWzFdPy5mb2N1cygpO1xuXG4gICAgICAvLyBSZXNldCBtYXJrIGZvciBmb2N1c1xuICAgICAgdGhpcy5fbWFya0ZvckZvY3VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFwcGx5IHRoZSBhcmlhLWN1cnJlbnQgYXR0cmlidXRlIHRvIHRoZSBsYXN0IHNiYi1icmVhZGNydW1iIGVsZW1lbnQuICovXG4gIHByaXZhdGUgX3N5bmNCcmVhZGNydW1icygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgLnNsaWNlKDAsIC0xKVxuICAgICAgLmZpbHRlcigoYykgPT4gYy5oYXNBdHRyaWJ1dGUoJ2FjY2Vzc2liaWxpdHktY3VycmVudCcpKVxuICAgICAgLmZvckVhY2goKGMpID0+IGMucmVtb3ZlQXR0cmlidXRlKCdhY2Nlc3NpYmlsaXR5LWN1cnJlbnQnKSk7XG4gICAgdGhpcy5saXN0Q2hpbGRyZW5bdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIC0gMV0/LnNldEF0dHJpYnV0ZSgnYWNjZXNzaWJpbGl0eS1jdXJyZW50JywgJ3BhZ2UnKTtcblxuICAgIC8vIElmIGl0IGlzIG5vdCBleHBhbmRhYmxlLCByZXNldCBzdGF0ZVxuICAgIGlmICh0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggPCBNSU5fQlJFQURDUlVNQlNfVE9fQ09MTEFQU0UpIHtcbiAgICAgIHRoaXMuX3N0YXRlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZm9jdXMgb24gdGhlIGNvcnJlY3QgZWxlbWVudCB3aGVuIHRoZSBlbGxpcHNpcyBicmVhZGNydW1iIGlzIGRpc3BsYXllZCBhbmQgdGhlIHVzZXIgaXMgbmF2aWdhdGluZyB3aXRoIGtleWJvYXJkJ3MgYXJyb3dzLlxuICAgKi9cbiAgcHJpdmF0ZSBfZm9jdXNOZXh0Q29sbGFwc2VkKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGFycmF5Q29sbGFwc2VkOiBTYmJCcmVhZGNydW1iRWxlbWVudFtdID0gW1xuICAgICAgdGhpcy5saXN0Q2hpbGRyZW5bMF0sXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJyNzYmItYnJlYWRjcnVtYi1lbGxpcHNpcycpIGFzIFNiYkJyZWFkY3J1bWJFbGVtZW50LFxuICAgICAgdGhpcy5saXN0Q2hpbGRyZW5bdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIC0gMV0sXG4gICAgXTtcbiAgICB0aGlzLl9mb2N1c05leHQoZXZ0LCBhcnJheUNvbGxhcHNlZCk7XG4gIH1cblxuICBwcml2YXRlIF9mb2N1c05leHQoXG4gICAgZXZ0OiBLZXlib2FyZEV2ZW50LFxuICAgIGJyZWFkY3J1bWJzOiBTYmJCcmVhZGNydW1iRWxlbWVudFtdID0gdGhpcy5saXN0Q2hpbGRyZW4sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGJyZWFkY3J1bWJzLmZpbmRJbmRleChcbiAgICAgIChlKSA9PiBlID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IHx8IGUgPT09IHRoaXMuc2hhZG93Um9vdCEuYWN0aXZlRWxlbWVudCxcbiAgICApO1xuICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGJyZWFkY3J1bWJzLmxlbmd0aCk7XG4gICAgYnJlYWRjcnVtYnNbbmV4dEluZGV4XT8uZm9jdXMoKTtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RlOiBkdWUgdG8gQFN0YXRlIGFubm90YXRpb24gb24gX3N0YXRlLCB0aGlzIG1ldGhvZCB0cmlnZ2VycyBhIG5ldyByZW5kZXI7IGFzIGEgY29uc2VxdWVuY2UsIHRoZSBmb2N1cyBpcyBtb3ZlZFxuICAgKiB0byB0aGUgYGJvZHlgLCBzbyBpZiB0aGUgZWxsaXBzaXMgZWxlbWVudCBoYXMgZm9jdXMsIGl0J3MgYXN5bmNocm9ub3VzbHkgZm9yY2VkIHRvIHRoZSBmaXJzdCBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZXhwYW5kQnJlYWRjcnVtYnMoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnbWFudWFsbHktZXhwYW5kZWQnO1xuICAgIHRoaXMuX21hcmtGb3JGb2N1cyA9IHRydWU7XG4gIH1cblxuICAvKiogRXZhbHVhdGUgaWYgdGhlIGV4cGFuZGVkIGJyZWFkY3J1bWIgZWxlbWVudCBmaXRzIGluIHBhZ2Ugd2lkdGgsIG90aGVyd2lzZSBpdCBuZWVkcyBlbGxpcHNpcyAqL1xuICBwcml2YXRlIF9ldmFsdWF0ZUNvbGxhcHNlZFN0YXRlKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9zdGF0ZSAmJlxuICAgICAgdGhpcy5zY3JvbGxXaWR0aCA+IHRoaXMub2Zmc2V0V2lkdGggJiZcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCA+PSBNSU5fQlJFQURDUlVNQlNfVE9fQ09MTEFQU0VcbiAgICApIHtcbiAgICAgIHRoaXMuX3N0YXRlID0gJ2NvbGxhcHNlZCc7XG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5ob3N0RGlzY29ubmVjdGVkKCk7XG4gICAgICB0aGlzLnJlbW92ZUNvbnRyb2xsZXIodGhpcy5fcmVzaXplT2JzZXJ2ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckNvbGxhcHNlZCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwibGktMFwiPjwvc2xvdD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiIGlkPVwic2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXNcIj5cbiAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2RpdmlkZXItaWNvblwiXG4gICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgaWQ9XCJzYmItYnJlYWRjcnVtYi1lbGxpcHNpc1wiXG4gICAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5CcmVhZGNydW1iRWxsaXBzaXNCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX2V4cGFuZEJyZWFkY3J1bWJzKCl9XG4gICAgICAgID5cbiAgICAgICAgICAuLi5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2l0ZW1cIj5cbiAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2RpdmlkZXItaWNvblwiXG4gICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICA8c2xvdCBuYW1lPSR7YGxpLSR7dGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIC0gMX1gfT48L3Nsb3Q+XG4gICAgICA8L2xpPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJFeHBhbmRlZCgpOiBUZW1wbGF0ZVJlc3VsdFtdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0U2xvdEVudHJpZXMoKS5tYXAoXG4gICAgICAoc2xvdCwgaW5kZXgsIGFycmF5KSA9PiBodG1sYFxuICAgICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9JHtzbG90Lm5hbWV9Pjwvc2xvdD5cbiAgICAgICAgICAke2luZGV4ICE9PSBhcnJheS5sZW5ndGggLSAxXG4gICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2RpdmlkZXItaWNvblwiXG4gICAgICAgICAgICAgID48L3NiYi1pY29uPmBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPC9saT5cbiAgICAgIGAsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPG9sIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBcIj5cbiAgICAgICAgJHt0aGlzLl9zdGF0ZSA9PT0gJ2NvbGxhcHNlZCcgPyB0aGlzLl9yZW5kZXJDb2xsYXBzZWQoKSA6IHRoaXMuX3JlbmRlckV4cGFuZGVkKCl9XG4gICAgICA8L29sPlxuICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX1cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYnJlYWRjcnVtYi1ncm91cCc6IFNiYkJyZWFkY3J1bWJHcm91cEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDb0JBLElBQU0sOEJBQThCOzs7Ozs7SUFPdkIsbUNBQXlCO21CQUFTLHNCQUc3QyxXQUFXOzs7Y0FIQSxrQ0FBa0MsWUFHbEM7Ozs2QkFPVixPQUFPLENBQUE7QUFDUixnQkFBQSxNQUFBLE1BQUEsd0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxZQUFBO0tBQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFZLFNBQU07O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxNQUFBLDJCQUFBOzs7Ozs7Ozs7QUFQYyxRQUFBLGNBQXNCOzs7QUFDdEIsUUFBQSxPQUFPOzs7QUFDaEIsUUFBQSxTQUF5QixDQUFDLGlCQUFpQix5QkFBTTs7O0VBS3hFLElBQVksT0FBTyxPQUErQztBQUNoRSxPQUFJLEtBQUssZUFDUCxNQUFLLFVBQVUsT0FBTyxPQUFPLFNBQVMsS0FBSyxpQkFBaUI7QUFFOUQsUUFBSyxpQkFBaUI7QUFDdEIsT0FBSSxLQUFLLGVBQ1AsTUFBSyxVQUFVLE9BQU8sSUFBSSxTQUFTLEtBQUssaUJBQWlCOztFQUc3RCxJQUFZLFNBQU07QUFDaEIsVUFBTyxLQUFLOztFQVlkLGNBQUE7QUFDRSxVQUFPO0FBM0JtQixRQUFBLHVCQVBqQixrQkFBQSxNQUFBLDJCQUF5QixFQU9jLENBQUMsaUJBQWlCO0FBZ0I1RCxRQUFBLGlCQUEyRDtBQUUzRCxRQUFBLGtCQUFrQixJQUFJLGlCQUFpQixNQUFNO0lBQ25ELFFBQVE7SUFDUixhQUFhO0lBQ2IsZ0JBQWdCLEtBQUsseUJBQUE7SUFDdEIsQ0FBQztBQUNNLFFBQUEsWUFBWSxJQUFJLHNCQUFzQixLQUFLO0FBQzNDLFFBQUEsZ0JBQWdCO0FBSXRCLFFBQUssbUJBQW1CLFlBQVksTUFBTSxLQUFLLGVBQWUsRUFBRSxDQUFDOztFQUczRCxlQUFlLEtBQWtCO0FBQ3ZDLE9BQ0UsQ0FBQyxLQUFLLGFBQWEsVUFFakIsSUFBSSxXQUEyQixRQUFTLElBQUksT0FBdUIsa0JBQWtCLEtBRXZGO0FBR0YsT0FBSSxrQkFBa0IsSUFBSSxFQUFFO0FBQzFCLFFBQUksS0FBSyxXQUFXLFlBQ2xCLFFBQU8sS0FBSyxvQkFBb0IsSUFBSTtBQUV0QyxTQUFLLFdBQVcsSUFBSTs7O0VBSUwsYUFBYSxtQkFBdUM7QUFDckUsU0FBTSxhQUFhLGtCQUFrQjtBQUVyQyxRQUFLLGdCQUFnQixRQUFRLEtBQUs7QUFDbEMsUUFBSyxVQUFVLE9BQU8sSUFBSSxTQUFTOztFQUdsQixXQUFXLG1CQUF5RDtBQUNyRixTQUFNLFdBQVcsa0JBQWtCO0FBRW5DLE9BQUksa0JBQWtCLElBQUksZUFBZSxDQUN2QyxNQUFLLGtCQUFrQjs7RUFJUixRQUFRLG1CQUF5RDtBQUNsRixTQUFNLFFBQVEsa0JBQWtCO0FBQ2hDLE9BQUksa0JBQWtCLElBQUksZUFBZSxDQUN2QyxTQUFRLFNBQVMsQ0FBQyxXQUFXLEtBQUsseUJBQXlCLENBQUM7QUFFOUQsT0FBSSxLQUFLLGlCQUFpQix5QkFBeUIsdUJBQXVCLFlBQVk7QUFDcEYsU0FBSyxhQUFhLElBQUksT0FBTztBQUc3QixTQUFLLGdCQUFnQjs7OztFQUtqQixtQkFBZ0I7QUFDdEIsUUFBSyxhQUNGLE1BQU0sR0FBRyxHQUFHLENBQ1osUUFBUSxNQUFNLEVBQUUsYUFBYSx3QkFBd0IsQ0FBQyxDQUN0RCxTQUFTLE1BQU0sRUFBRSxnQkFBZ0Isd0JBQXdCLENBQUM7QUFDN0QsUUFBSyxhQUFhLEtBQUssYUFBYSxTQUFTLElBQUksYUFBYSx5QkFBeUIsT0FBTztBQUc5RixPQUFJLEtBQUssYUFBYSxTQUFTLDRCQUM3QixNQUFLLFNBQVM7Ozs7O0VBT1Ysb0JBQW9CLEtBQWtCO0dBQzVDLE1BQU0saUJBQXlDO0lBQzdDLEtBQUssYUFBYTtJQUNsQixLQUFLLFdBQVksY0FBYywyQkFBbUQ7SUFDbEYsS0FBSyxhQUFhLEtBQUssYUFBYSxTQUFTO0lBQzlDO0FBQ0QsUUFBSyxXQUFXLEtBQUssZUFBZTs7RUFHOUIsV0FDTixLQUNBLGNBQXNDLEtBQUssY0FBWTtBQU12RCxlQUQwQixvQkFBb0IsS0FIdEIsWUFBWSxXQUNqQyxNQUFNLE1BQU0sU0FBUyxpQkFBaUIsTUFBTSxLQUFLLFdBQVksY0FDL0QsRUFDMkQsWUFBWSxPQUFPLEdBQ3ZELE9BQU87QUFDL0IsT0FBSSxnQkFBZ0I7Ozs7OztFQU9kLHFCQUFrQjtBQUN4QixRQUFLLFNBQVM7QUFDZCxRQUFLLGdCQUFnQjs7O0VBSWYsMEJBQXVCO0FBQzdCLE9BQ0UsQ0FBQyxLQUFLLFVBQ04sS0FBSyxjQUFjLEtBQUssZUFDeEIsS0FBSyxhQUFhLFVBQVUsNkJBQzVCO0FBQ0EsU0FBSyxTQUFTO0FBQ2QsU0FBSyxnQkFBZ0Isa0JBQWtCO0FBQ3ZDLFNBQUssaUJBQWlCLEtBQUssZ0JBQWdCOzs7RUFJdkMsbUJBQWdCO0FBQ3RCLFVBQU8sSUFBSTs7Ozs7Ozs7Ozs7O3VCQVlRLGtDQUFrQyxLQUFLLFVBQVUsU0FBQTs7eUJBRS9DLEtBQUssb0JBQW9CLENBQUE7Ozs7Ozs7Ozs7cUJBVTdCLE1BQU0sS0FBSyxhQUFhLFNBQVMsSUFBRzs7OztFQUsvQyxrQkFBZTtBQUNyQixVQUFPLEtBQUssaUJBQWlCLENBQUMsS0FDM0IsTUFBTSxPQUFPLFVBQVUsSUFBSTs7dUJBRVgsS0FBSyxLQUFJO1lBQ3BCLFVBQVUsTUFBTSxTQUFTLElBQ3ZCLElBQUk7Ozs4QkFJSixRQUFBOztRQUdUOztFQUdnQixTQUFNO0FBQ3ZCLFVBQU8sSUFBSTs7VUFFTCxLQUFLLFdBQVcsY0FBYyxLQUFLLGtCQUFrQixHQUFHLEtBQUssaUJBQWlCLENBQUE7O1FBRWhGLEtBQUssa0JBQWtCLENBQUEifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as SbbBreadcrumbGroupElement } from "./breadcrumb-group.component-
|
|
1
|
+
import { t as SbbBreadcrumbGroupElement } from "./breadcrumb-group.component-zU06d9ni.js";
|
|
2
2
|
import { t as SbbBreadcrumbElement } from "./breadcrumb.component-DvOf-PiO.js";
|
|
3
3
|
import "./breadcrumb.pure.js";
|
|
4
4
|
//#region src/elements/breadcrumb.ts
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as SbbBreadcrumbGroupElement } from "./breadcrumb-group.component-
|
|
1
|
+
import { t as SbbBreadcrumbGroupElement } from "./breadcrumb-group.component-zU06d9ni.js";
|
|
2
2
|
import { t as SbbBreadcrumbElement } from "./breadcrumb.component-DvOf-PiO.js";
|
|
3
3
|
export { SbbBreadcrumbElement, SbbBreadcrumbGroupElement };
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sbb-esta/lyne-elements-dev",
|
|
3
|
-
"version": "4.7.0-dev.
|
|
3
|
+
"version": "4.7.0-dev.1773817331",
|
|
4
4
|
"description": "Lyne Design System",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"design system",
|
|
7
7
|
"web components",
|
|
8
8
|
"lit",
|
|
9
9
|
"storybook",
|
|
10
|
-
"https://github.com/sbb-design-systems/lyne-components/commit/
|
|
10
|
+
"https://github.com/sbb-design-systems/lyne-components/commit/47decd8f58ebb0f714ba4f2d99c7d7a727cdbb05"
|
|
11
11
|
],
|
|
12
12
|
"type": "module",
|
|
13
13
|
"exports": {
|
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
-
import { css, html, nothing } from "lit";
|
|
3
|
-
import { state } from "lit/decorators.js";
|
|
4
|
-
import { SbbElement } from "./core/base-elements.js";
|
|
5
|
-
import { SbbNamedSlotListMixin } from "./core/mixins.js";
|
|
6
|
-
import { boxSizingStyles } from "./core/styles.js";
|
|
7
|
-
import { SbbLanguageController } from "./core/controllers.js";
|
|
8
|
-
import { i18nBreadcrumbEllipsisButtonLabel } from "./core/i18n.js";
|
|
9
|
-
import "./icon.js";
|
|
10
|
-
import { ResizeController } from "@lit-labs/observers/resize-controller.js";
|
|
11
|
-
import { getNextElementIndex, isArrowKeyPressed, sbbInputModalityDetector } from "./core/a11y.js";
|
|
12
|
-
//#region src/elements/breadcrumb/breadcrumb-group/breadcrumb-group.scss?lit&inline
|
|
13
|
-
var breadcrumb_group_default = css`:host {
|
|
14
|
-
display: block;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
:host(:is(:state(loaded),[state--loaded])) {
|
|
18
|
-
--sbb-breadcrumb-group-visibility: visible;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
:host(:is(:is(:state(state-collapsed),[state--state-collapsed]), :is(:state(state-manually-expanded),[state--state-manually-expanded]))) {
|
|
22
|
-
--sbb-breadcrumb-group-wrap: wrap;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.sbb-breadcrumb-group {
|
|
26
|
-
list-style: none;
|
|
27
|
-
margin: 0;
|
|
28
|
-
padding: 0;
|
|
29
|
-
font-size: inherit;
|
|
30
|
-
display: flex;
|
|
31
|
-
flex-wrap: var(--sbb-breadcrumb-group-wrap);
|
|
32
|
-
column-gap: var(--sbb-spacing-fixed-1x);
|
|
33
|
-
visibility: var(--sbb-breadcrumb-group-visibility);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.sbb-breadcrumb-group__item {
|
|
37
|
-
flex: 0 0 auto;
|
|
38
|
-
display: flex;
|
|
39
|
-
column-gap: var(--sbb-spacing-fixed-1x);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.sbb-breadcrumb-group__divider-icon {
|
|
43
|
-
color: var(--sbb-breadcrumb-group-ellipsis-color);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
#sbb-breadcrumb-ellipsis {
|
|
47
|
-
appearance: none;
|
|
48
|
-
box-sizing: border-box;
|
|
49
|
-
margin: 0;
|
|
50
|
-
outline: none;
|
|
51
|
-
border: none;
|
|
52
|
-
border-radius: 0;
|
|
53
|
-
padding: 0;
|
|
54
|
-
background: none;
|
|
55
|
-
-webkit-tap-highlight-color: transparent;
|
|
56
|
-
color: inherit;
|
|
57
|
-
--sbb-text-font-size: var(--sbb-text-font-size-xxs);
|
|
58
|
-
font-family: var(--sbb-typo-font-family);
|
|
59
|
-
font-weight: normal;
|
|
60
|
-
line-height: var(--sbb-typo-line-height-text);
|
|
61
|
-
letter-spacing: var(--sbb-typo-letter-spacing-text);
|
|
62
|
-
font-size: var(--sbb-text-font-size);
|
|
63
|
-
line-height: 0;
|
|
64
|
-
letter-spacing: 0.01em;
|
|
65
|
-
font-size: var(--sbb-text-font-size-xxs);
|
|
66
|
-
width: var(--sbb-size-icon-ui-small);
|
|
67
|
-
height: var(--sbb-size-icon-ui-small);
|
|
68
|
-
border: var(--sbb-breadcrumb-group-ellipsis-border-width) solid var(--sbb-breadcrumb-group-ellipsis-border-color);
|
|
69
|
-
border-radius: 50%;
|
|
70
|
-
padding-block-end: 0.5em;
|
|
71
|
-
cursor: var(--sbb-cursor-pointer);
|
|
72
|
-
color: var(--sbb-breadcrumb-group-ellipsis-color);
|
|
73
|
-
background-color: var(--sbb-breadcrumb-group-ellipsis-background-color);
|
|
74
|
-
overflow: hidden;
|
|
75
|
-
}
|
|
76
|
-
@media (forced-colors: active) {
|
|
77
|
-
#sbb-breadcrumb-ellipsis {
|
|
78
|
-
--sbb-breadcrumb-group-ellipsis-border-width: var(--sbb-border-width-2x);
|
|
79
|
-
--sbb-breadcrumb-group-ellipsis-border-color: CanvasText;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
@media (any-hover: hover) {
|
|
83
|
-
#sbb-breadcrumb-ellipsis:hover {
|
|
84
|
-
--sbb-breadcrumb-group-ellipsis-color: var(--sbb-color-2);
|
|
85
|
-
--sbb-breadcrumb-group-ellipsis-background-color: var(--sbb-background-color-3);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
@media (any-hover: hover) and (forced-colors: active) {
|
|
89
|
-
#sbb-breadcrumb-ellipsis:hover {
|
|
90
|
-
--sbb-breadcrumb-group-ellipsis-border-color: Highlight;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
#sbb-breadcrumb-ellipsis:focus-visible {
|
|
94
|
-
outline-offset: var(--sbb-focus-outline-offset);
|
|
95
|
-
outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
|
|
96
|
-
}`;
|
|
97
|
-
//#endregion
|
|
98
|
-
//#region src/elements/breadcrumb/breadcrumb-group/breadcrumb-group.component.ts
|
|
99
|
-
var MIN_BREADCRUMBS_TO_COLLAPSE = 3;
|
|
100
|
-
/**
|
|
101
|
-
* It can be used as a container for one or more `sbb-breadcrumb` component.
|
|
102
|
-
*
|
|
103
|
-
* @slot - Use the unnamed slot to add `sbb-breadcrumb` elements.
|
|
104
|
-
*/
|
|
105
|
-
var SbbBreadcrumbGroupElement = (() => {
|
|
106
|
-
let _classSuper = SbbNamedSlotListMixin(SbbElement);
|
|
107
|
-
let _instanceExtraInitializers = [];
|
|
108
|
-
let _set__state_decorators;
|
|
109
|
-
return class SbbBreadcrumbGroupElement extends _classSuper {
|
|
110
|
-
static {
|
|
111
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
112
|
-
_set__state_decorators = [state()];
|
|
113
|
-
__esDecorate(this, null, _set__state_decorators, {
|
|
114
|
-
kind: "setter",
|
|
115
|
-
name: "_state",
|
|
116
|
-
static: false,
|
|
117
|
-
private: false,
|
|
118
|
-
access: {
|
|
119
|
-
has: (obj) => "_state" in obj,
|
|
120
|
-
set: (obj, value) => {
|
|
121
|
-
obj._state = value;
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
metadata: _metadata
|
|
125
|
-
}, null, _instanceExtraInitializers);
|
|
126
|
-
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
127
|
-
enumerable: true,
|
|
128
|
-
configurable: true,
|
|
129
|
-
writable: true,
|
|
130
|
-
value: _metadata
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
static {
|
|
134
|
-
this.elementName = "sbb-breadcrumb-group";
|
|
135
|
-
}
|
|
136
|
-
static {
|
|
137
|
-
this.role = "navigation";
|
|
138
|
-
}
|
|
139
|
-
static {
|
|
140
|
-
this.styles = [boxSizingStyles, breadcrumb_group_default];
|
|
141
|
-
}
|
|
142
|
-
/** The state of the breadcrumb group. */
|
|
143
|
-
set _state(state) {
|
|
144
|
-
if (this._stateInternal) this.internals.states.delete(`state-${this._stateInternal}`);
|
|
145
|
-
this._stateInternal = state;
|
|
146
|
-
if (this._stateInternal) this.internals.states.add(`state-${this._stateInternal}`);
|
|
147
|
-
}
|
|
148
|
-
get _state() {
|
|
149
|
-
return this._stateInternal;
|
|
150
|
-
}
|
|
151
|
-
constructor() {
|
|
152
|
-
super();
|
|
153
|
-
this.listChildLocalNames = (__runInitializers(this, _instanceExtraInitializers), ["sbb-breadcrumb"]);
|
|
154
|
-
this._stateInternal = null;
|
|
155
|
-
this._resizeObserver = new ResizeController(this, {
|
|
156
|
-
target: null,
|
|
157
|
-
skipInitial: true,
|
|
158
|
-
callback: () => this._evaluateCollapsedState()
|
|
159
|
-
});
|
|
160
|
-
this._language = new SbbLanguageController(this);
|
|
161
|
-
this._markForFocus = false;
|
|
162
|
-
this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
|
|
163
|
-
}
|
|
164
|
-
_handleKeyDown(evt) {
|
|
165
|
-
if (!this.listChildren.length || evt.target !== this && evt.target.parentElement !== this) return;
|
|
166
|
-
if (isArrowKeyPressed(evt)) {
|
|
167
|
-
if (this._state === "collapsed") return this._focusNextCollapsed(evt);
|
|
168
|
-
this._focusNext(evt);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
firstUpdated(changedProperties) {
|
|
172
|
-
super.firstUpdated(changedProperties);
|
|
173
|
-
this._resizeObserver.observe(this);
|
|
174
|
-
this.internals.states.add("loaded");
|
|
175
|
-
}
|
|
176
|
-
willUpdate(changedProperties) {
|
|
177
|
-
super.willUpdate(changedProperties);
|
|
178
|
-
if (changedProperties.has("listChildren")) this._syncBreadcrumbs();
|
|
179
|
-
}
|
|
180
|
-
updated(changedProperties) {
|
|
181
|
-
super.updated(changedProperties);
|
|
182
|
-
if (changedProperties.has("listChildren")) Promise.resolve().then(() => this._evaluateCollapsedState());
|
|
183
|
-
if (this._markForFocus && sbbInputModalityDetector.mostRecentModality === "keyboard") {
|
|
184
|
-
this.listChildren[1]?.focus();
|
|
185
|
-
this._markForFocus = false;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
/** Apply the aria-current attribute to the last sbb-breadcrumb element. */
|
|
189
|
-
_syncBreadcrumbs() {
|
|
190
|
-
this.listChildren.slice(0, -1).filter((c) => c.hasAttribute("accessibility-current")).forEach((c) => c.removeAttribute("accessibility-current"));
|
|
191
|
-
this.listChildren[this.listChildren.length - 1]?.setAttribute("accessibility-current", "page");
|
|
192
|
-
if (this.listChildren.length < MIN_BREADCRUMBS_TO_COLLAPSE) this._state = null;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Sets the focus on the correct element when the ellipsis breadcrumb is displayed and the user is navigating with keyboard's arrows.
|
|
196
|
-
*/
|
|
197
|
-
_focusNextCollapsed(evt) {
|
|
198
|
-
const arrayCollapsed = [
|
|
199
|
-
this.listChildren[0],
|
|
200
|
-
this.shadowRoot.querySelector("#sbb-breadcrumb-ellipsis"),
|
|
201
|
-
this.listChildren[this.listChildren.length - 1]
|
|
202
|
-
];
|
|
203
|
-
this._focusNext(evt, arrayCollapsed);
|
|
204
|
-
}
|
|
205
|
-
_focusNext(evt, breadcrumbs = this.listChildren) {
|
|
206
|
-
breadcrumbs[getNextElementIndex(evt, breadcrumbs.findIndex((e) => e === document.activeElement || e === this.shadowRoot.activeElement), breadcrumbs.length)]?.focus();
|
|
207
|
-
evt.preventDefault();
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Note: due to @State annotation on _state, this method triggers a new render; as a consequence, the focus is moved
|
|
211
|
-
* to the `body`, so if the ellipsis element has focus, it's asynchronously forced to the first element.
|
|
212
|
-
*/
|
|
213
|
-
_expandBreadcrumbs() {
|
|
214
|
-
this._state = "manually-expanded";
|
|
215
|
-
this._markForFocus = true;
|
|
216
|
-
}
|
|
217
|
-
/** Evaluate if the expanded breadcrumb element fits in page width, otherwise it needs ellipsis */
|
|
218
|
-
_evaluateCollapsedState() {
|
|
219
|
-
if (!this._state && this.scrollWidth > this.offsetWidth && this.listChildren.length >= MIN_BREADCRUMBS_TO_COLLAPSE) {
|
|
220
|
-
this._state = "collapsed";
|
|
221
|
-
this._resizeObserver.hostDisconnected();
|
|
222
|
-
this.removeController(this._resizeObserver);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
_renderCollapsed() {
|
|
226
|
-
return html`
|
|
227
|
-
<li class="sbb-breadcrumb-group__item">
|
|
228
|
-
<slot name="li-0"></slot>
|
|
229
|
-
</li>
|
|
230
|
-
<li class="sbb-breadcrumb-group__item" id="sbb-breadcrumb-group-ellipsis">
|
|
231
|
-
<sbb-icon
|
|
232
|
-
name="chevron-small-right-small"
|
|
233
|
-
class="sbb-breadcrumb-group__divider-icon"
|
|
234
|
-
></sbb-icon>
|
|
235
|
-
<button
|
|
236
|
-
type="button"
|
|
237
|
-
id="sbb-breadcrumb-ellipsis"
|
|
238
|
-
aria-label=${i18nBreadcrumbEllipsisButtonLabel[this._language.current]}
|
|
239
|
-
aria-expanded="false"
|
|
240
|
-
@click=${() => this._expandBreadcrumbs()}
|
|
241
|
-
>
|
|
242
|
-
...
|
|
243
|
-
</button>
|
|
244
|
-
</li>
|
|
245
|
-
<li class="sbb-breadcrumb-group__item">
|
|
246
|
-
<sbb-icon
|
|
247
|
-
name="chevron-small-right-small"
|
|
248
|
-
class="sbb-breadcrumb-group__divider-icon"
|
|
249
|
-
></sbb-icon>
|
|
250
|
-
<slot name=${`li-${this.listChildren.length - 1}`}></slot>
|
|
251
|
-
</li>
|
|
252
|
-
`;
|
|
253
|
-
}
|
|
254
|
-
_renderExpanded() {
|
|
255
|
-
return this.listSlotEntries().map((slot, index, array) => html`
|
|
256
|
-
<li class="sbb-breadcrumb-group__item">
|
|
257
|
-
<slot name=${slot.name}></slot>
|
|
258
|
-
${index !== array.length - 1 ? html`<sbb-icon
|
|
259
|
-
name="chevron-small-right-small"
|
|
260
|
-
class="sbb-breadcrumb-group__divider-icon"
|
|
261
|
-
></sbb-icon>` : nothing}
|
|
262
|
-
</li>
|
|
263
|
-
`);
|
|
264
|
-
}
|
|
265
|
-
render() {
|
|
266
|
-
return html`
|
|
267
|
-
<ol class="sbb-breadcrumb-group">
|
|
268
|
-
${this._state === "collapsed" ? this._renderCollapsed() : this._renderExpanded()}
|
|
269
|
-
</ol>
|
|
270
|
-
${this.renderHiddenSlot()}
|
|
271
|
-
`;
|
|
272
|
-
}
|
|
273
|
-
};
|
|
274
|
-
})();
|
|
275
|
-
//#endregion
|
|
276
|
-
export { SbbBreadcrumbGroupElement as t };
|
|
277
|
-
|
|
278
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ncm91cC5jb21wb25lbnQtRGpzb01UUEkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi1ncm91cC9icmVhZGNydW1iLWdyb3VwLnNjc3M/bGl0JmlubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWItZ3JvdXAvYnJlYWRjcnVtYi1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKGxvYWRlZCkpIHtcbiAgLS1zYmItYnJlYWRjcnVtYi1ncm91cC12aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLWNvbGxhcHNlZCksIDpzdGF0ZShzdGF0ZS1tYW51YWxseS1leHBhbmRlZCkpKSB7XG4gIC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtd3JhcDogd3JhcDtcbn1cblxuLnNiYi1icmVhZGNydW1iLWdyb3VwIHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC13cmFwKTtcbiAgY29sdW1uLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICB2aXNpYmlsaXR5OiB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC12aXNpYmlsaXR5KTtcbn1cblxuLnNiYi1icmVhZGNydW1iLWdyb3VwX19pdGVtIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbHVtbi1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbn1cblxuLnNiYi1icmVhZGNydW1iLWdyb3VwX19kaXZpZGVyLWljb24ge1xuICBjb2xvcjogdmFyKC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXMtY29sb3IpO1xufVxuXG4jc2JiLWJyZWFkY3J1bWItZWxsaXBzaXMge1xuICBAaW5jbHVkZSBzYmIuYnV0dG9uLXJlc2V0O1xuICBAaW5jbHVkZSBzYmIudGV4dC14eHMtLXJlZ3VsYXI7XG5cbiAgLy8gbGluZSBoZWlnaHQgYW5kIGxldHRlci1zcGFjaW5nIG5lZWRlZCB0byBtYXRjaCBzcXVhcmVzIGRyYXduIGluIEZpZ21hLlxuICBsaW5lLWhlaWdodDogMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUteHhzKTtcbiAgd2lkdGg6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuICBib3JkZXI6IHZhcigtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWJvcmRlci13aWR0aCkgc29saWRcbiAgICB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgLy8gSW4gb3JkZXIgdG8gdmVydGljYWxseSBjZW50ZXIgLi4uLCB3ZSB1c2UgcGFkZGluZyB3aXRoIGhhbGYgdGhlIGZvbnQgc2l6ZS5cbiAgcGFkZGluZy1ibG9jay1lbmQ6IDAuNWVtO1xuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItcG9pbnRlcik7XG4gIGNvbG9yOiB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWJhY2tncm91bmQtY29sb3IpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWJvcmRlci13aWR0aDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCk7XG4gICAgLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1ib3JkZXItY29sb3I6IENhbnZhc1RleHQ7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaG92ZXItbXEoJGhvdmVyOiB0cnVlKSB7XG4gICAgJjpob3ZlciB7XG4gICAgICAtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMik7XG4gICAgICAtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xuXG4gICAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICAgIC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXMtYm9yZGVyLWNvbG9yOiBIaWdobGlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgZ2V0TmV4dEVsZW1lbnRJbmRleCxcbiAgaXNBcnJvd0tleVByZXNzZWQsXG4gIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvcixcbn0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LnRzJztcbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMudHMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBpMThuQnJlYWRjcnVtYkVsbGlwc2lzQnV0dG9uTGFiZWwgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4udHMnO1xuaW1wb3J0IHsgU2JiTmFtZWRTbG90TGlzdE1peGluLCB0eXBlIFdpdGhMaXN0Q2hpbGRyZW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3N0eWxlcy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkJyZWFkY3J1bWJFbGVtZW50IH0gZnJvbSAnLi4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2JyZWFkY3J1bWItZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9pY29uLnRzJztcblxuY29uc3QgTUlOX0JSRUFEQ1JVTUJTX1RPX0NPTExBUFNFID0gMztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYHNiYi1icmVhZGNydW1iYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1icmVhZGNydW1iYCBlbGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkJyZWFkY3J1bWJHcm91cEVsZW1lbnQgZXh0ZW5kcyBTYmJOYW1lZFNsb3RMaXN0TWl4aW48XG4gIFNiYkJyZWFkY3J1bWJFbGVtZW50LFxuICB0eXBlb2YgU2JiRWxlbWVudFxuPihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItYnJlYWRjcnVtYi1ncm91cCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICduYXZpZ2F0aW9uJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgc3R5bGVdO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFsnc2JiLWJyZWFkY3J1bWInXTtcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBicmVhZGNydW1iIGdyb3VwLiAqL1xuICBAc3RhdGUoKVxuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6ICdjb2xsYXBzZWQnIHwgJ21hbnVhbGx5LWV4cGFuZGVkJyB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fc3RhdGVJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc3RhdGUtJHt0aGlzLl9zdGF0ZUludGVybmFsfWApO1xuICAgIH1cbiAgICB0aGlzLl9zdGF0ZUludGVybmFsID0gc3RhdGU7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6ICdjb2xsYXBzZWQnIHwgJ21hbnVhbGx5LWV4cGFuZGVkJyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZUludGVybmFsO1xuICB9XG4gIHByaXZhdGUgX3N0YXRlSW50ZXJuYWw6ICdjb2xsYXBzZWQnIHwgJ21hbnVhbGx5LWV4cGFuZGVkJyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fZXZhbHVhdGVDb2xsYXBzZWRTdGF0ZSgpLFxuICB9KTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9tYXJrRm9yRm9jdXMgPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzTmV4dENvbGxhcHNlZChldnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5fZm9jdXNOZXh0KGV2dCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKTtcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdsb2FkZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczxXaXRoTGlzdENoaWxkcmVuPHRoaXM+Pik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAgICAgIHRoaXMuX3N5bmNCcmVhZGNydW1icygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczxXaXRoTGlzdENoaWxkcmVuPHRoaXM+Pik6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX2V2YWx1YXRlQ29sbGFwc2VkU3RhdGUoKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9tYXJrRm9yRm9jdXMgJiYgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgdGhpcy5saXN0Q2hpbGRyZW5bMV0/LmZvY3VzKCk7XG5cbiAgICAgIC8vIFJlc2V0IG1hcmsgZm9yIGZvY3VzXG4gICAgICB0aGlzLl9tYXJrRm9yRm9jdXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQXBwbHkgdGhlIGFyaWEtY3VycmVudCBhdHRyaWJ1dGUgdG8gdGhlIGxhc3Qgc2JiLWJyZWFkY3J1bWIgZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBfc3luY0JyZWFkY3J1bWJzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdENoaWxkcmVuXG4gICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAuZmlsdGVyKChjKSA9PiBjLmhhc0F0dHJpYnV0ZSgnYWNjZXNzaWJpbGl0eS1jdXJyZW50JykpXG4gICAgICAuZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ2FjY2Vzc2liaWxpdHktY3VycmVudCcpKTtcbiAgICB0aGlzLmxpc3RDaGlsZHJlblt0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggLSAxXT8uc2V0QXR0cmlidXRlKCdhY2Nlc3NpYmlsaXR5LWN1cnJlbnQnLCAncGFnZScpO1xuXG4gICAgLy8gSWYgaXQgaXMgbm90IGV4cGFuZGFibGUsIHJlc2V0IHN0YXRlXG4gICAgaWYgKHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCA8IE1JTl9CUkVBRENSVU1CU19UT19DT0xMQVBTRSkge1xuICAgICAgdGhpcy5fc3RhdGUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBmb2N1cyBvbiB0aGUgY29ycmVjdCBlbGVtZW50IHdoZW4gdGhlIGVsbGlwc2lzIGJyZWFkY3J1bWIgaXMgZGlzcGxheWVkIGFuZCB0aGUgdXNlciBpcyBuYXZpZ2F0aW5nIHdpdGgga2V5Ym9hcmQncyBhcnJvd3MuXG4gICAqL1xuICBwcml2YXRlIF9mb2N1c05leHRDb2xsYXBzZWQoZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgYXJyYXlDb2xsYXBzZWQ6IFNiYkJyZWFkY3J1bWJFbGVtZW50W10gPSBbXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblswXSxcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignI3NiYi1icmVhZGNydW1iLWVsbGlwc2lzJykgYXMgU2JiQnJlYWRjcnVtYkVsZW1lbnQsXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblt0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggLSAxXSxcbiAgICBdO1xuICAgIHRoaXMuX2ZvY3VzTmV4dChldnQsIGFycmF5Q29sbGFwc2VkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZvY3VzTmV4dChcbiAgICBldnQ6IEtleWJvYXJkRXZlbnQsXG4gICAgYnJlYWRjcnVtYnM6IFNiYkJyZWFkY3J1bWJFbGVtZW50W10gPSB0aGlzLmxpc3RDaGlsZHJlbixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gYnJlYWRjcnVtYnMuZmluZEluZGV4KFxuICAgICAgKGUpID0+IGUgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfHwgZSA9PT0gdGhpcy5zaGFkb3dSb290IS5hY3RpdmVFbGVtZW50LFxuICAgICk7XG4gICAgY29uc3QgbmV4dEluZGV4OiBudW1iZXIgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2dCwgY3VycmVudCwgYnJlYWRjcnVtYnMubGVuZ3RoKTtcbiAgICBicmVhZGNydW1ic1tuZXh0SW5kZXhdPy5mb2N1cygpO1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGU6IGR1ZSB0byBAU3RhdGUgYW5ub3RhdGlvbiBvbiBfc3RhdGUsIHRoaXMgbWV0aG9kIHRyaWdnZXJzIGEgbmV3IHJlbmRlcjsgYXMgYSBjb25zZXF1ZW5jZSwgdGhlIGZvY3VzIGlzIG1vdmVkXG4gICAqIHRvIHRoZSBgYm9keWAsIHNvIGlmIHRoZSBlbGxpcHNpcyBlbGVtZW50IGhhcyBmb2N1cywgaXQncyBhc3luY2hyb25vdXNseSBmb3JjZWQgdG8gdGhlIGZpcnN0IGVsZW1lbnQuXG4gICAqL1xuICBwcml2YXRlIF9leHBhbmRCcmVhZGNydW1icygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdtYW51YWxseS1leHBhbmRlZCc7XG4gICAgdGhpcy5fbWFya0ZvckZvY3VzID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBFdmFsdWF0ZSBpZiB0aGUgZXhwYW5kZWQgYnJlYWRjcnVtYiBlbGVtZW50IGZpdHMgaW4gcGFnZSB3aWR0aCwgb3RoZXJ3aXNlIGl0IG5lZWRzIGVsbGlwc2lzICovXG4gIHByaXZhdGUgX2V2YWx1YXRlQ29sbGFwc2VkU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX3N0YXRlICYmXG4gICAgICB0aGlzLnNjcm9sbFdpZHRoID4gdGhpcy5vZmZzZXRXaWR0aCAmJlxuICAgICAgdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoID49IE1JTl9CUkVBRENSVU1CU19UT19DT0xMQVBTRVxuICAgICkge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnY29sbGFwc2VkJztcbiAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLmhvc3REaXNjb25uZWN0ZWQoKTtcbiAgICAgIHRoaXMucmVtb3ZlQ29udHJvbGxlcih0aGlzLl9yZXNpemVPYnNlcnZlcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ29sbGFwc2VkKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxsaSBjbGFzcz1cInNiYi1icmVhZGNydW1iLWdyb3VwX19pdGVtXCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJsaS0wXCI+PC9zbG90PlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cInNiYi1icmVhZGNydW1iLWdyb3VwX19pdGVtXCIgaWQ9XCJzYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpc1wiPlxuICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1yaWdodC1zbWFsbFwiXG4gICAgICAgICAgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9fZGl2aWRlci1pY29uXCJcbiAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBpZD1cInNiYi1icmVhZGNydW1iLWVsbGlwc2lzXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPSR7aTE4bkJyZWFkY3J1bWJFbGxpcHNpc0J1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fZXhwYW5kQnJlYWRjcnVtYnMoKX1cbiAgICAgICAgPlxuICAgICAgICAgIC4uLlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiPlxuICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1yaWdodC1zbWFsbFwiXG4gICAgICAgICAgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9fZGl2aWRlci1pY29uXCJcbiAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgIDxzbG90IG5hbWU9JHtgbGktJHt0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggLSAxfWB9Pjwvc2xvdD5cbiAgICAgIDwvbGk+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckV4cGFuZGVkKCk6IFRlbXBsYXRlUmVzdWx0W10ge1xuICAgIHJldHVybiB0aGlzLmxpc3RTbG90RW50cmllcygpLm1hcChcbiAgICAgIChzbG90LCBpbmRleCwgYXJyYXkpID0+IGh0bWxgXG4gICAgICAgIDxsaSBjbGFzcz1cInNiYi1icmVhZGNydW1iLWdyb3VwX19pdGVtXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT0ke3Nsb3QubmFtZX0+PC9zbG90PlxuICAgICAgICAgICR7aW5kZXggIT09IGFycmF5Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgID8gaHRtbGA8c2JiLWljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1yaWdodC1zbWFsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9fZGl2aWRlci1pY29uXCJcbiAgICAgICAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICA8L2xpPlxuICAgICAgYCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8b2wgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cFwiPlxuICAgICAgICAke3RoaXMuX3N0YXRlID09PSAnY29sbGFwc2VkJyA/IHRoaXMuX3JlbmRlckNvbGxhcHNlZCgpIDogdGhpcy5fcmVuZGVyRXhwYW5kZWQoKX1cbiAgICAgIDwvb2w+XG4gICAgICAke3RoaXMucmVuZGVySGlkZGVuU2xvdCgpfVxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1icmVhZGNydW1iLWdyb3VwJzogU2JiQnJlYWRjcnVtYkdyb3VwRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ29CQSxJQUFNLDhCQUE4Qjs7Ozs7O0lBT3ZCLG1DQUF5QjttQkFBUyxzQkFHN0MsV0FBVzs7O2NBSEEsa0NBQWtDLFlBR2xDOzs7NkJBT1YsT0FBTyxDQUFBO0FBQ1IsZ0JBQUEsTUFBQSxNQUFBLHdCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsWUFBQTtLQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBWSxTQUFNOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsTUFBQSwyQkFBQTs7Ozs7Ozs7O0FBUGMsUUFBQSxjQUFzQjs7O0FBQ3RCLFFBQUEsT0FBTzs7O0FB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
|