@sbb-esta/lyne-elements-experimental-dev 4.13.1-dev.1781017616 → 5.0.0-dev.1781073747

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 (263) hide show
  1. package/_index.scss +2 -0
  2. package/autocomplete-grid/_autocomplete-grid.global.scss +14 -0
  3. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +16 -19
  4. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +42 -71
  5. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  6. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +1 -1
  7. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  8. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  9. package/{autocomplete-grid-cell.component-D-Kk9HwQ.js → autocomplete-grid-cell.component-79IjA__I.js} +6 -7
  10. package/autocomplete-grid-option.component-DUFBhQwI.js +35 -0
  11. package/{autocomplete-grid-row.component-57jjeZWF.js → autocomplete-grid-row.component-B3U15Rwa.js} +7 -8
  12. package/autocomplete-grid.js +3 -3
  13. package/autocomplete-grid.pure.js +3 -3
  14. package/core/datetime/date-helper.js +1 -1
  15. package/core/styles/_theme.scss +19 -0
  16. package/core/styles/lean-off-brand-theme.scss +3 -0
  17. package/core/styles/lean-safety-theme.scss +3 -0
  18. package/core/timetable/access-leg-helper.js +27 -27
  19. package/core.js +5 -0
  20. package/custom-elements.json +5120 -5186
  21. package/{date-helper-NgYaHPR7.js → date-helper-DNzMLcyb.js} +1 -1
  22. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +1 -1
  23. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  24. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +7 -10
  25. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +2 -2
  26. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
  27. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +55 -89
  28. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +1 -1
  29. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -1
  30. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  31. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts +1 -1
  32. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts.map +1 -1
  33. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +2 -2
  34. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +1 -2
  35. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
  36. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  37. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +1 -1
  38. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -1
  39. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  40. package/development/autocomplete-grid-cell.component-BbdELDro.js +33 -0
  41. package/development/autocomplete-grid-option.component-C7WuqRit.js +57 -0
  42. package/development/{autocomplete-grid-row.component-CvF3ZWDZ.js → autocomplete-grid-row.component-DoXbOsQM.js} +3 -4
  43. package/development/autocomplete-grid.js +4 -4
  44. package/development/autocomplete-grid.pure.js +3 -3
  45. package/development/core/datetime/date-helper.js +1 -1
  46. package/development/core/timetable/access-leg-helper.d.ts.map +1 -1
  47. package/development/core/timetable/access-leg-helper.js +3 -3
  48. package/development/core.d.ts +6 -0
  49. package/development/core.d.ts.map +1 -0
  50. package/development/core.js +5 -0
  51. package/development/{date-helper-QhWjANc3.js → date-helper-BcTDWVeP.js} +2 -2
  52. package/development/journey-summary/journey-summary.component.d.ts +4 -4
  53. package/development/journey-summary/journey-summary.component.d.ts.map +1 -1
  54. package/development/journey-summary/journey-summary.component.js +1 -1
  55. package/development/journey-summary.component-BsC7wBIn.js +341 -0
  56. package/development/journey-summary.js +1 -1
  57. package/development/journey-summary.pure.js +1 -1
  58. package/development/pearl-chain/pearl-chain.component.d.ts +2 -2
  59. package/development/pearl-chain/pearl-chain.component.d.ts.map +1 -1
  60. package/development/pearl-chain/pearl-chain.component.js +1 -1
  61. package/development/pearl-chain-time/pearl-chain-time.component.d.ts +3 -2
  62. package/development/pearl-chain-time/pearl-chain-time.component.d.ts.map +1 -1
  63. package/development/pearl-chain-time/pearl-chain-time.component.js +1 -1
  64. package/development/{pearl-chain-time.component-BMHLITah.js → pearl-chain-time.component-C-CuC1ke.js} +11 -13
  65. package/development/pearl-chain-time.js +1 -1
  66. package/development/pearl-chain-time.pure.js +1 -1
  67. package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts +1 -1
  68. package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts.map +1 -1
  69. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  70. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts +1 -1
  71. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts.map +1 -1
  72. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  73. package/development/{pearl-chain-vertical-item.component-JYDWs8ta.js → pearl-chain-vertical-item.component-CLu9QrqJ.js} +4 -6
  74. package/development/pearl-chain-vertical-item.js +1 -1
  75. package/development/pearl-chain-vertical-item.pure.js +1 -1
  76. package/development/pearl-chain-vertical.component-DbPz5k_R.js +30 -0
  77. package/development/pearl-chain-vertical.js +1 -1
  78. package/development/pearl-chain-vertical.pure.js +1 -1
  79. package/development/{pearl-chain.component-DUAGFkcu.js → pearl-chain.component-10OsJZIX.js} +7 -11
  80. package/development/pearl-chain.js +1 -1
  81. package/development/pearl-chain.pure.js +1 -1
  82. package/development/seat-reservation/common/translations/i18n.d.ts.map +1 -1
  83. package/development/seat-reservation/common/translations/i18n.js +1 -1
  84. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +12 -2
  85. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  86. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +35 -20
  87. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +2 -0
  88. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  89. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  90. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts +1 -1
  91. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts.map +1 -1
  92. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  93. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts +2 -1
  94. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -1
  95. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  96. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +8 -3
  97. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  98. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +2 -2
  99. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts +2 -1
  100. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +1 -1
  101. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  102. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +9 -3
  103. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  104. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -2
  105. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts +1 -1
  106. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -1
  107. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  108. package/development/{seat-reservation-area.component-dG1GXJQP.js → seat-reservation-area.component-DPhQJFid.js} +4 -6
  109. package/development/{seat-reservation-graphic.component-BmhZpVL0.js → seat-reservation-graphic.component-0LYsmerm.js} +9 -9
  110. package/development/seat-reservation-navigation-coach.component-B97jKD7Y.js +438 -0
  111. package/development/{seat-reservation-navigation-services.component-B2uWa_VN.js → seat-reservation-navigation-services.component-Cx0Is97w.js} +11 -11
  112. package/development/{seat-reservation-place-control.component-CdL6yPUZ.js → seat-reservation-place-control.component-DaL1g8WH.js} +24 -17
  113. package/development/{seat-reservation-scoped.component-CJCkuKGz.js → seat-reservation-scoped.component-BHbORVsR.js} +3 -4
  114. package/development/seat-reservation.component-DI9pSlzt.js +473 -0
  115. package/development/seat-reservation.js +10 -11
  116. package/development/seat-reservation.pure.d.ts +0 -1
  117. package/development/seat-reservation.pure.d.ts.map +1 -1
  118. package/development/seat-reservation.pure.js +9 -10
  119. package/development/timetable-duration/timetable-duration.component.d.ts +1 -1
  120. package/development/timetable-duration/timetable-duration.component.d.ts.map +1 -1
  121. package/development/timetable-duration/timetable-duration.component.js +1 -1
  122. package/development/timetable-duration.component-Chk5D4Is.js +96 -0
  123. package/development/timetable-duration.js +1 -1
  124. package/development/timetable-duration.pure.js +1 -1
  125. package/development/timetable-row/timetable-row.component.d.ts +3 -2
  126. package/development/timetable-row/timetable-row.component.d.ts.map +1 -1
  127. package/development/timetable-row/timetable-row.component.js +1 -1
  128. package/development/timetable-row.component-nzrQzxL6.js +736 -0
  129. package/development/timetable-row.js +1 -1
  130. package/development/timetable-row.pure.js +1 -1
  131. package/journey-summary/journey-summary.component.js +1 -1
  132. package/{journey-summary.component-DyTUTCOU.js → journey-summary.component-DNoO3OCf.js} +42 -41
  133. package/journey-summary.js +1 -1
  134. package/journey-summary.pure.js +1 -1
  135. package/lean-safety-theme.css +13 -0
  136. package/lean-theme.css +13 -0
  137. package/package.json +22 -85
  138. package/pearl-chain/pearl-chain.component.js +1 -1
  139. package/pearl-chain-time/pearl-chain-time.component.js +1 -1
  140. package/{pearl-chain-time.component-DXe2o6S1.js → pearl-chain-time.component-BuvA6IE1.js} +42 -44
  141. package/pearl-chain-time.js +1 -1
  142. package/pearl-chain-time.pure.js +1 -1
  143. package/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  144. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  145. package/{pearl-chain-vertical-item.component-Bby13csG.js → pearl-chain-vertical-item.component-QZ4s8Jbv.js} +33 -35
  146. package/pearl-chain-vertical-item.js +1 -1
  147. package/pearl-chain-vertical-item.pure.js +1 -1
  148. package/pearl-chain-vertical.component-Dc3vaHsQ.js +20 -0
  149. package/pearl-chain-vertical.js +1 -1
  150. package/pearl-chain-vertical.pure.js +1 -1
  151. package/{pearl-chain.component-CPaCcW_1.js → pearl-chain.component-DtGXXkY6.js} +29 -33
  152. package/pearl-chain.js +1 -1
  153. package/pearl-chain.pure.js +1 -1
  154. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +87 -75
  155. package/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  156. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  157. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  158. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +2 -2
  159. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  160. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -2
  161. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  162. package/{seat-reservation-area.component-DZsXvaMQ.js → seat-reservation-area.component-G9lHb7S8.js} +20 -22
  163. package/{seat-reservation-graphic.component-BnJuHVZQ.js → seat-reservation-graphic.component-BXFcQDxY.js} +26 -26
  164. package/seat-reservation-navigation-coach.component-BXy8EkJe.js +338 -0
  165. package/{seat-reservation-navigation-services.component-6ECATtWB.js → seat-reservation-navigation-services.component-49XmV9rv.js} +30 -33
  166. package/{seat-reservation-place-control.component-kx07J_YK.js → seat-reservation-place-control.component-DToIW328.js} +64 -62
  167. package/{seat-reservation-scoped.component-L1wMt65t.js → seat-reservation-scoped.component-D8dAmrP7.js} +6 -7
  168. package/seat-reservation.component--0XnrCkk.js +372 -0
  169. package/seat-reservation.js +10 -11
  170. package/seat-reservation.pure.js +9 -10
  171. package/timetable-duration/timetable-duration.component.js +1 -1
  172. package/timetable-duration.component-iMCvh1zr.js +61 -0
  173. package/timetable-duration.js +1 -1
  174. package/timetable-duration.pure.js +1 -1
  175. package/timetable-row/timetable-row.component.js +1 -1
  176. package/timetable-row.component-mNKmhRmP.js +566 -0
  177. package/timetable-row.js +1 -1
  178. package/timetable-row.pure.js +1 -1
  179. package/autocomplete-grid/autocomplete-grid-button.js +0 -4
  180. package/autocomplete-grid/autocomplete-grid-cell.js +0 -4
  181. package/autocomplete-grid/autocomplete-grid-optgroup.js +0 -4
  182. package/autocomplete-grid/autocomplete-grid-option.js +0 -4
  183. package/autocomplete-grid/autocomplete-grid-row.js +0 -4
  184. package/autocomplete-grid/autocomplete-grid.js +0 -4
  185. package/autocomplete-grid-option.component-qBUSf0mD.js +0 -37
  186. package/core/datetime.js +0 -2
  187. package/core/styles/core.scss +0 -13
  188. package/core/styles/theme.scss +0 -5
  189. package/core/timetable.js +0 -4
  190. package/development/autocomplete-grid/autocomplete-grid-button.d.ts +0 -2
  191. package/development/autocomplete-grid/autocomplete-grid-button.d.ts.map +0 -1
  192. package/development/autocomplete-grid/autocomplete-grid-button.js +0 -10
  193. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts +0 -2
  194. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts.map +0 -1
  195. package/development/autocomplete-grid/autocomplete-grid-cell.js +0 -10
  196. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts +0 -2
  197. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +0 -1
  198. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +0 -10
  199. package/development/autocomplete-grid/autocomplete-grid-option.d.ts +0 -2
  200. package/development/autocomplete-grid/autocomplete-grid-option.d.ts.map +0 -1
  201. package/development/autocomplete-grid/autocomplete-grid-option.js +0 -10
  202. package/development/autocomplete-grid/autocomplete-grid-row.d.ts +0 -2
  203. package/development/autocomplete-grid/autocomplete-grid-row.d.ts.map +0 -1
  204. package/development/autocomplete-grid/autocomplete-grid-row.js +0 -10
  205. package/development/autocomplete-grid/autocomplete-grid.d.ts +0 -2
  206. package/development/autocomplete-grid/autocomplete-grid.d.ts.map +0 -1
  207. package/development/autocomplete-grid/autocomplete-grid.js +0 -10
  208. package/development/autocomplete-grid-cell.component-CTC6s1q3.js +0 -34
  209. package/development/autocomplete-grid-option.component-DqkLWHcg.js +0 -61
  210. package/development/core/datetime.d.ts +0 -3
  211. package/development/core/datetime.d.ts.map +0 -1
  212. package/development/core/datetime.js +0 -2
  213. package/development/core/timetable.d.ts +0 -5
  214. package/development/core/timetable.d.ts.map +0 -1
  215. package/development/core/timetable.js +0 -4
  216. package/development/journey-summary.component-BTaPGCGZ.js +0 -340
  217. package/development/pearl-chain-vertical.component-YYXS_74c.js +0 -31
  218. package/development/seat-reservation/common.d.ts +0 -6
  219. package/development/seat-reservation/common.d.ts.map +0 -1
  220. package/development/seat-reservation/common.js +0 -12
  221. package/development/seat-reservation/seat-reservation-area.d.ts +0 -2
  222. package/development/seat-reservation/seat-reservation-area.d.ts.map +0 -1
  223. package/development/seat-reservation/seat-reservation-area.js +0 -10
  224. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.d.ts +0 -9
  225. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.d.ts.map +0 -1
  226. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +0 -306
  227. package/development/seat-reservation/seat-reservation-graphic.d.ts +0 -2
  228. package/development/seat-reservation/seat-reservation-graphic.d.ts.map +0 -1
  229. package/development/seat-reservation/seat-reservation-graphic.js +0 -10
  230. package/development/seat-reservation/seat-reservation-navigation-coach.d.ts +0 -2
  231. package/development/seat-reservation/seat-reservation-navigation-coach.d.ts.map +0 -1
  232. package/development/seat-reservation/seat-reservation-navigation-coach.js +0 -10
  233. package/development/seat-reservation/seat-reservation-navigation-services.d.ts +0 -2
  234. package/development/seat-reservation/seat-reservation-navigation-services.d.ts.map +0 -1
  235. package/development/seat-reservation/seat-reservation-navigation-services.js +0 -10
  236. package/development/seat-reservation/seat-reservation-place-control.d.ts +0 -2
  237. package/development/seat-reservation/seat-reservation-place-control.d.ts.map +0 -1
  238. package/development/seat-reservation/seat-reservation-place-control.js +0 -10
  239. package/development/seat-reservation/seat-reservation-scoped.d.ts +0 -2
  240. package/development/seat-reservation/seat-reservation-scoped.d.ts.map +0 -1
  241. package/development/seat-reservation/seat-reservation-scoped.js +0 -10
  242. package/development/seat-reservation/seat-reservation.d.ts +0 -3
  243. package/development/seat-reservation/seat-reservation.d.ts.map +0 -1
  244. package/development/seat-reservation/seat-reservation.js +0 -11
  245. package/development/seat-reservation-navigation-coach.component-Be9CBw62.js +0 -428
  246. package/development/seat-reservation.component-B4BxXyLr.js +0 -464
  247. package/development/timetable-duration.component-CXF0oJbO.js +0 -100
  248. package/development/timetable-row.component-BCufuA05.js +0 -729
  249. package/pearl-chain-vertical.component-0EgQ4knk.js +0 -21
  250. package/seat-reservation/common.js +0 -9
  251. package/seat-reservation/seat-reservation-area.js +0 -4
  252. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +0 -291
  253. package/seat-reservation/seat-reservation-graphic.js +0 -4
  254. package/seat-reservation/seat-reservation-navigation-coach.js +0 -4
  255. package/seat-reservation/seat-reservation-navigation-services.js +0 -4
  256. package/seat-reservation/seat-reservation-place-control.js +0 -4
  257. package/seat-reservation/seat-reservation-scoped.js +0 -4
  258. package/seat-reservation/seat-reservation.js +0 -5
  259. package/seat-reservation-navigation-coach.component-DgdpqMzG.js +0 -333
  260. package/seat-reservation.component-B_T6eTf6.js +0 -360
  261. package/timetable-duration.component-Bqo5N_De.js +0 -65
  262. package/timetable-row.component-a5CWXLAQ.js +0 -559
  263. /package/{core.css → lean-off-brand-theme.css} +0 -0
@@ -0,0 +1,372 @@
1
+ import { SeatReservationBaseElement as e } from "./seat-reservation/seat-reservation/seat-reservation-base-element.js";
2
+ import { SbbSecondaryButtonElement as t } from "@sbb-esta/lyne-elements/button.pure.js";
3
+ import { SbbLanguageController as n, listResetStyles as r, screenReaderOnlyStyles as i, scrollbarStyles as a } from "@sbb-esta/lyne-elements/core.js";
4
+ import { html as o, isServer as s, nothing as c, unsafeCSS as l } from "lit";
5
+ import { styleMap as u } from "lit/directives/style-map.js";
6
+ import { classMap as d } from "lit/directives/class-map.js";
7
+ import { getI18nSeatReservation as f } from "./seat-reservation/common/translations.js";
8
+ import { SbbSeatReservationGraphicElement as p } from "./seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js";
9
+ import { SbbPopoverElement as m } from "@sbb-esta/lyne-elements/popover.pure.js";
10
+ import { repeat as h } from "lit/directives/repeat.js";
11
+ import { SbbSeatReservationAreaElement as g } from "./seat-reservation/seat-reservation-area/seat-reservation-area.component.js";
12
+ import { SbbSeatReservationNavigationCoachElement as _ } from "./seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js";
13
+ import { SbbSeatReservationPlaceControlElement as v } from "./seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js";
14
+ import { SbbSeatReservationScopedElement as y } from "./seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js";
15
+ //#region src/elements-experimental/seat-reservation/seat-reservation/seat-reservation.scss?inline
16
+ var b = ":host{--sbb-seat-reservation-grid-size: 16px;--sbb-seat-reservation-height: 0;--sbb-seat-reservation-decks: 1;display:block;height:inherit}:host ::part(coach-floor){fill:var(--sbb-background-color-2)}@media(forced-colors:active){:host ::part(coach-floor){fill:transparent}}: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(coach-floor){rotate:180deg}.sbb-sr-popover{margin-block:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}:host([align-vertical]) .sbb-sr__component{flex-direction:row-reverse;justify-content:flex-end;gap:calc(22 * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:inherit}@media(min-width:37.5rem){:host([align-vertical]) .sbb-sr__component{gap:calc(54 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}}:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation,:host([align-vertical]) .sbb-sr__component ul.sbb-sr-navigation__list-coaches{flex-direction:column}:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation{padding:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) 0}:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation .sbb-sr__navigation-control-button{left:calc(1 * var(--sbb-seat-reservation-one-px-rem, .0625rem));top:0;rotate:90deg}@media(min-width:64rem){:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation .sbb-sr__navigation-control-button{left:calc(-1 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}}:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation ul.sbb-sr-navigation__list-coaches{max-width:initial;padding:calc(5 * var(--sbb-seat-reservation-one-px-rem, .0625rem));overflow:hidden scroll}:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation ul.sbb-sr-navigation__list-coaches li{display:flex}:host([align-vertical]) .sbb-sr__wrapper-coach-decks{flex-direction:column}:host([align-vertical]) .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels{flex-direction:column-reverse;width:calc((var(--sbb-seat-reservation-height) + 24) * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:initial}:host([align-vertical]) .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels b{inline-size:calc(50% - 16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));block-size:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-bottom:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));rotate:initial;writing-mode:initial}:host([align-vertical]) .sbb-sr__wrapper-scrollarea{width:calc((var(--sbb-seat-reservation-height) + 24) * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:100%;overflow:hidden scroll}:host([align-vertical]) .sbb-sr__wrapper-scrollarea .sbb-sr__parent{rotate:90deg}:host([align-vertical]) .sbb-sr-travel-direction-wrapper{width:calc(var(--sbb-seat-reservation-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-block-start:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation{gap:calc(3 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation .sbb-sr__navigation-control-button{position:relative;top:calc(2 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}@media(min-width:64rem){.sbb-sr-navigation .sbb-sr__navigation-control-button{top:0}}.sbb-sr__component{display:flex;flex-direction:column;gap:calc(64 * var(--sbb-seat-reservation-one-px-rem, .0625rem) - 16px)}.sbb-sr-travel-direction-wrapper{display:flex;justify-content:center;align-items:center;column-gap:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-block:calc(8 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem));font-size:var(--sbb-text-font-size-s)}.sbb-sr-travel-direction-wrapper .sbb-sr__travel-direction--arrow{display:flex;align-items:center}.sbb-sr-navigation-wrapper{display:flex}.sbb-sr-navigation{display:flex;justify-content:center;width:100%;padding-inline:16px}.sbb-sr-navigation__list-coaches{display:flex;flex-wrap:nowrap;gap:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem));padding:calc(6 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) calc(5 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) 0;max-width:856px;--sbb-scrollbar-color: transparent;overflow:scroll hidden;position:relative}.sbb-sr__wrapper-coach-decks{display:flex;overflow:hidden;height:inherit}.sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels{display:flex;justify-content:space-between;height:calc(var(--sbb-seat-reservation-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem));writing-mode:vertical-lr}.sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels b{height:calc(50% - 16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));width:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-block-end:16px;rotate:180deg;text-align:center;line-height:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__wrapper-scrollarea{overflow:scroll hidden;padding-block:calc(8 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__wrapper-scrollarea .sbb-sr__parent{display:flex;flex-direction:column;position:relative}.sbb-sr__list-decks{display:flex;flex-direction:column}.sbb-sr__list-decks--gap{gap:calc(48 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__list-item-deck{position:relative}.sbb-sr__list-coaches{display:flex;gap:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__list-decks:has(.sbb-sr-coach-has-overhanging-elements) .sbb-sr__list-coaches{gap:calc(8 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__item-coach{position:relative}.sbb-sr-coach-wrapper__table{outline:0}", x = class extends e {
17
+ constructor() {
18
+ super(...arguments), this._language = new n(this);
19
+ }
20
+ static {
21
+ this.elementName = "sbb-seat-reservation";
22
+ }
23
+ static {
24
+ this.elementDependencies = [
25
+ t,
26
+ m,
27
+ g,
28
+ p,
29
+ v,
30
+ _,
31
+ y
32
+ ];
33
+ }
34
+ static {
35
+ this.styles = [
36
+ r,
37
+ a,
38
+ i,
39
+ l(b)
40
+ ];
41
+ }
42
+ willUpdate(e) {
43
+ super.willUpdate(e), e.has("hasNavigation") && (this.hasNavigation ? this.shadowRoot?.querySelectorAll("table").forEach((e) => e.removeAttribute("tabindex")) : this.shadowRoot?.querySelectorAll("table").forEach((e) => e.setAttribute("tabindex", "0")));
44
+ }
45
+ firstUpdated(e) {
46
+ super.firstUpdated(e), this.updateComplete.then(() => {
47
+ this.initNavigationSelectionByScrollEvent();
48
+ });
49
+ }
50
+ render() {
51
+ return this._initVehicleSeatReservationConstruction(), this._coachesHtmlTemplate || null;
52
+ }
53
+ _initVehicleSeatReservationConstruction() {
54
+ this._coachesHtmlTemplate = o`
55
+ ${this._renderTravelDirection()}
56
+ <div class="sbb-sr__component">
57
+ ${this._renderNavigation()}
58
+ <div
59
+ class="sbb-sr__wrapper-coach-decks"
60
+ @keydown=${(e) => this.keyboardSeatmapEventHandling(e)}
61
+ >
62
+ <div class="sbb-sr__wrapper-deck-labels">${this._renderDeckLabels()}</div>
63
+ <div
64
+ @scroll=${() => this.coachAreaScrollend()}
65
+ id="sbb-sr__wrapper-scrollarea"
66
+ class="sbb-sr__wrapper-scrollarea sbb-scrollbar"
67
+ tabindex="-1"
68
+ >
69
+ <div id="sbb-sr__parent-area" class="sbb-sr__parent">
70
+ <ul
71
+ class="${d({
72
+ "sbb-sr__list-decks": !0,
73
+ "sbb-sr__list-decks--gap": this.hasMultipleDecks
74
+ })}"
75
+ >
76
+ ${this.seatReservations?.map((e, t) => o`<li class="sbb-sr__list-item-deck">
77
+ <ul class="sbb-sr__list-coaches" role="presentation">
78
+ ${this._renderCoaches(e, t)}
79
+ </ul>
80
+ </li>`)}
81
+ </ul>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ `;
87
+ }
88
+ _renderDeckLabels() {
89
+ return this.hasMultipleDecks ? this.seatReservations.map((e) => o`<b aria-hidden="true">${f(e.deckCoachLevel, this._language.current)}</b>`) : null;
90
+ }
91
+ _renderNavigationControlButton(e) {
92
+ if (!this.hasNavigation || !this.seatReservations) return null;
93
+ let t = e == "DIRECTION_RIGHT" ? "sbb-sr-navigation__wrapper-button-direction--right" : "sbb-sr-navigation__wrapper-button-direction--left", n = e == "DIRECTION_RIGHT" ? "chevron-small-right-small" : "chevron-small-left-small", r = f(e == "DIRECTION_RIGHT" ? "SEAT_RESERVATION_END" : "SEAT_RESERVATION_BEGIN", this._language.current), i = !0;
94
+ return (e == "DIRECTION_LEFT" && this.selectedCoachIndex > 0 || e == "DIRECTION_RIGHT" && this.selectedCoachIndex < this.coachItemDetailsElements.length - 1) && (i = !1), o`<div class="sbb-sr-navigation__wrapper-button-direction">
95
+ <sbb-secondary-button
96
+ @click="${() => this.navigateByDirectionBtn(e)}"
97
+ @focus="${() => this.onFocusNavDirectionButton()}"
98
+ id="${t}"
99
+ class="sbb-sr__navigation-control-button"
100
+ size="m"
101
+ icon-name="${n}"
102
+ type="button"
103
+ aria-label="${r}"
104
+ role="button"
105
+ .disabledInteractive="${i || c}"
106
+ .disabled="${i || c}"
107
+ ></sbb-secondary-button>
108
+ </div>`;
109
+ }
110
+ _renderTravelDirection() {
111
+ if (!this.travelDirection || this.travelDirection === "NONE") return null;
112
+ let e = f("SEAT_RESERVATION_TRAVEL_DIRECTION", this._language.current);
113
+ return o`<div class="sbb-sr-travel-direction-wrapper">
114
+ <div class="sbb-sr__travel-direction--arrow">
115
+ <sbb-icon slot="icon" name="${`arrow-${this.alignVertical ? this.travelDirection === "RIGHT" ? "down" : "up" : this.travelDirection === "RIGHT" ? "right" : "left"}-small`}"></sbb-icon>
116
+ </div>
117
+ <div class="sbb-sr__travel-direction--label">${e}</div>
118
+ </div>`;
119
+ }
120
+ _renderNavigation() {
121
+ return s || !this.hasNavigation || !this.seatReservations ? null : o`<div class="sbb-sr-navigation-wrapper">
122
+ <nav id="sbb-sr-navigation" class="sbb-sr-navigation">
123
+ ${this._renderNavigationControlButton("DIRECTION_LEFT")}
124
+ <ul
125
+ id="sbb-sr__navigation-list-coaches"
126
+ class="sbb-sr-navigation__list-coaches sbb-scrollbar"
127
+ aria-label="${f("SEAT_RESERVATION_NAVIGATION", this._language.current)}"
128
+ >
129
+ ${this.coachItemDetailsElements.map((e, t) => o`<li>
130
+ <sbb-seat-reservation-navigation-coach
131
+ @selectcoach=${(e) => this._onSelectNavCoach(e)}
132
+ @focuscoach=${() => this._onFocusNavCoach()}
133
+ @keyup=${(e) => this.onKeyNavigationNavCoachButton(e, t)}
134
+ index="${t}"
135
+ .selected=${this.selectedCoachIndex === t}
136
+ .focused=${this.focusedCoachIndex === t}
137
+ .hovered=${this.hoveredCoachIndex === t}
138
+ .nativeFocusActive=${this.hasSeatReservationNativeFocus}
139
+ .coachItemDetails="${e}"
140
+ ?vertical="${this.alignVertical}"
141
+ ?showTitleInfo="${this.showTitleInfo}"
142
+ >
143
+ </sbb-seat-reservation-navigation-coach>
144
+ </li>`)}
145
+ </ul>
146
+ ${this._renderNavigationControlButton("DIRECTION_RIGHT")}
147
+ </nav>
148
+ </div>`;
149
+ }
150
+ _renderCoaches(e, t) {
151
+ let n = JSON.parse(JSON.stringify(e?.coachItems));
152
+ return !n || s ? null : n.map((n, r) => o`
153
+ <li class="sbb-sr__item-coach">
154
+ ${this._renderCoachElement(n, r, t, e.deckCoachIndex)}
155
+ </li>
156
+ `);
157
+ }
158
+ _renderCoachElement(e, t, n, r) {
159
+ let i = this.seatReservationStructure.decks[n].deckCoaches[t], a = this._getDescriptionTableCoach(e);
160
+ return o`<sbb-seat-reservation-scoped
161
+ style=${u({
162
+ "--sbb-seat-reservation-scoped-width": i.width,
163
+ "--sbb-seat-reservation-scoped-height": i.height
164
+ })}
165
+ >
166
+ ${this._getRenderedCoachBorders(e, n, t)}
167
+ ${this._getRenderedCoachElements(n, t)}
168
+ ${this._getRenderedAreaElements(n, t)}
169
+ ${this._getRenderedServiceElements(n, t)}
170
+
171
+ <table
172
+ @focus=${() => this.onFocusTableCoachAndPreselectPlace(t)}
173
+ id="sbb-sr-coach-${t}"
174
+ class="sbb-sr-coach-wrapper__table"
175
+ aria-describedby="sbb-sr-coach-caption-${t}"
176
+ tabindex="-1"
177
+ >
178
+ <caption id="sbb-sr-coach-caption-${t}" tabindex="-1">
179
+ <span class="sbb-screen-reader-only">${a}</span>
180
+ </caption>
181
+ ${this._getRenderedRowPlaces(e, t, n, r)}
182
+ </table>
183
+ </sbb-seat-reservation-scoped>`;
184
+ }
185
+ _getRenderedCoachBorders(e, t, n) {
186
+ if (!e.graphicElements) return null;
187
+ let r = this.seatReservationStructure.decks[t].deckCoaches[n], i = r.borderMiddleElement, a = r.hasOverhangingElements;
188
+ return o`
189
+ <sbb-seat-reservation-graphic
190
+ class="${d({ "sbb-sr-coach-has-overhanging-elements": a || !1 })}"
191
+ style=${u({
192
+ "--sbb-seat-reservation-graphic-width": i.dimension.w,
193
+ "--sbb-seat-reservation-graphic-height": i.dimension.h,
194
+ "--sbb-seat-reservation-graphic-top": i.position.y,
195
+ "--sbb-seat-reservation-graphic-left": i.position.x,
196
+ "--sbb-seat-reservation-graphic-position": "absolute"
197
+ })}
198
+ name="COACH_BORDER_MIDDLE"
199
+ ?stretch=${!0}
200
+ role="presentation"
201
+ ></sbb-seat-reservation-graphic>
202
+ `;
203
+ }
204
+ _getRenderedRowPlaces(e, t, n, r) {
205
+ if (!e.places) return null;
206
+ let i = {};
207
+ for (let t of e.places) i[t.position.y] ? i[t.position.y].push(t) : i[t.position.y] = [t];
208
+ return Object.values(i).map((e, i) => o`
209
+ <tr id="row-${t}-${e[0].position.y}" data-row-index=${i}>
210
+ ${this._getRenderedColumnPlaces(e, t, n, r)}
211
+ </tr>
212
+ `).flatMap((e) => e);
213
+ }
214
+ _getRenderedColumnPlaces(e, t, n, r) {
215
+ e.sort((e, t) => Number(e.position.x) - Number(t.position.x));
216
+ let i = t + "-" + r;
217
+ return o`${h(e, (e) => i + "-" + e.number, (e, i) => {
218
+ let a = this.getCalculatedDimension(e.dimension), s = this.getCalculatedPosition(e.position), c = e.rotation || 0, l = this.alignVertical ? -90 : 0, d = this.getPlaceElementId(n, t, e.number);
219
+ return o`
220
+ <td
221
+ id="cell-${n}-${t}-${e.position.y}-${i}"
222
+ class="graphical-element"
223
+ >
224
+ <sbb-seat-reservation-place-control
225
+ style=${u({
226
+ "--sbb-seat-reservation-place-control-text-scale-value": Math.min(a.w, a.h),
227
+ "--sbb-seat-reservation-place-control-width": a.w,
228
+ "--sbb-seat-reservation-place-control-height": a.h,
229
+ "--sbb-seat-reservation-place-control-top": s.y,
230
+ "--sbb-seat-reservation-place-control-left": s.x,
231
+ "--sbb-seat-reservation-place-control-rotation": c,
232
+ "--sbb-seat-reservation-place-control-text-rotation": l
233
+ })}
234
+ @selectplace=${(e) => this._onSelectPlace(e)}
235
+ exportparts="sbb-sr-place-part"
236
+ id=${d}
237
+ class="seat-reservation-place-control"
238
+ text=${e.number}
239
+ type=${e.type}
240
+ state=${e.state}
241
+ travel-direction=${this.travelDirection}
242
+ coach-index=${t}
243
+ deck-index=${r}
244
+ data-deck-index=${n}
245
+ .propertyIds=${e.propertyIds}
246
+ .preventClick=${this.preventPlaceClick}
247
+ ?showTitleInfo="${this.showTitleInfo}"
248
+ ></sbb-seat-reservation-place-control>
249
+ </td>
250
+ `;
251
+ })}`;
252
+ }
253
+ _getRenderedCoachElements(e, t) {
254
+ return this.seatReservationStructure.decks[e].deckCoaches[t].otherElements.map((e) => o` <sbb-seat-reservation-graphic
255
+ style=${u({
256
+ "--sbb-seat-reservation-graphic-width": e.dimension.w,
257
+ "--sbb-seat-reservation-graphic-height": e.dimension.h,
258
+ "--sbb-seat-reservation-graphic-top": e.position.y,
259
+ "--sbb-seat-reservation-graphic-left": e.position.x,
260
+ "--sbb-seat-reservation-graphic-position": "absolute",
261
+ "--sbb-seat-reservation-graphic-rotation": e.rotation
262
+ })}
263
+ name=${e.icon ?? c}
264
+ aria-hidden="true"
265
+ ?stretch=${!0}
266
+ ></sbb-seat-reservation-graphic>`);
267
+ }
268
+ _getRenderedAreaElements(e, t) {
269
+ return this.seatReservationStructure.decks[e].deckCoaches[t].areaElements.map((n) => {
270
+ let r = `popover-trigger-${e}-${t}-${n.position.x}-${n.position.y}`, i = n.icon?.indexOf("TABLE") === -1, a = n.icon && i ? n.icon : null, s = n.icon ? f(n.icon, this._language.current) : c;
271
+ return o`
272
+ <sbb-seat-reservation-area
273
+ id="${r}"
274
+ class="${d({ "sbb-seat-reservation-area--cursor-pointer": a !== null })}"
275
+ style=${u({
276
+ "--sbb-seat-reservation-area-width": n.dimension.w,
277
+ "--sbb-seat-reservation-area-height": n.dimension.h,
278
+ "--sbb-seat-reservation-area-top": n.position.y,
279
+ "--sbb-seat-reservation-area-left": n.position.x,
280
+ "--sbb-seat-reservation-area-z-index": n.position.z
281
+ })}
282
+ mounting=${n.mounting ?? c}
283
+ background="dark"
284
+ aria-hidden="true"
285
+ >
286
+ ${a ? o`
287
+ <sbb-seat-reservation-graphic
288
+ style=${u({
289
+ "--sbb-seat-reservation-graphic-max-width": this.globalAreaIconDim.w,
290
+ "--sbb-seat-reservation-graphic-max-height": this.globalAreaIconDim.h,
291
+ "--sbb-seat-reservation-graphic-width": n.dimension.w,
292
+ "--sbb-seat-reservation-graphic-height": n.dimension.h,
293
+ "--sbb-seat-reservation-graphic-rotation": n.rotation,
294
+ "--sbb-seat-reservation-graphic-padding-percent": a === "ENTRY_EXIT" ? 1 : this.globalAreaIconPadding
295
+ })}
296
+ name=${a}
297
+ role="img"
298
+ aria-hidden="true"
299
+ class="sbb-sr-graphic__dimension--square-dim"
300
+ ></sbb-seat-reservation-graphic>
301
+ ` : c}
302
+ </sbb-seat-reservation-area>
303
+ ${a ? this._popover(r, s) : c}
304
+ `;
305
+ });
306
+ }
307
+ _getRenderedServiceElements(e, t) {
308
+ return this.seatReservationStructure.decks[e].deckCoaches[t].serviceElements.map((n) => {
309
+ let r = `popover-trigger-${e}-${t}-${n.position.x}-${n.position.y}`, i = n.icon ? f(n.icon, this._language.current) : null;
310
+ return o`
311
+ <sbb-seat-reservation-graphic
312
+ id="${r}"
313
+ style=${u({
314
+ "--sbb-seat-reservation-graphic-width": n.dimension.w,
315
+ "--sbb-seat-reservation-graphic-height": n.dimension.h,
316
+ "--sbb-seat-reservation-graphic-top": n.position.y,
317
+ "--sbb-seat-reservation-graphic-left": n.position.x,
318
+ "--sbb-seat-reservation-graphic-position": "absolute",
319
+ "--sbb-seat-reservation-graphic-rotation": n.rotation
320
+ })}
321
+ class="sbb-seat-reservation-graphic--cursor-pointer"
322
+ name=${n.icon ?? c}
323
+ role="img"
324
+ aria-hidden="true"
325
+ ></sbb-seat-reservation-graphic>
326
+ ${this._popover(r, i)}
327
+ `;
328
+ });
329
+ }
330
+ _onSelectPlace(e) {
331
+ let t = e.detail;
332
+ this.preventCoachScrollByPlaceClick = !0, this.isCoachGridFocusable = !1, this.focusedCoachIndex = -1, this.hasSeatReservationNativeFocus ||= !0, this.preventPlaceClick || (this.updateSelectedSeatReservationPlaces(t), this.updateCurrentSelectedPlaceInCoach(t));
333
+ }
334
+ _onSelectNavCoach(e) {
335
+ let t = e.coachIndex;
336
+ this.isKeyboardNavigation = !1, this.preventCoachScrollByPlaceClick = !1, this.hasSeatReservationNativeFocus = !0, t !== null && t !== this.currSelectedCoachIndex ? (this.unfocusPlaceElement(), this.scrollToSelectedNavCoach(t)) : t === this.currSelectedCoachIndex && (this.updateCurrentSelectedCoach(), this.preselectPlaceInCoach()), this._closePopover();
337
+ }
338
+ _onFocusNavCoach() {
339
+ this.preventCoachScrollByPlaceClick ? this.focusPlaceElement(this.currSelectedPlace) : this.preselectPlaceInCoach(), this.isAutoScrolling = !1;
340
+ }
341
+ _popover(e, t) {
342
+ return o`
343
+ <sbb-popover trigger="${e}" hover-trigger="">
344
+ <p class="sbb-text-s sbb-sr-popover">${t}</p>
345
+ </sbb-popover>
346
+ `;
347
+ }
348
+ _closePopover() {
349
+ this.shadowRoot?.querySelectorAll("sbb-popover:is(:state(state-opened),[state--state-opened])").forEach((e) => e.close());
350
+ }
351
+ _getDescriptionTableCoach(e) {
352
+ if (e.type === "LOCOMOTIVE_COACH") return f("COACH_LOCOMOTIVE", this._language.current);
353
+ if (!e.places?.length) return f("COACH_BLOCKED_TABLE_CAPTION", this._language.current, [e.id]);
354
+ let t, n = this._getTitleDescriptionListString(e.graphicElements), r = this._getTitleDescriptionListString(e.serviceElements);
355
+ if (t = f("COACH_TABLE_CAPTION", this._language.current, [e.id]), !this.hasNavigation) {
356
+ let n = this.getAvailableFreePlacesNumFromCoach(e.places), r = f("COACH_AVAILABLE_NUMBER_OF_PLACES", this._language.current, [n.seats, n.bicycles]);
357
+ t = t.concat(". ").concat(r).concat(". ");
358
+ }
359
+ return (n || r) && (t += ". " + f("COACH_AVAILABLE_SERVICES", this._language.current) + ": ", t += r + ", " + n + "."), t;
360
+ }
361
+ _getTitleDescriptionListString(e) {
362
+ let t = [];
363
+ return e?.map((e) => {
364
+ let n = e.icon;
365
+ if (!n) return null;
366
+ let r = t.indexOf(n) > -1, i = f(e.icon, this._language.current), a = this.notFixedRotatableAreaIcons.indexOf(n) === -1 && this.notAreaElements.indexOf(n) === -1;
367
+ return r || t.push(e.icon), i && !r && a ? i : null;
368
+ }).filter((e) => !!e).join(", ");
369
+ }
370
+ };
371
+ //#endregion
372
+ export { x as t };
@@ -2,16 +2,15 @@ import { i as e, n as t, r as n, t as r } from "./mapper-Dcou8VEf.js";
2
2
  import { mapIconToSvg as i } from "./seat-reservation/common/mapper/icon-mapper.js";
3
3
  import { t as a } from "./svgs-D4fuYTHV.js";
4
4
  import { getI18nSeatReservation as o } from "./seat-reservation/common/translations/i18n.js";
5
- import { t as s } from "./seat-reservation-area.component-DZsXvaMQ.js";
6
- import { t as c } from "./seat-reservation-graphic.component-BnJuHVZQ.js";
7
- import { assetsTemplate as l, svgImageByOSDMCode as u } from "./seat-reservation/seat-reservation-graphic/seat-reservation-assets.js";
8
- import { t as d } from "./seat-reservation-navigation-coach.component-DgdpqMzG.js";
9
- import { t as f } from "./seat-reservation-navigation-services.component-6ECATtWB.js";
10
- import { t as p } from "./seat-reservation-place-control.component-kx07J_YK.js";
11
- import { t as m } from "./seat-reservation-scoped.component-L1wMt65t.js";
12
- import { SeatReservationBaseElement as h } from "./seat-reservation/seat-reservation/seat-reservation-base-element.js";
13
- import { t as g } from "./seat-reservation.component-B_T6eTf6.js";
5
+ import { t as s } from "./seat-reservation-area.component-G9lHb7S8.js";
6
+ import { t as c } from "./seat-reservation-graphic.component-BXFcQDxY.js";
7
+ import { n as l, t as u } from "./seat-reservation-navigation-coach.component-BXy8EkJe.js";
8
+ import { t as d } from "./seat-reservation-navigation-services.component-49XmV9rv.js";
9
+ import { n as f, t as p } from "./seat-reservation-place-control.component-DToIW328.js";
10
+ import { t as m } from "./seat-reservation-scoped.component-D8dAmrP7.js";
11
+ import { SbbSeatReservationSelectedCoachEvent as h, SbbSeatReservationSelectedPlacesEvent as g, SeatReservationBaseElement as _ } from "./seat-reservation/seat-reservation/seat-reservation-base-element.js";
12
+ import { t as v } from "./seat-reservation.component--0XnrCkk.js";
14
13
  import "./seat-reservation.pure.js";
15
- g.define(), s.define(), c.define(), d.define(), f.define(), p.define(), m.define();
14
+ v.define(), s.define(), c.define(), u.define(), d.define(), f.define(), m.define();
16
15
  //#endregion
17
- export { s as SbbSeatReservationAreaElement, g as SbbSeatReservationElement, c as SbbSeatReservationGraphicElement, d as SbbSeatReservationNavigationCoachElement, f as SbbSeatReservationNavigationServicesElement, p as SbbSeatReservationPlaceControlElement, m as SbbSeatReservationScopedElement, h as SeatReservationBaseElement, l as assetsTemplate, o as getI18nSeatReservation, r as mapCoachInfosToCoachSelection, i as mapIconToSvg, t as mapPlaceAndCoachToSeatReservationPlaceSelection, n as mapPlaceInfosToPlaceSelection, e as mapRawDataToSeatReservation, u as svgImageByOSDMCode, a as svgs };
16
+ export { p as SbbPlaceSelectionEvent, s as SbbSeatReservationAreaElement, v as SbbSeatReservationElement, c as SbbSeatReservationGraphicElement, u as SbbSeatReservationNavigationCoachElement, d as SbbSeatReservationNavigationServicesElement, f as SbbSeatReservationPlaceControlElement, m as SbbSeatReservationScopedElement, h as SbbSeatReservationSelectedCoachEvent, g as SbbSeatReservationSelectedPlacesEvent, l as SbbSelectCoachEvent, _ as SeatReservationBaseElement, o as getI18nSeatReservation, r as mapCoachInfosToCoachSelection, i as mapIconToSvg, t as mapPlaceAndCoachToSeatReservationPlaceSelection, n as mapPlaceInfosToPlaceSelection, e as mapRawDataToSeatReservation, a as svgs };
@@ -3,13 +3,12 @@ import { mapIconToSvg as i } from "./seat-reservation/common/mapper/icon-mapper.
3
3
  import "./seat-reservation/common/mapper.js";
4
4
  import { t as a } from "./svgs-D4fuYTHV.js";
5
5
  import { getI18nSeatReservation as o } from "./seat-reservation/common/translations/i18n.js";
6
- import { t as s } from "./seat-reservation-area.component-DZsXvaMQ.js";
7
- import { t as c } from "./seat-reservation-graphic.component-BnJuHVZQ.js";
8
- import { assetsTemplate as l, svgImageByOSDMCode as u } from "./seat-reservation/seat-reservation-graphic/seat-reservation-assets.js";
9
- import { t as d } from "./seat-reservation-navigation-coach.component-DgdpqMzG.js";
10
- import { t as f } from "./seat-reservation-navigation-services.component-6ECATtWB.js";
11
- import { t as p } from "./seat-reservation-place-control.component-kx07J_YK.js";
12
- import { t as m } from "./seat-reservation-scoped.component-L1wMt65t.js";
13
- import { SeatReservationBaseElement as h } from "./seat-reservation/seat-reservation/seat-reservation-base-element.js";
14
- import { t as g } from "./seat-reservation.component-B_T6eTf6.js";
15
- export { s as SbbSeatReservationAreaElement, g as SbbSeatReservationElement, c as SbbSeatReservationGraphicElement, d as SbbSeatReservationNavigationCoachElement, f as SbbSeatReservationNavigationServicesElement, p as SbbSeatReservationPlaceControlElement, m as SbbSeatReservationScopedElement, h as SeatReservationBaseElement, l as assetsTemplate, o as getI18nSeatReservation, r as mapCoachInfosToCoachSelection, i as mapIconToSvg, t as mapPlaceAndCoachToSeatReservationPlaceSelection, n as mapPlaceInfosToPlaceSelection, e as mapRawDataToSeatReservation, u as svgImageByOSDMCode, a as svgs };
6
+ import { t as s } from "./seat-reservation-area.component-G9lHb7S8.js";
7
+ import { t as c } from "./seat-reservation-graphic.component-BXFcQDxY.js";
8
+ import { n as l, t as u } from "./seat-reservation-navigation-coach.component-BXy8EkJe.js";
9
+ import { t as d } from "./seat-reservation-navigation-services.component-49XmV9rv.js";
10
+ import { n as f, t as p } from "./seat-reservation-place-control.component-DToIW328.js";
11
+ import { t as m } from "./seat-reservation-scoped.component-D8dAmrP7.js";
12
+ import { SbbSeatReservationSelectedCoachEvent as h, SbbSeatReservationSelectedPlacesEvent as g, SeatReservationBaseElement as _ } from "./seat-reservation/seat-reservation/seat-reservation-base-element.js";
13
+ import { t as v } from "./seat-reservation.component--0XnrCkk.js";
14
+ export { p as SbbPlaceSelectionEvent, s as SbbSeatReservationAreaElement, v as SbbSeatReservationElement, c as SbbSeatReservationGraphicElement, u as SbbSeatReservationNavigationCoachElement, d as SbbSeatReservationNavigationServicesElement, f as SbbSeatReservationPlaceControlElement, m as SbbSeatReservationScopedElement, h as SbbSeatReservationSelectedCoachEvent, g as SbbSeatReservationSelectedPlacesEvent, l as SbbSelectCoachEvent, _ as SeatReservationBaseElement, o as getI18nSeatReservation, r as mapCoachInfosToCoachSelection, i as mapIconToSvg, t as mapPlaceAndCoachToSeatReservationPlaceSelection, n as mapPlaceInfosToPlaceSelection, e as mapRawDataToSeatReservation, a as svgs };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../timetable-duration.component-Bqo5N_De.js";
1
+ import { t as e } from "../timetable-duration.component-iMCvh1zr.js";
2
2
  export { e as SbbTimetableDurationElement };
@@ -0,0 +1,61 @@
1
+ import { SbbElement as e, SbbLanguageController as t, forceType as n, i18nDurationHour as r, i18nDurationMinute as i, screenReaderOnlyStyles as a } from "@sbb-esta/lyne-elements/core.js";
2
+ import { html as o, unsafeCSS as s } from "lit";
3
+ import { __esDecorate as c, __runInitializers as l } from "tslib";
4
+ import { property as u } from "lit/decorators.js";
5
+ //#region src/elements-experimental/timetable-duration/timetable-duration.scss?inline
6
+ var d = ":host{display:inline-block}.duration{--sbb-text-font-size: var(--sbb-text-font-size-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);margin:0;white-space:nowrap}", f = (() => {
7
+ let f = e, p, m = [], h = [];
8
+ return class extends f {
9
+ constructor() {
10
+ super(...arguments), this.#e = l(this, m, ""), this._language = (l(this, h), new t(this));
11
+ }
12
+ static {
13
+ let e = typeof Symbol == "function" && Symbol.metadata ? Object.create(f[Symbol.metadata] ?? null) : void 0;
14
+ p = [n(), u()], c(this, null, p, {
15
+ kind: "accessor",
16
+ name: "config",
17
+ static: !1,
18
+ private: !1,
19
+ access: {
20
+ has: (e) => "config" in e,
21
+ get: (e) => e.config,
22
+ set: (e, t) => {
23
+ e.config = t;
24
+ }
25
+ },
26
+ metadata: e
27
+ }, m, h), e && Object.defineProperty(this, Symbol.metadata, {
28
+ enumerable: !0,
29
+ configurable: !0,
30
+ writable: !0,
31
+ value: e
32
+ });
33
+ }
34
+ static {
35
+ this.elementName = "sbb-timetable-duration";
36
+ }
37
+ static {
38
+ this.styles = [a, s(d)];
39
+ }
40
+ #e;
41
+ get config() {
42
+ return this.#e;
43
+ }
44
+ set config(e) {
45
+ this.#e = e;
46
+ }
47
+ render() {
48
+ let e = JSON.parse(this.config), t = r.multiple.short[this._language.current], n = i.multiple.short[this._language.current], a = "", s = "", c = r.multiple.long[this._language.current], l = i.multiple.long[this._language.current];
49
+ return e.hours === 1 && (c = r.single.long[this._language.current]), e.minutes === 1 && (l = i.single.long[this._language.current]), e.hours !== 0 && (a += `${e.hours} ${t}`, s += `${e.hours} ${c}`), a += ` ${e.minutes} ${n}`, s += ` ${e.minutes} ${l}.`, o`
50
+ <p aria-label=${s} class="duration" role="text">
51
+ <span aria-hidden="true" class="duration__text--visual" role="presentation">
52
+ ${a}
53
+ </span>
54
+ <span class="sbb-screen-reader-only">${s}</span>
55
+ </p>
56
+ `;
57
+ }
58
+ };
59
+ })();
60
+ //#endregion
61
+ export { f as t };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./timetable-duration.component-Bqo5N_De.js";
1
+ import { t as e } from "./timetable-duration.component-iMCvh1zr.js";
2
2
  import "./timetable-duration.pure.js";
3
3
  //#region src/elements-experimental/timetable-duration.ts
4
4
  e.define();
@@ -1,2 +1,2 @@
1
- import { t as e } from "./timetable-duration.component-Bqo5N_De.js";
1
+ import { t as e } from "./timetable-duration.component-iMCvh1zr.js";
2
2
  export { e as SbbTimetableDurationElement };
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../timetable-row.component-a5CWXLAQ.js";
1
+ import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../timetable-row.component-mNKmhRmP.js";
2
2
  export { s as SbbTimetableRowElement, r as filterNotices, a as getCus, n as getHimIcon, e as handleNotices, i as renderIconProduct, o as renderStringProduct, t as sortSituation };