@sbb-esta/lyne-elements-experimental 4.6.0 → 4.7.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.
Files changed (77) hide show
  1. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +6 -6
  2. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +12 -12
  3. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +11 -11
  4. package/core/styles/core.scss +13 -0
  5. package/core/styles/lean-theme.scss +3 -0
  6. package/core/styles/off-brand-theme.scss +3 -0
  7. package/core/styles/safety-theme.scss +3 -0
  8. package/core/styles/standard-theme.scss +3 -0
  9. package/core/styles/theme.scss +5 -0
  10. package/core.css +13 -0
  11. package/custom-elements.json +404 -209
  12. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +3 -2
  13. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +2 -15
  14. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +2 -14
  15. package/development/pearl-chain/pearl-chain.component.js +9 -8
  16. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +9 -8
  17. package/development/seat-reservation/common/mapper/icon-mapper.d.ts.map +1 -1
  18. package/development/seat-reservation/common/mapper/icon-mapper.js +2 -1
  19. package/development/seat-reservation/common/mapper/mapper.js +6 -4
  20. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.d.ts +69 -0
  21. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.d.ts.map +1 -0
  22. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +559 -0
  23. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.d.ts +123 -0
  24. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.d.ts.map +1 -0
  25. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +972 -0
  26. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.d.ts +114 -0
  27. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.d.ts.map +1 -0
  28. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.js +20368 -0
  29. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.d.ts +85 -0
  30. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.d.ts.map +1 -0
  31. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1739 -0
  32. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.d.ts +69 -0
  33. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.d.ts.map +1 -0
  34. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9783 -0
  35. package/development/seat-reservation/common/svgs.js +7 -7
  36. package/development/seat-reservation/common/translations/i18n.d.ts.map +1 -1
  37. package/development/seat-reservation/common/translations/i18n.js +32 -1
  38. package/development/seat-reservation/common/types.d.ts +8 -3
  39. package/development/seat-reservation/common/types.d.ts.map +1 -1
  40. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +13 -3
  41. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  42. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +68 -15
  43. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +1 -0
  44. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  45. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +64 -29
  46. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +4 -15
  47. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  48. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +75 -155
  49. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts +2 -0
  50. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +1 -1
  51. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +21 -5
  52. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +7 -1
  53. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  54. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +154 -9
  55. package/off-brand-theme.css +13 -0
  56. package/package.json +18 -2
  57. package/pearl-chain/pearl-chain.component.js +1 -1
  58. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +15 -15
  59. package/safety-theme.css +13 -0
  60. package/seat-reservation/common/mapper/icon-mapper.js +1 -0
  61. package/seat-reservation/common/mapper/mapper.js +25 -23
  62. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +558 -0
  63. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +970 -0
  64. package/seat-reservation/common/mapper/{seat-reservation-sample-data.js → sample-data/seat-reservation-sample-data-giruno.js} +3 -11304
  65. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1738 -0
  66. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9782 -0
  67. package/seat-reservation/common/svgs.js +51 -51
  68. package/seat-reservation/common/translations/i18n.js +31 -0
  69. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +128 -88
  70. package/seat-reservation/seat-reservation/seat-reservation.component.js +137 -125
  71. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +141 -186
  72. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +54 -44
  73. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +106 -71
  74. package/standard-theme.css +13 -0
  75. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts +0 -372
  76. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +0 -1
  77. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.js +0 -31673
@@ -1,19 +1,19 @@
1
- var fe = (l) => {
2
- throw TypeError(l);
1
+ var ye = (h) => {
2
+ throw TypeError(h);
3
3
  };
4
- var Ce = (l, d, u) => d.has(l) || fe("Cannot " + u);
5
- var g = (l, d, u) => (Ce(l, d, "read from private field"), u ? u.call(l) : d.get(l)), v = (l, d, u) => d.has(l) ? fe("Cannot add the same private member more than once") : d instanceof WeakSet ? d.add(l) : d.set(l, u), r = (l, d, u, T) => (Ce(l, d, "write to private field"), T ? T.call(l, u) : d.set(l, u), u);
6
- import { __esDecorate as f, __runInitializers as n } from "tslib";
7
- import { isArrowKeyOrPageKeysPressed as Se } from "@sbb-esta/lyne-elements/core/a11y.js";
4
+ var be = (h, d, f) => d.has(h) || ye("Cannot " + f);
5
+ var u = (h, d, f) => (be(h, d, "read from private field"), f ? f.call(h) : d.get(h)), g = (h, d, f) => d.has(h) ? ye("Cannot add the same private member more than once") : d instanceof WeakSet ? d.add(h) : d.set(h, f), r = (h, d, f, B) => (be(h, d, "write to private field"), B ? B.call(h, f) : d.set(h, f), f);
6
+ import { __esDecorate as v, __runInitializers as n } from "tslib";
7
+ import { isArrowKeyOrPageKeysPressed as Pe } from "@sbb-esta/lyne-elements/core/a11y.js";
8
8
  import { forceType as S } from "@sbb-esta/lyne-elements/core/decorators.js";
9
- import { LitElement as xe, isServer as pe } from "lit";
10
- import { property as C, state as w, eventOptions as _e } from "lit/decorators.js";
11
- import { mapIconToSvg as Ie, mapPlaceInfosToPlaceSelection as me, mapPlaceAndCoachToSeatReservationPlaceSelection as ye, mapCoachInfosToCoachSelection as be } from "../common/mapper.js";
9
+ import { LitElement as Ee, isServer as Re } from "lit";
10
+ import { property as C, state as z, eventOptions as Ne } from "lit/decorators.js";
11
+ import { mapIconToSvg as Ae, mapPlaceInfosToPlaceSelection as ke, mapPlaceAndCoachToSeatReservationPlaceSelection as De, mapCoachInfosToCoachSelection as Te } from "../common/mapper.js";
12
12
  var I;
13
- (function(l) {
14
- l.right = "right", l.left = "left";
13
+ (function(h) {
14
+ h.right = "right", h.left = "left";
15
15
  })(I || (I = {}));
16
- const Pe = 3, Ae = [
16
+ const we = 3, Be = [
17
17
  "sa-vo",
18
18
  "sa-rs",
19
19
  "sa-abteilkinderwagen",
@@ -22,25 +22,27 @@ const Pe = 3, Ae = [
22
22
  "sa-bz",
23
23
  "sa-rz"
24
24
  ];
25
- let ze = (() => {
26
- var x, p, _, m, y, b, P, A, N, E, R, k, h;
27
- let l = xe, d = [], u, T = [], B = [], z, F = [], G = [], O, V = [], L = [], W, H = [], M = [], K, X = [], U = [], q, $ = [], j = [], Y, J = [], Q = [], Z, ee = [], te = [], se, ie = [], ae = [], ce, oe = [], re = [], ne, le = [], he = [], de, ue = [], ge = [], ve;
28
- return h = class extends l {
25
+ let Me = (() => {
26
+ var x, p, _, m, y, b, P, A, E, R, N, k, D, T, l;
27
+ let h = Ee, d = [], f, B = [], O = [], V, F = [], G = [], L, W = [], H = [], M, K = [], X = [], U, q = [], $ = [], j, Y = [], J = [], Q, Z = [], ee = [], te, se = [], ie = [], ae, ce = [], oe = [], re, ne = [], le = [], he, de = [], ue = [], ge, ve = [], fe = [], Ce, Se = [], Ie = [], xe, pe = [], _e = [], me;
28
+ return l = class extends h {
29
29
  constructor() {
30
30
  super();
31
- v(this, x);
32
- v(this, p);
33
- v(this, _);
34
- v(this, m);
35
- v(this, y);
36
- v(this, b);
37
- v(this, P);
38
- v(this, A);
39
- v(this, N);
40
- v(this, E);
41
- v(this, R);
42
- v(this, k);
43
- r(this, x, (n(this, d), n(this, T, null))), r(this, p, (n(this, B), n(this, F, !0))), r(this, _, (n(this, G), n(this, V, !1))), r(this, m, (n(this, L), n(this, H, 16))), r(this, y, (n(this, M), n(this, X, null))), r(this, b, (n(this, U), n(this, $, -1))), r(this, P, (n(this, j), n(this, J, -1))), r(this, A, (n(this, Q), n(this, ee, !1))), r(this, N, (n(this, te), n(this, ie, -1))), r(this, E, (n(this, ae), n(this, oe, -1))), r(this, R, (n(this, re), n(this, le, -1))), r(this, k, (n(this, he), n(this, ue, -1))), this.coachBorderPadding = (n(this, ge), 6), this.gapBetweenCoaches = 4, this.coachBorderOffset = this.coachBorderPadding / this.baseGridSize, this.gapBetweenCoachDecks = 48, this.coachNavButtonDim = 0, this.coachNavData = [], this.currScrollDirection = I.right, this.maxCalcCoachesWidth = 0, this.scrollCoachesAreaWidth = 0, this.scrollNavigationAreaDim = 0, this.triggerCoachPositionsCollection = [], this.navigationScrollArea = null, this.coachScrollArea = null, this.currSelectedPlace = null, this.currSelectedPlaceElementId = null, this.currSelectedCoachIndex = -1, this.currSelectedDeckIndex = 0, this.preventCoachScrollByPlaceClick = !1, this.selectedSeatReservationPlaces = {
31
+ g(this, x);
32
+ g(this, p);
33
+ g(this, _);
34
+ g(this, m);
35
+ g(this, y);
36
+ g(this, b);
37
+ g(this, P);
38
+ g(this, A);
39
+ g(this, E);
40
+ g(this, R);
41
+ g(this, N);
42
+ g(this, k);
43
+ g(this, D);
44
+ g(this, T);
45
+ r(this, x, (n(this, d), n(this, B, null))), r(this, p, (n(this, O), n(this, F, "NONE"))), r(this, _, (n(this, G), n(this, W, !0))), r(this, m, (n(this, H), n(this, K, !1))), r(this, y, (n(this, X), n(this, q, 16))), r(this, b, (n(this, $), n(this, Y, null))), r(this, P, (n(this, J), n(this, Z, -1))), r(this, A, (n(this, ee), n(this, se, -1))), r(this, E, (n(this, ie), n(this, ce, !1))), r(this, R, (n(this, oe), n(this, ne, -1))), r(this, N, (n(this, le), n(this, de, !1))), r(this, k, (n(this, ue), n(this, ve, -1))), r(this, D, (n(this, fe), n(this, Se, -1))), r(this, T, (n(this, Ie), n(this, pe, -1))), this.coachBorderPadding = (n(this, _e), 6), this.gapBetweenCoaches = 4, this.coachBorderOffset = this.coachBorderPadding / this.baseGridSize, this.gapBetweenCoachDecks = 48, this.coachNavButtonDim = 0, this.coachItemDetailsElements = [], this.currScrollDirection = I.right, this.maxCalcCoachesWidth = 0, this.scrollCoachesAreaWidth = 0, this.scrollNavigationAreaDim = 0, this.triggerCoachPositionsCollection = [], this.navigationScrollArea = null, this.coachScrollArea = null, this.currSelectedPlace = null, this.currSelectedPlaceElementId = null, this.currSelectedCoachIndex = -1, this.currSelectedDeckIndex = 0, this.preventCoachScrollByPlaceClick = !1, this.selectedSeatReservationPlaces = {
44
46
  seats: [],
45
47
  bicycles: []
46
48
  }, this.seatReservationWithoutNavigationHasFocus = !1, this.isCoachGridFocusable = !1, this.isAutoScrolling = !1, this.isKeyboardNavigation = !1, this.hasMultipleDecks = !1, this.hasSeatReservationNativeFocus = !1, this.keyboardNavigationEvents = {
@@ -52,6 +54,7 @@ let ze = (() => {
52
54
  Enter: "Enter"
53
55
  }, this.notAreaElements = [
54
56
  "DRIVER_AREA",
57
+ "DRIVER_AREA_NO_VERTICAL_WALL",
55
58
  "COACH_PASSAGE",
56
59
  "COACH_WALL_NO_PASSAGE",
57
60
  "COMPARTMENT_PASSAGE",
@@ -64,91 +67,105 @@ let ze = (() => {
64
67
  const t = e?.map(function(s) {
65
68
  return {
66
69
  pId: s,
67
- svgName: Ie[s]?.svgName ? Ie[s]?.svgName : ""
70
+ svgName: Ae[s]?.svgName ? Ae[s]?.svgName : ""
68
71
  };
69
- }).filter((s) => Ae.indexOf(s.svgName) !== -1).filter((s, i, a) => a.map((o) => o.svgName).indexOf(s.svgName) === i).map((s) => s.pId).slice(0, Pe);
72
+ }).filter((s) => Be.indexOf(s.svgName) !== -1).filter((s, i, a) => a.map((o) => o.svgName).indexOf(s.svgName) === i).map((s) => s.pId).slice(0, we);
70
73
  return t || [];
71
74
  }, this.addEventListener("blur", () => this._onLeaveSeatReservationComponent());
72
75
  }
73
76
  /** The seat reservations array contains all coaches and places */
74
77
  get seatReservations() {
75
- return g(this, x);
78
+ return u(this, x);
76
79
  }
77
80
  set seatReservations(e) {
78
81
  r(this, x, e);
79
82
  }
83
+ /** Displays an arrow showing what direction does train drive*/
84
+ get travelDirection() {
85
+ return u(this, p);
86
+ }
87
+ set travelDirection(e) {
88
+ r(this, p, e);
89
+ }
80
90
  /** The seat reservation navigation can be toggled by this property */
81
91
  get hasNavigation() {
82
- return g(this, p);
92
+ return u(this, _);
83
93
  }
84
94
  set hasNavigation(e) {
85
- r(this, p, e);
95
+ r(this, _, e);
86
96
  }
87
97
  /** The seat reservation area is aligned vertically */
88
98
  get alignVertical() {
89
- return g(this, _);
99
+ return u(this, m);
90
100
  }
91
101
  set alignVertical(e) {
92
- r(this, _, e);
102
+ r(this, m, e);
93
103
  }
94
104
  /** The seat reservation area's base grid size */
95
105
  get baseGridSize() {
96
- return g(this, m);
106
+ return u(this, y);
97
107
  }
98
108
  set baseGridSize(e) {
99
- r(this, m, e);
109
+ r(this, y, e);
100
110
  }
101
111
  /** The seat reservation area's width */
102
112
  get height() {
103
- return g(this, y);
113
+ return u(this, b);
104
114
  }
105
115
  set height(e) {
106
- r(this, y, e);
116
+ r(this, b, e);
107
117
  }
108
118
  /** Maximal number of possible clickable seats */
109
119
  get maxSeatReservations() {
110
- return g(this, b);
120
+ return u(this, P);
111
121
  }
112
122
  set maxSeatReservations(e) {
113
- r(this, b, e);
123
+ r(this, P, e);
114
124
  }
115
125
  /** Maximal number of possible clickable bicycle places */
116
126
  get maxBicycleReservations() {
117
- return g(this, P);
127
+ return u(this, A);
118
128
  }
119
129
  set maxBicycleReservations(e) {
120
- r(this, P, e);
130
+ r(this, A, e);
121
131
  }
122
132
  /** Any click functionality is prevented */
123
133
  get preventPlaceClick() {
124
- return g(this, A);
134
+ return u(this, E);
125
135
  }
126
136
  set preventPlaceClick(e) {
127
- r(this, A, e);
137
+ r(this, E, e);
128
138
  }
129
139
  get preselectCoachIndex() {
130
- return g(this, N);
140
+ return u(this, R);
131
141
  }
132
142
  set preselectCoachIndex(e) {
143
+ r(this, R, e);
144
+ }
145
+ /** The seat reservation title information at place-controls, navigation-coaches and navigation-services can be toggled by this property */
146
+ get showTitleInfo() {
147
+ return u(this, N);
148
+ }
149
+ set showTitleInfo(e) {
133
150
  r(this, N, e);
134
151
  }
135
152
  get selectedCoachIndex() {
136
- return g(this, E);
153
+ return u(this, k);
137
154
  }
138
155
  set selectedCoachIndex(e) {
139
- r(this, E, e);
156
+ r(this, k, e);
140
157
  }
141
158
  get focusedCoachIndex() {
142
- return g(this, R);
159
+ return u(this, D);
143
160
  }
144
161
  set focusedCoachIndex(e) {
145
- r(this, R, e);
162
+ r(this, D, e);
146
163
  }
147
164
  get hoveredCoachIndex() {
148
- return g(this, k);
165
+ return u(this, T);
149
166
  }
150
167
  set hoveredCoachIndex(e) {
151
- r(this, k, e);
168
+ r(this, T, e);
152
169
  }
153
170
  willUpdate(e) {
154
171
  if (super.willUpdate(e), e.has("seatReservations") && (this.hasMultipleDecks = this.seatReservations?.length > 1, this._initPrepareSeatReservationData(), this._prepareCoachWidthAndGapCalculations(), this._initSeatReservationPlaceSelection(), this.initNavigationSelectionByScrollEvent()), e.has("baseGridSize") && (this.coachBorderOffset = this.coachBorderPadding / this.baseGridSize, this.style?.setProperty("--sbb-seat-reservation-grid-size", `${this.baseGridSize}px`), this.initNavigationSelectionByScrollEvent()), e.has("height") && this.height) {
@@ -167,7 +184,7 @@ let ze = (() => {
167
184
  * in order to avoid recurring iteration processes in rendering.
168
185
  */
169
186
  _initPrepareSeatReservationData() {
170
- this._determineBaseFontSize(), this.hasMultipleDecks && this._initEmptyCoachDeckOffsets(), this._prepareNavigationCoachData();
187
+ this._determineBaseFontSize(), this.hasMultipleDecks && this._initEmptyCoachDeckOffsets(), this._prepareCoachItemDetailsData();
171
188
  }
172
189
  /** Init scroll event handling for coach navigation */
173
190
  initNavigationSelectionByScrollEvent() {
@@ -188,7 +205,7 @@ let ze = (() => {
188
205
  if (this.coachScrollArea && e) {
189
206
  let t = 0;
190
207
  this.scrollCoachesAreaWidth = this.alignVertical ? this.coachScrollArea.getBoundingClientRect().height : this.coachScrollArea.getBoundingClientRect().width, this.triggerCoachPositionsCollection = e.coachItems.map((s) => {
191
- const i = t, a = this.getCalculatedDimension(s.dimension).w, o = this.overHangingElementInformation.find((D) => D.coachId === s.id), c = o?.overhangingPlaces || o?.overhangingGraphicAreas;
208
+ const i = t, a = this.getCalculatedDimension(s.dimension).w, o = this.overHangingElementInformation.find((w) => w.coachId === s.id), c = o?.overhangingPlaces || o?.overhangingGraphicAreas;
192
209
  return t += a + (c ? 2 * this.gapBetweenCoaches : this.gapBetweenCoaches), {
193
210
  start: i,
194
211
  end: t,
@@ -225,12 +242,12 @@ let ze = (() => {
225
242
  this._handleTabKeyNavigation(e, "navigation", t);
226
243
  return;
227
244
  }
228
- Se(e) && this.keyboardSeatmapEventHandling(e);
245
+ Pe(e) && this.keyboardSeatmapEventHandling(e);
229
246
  }
230
247
  /** General TAB Key Event handling for tab navigation inside the coach navigation area and the seatmap area */
231
248
  _handleTabKeyNavigation(e, t, s) {
232
249
  const i = e.key, a = e.shiftKey;
233
- i === this.keyboardNavigationEvents.Tab && (t == "navigation" ? (s == this.currSelectedCoachIndex ? !this.currSelectedPlace || !a || this.coachNavData[s].isDriverArea || this.focusedCoachIndex == -1 ? this.focusedCoachIndex = s : a && this.currSelectedPlace && (this.focusedCoachIndex = -1, this.focusPlaceElement(this.currSelectedPlace)) : this.focusedCoachIndex = s, this._scrollToSelectedNavigationButton(s)) : t == "seatmap" && (e.preventDefault(), a ? this._navigateCoachNavigationByKeyboard("PREV_TAB") : this._navigateCoachNavigationByKeyboard("NEXT_TAB")));
250
+ i === this.keyboardNavigationEvents.Tab && (t == "navigation" ? (s == this.currSelectedCoachIndex ? !this.currSelectedPlace || !a || this.coachItemDetailsElements[s].isDriverArea || this.focusedCoachIndex == -1 ? this.focusedCoachIndex = s : a && this.currSelectedPlace && (this.focusedCoachIndex = -1, this.focusPlaceElement(this.currSelectedPlace)) : this.focusedCoachIndex = s, this._scrollToSelectedNavigationButton(s)) : t == "seatmap" && (e.preventDefault(), a ? this._navigateCoachNavigationByKeyboard("PREV_TAB") : this._navigateCoachNavigationByKeyboard("NEXT_TAB")));
234
251
  }
235
252
  /**
236
253
  * Initialisation of Keyboard Seatmap event handling to navigation between each places inside a selected coach by using [arrow] keys.
@@ -238,14 +255,14 @@ let ze = (() => {
238
255
  */
239
256
  keyboardSeatmapEventHandling(e) {
240
257
  const t = e.key === this.keyboardNavigationEvents.Tab, s = e.shiftKey && t;
241
- if (!this.hasNavigation && this.currSelectedCoachIndex === 0 && s || this.currSelectedCoachIndex === this.coachNavData.length - 1 && t)
258
+ if (!this.hasNavigation && this.currSelectedCoachIndex === 0 && s || this.currSelectedCoachIndex === this.coachItemDetailsElements.length - 1 && t)
242
259
  return;
243
260
  const i = e.key;
244
261
  if (this.preventCoachScrollByPlaceClick = !1, !this.hasSeatReservationNativeFocus && (t || s) && (this.hasSeatReservationNativeFocus = !0), t) {
245
262
  this._handleTabKeyNavigation(e, "seatmap");
246
263
  return;
247
264
  }
248
- if (this.currSelectedCoachIndex !== -1 && Se(e))
265
+ if (this.currSelectedCoachIndex !== -1 && Pe(e))
249
266
  switch (e.preventDefault(), i) {
250
267
  case this.keyboardNavigationEvents.ArrowLeft:
251
268
  {
@@ -283,7 +300,7 @@ let ze = (() => {
283
300
  this._isRunningInitPreselectCoachIndex = !1;
284
301
  return;
285
302
  }
286
- if (this.coachNavData[this.currSelectedCoachIndex] && this.coachNavData[this.currSelectedCoachIndex].isDriverArea) {
303
+ if (this.coachItemDetailsElements[this.currSelectedCoachIndex] && this.coachItemDetailsElements[this.currSelectedCoachIndex].isDriverArea) {
287
304
  this._setFocusToSelectedCoachGrid();
288
305
  return;
289
306
  }
@@ -474,7 +491,7 @@ let ze = (() => {
474
491
  this.focusedCoachIndex = t, this.unfocusPlaceElement();
475
492
  return;
476
493
  } else t === 0 ? this._refocusCurrentFocusedNavCoach(t) : this.focusedCoachIndex = s;
477
- else s !== this.currSelectedCoachIndex ? this.focusedCoachIndex = s : e === "NEXT_TAB" && s === this.coachNavData.length - 1 ? this._refocusCurrentFocusedNavCoach(t) : (this.focusedCoachIndex = -1, this.selectedCoachIndex = s, a ? this.focusPlaceElement(this.currSelectedPlace) : (this.isCoachGridFocusable = !0, this._setFocusToSelectedCoachGrid()));
494
+ else s !== this.currSelectedCoachIndex ? this.focusedCoachIndex = s : e === "NEXT_TAB" && s === this.coachItemDetailsElements.length - 1 ? this._refocusCurrentFocusedNavCoach(t) : (this.focusedCoachIndex = -1, this.selectedCoachIndex = s, a ? this.focusPlaceElement(this.currSelectedPlace) : (this.isCoachGridFocusable = !0, this._setFocusToSelectedCoachGrid()));
478
495
  this._scrollToSelectedNavigationButton(s);
479
496
  } else
480
497
  this.scrollToSelectedNavCoach(s);
@@ -583,8 +600,8 @@ let ze = (() => {
583
600
  _initSeatReservationPlaceSelection() {
584
601
  this.selectedSeatReservationPlaces.seats = [], this.selectedSeatReservationPlaces.bicycles = [], this.seatReservations?.forEach((e, t) => e.coachItems.map((s, i) => {
585
602
  s.places?.filter((a) => a.state === "SELECTED")?.forEach((a) => {
586
- const o = this.getPlaceElementId(t, i, a.number), c = me(a, o, e.deckCoachIndex, i), D = this._getSeatReservationPlaceSelection(c, t);
587
- D && (D.placeType === "SEAT" ? this.selectedSeatReservationPlaces.seats.push(D) : this.selectedSeatReservationPlaces.bicycles.push(D));
603
+ const o = this.getPlaceElementId(t, i, a.number), c = ke(a, o, e.deckCoachIndex, i), w = this._getSeatReservationPlaceSelection(c, t);
604
+ w && (w.placeType === "SEAT" ? this.selectedSeatReservationPlaces.seats.push(w) : this.selectedSeatReservationPlaces.bicycles.push(w));
588
605
  });
589
606
  }));
590
607
  }
@@ -605,13 +622,13 @@ let ze = (() => {
605
622
  if (t === null)
606
623
  return null;
607
624
  const s = this.seatReservations[t].coachItems[e.coachIndex], i = s.places?.find((a) => a.number === e.number);
608
- return i ? ye(i, s, e.id, e.deckIndex, e.coachIndex) : null;
625
+ return i ? De(i, s, e.id, e.deckIndex, e.coachIndex) : null;
609
626
  }
610
627
  _getSeatReservationSelectedCoach(e) {
611
628
  if (!this.seatReservations[this.currSelectedDeckIndex].coachItems[e])
612
629
  return null;
613
630
  const t = this.seatReservations[this.currSelectedDeckIndex].coachItems[e], s = this.getAvailableFreePlacesNumFromCoach(t.places);
614
- return be(e, t, s);
631
+ return Te(e, t, s);
615
632
  }
616
633
  _setCurrSelectedPlaceElementId(e) {
617
634
  this.currSelectedPlaceElementId = e ? this.getPlaceElementId(this.currSelectedDeckIndex, this.currSelectedCoachIndex, e.number) : null;
@@ -621,7 +638,7 @@ let ze = (() => {
621
638
  * to be determined in order to correctly calculate CSS values with rem
622
639
  * */
623
640
  _determineBaseFontSize() {
624
- if (!pe) {
641
+ if (!Re) {
625
642
  const t = 1 / parseInt(window.getComputedStyle(document.body).fontSize, 10);
626
643
  this.style?.setProperty("--sbb-seat-reservation-one-px-rem", `${t + "rem"}`);
627
644
  }
@@ -634,20 +651,21 @@ let ze = (() => {
634
651
  * - class (first, second, any)
635
652
  * - whether there is a driver area left or right
636
653
  * */
637
- _prepareNavigationCoachData() {
654
+ _prepareCoachItemDetailsData() {
638
655
  if (this.seatReservations) {
639
656
  const e = this.seatReservations[this.seatReservations.length - 1].coachItems;
640
- this.coachNavData = [], e.forEach((t, s) => {
657
+ this.coachItemDetailsElements = [], e.forEach((t, s) => {
641
658
  const i = [], a = [], o = [];
642
659
  this.seatReservations.map((c) => c.coachItems[s]).forEach((c) => {
643
660
  i.push(...c.travelClass), a.push(...c.propertyIds ? c.propertyIds : []), o.push(...c.places ? c.places : []);
644
- }), this.coachNavData.push({
661
+ }), this.coachItemDetailsElements.push({
645
662
  id: t.id,
646
663
  travelClass: this._prepareTravelClassNavigation(i),
647
664
  propertyIds: this._prepareServiceIconsNavigation(a),
648
665
  isDriverArea: t.places ? t.places.length === 0 : !0,
649
666
  driverAreaSide: this._prepareDriverAreaSideNavigation(t),
650
- freePlaces: this.getAvailableFreePlacesNumFromCoach(o)
667
+ freePlaces: this.getAvailableFreePlacesNumFromCoach(o),
668
+ driverAreaElements: this._setDriverAreasElements(t)
651
669
  });
652
670
  });
653
671
  }
@@ -726,6 +744,24 @@ let ze = (() => {
726
744
  _isOverhangingElementsPresent(e, t) {
727
745
  return t?.some((s) => s.position.x === 0 || s.position.x + s.dimension.w >= e) ?? !1;
728
746
  }
747
+ /**
748
+ * collect information about the driverAreas for one coach
749
+ * @param coachItem
750
+ * @private
751
+ */
752
+ _setDriverAreasElements(e) {
753
+ if (e) {
754
+ const t = e.graphicElements?.find((i) => i.icon === "DRIVER_AREA"), s = e.type === "LOCOMOTIVE_COACH" ? e.graphicElements?.find((i) => i.icon === "DRIVER_AREA_NO_VERTICAL_WALL") : void 0;
755
+ return {
756
+ driverArea: t,
757
+ driverAreaNoVerticalWall: s
758
+ };
759
+ }
760
+ return {
761
+ driverArea: void 0,
762
+ driverAreaNoVerticalWall: void 0
763
+ };
764
+ }
729
765
  /**
730
766
  * Is called when the SeatReservation loses focus, what happens when the user tabs out or clicks somewhere else.
731
767
  * Then we reset the focused elements.
@@ -733,38 +769,42 @@ let ze = (() => {
733
769
  _onLeaveSeatReservationComponent() {
734
770
  this.hasNavigation && (this.focusedCoachIndex = -1), this.unfocusPlaceElement();
735
771
  }
736
- }, x = new WeakMap(), p = new WeakMap(), _ = new WeakMap(), m = new WeakMap(), y = new WeakMap(), b = new WeakMap(), P = new WeakMap(), A = new WeakMap(), N = new WeakMap(), E = new WeakMap(), R = new WeakMap(), k = new WeakMap(), (() => {
737
- const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(l[Symbol.metadata] ?? null) : void 0;
738
- u = [C({ attribute: "seat-reservations", type: Array })], z = [S(), C({ attribute: "has-navigation", type: Boolean })], O = [S(), C({ attribute: "align-vertical", type: Boolean, reflect: !0, useDefault: !0 })], W = [S(), C({ attribute: "base-grid-size", type: Number })], K = [S(), C({ attribute: "height", type: Number })], q = [S(), C({ attribute: "max-seat-reservations", type: Number })], Y = [S(), C({ attribute: "max-bicycle-reservations", type: Number })], Z = [S(), C({ attribute: "prevent-place-click", type: Boolean })], se = [S(), C({ attribute: "preselect-coach-index", type: Number })], ce = [w()], ne = [w()], de = [w()], ve = [_e({ passive: !0 })], f(h, null, u, { kind: "accessor", name: "seatReservations", static: !1, private: !1, access: { has: (t) => "seatReservations" in t, get: (t) => t.seatReservations, set: (t, s) => {
772
+ }, x = new WeakMap(), p = new WeakMap(), _ = new WeakMap(), m = new WeakMap(), y = new WeakMap(), b = new WeakMap(), P = new WeakMap(), A = new WeakMap(), E = new WeakMap(), R = new WeakMap(), N = new WeakMap(), k = new WeakMap(), D = new WeakMap(), T = new WeakMap(), (() => {
773
+ const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(h[Symbol.metadata] ?? null) : void 0;
774
+ f = [C({ attribute: "seat-reservations", type: Array })], V = [C({ attribute: "travel-direction", type: String })], L = [S(), C({ attribute: "has-navigation", type: Boolean })], M = [S(), C({ attribute: "align-vertical", type: Boolean, reflect: !0, useDefault: !0 })], U = [S(), C({ attribute: "base-grid-size", type: Number })], j = [S(), C({ attribute: "height", type: Number })], Q = [S(), C({ attribute: "max-seat-reservations", type: Number })], te = [S(), C({ attribute: "max-bicycle-reservations", type: Number })], ae = [S(), C({ attribute: "prevent-place-click", type: Boolean })], re = [S(), C({ attribute: "preselect-coach-index", type: Number })], he = [S(), C({ attribute: "show-title-info", type: Boolean })], ge = [z()], Ce = [z()], xe = [z()], me = [Ne({ passive: !0 })], v(l, null, f, { kind: "accessor", name: "seatReservations", static: !1, private: !1, access: { has: (t) => "seatReservations" in t, get: (t) => t.seatReservations, set: (t, s) => {
739
775
  t.seatReservations = s;
740
- } }, metadata: e }, T, B), f(h, null, z, { kind: "accessor", name: "hasNavigation", static: !1, private: !1, access: { has: (t) => "hasNavigation" in t, get: (t) => t.hasNavigation, set: (t, s) => {
776
+ } }, metadata: e }, B, O), v(l, null, V, { kind: "accessor", name: "travelDirection", static: !1, private: !1, access: { has: (t) => "travelDirection" in t, get: (t) => t.travelDirection, set: (t, s) => {
777
+ t.travelDirection = s;
778
+ } }, metadata: e }, F, G), v(l, null, L, { kind: "accessor", name: "hasNavigation", static: !1, private: !1, access: { has: (t) => "hasNavigation" in t, get: (t) => t.hasNavigation, set: (t, s) => {
741
779
  t.hasNavigation = s;
742
- } }, metadata: e }, F, G), f(h, null, O, { kind: "accessor", name: "alignVertical", static: !1, private: !1, access: { has: (t) => "alignVertical" in t, get: (t) => t.alignVertical, set: (t, s) => {
780
+ } }, metadata: e }, W, H), v(l, null, M, { kind: "accessor", name: "alignVertical", static: !1, private: !1, access: { has: (t) => "alignVertical" in t, get: (t) => t.alignVertical, set: (t, s) => {
743
781
  t.alignVertical = s;
744
- } }, metadata: e }, V, L), f(h, null, W, { kind: "accessor", name: "baseGridSize", static: !1, private: !1, access: { has: (t) => "baseGridSize" in t, get: (t) => t.baseGridSize, set: (t, s) => {
782
+ } }, metadata: e }, K, X), v(l, null, U, { kind: "accessor", name: "baseGridSize", static: !1, private: !1, access: { has: (t) => "baseGridSize" in t, get: (t) => t.baseGridSize, set: (t, s) => {
745
783
  t.baseGridSize = s;
746
- } }, metadata: e }, H, M), f(h, null, K, { kind: "accessor", name: "height", static: !1, private: !1, access: { has: (t) => "height" in t, get: (t) => t.height, set: (t, s) => {
784
+ } }, metadata: e }, q, $), v(l, null, j, { kind: "accessor", name: "height", static: !1, private: !1, access: { has: (t) => "height" in t, get: (t) => t.height, set: (t, s) => {
747
785
  t.height = s;
748
- } }, metadata: e }, X, U), f(h, null, q, { kind: "accessor", name: "maxSeatReservations", static: !1, private: !1, access: { has: (t) => "maxSeatReservations" in t, get: (t) => t.maxSeatReservations, set: (t, s) => {
786
+ } }, metadata: e }, Y, J), v(l, null, Q, { kind: "accessor", name: "maxSeatReservations", static: !1, private: !1, access: { has: (t) => "maxSeatReservations" in t, get: (t) => t.maxSeatReservations, set: (t, s) => {
749
787
  t.maxSeatReservations = s;
750
- } }, metadata: e }, $, j), f(h, null, Y, { kind: "accessor", name: "maxBicycleReservations", static: !1, private: !1, access: { has: (t) => "maxBicycleReservations" in t, get: (t) => t.maxBicycleReservations, set: (t, s) => {
788
+ } }, metadata: e }, Z, ee), v(l, null, te, { kind: "accessor", name: "maxBicycleReservations", static: !1, private: !1, access: { has: (t) => "maxBicycleReservations" in t, get: (t) => t.maxBicycleReservations, set: (t, s) => {
751
789
  t.maxBicycleReservations = s;
752
- } }, metadata: e }, J, Q), f(h, null, Z, { kind: "accessor", name: "preventPlaceClick", static: !1, private: !1, access: { has: (t) => "preventPlaceClick" in t, get: (t) => t.preventPlaceClick, set: (t, s) => {
790
+ } }, metadata: e }, se, ie), v(l, null, ae, { kind: "accessor", name: "preventPlaceClick", static: !1, private: !1, access: { has: (t) => "preventPlaceClick" in t, get: (t) => t.preventPlaceClick, set: (t, s) => {
753
791
  t.preventPlaceClick = s;
754
- } }, metadata: e }, ee, te), f(h, null, se, { kind: "accessor", name: "preselectCoachIndex", static: !1, private: !1, access: { has: (t) => "preselectCoachIndex" in t, get: (t) => t.preselectCoachIndex, set: (t, s) => {
792
+ } }, metadata: e }, ce, oe), v(l, null, re, { kind: "accessor", name: "preselectCoachIndex", static: !1, private: !1, access: { has: (t) => "preselectCoachIndex" in t, get: (t) => t.preselectCoachIndex, set: (t, s) => {
755
793
  t.preselectCoachIndex = s;
756
- } }, metadata: e }, ie, ae), f(h, null, ce, { kind: "accessor", name: "selectedCoachIndex", static: !1, private: !1, access: { has: (t) => "selectedCoachIndex" in t, get: (t) => t.selectedCoachIndex, set: (t, s) => {
794
+ } }, metadata: e }, ne, le), v(l, null, he, { kind: "accessor", name: "showTitleInfo", static: !1, private: !1, access: { has: (t) => "showTitleInfo" in t, get: (t) => t.showTitleInfo, set: (t, s) => {
795
+ t.showTitleInfo = s;
796
+ } }, metadata: e }, de, ue), v(l, null, ge, { kind: "accessor", name: "selectedCoachIndex", static: !1, private: !1, access: { has: (t) => "selectedCoachIndex" in t, get: (t) => t.selectedCoachIndex, set: (t, s) => {
757
797
  t.selectedCoachIndex = s;
758
- } }, metadata: e }, oe, re), f(h, null, ne, { kind: "accessor", name: "focusedCoachIndex", static: !1, private: !1, access: { has: (t) => "focusedCoachIndex" in t, get: (t) => t.focusedCoachIndex, set: (t, s) => {
798
+ } }, metadata: e }, ve, fe), v(l, null, Ce, { kind: "accessor", name: "focusedCoachIndex", static: !1, private: !1, access: { has: (t) => "focusedCoachIndex" in t, get: (t) => t.focusedCoachIndex, set: (t, s) => {
759
799
  t.focusedCoachIndex = s;
760
- } }, metadata: e }, le, he), f(h, null, de, { kind: "accessor", name: "hoveredCoachIndex", static: !1, private: !1, access: { has: (t) => "hoveredCoachIndex" in t, get: (t) => t.hoveredCoachIndex, set: (t, s) => {
800
+ } }, metadata: e }, Se, Ie), v(l, null, xe, { kind: "accessor", name: "hoveredCoachIndex", static: !1, private: !1, access: { has: (t) => "hoveredCoachIndex" in t, get: (t) => t.hoveredCoachIndex, set: (t, s) => {
761
801
  t.hoveredCoachIndex = s;
762
- } }, metadata: e }, ue, ge), f(h, null, ve, { 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(h, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
763
- })(), h.events = {
802
+ } }, metadata: e }, pe, _e), v(l, null, me, { 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(l, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
803
+ })(), l.events = {
764
804
  selectedplaces: "selectedplaces",
765
805
  selectedcoach: "selectedcoach"
766
- }, h;
806
+ }, l;
767
807
  })();
768
808
  export {
769
- ze as SeatReservationBaseElement
809
+ Me as SeatReservationBaseElement
770
810
  };