@sbb-esta/lyne-elements-experimental-dev 0.0.0 → 4.5.1-dev.1771849274

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 (249) hide show
  1. package/README.md +55 -0
  2. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +86 -0
  3. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +54 -0
  4. package/autocomplete-grid/autocomplete-grid-button.js +4 -0
  5. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +25 -0
  6. package/autocomplete-grid/autocomplete-grid-cell.js +4 -0
  7. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +29 -0
  8. package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -0
  9. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +41 -0
  10. package/autocomplete-grid/autocomplete-grid-option.js +5 -0
  11. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +28 -0
  12. package/autocomplete-grid/autocomplete-grid-row.js +4 -0
  13. package/autocomplete-grid/autocomplete-grid.js +4 -0
  14. package/autocomplete-grid.js +15 -0
  15. package/core/datetime/date-helper.js +191 -0
  16. package/core/datetime.js +5 -0
  17. package/core/timetable/access-leg-helper.js +91 -0
  18. package/core/timetable/timetable-helper.js +12 -0
  19. package/core/timetable/timetable-properties.js +1 -0
  20. package/core/timetable.js +8 -0
  21. package/custom-elements.json +8211 -0
  22. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +39 -0
  23. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -0
  24. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +141 -0
  25. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +31 -0
  26. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -0
  27. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +82 -0
  28. package/development/autocomplete-grid/autocomplete-grid-button.d.ts +5 -0
  29. package/development/autocomplete-grid/autocomplete-grid-button.d.ts.map +1 -0
  30. package/development/autocomplete-grid/autocomplete-grid-button.js +5 -0
  31. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +19 -0
  32. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -0
  33. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +40 -0
  34. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts +5 -0
  35. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts.map +1 -0
  36. package/development/autocomplete-grid/autocomplete-grid-cell.js +5 -0
  37. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts +19 -0
  38. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts.map +1 -0
  39. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +40 -0
  40. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts +5 -0
  41. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +1 -0
  42. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +5 -0
  43. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +26 -0
  44. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -0
  45. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +134 -0
  46. package/development/autocomplete-grid/autocomplete-grid-option.d.ts +5 -0
  47. package/development/autocomplete-grid/autocomplete-grid-option.d.ts.map +1 -0
  48. package/development/autocomplete-grid/autocomplete-grid-option.js +6 -0
  49. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +20 -0
  50. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -0
  51. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +115 -0
  52. package/development/autocomplete-grid/autocomplete-grid-row.d.ts +5 -0
  53. package/development/autocomplete-grid/autocomplete-grid-row.d.ts.map +1 -0
  54. package/development/autocomplete-grid/autocomplete-grid-row.js +5 -0
  55. package/development/autocomplete-grid/autocomplete-grid.d.ts +5 -0
  56. package/development/autocomplete-grid/autocomplete-grid.d.ts.map +1 -0
  57. package/development/autocomplete-grid/autocomplete-grid.js +5 -0
  58. package/development/autocomplete-grid.d.ts +10 -0
  59. package/development/autocomplete-grid.d.ts.map +1 -0
  60. package/development/autocomplete-grid.js +16 -0
  61. package/development/core/datetime/date-helper.d.ts +27 -0
  62. package/development/core/datetime/date-helper.d.ts.map +1 -0
  63. package/development/core/datetime/date-helper.js +285 -0
  64. package/development/core/datetime.d.ts +5 -0
  65. package/development/core/datetime.d.ts.map +1 -0
  66. package/development/core/datetime.js +6 -0
  67. package/development/core/timetable/access-leg-helper.d.ts +26 -0
  68. package/development/core/timetable/access-leg-helper.d.ts.map +1 -0
  69. package/development/core/timetable/access-leg-helper.js +125 -0
  70. package/development/core/timetable/timetable-helper.d.ts +12 -0
  71. package/development/core/timetable/timetable-helper.d.ts.map +1 -0
  72. package/development/core/timetable/timetable-helper.js +20 -0
  73. package/development/core/timetable/timetable-properties.d.ts +308 -0
  74. package/development/core/timetable/timetable-properties.d.ts.map +1 -0
  75. package/development/core/timetable/timetable-properties.js +2 -0
  76. package/development/core/timetable.d.ts +7 -0
  77. package/development/core/timetable.d.ts.map +1 -0
  78. package/development/core/timetable.js +9 -0
  79. package/development/differenceInMinutes-B0dawX-5.js +26 -0
  80. package/development/format-BMkeaqaF.js +1433 -0
  81. package/development/isValid-BYRch7pV.js +53 -0
  82. package/development/journey-summary/journey-summary.component.d.ts +65 -0
  83. package/development/journey-summary/journey-summary.component.d.ts.map +1 -0
  84. package/development/journey-summary/journey-summary.component.js +294 -0
  85. package/development/journey-summary.d.ts +5 -0
  86. package/development/journey-summary.d.ts.map +1 -0
  87. package/development/journey-summary.js +5 -0
  88. package/development/pearl-chain/pearl-chain.component.d.ts +42 -0
  89. package/development/pearl-chain/pearl-chain.component.d.ts.map +1 -0
  90. package/development/pearl-chain/pearl-chain.component.js +639 -0
  91. package/development/pearl-chain-time/pearl-chain-time.component.d.ts +47 -0
  92. package/development/pearl-chain-time/pearl-chain-time.component.d.ts.map +1 -0
  93. package/development/pearl-chain-time/pearl-chain-time.component.js +312 -0
  94. package/development/pearl-chain-time.d.ts +5 -0
  95. package/development/pearl-chain-time.d.ts.map +1 -0
  96. package/development/pearl-chain-time.js +5 -0
  97. package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts +16 -0
  98. package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts.map +1 -0
  99. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +40 -0
  100. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts +34 -0
  101. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts.map +1 -0
  102. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +398 -0
  103. package/development/pearl-chain-vertical-item.d.ts +5 -0
  104. package/development/pearl-chain-vertical-item.d.ts.map +1 -0
  105. package/development/pearl-chain-vertical-item.js +5 -0
  106. package/development/pearl-chain-vertical.d.ts +5 -0
  107. package/development/pearl-chain-vertical.d.ts.map +1 -0
  108. package/development/pearl-chain-vertical.js +5 -0
  109. package/development/pearl-chain.d.ts +5 -0
  110. package/development/pearl-chain.d.ts.map +1 -0
  111. package/development/pearl-chain.js +5 -0
  112. package/development/seat-reservation/common/mapper/icon-mapper.d.ts +106 -0
  113. package/development/seat-reservation/common/mapper/icon-mapper.d.ts.map +1 -0
  114. package/development/seat-reservation/common/mapper/icon-mapper.js +72 -0
  115. package/development/seat-reservation/common/mapper/mapper.d.ts +34 -0
  116. package/development/seat-reservation/common/mapper/mapper.d.ts.map +1 -0
  117. package/development/seat-reservation/common/mapper/mapper.js +129 -0
  118. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts +372 -0
  119. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -0
  120. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.js +31673 -0
  121. package/development/seat-reservation/common/mapper.d.ts +3 -0
  122. package/development/seat-reservation/common/mapper.d.ts.map +1 -0
  123. package/development/seat-reservation/common/mapper.js +10 -0
  124. package/development/seat-reservation/common/svgs.d.ts +24 -0
  125. package/development/seat-reservation/common/svgs.d.ts.map +1 -0
  126. package/development/seat-reservation/common/svgs.js +46 -0
  127. package/development/seat-reservation/common/translations/i18n.d.ts +28 -0
  128. package/development/seat-reservation/common/translations/i18n.d.ts.map +1 -0
  129. package/development/seat-reservation/common/translations/i18n.js +871 -0
  130. package/development/seat-reservation/common/translations.d.ts +2 -0
  131. package/development/seat-reservation/common/translations.d.ts.map +1 -0
  132. package/development/seat-reservation/common/translations.js +5 -0
  133. package/development/seat-reservation/common/types.d.ts +97 -0
  134. package/development/seat-reservation/common/types.d.ts.map +1 -0
  135. package/development/seat-reservation/common/types.js +2 -0
  136. package/development/seat-reservation/common.d.ts +8 -0
  137. package/development/seat-reservation/common.d.ts.map +1 -0
  138. package/development/seat-reservation/common.js +14 -0
  139. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +273 -0
  140. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -0
  141. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +1171 -0
  142. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +75 -0
  143. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -0
  144. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +832 -0
  145. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts +18 -0
  146. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts.map +1 -0
  147. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +112 -0
  148. package/development/seat-reservation/seat-reservation-area.d.ts +5 -0
  149. package/development/seat-reservation/seat-reservation-area.d.ts.map +1 -0
  150. package/development/seat-reservation/seat-reservation-area.js +5 -0
  151. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.d.ts +9 -0
  152. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.d.ts.map +1 -0
  153. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +303 -0
  154. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts +20 -0
  155. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -0
  156. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +167 -0
  157. package/development/seat-reservation/seat-reservation-graphic.d.ts +5 -0
  158. package/development/seat-reservation/seat-reservation-graphic.d.ts.map +1 -0
  159. package/development/seat-reservation/seat-reservation-graphic.js +5 -0
  160. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +65 -0
  161. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -0
  162. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +798 -0
  163. package/development/seat-reservation/seat-reservation-navigation-coach.d.ts +5 -0
  164. package/development/seat-reservation/seat-reservation-navigation-coach.d.ts.map +1 -0
  165. package/development/seat-reservation/seat-reservation-navigation-coach.js +5 -0
  166. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts +21 -0
  167. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +1 -0
  168. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +120 -0
  169. package/development/seat-reservation/seat-reservation-navigation-services.d.ts +5 -0
  170. package/development/seat-reservation/seat-reservation-navigation-services.d.ts.map +1 -0
  171. package/development/seat-reservation/seat-reservation-navigation-services.js +5 -0
  172. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +42 -0
  173. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -0
  174. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +462 -0
  175. package/development/seat-reservation/seat-reservation-place-control.d.ts +5 -0
  176. package/development/seat-reservation/seat-reservation-place-control.d.ts.map +1 -0
  177. package/development/seat-reservation/seat-reservation-place-control.js +5 -0
  178. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts +14 -0
  179. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -0
  180. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +34 -0
  181. package/development/seat-reservation/seat-reservation-scoped.d.ts +5 -0
  182. package/development/seat-reservation/seat-reservation-scoped.d.ts.map +1 -0
  183. package/development/seat-reservation/seat-reservation-scoped.js +5 -0
  184. package/development/seat-reservation/seat-reservation.d.ts +6 -0
  185. package/development/seat-reservation/seat-reservation.d.ts.map +1 -0
  186. package/development/seat-reservation/seat-reservation.js +7 -0
  187. package/development/seat-reservation.d.ts +12 -0
  188. package/development/seat-reservation.d.ts.map +1 -0
  189. package/development/seat-reservation.js +30 -0
  190. package/development/timetable-duration/timetable-duration.component.d.ts +22 -0
  191. package/development/timetable-duration/timetable-duration.component.d.ts.map +1 -0
  192. package/development/timetable-duration/timetable-duration.component.js +114 -0
  193. package/development/timetable-duration.d.ts +5 -0
  194. package/development/timetable-duration.d.ts.map +1 -0
  195. package/development/timetable-duration.js +5 -0
  196. package/development/timetable-row/timetable-row.component.d.ts +87 -0
  197. package/development/timetable-row/timetable-row.component.d.ts.map +1 -0
  198. package/development/timetable-row/timetable-row.component.js +787 -0
  199. package/development/timetable-row.d.ts +5 -0
  200. package/development/timetable-row.d.ts.map +1 -0
  201. package/development/timetable-row.js +12 -0
  202. package/development/toDate-BWb6Z1JD.js +24 -0
  203. package/differenceInMinutes-COvvdYsJ.js +23 -0
  204. package/format-CmKROkbc.js +1186 -0
  205. package/index.d.ts +44 -0
  206. package/index.js +43 -0
  207. package/isValid-m3_OsPaB.js +45 -0
  208. package/journey-summary/journey-summary.component.js +193 -0
  209. package/journey-summary.js +4 -0
  210. package/package.json +161 -1
  211. package/pearl-chain/pearl-chain.component.js +164 -0
  212. package/pearl-chain-time/pearl-chain-time.component.js +156 -0
  213. package/pearl-chain-time.js +4 -0
  214. package/pearl-chain-vertical/pearl-chain-vertical.component.js +24 -0
  215. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +76 -0
  216. package/pearl-chain-vertical-item.js +4 -0
  217. package/pearl-chain-vertical.js +4 -0
  218. package/pearl-chain.js +4 -0
  219. package/seat-reservation/common/mapper/icon-mapper.js +71 -0
  220. package/seat-reservation/common/mapper/mapper.js +89 -0
  221. package/seat-reservation/common/mapper/seat-reservation-sample-data.js +31668 -0
  222. package/seat-reservation/common/mapper.js +9 -0
  223. package/seat-reservation/common/svgs.js +243 -0
  224. package/seat-reservation/common/translations/i18n.js +861 -0
  225. package/seat-reservation/common/translations.js +4 -0
  226. package/seat-reservation/common/types.js +1 -0
  227. package/seat-reservation/common.js +13 -0
  228. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +756 -0
  229. package/seat-reservation/seat-reservation/seat-reservation.component.js +410 -0
  230. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +50 -0
  231. package/seat-reservation/seat-reservation-area.js +4 -0
  232. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +292 -0
  233. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +73 -0
  234. package/seat-reservation/seat-reservation-graphic.js +4 -0
  235. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +277 -0
  236. package/seat-reservation/seat-reservation-navigation-coach.js +4 -0
  237. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +73 -0
  238. package/seat-reservation/seat-reservation-navigation-services.js +4 -0
  239. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +167 -0
  240. package/seat-reservation/seat-reservation-place-control.js +4 -0
  241. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +20 -0
  242. package/seat-reservation/seat-reservation-scoped.js +4 -0
  243. package/seat-reservation/seat-reservation.js +6 -0
  244. package/seat-reservation.js +29 -0
  245. package/timetable-duration/timetable-duration.component.js +56 -0
  246. package/timetable-duration.js +4 -0
  247. package/timetable-row/timetable-row.component.js +426 -0
  248. package/timetable-row.js +11 -0
  249. package/toDate-Bw2KTWeq.js +15 -0
@@ -0,0 +1,277 @@
1
+ var ka = (o) => {
2
+ throw TypeError(o);
3
+ };
4
+ var ya = (o, n, d) => n.has(o) || ka("Cannot " + d);
5
+ var b = (o, n, d) => (ya(o, n, "read from private field"), d ? d.call(o) : n.get(o)), c = (o, n, d) => n.has(o) ? ka("Cannot add the same private member more than once") : n instanceof WeakSet ? n.add(o) : n.set(o, d), t = (o, n, d, g) => (ya(o, n, "write to private field"), g ? g.call(o, d) : n.set(o, d), d);
6
+ import { __runInitializers as s, __esDecorate as l } from "tslib";
7
+ import { SbbLanguageController as Ca } from "@sbb-esta/lyne-elements/core/controllers.js";
8
+ import { forceType as h } from "@sbb-esta/lyne-elements/core/decorators.js";
9
+ import { boxSizingStyles as Sa } from "@sbb-esta/lyne-elements/core/styles.js";
10
+ import { css as Ba, LitElement as za, nothing as T, html as u } from "lit";
11
+ import { customElement as Ea, property as v } from "lit/decorators.js";
12
+ import { classMap as wa } from "lit/directives/class-map.js";
13
+ import { getI18nSeatReservation as _ } from "../common/translations.js";
14
+ import "@sbb-esta/lyne-elements/screen-reader-only.js";
15
+ import "../seat-reservation-navigation-services.js";
16
+ const Ta = Ba`:host{display:inline-block;min-height:calc(44 * var(--sbb-seat-reservation-one-px-rem, .0625rem));--sbb-seat-reservation-navigation-travelclass-spacing: 10;--sbb-seat-reservation-navigation-btn-border-width-default: 1;--sbb-seat-reservation-navigation-btn-border-width: var( --sbb-seat-reservation-navigation-btn-border-width-default );--sbb-seat-reservation-navigation-btn-border-color: var(--sbb-color-granite);--sbb-seat-reservation-navigation-btn-border-color: light-dark( var(--sbb-color-granite), var(--sbb-color-graphite) );--sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-white);--sbb-seat-reservation-navigation-btn-background-color: light-dark( var(--sbb-color-white), var(--sbb-color-black) );--sbb-seat-reservation-navigation-btn-border-width-selected: 2;--sbb-seat-reservation-navigation-btn-background-color-selected: var(--sbb-color-milk);--sbb-seat-reservation-navigation-btn-background-color-selected: light-dark( var(--sbb-color-milk), var(--sbb-color-iron) );--sbb-seat-reservation-navigation-btn-border-color-selected: var(--sbb-color-black);--sbb-seat-reservation-navigation-btn-border-color-selected: light-dark( var(--sbb-color-black), var(--sbb-color-white) );--sbb-seat-reservation-navigation-btn-outline-width-focused: 1;--sbb-seat-reservation-navigation-btn-outline-color-focused: var(--sbb-color-black);--sbb-seat-reservation-navigation-btn-outline-color-focused: light-dark( var(--sbb-color-black), var(--sbb-color-white) );--sbb-seat-reservation-navigation-btn-outline-offset-focused: 4;--sbb-seat-reservation-navigation-btn-background-color-focused: var(--sbb-color-white);--sbb-seat-reservation-navigation-btn-background-color-focused: light-dark( var(--sbb-color-white), var(--sbb-color-black) );--sbb-seat-reservation-navigation-btn-border-width-focused: var( --sbb-seat-reservation-navigation-btn-border-width );--sbb-seat-reservation-navigation-btn-border-color-focused: var(--sbb-color-black);--sbb-seat-reservation-navigation-btn-border-color-focused: light-dark( var(--sbb-color-black), var(--sbb-color-white) );--sbb-seat-reservation-navigation-btn-border-width-hovered: 2;--sbb-seat-reservation-navigation-btn-background-color-hovered: var(--sbb-color-cloud);--sbb-seat-reservation-navigation-btn-background-color-hovered: light-dark( var(--sbb-color-cloud), var(--sbb-color-midnight) );--sbb-seat-reservation-navigation-btn-border-color-hovered: var(--sbb-color-black);--sbb-seat-reservation-navigation-btn-border-color-hovered: light-dark( var(--sbb-color-black), var(--sbb-color-white) );--sbb-seat-reservation-navigation-btn-background-color-disabled: var(--sbb-background-color-2);--sbb-seat-reservation-navigation-btn-border-color-disabled: var(--sbb-color-platinum);--sbb-seat-reservation-navigation-btn-border-color-disabled: light-dark( var(--sbb-color-platinum), var(--sbb-color-iron) )}.sbb-sr-navigation__item-coach{display:flex;flex-direction:column;gap:calc(8 * var(--sbb-seat-reservation-one-px-rem, .0625rem));width:calc(80 * var(--sbb-seat-reservation-one-px-rem, .0625rem));list-style-type:none}.sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation--first-class,.sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation--first-class{width:calc(100% - 18 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation__ctrl-button:not(.sbb-seat-reservation-navigation-driver-area){border-radius:var(--sbb-border-radius-8x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-8x)}.sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation__ctrl-button:not(.sbb-seat-reservation-navigation-driver-area):before{content:"";position:absolute;width:100%;height:100%;border:calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);border-radius:var(--sbb-border-radius-8x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-8x)}.sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation--first-class{margin-inline-start:calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area){border-radius:var(--sbb-border-radius-2x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-2x)}.sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area):before{content:"";position:absolute;width:100%;height:100%;border:calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);border-radius:var(--sbb-border-radius-2x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-2x)}.sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation__additional-information{padding-inline-end:calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation--first-class{margin-inline-end:calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation__ctrl-button{appearance:none;box-sizing:border-box;margin:0;outline:none;border:none;border-radius:0;padding:0;background:none;-webkit-tap-highlight-color:transparent;color:inherit;display:flex;flex-direction:column;justify-content:center;height:calc(36 * var(--sbb-seat-reservation-one-px-rem, .0625rem));position:relative;background-color:var(--sbb-seat-reservation-navigation-btn-background-color);cursor:var(--sbb-cursor-pointer)}.sbb-sr-navigation__ctrl-button.sbb-sr-navigation-driver-area{border-radius:var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x)}.sbb-sr-navigation__ctrl-button.sbb-sr-navigation-driver-area:before{content:"";position:absolute;width:100%;height:100%;border:calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);border-radius:var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x)}.sbb-sr-navigation__ctrl-button{border-radius:var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x)}.sbb-sr-navigation__ctrl-button:before{content:"";position:absolute;width:100%;height:100%;border:calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);border-radius:var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x)}.sbb-sr-navigation__item-coach--focused .sbb-sr-navigation__ctrl-button{--sbb-seat-reservation-navigation-btn-background-color: var( --sbb-seat-reservation-navigation-btn-background-color-focused );--sbb-seat-reservation-navigation-btn-border-color: var( --sbb-seat-reservation-navigation-btn-border-color-focused );--sbb-seat-reservation-navigation-btn-border-width: var( --sbb-seat-reservation-navigation-btn-border-width-focused );outline:calc(var(--sbb-seat-reservation-navigation-btn-outline-width-focused) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) solid var(--sbb-seat-reservation-navigation-btn-outline-color-focused);outline-offset:calc(var(--sbb-seat-reservation-navigation-btn-outline-offset-focused) * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation__item-coach--focused .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-travelclass{background-color:var(--sbb-color-metal);background-color:light-dark(var(--sbb-color-metal),var(--sbb-color-storm))}.sbb-sr-navigation__item-coach--focused .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-number{color:var(--sbb-color-anthracite);color:light-dark(var(--sbb-color-anthracite),var(--sbb-color-graphite))}.sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button{--sbb-seat-reservation-navigation-btn-background-color: var( --sbb-seat-reservation-navigation-btn-background-color-selected );--sbb-seat-reservation-navigation-btn-border-color: var( --sbb-seat-reservation-navigation-btn-border-color-selected );--sbb-seat-reservation-navigation-btn-border-width: var( --sbb-seat-reservation-navigation-btn-border-width-selected )}.sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-travelclass{background-color:var(--sbb-color-black);background-color:light-dark(var(--sbb-color-black),var(--sbb-color-white))}.sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-number{color:var(--sbb-color-black);color:light-dark(var(--sbb-color-black),var(--sbb-color-white))}.sbb-sr-navigation__item-coach--selected.sbb-sr-navigation__item-coach--hovered .sbb-sr-navigation__ctrl-button{--sbb-seat-reservation-navigation-btn-background-color: var( --sbb-seat-reservation-navigation-btn-background-color-selected );--sbb-seat-reservation-navigation-btn-border-color: var( --sbb-seat-reservation-navigation-btn-border-color-selected );--sbb-seat-reservation-navigation-btn-border-width: var( --sbb-seat-reservation-navigation-btn-border-width-selected );background-color:var(--sbb-seat-reservation-navigation-btn-background-color-hovered)!important}.sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled],:disabled){--sbb-seat-reservation-navigation-btn-background-color: var( --sbb-seat-reservation-navigation-btn-background-color-selected );--sbb-seat-reservation-navigation-btn-border-color: var( --sbb-seat-reservation-navigation-btn-border-color-selected );--sbb-seat-reservation-navigation-btn-border-width: var( --sbb-seat-reservation-navigation-btn-border-width-selected )}.sbb-sr-navigation__item-coach--hovered .sbb-sr-navigation__ctrl-button{--sbb-seat-reservation-navigation-btn-background-color: var( --sbb-seat-reservation-navigation-btn-background-color-hovered );--sbb-seat-reservation-navigation-btn-border-color: var( --sbb-seat-reservation-navigation-btn-border-color-hovered );--sbb-seat-reservation-navigation-btn-border-width: var( --sbb-seat-reservation-navigation-btn-border-width-hovered )}.sbb-sr-navigation__ctrl-button:hover:not([disabled],:disabled){--sbb-seat-reservation-navigation-btn-background-color: var( --sbb-seat-reservation-navigation-btn-background-color-hovered );--sbb-seat-reservation-navigation-btn-border-color: var( --sbb-seat-reservation-navigation-btn-border-color-hovered );--sbb-seat-reservation-navigation-btn-border-width: var( --sbb-seat-reservation-navigation-btn-border-width-hovered )}.sbb-sr-navigation__ctrl-button:hover:not([disabled],:disabled) .sbb-sr-navigation__item-coach-travelclass{background-color:var(--sbb-color-smoke)}.sbb-sr-navigation__ctrl-button:hover:not([disabled],:disabled) .sbb-sr-navigation__item-coach-number{color:var(--sbb-color-iron);color:light-dark(var(--sbb-color-iron),var(--sbb-color-silver))}.sbb-sr-navigation__ctrl-button:is([disabled],:disabled){--sbb-seat-reservation-navigation-btn-background-color: var( --sbb-seat-reservation-navigation-btn-background-color-disabled );--sbb-seat-reservation-navigation-btn-border-color: var( --sbb-seat-reservation-navigation-btn-border-color-disabled );cursor:unset;pointer-events:unset}.sbb-sr-navigation__ctrl-button:is([disabled],:disabled) .sbb-sr-navigation__item-coach-travelclass{background-color:var(--sbb-color-graphite);background-color:light-dark(var(--sbb-color-graphite),var(--sbb-color-granite))}.sbb-sr-navigation__ctrl-button:is([disabled],:disabled) .sbb-sr-navigation__item-coach-number{color:var(--sbb-color-graphite);color:light-dark(var(--sbb-color-graphite),var(--sbb-color-granite))}.sbb-sr-navigation__additional-information{display:flex;justify-content:space-between;align-items:center;flex:1;column-gap:calc(8 * var(--sbb-seat-reservation-one-px-rem, .0625rem));padding-inline:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));font-family:var(--sbb-typo-font-family);font-weight:700;color:var(--sbb-color-granite);color:light-dark(var(--sbb-color-granite),var(--sbb-color-granite))}@media(forced-colors:active){.sbb-sr-navigation__additional-information{color:var(--sbb-color-milk)}}.sbb-sr-navigation__item-coach-number{color:var(--sbb-color-granite);color:light-dark(var(--sbb-color-granite),var(--sbb-color-graphite))}@media(forced-colors:active){.sbb-sr-navigation__item-coach-number{color:var(--sbb-color-granite);color:light-dark(var(--sbb-color-granite),var(--sbb-color-graphite))}}@media(forced-colors:active)and (forced-colors:active){.sbb-sr-navigation__item-coach-number{color:inherit}}.sbb-sr-navigation__item-coach-number .sbb-sr-navigation__item-coach-travelclass{background-color:var(--sbb-background-color-2-inverted)}.sbb-sr-navigation--first-class{width:calc(100% - 8 * var(--sbb-seat-reservation-one-px-rem, .0625rem));position:absolute;inset-block-start:calc(3 * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-inline-start:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem));border:calc(1 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) solid transparent;border-radius:var(--sbb-border-radius-1x);margin:auto;background-color:var(--sbb-color-lemon)}.sbb-sr-navigation__item-coach-travelclass{display:flex;align-items:center;justify-content:center;min-height:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem));min-width:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem));border-radius:var(--sbb-border-radius-1x);text-align:center;background-color:var(--sbb-color-granite);background-color:light-dark(var(--sbb-color-granite),var(--sbb-color-graphite));color:var(--sbb-color-white);color:light-dark(var(--sbb-color-white),var(--sbb-color-black))}:host([vertical]) .sbb-sr-navigation__item-coach{flex-direction:row}:host([vertical]) .sbb-sr-navigation__item-coach .sbb-sr-navigation__ctrl-button{flex-direction:row-reverse;height:calc(80 * var(--sbb-seat-reservation-one-px-rem, .0625rem));min-width:calc(36 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}:host([vertical]) .sbb-sr-navigation__item-coach .sbb-sr-navigation__additional-information{flex-direction:column-reverse;padding-block:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));padding-inline-start:unset;padding-inline-end:unset}:host([vertical]) .sbb-sr-navigation__item-coach .sbb-sr-navigation--first-class{height:calc(100% - 8 * var(--sbb-seat-reservation-one-px-rem, .0625rem));width:initial;inset-inline-end:calc(3 * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-block-start:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-inline-start:initial}:host([vertical]) .sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation--first-class,:host([vertical]) .sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation--first-class{height:calc(100% - 18 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}:host([vertical]) .sbb-sr-navigation__item-coach.first-coach:not(.last-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area){border-radius:var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x)}:host([vertical]) .sbb-sr-navigation__item-coach.first-coach:not(.last-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area):before{content:"";position:absolute;width:100%;height:100%;border:calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);border-radius:var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x)}:host([vertical]) .sbb-sr-navigation__item-coach.first-coach:not(.last-coach) .sbb-sr-navigation--first-class{margin-block-start:calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-inline-start:initial}:host([vertical]) .sbb-sr-navigation__item-coach.last-coach:not(.first-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area){border-radius:var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x)}:host([vertical]) .sbb-sr-navigation__item-coach.last-coach:not(.first-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area):before{content:"";position:absolute;width:100%;height:100%;border:calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);border-radius:var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x)}:host([vertical]) .sbb-sr-navigation__item-coach.last-coach:not(.first-coach) .sbb-sr-navigation--first-class{margin-block-end:calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-inline-end:initial}:host([vertical]) .sbb-sr-navigation__item-coach .sbb-sr-navigation-driver-area{height:calc(80 * var(--sbb-seat-reservation-one-px-rem, .0625rem));min-width:calc(36 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}`;
17
+ let Ka = (() => {
18
+ var m, p, f, x, k, y, w, I, A, C, S, B, z, E, i;
19
+ let o = [Ea("sbb-seat-reservation-navigation-coach")], n, d = [], g, $ = za, N, F = [], D = [], O, L = [], P = [], R, V = [], j = [], H, U = [], G = [], K, q = [], M = [], Y, J = [], Q = [], W, X = [], Z = [], aa, ra = [], ea = [], ta, sa = [], ia = [], oa, na = [], ba = [], ca, la = [], va = [], da, ha = [], ga = [], ua, _a = [], ma = [], pa, fa = [], xa = [];
20
+ return i = class extends $ {
21
+ constructor() {
22
+ super(...arguments);
23
+ c(this, m);
24
+ c(this, p);
25
+ c(this, f);
26
+ c(this, x);
27
+ c(this, k);
28
+ c(this, y);
29
+ c(this, w);
30
+ c(this, I);
31
+ c(this, A);
32
+ c(this, C);
33
+ c(this, S);
34
+ c(this, B);
35
+ c(this, z);
36
+ c(this, E);
37
+ t(this, m, s(this, F, "")), t(this, p, (s(this, D), s(this, L, []))), t(this, f, (s(this, P), s(this, V, !1))), t(this, x, (s(this, j), s(this, U, !1))), t(this, k, (s(this, G), s(this, q, !1))), t(this, y, (s(this, M), s(this, J, !0))), t(this, w, (s(this, Q), s(this, X, 0))), t(this, I, (s(this, Z), s(this, ra, { seats: 0, bicycles: 0 }))), t(this, A, (s(this, ea), s(this, sa, ["ANY_CLASS"]))), t(this, C, (s(this, ia), s(this, na, !1))), t(this, S, (s(this, ba), s(this, la, !1))), t(this, B, (s(this, va), s(this, ha, !1))), t(this, z, (s(this, ga), s(this, _a, !1))), t(this, E, (s(this, ma), s(this, fa, !1))), this._language = (s(this, xa), new Ca(this));
38
+ }
39
+ /** Coach ID, which is used to identify the coach in the navigation */
40
+ get coachId() {
41
+ return b(this, m);
42
+ }
43
+ set coachId(r) {
44
+ t(this, m, r);
45
+ }
46
+ /** Coach service property ids, which are used to display the services in the navigation */
47
+ get propertyIds() {
48
+ return b(this, p);
49
+ }
50
+ set propertyIds(r) {
51
+ t(this, p, r);
52
+ }
53
+ /** Select coach property */
54
+ get selected() {
55
+ return b(this, f);
56
+ }
57
+ set selected(r) {
58
+ t(this, f, r);
59
+ }
60
+ /** Focus coach property */
61
+ get focused() {
62
+ return b(this, x);
63
+ }
64
+ set focused(r) {
65
+ t(this, x, r);
66
+ }
67
+ /** Hover coach property */
68
+ get hovered() {
69
+ return b(this, k);
70
+ }
71
+ set hovered(r) {
72
+ t(this, k, r);
73
+ }
74
+ /** Native focus for this navigation coach is also set when the focused property is changed */
75
+ get nativeFocusActive() {
76
+ return b(this, y);
77
+ }
78
+ set nativeFocusActive(r) {
79
+ t(this, y, r);
80
+ }
81
+ get index() {
82
+ return b(this, w);
83
+ }
84
+ set index(r) {
85
+ t(this, w, r);
86
+ }
87
+ /** Representation of places available for selecting, counting seat places and bicycle places separately */
88
+ get freePlacesByType() {
89
+ return b(this, I);
90
+ }
91
+ set freePlacesByType(r) {
92
+ t(this, I, r);
93
+ }
94
+ /** Travel class of the coach */
95
+ get travelClass() {
96
+ return b(this, A);
97
+ }
98
+ set travelClass(r) {
99
+ t(this, A, r);
100
+ }
101
+ /** If the coach is a driver/restricted area */
102
+ get driverArea() {
103
+ return b(this, C);
104
+ }
105
+ set driverArea(r) {
106
+ t(this, C, r);
107
+ }
108
+ /** If the coach is the first in the navigation */
109
+ get first() {
110
+ return b(this, S);
111
+ }
112
+ set first(r) {
113
+ t(this, S, r);
114
+ }
115
+ /** If the coach is the last in the navigation */
116
+ get last() {
117
+ return b(this, B);
118
+ }
119
+ set last(r) {
120
+ t(this, B, r);
121
+ }
122
+ /** Disable the coach navigation */
123
+ get disable() {
124
+ return b(this, z);
125
+ }
126
+ set disable(r) {
127
+ t(this, z, r);
128
+ }
129
+ /** If the coach navigation should be displayed vertically */
130
+ get vertical() {
131
+ return b(this, E);
132
+ }
133
+ set vertical(r) {
134
+ t(this, E, r);
135
+ }
136
+ willUpdate(r) {
137
+ if (super.willUpdate(r), r.has("selected")) {
138
+ const a = this.shadowRoot?.querySelector(".sbb-sr-navigation__ctrl-button");
139
+ this.selected && a && (this.nativeFocusActive && a.focus(), this.dispatchEvent(new Event("focuscoach", { bubbles: !0, composed: !0 })));
140
+ }
141
+ if (r.has("focused") && this.focused) {
142
+ const a = this.shadowRoot?.querySelector(".sbb-sr-navigation__ctrl-button");
143
+ a && this.nativeFocusActive && a.focus();
144
+ }
145
+ }
146
+ /**
147
+ * Render a list of service icons provided by a caller
148
+ *
149
+ * @protected
150
+ */
151
+ render() {
152
+ return u`
153
+ <div
154
+ class="${wa({
155
+ "sbb-sr-navigation__item-coach": !0,
156
+ "last-coach": this.last,
157
+ "first-coach": this.first,
158
+ "sbb-sr-navigation__item-coach--selected": this.selected,
159
+ "sbb-sr-navigation__item-coach--focused": this.focused,
160
+ "sbb-sr-navigation__item-coach--hovered": this.hovered
161
+ })}"
162
+ >
163
+ ${this._getNavigationButton()}
164
+ ${this.propertyIds?.length ? u`<sbb-seat-reservation-navigation-services
165
+ ?vertical="${this.vertical}"
166
+ .propertyIds="${this.propertyIds}"
167
+ ></sbb-seat-reservation-navigation-services>` : T}
168
+ </div>
169
+ `;
170
+ }
171
+ _getNavigationButton() {
172
+ const r = this._getCoachServiceClassNumber(), a = this._getTitleDescriptionNavCoachButton(r), e = this._getAriaDescriptionCoachServices();
173
+ return u` <button
174
+ @click=${() => this._selectNavCoach(this.index)}
175
+ class="${wa({
176
+ "sbb-sr-navigation__ctrl-button": !0,
177
+ "sbb-sr-navigation-driver-area": this.driverArea
178
+ })}"
179
+ ?disabled="${this.disable}"
180
+ title="${a}"
181
+ type="button"
182
+ aria-describedby="nav-coach-service-descriptions-${this.index}"
183
+ >
184
+ ${this._getBtnInformation(r)}
185
+ </button>
186
+ <sbb-screen-reader-only id="nav-coach-service-descriptions-${this.index}"
187
+ >${e}</sbb-screen-reader-only
188
+ >`;
189
+ }
190
+ _getBtnInformation(r) {
191
+ return this.driverArea ? null : u`
192
+ ${r === 1 ? u`<span class="sbb-sr-navigation--first-class"></span>` : T}
193
+ ${this.travelClass?.length > 0 || this.coachId ? u`<div class="sbb-sr-navigation__additional-information">
194
+ ${this.coachId ? u`<div class="sbb-sr-navigation__item-coach-number" aria-hidden="true">
195
+ ${this.coachId}
196
+ </div>` : T}
197
+ <div
198
+ ${r ?? T}
199
+ class="sbb-sr-navigation__item-coach-travelclass"
200
+ aria-hidden="true"
201
+ >
202
+ ${r}
203
+ </div>
204
+ </div>` : T}
205
+ `;
206
+ }
207
+ _getTitleDescriptionNavCoachButton(r) {
208
+ if (this.driverArea)
209
+ return _("NAVIGATE_COACH_BLOCKED", this._language.current, [
210
+ this.coachId
211
+ ]);
212
+ let a = _("NAVIGATE_TO_COACH", this._language.current, [this.coachId]);
213
+ if (r) {
214
+ const Ia = _(r === 1 ? "SERVICE_CLASS_FIRST" : "SERVICE_CLASS_SECOND", this._language.current), Aa = _("NAVIGATE_TO_COACH_SERVICE_CLASS_SUB", this._language.current, [Ia]);
215
+ a = a.concat(Aa);
216
+ }
217
+ const e = _("COACH_AVAILABLE_NUMBER_OF_PLACES", this._language.current, [this.freePlacesByType.seats, this.freePlacesByType.bicycles]);
218
+ return a = a.concat(". ").concat(e), a;
219
+ }
220
+ _getAriaDescriptionCoachServices() {
221
+ let r = null;
222
+ return this.propertyIds.length && (r = _("COACH_AVAILABLE_SERVICES", this._language.current) + ": ", r += this.propertyIds.map((a) => _(a, this._language.current)).join()), r;
223
+ }
224
+ /**
225
+ * emits the index of the coach array for the main navigation.
226
+ * @param coachIndex
227
+ * @private
228
+ */
229
+ _selectNavCoach(r) {
230
+ this.dispatchEvent(new CustomEvent("selectcoach", {
231
+ bubbles: !0,
232
+ composed: !0,
233
+ detail: r
234
+ }));
235
+ }
236
+ _getCoachServiceClassNumber() {
237
+ return this.travelClass?.includes("FIRST") ? 1 : this.travelClass?.includes("SECOND") ? 2 : null;
238
+ }
239
+ }, m = new WeakMap(), p = new WeakMap(), f = new WeakMap(), x = new WeakMap(), k = new WeakMap(), y = new WeakMap(), w = new WeakMap(), I = new WeakMap(), A = new WeakMap(), C = new WeakMap(), S = new WeakMap(), B = new WeakMap(), z = new WeakMap(), E = new WeakMap(), g = i, (() => {
240
+ const r = typeof Symbol == "function" && Symbol.metadata ? Object.create($[Symbol.metadata] ?? null) : void 0;
241
+ N = [h(), v({ attribute: "coach-id" })], O = [v({ attribute: "property-ids", type: Array })], R = [h(), v({ type: Boolean })], H = [h(), v({ type: Boolean })], K = [h(), v({ type: Boolean })], Y = [h(), v({ type: Boolean })], W = [h(), v({ type: Number })], aa = [v({ attribute: "free-places-by-type", type: Object })], ta = [v({ attribute: "travel-class", type: Array })], oa = [h(), v({ attribute: "driver-area", type: Boolean })], ca = [h(), v({ type: Boolean })], da = [h(), v({ type: Boolean })], ua = [h(), v({ attribute: "disable", type: Boolean })], pa = [h(), v({ type: Boolean, reflect: !0, useDefault: !0 })], l(i, null, N, { kind: "accessor", name: "coachId", static: !1, private: !1, access: { has: (a) => "coachId" in a, get: (a) => a.coachId, set: (a, e) => {
242
+ a.coachId = e;
243
+ } }, metadata: r }, F, D), l(i, null, O, { kind: "accessor", name: "propertyIds", static: !1, private: !1, access: { has: (a) => "propertyIds" in a, get: (a) => a.propertyIds, set: (a, e) => {
244
+ a.propertyIds = e;
245
+ } }, metadata: r }, L, P), l(i, null, R, { kind: "accessor", name: "selected", static: !1, private: !1, access: { has: (a) => "selected" in a, get: (a) => a.selected, set: (a, e) => {
246
+ a.selected = e;
247
+ } }, metadata: r }, V, j), l(i, null, H, { kind: "accessor", name: "focused", static: !1, private: !1, access: { has: (a) => "focused" in a, get: (a) => a.focused, set: (a, e) => {
248
+ a.focused = e;
249
+ } }, metadata: r }, U, G), l(i, null, K, { kind: "accessor", name: "hovered", static: !1, private: !1, access: { has: (a) => "hovered" in a, get: (a) => a.hovered, set: (a, e) => {
250
+ a.hovered = e;
251
+ } }, metadata: r }, q, M), l(i, null, Y, { kind: "accessor", name: "nativeFocusActive", static: !1, private: !1, access: { has: (a) => "nativeFocusActive" in a, get: (a) => a.nativeFocusActive, set: (a, e) => {
252
+ a.nativeFocusActive = e;
253
+ } }, metadata: r }, J, Q), l(i, null, W, { kind: "accessor", name: "index", static: !1, private: !1, access: { has: (a) => "index" in a, get: (a) => a.index, set: (a, e) => {
254
+ a.index = e;
255
+ } }, metadata: r }, X, Z), l(i, null, aa, { kind: "accessor", name: "freePlacesByType", static: !1, private: !1, access: { has: (a) => "freePlacesByType" in a, get: (a) => a.freePlacesByType, set: (a, e) => {
256
+ a.freePlacesByType = e;
257
+ } }, metadata: r }, ra, ea), l(i, null, ta, { kind: "accessor", name: "travelClass", static: !1, private: !1, access: { has: (a) => "travelClass" in a, get: (a) => a.travelClass, set: (a, e) => {
258
+ a.travelClass = e;
259
+ } }, metadata: r }, sa, ia), l(i, null, oa, { kind: "accessor", name: "driverArea", static: !1, private: !1, access: { has: (a) => "driverArea" in a, get: (a) => a.driverArea, set: (a, e) => {
260
+ a.driverArea = e;
261
+ } }, metadata: r }, na, ba), l(i, null, ca, { kind: "accessor", name: "first", static: !1, private: !1, access: { has: (a) => "first" in a, get: (a) => a.first, set: (a, e) => {
262
+ a.first = e;
263
+ } }, metadata: r }, la, va), l(i, null, da, { kind: "accessor", name: "last", static: !1, private: !1, access: { has: (a) => "last" in a, get: (a) => a.last, set: (a, e) => {
264
+ a.last = e;
265
+ } }, metadata: r }, ha, ga), l(i, null, ua, { kind: "accessor", name: "disable", static: !1, private: !1, access: { has: (a) => "disable" in a, get: (a) => a.disable, set: (a, e) => {
266
+ a.disable = e;
267
+ } }, metadata: r }, _a, ma), l(i, null, pa, { kind: "accessor", name: "vertical", static: !1, private: !1, access: { has: (a) => "vertical" in a, get: (a) => a.vertical, set: (a, e) => {
268
+ a.vertical = e;
269
+ } }, metadata: r }, fa, xa), l(null, n = { value: g }, o, { kind: "class", name: g.name, metadata: r }, null, d), g = n.value, r && Object.defineProperty(g, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: r });
270
+ })(), i.styles = [Sa, Ta], i.events = {
271
+ selectcoach: "selectcoach",
272
+ focuscoach: "focuscoach"
273
+ }, s(g, d), g;
274
+ })();
275
+ export {
276
+ Ka as SbbSeatReservationNavigationCoachElement
277
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbSeatReservationNavigationCoachElement as o } from "./seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js";
2
+ export {
3
+ o as SbbSeatReservationNavigationCoachElement
4
+ };
@@ -0,0 +1,73 @@
1
+ var E = (e) => {
2
+ throw TypeError(e);
3
+ };
4
+ var x = (e, a, s) => a.has(e) || E("Cannot " + s);
5
+ var b = (e, a, s) => (x(e, a, "read from private field"), s ? s.call(e) : a.get(e)), h = (e, a, s) => a.has(e) ? E("Cannot add the same private member more than once") : a instanceof WeakSet ? a.add(e) : a.set(e, s), p = (e, a, s, i) => (x(e, a, "write to private field"), i ? i.call(e, s) : a.set(e, s), s);
6
+ import { __runInitializers as m, __esDecorate as u } from "tslib";
7
+ import { SbbLanguageController as z } from "@sbb-esta/lyne-elements/core/controllers.js";
8
+ import { forceType as D } from "@sbb-esta/lyne-elements/core/decorators.js";
9
+ import { boxSizingStyles as A } from "@sbb-esta/lyne-elements/core/styles.js";
10
+ import { css as B, LitElement as N, nothing as L, html as C } from "lit";
11
+ import { customElement as $, property as w } from "lit/decorators.js";
12
+ import { getI18nSeatReservation as d } from "../common.js";
13
+ import "@sbb-esta/lyne-elements/screen-reader-only.js";
14
+ import "../seat-reservation-graphic.js";
15
+ const j = B`.sbb-sr-navigation__signs{display:flex;flex-direction:row;justify-content:center;column-gap:var(--sbb-spacing-fixed-2x);overflow:hidden;line-height:normal;color:var(--sbb-color-granite);color:light-dark(var(--sbb-color-granite),var(--sbb-color-graphite))}.sbb-sr-navigation__signs:has(:nth-child(n+3 of.auto-width)):has([name^=SILENCE],[name^=BUSINESS]){column-gap:calc(6 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation__signs:has(:nth-child(n+3 of.auto-width)):has([name^=SILENCE],[name^=BUSINESS]):has([name^=BICYCLE]){column-gap:calc(3 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}:host([vertical]) .sbb-sr-navigation__signs{flex-direction:column;height:100%}`;
16
+ let G = (() => {
17
+ var l, c, n;
18
+ let e = [$("sbb-seat-reservation-navigation-services")], a, s = [], i, g = N, v, _ = [], y = [], f, S = [], I = [];
19
+ return n = class extends g {
20
+ constructor() {
21
+ super(...arguments);
22
+ h(this, l);
23
+ h(this, c);
24
+ p(this, l, m(this, _, [])), p(this, c, (m(this, y), m(this, S, !1))), this._language = (m(this, I), new z(this));
25
+ }
26
+ /** Coach service property ids, which are used to display the services in the navigation */
27
+ get propertyIds() {
28
+ return b(this, l);
29
+ }
30
+ set propertyIds(r) {
31
+ p(this, l, r);
32
+ }
33
+ /** If true, the service icons are displayed vertically */
34
+ get vertical() {
35
+ return b(this, c);
36
+ }
37
+ set vertical(r) {
38
+ p(this, c, r);
39
+ }
40
+ render() {
41
+ const r = this.propertyIds?.length ? this._getServiceLabelDescription() : null;
42
+ return C` <div class="sbb-sr-navigation__signs">
43
+ <sbb-screen-reader-only ${r || L}
44
+ >${r}</sbb-screen-reader-only
45
+ >
46
+ ${this.propertyIds?.map((t) => C`
47
+ <sbb-seat-reservation-graphic
48
+ class="auto-width"
49
+ name=${t ?? L}
50
+ title=${d(t, this._language.current)}
51
+ aria-hidden="true"
52
+ ></sbb-seat-reservation-graphic>
53
+ `)}
54
+ </div>`;
55
+ }
56
+ //Generate the translated service label from the available properties
57
+ _getServiceLabelDescription() {
58
+ let r = null;
59
+ const t = this.propertyIds.map((o) => d(o, this._language.current)).filter((o) => !!o).join(", ");
60
+ return t && (r = d("COACH_AVAILABLE_SERVICES", this._language.current).concat(":").concat(t)), r;
61
+ }
62
+ }, l = new WeakMap(), c = new WeakMap(), i = n, (() => {
63
+ const r = typeof Symbol == "function" && Symbol.metadata ? Object.create(g[Symbol.metadata] ?? null) : void 0;
64
+ v = [w({ attribute: "property-ids", type: Array })], f = [D(), w({ type: Boolean, reflect: !0, useDefault: !0 })], u(n, null, v, { kind: "accessor", name: "propertyIds", static: !1, private: !1, access: { has: (t) => "propertyIds" in t, get: (t) => t.propertyIds, set: (t, o) => {
65
+ t.propertyIds = o;
66
+ } }, metadata: r }, _, y), u(n, null, f, { kind: "accessor", name: "vertical", static: !1, private: !1, access: { has: (t) => "vertical" in t, get: (t) => t.vertical, set: (t, o) => {
67
+ t.vertical = o;
68
+ } }, metadata: r }, S, I), u(null, a = { value: i }, e, { kind: "class", name: i.name, metadata: r }, null, s), i = a.value, r && Object.defineProperty(i, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: r });
69
+ })(), n.styles = [A, j], m(i, s), i;
70
+ })();
71
+ export {
72
+ G as SbbSeatReservationNavigationServicesElement
73
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbSeatReservationNavigationServicesElement as a } from "./seat-reservation-navigation-services/seat-reservation-navigation-services.component.js";
2
+ export {
3
+ a as SbbSeatReservationNavigationServicesElement
4
+ };
@@ -0,0 +1,167 @@
1
+ var W = (s) => {
2
+ throw TypeError(s);
3
+ };
4
+ var X = (s, o, b) => o.has(s) || W("Cannot " + b);
5
+ var n = (s, o, b) => (X(s, o, "read from private field"), b ? b.call(s) : o.get(s)), p = (s, o, b) => o.has(s) ? W("Cannot add the same private member more than once") : o instanceof WeakSet ? o.add(s) : o.set(s, b), a = (s, o, b, i) => (X(s, o, "write to private field"), i ? i.call(s, b) : o.set(s, b), b);
6
+ import { __esDecorate as d, __runInitializers as c } from "tslib";
7
+ import { SbbButtonBaseElement as ae } from "@sbb-esta/lyne-elements/core/base-elements.js";
8
+ import { SbbLanguageController as ce } from "@sbb-esta/lyne-elements/core/controllers.js";
9
+ import { forceType as h } from "@sbb-esta/lyne-elements/core/decorators.js";
10
+ import { boxSizingStyles as le } from "@sbb-esta/lyne-elements/core/styles.js";
11
+ import { css as oe, nothing as be, html as ie } from "lit";
12
+ import { customElement as ne, property as v } from "lit/decorators.js";
13
+ import { styleMap as pe } from "lit/directives/style-map.js";
14
+ import { getI18nSeatReservation as E } from "../common.js";
15
+ import "../seat-reservation-graphic.js";
16
+ const de = oe`:host{--sbb-seat-reservation-place-control-text-scale-value: 1;--sbb-seat-reservation-place-control-width: 16;--sbb-seat-reservation-place-control-height: 16;--sbb-seat-reservation-place-control-top: 0;--sbb-seat-reservation-place-control-left: 0;--sbb-seat-reservation-place-control-rotation: 0;--sbb-seat-reservation-place-control-text-rotation: 0;--sbb-seat-reservation-place-control-text-size: calc( var(--sbb-seat-reservation-place-control-text-scale-value, 1) * .5 );--sbb-seat-reservation-place-control-default-text: var(--sbb-color-black);--sbb-seat-reservation-place-control-default-text: light-dark( var(--sbb-color-black), var(--sbb-color-white) );--sbb-seat-reservation-place-control-hover-text: var(--sbb-color-iron);--sbb-seat-reservation-place-control-hover-text: light-dark( var(--sbb-color-iron), var(--sbb-color-silver) );--sbb-seat-reservation-place-control-focus-text: var(--sbb-color-anthracite);--sbb-seat-reservation-place-control-focus-text: light-dark( var(--sbb-color-anthracite), var(--sbb-color-graphite) );--sbb-seat-reservation-place-control-allocated-text: var(--sbb-color-smoke);--sbb-seat-reservation-place-control-allocated-text: light-dark( var(--sbb-color-smoke), var(--sbb-color-metal) );--sbb-seat-reservation-place-control-free-background-default: var(--sbb-background-color-2);--sbb-seat-reservation-place-control-free-background-hover: var(--sbb-color-cloud);--sbb-seat-reservation-place-control-free-background-hover: light-dark( var(--sbb-color-cloud), var(--sbb-color-midnight) );--sbb-seat-reservation-place-control-free-background-focus: var(--sbb-color-silver);--sbb-seat-reservation-place-control-free-background-focus: light-dark( var(--sbb-color-silver), var(--sbb-color-black) );--sbb-seat-reservation-place-control-free-backrest-background-default: var(--sbb-color-black);--sbb-seat-reservation-place-control-free-backrest-background-default: light-dark( var(--sbb-color-black), var(--sbb-color-white) );--sbb-seat-reservation-place-control-free-backrest-background-hover: var(--sbb-color-black);--sbb-seat-reservation-place-control-free-backrest-background-hover: light-dark( var(--sbb-color-black), var(--sbb-color-white) );--sbb-seat-reservation-place-control-free-backrest-background-focus: var(--sbb-color-black);--sbb-seat-reservation-place-control-free-backrest-background-focus: light-dark( var(--sbb-color-black), var(--sbb-color-white) );--sbb-seat-reservation-place-control-selected-background-default: var(--sbb-color-primary);--sbb-seat-reservation-place-control-selected-background-hover: var(--sbb-color-primary125);--sbb-seat-reservation-place-control-selected-background-focus: var(--sbb-color-primary150);--sbb-seat-reservation-place-control-selected-backrest-background-default: var( --sbb-color-primary150 );--sbb-seat-reservation-place-control-selected-backrest-background-hover: #7d000f;--sbb-seat-reservation-place-control-selected-backrest-background-focus: #5a000b;--sbb-seat-reservation-place-control-allocated-background-default: var(--sbb-color-milk);--sbb-seat-reservation-place-control-allocated-background-default: light-dark( var(--sbb-color-milk), var(--sbb-color-midnight) );width:calc(var(--sbb-seat-reservation-place-control-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:calc(var(--sbb-seat-reservation-place-control-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem));position:absolute;inset-block-start:calc(var(--sbb-seat-reservation-place-control-top) * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-inline-start:calc(var(--sbb-seat-reservation-place-control-left) * var(--sbb-seat-reservation-one-px-rem, .0625rem));font-weight:300;cursor:var(--sbb-cursor-pointer)}:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-free-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-free-backrest-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-free-background-hover);color:var(--sbb-seat-reservation-place-control-free-text)}:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-selected-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-selected-backrest-background-hover)}:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-selected-background-hover);color:var(--sbb-seat-reservation-place-control-selected-text)}:host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-free-background-focus)}:host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-free-backrest-background-focus)}:host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-free-background-focus);color:var(--sbb-seat-reservation-place-control-free-text)}:host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-selected-background-focus)}:host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-selected-backrest-background-focus)}:host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-selected-background-focus);color:var(--sbb-seat-reservation-place-control-selected-text)}:host(:dir(rtl)) :not(.sbb-sr-place-ctrl--type-bicycle,.sbb-sr-place-ctrl--orientation-90,.sbb-sr-place-ctrl--orientation-270,.sbb-sr-place-ctrl--state-selected) ::part(svg-place){rotate:180deg}.sbb-sr-place-ctrl{width:max-content;position:relative;font-size:calc(var(--sbb-seat-reservation-place-control-text-size) * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-place-ctrl--state-free ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-free-background-default)}.sbb-sr-place-ctrl--state-free ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-free-backrest-background-default)}.sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-free-background-default);color:var(--sbb-seat-reservation-place-control-free-text)}.sbb-sr-place-ctrl--state-selected ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-selected-background-default)}.sbb-sr-place-ctrl--state-selected ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-selected-backrest-background-default)}.sbb-sr-place-ctrl--state-selected .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-selected-background-default);color:var(--sbb-seat-reservation-place-control-selected-text)}.sbb-sr-place-ctrl--state-allocated ::part(svg-place),.sbb-sr-place-ctrl--state-restricted ::part(svg-place){fill:var(--sbb-seat-reservation-place-control-allocated-background-default)}.sbb-sr-place-ctrl--state-allocated ::part(svg-backrest),.sbb-sr-place-ctrl--state-restricted ::part(svg-backrest){fill:var(--sbb-seat-reservation-place-control-allocated-backrest-background-default)}.sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text,.sbb-sr-place-ctrl--state-restricted .sbb-sr-place-ctrl__text{background-color:var(--sbb-seat-reservation-place-control-allocated-background-default);color:var(--sbb-seat-reservation-place-control-allocated-text)}.sbb-sr-place-ctrl--state-allocated,.sbb-sr-place-ctrl--state-restricted{cursor:not-allowed}.sbb-sr-place-ctrl__text{overflow:hidden;display:none;position:absolute;inset-block-start:50%;translate:-50% -50%;rotate:calc(var(--sbb-seat-reservation-place-control-text-rotation) * 1deg);font-family:var(--sbb-typo-font-family);font-size:.75em;line-height:initial}.sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text,.sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text,.sbb-sr-place-ctrl--state-restricted.sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text{display:block}.sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text{inset-block-start:65%;inset-inline-start:50%;transform-origin:center 16%;font-size:.6875em}.sbb-sr-place-ctrl--orientation-0.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text{inset-inline-start:45%}.sbb-sr-place-ctrl--orientation-90.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text{inset-block-start:46%;inset-inline-start:50%}.sbb-sr-place-ctrl--orientation-180.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text{inset-inline-start:55%}.sbb-sr-place-ctrl--orientation-270.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text{inset-block-start:52%;inset-inline-start:52%}:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-0 .sbb-sr-place-ctrl__text{inset-inline-start:3%}:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-90 .sbb-sr-place-ctrl__text,:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-180 .sbb-sr-place-ctrl__text{inset-inline-start:10%}:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-270 .sbb-sr-place-ctrl__text{inset-inline-start:5%}:host(:dir(rtl)) .sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text{inset-inline-start:-10%}`;
17
+ let Ce = (() => {
18
+ var u, k, f, g, _, x, y, m, l;
19
+ let s = [ne("sbb-seat-reservation-place-control")], o, b = [], i, C = ae, z, S = [], T = [], w, P = [], R = [], L, $ = [], D = [], A, O = [], N = [], F, V = [], j = [], B, U = [], K = [], M, Y = [], q = [], G, H = [], J = [];
20
+ return l = class extends C {
21
+ constructor() {
22
+ super();
23
+ p(this, u);
24
+ p(this, k);
25
+ p(this, f);
26
+ p(this, g);
27
+ p(this, _);
28
+ p(this, x);
29
+ p(this, y);
30
+ p(this, m);
31
+ a(this, u, c(this, S, "SEAT")), a(this, k, (c(this, T), c(this, P, "FREE"))), a(this, f, (c(this, R), c(this, $, []))), a(this, g, (c(this, D), c(this, O, ""))), a(this, _, (c(this, N), c(this, V, null))), a(this, x, (c(this, j), c(this, U, null))), a(this, y, (c(this, K), c(this, Y, !1))), a(this, m, (c(this, q), c(this, H, "unfocus"))), this._language = (c(this, J), new ce(this)), this.addEventListener("click", () => this._selectPlace());
32
+ }
33
+ /** placeType of the place, e.g. 'SEAT', 'BICYCLE' */
34
+ get placeType() {
35
+ return n(this, u);
36
+ }
37
+ set placeType(t) {
38
+ a(this, u, t);
39
+ }
40
+ /** state of the place, e.g. 'FREE', 'SELECTED', 'BLOCKED' */
41
+ get state() {
42
+ return n(this, k);
43
+ }
44
+ set state(t) {
45
+ a(this, k, t);
46
+ }
47
+ /** property ids of the place, to display more info about the place */
48
+ get propertyIds() {
49
+ return n(this, f);
50
+ }
51
+ set propertyIds(t) {
52
+ a(this, f, t);
53
+ }
54
+ /** label of the place, e.g. '1A', '2B' */
55
+ get text() {
56
+ return n(this, g);
57
+ }
58
+ set text(t) {
59
+ a(this, g, t);
60
+ }
61
+ /** Deck Index Prop to identifier the right place to deck */
62
+ get deckIndex() {
63
+ return n(this, _);
64
+ }
65
+ set deckIndex(t) {
66
+ a(this, _, t);
67
+ }
68
+ /** Coach Index Prop to identifier the right place to coach */
69
+ get coachIndex() {
70
+ return n(this, x);
71
+ }
72
+ set coachIndex(t) {
73
+ a(this, x, t);
74
+ }
75
+ /** Prevent click prop prevent any place action */
76
+ get preventClick() {
77
+ return n(this, y);
78
+ }
79
+ set preventClick(t) {
80
+ a(this, y, t);
81
+ }
82
+ /** Set the place focus outline style */
83
+ get keyfocus() {
84
+ return n(this, m);
85
+ }
86
+ set keyfocus(t) {
87
+ a(this, m, t);
88
+ }
89
+ willUpdate(t) {
90
+ super.willUpdate(t), t.has("keyfocus") && this.keyfocus === "focus" && this.focus();
91
+ }
92
+ render() {
93
+ const t = this._getPlaceSvg(this.placeType, this.state), e = this.type.toLowerCase(), r = this.state.toLowerCase(), Q = this.text, Z = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-width"), ee = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-height"), I = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-rotation"), te = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-text-rotation"), re = Number(te) - Number(I), se = this.preventClick ? "sbb-reservation-place-control--disabled" : null;
94
+ return this.title = this._getTitleDescriptionPlace(), this.tabIndex = -1, ie`
95
+ <div
96
+ part="sbb-sr-place-part"
97
+ class="sbb-sr-place-ctrl sbb-sr-place-ctrl--orientation-${I} sbb-sr-place-ctrl--state-${r} sbb-sr-place-ctrl--type-${e} ${se}"
98
+ >
99
+ <sbb-seat-reservation-graphic
100
+ style=${pe({
101
+ "--sbb-seat-reservation-graphic-width": Z,
102
+ "--sbb-seat-reservation-graphic-height": ee,
103
+ "--sbb-seat-reservation-graphic-rotation": I,
104
+ "--sbb-seat-reservation-graphic-inverse-rotation": re
105
+ })}
106
+ .name=${t}
107
+ aria-hidden="true"
108
+ ></sbb-seat-reservation-graphic>
109
+ <span ${this.text ?? be} class="sbb-sr-place-ctrl__text" aria-hidden="true"
110
+ >${Q}</span
111
+ >
112
+ </div>
113
+ `;
114
+ }
115
+ _getPlaceSvg(t, e) {
116
+ return `PLACE_${t}_${e}`;
117
+ }
118
+ _getTitleDescriptionPlace() {
119
+ const t = "PLACE_CONTROL_" + this.type + "_" + this.state;
120
+ let e = E(t, this._language.current, [this.text]);
121
+ return this.propertyIds.length && (e += ". " + E("PLACE_PROPERTY", this._language.current).concat(": "), e += this.propertyIds.map((r) => E("PLACE_PROPERTIES." + r, this._language.current)).filter((r) => r).join(", ")), e;
122
+ }
123
+ /** If the place selectable, we emit the placeSelection object which contains infos to the place state */
124
+ _selectPlace() {
125
+ if ((this.state === "FREE" || this.state === "SELECTED") && !this.preventClick) {
126
+ this.state = this.state === "FREE" ? "SELECTED" : "FREE";
127
+ const e = {
128
+ id: this.id,
129
+ deckIndex: this.deckIndex,
130
+ coachIndex: this.coachIndex,
131
+ number: this.text,
132
+ state: this.state,
133
+ placeType: this.placeType
134
+ };
135
+ this.dispatchEvent(new CustomEvent("selectplace", {
136
+ detail: e,
137
+ bubbles: !0,
138
+ composed: !0
139
+ }));
140
+ }
141
+ }
142
+ }, u = new WeakMap(), k = new WeakMap(), f = new WeakMap(), g = new WeakMap(), _ = new WeakMap(), x = new WeakMap(), y = new WeakMap(), m = new WeakMap(), i = l, (() => {
143
+ const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(C[Symbol.metadata] ?? null) : void 0;
144
+ z = [h(), v({ attribute: "type" })], w = [h(), v({ attribute: "state", reflect: !0 })], L = [v({ attribute: "propertyIds", type: Array })], A = [h(), v({ attribute: "text" })], F = [h(), v({ attribute: "deck-index", type: Number })], B = [h(), v({ attribute: "coach-index", type: Number })], M = [h(), v({ attribute: "prevent-click", type: Boolean })], G = [h(), v({ attribute: "keyfocus" })], d(l, null, z, { kind: "accessor", name: "placeType", static: !1, private: !1, access: { has: (e) => "placeType" in e, get: (e) => e.placeType, set: (e, r) => {
145
+ e.placeType = r;
146
+ } }, metadata: t }, S, T), d(l, null, w, { kind: "accessor", name: "state", static: !1, private: !1, access: { has: (e) => "state" in e, get: (e) => e.state, set: (e, r) => {
147
+ e.state = r;
148
+ } }, metadata: t }, P, R), d(l, null, L, { kind: "accessor", name: "propertyIds", static: !1, private: !1, access: { has: (e) => "propertyIds" in e, get: (e) => e.propertyIds, set: (e, r) => {
149
+ e.propertyIds = r;
150
+ } }, metadata: t }, $, D), d(l, null, A, { kind: "accessor", name: "text", static: !1, private: !1, access: { has: (e) => "text" in e, get: (e) => e.text, set: (e, r) => {
151
+ e.text = r;
152
+ } }, metadata: t }, O, N), d(l, null, F, { kind: "accessor", name: "deckIndex", static: !1, private: !1, access: { has: (e) => "deckIndex" in e, get: (e) => e.deckIndex, set: (e, r) => {
153
+ e.deckIndex = r;
154
+ } }, metadata: t }, V, j), d(l, null, B, { kind: "accessor", name: "coachIndex", static: !1, private: !1, access: { has: (e) => "coachIndex" in e, get: (e) => e.coachIndex, set: (e, r) => {
155
+ e.coachIndex = r;
156
+ } }, metadata: t }, U, K), d(l, null, M, { kind: "accessor", name: "preventClick", static: !1, private: !1, access: { has: (e) => "preventClick" in e, get: (e) => e.preventClick, set: (e, r) => {
157
+ e.preventClick = r;
158
+ } }, metadata: t }, Y, q), d(l, null, G, { kind: "accessor", name: "keyfocus", static: !1, private: !1, access: { has: (e) => "keyfocus" in e, get: (e) => e.keyfocus, set: (e, r) => {
159
+ e.keyfocus = r;
160
+ } }, metadata: t }, H, J), d(null, o = { value: i }, s, { kind: "class", name: i.name, metadata: t }, null, b), i = o.value, t && Object.defineProperty(i, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
161
+ })(), l.styles = [le, de], l.events = {
162
+ selectplace: "selectplace"
163
+ }, c(i, b), i;
164
+ })();
165
+ export {
166
+ Ce as SbbSeatReservationPlaceControlElement
167
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbSeatReservationPlaceControlElement as t } from "./seat-reservation-place-control/seat-reservation-place-control.component.js";
2
+ export {
3
+ t as SbbSeatReservationPlaceControlElement
4
+ };
@@ -0,0 +1,20 @@
1
+ import { __esDecorate as i, __runInitializers as c } from "tslib";
2
+ import { boxSizingStyles as n } from "@sbb-esta/lyne-elements/core/styles.js";
3
+ import { css as m, LitElement as b, html as d } from "lit";
4
+ import { customElement as p } from "lit/decorators.js";
5
+ const u = m`:host{--sbb-seat-reservation-scoped-width: 0;--sbb-seat-reservation-scoped-height: 0;display:block;width:calc(var(--sbb-seat-reservation-scoped-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:calc(var(--sbb-seat-reservation-scoped-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem))}`;
6
+ let _ = (() => {
7
+ var t;
8
+ let l = [p("sbb-seat-reservation-scoped")], a, r = [], e, o = b;
9
+ return t = class extends o {
10
+ render() {
11
+ return d`<slot></slot>`;
12
+ }
13
+ }, e = t, (() => {
14
+ const s = typeof Symbol == "function" && Symbol.metadata ? Object.create(o[Symbol.metadata] ?? null) : void 0;
15
+ i(null, a = { value: e }, l, { kind: "class", name: e.name, metadata: s }, null, r), e = a.value, s && Object.defineProperty(e, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: s });
16
+ })(), t.styles = [n, u], c(e, r), e;
17
+ })();
18
+ export {
19
+ _ as SbbSeatReservationScopedElement
20
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbSeatReservationScopedElement as t } from "./seat-reservation-scoped/seat-reservation-scoped.component.js";
2
+ export {
3
+ t as SbbSeatReservationScopedElement
4
+ };
@@ -0,0 +1,6 @@
1
+ import { SbbSeatReservationElement as o } from "./seat-reservation/seat-reservation.component.js";
2
+ import { SeatReservationBaseElement as a } from "./seat-reservation/seat-reservation-base-element.js";
3
+ export {
4
+ o as SbbSeatReservationElement,
5
+ a as SeatReservationBaseElement
6
+ };