@sbb-esta/lyne-elements-dev 5.0.0-next.1-dev.1777358786 → 5.0.0-next.1-dev.1777393579

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 (70) hide show
  1. package/core/i18n/i18n.js +103 -98
  2. package/core/styles/core.scss +15 -38
  3. package/core.css +57 -31
  4. package/core.js +22 -22
  5. package/custom-elements.json +6013 -2585
  6. package/development/core/i18n/i18n.d.ts +1 -0
  7. package/development/core/i18n/i18n.d.ts.map +1 -1
  8. package/development/core/i18n/i18n.js +8 -2
  9. package/development/core.js +2 -2
  10. package/development/train/train/train.component.d.ts +2 -5
  11. package/development/train/train/train.component.d.ts.map +1 -1
  12. package/development/train/train/train.component.js +1 -1
  13. package/development/train/train-blocked-passage/train-blocked-passage.component.d.ts +4 -3
  14. package/development/train/train-blocked-passage/train-blocked-passage.component.d.ts.map +1 -1
  15. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  16. package/development/train/train-formation/train-formation.component.d.ts +6 -2
  17. package/development/train/train-formation/train-formation.component.d.ts.map +1 -1
  18. package/development/train/train-formation/train-formation.component.js +1 -1
  19. package/development/train/train-formation-orientation-mixin.d.ts +12 -0
  20. package/development/train/train-formation-orientation-mixin.d.ts.map +1 -0
  21. package/development/train/train-formation-orientation-mixin.js +62 -0
  22. package/development/train/train-wagon/train-wagon.component.d.ts +5 -32
  23. package/development/train/train-wagon/train-wagon.component.d.ts.map +1 -1
  24. package/development/train/train-wagon/train-wagon.component.js +19 -1
  25. package/development/train/train-wagon-button/train-wagon-button.component.d.ts +18 -0
  26. package/development/train/train-wagon-button/train-wagon-button.component.d.ts.map +1 -0
  27. package/development/train/train-wagon-button/train-wagon-button.component.js +18 -0
  28. package/development/train/train-wagon-common.d.ts +15 -0
  29. package/development/train/train-wagon-common.d.ts.map +1 -0
  30. package/development/train/train-wagon-common.js +2 -0
  31. package/development/train/train-wagon-link/train-wagon-link.component.d.ts +18 -0
  32. package/development/train/train-wagon-link/train-wagon-link.component.d.ts.map +1 -0
  33. package/development/train/train-wagon-link/train-wagon-link.component.js +18 -0
  34. package/development/train-blocked-passage.component-BgBnEOfh.js +22 -0
  35. package/development/train-formation.component-CDKR5KCm.js +194 -0
  36. package/development/train-wagon-common-S3OJdguG.js +441 -0
  37. package/development/train.component-CP9QaQk8.js +239 -0
  38. package/development/train.d.ts.map +1 -1
  39. package/development/train.js +13 -7
  40. package/development/train.pure.d.ts +4 -0
  41. package/development/train.pure.d.ts.map +1 -1
  42. package/development/train.pure.js +9 -5
  43. package/index.d.ts +3 -1
  44. package/index.js +3 -1
  45. package/off-brand-theme.css +57 -31
  46. package/package.json +2 -2
  47. package/safety-theme.css +57 -31
  48. package/standard-theme.css +57 -31
  49. package/train/train/train.component.js +1 -1
  50. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  51. package/train/train-formation/train-formation.component.js +1 -1
  52. package/train/train-formation-orientation-mixin.js +45 -0
  53. package/train/train-wagon/train-wagon.component.js +13 -2
  54. package/train/train-wagon-button/train-wagon-button.component.js +10 -0
  55. package/train/train-wagon-common.js +2 -0
  56. package/train/train-wagon-link/train-wagon-link.component.js +10 -0
  57. package/train-blocked-passage.component-voZ8fxiB.js +14 -0
  58. package/train-formation.component-6XQVXPue.js +147 -0
  59. package/train-wagon-common-DTN_G78z.js +354 -0
  60. package/train.component-3vmLxVCZ.js +181 -0
  61. package/train.js +10 -6
  62. package/train.pure.js +9 -5
  63. package/development/train-blocked-passage.component-Bh2dR1gn.js +0 -30
  64. package/development/train-formation.component-Dm0t9N_h.js +0 -149
  65. package/development/train-wagon.component-B6V4dPKn.js +0 -334
  66. package/development/train.component-BvbNBkZF.js +0 -229
  67. package/train-blocked-passage.component-DIh8dbU9.js +0 -22
  68. package/train-formation.component-DS4EDwPY.js +0 -117
  69. package/train-wagon.component-LwKwwuta.js +0 -257
  70. package/train.component-DuFi_iBX.js +0 -174
@@ -0,0 +1,239 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { nothing, unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbElement, SbbLanguageController, SbbNamedSlotListMixin, boxSizingStyles, forceType, handleDistinctChange, i18nTrain, i18nWagonsLabel, omitEmptyConverter } from "./core.js";
5
+ import { html as html$1, unsafeStatic } from "lit/static-html.js";
6
+ import { SbbIconElement } from "./icon.pure.js";
7
+ import { SbbTrainFormationOrientationMixin } from "./train/train-formation-orientation-mixin.js";
8
+ //#region src/elements/train/train/train.scss?inline
9
+ var train_default = ":host {\n --sbb-train-direction-label-spacing: var(--sbb-spacing-fixed-1x);\n --_sbb-train-direction-row-dimension: calc(\n max(var(--sbb-size-icon-ui-small), 1em * var(--sbb-typo-line-height-text))\n );\n display: flex;\n font-size: var(--sbb-text-font-size-xs);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n flex-direction: var(--_sbb-train-formation-flex-direction-inverted);\n gap: var(--sbb-train-formation-gap);\n position: relative;\n}\n:host::before {\n content: \"\";\n display: var(--_sbb-train-formation-reserve-spacing-display, none);\n height: var(--_sbb-train-direction-row-dimension);\n}\n\n:host(:is(:state(orientation-vertical),[state--orientation-vertical]))::before {\n height: auto;\n width: var(--_sbb-train-direction-row-dimension);\n}\n\n.sbb-train__wagons {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n display: flex;\n flex-direction: var(--_sbb-train-formation-flex-direction);\n gap: var(--sbb-train-formation-wagon-gap);\n}\n\n.sbb-train__direction-heading {\n display: flex;\n position: absolute;\n width: 100%;\n flex-direction: var(--_sbb-train-formation-flex-direction);\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train__direction-heading {\n width: auto;\n height: 100%;\n}\n\n.sbb-train__direction-sticky-wrapper {\n position: sticky;\n inset-inline-start: 0;\n display: inline-flex;\n flex-direction: var(--_sbb-train-formation-flex-direction);\n align-items: center;\n gap: var(--sbb-train-direction-label-spacing);\n max-width: 100%;\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train__direction-sticky-wrapper {\n inset-inline-start: unset;\n inset-block-start: 0;\n max-width: unset;\n max-height: 100%;\n}\n\n:host([direction=right]) .sbb-train__direction-arrow {\n transform: scale(-1, 1);\n order: 2;\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train__direction-arrow {\n rotate: 90deg;\n}\n\n.sbb-train__direction-label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train__direction-label {\n writing-mode: sideways-lr;\n}\n\n.sbb-screen-reader-only {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}";
10
+ //#endregion
11
+ //#region src/elements/train/train/train.component.ts
12
+ /**
13
+ * It can be used as a container for `sbb-train-wagon` or `sbb-train-blocked-passage` components.
14
+ *
15
+ * @slot - Use the unnamed slot to add 'sbb-train-wagon' elements to the `sbb-train`.
16
+ */
17
+ var SbbTrainElement = (() => {
18
+ let _classSuper = SbbTrainFormationOrientationMixin(SbbNamedSlotListMixin(SbbElement));
19
+ let _directionLabel_decorators;
20
+ let _directionLabel_initializers = [];
21
+ let _directionLabel_extraInitializers = [];
22
+ let _directionLabelLevel_decorators;
23
+ let _directionLabelLevel_initializers = [];
24
+ let _directionLabelLevel_extraInitializers = [];
25
+ let _station_decorators;
26
+ let _station_initializers = [];
27
+ let _station_extraInitializers = [];
28
+ let _accessibilityLabel_decorators;
29
+ let _accessibilityLabel_initializers = [];
30
+ let _accessibilityLabel_extraInitializers = [];
31
+ let _direction_decorators;
32
+ let _direction_initializers = [];
33
+ let _direction_extraInitializers = [];
34
+ return class SbbTrainElement extends _classSuper {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.listChildLocalNames = [
38
+ "sbb-train-wagon",
39
+ "sbb-train-wagon-button",
40
+ "sbb-train-wagon-link",
41
+ "sbb-train-blocked-passage"
42
+ ];
43
+ this.#directionLabel_accessor_storage = __runInitializers(this, _directionLabel_initializers, "");
44
+ this.#directionLabelLevel_accessor_storage = (__runInitializers(this, _directionLabel_extraInitializers), __runInitializers(this, _directionLabelLevel_initializers, "6"));
45
+ this.#station_accessor_storage = (__runInitializers(this, _directionLabelLevel_extraInitializers), __runInitializers(this, _station_initializers, ""));
46
+ this.#accessibilityLabel_accessor_storage = (__runInitializers(this, _station_extraInitializers), __runInitializers(this, _accessibilityLabel_initializers, ""));
47
+ this.#direction_accessor_storage = (__runInitializers(this, _accessibilityLabel_extraInitializers), __runInitializers(this, _direction_initializers, "left"));
48
+ this._language = (__runInitializers(this, _direction_extraInitializers), new SbbLanguageController(this));
49
+ }
50
+ static {
51
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
52
+ _directionLabel_decorators = [
53
+ forceType(),
54
+ handleDistinctChange((e) => {
55
+ e.dispatchEvent(
56
+ /** @internal */
57
+ new Event("directionlabelchange", {
58
+ bubbles: true,
59
+ composed: true
60
+ })
61
+ );
62
+ }),
63
+ property({
64
+ attribute: "direction-label",
65
+ reflect: true,
66
+ converter: omitEmptyConverter
67
+ })
68
+ ];
69
+ _directionLabelLevel_decorators = [property({ attribute: "direction-label-level" })];
70
+ _station_decorators = [forceType(), property()];
71
+ _accessibilityLabel_decorators = [forceType(), property({ attribute: "accessibility-label" })];
72
+ _direction_decorators = [property({ reflect: true })];
73
+ __esDecorate(this, null, _directionLabel_decorators, {
74
+ kind: "accessor",
75
+ name: "directionLabel",
76
+ static: false,
77
+ private: false,
78
+ access: {
79
+ has: (obj) => "directionLabel" in obj,
80
+ get: (obj) => obj.directionLabel,
81
+ set: (obj, value) => {
82
+ obj.directionLabel = value;
83
+ }
84
+ },
85
+ metadata: _metadata
86
+ }, _directionLabel_initializers, _directionLabel_extraInitializers);
87
+ __esDecorate(this, null, _directionLabelLevel_decorators, {
88
+ kind: "accessor",
89
+ name: "directionLabelLevel",
90
+ static: false,
91
+ private: false,
92
+ access: {
93
+ has: (obj) => "directionLabelLevel" in obj,
94
+ get: (obj) => obj.directionLabelLevel,
95
+ set: (obj, value) => {
96
+ obj.directionLabelLevel = value;
97
+ }
98
+ },
99
+ metadata: _metadata
100
+ }, _directionLabelLevel_initializers, _directionLabelLevel_extraInitializers);
101
+ __esDecorate(this, null, _station_decorators, {
102
+ kind: "accessor",
103
+ name: "station",
104
+ static: false,
105
+ private: false,
106
+ access: {
107
+ has: (obj) => "station" in obj,
108
+ get: (obj) => obj.station,
109
+ set: (obj, value) => {
110
+ obj.station = value;
111
+ }
112
+ },
113
+ metadata: _metadata
114
+ }, _station_initializers, _station_extraInitializers);
115
+ __esDecorate(this, null, _accessibilityLabel_decorators, {
116
+ kind: "accessor",
117
+ name: "accessibilityLabel",
118
+ static: false,
119
+ private: false,
120
+ access: {
121
+ has: (obj) => "accessibilityLabel" in obj,
122
+ get: (obj) => obj.accessibilityLabel,
123
+ set: (obj, value) => {
124
+ obj.accessibilityLabel = value;
125
+ }
126
+ },
127
+ metadata: _metadata
128
+ }, _accessibilityLabel_initializers, _accessibilityLabel_extraInitializers);
129
+ __esDecorate(this, null, _direction_decorators, {
130
+ kind: "accessor",
131
+ name: "direction",
132
+ static: false,
133
+ private: false,
134
+ access: {
135
+ has: (obj) => "direction" in obj,
136
+ get: (obj) => obj.direction,
137
+ set: (obj, value) => {
138
+ obj.direction = value;
139
+ }
140
+ },
141
+ metadata: _metadata
142
+ }, _direction_initializers, _direction_extraInitializers);
143
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
144
+ enumerable: true,
145
+ configurable: true,
146
+ writable: true,
147
+ value: _metadata
148
+ });
149
+ }
150
+ static {
151
+ this.elementName = "sbb-train";
152
+ }
153
+ static {
154
+ this.elementDependencies = [SbbIconElement];
155
+ }
156
+ static {
157
+ this.styles = [boxSizingStyles, unsafeCSS(train_default)];
158
+ }
159
+ #directionLabel_accessor_storage;
160
+ /** General label for "driving direction". */
161
+ get directionLabel() {
162
+ return this.#directionLabel_accessor_storage;
163
+ }
164
+ set directionLabel(value) {
165
+ this.#directionLabel_accessor_storage = value;
166
+ }
167
+ #directionLabelLevel_accessor_storage;
168
+ /** Heading level of the direction label, used for screen readers. */
169
+ get directionLabelLevel() {
170
+ return this.#directionLabelLevel_accessor_storage;
171
+ }
172
+ set directionLabelLevel(value) {
173
+ this.#directionLabelLevel_accessor_storage = value;
174
+ }
175
+ #station_accessor_storage;
176
+ /** Label for the destination station of the train. */
177
+ get station() {
178
+ return this.#station_accessor_storage;
179
+ }
180
+ set station(value) {
181
+ this.#station_accessor_storage = value;
182
+ }
183
+ #accessibilityLabel_accessor_storage;
184
+ /** Accessibility label for additional information regarding the leaving direction of the train. */
185
+ get accessibilityLabel() {
186
+ return this.#accessibilityLabel_accessor_storage;
187
+ }
188
+ set accessibilityLabel(value) {
189
+ this.#accessibilityLabel_accessor_storage = value;
190
+ }
191
+ #direction_accessor_storage;
192
+ /** Controls the direction indicator to show the arrow left or right. Default is left. */
193
+ get direction() {
194
+ return this.#direction_accessor_storage;
195
+ }
196
+ set direction(value) {
197
+ this.#direction_accessor_storage = value;
198
+ }
199
+ /**
200
+ * Create the aria-label text out of the direction label, station and the accessibility label.
201
+ */
202
+ _getDirectionAriaLabel() {
203
+ const textParts = [i18nTrain[this._language.current]];
204
+ if (this.directionLabel && this.station) textParts.push(`${this.directionLabel} ${this.station}`);
205
+ if (this.accessibilityLabel) textParts.push(this.accessibilityLabel);
206
+ return `${textParts.join(", ")}.`;
207
+ }
208
+ willUpdate(changedProperties) {
209
+ super.willUpdate(changedProperties);
210
+ if (changedProperties.has("listChildren"))
211
+ /** @internal */
212
+ this.dispatchEvent(new Event("trainslotchange", { bubbles: true }));
213
+ }
214
+ render() {
215
+ const TITLE_TAG_NAME = `h${this.directionLabelLevel}`;
216
+ return html$1`
217
+ <${unsafeStatic(TITLE_TAG_NAME)} class="sbb-screen-reader-only">
218
+ ${this._getDirectionAriaLabel()}
219
+ </${unsafeStatic(TITLE_TAG_NAME)}>
220
+ ${this.directionLabel ? html$1`<div class="sbb-train__direction-heading" aria-hidden="true">
221
+ <span class="sbb-train__direction-sticky-wrapper">
222
+ <sbb-icon class="sbb-train__direction-arrow" name="arrow-left-small"></sbb-icon>
223
+ <span class="sbb-train__direction-label">
224
+ ${this.directionLabel} ${this.station}
225
+ </span>
226
+ </span>
227
+ </div>` : nothing}
228
+ ${this.renderList({
229
+ class: "sbb-train__wagons",
230
+ ariaLabel: i18nWagonsLabel[this._language.current]
231
+ })}
232
+ `;
233
+ }
234
+ };
235
+ })();
236
+ //#endregion
237
+ export { SbbTrainElement as t };
238
+
239
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4uY29tcG9uZW50LUNQOVFhUWs4LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi90cmFpbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi90cmFpbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10cmFpbi1kaXJlY3Rpb24tbGFiZWwtc3BhY2luZzogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICAtLV9zYmItdHJhaW4tZGlyZWN0aW9uLXJvdy1kaW1lbnNpb246IGNhbGMoXG4gICAgbWF4KHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpLCAxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSlcbiAgKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IHZhcigtLXNiYi10ZXh0LWZvbnQtc2l6ZS14cyk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkKTtcbiAgZ2FwOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLWdhcCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBQbGFjZWhvbGRlciB0byByZXNlcnZlIHRoZSBoZWlnaHQgb2YgdGhlIGRpcmVjdGlvbiByb3dcbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1yZXNlcnZlLXNwYWNpbmctZGlzcGxheSwgbm9uZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWRpcmVjdGlvbi1yb3ctZGltZW5zaW9uKTtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKTo6YmVmb3JlIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1kaXJlY3Rpb24tcm93LWRpbWVuc2lvbik7XG59XG5cbi5zYmItdHJhaW5fX3dhZ29ucyB7XG4gIEBpbmNsdWRlIHNiYi5saXN0LXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1nYXApO1xufVxuXG4uc2JiLXRyYWluX19kaXJlY3Rpb24taGVhZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgLy8gV2UgaGF2ZSB0byBwb3NpdGlvbiBpdCBhYnNvbHV0ZSBpbiBvcmRlciBmb3IgdGhlIGVsbGlwc2lzIHRvIHdvcmtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbl9fZGlyZWN0aW9uLXN0aWNreS13cmFwcGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItdHJhaW4tZGlyZWN0aW9uLWxhYmVsLXNwYWNpbmcpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiB1bnNldDtcbiAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbl9fZGlyZWN0aW9uLWFycm93IHtcbiAgOmhvc3QoW2RpcmVjdGlvbj0ncmlnaHQnXSkgJiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgb3JkZXI6IDI7XG4gIH1cblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICByb3RhdGU6IDkwZGVnO1xuICB9XG59XG5cbi5zYmItdHJhaW5fX2RpcmVjdGlvbi1sYWJlbCB7XG4gIEBpbmNsdWRlIHNiYi5lbGxpcHNpcztcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICB3cml0aW5nLW1vZGU6IHNpZGV3YXlzLWxyO1xuICB9XG59XG5cbi5zYmItc2NyZWVuLXJlYWRlci1vbmx5IHtcbiAgQGluY2x1ZGUgc2JiLnNjcmVlbi1yZWFkZXItb25seTtcbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCwgdW5zYWZlU3RhdGljIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGhhbmRsZURpc3RpbmN0Q2hhbmdlLFxuICBpMThuVHJhaW4sXG4gIGkxOG5XYWdvbnNMYWJlbCxcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICBTYmJFbGVtZW50LFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk5hbWVkU2xvdExpc3RNaXhpbixcbiAgdHlwZSBXaXRoTGlzdENoaWxkcmVuLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uLy4uL3RpdGxlLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCB9IGZyb20gJy4uL3RyYWluLWJsb2NrZWQtcGFzc2FnZS90cmFpbi1ibG9ja2VkLXBhc3NhZ2UuY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLWZvcm1hdGlvbi1vcmllbnRhdGlvbi1taXhpbi50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluV2Fnb25NaXhpblR5cGUgfSBmcm9tICcuLi90cmFpbi13YWdvbi1jb21tb24udHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90cmFpbi5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIGBzYmItdHJhaW4td2Fnb25gIG9yIGBzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlYCBjb21wb25lbnRzLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkICdzYmItdHJhaW4td2Fnb24nIGVsZW1lbnRzIHRvIHRoZSBgc2JiLXRyYWluYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRyYWluRWxlbWVudCBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihcbiAgU2JiTmFtZWRTbG90TGlzdE1peGluPFNiYlRyYWluV2Fnb25NaXhpblR5cGUgfCBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCwgdHlwZW9mIFNiYkVsZW1lbnQ+KFxuICAgIFNiYkVsZW1lbnQsXG4gICksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10cmFpbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJJY29uRWxlbWVudF07XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gW1xuICAgICdzYmItdHJhaW4td2Fnb24nLFxuICAgICdzYmItdHJhaW4td2Fnb24tYnV0dG9uJyxcbiAgICAnc2JiLXRyYWluLXdhZ29uLWxpbmsnLFxuICAgICdzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJyxcbiAgXTtcblxuICAvKiogR2VuZXJhbCBsYWJlbCBmb3IgXCJkcml2aW5nIGRpcmVjdGlvblwiLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQGhhbmRsZURpc3RpbmN0Q2hhbmdlKChlOiBTYmJUcmFpbkVsZW1lbnQpID0+IHtcbiAgICBlLmRpc3BhdGNoRXZlbnQoXG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICBuZXcgRXZlbnQoJ2RpcmVjdGlvbmxhYmVsY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICApO1xuICB9KVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXJlY3Rpb24tbGFiZWwnLCByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGlyZWN0aW9uTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBIZWFkaW5nIGxldmVsIG9mIHRoZSBkaXJlY3Rpb24gbGFiZWwsIHVzZWQgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXJlY3Rpb24tbGFiZWwtbGV2ZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkaXJlY3Rpb25MYWJlbExldmVsOiBTYmJUaXRsZUxldmVsID0gJzYnO1xuXG4gIC8qKiBMYWJlbCBmb3IgdGhlIGRlc3RpbmF0aW9uIHN0YXRpb24gb2YgdGhlIHRyYWluLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHN0YXRpb246IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBBY2Nlc3NpYmlsaXR5IGxhYmVsIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGUgbGVhdmluZyBkaXJlY3Rpb24gb2YgdGhlIHRyYWluLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIENvbnRyb2xzIHRoZSBkaXJlY3Rpb24gaW5kaWNhdG9yIHRvIHNob3cgdGhlIGFycm93IGxlZnQgb3IgcmlnaHQuIERlZmF1bHQgaXMgbGVmdC4gICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgYXJpYS1sYWJlbCB0ZXh0IG91dCBvZiB0aGUgZGlyZWN0aW9uIGxhYmVsLCBzdGF0aW9uIGFuZCB0aGUgYWNjZXNzaWJpbGl0eSBsYWJlbC5cbiAgICovXG4gIHByaXZhdGUgX2dldERpcmVjdGlvbkFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRleHRQYXJ0czogc3RyaW5nW10gPSBbaTE4blRyYWluW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdXTtcblxuICAgIGlmICh0aGlzLmRpcmVjdGlvbkxhYmVsICYmIHRoaXMuc3RhdGlvbikge1xuICAgICAgdGV4dFBhcnRzLnB1c2goYCR7dGhpcy5kaXJlY3Rpb25MYWJlbH0gJHt0aGlzLnN0YXRpb259YCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsKSB7XG4gICAgICB0ZXh0UGFydHMucHVzaCh0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3RleHRQYXJ0cy5qb2luKCcsICcpfS5gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndHJhaW5zbG90Y2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUSVRMRV9UQUdfTkFNRSA9IGBoJHt0aGlzLmRpcmVjdGlvbkxhYmVsTGV2ZWx9YDtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgIHJldHVybiBodG1sYFxuICAgICAgICA8JHt1bnNhZmVTdGF0aWMoVElUTEVfVEFHX05BTUUpfSBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAke3RoaXMuX2dldERpcmVjdGlvbkFyaWFMYWJlbCgpfVxuICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0+XG4gICAgICAgICR7XG4gICAgICAgICAgdGhpcy5kaXJlY3Rpb25MYWJlbFxuICAgICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItdHJhaW5fX2RpcmVjdGlvbi1oZWFkaW5nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdHJhaW5fX2RpcmVjdGlvbi1zdGlja3ktd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgPHNiYi1pY29uIGNsYXNzPVwic2JiLXRyYWluX19kaXJlY3Rpb24tYXJyb3dcIiBuYW1lPVwiYXJyb3ctbGVmdC1zbWFsbFwiPjwvc2JiLWljb24+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi10cmFpbl9fZGlyZWN0aW9uLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaXJlY3Rpb25MYWJlbH0gJHt0aGlzLnN0YXRpb259XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgICAgICA6IG5vdGhpbmdcbiAgICAgICAgfVxuICAgICAgICAke3RoaXMucmVuZGVyTGlzdCh7XG4gICAgICAgICAgY2xhc3M6ICdzYmItdHJhaW5fX3dhZ29ucycsXG4gICAgICAgICAgYXJpYUxhYmVsOiBpMThuV2Fnb25zTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0sXG4gICAgICAgIH0pfVxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbic6IFNiYlRyYWluRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0lDb0NhLHlCQUFlO21CQUFTLGtDQUNuQyxzQkFDRSxXQUNELENBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Y0FKWSx3QkFBd0IsWUFJcEM7OztBQUs2QixRQUFBLHNCQUFzQjtJQUNoRDtJQUNBO0lBQ0E7SUFDQTtJQUNEO0FBV2UsU0FBQSxrQ0FBQSxrQkFBQSxNQUFBLDhCQUF5QixHQUFFO0FBSTNCLFNBQUEsd0NBQUEsa0JBQUEsTUFBQSxrQ0FBQSxFQUFBLGtCQUFBLE1BQUEsbUNBQXFDLElBQUc7QUFLeEMsU0FBQSw0QkFBQSxrQkFBQSxNQUFBLHVDQUFBLEVBQUEsa0JBQUEsTUFBQSx1QkFBa0IsR0FBRTtBQUtwQixTQUFBLHVDQUFBLGtCQUFBLE1BQUEsMkJBQUEsRUFBQSxrQkFBQSxNQUFBLGtDQUE2QixHQUFFO0FBR0YsU0FBQSw4QkFBQSxrQkFBQSxNQUFBLHNDQUFBLEVBQUEsa0JBQUEsTUFBQSx5QkFBOEIsT0FBTTtBQUV6RSxRQUFBLGFBQVMsa0JBQUEsTUFBQSw2QkFBQSxFQUFHLElBQUksc0JBQXNCLEtBQUs7Ozs7O0lBM0JsRCxXQUFXO0lBQ1gsc0JBQXNCLE1BQXNCO0FBQzNDLE9BQUU7O01BRUEsSUFBSSxNQUFNLHdCQUF3QjtPQUFFLFNBQVM7T0FBTSxVQUFVO09BQU0sQ0FBQTtNQUNwRTtNQUNEO0lBQ0QsU0FBUztLQUFFLFdBQVc7S0FBbUIsU0FBUztLQUFNLFdBQVc7S0FBb0IsQ0FBQTtJQUFDO3NDQUl4RixTQUFTLEVBQUUsV0FBVyx5QkFBeUIsQ0FBQyxDQUFBOzBCQUloRCxXQUFXLEVBQ1gsVUFBVSxDQUFBO3FDQUlWLFdBQVcsRUFDWCxTQUFTLEVBQUUsV0FBVyx1QkFBdUIsQ0FBQyxDQUFBOzRCQUk5QyxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQWpCNUIsZ0JBQUEsTUFBQSxNQUFBLDRCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsb0JBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBYyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQWQsaUJBQWM7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSw4QkFBQSxrQ0FBQTtBQUk5QixnQkFBQSxNQUFBLE1BQUEsaUNBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSx5QkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFtQixNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQW5CLHNCQUFtQjs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLG1DQUFBLHVDQUFBO0FBS25DLGdCQUFBLE1BQUEsTUFBQSxxQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGFBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBTyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVAsVUFBTzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHVCQUFBLDJCQUFBO0FBS3ZCLGdCQUFBLE1BQUEsTUFBQSxnQ0FBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLHdCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWtCLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBbEIscUJBQWtCOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsa0NBQUEsc0NBQUE7QUFHTCxnQkFBQSxNQUFBLE1BQUEsdUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxlQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVMsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFULFlBQVM7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx5QkFBQSw2QkFBQTs7Ozs7Ozs7O0FBckN0QixRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxzQkFBd0MsQ0FBQyxlQUFlOzs7QUFDeEQsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLGNBQU0sQ0FBQzs7RUFrQm5GOztFQUFBLElBQWdCLGlCQUFjO0FBQUEsVUFBQSxNQUFBOztFQUE5QixJQUFnQixlQUFjLE9BQUE7QUFBQSxTQUFBLGtDQUFBOztFQUk5Qjs7RUFBQSxJQUFnQixzQkFBbUI7QUFBQSxVQUFBLE1BQUE7O0VBQW5DLElBQWdCLG9CQUFtQixPQUFBO0FBQUEsU0FBQSx1Q0FBQTs7RUFLbkM7O0VBQUEsSUFBZ0IsVUFBTztBQUFBLFVBQUEsTUFBQTs7RUFBdkIsSUFBZ0IsUUFBTyxPQUFBO0FBQUEsU0FBQSwyQkFBQTs7RUFLdkI7O0VBQUEsSUFBZ0IscUJBQWtCO0FBQUEsVUFBQSxNQUFBOztFQUFsQyxJQUFnQixtQkFBa0IsT0FBQTtBQUFBLFNBQUEsc0NBQUE7O0VBR0w7O0VBQUEsSUFBZ0IsWUFBUztBQUFBLFVBQUEsTUFBQTs7RUFBekIsSUFBZ0IsVUFBUyxPQUFBO0FBQUEsU0FBQSw2QkFBQTs7Ozs7RUFPOUMseUJBQXNCO0dBQzVCLE1BQU0sWUFBc0IsQ0FBQyxVQUFVLEtBQUssVUFBVSxTQUFTO0FBRS9ELE9BQUksS0FBSyxrQkFBa0IsS0FBSyxRQUM5QixXQUFVLEtBQUssR0FBRyxLQUFLLGVBQWMsR0FBSSxLQUFLLFVBQVU7QUFHMUQsT0FBSSxLQUFLLG1CQUNQLFdBQVUsS0FBSyxLQUFLLG1CQUFtQjtBQUd6QyxVQUFPLEdBQUcsVUFBVSxLQUFLLEtBQUssQ0FBQTs7RUFHYixXQUFXLG1CQUF5RDtBQUNyRixTQUFNLFdBQVcsa0JBQWtCO0FBRW5DLE9BQUksa0JBQWtCLElBQUksZUFBZTs7QUFFdkMsUUFBSyxjQUFjLElBQUksTUFBTSxtQkFBbUIsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFDOztFQUlwRCxTQUFNO0dBQ3ZCLE1BQU0saUJBQWlCLElBQUksS0FBSztBQUdoQyxVQUFPLE1BQUk7V0FDSixhQUFhLGVBQWUsQ0FBQTtZQUMzQixLQUFLLHdCQUF3QixDQUFBO1lBQzdCLGFBQWEsZUFBZSxDQUFBO1VBRTlCLEtBQUssaUJBQ0QsTUFBSTs7OztzQkFJSSxLQUFLLGVBQWMsR0FBSSxLQUFLLFFBQUE7Ozt3QkFJcEMsUUFBQTtVQUVKLEtBQUssV0FBVztJQUNoQixPQUFPO0lBQ1AsV0FBVyxnQkFBZ0IsS0FBSyxVQUFVO0lBQzNDLENBQUMsQ0FBQSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../../../src/elements/train.ts"],"names":[],"mappings":"AAQA,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../../../src/elements/train.ts"],"names":[],"mappings":"AAUA,cAAc,iBAAiB,CAAC"}
@@ -1,15 +1,21 @@
1
- import { t as SbbTrainBlockedPassageElement } from "./train-blocked-passage.component-Bh2dR1gn.js";
2
- import { t as SbbTrainFormationElement } from "./train-formation.component-Dm0t9N_h.js";
3
- import { t as SbbTrainWagonElement } from "./train-wagon.component-B6V4dPKn.js";
4
- import { t as SbbTrainElement } from "./train.component-BvbNBkZF.js";
1
+ import { t as SbbTrainBlockedPassageElement } from "./train-blocked-passage.component-BgBnEOfh.js";
2
+ import { t as SbbTrainFormationElement } from "./train-formation.component-CDKR5KCm.js";
3
+ import { SbbTrainWagonButtonElement } from "./train/train-wagon-button/train-wagon-button.component.js";
4
+ import { SbbTrainWagonLinkElement } from "./train/train-wagon-link/train-wagon-link.component.js";
5
+ import { SbbTrainWagonElement } from "./train/train-wagon/train-wagon.component.js";
6
+ import { t as SbbTrainElement } from "./train.component-CP9QaQk8.js";
7
+ import { SbbTrainFormationOrientationMixin } from "./train/train-formation-orientation-mixin.js";
8
+ import { t as SbbTrainWagonMixin } from "./train-wagon-common-S3OJdguG.js";
5
9
  import "./train.pure.js";
6
10
  //#region src/elements/train.ts
7
11
  /** @entrypoint */
8
- SbbTrainElement.define();
9
12
  SbbTrainBlockedPassageElement.define();
13
+ SbbTrainElement.define();
10
14
  SbbTrainFormationElement.define();
15
+ SbbTrainWagonButtonElement.define();
16
+ SbbTrainWagonLinkElement.define();
11
17
  SbbTrainWagonElement.define();
12
18
  //#endregion
13
- export { SbbTrainBlockedPassageElement, SbbTrainElement, SbbTrainFormationElement, SbbTrainWagonElement };
19
+ export { SbbTrainBlockedPassageElement, SbbTrainElement, SbbTrainFormationElement, SbbTrainFormationOrientationMixin, SbbTrainWagonButtonElement, SbbTrainWagonElement, SbbTrainWagonLinkElement, SbbTrainWagonMixin };
14
20
 
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RyYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAZW50cnlwb2ludCAqL1xuaW1wb3J0IHtcbiAgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQsXG4gIFNiYlRyYWluRWxlbWVudCxcbiAgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50LFxuICBTYmJUcmFpbldhZ29uRWxlbWVudCxcbn0gZnJvbSAnLi90cmFpbi5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi90cmFpbi5wdXJlLnRzJztcblxuU2JiVHJhaW5FbGVtZW50LmRlZmluZSgpO1xuU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQuZGVmaW5lKCk7XG5TYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQuZGVmaW5lKCk7XG5TYmJUcmFpbldhZ29uRWxlbWVudC5kZWZpbmUoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVVBLGdCQUFnQixRQUFRO0FBQ3hCLDhCQUE4QixRQUFRO0FBQ3RDLHlCQUF5QixRQUFRO0FBQ2pDLHFCQUFxQixRQUFRIn0=
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RyYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAZW50cnlwb2ludCAqL1xuaW1wb3J0IHtcbiAgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQsXG4gIFNiYlRyYWluRWxlbWVudCxcbiAgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50LFxuICBTYmJUcmFpbldhZ29uQnV0dG9uRWxlbWVudCxcbiAgU2JiVHJhaW5XYWdvbkxpbmtFbGVtZW50LFxuICBTYmJUcmFpbldhZ29uRWxlbWVudCxcbn0gZnJvbSAnLi90cmFpbi5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi90cmFpbi5wdXJlLnRzJztcblxuU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQuZGVmaW5lKCk7XG5TYmJUcmFpbkVsZW1lbnQuZGVmaW5lKCk7XG5TYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQuZGVmaW5lKCk7XG5TYmJUcmFpbldhZ29uQnV0dG9uRWxlbWVudC5kZWZpbmUoKTtcblNiYlRyYWluV2Fnb25MaW5rRWxlbWVudC5kZWZpbmUoKTtcblNiYlRyYWluV2Fnb25FbGVtZW50LmRlZmluZSgpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVlBLDhCQUE4QixRQUFRO0FBQ3RDLGdCQUFnQixRQUFRO0FBQ3hCLHlCQUF5QixRQUFRO0FBQ2pDLDJCQUEyQixRQUFRO0FBQ25DLHlCQUF5QixRQUFRO0FBQ2pDLHFCQUFxQixRQUFRIn0=
@@ -1,6 +1,10 @@
1
1
  /** @entrypoint */
2
2
  export * from './train/train-blocked-passage/train-blocked-passage.component.ts';
3
3
  export * from './train/train-formation/train-formation.component.ts';
4
+ export * from './train/train-wagon-button/train-wagon-button.component.ts';
5
+ export * from './train/train-wagon-link/train-wagon-link.component.ts';
4
6
  export * from './train/train-wagon/train-wagon.component.ts';
5
7
  export * from './train/train/train.component.ts';
8
+ export * from './train/train-formation-orientation-mixin.ts';
9
+ export * from './train/train-wagon-common.ts';
6
10
  //# sourceMappingURL=train.pure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"train.pure.d.ts","sourceRoot":"","sources":["../../../src/elements/train.pure.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,cAAc,kEAAkE,CAAC;AACjF,cAAc,sDAAsD,CAAC;AACrE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"train.pure.d.ts","sourceRoot":"","sources":["../../../src/elements/train.pure.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,cAAc,kEAAkE,CAAC;AACjF,cAAc,sDAAsD,CAAC;AACrE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wDAAwD,CAAC;AACvE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+BAA+B,CAAC"}
@@ -1,5 +1,9 @@
1
- import { t as SbbTrainBlockedPassageElement } from "./train-blocked-passage.component-Bh2dR1gn.js";
2
- import { t as SbbTrainFormationElement } from "./train-formation.component-Dm0t9N_h.js";
3
- import { t as SbbTrainWagonElement } from "./train-wagon.component-B6V4dPKn.js";
4
- import { t as SbbTrainElement } from "./train.component-BvbNBkZF.js";
5
- export { SbbTrainBlockedPassageElement, SbbTrainElement, SbbTrainFormationElement, SbbTrainWagonElement };
1
+ import { t as SbbTrainBlockedPassageElement } from "./train-blocked-passage.component-BgBnEOfh.js";
2
+ import { t as SbbTrainFormationElement } from "./train-formation.component-CDKR5KCm.js";
3
+ import { SbbTrainWagonButtonElement } from "./train/train-wagon-button/train-wagon-button.component.js";
4
+ import { SbbTrainWagonLinkElement } from "./train/train-wagon-link/train-wagon-link.component.js";
5
+ import { SbbTrainWagonElement } from "./train/train-wagon/train-wagon.component.js";
6
+ import { t as SbbTrainElement } from "./train.component-CP9QaQk8.js";
7
+ import { SbbTrainFormationOrientationMixin } from "./train/train-formation-orientation-mixin.js";
8
+ import { t as SbbTrainWagonMixin } from "./train-wagon-common-S3OJdguG.js";
9
+ export { SbbTrainBlockedPassageElement, SbbTrainElement, SbbTrainFormationElement, SbbTrainFormationOrientationMixin, SbbTrainWagonButtonElement, SbbTrainWagonElement, SbbTrainWagonLinkElement, SbbTrainWagonMixin };
package/index.d.ts CHANGED
@@ -74,7 +74,7 @@ import { SbbToastElement } from "./toast.js";
74
74
  import { SbbToggleElement, SbbToggleOptionElement } from "./toggle.js";
75
75
  import { SbbToggleCheckElement } from "./toggle-check.js";
76
76
  import { SbbTooltipElement } from "./tooltip.js";
77
- import { SbbTrainBlockedPassageElement, SbbTrainElement, SbbTrainFormationElement, SbbTrainWagonElement } from "./train.js";
77
+ import { SbbTrainBlockedPassageElement, SbbTrainElement, SbbTrainFormationElement, SbbTrainWagonButtonElement, SbbTrainWagonElement, SbbTrainWagonLinkElement } from "./train.js";
78
78
  import { SbbVisualCheckboxElement } from "./visual-checkbox.js";
79
79
  declare global {
80
80
  var SbbAccentButtonElement: SbbAccentButtonElement;
@@ -236,7 +236,9 @@ declare global {
236
236
  var SbbTrainBlockedPassageElement: SbbTrainBlockedPassageElement;
237
237
  var SbbTrainElement: SbbTrainElement;
238
238
  var SbbTrainFormationElement: SbbTrainFormationElement;
239
+ var SbbTrainWagonButtonElement: SbbTrainWagonButtonElement;
239
240
  var SbbTrainWagonElement: SbbTrainWagonElement;
241
+ var SbbTrainWagonLinkElement: SbbTrainWagonLinkElement;
240
242
  var SbbTransparentButtonElement: SbbTransparentButtonElement;
241
243
  var SbbTransparentButtonLinkElement: SbbTransparentButtonLinkElement;
242
244
  var SbbTransparentButtonStaticElement: SbbTransparentButtonStaticElement;
package/index.js CHANGED
@@ -74,7 +74,7 @@ import { SbbToastElement } from "./toast.js";
74
74
  import { SbbToggleElement, SbbToggleOptionElement } from "./toggle.js";
75
75
  import { SbbToggleCheckElement } from "./toggle-check.js";
76
76
  import { SbbTooltipElement } from "./tooltip.js";
77
- import { SbbTrainBlockedPassageElement, SbbTrainElement, SbbTrainFormationElement, SbbTrainWagonElement } from "./train.js";
77
+ import { SbbTrainBlockedPassageElement, SbbTrainElement, SbbTrainFormationElement, SbbTrainWagonButtonElement, SbbTrainWagonElement, SbbTrainWagonLinkElement } from "./train.js";
78
78
  import { SbbVisualCheckboxElement } from "./visual-checkbox.js";
79
79
 
80
80
  globalThis.SbbAccentButtonElement = SbbAccentButtonElement;
@@ -236,7 +236,9 @@ globalThis.SbbTooltipElement = SbbTooltipElement;
236
236
  globalThis.SbbTrainBlockedPassageElement = SbbTrainBlockedPassageElement;
237
237
  globalThis.SbbTrainElement = SbbTrainElement;
238
238
  globalThis.SbbTrainFormationElement = SbbTrainFormationElement;
239
+ globalThis.SbbTrainWagonButtonElement = SbbTrainWagonButtonElement;
239
240
  globalThis.SbbTrainWagonElement = SbbTrainWagonElement;
241
+ globalThis.SbbTrainWagonLinkElement = SbbTrainWagonLinkElement;
240
242
  globalThis.SbbTransparentButtonElement = SbbTransparentButtonElement;
241
243
  globalThis.SbbTransparentButtonLinkElement = SbbTransparentButtonLinkElement;
242
244
  globalThis.SbbTransparentButtonStaticElement = SbbTransparentButtonStaticElement;
@@ -1916,6 +1916,59 @@ slot[name=error]::slotted(*) {
1916
1916
  --sbb-tab-label-amount-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
1917
1917
  --sbb-tab-label-line-color: var(--sbb-border-color-4-inverted);
1918
1918
  --sbb-tab-label-cursor: var(--sbb-cursor-pointer);
1919
+ --sbb-train-blocked-passage-background-color: var(--sbb-color-error);
1920
+ --sbb-train-blocked-passage-bar-color: var(--sbb-color-white);
1921
+ --sbb-train-blocked-passage-icon-bar-width: 0.625rem;
1922
+ --sbb-train-blocked-passage-icon-bar-height: 0.25rem;
1923
+ --sbb-train-blocked-passage-icon-bar-border-radius: var(--sbb-border-radius-1x);
1924
+ --sbb-train-formation-wagon-dimension-short: 2.25rem;
1925
+ --sbb-train-formation-wagon-dimension-long: 5.25rem;
1926
+ --sbb-train-formation-wagon-gap: var(--sbb-spacing-fixed-1x);
1927
+ --sbb-train-formation-sector-line-color: var(--sbb-color-cement);
1928
+ --sbb-train-formation-sector-line-color: light-dark(
1929
+ var(--sbb-color-cement),
1930
+ var(--sbb-color-smoke)
1931
+ );
1932
+ --sbb-train-formation-sector-line-width: var(--sbb-border-width-1x);
1933
+ --sbb-train-formation-blocked-passage-dimension: 1rem;
1934
+ --sbb-train-formation-text-color: var(--sbb-color-3);
1935
+ --sbb-train-formation-gap: var(--sbb-spacing-fixed-2x);
1936
+ --sbb-train-formation-sector-padding: var(--sbb-spacing-fixed-1x);
1937
+ --sbb-train-formation-sector-margin: var(--sbb-spacing-fixed-2x);
1938
+ --sbb-train-formation-padding: var(--sbb-spacing-fixed-1x);
1939
+ --_sbb-train-formation-flex-direction: row;
1940
+ --_sbb-train-formation-flex-direction-inverted: column;
1941
+ --sbb-train-wagon-font-size: var(--sbb-text-font-size-xxs);
1942
+ --sbb-train-wagon-shape-color: var(--sbb-color-3);
1943
+ --sbb-train-wagon-vertical-gap: 0.125rem;
1944
+ --sbb-train-wagon-padding-inline: var(--sbb-spacing-fixed-3x);
1945
+ --sbb-train-wagon-border-width: var(--sbb-border-width-1x);
1946
+ --sbb-train-wagon-main-icon-height: 1.25rem;
1947
+ --sbb-train-wagon-attribute-icon-gap: 0.125rem;
1948
+ --sbb-train-wagon-attribute-icon-height: 0.875rem;
1949
+ --sbb-train-wagon-attribute-icon-color: var(--sbb-color-1);
1950
+ --sbb-train-wagon-attributes-max-width: 3.4375rem;
1951
+ --sbb-train-wagon-attributes-mean-width: 1.75rem;
1952
+ --sbb-train-wagon-occupancy-height: 0.75rem;
1953
+ --sbb-train-wagon-background-color-hover: var(--sbb-background-color-3);
1954
+ --sbb-train-wagon-background-color-active: var(--sbb-background-color-4);
1955
+ --sbb-train-wagon-border-radius: var(--sbb-border-radius-6x);
1956
+ --sbb-train-wagon-information-gap: var(--sbb-spacing-fixed-1x);
1957
+ --sbb-train-wagon-information-min-width: 1.875rem;
1958
+ --sbb-train-wagon-class-dimension: 1.125rem;
1959
+ --sbb-train-wagon-class-color: var(--sbb-color-anthracite);
1960
+ --sbb-train-wagon-class-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-graphite));
1961
+ --sbb-train-wagon-class-background-color: var(--sbb-background-color-3);
1962
+ --sbb-train-wagon-class-border-width: var(--sbb-border-width-1x);
1963
+ --sbb-train-wagon-class-border: var(--sbb-train-wagon-class-border-width) solid
1964
+ var(--sbb-color-graphite);
1965
+ --sbb-train-wagon-class-border: var(--sbb-train-wagon-class-border-width) solid
1966
+ light-dark(var(--sbb-color-graphite), var(--sbb-color-anthracite));
1967
+ --sbb-train-wagon-class-border-radius: var(--sbb-border-radius-2x);
1968
+ --sbb-train-wagon-class-font-weight: bold;
1969
+ --sbb-train-wagon-class-first-thickness: 0.25rem;
1970
+ --sbb-train-wagon-class-first-color: var(--sbb-color-lemon);
1971
+ --sbb-train-wagon-class-first-border-radius: var(--sbb-border-radius-1x);
1919
1972
  --sbb-tag-animation-easing: var(--sbb-animation-easing);
1920
1973
  --sbb-tag-background-color: var(--sbb-background-color-1);
1921
1974
  --sbb-tag-border-color: var(--sbb-border-color-4-inverted);
@@ -2113,12 +2166,13 @@ slot[name=error]::slotted(*) {
2113
2166
  --sbb-toggle-check-circle-background-color: Canvas;
2114
2167
  --sbb-toggle-selected-option-border-width: var(--sbb-border-width-2x);
2115
2168
  --sbb-toggle-selected-option-border-color: Highlight;
2169
+ --sbb-train-blocked-passage-background-color: CanvasText;
2170
+ --sbb-train-blocked-passage-bar-color: Canvas;
2171
+ --sbb-train-formation-sector-line-color: CanvasText;
2172
+ --sbb-train-wagon-shape-color: CanvasText;
2116
2173
  }
2117
2174
  }
2118
2175
  :root {
2119
- --sbb-train-formation-wagon-width: 5rem;
2120
- --sbb-train-formation-wagon-height: 2.5rem;
2121
- --sbb-train-formation-wagon-gap: var(--sbb-spacing-fixed-1x);
2122
2176
  --sbb-overlay-default-z-index: 1000;
2123
2177
  --sbb-cursor-default: default;
2124
2178
  --sbb-cursor-pointer: pointer;
@@ -2795,34 +2849,6 @@ img {
2795
2849
  transition: filter var(--sbb-teaser-image-animation-duration) var(--sbb-teaser-image-animation-easing);
2796
2850
  }
2797
2851
 
2798
- sbb-train-formation:has(sbb-train[direction-label]) {
2799
- --sbb-train-formation-reserve-spacing-display: block;
2800
- }
2801
-
2802
- sbb-train-formation:has(sbb-train-wagon[sector]) {
2803
- --sbb-train-formation-show-sectors-gap: 1;
2804
- }
2805
-
2806
- sbb-train-formation:not(:has(sbb-train-wagon[label])) {
2807
- --sbb-train-formation-wagon-label-display: none;
2808
- }
2809
-
2810
- sbb-train-formation[view=side] sbb-train-wagon {
2811
- --sbb-train-wagon-wagon-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M12.5,0.5 h55 a12,12 0 0 1 12,12 v15 a12,12 0 0 1 -12,12 h-55 a12,12 0 0 1 -12,-12 v-15 a12,12 0 0 1 12,-12 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E");
2812
- --sbb-train-wagon-wagon-closed-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Crect x='0.5' y='0.5' width='79' height='39' rx='11.5' stroke='%23000000'/%3E%3Cpath d='M76 4L4 36' stroke='%23000000'/%3E%3Cpath d='M76 36L4 4' stroke='%23000000'/%3E%3C/svg%3E");
2813
- --sbb-train-wagon-wagon-end-left-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M10.745 7.90416C13.5624 3.30431 18.5686 0.5 23.9627 0.5H68C74.3513 0.5 79.5 5.64873 79.5 12V28C79.5 34.3513 74.3513 39.5 68 39.5H11.922C2.93614 39.5 -2.57807 29.6562 2.11537 21.9934L10.745 7.90416Z' stroke='%23000000'/%3E%3C/svg%3E");
2814
- --sbb-train-wagon-locomotive-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M10.745 7.90416C13.5624 3.30431 18.5686 0.5 23.9627 0.5H56.0373C61.4314 0.5 66.4376 3.30432 69.255 7.90416L77.8846 21.9934C82.5781 29.6562 77.0639 39.5 68.078 39.5H11.922C2.93615 39.5 -2.57807 29.6562 2.11537 21.9934L10.745 7.90416Z' stroke='%23000000'/%3E%3C/svg%3E");
2815
- --sbb-train-wagon-wagon-end-right-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M0.5 12C0.5 5.64873 5.64873 0.5 12 0.5H56.0373C61.4314 0.5 66.4376 3.30432 69.255 7.90416L77.8846 21.9934C82.5781 29.6562 77.0638 39.5 68.0779 39.5H12C5.64873 39.5 0.5 34.3513 0.5 28V12Z' stroke='%23000000'/%3E%3C/svg%3E");
2816
- }
2817
-
2818
- sbb-train-formation[view=top] sbb-train-wagon {
2819
- --sbb-train-wagon-wagon-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M8.5,0.5 h63 a8,8 0 0 1 8,8 v23 a8,8 0 0 1 -8,8 h-63 a8,8 0 0 1 -8,-8 v-23 a8,8 0 0 1 8,-8 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E%0A");
2820
- --sbb-train-wagon-wagon-closed-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Crect x='0.5' y='0.5' width='79' height='39' rx='7.5' stroke='%23000000'/%3E%3Cpath d='M77.5 2.5L2.5 37.5' stroke='%23000000'/%3E%3Cpath d='M77.5 37.5L2.5 2.5' stroke='%23000000'/%3E%3C/svg%3E");
2821
- --sbb-train-wagon-wagon-end-left-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath transform='translate(80,40) rotate(180)' d='M8.5,0.5 h51.5 a19.5,19.5 0 0 1 19.5,19.5 v0 a19.5,19.5 0 0 1 -19.5,19.5 h-51.5 a8,8 0 0 1 -8,-8 v-23 a8,8 0 0 1 8,-8 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E");
2822
- --sbb-train-wagon-locomotive-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M20,0.5 h40 a19.5,19.5 0 0 1 19.5,19.5 v0 a19.5,19.5 0 0 1 -19.5,19.5 h-40 a19.5,19.5 0 0 1 -19.5,-19.5 v0 a19.5,19.5 0 0 1 19.5,-19.5 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E%0A");
2823
- --sbb-train-wagon-wagon-end-right-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M8.5,0.5 h51.5 a19.5,19.5 0 0 1 19.5,19.5 v0 a19.5,19.5 0 0 1 -19.5,19.5 h-51.5 a8,8 0 0 1 -8,-8 v-23 a8,8 0 0 1 8,-8 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E");
2824
- }
2825
-
2826
2852
  .sbb-overlay-outlet {
2827
2853
  position: fixed;
2828
2854
  inset: 0;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-dev",
3
- "version": "5.0.0-next.1-dev.1777358786",
3
+ "version": "5.0.0-next.1-dev.1777393579",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
- "https://github.com/sbb-design-systems/lyne-components/commit/80f1991d667b7e25cd4a853154683139f7257cb3"
9
+ "https://github.com/sbb-design-systems/lyne-components/commit/1f2e2f3be2e6a4ae751a9676bd737990d3a83a72"
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {
package/safety-theme.css CHANGED
@@ -1916,6 +1916,59 @@ slot[name=error]::slotted(*) {
1916
1916
  --sbb-tab-label-amount-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
1917
1917
  --sbb-tab-label-line-color: var(--sbb-border-color-4-inverted);
1918
1918
  --sbb-tab-label-cursor: var(--sbb-cursor-pointer);
1919
+ --sbb-train-blocked-passage-background-color: var(--sbb-color-error);
1920
+ --sbb-train-blocked-passage-bar-color: var(--sbb-color-white);
1921
+ --sbb-train-blocked-passage-icon-bar-width: 0.625rem;
1922
+ --sbb-train-blocked-passage-icon-bar-height: 0.25rem;
1923
+ --sbb-train-blocked-passage-icon-bar-border-radius: var(--sbb-border-radius-1x);
1924
+ --sbb-train-formation-wagon-dimension-short: 2.25rem;
1925
+ --sbb-train-formation-wagon-dimension-long: 5.25rem;
1926
+ --sbb-train-formation-wagon-gap: var(--sbb-spacing-fixed-1x);
1927
+ --sbb-train-formation-sector-line-color: var(--sbb-color-cement);
1928
+ --sbb-train-formation-sector-line-color: light-dark(
1929
+ var(--sbb-color-cement),
1930
+ var(--sbb-color-smoke)
1931
+ );
1932
+ --sbb-train-formation-sector-line-width: var(--sbb-border-width-1x);
1933
+ --sbb-train-formation-blocked-passage-dimension: 1rem;
1934
+ --sbb-train-formation-text-color: var(--sbb-color-3);
1935
+ --sbb-train-formation-gap: var(--sbb-spacing-fixed-2x);
1936
+ --sbb-train-formation-sector-padding: var(--sbb-spacing-fixed-1x);
1937
+ --sbb-train-formation-sector-margin: var(--sbb-spacing-fixed-2x);
1938
+ --sbb-train-formation-padding: var(--sbb-spacing-fixed-1x);
1939
+ --_sbb-train-formation-flex-direction: row;
1940
+ --_sbb-train-formation-flex-direction-inverted: column;
1941
+ --sbb-train-wagon-font-size: var(--sbb-text-font-size-xxs);
1942
+ --sbb-train-wagon-shape-color: var(--sbb-color-3);
1943
+ --sbb-train-wagon-vertical-gap: 0.125rem;
1944
+ --sbb-train-wagon-padding-inline: var(--sbb-spacing-fixed-3x);
1945
+ --sbb-train-wagon-border-width: var(--sbb-border-width-1x);
1946
+ --sbb-train-wagon-main-icon-height: 1.25rem;
1947
+ --sbb-train-wagon-attribute-icon-gap: 0.125rem;
1948
+ --sbb-train-wagon-attribute-icon-height: 0.875rem;
1949
+ --sbb-train-wagon-attribute-icon-color: var(--sbb-color-1);
1950
+ --sbb-train-wagon-attributes-max-width: 3.4375rem;
1951
+ --sbb-train-wagon-attributes-mean-width: 1.75rem;
1952
+ --sbb-train-wagon-occupancy-height: 0.75rem;
1953
+ --sbb-train-wagon-background-color-hover: var(--sbb-background-color-3);
1954
+ --sbb-train-wagon-background-color-active: var(--sbb-background-color-4);
1955
+ --sbb-train-wagon-border-radius: var(--sbb-border-radius-6x);
1956
+ --sbb-train-wagon-information-gap: var(--sbb-spacing-fixed-1x);
1957
+ --sbb-train-wagon-information-min-width: 1.875rem;
1958
+ --sbb-train-wagon-class-dimension: 1.125rem;
1959
+ --sbb-train-wagon-class-color: var(--sbb-color-anthracite);
1960
+ --sbb-train-wagon-class-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-graphite));
1961
+ --sbb-train-wagon-class-background-color: var(--sbb-background-color-3);
1962
+ --sbb-train-wagon-class-border-width: var(--sbb-border-width-1x);
1963
+ --sbb-train-wagon-class-border: var(--sbb-train-wagon-class-border-width) solid
1964
+ var(--sbb-color-graphite);
1965
+ --sbb-train-wagon-class-border: var(--sbb-train-wagon-class-border-width) solid
1966
+ light-dark(var(--sbb-color-graphite), var(--sbb-color-anthracite));
1967
+ --sbb-train-wagon-class-border-radius: var(--sbb-border-radius-2x);
1968
+ --sbb-train-wagon-class-font-weight: bold;
1969
+ --sbb-train-wagon-class-first-thickness: 0.25rem;
1970
+ --sbb-train-wagon-class-first-color: var(--sbb-color-lemon);
1971
+ --sbb-train-wagon-class-first-border-radius: var(--sbb-border-radius-1x);
1919
1972
  --sbb-tag-animation-easing: var(--sbb-animation-easing);
1920
1973
  --sbb-tag-background-color: var(--sbb-background-color-1);
1921
1974
  --sbb-tag-border-color: var(--sbb-border-color-4-inverted);
@@ -2113,12 +2166,13 @@ slot[name=error]::slotted(*) {
2113
2166
  --sbb-toggle-check-circle-background-color: Canvas;
2114
2167
  --sbb-toggle-selected-option-border-width: var(--sbb-border-width-2x);
2115
2168
  --sbb-toggle-selected-option-border-color: Highlight;
2169
+ --sbb-train-blocked-passage-background-color: CanvasText;
2170
+ --sbb-train-blocked-passage-bar-color: Canvas;
2171
+ --sbb-train-formation-sector-line-color: CanvasText;
2172
+ --sbb-train-wagon-shape-color: CanvasText;
2116
2173
  }
2117
2174
  }
2118
2175
  :root {
2119
- --sbb-train-formation-wagon-width: 5rem;
2120
- --sbb-train-formation-wagon-height: 2.5rem;
2121
- --sbb-train-formation-wagon-gap: var(--sbb-spacing-fixed-1x);
2122
2176
  --sbb-overlay-default-z-index: 1000;
2123
2177
  --sbb-cursor-default: default;
2124
2178
  --sbb-cursor-pointer: pointer;
@@ -2795,34 +2849,6 @@ img {
2795
2849
  transition: filter var(--sbb-teaser-image-animation-duration) var(--sbb-teaser-image-animation-easing);
2796
2850
  }
2797
2851
 
2798
- sbb-train-formation:has(sbb-train[direction-label]) {
2799
- --sbb-train-formation-reserve-spacing-display: block;
2800
- }
2801
-
2802
- sbb-train-formation:has(sbb-train-wagon[sector]) {
2803
- --sbb-train-formation-show-sectors-gap: 1;
2804
- }
2805
-
2806
- sbb-train-formation:not(:has(sbb-train-wagon[label])) {
2807
- --sbb-train-formation-wagon-label-display: none;
2808
- }
2809
-
2810
- sbb-train-formation[view=side] sbb-train-wagon {
2811
- --sbb-train-wagon-wagon-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M12.5,0.5 h55 a12,12 0 0 1 12,12 v15 a12,12 0 0 1 -12,12 h-55 a12,12 0 0 1 -12,-12 v-15 a12,12 0 0 1 12,-12 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E");
2812
- --sbb-train-wagon-wagon-closed-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Crect x='0.5' y='0.5' width='79' height='39' rx='11.5' stroke='%23000000'/%3E%3Cpath d='M76 4L4 36' stroke='%23000000'/%3E%3Cpath d='M76 36L4 4' stroke='%23000000'/%3E%3C/svg%3E");
2813
- --sbb-train-wagon-wagon-end-left-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M10.745 7.90416C13.5624 3.30431 18.5686 0.5 23.9627 0.5H68C74.3513 0.5 79.5 5.64873 79.5 12V28C79.5 34.3513 74.3513 39.5 68 39.5H11.922C2.93614 39.5 -2.57807 29.6562 2.11537 21.9934L10.745 7.90416Z' stroke='%23000000'/%3E%3C/svg%3E");
2814
- --sbb-train-wagon-locomotive-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M10.745 7.90416C13.5624 3.30431 18.5686 0.5 23.9627 0.5H56.0373C61.4314 0.5 66.4376 3.30432 69.255 7.90416L77.8846 21.9934C82.5781 29.6562 77.0639 39.5 68.078 39.5H11.922C2.93615 39.5 -2.57807 29.6562 2.11537 21.9934L10.745 7.90416Z' stroke='%23000000'/%3E%3C/svg%3E");
2815
- --sbb-train-wagon-wagon-end-right-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M0.5 12C0.5 5.64873 5.64873 0.5 12 0.5H56.0373C61.4314 0.5 66.4376 3.30432 69.255 7.90416L77.8846 21.9934C82.5781 29.6562 77.0638 39.5 68.0779 39.5H12C5.64873 39.5 0.5 34.3513 0.5 28V12Z' stroke='%23000000'/%3E%3C/svg%3E");
2816
- }
2817
-
2818
- sbb-train-formation[view=top] sbb-train-wagon {
2819
- --sbb-train-wagon-wagon-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M8.5,0.5 h63 a8,8 0 0 1 8,8 v23 a8,8 0 0 1 -8,8 h-63 a8,8 0 0 1 -8,-8 v-23 a8,8 0 0 1 8,-8 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E%0A");
2820
- --sbb-train-wagon-wagon-closed-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Crect x='0.5' y='0.5' width='79' height='39' rx='7.5' stroke='%23000000'/%3E%3Cpath d='M77.5 2.5L2.5 37.5' stroke='%23000000'/%3E%3Cpath d='M77.5 37.5L2.5 2.5' stroke='%23000000'/%3E%3C/svg%3E");
2821
- --sbb-train-wagon-wagon-end-left-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath transform='translate(80,40) rotate(180)' d='M8.5,0.5 h51.5 a19.5,19.5 0 0 1 19.5,19.5 v0 a19.5,19.5 0 0 1 -19.5,19.5 h-51.5 a8,8 0 0 1 -8,-8 v-23 a8,8 0 0 1 8,-8 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E");
2822
- --sbb-train-wagon-locomotive-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M20,0.5 h40 a19.5,19.5 0 0 1 19.5,19.5 v0 a19.5,19.5 0 0 1 -19.5,19.5 h-40 a19.5,19.5 0 0 1 -19.5,-19.5 v0 a19.5,19.5 0 0 1 19.5,-19.5 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E%0A");
2823
- --sbb-train-wagon-wagon-end-right-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none'%3E%3Cpath d='M8.5,0.5 h51.5 a19.5,19.5 0 0 1 19.5,19.5 v0 a19.5,19.5 0 0 1 -19.5,19.5 h-51.5 a8,8 0 0 1 -8,-8 v-23 a8,8 0 0 1 8,-8 z' stroke='%23000000' stroke-width='1'/%3E%3C/svg%3E");
2824
- }
2825
-
2826
2852
  .sbb-overlay-outlet {
2827
2853
  position: fixed;
2828
2854
  inset: 0;