@sbb-esta/lyne-elements-experimental 3.5.0 → 3.6.0
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/custom-elements.json +72 -0
- package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts.map +1 -1
- package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +8 -4
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +13 -0
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +43 -23
- package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
- package/development/seat-reservation/seat-reservation/seat-reservation.component.js +6 -2
- package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +11 -14
- package/package.json +2 -2
- package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts.map +1 -1
- package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +30 -26
- package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +13 -0
- package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
- package/seat-reservation/seat-reservation/seat-reservation-base-element.js +59 -45
- package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
- package/seat-reservation/seat-reservation/seat-reservation.component.js +5 -1
- package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
|
@@ -67,6 +67,7 @@ export declare class SeatReservationBaseElement extends LitElement {
|
|
|
67
67
|
readonly Tab: "Tab";
|
|
68
68
|
readonly Enter: "Enter";
|
|
69
69
|
};
|
|
70
|
+
private _scrollTimeout;
|
|
70
71
|
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
71
72
|
protected navigateByDirectionBtn(btnDirection: string): void;
|
|
72
73
|
/**
|
|
@@ -75,6 +76,13 @@ export declare class SeatReservationBaseElement extends LitElement {
|
|
|
75
76
|
*/
|
|
76
77
|
protected initPrepairSeatReservationData(): void;
|
|
77
78
|
protected initNavigationSelectionByScrollEvent(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Scroll event handler managed the end of scrolling inside the coach scroll area.
|
|
81
|
+
* Timeout event handling to check if the scrolling has been completed.
|
|
82
|
+
* It is required because the Safari browser does not handle scrollend event
|
|
83
|
+
* and we therefore imitate this event -> scrollend.
|
|
84
|
+
*/
|
|
85
|
+
protected coachAreaScrollend(): void;
|
|
78
86
|
/**
|
|
79
87
|
* If no navigation exists (property setting -> hasNavigation) and a table coach gets the focus,
|
|
80
88
|
* the first place in the coach must be automatically preselected to control the place navigation via keyboard
|
|
@@ -104,6 +112,11 @@ export declare class SeatReservationBaseElement extends LitElement {
|
|
|
104
112
|
* @returns An Object with count of free seats and free bicycle places
|
|
105
113
|
*/
|
|
106
114
|
protected getAvailableFreePlacesNumFromCoach(coachIndex: number): CoachNumberOfFreePlaces;
|
|
115
|
+
/**
|
|
116
|
+
* At the end of a scroll Event from the coach scrollable area,
|
|
117
|
+
* the reached coach is marked as selected
|
|
118
|
+
*/
|
|
119
|
+
private _handleCoachAreaScrollEvent;
|
|
107
120
|
/**
|
|
108
121
|
* Performs an automatic main navigation scroll to the specified selectedNavCoachIndex.
|
|
109
122
|
* Calculates the central scroll offset of the nav coach to be selected.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-reservation-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation-base-element.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAY,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAQhE,OAAO,KAAK,EAEV,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,KAAK,EACL,cAAc,EACd,eAAe,EAEf,6BAA6B,EAE9B,MAAM,cAAc,CAAC;AAGtB,aAAK,eAAe;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,0BAA2B,SAAQ,UAAU;IACxD,gBAAuB,MAAM;;;MAGlB;IAEX,kEAAkE;IAClE,SACgB,gBAAgB,EAAE,eAAe,EAAE,CAAS;IAE5D,sEAAsE;IACtE,SAEgB,aAAa,EAAE,OAAO,CAAQ;IAE9C,sDAAsD;IACtD,SAEgB,aAAa,EAAE,OAAO,CAAS;IAE/C,iDAAiD;IACjD,SAEgB,YAAY,EAAE,MAAM,CAAM;IAE1C,wCAAwC;IACxC,SAEgB,MAAM,EAAE,MAAM,CAAS;IAEvC,iDAAiD;IACjD,SAEgB,mBAAmB,EAAE,MAAM,CAAM;IAEjD,0DAA0D;IAC1D,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD,2CAA2C;IAC3C,SAEgB,iBAAiB,EAAE,OAAO,CAAS;IAEnD,SAEgB,mBAAmB,EAAE,MAAM,CAAM;IAExC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAM;IACnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAM;IAElD,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAM;IAGjE,SAAS,CAAC,kBAAkB,SAAK;IAEjC,SAAS,CAAC,iBAAiB,SAAK;IAGhC,SAAS,CAAC,iBAAiB,SAA+C;IAE1E,SAAS,CAAC,oBAAoB,SAAM;IAEpC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAK;IACxC,SAAS,CAAC,mBAAmB,EAAE,eAAe,CAAyB;IACvE,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAK;IACzC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAK;IAC5C,SAAS,CAAC,uBAAuB,EAAE,MAAM,CAAK;IAC9C,SAAS,CAAC,+BAA+B,EAAE,uBAAuB,EAAE,CAAM;IAC1E,SAAS,CAAC,eAAe,EAAE,WAAW,CAAS;IAC/C,SAAS,CAAC,cAAc,EAAE,WAAW,CAAS;IAC9C,SAAS,CAAC,oBAAoB,EAAE,WAAW,CAAS;IACpD,SAAS,CAAC,eAAe,EAAE,WAAW,CAAS;IAC/C,SAAS,CAAC,iBAAiB,EAAE,KAAK,GAAG,IAAI,CAAQ;IACjD,SAAS,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3D,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAM;IAC9C,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAK;IAC5C,SAAS,CAAC,8BAA8B,EAAE,OAAO,CAAS;IAC1D,SAAS,CAAC,6BAA6B,EAAE,6BAA6B,CAGpE;IACF,SAAS,CAAC,wCAAwC,UAAS;IAC3D,SAAS,CAAC,oBAAoB,UAAS;IACvC,SAAS,CAAC,eAAe,UAAS;IAClC,SAAS,CAAC,oBAAoB,UAAS;IACvC,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,wBAAwB;;;;;;;MAOvB;
|
|
1
|
+
{"version":3,"file":"seat-reservation-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation-base-element.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
var
|
|
1
|
+
var ve = (h) => {
|
|
2
2
|
throw TypeError(h);
|
|
3
3
|
};
|
|
4
|
-
var
|
|
5
|
-
var g = (h, d, u) => (
|
|
4
|
+
var fe = (h, d, u) => d.has(h) || ve("Cannot " + u);
|
|
5
|
+
var g = (h, d, u) => (fe(h, d, "read from private field"), u ? u.call(h) : d.get(h)), v = (h, d, u) => d.has(h) ? ve("Cannot add the same private member more than once") : d instanceof WeakSet ? d.add(h) : d.set(h, u), o = (h, d, u, w) => (fe(h, d, "write to private field"), w ? w.call(h, u) : d.set(h, u), u);
|
|
6
6
|
import { __runInitializers as r, __esDecorate as f } from "tslib";
|
|
7
|
-
import { isArrowKeyOrPageKeysPressed as
|
|
7
|
+
import { isArrowKeyOrPageKeysPressed as Se } from "@sbb-esta/lyne-elements/core/a11y.js";
|
|
8
8
|
import { forceType as C } from "@sbb-esta/lyne-elements/core/decorators.js";
|
|
9
|
-
import { LitElement as
|
|
10
|
-
import { property as S, state as
|
|
11
|
-
import { mapPlaceInfosToPlaceSelection as
|
|
9
|
+
import { LitElement as Ce, isServer as xe } from "lit";
|
|
10
|
+
import { property as S, state as T, eventOptions as Ie } from "lit/decorators.js";
|
|
11
|
+
import { mapPlaceInfosToPlaceSelection as pe, mapPlaceAndCoachToSeatReservationPlaceSelection as me, mapCoachInfosToCoachSelection as be } from "../common/mapper.js";
|
|
12
12
|
var x;
|
|
13
13
|
(function(h) {
|
|
14
14
|
h.right = "right", h.left = "left";
|
|
15
15
|
})(x || (x = {}));
|
|
16
|
-
let
|
|
17
|
-
var I, p, b,
|
|
18
|
-
let h =
|
|
16
|
+
let we = (() => {
|
|
17
|
+
var I, p, m, b, _, y, P, A, R, k, E, N, n;
|
|
18
|
+
let h = Ce, d = [], u, w = [], B = [], D, z = [], F = [], G, V = [], O = [], L, W = [], X = [], H, K = [], U = [], q, M = [], $ = [], j, J = [], Q = [], Y, Z = [], ee = [], te, ie = [], se = [], ae, ce = [], oe = [], re, le = [], he = [], ne, de = [], ue = [], ge;
|
|
19
19
|
return n = class extends h {
|
|
20
20
|
constructor() {
|
|
21
21
|
super(...arguments);
|
|
22
22
|
v(this, I);
|
|
23
23
|
v(this, p);
|
|
24
|
-
v(this, b);
|
|
25
24
|
v(this, m);
|
|
26
|
-
v(this,
|
|
25
|
+
v(this, b);
|
|
27
26
|
v(this, _);
|
|
27
|
+
v(this, y);
|
|
28
28
|
v(this, P);
|
|
29
29
|
v(this, A);
|
|
30
30
|
v(this, R);
|
|
31
31
|
v(this, k);
|
|
32
32
|
v(this, E);
|
|
33
33
|
v(this, N);
|
|
34
|
-
o(this, I, r(this,
|
|
34
|
+
o(this, I, (r(this, d), r(this, w, null))), o(this, p, (r(this, B), r(this, z, !0))), o(this, m, (r(this, F), r(this, V, !1))), o(this, b, (r(this, O), r(this, W, 16))), o(this, _, (r(this, X), r(this, K, null))), o(this, y, (r(this, U), r(this, M, -1))), o(this, P, (r(this, $), r(this, J, -1))), o(this, A, (r(this, Q), r(this, Z, !1))), o(this, R, (r(this, ee), r(this, ie, -1))), o(this, k, (r(this, se), r(this, ce, -1))), o(this, E, (r(this, oe), r(this, le, -1))), o(this, N, (r(this, he), r(this, de, -1))), this.coachBorderPadding = (r(this, ue), 6), this.gapBetweenCoaches = 4, this.coachBorderOffset = this.coachBorderPadding / this.baseGridSize, this.gapBetweenCoachDecks = 48, this.coachNavButtonDim = 0, this.currScrollDirection = x.right, this.maxCalcCoachsWidth = 0, this.scrollCoachsAreaWidth = 0, this.scrollNavigationAreaDim = 0, this.triggerCoachPositionsCollection = [], this.firstTabElement = null, this.lastTabElement = null, this.navigationScrollArea = null, this.coachScrollArea = null, this.currSelectedPlace = null, this.currSelectedPlaceElementId = null, this.currSelectedCoachIndex = -1, this.currSelectedDeckIndex = 0, this.preventCoachScrollByPlaceClick = !1, this.selectedSeatReservationPlaces = {
|
|
35
35
|
seats: [],
|
|
36
36
|
bicycles: []
|
|
37
37
|
}, this.seatReservationWithoutNavigationHasFocus = !1, this.isCoachGridFocusable = !1, this.isAutoScrolling = !1, this.isKeyboardNavigation = !1, this.hasMultipleDecks = !1, this.keyboardNavigationEvents = {
|
|
@@ -59,31 +59,31 @@ let ke = (() => {
|
|
|
59
59
|
}
|
|
60
60
|
/** The seat reservation area is aligned vertically */
|
|
61
61
|
get alignVertical() {
|
|
62
|
-
return g(this,
|
|
62
|
+
return g(this, m);
|
|
63
63
|
}
|
|
64
64
|
set alignVertical(e) {
|
|
65
|
-
o(this,
|
|
65
|
+
o(this, m, e);
|
|
66
66
|
}
|
|
67
67
|
/** The seat reservation area's base grid size */
|
|
68
68
|
get baseGridSize() {
|
|
69
|
-
return g(this,
|
|
69
|
+
return g(this, b);
|
|
70
70
|
}
|
|
71
71
|
set baseGridSize(e) {
|
|
72
|
-
o(this,
|
|
72
|
+
o(this, b, e);
|
|
73
73
|
}
|
|
74
74
|
/** The seat reservation area's width */
|
|
75
75
|
get height() {
|
|
76
|
-
return g(this,
|
|
76
|
+
return g(this, _);
|
|
77
77
|
}
|
|
78
78
|
set height(e) {
|
|
79
|
-
o(this,
|
|
79
|
+
o(this, _, e);
|
|
80
80
|
}
|
|
81
81
|
/** Maximal number of possible clickable seats */
|
|
82
82
|
get maxSeatReservations() {
|
|
83
|
-
return g(this,
|
|
83
|
+
return g(this, y);
|
|
84
84
|
}
|
|
85
85
|
set maxSeatReservations(e) {
|
|
86
|
-
o(this,
|
|
86
|
+
o(this, y, e);
|
|
87
87
|
}
|
|
88
88
|
/** Maximal number of possible clickable bicycle places */
|
|
89
89
|
get maxBicycleReservations() {
|
|
@@ -168,12 +168,18 @@ let ke = (() => {
|
|
|
168
168
|
end: t,
|
|
169
169
|
width: c
|
|
170
170
|
};
|
|
171
|
-
}), this.maxCalcCoachsWidth = t
|
|
172
|
-
const i = this.isAutoScrolling ? this.currSelectedCoachIndex : this._getCoachIndexByScrollTriggerPosition();
|
|
173
|
-
this.currSelectedCoachIndex === -1 && (this.currSelectedCoachIndex = i), this._isScrollableToSelectedCoach() ? this.currSelectedCoachIndex = i : this.currSelectedCoachIndex = i < this.currSelectedCoachIndex ? this.currSelectedCoachIndex : i, this.isAutoScrolling || this._scrollToSelectedNavigationButton(i), this.preventCoachScrollByPlaceClick = !1, this.updateCurrentSelectedCoach(), this.hasNavigation || (this.preselectPlaceInCoach(), this.isAutoScrolling = !1);
|
|
174
|
-
});
|
|
171
|
+
}), this.maxCalcCoachsWidth = t;
|
|
175
172
|
}
|
|
176
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Scroll event handler managed the end of scrolling inside the coach scroll area.
|
|
176
|
+
* Timeout event handling to check if the scrolling has been completed.
|
|
177
|
+
* It is required because the Safari browser does not handle scrollend event
|
|
178
|
+
* and we therefore imitate this event -> scrollend.
|
|
179
|
+
*/
|
|
180
|
+
coachAreaScrollend() {
|
|
181
|
+
this._scrollTimeout && clearTimeout(this._scrollTimeout), this._scrollTimeout = setTimeout(() => this._handleCoachAreaScrollEvent(), 150);
|
|
182
|
+
}
|
|
177
183
|
/**
|
|
178
184
|
* If no navigation exists (property setting -> hasNavigation) and a table coach gets the focus,
|
|
179
185
|
* the first place in the coach must be automatically preselected to control the place navigation via keyboard
|
|
@@ -199,7 +205,7 @@ let ke = (() => {
|
|
|
199
205
|
return;
|
|
200
206
|
}
|
|
201
207
|
}
|
|
202
|
-
if (this.currSelectedCoachIndex !== -1 &&
|
|
208
|
+
if (this.currSelectedCoachIndex !== -1 && Se(e))
|
|
203
209
|
switch (e.preventDefault(), t) {
|
|
204
210
|
case this.keyboardNavigationEvents.ArrowLeft:
|
|
205
211
|
{
|
|
@@ -284,6 +290,14 @@ let ke = (() => {
|
|
|
284
290
|
const t = { seats: 0, bicycles: 0 }, i = this.seatReservations[this.currSelectedDeckIndex].coachItems[e].places?.reduce((s, c) => (c.state !== "FREE" || (c.type === "SEAT" ? s.seats++ : s.bicycles++), s), t);
|
|
285
291
|
return i || t;
|
|
286
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* At the end of a scroll Event from the coach scrollable area,
|
|
295
|
+
* the reached coach is marked as selected
|
|
296
|
+
*/
|
|
297
|
+
_handleCoachAreaScrollEvent() {
|
|
298
|
+
const e = this.isAutoScrolling ? this.currSelectedCoachIndex : this._getCoachIndexByScrollTriggerPosition();
|
|
299
|
+
this.currSelectedCoachIndex === -1 && (this.currSelectedCoachIndex = e), this._isScrollableToSelectedCoach() ? this.currSelectedCoachIndex = e : this.currSelectedCoachIndex = e < this.currSelectedCoachIndex ? this.currSelectedCoachIndex : e, this.isAutoScrolling || this._scrollToSelectedNavigationButton(e), this.preventCoachScrollByPlaceClick = !1, this.updateCurrentSelectedCoach(), this.hasNavigation || (this.preselectPlaceInCoach(), this.isAutoScrolling = !1);
|
|
300
|
+
}
|
|
287
301
|
/**
|
|
288
302
|
* Performs an automatic main navigation scroll to the specified selectedNavCoachIndex.
|
|
289
303
|
* Calculates the central scroll offset of the nav coach to be selected.
|
|
@@ -457,7 +471,7 @@ let ke = (() => {
|
|
|
457
471
|
_initSeatReservationPlaceSelection() {
|
|
458
472
|
this.seatReservations?.forEach((e) => e.coachItems.map((t, i) => {
|
|
459
473
|
t.places?.filter((s) => s.state === "SELECTED")?.forEach((s) => {
|
|
460
|
-
const c =
|
|
474
|
+
const c = pe(s, e.deckCoachIndex, i), l = this._getSeatReservationPlaceSelection(c);
|
|
461
475
|
l && (l.placeType === "SEAT" ? this.selectedSeatReservationPlaces.seats.push(l) : this.selectedSeatReservationPlaces.bicycles.push(l));
|
|
462
476
|
});
|
|
463
477
|
}));
|
|
@@ -477,13 +491,13 @@ let ke = (() => {
|
|
|
477
491
|
}
|
|
478
492
|
_getSeatReservationPlaceSelection(e) {
|
|
479
493
|
const t = this.seatReservations[this.currSelectedDeckIndex].coachItems[e.coachIndex], i = t.places?.find((s) => s.number === e.number);
|
|
480
|
-
return i ?
|
|
494
|
+
return i ? me(i, t, e.deckIndex, e.coachIndex) : null;
|
|
481
495
|
}
|
|
482
496
|
_getSeatReservationSelectedCoach(e) {
|
|
483
497
|
if (!this.seatReservations[this.currSelectedDeckIndex].coachItems[e])
|
|
484
498
|
return null;
|
|
485
499
|
const t = this.seatReservations[this.currSelectedDeckIndex].coachItems[e], i = this.getAvailableFreePlacesNumFromCoach(e);
|
|
486
|
-
return
|
|
500
|
+
return be(e, t, i);
|
|
487
501
|
}
|
|
488
502
|
_setCurrSelectedPlaceElementId(e) {
|
|
489
503
|
e ? this.currSelectedPlaceElementId = "seat-reservation__place-button-" + this.currSelectedDeckIndex + "-" + this.currSelectedCoachIndex + "-" + e.number : this.currSelectedPlaceElementId = null;
|
|
@@ -493,7 +507,7 @@ let ke = (() => {
|
|
|
493
507
|
* to be determined in order to correctly calculate css values with rem
|
|
494
508
|
* */
|
|
495
509
|
_determineBaseFontSize() {
|
|
496
|
-
if (!
|
|
510
|
+
if (!xe) {
|
|
497
511
|
const t = 1 / parseInt(window.getComputedStyle(document.body).fontSize, 10);
|
|
498
512
|
this.style?.setProperty("--sbb-seat-reservation-one-px-rem", `${t + "rem"}`);
|
|
499
513
|
}
|
|
@@ -523,38 +537,38 @@ let ke = (() => {
|
|
|
523
537
|
_getPlaceHtmlElement() {
|
|
524
538
|
return this.currSelectedPlaceElementId && this.shadowRoot?.getElementById(this.currSelectedPlaceElementId) || null;
|
|
525
539
|
}
|
|
526
|
-
}, I = new WeakMap(), p = new WeakMap(),
|
|
540
|
+
}, I = new WeakMap(), p = new WeakMap(), m = new WeakMap(), b = new WeakMap(), _ = new WeakMap(), y = new WeakMap(), P = new WeakMap(), A = new WeakMap(), R = new WeakMap(), k = new WeakMap(), E = new WeakMap(), N = new WeakMap(), (() => {
|
|
527
541
|
const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(h[Symbol.metadata] ?? null) : void 0;
|
|
528
|
-
|
|
542
|
+
u = [S({ attribute: "seat-reservations", type: Array })], D = [C(), S({ attribute: "has-navigation", type: Boolean })], G = [C(), S({ attribute: "align-vertical", type: Boolean, reflect: !0, useDefault: !0 })], L = [C(), S({ attribute: "base-grid-size", type: Number })], H = [C(), S({ attribute: "height", type: Number })], q = [C(), S({ attribute: "max-seat-reservations", type: Number })], j = [C(), S({ attribute: "max-bicycle-reservations", type: Number })], Y = [C(), S({ attribute: "prevent-place-click", type: Boolean })], te = [C(), S({ attribute: "preselect-coach-index", type: Number })], ae = [T()], re = [T()], ne = [T()], ge = [Ie({ passive: !0 })], f(n, null, u, { kind: "accessor", name: "seatReservations", static: !1, private: !1, access: { has: (t) => "seatReservations" in t, get: (t) => t.seatReservations, set: (t, i) => {
|
|
529
543
|
t.seatReservations = i;
|
|
530
|
-
} }, metadata: e },
|
|
544
|
+
} }, metadata: e }, w, B), f(n, null, D, { kind: "accessor", name: "hasNavigation", static: !1, private: !1, access: { has: (t) => "hasNavigation" in t, get: (t) => t.hasNavigation, set: (t, i) => {
|
|
531
545
|
t.hasNavigation = i;
|
|
532
|
-
} }, metadata: e },
|
|
546
|
+
} }, metadata: e }, z, F), f(n, null, G, { kind: "accessor", name: "alignVertical", static: !1, private: !1, access: { has: (t) => "alignVertical" in t, get: (t) => t.alignVertical, set: (t, i) => {
|
|
533
547
|
t.alignVertical = i;
|
|
534
|
-
} }, metadata: e },
|
|
548
|
+
} }, metadata: e }, V, O), f(n, null, L, { kind: "accessor", name: "baseGridSize", static: !1, private: !1, access: { has: (t) => "baseGridSize" in t, get: (t) => t.baseGridSize, set: (t, i) => {
|
|
535
549
|
t.baseGridSize = i;
|
|
536
|
-
} }, metadata: e },
|
|
550
|
+
} }, metadata: e }, W, X), f(n, null, H, { kind: "accessor", name: "height", static: !1, private: !1, access: { has: (t) => "height" in t, get: (t) => t.height, set: (t, i) => {
|
|
537
551
|
t.height = i;
|
|
538
|
-
} }, metadata: e },
|
|
552
|
+
} }, metadata: e }, K, U), f(n, null, q, { kind: "accessor", name: "maxSeatReservations", static: !1, private: !1, access: { has: (t) => "maxSeatReservations" in t, get: (t) => t.maxSeatReservations, set: (t, i) => {
|
|
539
553
|
t.maxSeatReservations = i;
|
|
540
|
-
} }, metadata: e },
|
|
554
|
+
} }, metadata: e }, M, $), f(n, null, j, { kind: "accessor", name: "maxBicycleReservations", static: !1, private: !1, access: { has: (t) => "maxBicycleReservations" in t, get: (t) => t.maxBicycleReservations, set: (t, i) => {
|
|
541
555
|
t.maxBicycleReservations = i;
|
|
542
|
-
} }, metadata: e },
|
|
556
|
+
} }, metadata: e }, J, Q), f(n, null, Y, { kind: "accessor", name: "preventPlaceClick", static: !1, private: !1, access: { has: (t) => "preventPlaceClick" in t, get: (t) => t.preventPlaceClick, set: (t, i) => {
|
|
543
557
|
t.preventPlaceClick = i;
|
|
544
|
-
} }, metadata: e },
|
|
558
|
+
} }, metadata: e }, Z, ee), f(n, null, te, { kind: "accessor", name: "preselectCoachIndex", static: !1, private: !1, access: { has: (t) => "preselectCoachIndex" in t, get: (t) => t.preselectCoachIndex, set: (t, i) => {
|
|
545
559
|
t.preselectCoachIndex = i;
|
|
546
|
-
} }, metadata: e },
|
|
560
|
+
} }, metadata: e }, ie, se), f(n, null, ae, { kind: "accessor", name: "selectedCoachIndex", static: !1, private: !1, access: { has: (t) => "selectedCoachIndex" in t, get: (t) => t.selectedCoachIndex, set: (t, i) => {
|
|
547
561
|
t.selectedCoachIndex = i;
|
|
548
|
-
} }, metadata: e },
|
|
562
|
+
} }, metadata: e }, ce, oe), f(n, null, re, { kind: "accessor", name: "focusedCoachIndex", static: !1, private: !1, access: { has: (t) => "focusedCoachIndex" in t, get: (t) => t.focusedCoachIndex, set: (t, i) => {
|
|
549
563
|
t.focusedCoachIndex = i;
|
|
550
|
-
} }, metadata: e },
|
|
564
|
+
} }, metadata: e }, le, he), f(n, null, ne, { kind: "accessor", name: "hoveredScrollCoachIndex", static: !1, private: !1, access: { has: (t) => "hoveredScrollCoachIndex" in t, get: (t) => t.hoveredScrollCoachIndex, set: (t, i) => {
|
|
551
565
|
t.hoveredScrollCoachIndex = i;
|
|
552
|
-
} }, metadata: e },
|
|
566
|
+
} }, metadata: e }, de, ue), f(n, null, ge, { kind: "method", name: "coachAreaScrollend", static: !1, private: !1, access: { has: (t) => "coachAreaScrollend" in t, get: (t) => t.coachAreaScrollend }, metadata: e }, null, d), e && Object.defineProperty(n, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
|
|
553
567
|
})(), n.events = {
|
|
554
568
|
selectedplaces: "selectedplaces",
|
|
555
569
|
selectedcoach: "selectedcoach"
|
|
556
570
|
}, n;
|
|
557
571
|
})();
|
|
558
572
|
export {
|
|
559
|
-
|
|
573
|
+
we as SeatReservationBaseElement
|
|
560
574
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-reservation.component.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation.component.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAe1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,OAAO,mCAAmC,CAAC;AAC3C,OAAO,+CAA+C,CAAC;AACvD,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yCAAyC,CAAC;AACjD,OAAO,+BAA+B,CAAC;AACvC,OAAO,4CAA4C,CAAC;AAEpD;;;GAGG;AACH,qBAEM,yBAA0B,SAAQ,0BAA0B;IAChE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAE9C,OAAO,CAAC,gBAAgB,CAQtB;IAGF,OAAO,CAAC,2BAA2B,CAAkB;cAElC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAgBzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAc3D,MAAM,IAAI,cAAc,GAAG,IAAI;IAKlD,OAAO,CAAC,uCAAuC;
|
|
1
|
+
{"version":3,"file":"seat-reservation.component.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation.component.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAe1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,OAAO,mCAAmC,CAAC;AAC3C,OAAO,+CAA+C,CAAC;AACvD,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yCAAyC,CAAC;AACjD,OAAO,+BAA+B,CAAC;AACvC,OAAO,4CAA4C,CAAC;AAEpD;;;GAGG;AACH,qBAEM,yBAA0B,SAAQ,0BAA0B;IAChE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAE9C,OAAO,CAAC,gBAAgB,CAQtB;IAGF,OAAO,CAAC,2BAA2B,CAAkB;cAElC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAgBzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAc3D,MAAM,IAAI,cAAc,GAAG,IAAI;IAKlD,OAAO,CAAC,uCAAuC;IAoD/C,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,8BAA8B;IAkCtC,OAAO,CAAC,iBAAiB;IA4CzB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,mBAAmB;IAqC3B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA4BhC,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,wBAAwB;IAoDhC,OAAO,CAAC,6BAA6B;IAgCrC;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IA2EjC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,2BAA2B;IAwCnC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,gBAAgB;IASxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAWhB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,8BAA8B;CAyBvC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,sBAAsB,EAAE,yBAAyB,CAAC;KACnD;CACF"}
|
|
@@ -57,7 +57,11 @@ let q = (() => {
|
|
|
57
57
|
<div class="coaches-grid">
|
|
58
58
|
<div class="sbb-sr__wrapper-coach-decks">
|
|
59
59
|
<div class="sbb-sr__wrapper-deck-labels">${this._renderDeckLabels()}</div>
|
|
60
|
-
<div
|
|
60
|
+
<div
|
|
61
|
+
id="sbb-sr__wrapper-scrollarea"
|
|
62
|
+
class="sbb-sr__wrapper"
|
|
63
|
+
@scroll=${() => this.coachAreaScrollend()}
|
|
64
|
+
>
|
|
61
65
|
<div id="sbb-sr__parent-area" class="sbb-sr__parent" tabindex="-1">
|
|
62
66
|
<ul
|
|
63
67
|
class="${m({
|
package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js
CHANGED
|
@@ -12,7 +12,7 @@ import { customElement as ne, property as v } from "lit/decorators.js";
|
|
|
12
12
|
import { styleMap as be } from "lit/directives/style-map.js";
|
|
13
13
|
import { getI18nSeatReservation as E } from "../common.js";
|
|
14
14
|
import "../seat-reservation-graphic.js";
|
|
15
|
-
const pe = le`*,:before,:after{box-sizing:border-box}:host{--sbb-seat-reservation-place-control-text-scale-value: 1;--sbb-seat-reservation-place-control-width: 16;--sbb-seat-reservation-place-control-height: 16;--sbb-seat-reservation-place-control-top: 0;--sbb-seat-reservation-place-control-left: 0;--sbb-seat-reservation-place-control-rotation: 0;--sbb-seat-reservation-place-control-text-rotation: 0;--sbb-seat-reservation-place-control-text-size: calc( var(--sbb-seat-reservation-place-control-text-scale-value, 1) * .5 );--sbb-seat-reservation-place-control-default-text: var(--sbb-color-black);--sbb-seat-reservation-place-control-hover-text: var(--sbb-color-iron);--sbb-seat-reservation-place-control-focus-text: var(--sbb-color-anthracite);--sbb-seat-reservation-place-control-allocated-text: var(--sbb-color-smoke);--sbb-seat-reservation-place-control-free-background-default: var(--sbb-color-white);--sbb-seat-reservation-place-control-free-background-hover: var(--sbb-color-cloud);--sbb-seat-reservation-place-control-free-background-focus: var(--sbb-color-silver);--sbb-seat-reservation-place-control-free-backrest-background-default: var(--sbb-color-black);--sbb-seat-reservation-place-control-free-backrest-background-hover: var(--sbb-color-black);--sbb-seat-reservation-place-control-free-backrest-background-focus: var(--sbb-color-black);--sbb-seat-reservation-place-control-selected-background-default: var(--sbb-color-red);--sbb-seat-reservation-place-control-selected-background-hover: var(--sbb-color-red125);--sbb-seat-reservation-place-control-selected-background-focus: var(--sbb-color-red150);--sbb-seat-reservation-place-control-selected-backrest-background-default: var( --sbb-color-red150 );--sbb-seat-reservation-place-control-selected-backrest-background-hover: #7d000f;--sbb-seat-reservation-place-control-selected-backrest-background-focus: #5a000b;--sbb-seat-reservation-place-control-allocated-background-default: var(--sbb-color-milk);width:calc(var(--sbb-seat-reservation-place-control-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:calc(var(--sbb-seat-reservation-place-control-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem));position:absolute;inset-block-start:calc(var(--sbb-seat-reservation-place-control-top) * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-inline-start:calc(var(--sbb-seat-reservation-place-control-left) * var(--sbb-seat-reservation-one-px-rem, .0625rem));cursor:pointer}:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-free-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-free-backrest-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-free-background-hover);color:var(--sbb-seat-reservation-place-control-free-text)}:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-selected-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-selected-backrest-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-selected-background-hover);color:var(--sbb-seat-reservation-place-control-selected-text)}:host(:focus
|
|
15
|
+
const pe = le`*,:before,:after{box-sizing:border-box}:host{--sbb-seat-reservation-place-control-text-scale-value: 1;--sbb-seat-reservation-place-control-width: 16;--sbb-seat-reservation-place-control-height: 16;--sbb-seat-reservation-place-control-top: 0;--sbb-seat-reservation-place-control-left: 0;--sbb-seat-reservation-place-control-rotation: 0;--sbb-seat-reservation-place-control-text-rotation: 0;--sbb-seat-reservation-place-control-text-size: calc( var(--sbb-seat-reservation-place-control-text-scale-value, 1) * .5 );--sbb-seat-reservation-place-control-default-text: var(--sbb-color-black);--sbb-seat-reservation-place-control-hover-text: var(--sbb-color-iron);--sbb-seat-reservation-place-control-focus-text: var(--sbb-color-anthracite);--sbb-seat-reservation-place-control-allocated-text: var(--sbb-color-smoke);--sbb-seat-reservation-place-control-free-background-default: var(--sbb-color-white);--sbb-seat-reservation-place-control-free-background-hover: var(--sbb-color-cloud);--sbb-seat-reservation-place-control-free-background-focus: var(--sbb-color-silver);--sbb-seat-reservation-place-control-free-backrest-background-default: var(--sbb-color-black);--sbb-seat-reservation-place-control-free-backrest-background-hover: var(--sbb-color-black);--sbb-seat-reservation-place-control-free-backrest-background-focus: var(--sbb-color-black);--sbb-seat-reservation-place-control-selected-background-default: var(--sbb-color-red);--sbb-seat-reservation-place-control-selected-background-hover: var(--sbb-color-red125);--sbb-seat-reservation-place-control-selected-background-focus: var(--sbb-color-red150);--sbb-seat-reservation-place-control-selected-backrest-background-default: var( --sbb-color-red150 );--sbb-seat-reservation-place-control-selected-backrest-background-hover: #7d000f;--sbb-seat-reservation-place-control-selected-backrest-background-focus: #5a000b;--sbb-seat-reservation-place-control-allocated-background-default: var(--sbb-color-milk);width:calc(var(--sbb-seat-reservation-place-control-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:calc(var(--sbb-seat-reservation-place-control-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem));position:absolute;inset-block-start:calc(var(--sbb-seat-reservation-place-control-top) * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-inline-start:calc(var(--sbb-seat-reservation-place-control-left) * var(--sbb-seat-reservation-one-px-rem, .0625rem));cursor:pointer}:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-free-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-free-backrest-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-free-background-hover);color:var(--sbb-seat-reservation-place-control-free-text)}:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-selected-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-selected-backrest-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-selected-background-hover);color:var(--sbb-seat-reservation-place-control-selected-text)}:host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-free-background-focus)}:host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-free-backrest-background-focus)}:host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-free-background-focus);color:var(--sbb-seat-reservation-place-control-free-text)}:host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-selected-background-focus)}:host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-selected-backrest-background-focus)}:host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-selected-background-focus);color:var(--sbb-seat-reservation-place-control-selected-text)}:host(:dir(rtl)) :not(.sbb-sr-place-ctrl--type-bicycle,.sbb-sr-place-ctrl--orientation-90,.sbb-sr-place-ctrl--orientation-270,.sbb-sr-place-ctrl--state-selected) ::part(svg-place){rotate:180deg}.sbb-sr-place-ctrl{width:max-content;position:relative;font-size:calc(var(--sbb-seat-reservation-place-control-text-size) * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-place-ctrl--state-free ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-free-background-default)}.sbb-sr-place-ctrl--state-free ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-free-backrest-background-default)}.sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-free-background-default);color:var(--sbb-seat-reservation-place-control-free-text)}.sbb-sr-place-ctrl--state-selected ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-selected-background-default)}.sbb-sr-place-ctrl--state-selected ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-selected-backrest-background-default)}.sbb-sr-place-ctrl--state-selected .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-selected-background-default);color:var(--sbb-seat-reservation-place-control-selected-text)}.sbb-sr-place-ctrl--state-allocated ::part(svg-place),.sbb-sr-place-ctrl--state-restricted ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-allocated-background-default)}.sbb-sr-place-ctrl--state-allocated ::part(svg-backrest),.sbb-sr-place-ctrl--state-restricted ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-allocated-backrest-background-default)}.sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text,.sbb-sr-place-ctrl--state-restricted .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-allocated-background-default);color:var(--sbb-seat-reservation-place-control-allocated-text)}.sbb-sr-place-ctrl--state-allocated,.sbb-sr-place-ctrl--state-restricted{cursor:not-allowed}.sbb-sr-place-ctrl__text{overflow:hidden;display:none;position:absolute;inset-block-start:50%;translate:-50% -50%;rotate:calc(var(--sbb-seat-reservation-place-control-text-rotation) * 1deg);font-family:var(--sbb-typo-font-family);font-size:.75em;line-height:initial}.sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text,.sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text,.sbb-sr-place-ctrl--state-restricted.sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text{display:block}.sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text{inset-block-start:65%;inset-inline-start:50%;transform-origin:center 16%;font-size:.6875em}.sbb-sr-place-ctrl--orientation-0.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text{inset-inline-start:45%}.sbb-sr-place-ctrl--orientation-90.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text{inset-block-start:46%;inset-inline-start:50%}.sbb-sr-place-ctrl--orientation-180.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text{inset-inline-start:55%}.sbb-sr-place-ctrl--orientation-270.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text{inset-block-start:52%;inset-inline-start:52%}:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-0 .sbb-sr-place-ctrl__text{inset-inline-start:3%}:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-90 .sbb-sr-place-ctrl__text,:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-180 .sbb-sr-place-ctrl__text{inset-inline-start:10%}:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-270 .sbb-sr-place-ctrl__text{inset-inline-start:5%}:host(:dir(rtl)) .sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text{inset-inline-start:-10%}`;
|
|
16
16
|
let Ie = (() => {
|
|
17
17
|
var u, f, _, g, k, x, y, m, l;
|
|
18
18
|
let r = [ne("sbb-seat-reservation-place-control")], o, i = [], n, C = ae, z, T = [], S = [], w, P = [], R = [], L, $ = [], D = [], A, N = [], O = [], F, V = [], j = [], B, U = [], K = [], M, Y = [], q = [], G, H = [], J = [];
|