@sbb-esta/lyne-elements-experimental 5.0.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/autocomplete-grid.js +1 -10
  2. package/autocomplete-grid.pure.js +12 -7
  3. package/core.js +31 -5
  4. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +0 -1
  5. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +4 -5
  6. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +1 -2
  7. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts +2 -3
  8. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +1 -2
  9. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +1 -2
  10. package/development/autocomplete-grid.d.ts +0 -1
  11. package/development/autocomplete-grid.js +5 -10
  12. package/development/autocomplete-grid.pure.d.ts +0 -1
  13. package/development/autocomplete-grid.pure.js +328 -7
  14. package/development/core/datetime/date-helper.d.ts +0 -1
  15. package/development/core/timetable/access-leg-helper.d.ts +3 -3
  16. package/development/core/timetable/timetable-helper.d.ts +1 -2
  17. package/development/core/timetable/timetable-properties.d.ts +2 -1
  18. package/development/core.d.ts +0 -1
  19. package/development/core.js +1195 -5
  20. package/development/journey-summary/journey-summary.component.d.ts +3 -4
  21. package/development/journey-summary.d.ts +0 -1
  22. package/development/journey-summary.js +5 -5
  23. package/development/journey-summary.pure.d.ts +0 -1
  24. package/development/journey-summary.pure.js +2605 -2
  25. package/development/pearl-chain/pearl-chain.component.d.ts +2 -3
  26. package/development/pearl-chain-time/pearl-chain-time.component.d.ts +3 -4
  27. package/development/pearl-chain-time.d.ts +0 -1
  28. package/development/pearl-chain-time.js +5 -5
  29. package/development/pearl-chain-time.pure.d.ts +0 -1
  30. package/development/pearl-chain-time.pure.js +2582 -2
  31. package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts +1 -2
  32. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts +1 -2
  33. package/development/pearl-chain-vertical-item.d.ts +0 -1
  34. package/development/pearl-chain-vertical-item.js +5 -5
  35. package/development/pearl-chain-vertical-item.pure.d.ts +0 -1
  36. package/development/pearl-chain-vertical-item.pure.js +132 -2
  37. package/development/pearl-chain-vertical.d.ts +0 -1
  38. package/development/pearl-chain-vertical.js +5 -5
  39. package/development/pearl-chain-vertical.pure.d.ts +0 -1
  40. package/development/pearl-chain-vertical.pure.js +31 -2
  41. package/development/pearl-chain.d.ts +0 -1
  42. package/development/pearl-chain.js +5 -5
  43. package/development/pearl-chain.pure.d.ts +0 -1
  44. package/development/pearl-chain.pure.js +619 -2
  45. package/development/seat-reservation/common/mapper/icon-mapper.d.ts +0 -1
  46. package/development/seat-reservation/common/mapper/mapper.d.ts +1 -2
  47. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.private.d.ts +68 -0
  48. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.private.d.ts +122 -0
  49. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.private.d.ts +68 -0
  50. package/development/seat-reservation/common/mapper.d.ts +0 -1
  51. package/development/seat-reservation/common/svgs.d.ts +20 -21
  52. package/development/seat-reservation/common/translations/i18n.d.ts +0 -1
  53. package/development/seat-reservation/common/translations.d.ts +0 -1
  54. package/development/seat-reservation/common/types.d.ts +0 -1
  55. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +2 -3
  56. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +2 -3
  57. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts +1 -2
  58. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts +2 -3
  59. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +3 -4
  60. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts +2 -3
  61. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +3 -4
  62. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts +1 -2
  63. package/development/seat-reservation.d.ts +0 -1
  64. package/development/seat-reservation.js +5 -16
  65. package/development/seat-reservation.pure.d.ts +0 -1
  66. package/development/seat-reservation.pure.js +16019 -14
  67. package/development/timetable-duration/timetable-duration.component.d.ts +1 -2
  68. package/development/timetable-duration.d.ts +0 -1
  69. package/development/timetable-duration.js +5 -5
  70. package/development/timetable-duration.pure.d.ts +0 -1
  71. package/development/timetable-duration.pure.js +97 -2
  72. package/development/timetable-row/timetable-row.component.d.ts +3 -4
  73. package/development/timetable-row.d.ts +0 -1
  74. package/development/timetable-row.js +5 -5
  75. package/development/timetable-row.pure.d.ts +0 -1
  76. package/development/timetable-row.pure.js +3005 -2
  77. package/journey-summary.js +1 -6
  78. package/journey-summary.pure.js +55 -2
  79. package/package.json +2 -2
  80. package/pearl-chain-time.js +1 -6
  81. package/pearl-chain-time.pure.js +28 -2
  82. package/pearl-chain-vertical-item.js +1 -6
  83. package/pearl-chain-vertical-item.pure.js +26 -2
  84. package/pearl-chain-vertical.js +1 -6
  85. package/pearl-chain-vertical.pure.js +6 -2
  86. package/pearl-chain.js +1 -6
  87. package/pearl-chain.pure.js +27 -2
  88. package/seat-reservation.js +1 -16
  89. package/seat-reservation.pure.js +468 -14
  90. package/timetable-duration.js +1 -6
  91. package/timetable-duration.pure.js +9 -2
  92. package/timetable-row.js +1 -6
  93. package/timetable-row.pure.js +113 -2
  94. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +0 -65
  95. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +0 -44
  96. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +0 -2
  97. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +0 -21
  98. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +0 -2
  99. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +0 -2
  100. package/autocomplete-grid-cell.component-79IjA__I.js +0 -23
  101. package/autocomplete-grid-option.component-DUFBhQwI.js +0 -35
  102. package/autocomplete-grid-row.component-B3U15Rwa.js +0 -26
  103. package/core/datetime/date-helper.js +0 -2
  104. package/core/timetable/access-leg-helper.js +0 -96
  105. package/core/timetable/timetable-helper.js +0 -10
  106. package/core/timetable/timetable-properties.js +0 -0
  107. package/date-helper-DNzMLcyb.js +0 -185
  108. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +0 -1
  109. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +0 -118
  110. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +0 -1
  111. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +0 -69
  112. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +0 -1
  113. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +0 -2
  114. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts.map +0 -1
  115. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +0 -30
  116. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +0 -1
  117. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +0 -2
  118. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +0 -1
  119. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +0 -2
  120. package/development/autocomplete-grid-cell.component-BbdELDro.js +0 -33
  121. package/development/autocomplete-grid-option.component-C7WuqRit.js +0 -57
  122. package/development/autocomplete-grid-row.component-DoXbOsQM.js +0 -38
  123. package/development/autocomplete-grid.d.ts.map +0 -1
  124. package/development/autocomplete-grid.pure.d.ts.map +0 -1
  125. package/development/core/datetime/date-helper.d.ts.map +0 -1
  126. package/development/core/datetime/date-helper.js +0 -2
  127. package/development/core/timetable/access-leg-helper.d.ts.map +0 -1
  128. package/development/core/timetable/access-leg-helper.js +0 -147
  129. package/development/core/timetable/timetable-helper.d.ts.map +0 -1
  130. package/development/core/timetable/timetable-helper.js +0 -19
  131. package/development/core/timetable/timetable-properties.d.ts.map +0 -1
  132. package/development/core/timetable/timetable-properties.js +0 -0
  133. package/development/core.d.ts.map +0 -1
  134. package/development/date-helper-BcTDWVeP.js +0 -539
  135. package/development/differenceInMinutes-CxAbGYQ3.js +0 -110
  136. package/development/format-Cx3zmmaF.js +0 -1848
  137. package/development/isValid-40Olgzo1.js +0 -178
  138. package/development/journey-summary/journey-summary.component.d.ts.map +0 -1
  139. package/development/journey-summary/journey-summary.component.js +0 -2
  140. package/development/journey-summary.component-BsC7wBIn.js +0 -341
  141. package/development/journey-summary.d.ts.map +0 -1
  142. package/development/journey-summary.pure.d.ts.map +0 -1
  143. package/development/mapper-BrZOqqfe.js +0 -11454
  144. package/development/pearl-chain/pearl-chain.component.d.ts.map +0 -1
  145. package/development/pearl-chain/pearl-chain.component.js +0 -2
  146. package/development/pearl-chain-time/pearl-chain-time.component.d.ts.map +0 -1
  147. package/development/pearl-chain-time/pearl-chain-time.component.js +0 -2
  148. package/development/pearl-chain-time.component-C-CuC1ke.js +0 -317
  149. package/development/pearl-chain-time.d.ts.map +0 -1
  150. package/development/pearl-chain-time.pure.d.ts.map +0 -1
  151. package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts.map +0 -1
  152. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +0 -2
  153. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts.map +0 -1
  154. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +0 -2
  155. package/development/pearl-chain-vertical-item.component-CLu9QrqJ.js +0 -131
  156. package/development/pearl-chain-vertical-item.d.ts.map +0 -1
  157. package/development/pearl-chain-vertical-item.pure.d.ts.map +0 -1
  158. package/development/pearl-chain-vertical.component-DbPz5k_R.js +0 -30
  159. package/development/pearl-chain-vertical.d.ts.map +0 -1
  160. package/development/pearl-chain-vertical.pure.d.ts.map +0 -1
  161. package/development/pearl-chain.component-10OsJZIX.js +0 -318
  162. package/development/pearl-chain.d.ts.map +0 -1
  163. package/development/pearl-chain.pure.d.ts.map +0 -1
  164. package/development/seat-reservation/common/mapper/icon-mapper.d.ts.map +0 -1
  165. package/development/seat-reservation/common/mapper/icon-mapper.js +0 -170
  166. package/development/seat-reservation/common/mapper/mapper.d.ts.map +0 -1
  167. package/development/seat-reservation/common/mapper/mapper.js +0 -2
  168. package/development/seat-reservation/common/mapper.d.ts.map +0 -1
  169. package/development/seat-reservation/common/mapper.js +0 -3
  170. package/development/seat-reservation/common/svgs.d.ts.map +0 -1
  171. package/development/seat-reservation/common/svgs.js +0 -2
  172. package/development/seat-reservation/common/translations/i18n.d.ts.map +0 -1
  173. package/development/seat-reservation/common/translations/i18n.js +0 -1120
  174. package/development/seat-reservation/common/translations.d.ts.map +0 -1
  175. package/development/seat-reservation/common/translations.js +0 -2
  176. package/development/seat-reservation/common/types.d.ts.map +0 -1
  177. package/development/seat-reservation/common/types.js +0 -0
  178. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +0 -1
  179. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +0 -1476
  180. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +0 -1
  181. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +0 -2
  182. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts.map +0 -1
  183. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +0 -2
  184. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +0 -1
  185. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +0 -2
  186. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +0 -1
  187. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +0 -2
  188. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +0 -1
  189. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +0 -2
  190. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +0 -1
  191. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +0 -2
  192. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +0 -1
  193. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +0 -2
  194. package/development/seat-reservation-area.component-DPhQJFid.js +0 -94
  195. package/development/seat-reservation-graphic.component-0LYsmerm.js +0 -129
  196. package/development/seat-reservation-navigation-coach.component-B97jKD7Y.js +0 -438
  197. package/development/seat-reservation-navigation-services.component-Cx0Is97w.js +0 -159
  198. package/development/seat-reservation-place-control.component-DaL1g8WH.js +0 -431
  199. package/development/seat-reservation-scoped.component-BHbORVsR.js +0 -24
  200. package/development/seat-reservation.component-DI9pSlzt.js +0 -473
  201. package/development/seat-reservation.d.ts.map +0 -1
  202. package/development/seat-reservation.pure.d.ts.map +0 -1
  203. package/development/svgs-Dj-RKmRs.js +0 -28
  204. package/development/timetable-duration/timetable-duration.component.d.ts.map +0 -1
  205. package/development/timetable-duration/timetable-duration.component.js +0 -2
  206. package/development/timetable-duration.component-Chk5D4Is.js +0 -96
  207. package/development/timetable-duration.d.ts.map +0 -1
  208. package/development/timetable-duration.pure.d.ts.map +0 -1
  209. package/development/timetable-row/timetable-row.component.d.ts.map +0 -1
  210. package/development/timetable-row/timetable-row.component.js +0 -2
  211. package/development/timetable-row.component-nzrQzxL6.js +0 -736
  212. package/development/timetable-row.d.ts.map +0 -1
  213. package/development/timetable-row.pure.d.ts.map +0 -1
  214. package/development/toDate-CDWut5fS.js +0 -150
  215. package/differenceInMinutes-BAZ-Fham.js +0 -27
  216. package/format-DjgG1QPc.js +0 -1103
  217. package/isValid-CXnsFZVu.js +0 -36
  218. package/journey-summary/journey-summary.component.js +0 -2
  219. package/journey-summary.component-DNoO3OCf.js +0 -265
  220. package/mapper-Dcou8VEf.js +0 -11382
  221. package/pearl-chain/pearl-chain.component.js +0 -2
  222. package/pearl-chain-time/pearl-chain-time.component.js +0 -2
  223. package/pearl-chain-time.component-BuvA6IE1.js +0 -237
  224. package/pearl-chain-vertical/pearl-chain-vertical.component.js +0 -2
  225. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +0 -2
  226. package/pearl-chain-vertical-item.component-QZ4s8Jbv.js +0 -106
  227. package/pearl-chain-vertical.component-Dc3vaHsQ.js +0 -20
  228. package/pearl-chain.component-DtGXXkY6.js +0 -190
  229. package/seat-reservation/common/mapper/icon-mapper.js +0 -72
  230. package/seat-reservation/common/mapper/mapper.js +0 -2
  231. package/seat-reservation/common/mapper.js +0 -3
  232. package/seat-reservation/common/svgs.js +0 -2
  233. package/seat-reservation/common/translations/i18n.js +0 -1085
  234. package/seat-reservation/common/translations.js +0 -2
  235. package/seat-reservation/common/types.js +0 -0
  236. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +0 -926
  237. package/seat-reservation/seat-reservation/seat-reservation.component.js +0 -2
  238. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +0 -2
  239. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +0 -2
  240. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +0 -2
  241. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +0 -2
  242. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +0 -2
  243. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +0 -2
  244. package/seat-reservation-area.component-G9lHb7S8.js +0 -73
  245. package/seat-reservation-graphic.component-BXFcQDxY.js +0 -102
  246. package/seat-reservation-navigation-coach.component-BXy8EkJe.js +0 -338
  247. package/seat-reservation-navigation-services.component-49XmV9rv.js +0 -124
  248. package/seat-reservation-place-control.component-DToIW328.js +0 -317
  249. package/seat-reservation-scoped.component-D8dAmrP7.js +0 -16
  250. package/seat-reservation.component--0XnrCkk.js +0 -372
  251. package/svgs-D4fuYTHV.js +0 -26
  252. package/timetable-duration/timetable-duration.component.js +0 -2
  253. package/timetable-duration.component-iMCvh1zr.js +0 -61
  254. package/timetable-row/timetable-row.component.js +0 -2
  255. package/timetable-row.component-mNKmhRmP.js +0 -566
  256. package/toDate-BhNUyM4s.js +0 -16
@@ -1,10 +1 @@
1
- import { SbbAutocompleteGridButtonElement as e } from "./autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js";
2
- import { t } from "./autocomplete-grid-cell.component-79IjA__I.js";
3
- import { SbbAutocompleteGridOptgroupElement as n } from "./autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js";
4
- import { n as r, t as i } from "./autocomplete-grid-option.component-DUFBhQwI.js";
5
- import { t as a } from "./autocomplete-grid-row.component-B3U15Rwa.js";
6
- import { SbbAutocompleteGridElement as o } from "./autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js";
7
- import "./autocomplete-grid.pure.js";
8
- o.define(), e.define(), t.define(), n.define(), i.define(), a.define();
9
- //#endregion
10
- export { e as SbbAutocompleteGridButtonElement, t as SbbAutocompleteGridCellElement, o as SbbAutocompleteGridElement, n as SbbAutocompleteGridOptgroupElement, i as SbbAutocompleteGridOptionElement, a as SbbAutocompleteGridRowElement, r as autocompleteGridOptionId };
1
+ import{SbbAutocompleteGridButtonElement as e,SbbAutocompleteGridCellElement as t,SbbAutocompleteGridElement as n,SbbAutocompleteGridOptgroupElement as r,SbbAutocompleteGridOptionElement as i,SbbAutocompleteGridRowElement as a}from"./autocomplete-grid.pure.js";export*from"./autocomplete-grid.pure.js";n.define(),e.define(),t.define(),r.define(),i.define(),a.define();
@@ -1,7 +1,12 @@
1
- import { SbbAutocompleteGridButtonElement as e } from "./autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js";
2
- import { t } from "./autocomplete-grid-cell.component-79IjA__I.js";
3
- import { SbbAutocompleteGridOptgroupElement as n } from "./autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js";
4
- import { n as r, t as i } from "./autocomplete-grid-option.component-DUFBhQwI.js";
5
- import { t as a } from "./autocomplete-grid-row.component-B3U15Rwa.js";
6
- import { SbbAutocompleteGridElement as o } from "./autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js";
7
- export { e as SbbAutocompleteGridButtonElement, t as SbbAutocompleteGridCellElement, o as SbbAutocompleteGridElement, n as SbbAutocompleteGridOptgroupElement, i as SbbAutocompleteGridOptionElement, a as SbbAutocompleteGridRowElement, r as autocompleteGridOptionId };
1
+ import{miniButtonStyle as e}from"@sbb-esta/lyne-elements/button.pure.js";import{SbbActionBaseElement as t,SbbDisabledMixin as n,SbbElement as r,SbbNegativeMixin as i,SbbPropertyWatcherController as a,getNextElementIndex as o,isEventPrevented as s,isSafari as c,setAriaComboBoxAttributes as l,ɵstateController as u}from"@sbb-esta/lyne-elements/core.js";import{SbbIconNameMixin as d}from"@sbb-esta/lyne-elements/icon.pure.js";import{html as f,isServer as p,unsafeCSS as m}from"lit";import{SbbOptgroupBaseElement as h,SbbOptionBaseElement as g}from"@sbb-esta/lyne-elements/option.pure.js";import{SbbAutocompleteBaseElement as _}from"@sbb-esta/lyne-elements/autocomplete.pure.js";let v=0;var y=class extends n(i(d(t))){static{this.elementName=`sbb-autocomplete-grid-button`}static{this.role=`button`}static{this.styles=[e]}get option(){return this.closest(`sbb-autocomplete-grid-row`)?.querySelector(`sbb-autocomplete-grid-option`)||null}get optgroup(){return this.closest(`sbb-autocomplete-grid-optgroup`)}constructor(){super(),this._handleButtonClick=async e=>{await s(e)||this.closest(`form`)},this.internals.states.add(`button`),p||(this.setupBaseEventHandlers(),this.addEventListener(`click`,this._handleButtonClick),this.addController(new a(this,()=>this.closest(`sbb-autocomplete-grid-optgroup`),{disabled:()=>this._updateInternals()})))}isDisabledExternally(){return this.optgroup?.disabled??!1}renderTemplate(){return super.renderIconSlot()}connectedCallback(){super.connectedCallback(),this.id||=`sbb-autocomplete-grid-button-${++v}`,this.removeAttribute(`tabindex`)}willUpdate(e){super.willUpdate(e),e.has(`disabled`)&&this._updateInternals()}_updateInternals(){this.disabled||this.optgroup?.disabled?(this.internals.states.add(`disabled`),this.internals.ariaDisabled=`true`):(this.internals.states.delete(`disabled`),this.internals.ariaDisabled=null)}},b=`:host{--sbb-autocomplete-grid-cell-gap:var(--sbb-spacing-fixed-6x);display:block}.sbb-autocomplete-grid-cell{column-gap:var(--sbb-autocomplete-grid-cell-gap);display:flex}
2
+ `,x=class extends r{static{this.elementName=`sbb-autocomplete-grid-cell`}static{this.role=`gridcell`}static{this.styles=[m(b)]}render(){return f`
3
+ <span class="sbb-autocomplete-grid-cell">
4
+ <slot></slot>
5
+ </span>
6
+ `}},S=class extends h{static{this.elementName=`sbb-autocomplete-grid-optgroup`}get options(){return Array.from(this.querySelectorAll?.(`sbb-autocomplete-grid-option`)??[])}constructor(){super(),this.addController(new a(this,()=>this.closest(`sbb-autocomplete-grid`),{negative:e=>{this.toggleState(`negative`,e.negative),this.requestUpdate()}}))}getAutocompleteParent(){return this.closest?.(`sbb-autocomplete-grid`)||null}},C=`:host{--sbb-focus-outline-offset:var(--sbb-option-focus-outline-offset);display:block}:host(:is(:state(negative),[state--negative])){--sbb-option-color:var(--sbb-color-3-negative);--sbb-option-icon-color:var(--sbb-color-5)}:host(:is(:state(size-s),[state--size-s])){--sbb-option-min-height:var(--sbb-size-element-xxs);--sbb-option-focus-outline-offset:calc(-1 * var(--sbb-spacing-fixed-1x));--sbb-option-focus-outline-inset:0 var(--sbb-spacing-fixed-1x)}:host(:is(:state(size-m),[state--size-m])){--sbb-option-min-height:var(--sbb-size-element-s);--sbb-option-focus-outline-offset:inherit;--sbb-option-focus-outline-inset:var(--sbb-spacing-fixed-1x)}:host(:not(:is(:state(disable-highlight),[state--disable-highlight]))) .sbb-option__label slot{display:none}:host(:is(:state(active),[state--active])){--sbb-option-focus-outline-color:var(--sbb-focus-outline-color)}.sbb-option{font-size:var(--sbb-option-font-size);letter-spacing:var(--sbb-typo-letter-spacing-text);align-items:center;column-gap:var(--sbb-option-column-gap);min-height:var(--sbb-option-min-height);padding-inline:var(--sbb-option-padding-inline);color:var(--sbb-option-color);justify-content:start;display:flex;position:relative}.sbb-option:after{content:"";inset:var(--sbb-option-focus-outline-inset);pointer-events:none;border:var(--sbb-focus-outline-width) solid var(--sbb-option-focus-outline-color);border-radius:var(--sbb-option-border-radius);display:block;position:absolute}:host(:not(:is(:state(disabled),[state--disabled]))) .sbb-option__label--highlight{font-weight:700}@media (forced-colors:active){:host(:not(:is(:state(disabled),[state--disabled]))) .sbb-option__label--highlight{color:highlight}}.sbb-option__icon{min-width:var(--sbb-size-icon-ui-small);min-height:var(--sbb-size-icon-ui-small);color:var(--sbb-option-icon-color);display:flex}:host(:not(:is(:state(slotted-icon),[state--slotted-icon]),:is(:state(has-icon-name),[state--has-icon-name]))) .sbb-option__icon{display:var(--sbb-option-icon-container-display,none)}.sbb-option__label{text-overflow:var(--sbb-option-text-overflow);overflow:var(--sbb-option-overflow);white-space:var(--sbb-option-white-space,initial)}
7
+ `;const w=`sbb-autocomplete-grid-option`;var T=class extends g{static{this.elementName=`sbb-autocomplete-grid-option`}static{this.role=`gridcell`}static{this.styles=[m(C)]}constructor(){super(),this.addController(new a(this,()=>this.closest(`sbb-autocomplete-grid-optgroup`),{disabled:e=>{this.disabledFromGroup=e.disabled,u(this.closest?.(`sbb-autocomplete-grid-row`))?.toggle(`disabled`,this.disabled||this.disabledFromGroup),this.updateAriaDisabled()},label:e=>this.groupLabel=e.label}))}willUpdate(e){super.willUpdate(e),e.has(`disabled`)&&(u(this.closest?.(`sbb-autocomplete-grid-row`))?.toggle(`disabled`,this.disabled||this.disabledFromGroup),this.updateAriaDisabled())}selectByClick(e){if(this.disabled||this.disabledFromGroup){e.stopPropagation();return}this.selectViaUserInteraction(!0)}},E=`:host{display:block}:host(:is(:state(negative),[state--negative])){--sbb-autocomplete-grid-row-color:var(--sbb-color-3-negative);--sbb-autocomplete-grid-row-background-color-hover:var(--sbb-background-color-3-negative);--sbb-autocomplete-grid-row-disabled-border-color:var(--sbb-border-color-5);--sbb-autocomplete-grid-row-disabled-background-color:var(--sbb-background-color-3-negative);--sbb-focus-outline-color:var(--sbb-focus-outline-color-dark)}@media (any-hover:hover){:host(:hover:not(:is(:state(disabled),[state--disabled]))){--sbb-autocomplete-grid-row-background-color:var(--sbb-autocomplete-grid-row-background-color-hover)}}:host(:is(:state(disabled),[state--disabled])){--sbb-autocomplete-grid-row-cursor:var(--sbb-cursor-default)}@media (forced-colors:active){:host(:is(:state(disabled),[state--disabled])){--sbb-autocomplete-grid-row-color:GrayText}}::slotted(sbb-autocomplete-grid-option){margin-right:calc(-1 * var(--sbb-spacing-fixed-2x));flex:auto;overflow-x:hidden}.sbb-autocomplete-grid-row{align-items:center;justify-content:var(--sbb-autocomplete-grid-row-justify-content);gap:var(--sbb-spacing-fixed-6x);color:var(--sbb-autocomplete-grid-row-color);background-color:var(--sbb-autocomplete-grid-row-background-color,inherit);cursor:var(--sbb-autocomplete-grid-row-cursor);-webkit-tap-highlight-color:transparent;-webkit-text-fill-color:var(--sbb-autocomplete-grid-row-color);padding-inline-end:var(--sbb-autocomplete-grid-row-padding-inline-end);display:flex}:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row{z-index:0;position:relative}:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row:before{content:"";border:var(--sbb-border-width-1x) dashed var(--sbb-autocomplete-grid-row-disabled-border-color);border-radius:var(--sbb-border-radius-2x);background-color:var(--sbb-autocomplete-grid-row-disabled-background-color);z-index:-1;display:block;position:absolute;inset:.375rem}@media (forced-colors:active){:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row:before{border-color:graytext}}
8
+ `;let D=0;var O=class extends r{static{this.elementName=`sbb-autocomplete-grid-row`}static{this.role=`row`}static{this.styles=[m(E)]}connectedCallback(){super.connectedCallback(),this.id||=`sbb-autocomplete-grid-row-${++D}`}render(){return f`
9
+ <span class="sbb-autocomplete-grid-row">
10
+ <slot></slot>
11
+ </span>
12
+ `}};let k=0;const A=c;var j=class extends _{constructor(){super(...arguments),this.overlayId=`sbb-autocomplete-grid-${++k}`,this.panelRole=`grid`,this._activeColumnIndex=0}static{this.elementName=`sbb-autocomplete-grid`}static{this.role=A?`grid`:null}get options(){return Array.from(this.querySelectorAll?.(`sbb-autocomplete-grid-option`)??[])}syncNegative(){this.querySelectorAll?.(`sbb-divider, sbb-autocomplete-grid-button, sbb-option-hint`).forEach(e=>e.negative=this.negative),this.querySelectorAll?.(`sbb-autocomplete-grid-row, sbb-autocomplete-grid-option, sbb-autocomplete-grid-optgroup`).forEach(e=>u(e).toggle(`negative`,this.negative))}openedPanelKeyboardInteraction(e){if(this.isOpen)switch(e.key){case`Enter`:this.selectByKeyboard(e);break;case`ArrowDown`:case`ArrowUp`:this.setNextActiveOption(e);break;case`ArrowRight`:case`ArrowLeft`:this._setNextHorizontalActiveElement(e);break}}selectByKeyboard(e){this.activeOption&&(e.preventDefault(),this._activeColumnIndex===0?this.activeOption.selectViaUserInteraction(!0):this.activeOption.closest(`sbb-autocomplete-grid-row`)?.querySelectorAll(`sbb-autocomplete-grid-button`)[this._activeColumnIndex-1]?.click())}setNextActiveOption(e){let t=this.options.filter(e=>!e.matches(`:is(:state(disabled),[state--disabled])`));if(this.activeOption?.setActive(!1),this.triggerElement.ariaActiveDescendantElement=null,Array.from(this.querySelectorAll?.(`sbb-autocomplete-grid-row :is(:state(focus-visible),[state--focus-visible])`)??[]).forEach(e=>u(e).delete(`focus-visible`)),this._activeColumnIndex=0,!t.length){this.activeOption=null;return}let n=o(e,this.activeOption?t.indexOf(this.activeOption):-1,t.length);this.activeOption=t[n],this.activeOption.setActive(!0),this.triggerElement.ariaActiveDescendantElement=this.activeOption,this.activeOption.scrollIntoView({block:`nearest`}),e&&e.preventDefault(),this.autoSelectActiveOption&&e&&this.setPendingSelection(this.activeOption)}_setNextHorizontalActiveElement(e){if(!this.activeOption)return;let t=Array.from(this.activeOption?.closest(`sbb-autocomplete-grid-row`)?.querySelectorAll(`sbb-autocomplete-grid-option, sbb-autocomplete-grid-button`)??[])?.filter(e=>!e.matches(`:is(:state(disabled),[state--disabled])`));if(!t.length)return;let n=o(e,this._activeColumnIndex,t.length),r=t[n];r instanceof T?r.setActive(!0):u(r).add(`focus-visible`);let i=t[this._activeColumnIndex];i instanceof T?i.setActive(!1):u(i).delete(`focus-visible`),this.triggerElement.ariaActiveDescendantElement=r,r.scrollIntoView({block:`nearest`}),this._activeColumnIndex=n}resetActiveElement(){this._activeColumnIndex!==0&&this.activeOption?.closest(`sbb-autocomplete-grid-row`)?.querySelectorAll(`sbb-autocomplete-grid-button`).forEach(e=>u(e).delete(`focus-visible`)),this.activeOption?.setActive(!1),this.activeOption=null,this._activeColumnIndex=0,this.triggerElement&&(this.triggerElement.ariaActiveDescendantElement=null)}setTriggerAttributes(e){l(e,A?this.id:this.overlayId,!1,`grid`)}};export{y as SbbAutocompleteGridButtonElement,x as SbbAutocompleteGridCellElement,j as SbbAutocompleteGridElement,S as SbbAutocompleteGridOptgroupElement,T as SbbAutocompleteGridOptionElement,O as SbbAutocompleteGridRowElement,w as autocompleteGridOptionId};
package/core.js CHANGED
@@ -1,5 +1,31 @@
1
- import { n as e, t } from "./date-helper-DNzMLcyb.js";
2
- import { extractTimeAndStringFromNoticeText as n, isConnectionLeg as r, isRideLeg as i } from "./core/timetable/timetable-helper.js";
3
- import { getDepartureArrivalTimeAttribute as a } from "./core/timetable/access-leg-helper.js";
4
- import "./core/timetable/timetable-properties.js";
5
- export { t as durationToTime, n as extractTimeAndStringFromNoticeText, a as getDepartureArrivalTimeAttribute, r as isConnectionLeg, i as isRideLeg, e as removeTimezoneFromISOTimeString };
1
+ import{i18nDurationDay as e,i18nDurationHour as t,i18nDurationMinute as n,i18nWalkingDistanceArrival as r,i18nWalkingDistanceDeparture as i}from"@sbb-esta/lyne-elements/core.js";import{html as a,nothing as o}from"lit";import"@sbb-esta/lyne-elements/icon.pure.js";const s=6e4,c=36e5,l=Symbol.for(`constructDateFrom`);function u(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&l in e?e[l](t):e instanceof Date?new e.constructor(t):new Date(t)}function d(e,t){return u(t||e,e)}function f(e,t,n){let r=d(e,n?.in);return isNaN(t)?u(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function p(e,t,n){return u(n?.in||e,+d(e)+t)}function m(e,t,n){return p(e,t*c,n)}function h(e,t,n){let r=d(e,n?.in);return r.setTime(r.getTime()+t*s),r}function g(e){let t=d(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function _(e,...t){let n=u.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function v(e,t){let n=d(e,t?.in);return n.setHours(0,0,0,0),n}function y(e,t,n){let[r,i]=_(n?.in,e,t),a=v(r),o=v(i),s=+a-g(a),c=+o-g(o);return Math.round((s-c)/864e5)}function b(e,t,n){let[r,i]=_(n?.in,e,t),a=x(r,i),o=Math.abs(y(r,i));r.setDate(r.getDate()-a*o);let s=a*(o-Number(x(r,i)===-a));return s===0?0:s}function x(e,t){let n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return n<0?-1:n>0?1:n}function S(e){return t=>{let n=(e?Math[e]:Math.trunc)(t);return n===0?0:n}}function C(e,t,n){let[r,i]=_(n?.in,e,t),a=(r-+i)/c;return S(n?.roundingMethod)(a)}function w(e,t){return d(e)-+d(t)}function T(e,t,n){let r=w(e,t)/s;return S(n?.roundingMethod)(r)}function E(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function D(e){return!(!E(e)&&typeof e!=`number`||isNaN(+d(e)))}function O(e,t){let n=()=>u(t?.in,NaN),r=t?.additionalDigits??2,i=re(e),a;if(i.date){let e=A(i.date,r);a=j(e.restDateString,e.year)}if(!a||isNaN(+a))return n();let o=+a,s=0,c;if(i.time&&(s=N(i.time),isNaN(s)))return n();if(i.timezone){if(c=F(i.timezone),isNaN(c))return n()}else{let e=new Date(o+s),n=d(0,t?.in);return n.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),n.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),n}return d(o+s+c,t?.in)}const k={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ee=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,te=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,ne=/^([+-])(\d{2})(?::?(\d{2}))?$/;function re(e){let t={},n=e.split(k.dateTimeDelimiter),r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],k.timeZoneDelimiter.test(t.date)&&(t.date=e.split(k.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){let e=k.timezone.exec(r);e?(t.time=r.replace(e[1],``),t.timezone=e[1]):t.time=r}return t}function A(e,t){let n=RegExp(`^(?:(\\d{4}|[+-]\\d{`+(4+t)+`})|(\\d{2}|[+-]\\d{`+(2+t)+`})$)`),r=e.match(n);if(!r)return{year:NaN,restDateString:``};let i=r[1]?parseInt(r[1]):null,a=r[2]?parseInt(r[2]):null;return{year:a===null?i:a*100,restDateString:e.slice((r[1]||r[2]).length)}}function j(e,t){if(t===null)return new Date(NaN);let n=e.match(ee);if(!n)return new Date(NaN);let r=!!n[4],i=M(n[1]),a=M(n[2])-1,o=M(n[3]),s=M(n[4]),c=M(n[5])-1;if(r)return V(t,s,c)?I(t,s,c):new Date(NaN);{let e=new Date(0);return!z(t,a,o)||!B(t,i)?new Date(NaN):(e.setUTCFullYear(t,a,Math.max(i,o)),e)}}function M(e){return e?parseInt(e):1}function N(e){let t=e.match(te);if(!t)return NaN;let n=P(t[1]),r=P(t[2]),i=P(t[3]);return H(n,r,i)?n*c+r*s+i*1e3:NaN}function P(e){return e&&parseFloat(e.replace(`,`,`.`))||0}function F(e){if(e===`Z`)return 0;let t=e.match(ne);if(!t)return 0;let n=t[1]===`+`?-1:1,r=parseInt(t[2]),i=t[3]&&parseInt(t[3])||0;return U(r,i)?n*(r*c+i*s):NaN}function I(e,t,n){let r=new Date(0);r.setUTCFullYear(e,0,4);let i=r.getUTCDay()||7,a=(t-1)*7+n+1-i;return r.setUTCDate(r.getUTCDate()+a),r}const L=[31,null,31,30,31,30,31,31,30,31,30,31];function R(e){return e%400==0||e%4==0&&e%100!=0}function z(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(L[t]||(R(e)?29:28))}function B(e,t){return t>=1&&t<=(R(e)?366:365)}function V(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function H(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function U(e,t){return t>=0&&t<=59}function W(e,t,n){return f(e,-t,n)}function G(e,t,n){return m(e,-t,n)}function K(e){if(e&&D(O(e))){if(e.includes(`Z`))return new Date(e.replace(`Z`,``));if(e.includes(`T`)){let t=e.split(`T`);if(t[1]&&(t[1].includes(`+`)||t[1].includes(`-`)))return new Date(`${t[0]}T${t[1].split(/[+-]/)[0]}`)}return new Date(e)}}const q=(r,i)=>{let a=[],o=[],s=h(0,r),c=b(s,0);c>0&&(a.push(`${c} d`),i&&o.push(`${c} ${c>1?e.multiple.long[i]:e.single.long[i]}`),s=W(s,c));let l=C(s,0);l>0&&(a.push(`${l} h`),i&&o.push(`${l} ${l>1?t.multiple.long[i]:t.single.long[i]}`),s=G(s,l));let u=T(s,0);return u>0&&(a.push(`${u} min`),i&&o.push(`${u} ${u>1?n.multiple.long[i]:n.single.long[i]}`)),{short:a.join(` `),long:o.join(` `)}},J=e=>e?.__typename===`PTRideLeg`,Y=e=>e?.__typename===`PTConnectionLeg`,X=e=>{let t=e?.text?.template&&e.text.template.indexOf(`(`)+1,n=e?.text?.template?.substring(t||0,e?.text?.template.indexOf(`)`));return{duration:n&&+n.substring(0,n.length-1)||0,text:e?.text?.template?.split(`(`)[0]||``}};function Z(e,t){let n=Y(e)?e:null,r=n?n?.notices?.filter(e=>t.includes(e.name))[0]:null;return r?{duration:n?.duration||0,text:r?.text?.template||``,icon:`walk-small`}:null}function ie(e,t,n,r){let a=J(e)?e?.serviceJourney?.notices?.filter(e=>[`CI`].includes(e.name))[0]:null,o=a&&X(a);return a?{duration:(o?.duration||0)+(t||0),text:n?i[r]:o?.text||``,icon:n?`wheelchair-small`:`sa-${a?.name?.toLowerCase()}`}:null}function ae(e,t,n,i){let a=J(e)?e?.serviceJourney?.notices?.filter(e=>[`CO`].includes(e.name))[0]:null,o=a&&X(a);return a?{duration:(o?.duration||0)+(t||0),text:n?r[i]:o?.text||``,icon:n?`wheelchair-small`:`sa-${a?.name?.toLowerCase()}`}:null}function Q(e,t,n,s,c){return a`
2
+ <span class="sbb-pearl-chain__time-transfer sbb-pearl-chain__time-transfer--${t}-${c}">
3
+ <sbb-icon name=${t}></sbb-icon>
4
+ <time datetime=${e+`M`}>
5
+ <span class="sbb-screen-reader-only">
6
+ ${!s&&c?c===`departure`?i[n]:r[n]:o}
7
+ ${s?a`<span>${s}</span>`:o}&nbsp;
8
+ </span>
9
+ ${e}
10
+ <span class="sbb-pearl-chain__time-walktime-prime-symbol" aria-hidden="true">'</span>
11
+ <span class="sbb-screen-reader-only">min</span>
12
+ </time>
13
+ </span>
14
+ `}function $(e,t,n,r){return a`
15
+ <span class="sbb-pearl-chain__time-walktime sbb-pearl-chain__time-walktime--${r}-${n}">
16
+ <sbb-icon name=${r}></sbb-icon>
17
+ <time datetime=${e+`M`}>
18
+ <span class="sbb-screen-reader-only">${t}</span>
19
+ ${e}
20
+ <span class="sbb-pearl-chain__time-walktime-prime-symbol" aria-hidden="true">'</span>
21
+ </time>
22
+ </span>
23
+ `}function oe(e,t,n,s,c){let l=e&&e.filter(e=>J(e)||Y(e))[0],u=[`YM`,`YB`,`Y`,`YT`],d=Z(l,u),f=ie(l,t,c,s),p=t?{text:i[s],duration:t,icon:c?`wheelchair-small`:`walk-small`}:null,m=()=>d||(p&&!f&&!d?p:f||null);function h(){return a`
24
+ ${d?$(d.duration,d.text,`left`,d.icon):o}
25
+ ${p&&!f&&!d?$(p.duration,p.text,`left`,p.icon):o}
26
+ ${f?c?$(f.duration,f.text,`left`,f.icon):Q(f.duration,f.icon,s,f.text,`departure`):o}
27
+ `}let g=e&&e[e.length-1],_=(Y(g)||J(g))&&g,v=_&&Z(_,u),y=_&&ae(_,n,c,s),b=n?{text:r[s],duration:n,icon:c?`wheelchair-small`:`walk-small`}:null,x=()=>v||(b&&!y&&!v?b:y||null);function S(){return a`
28
+ ${v?$(v.duration,v.text,`right`,v.icon):o}
29
+ ${b&&!y&&!v?$(b.duration,b.text,`right`,b.icon):o}
30
+ ${y?c?$(y.duration,y.text,`right`,y.icon):Q(y.duration,y.icon,s,y.text,`arrival`):o}
31
+ `}return{renderDepartureTimeAttribute:h,renderArrivalTimeAttribute:S,departureTimeAttribute:m(),arrivalTimeAttribute:x()}}export{q as durationToTime,X as extractTimeAndStringFromNoticeText,oe as getDepartureArrivalTimeAttribute,Y as isConnectionLeg,J as isRideLeg,K as removeTimezoneFromISOTimeString};
@@ -37,4 +37,3 @@ declare global {
37
37
  'sbb-autocomplete-grid': SbbAutocompleteGridElement;
38
38
  }
39
39
  }
40
- //# sourceMappingURL=autocomplete-grid.component.d.ts.map
@@ -1,8 +1,8 @@
1
1
  import { SbbActionBaseElement } from '@sbb-esta/lyne-elements/core.js';
2
- import { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
3
- import { SbbAutocompleteGridOptgroupElement } from '../autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.ts';
4
- import { SbbAutocompleteGridOptionElement } from '../autocomplete-grid-option/autocomplete-grid-option.component.ts';
5
- declare const SbbAutocompleteGridButtonElement_base: import('@sbb-esta/lyne-elements/core.js').AbstractConstructor<import('@sbb-esta/lyne-elements/core.js').SbbDisabledMixinType> & import('@sbb-esta/lyne-elements/core.js').AbstractConstructor<import('@sbb-esta/lyne-elements/core.js').SbbNegativeMixinType> & import('@sbb-esta/lyne-elements/core.js').AbstractConstructor<import('@sbb-esta/lyne-elements/icon.pure.js').SbbIconNameMixinType> & typeof SbbActionBaseElement;
2
+ import { type CSSResultGroup, type PropertyValues, type TemplateResult } from 'lit';
3
+ import type { SbbAutocompleteGridOptgroupElement } from '../autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.ts';
4
+ import type { SbbAutocompleteGridOptionElement } from '../autocomplete-grid-option/autocomplete-grid-option.component.ts';
5
+ declare const SbbAutocompleteGridButtonElement_base: import("@sbb-esta/lyne-elements/core.js").AbstractConstructor<import("@sbb-esta/lyne-elements/core.js").SbbDisabledMixinType> & import("@sbb-esta/lyne-elements/core.js").AbstractConstructor<import("@sbb-esta/lyne-elements/core.js").SbbNegativeMixinType> & import("@sbb-esta/lyne-elements/core.js").AbstractConstructor<import("@sbb-esta/lyne-elements/icon.pure.js").SbbIconNameMixinType> & typeof SbbActionBaseElement;
6
6
  /**
7
7
  * It displays an icon-only button that can be used in `sbb-autocomplete-grid`.
8
8
  *
@@ -29,4 +29,3 @@ declare global {
29
29
  }
30
30
  }
31
31
  export {};
32
- //# sourceMappingURL=autocomplete-grid-button.component.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { SbbElement } from '@sbb-esta/lyne-elements/core.js';
2
- import { CSSResultGroup, TemplateResult } from 'lit';
2
+ import { type CSSResultGroup, type TemplateResult } from 'lit';
3
3
  /**
4
4
  * A wrapper component for autocomplete-grid action button.
5
5
  *
@@ -16,4 +16,3 @@ declare global {
16
16
  'sbb-autocomplete-grid-cell': SbbAutocompleteGridCellElement;
17
17
  }
18
18
  }
19
- //# sourceMappingURL=autocomplete-grid-cell.component.d.ts.map
@@ -1,6 +1,6 @@
1
- import { SbbAutocompleteBaseElement } from '@sbb-esta/lyne-elements/autocomplete.pure.js';
1
+ import type { SbbAutocompleteBaseElement } from '@sbb-esta/lyne-elements/autocomplete.pure.js';
2
2
  import { SbbOptgroupBaseElement } from '@sbb-esta/lyne-elements/option.pure.js';
3
- import { SbbAutocompleteGridOptionElement } from '../autocomplete-grid-option/autocomplete-grid-option.component.ts';
3
+ import type { SbbAutocompleteGridOptionElement } from '../autocomplete-grid-option/autocomplete-grid-option.component.ts';
4
4
  /**
5
5
  * It can be used as a container for one or more `sbb-autocomplete-grid-option`.
6
6
  *
@@ -17,4 +17,3 @@ declare global {
17
17
  'sbb-autocomplete-grid-optgroup': SbbAutocompleteGridOptgroupElement;
18
18
  }
19
19
  }
20
- //# sourceMappingURL=autocomplete-grid-optgroup.component.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { SbbOptionBaseElement } from '@sbb-esta/lyne-elements/option.pure.js';
2
- import { CSSResultGroup, PropertyValues } from 'lit';
2
+ import { type CSSResultGroup, type PropertyValues } from 'lit';
3
3
  export declare const autocompleteGridOptionId: string;
4
4
  /**
5
5
  * It displays an option item which can be used in `sbb-autocomplete-grid`.
@@ -23,4 +23,3 @@ declare global {
23
23
  'sbb-autocomplete-grid-option': SbbAutocompleteGridOptionElement;
24
24
  }
25
25
  }
26
- //# sourceMappingURL=autocomplete-grid-option.component.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { SbbElement } from '@sbb-esta/lyne-elements/core.js';
2
- import { CSSResultGroup, TemplateResult } from 'lit';
2
+ import { type CSSResultGroup, type TemplateResult } from 'lit';
3
3
  /**
4
4
  * The component is used as a wrapper for options and action buttons.
5
5
  *
@@ -17,4 +17,3 @@ declare global {
17
17
  'sbb-autocomplete-grid-row': SbbAutocompleteGridRowElement;
18
18
  }
19
19
  }
20
- //# sourceMappingURL=autocomplete-grid-row.component.d.ts.map
@@ -1,2 +1 @@
1
1
  export * from './autocomplete-grid.pure.ts';
2
- //# sourceMappingURL=autocomplete-grid.d.ts.map
@@ -1,10 +1,7 @@
1
- import { SbbAutocompleteGridButtonElement } from "./autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js";
2
- import { t as SbbAutocompleteGridCellElement } from "./autocomplete-grid-cell.component-BbdELDro.js";
3
- import { SbbAutocompleteGridOptgroupElement } from "./autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js";
4
- import { n as autocompleteGridOptionId, t as SbbAutocompleteGridOptionElement } from "./autocomplete-grid-option.component-C7WuqRit.js";
5
- import { t as SbbAutocompleteGridRowElement } from "./autocomplete-grid-row.component-DoXbOsQM.js";
6
- import { SbbAutocompleteGridElement } from "./autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js";
7
- import "./autocomplete-grid.pure.js";
1
+ import { SbbAutocompleteGridButtonElement, SbbAutocompleteGridCellElement, SbbAutocompleteGridElement, SbbAutocompleteGridOptgroupElement, SbbAutocompleteGridOptionElement, SbbAutocompleteGridRowElement } from "./autocomplete-grid.pure.js";
2
+
3
+ export * from "./autocomplete-grid.pure.js"
4
+
8
5
  //#region src/elements-experimental/autocomplete-grid.ts
9
6
  /** @entrypoint */
10
7
  SbbAutocompleteGridElement.define();
@@ -13,7 +10,5 @@ SbbAutocompleteGridCellElement.define();
13
10
  SbbAutocompleteGridOptgroupElement.define();
14
11
  SbbAutocompleteGridOptionElement.define();
15
12
  SbbAutocompleteGridRowElement.define();
16
- //#endregion
17
- export { SbbAutocompleteGridButtonElement, SbbAutocompleteGridCellElement, SbbAutocompleteGridElement, SbbAutocompleteGridOptgroupElement, SbbAutocompleteGridOptionElement, SbbAutocompleteGridRowElement, autocompleteGridOptionId };
18
13
 
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9hdXRvY29tcGxldGUtZ3JpZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGVudHJ5cG9pbnQgKi9cbmltcG9ydCB7XG4gIFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50LFxuICBTYmJBdXRvY29tcGxldGVHcmlkQ2VsbEVsZW1lbnQsXG4gIFNiYkF1dG9jb21wbGV0ZUdyaWRFbGVtZW50LFxuICBTYmJBdXRvY29tcGxldGVHcmlkT3B0Z3JvdXBFbGVtZW50LFxuICBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCxcbiAgU2JiQXV0b2NvbXBsZXRlR3JpZFJvd0VsZW1lbnQsXG59IGZyb20gJy4vYXV0b2NvbXBsZXRlLWdyaWQucHVyZS50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLWdyaWQucHVyZS50cyc7XG5cblNiYkF1dG9jb21wbGV0ZUdyaWRFbGVtZW50LmRlZmluZSgpO1xuU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnQuZGVmaW5lKCk7XG5TYmJBdXRvY29tcGxldGVHcmlkQ2VsbEVsZW1lbnQuZGVmaW5lKCk7XG5TYmJBdXRvY29tcGxldGVHcmlkT3B0Z3JvdXBFbGVtZW50LmRlZmluZSgpO1xuU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQuZGVmaW5lKCk7XG5TYmJBdXRvY29tcGxldGVHcmlkUm93RWxlbWVudC5kZWZpbmUoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBWUEsMkJBQTJCLE9BQU07QUFDakMsaUNBQWlDLE9BQU07QUFDdkMsK0JBQStCLE9BQU07QUFDckMsbUNBQW1DLE9BQU07QUFDekMsaUNBQWlDLE9BQU07QUFDdkMsOEJBQThCLE9BQU0ifQ==
14
+ //#endregion
@@ -5,4 +5,3 @@ export * from './autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-
5
5
  export * from './autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.ts';
6
6
  export * from './autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.ts';
7
7
  export * from './autocomplete-grid/autocomplete-grid/autocomplete-grid.component.ts';
8
- //# sourceMappingURL=autocomplete-grid.pure.d.ts.map
@@ -1,7 +1,328 @@
1
- import { SbbAutocompleteGridButtonElement } from "./autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js";
2
- import { t as SbbAutocompleteGridCellElement } from "./autocomplete-grid-cell.component-BbdELDro.js";
3
- import { SbbAutocompleteGridOptgroupElement } from "./autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js";
4
- import { n as autocompleteGridOptionId, t as SbbAutocompleteGridOptionElement } from "./autocomplete-grid-option.component-C7WuqRit.js";
5
- import { t as SbbAutocompleteGridRowElement } from "./autocomplete-grid-row.component-DoXbOsQM.js";
6
- import { SbbAutocompleteGridElement } from "./autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js";
7
- export { SbbAutocompleteGridButtonElement, SbbAutocompleteGridCellElement, SbbAutocompleteGridElement, SbbAutocompleteGridOptgroupElement, SbbAutocompleteGridOptionElement, SbbAutocompleteGridRowElement, autocompleteGridOptionId };
1
+ import { miniButtonStyle } from "@sbb-esta/lyne-elements/button.pure.js";
2
+ import { SbbActionBaseElement, SbbDisabledMixin, SbbElement, SbbNegativeMixin, SbbPropertyWatcherController, getNextElementIndex, isEventPrevented, isSafari, setAriaComboBoxAttributes, ɵstateController } from "@sbb-esta/lyne-elements/core.js";
3
+ import { SbbIconNameMixin } from "@sbb-esta/lyne-elements/icon.pure.js";
4
+ import { html, isServer, unsafeCSS } from "lit";
5
+ import { SbbOptgroupBaseElement, SbbOptionBaseElement } from "@sbb-esta/lyne-elements/option.pure.js";
6
+ import { SbbAutocompleteBaseElement } from "@sbb-esta/lyne-elements/autocomplete.pure.js";
7
+
8
+ //#region src/elements-experimental/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.ts
9
+ let autocompleteButtonNextId = 0;
10
+ /**
11
+ * It displays an icon-only button that can be used in `sbb-autocomplete-grid`.
12
+ *
13
+ * @slot icon - Slot used to display the icon, if one is set
14
+ */
15
+ var SbbAutocompleteGridButtonElement = class extends SbbDisabledMixin(SbbNegativeMixin(SbbIconNameMixin(SbbActionBaseElement))) {
16
+ static {
17
+ this.elementName = "sbb-autocomplete-grid-button";
18
+ }
19
+ static {
20
+ this.role = "button";
21
+ }
22
+ static {
23
+ this.styles = [miniButtonStyle];
24
+ }
25
+ /** Gets the SbbAutocompleteGridOptionElement on the same row of the button. */
26
+ get option() {
27
+ return this.closest("sbb-autocomplete-grid-row")?.querySelector("sbb-autocomplete-grid-option") || null;
28
+ }
29
+ get optgroup() {
30
+ return this.closest("sbb-autocomplete-grid-optgroup");
31
+ }
32
+ constructor() {
33
+ super();
34
+ this._handleButtonClick = async (event) => {
35
+ if (await isEventPrevented(event) || !this.closest("form")) return;
36
+ };
37
+ this.internals.states.add("button");
38
+ if (!isServer) {
39
+ this.setupBaseEventHandlers();
40
+ this.addEventListener("click", this._handleButtonClick);
41
+ this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete-grid-optgroup"), { disabled: () => this._updateInternals() }));
42
+ }
43
+ }
44
+ isDisabledExternally() {
45
+ return this.optgroup?.disabled ?? false;
46
+ }
47
+ renderTemplate() {
48
+ return super.renderIconSlot();
49
+ }
50
+ connectedCallback() {
51
+ super.connectedCallback();
52
+ this.id ||= `sbb-autocomplete-grid-button-${++autocompleteButtonNextId}`;
53
+ this.removeAttribute("tabindex");
54
+ }
55
+ willUpdate(changedProperties) {
56
+ super.willUpdate(changedProperties);
57
+ if (changedProperties.has("disabled")) this._updateInternals();
58
+ }
59
+ _updateInternals() {
60
+ if (this.disabled || this.optgroup?.disabled) {
61
+ this.internals.states.add("disabled");
62
+ this.internals.ariaDisabled = "true";
63
+ } else {
64
+ this.internals.states.delete("disabled");
65
+ this.internals.ariaDisabled = null;
66
+ }
67
+ }
68
+ };
69
+
70
+ //#endregion
71
+ //#region src/elements-experimental/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.scss?inline
72
+ var autocomplete_grid_cell_default = ":host {\n --sbb-autocomplete-grid-cell-gap: var(--sbb-spacing-fixed-6x);\n display: block;\n}\n\n.sbb-autocomplete-grid-cell {\n display: flex;\n column-gap: var(--sbb-autocomplete-grid-cell-gap);\n}\n";
73
+
74
+ //#endregion
75
+ //#region src/elements-experimental/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.ts
76
+ /**
77
+ * A wrapper component for autocomplete-grid action button.
78
+ *
79
+ * @slot - Use the unnamed slot to add a `sbb-autocomplete-grid-button` element.
80
+ */
81
+ var SbbAutocompleteGridCellElement = class extends SbbElement {
82
+ static {
83
+ this.elementName = "sbb-autocomplete-grid-cell";
84
+ }
85
+ static {
86
+ this.role = "gridcell";
87
+ }
88
+ static {
89
+ this.styles = [unsafeCSS(autocomplete_grid_cell_default)];
90
+ }
91
+ render() {
92
+ return html`
93
+ <span class="sbb-autocomplete-grid-cell">
94
+ <slot></slot>
95
+ </span>
96
+ `;
97
+ }
98
+ };
99
+
100
+ //#endregion
101
+ //#region src/elements-experimental/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.ts
102
+ /**
103
+ * It can be used as a container for one or more `sbb-autocomplete-grid-option`.
104
+ *
105
+ * @slot - Use the unnamed slot to add `sbb-autocomplete-grid-option` elements to the `sbb-autocomplete-grid-optgroup`.
106
+ */
107
+ var SbbAutocompleteGridOptgroupElement = class extends SbbOptgroupBaseElement {
108
+ static {
109
+ this.elementName = "sbb-autocomplete-grid-optgroup";
110
+ }
111
+ get options() {
112
+ return Array.from(this.querySelectorAll?.("sbb-autocomplete-grid-option") ?? []);
113
+ }
114
+ constructor() {
115
+ super();
116
+ this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete-grid"), { negative: (e) => {
117
+ this.toggleState("negative", e.negative);
118
+ this.requestUpdate();
119
+ } }));
120
+ }
121
+ getAutocompleteParent() {
122
+ return this.closest?.("sbb-autocomplete-grid") || null;
123
+ }
124
+ };
125
+
126
+ //#endregion
127
+ //#region src/elements-experimental/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.scss?inline
128
+ var autocomplete_grid_option_default = ":host {\n --sbb-focus-outline-offset: var(--sbb-option-focus-outline-offset);\n display: block;\n}\n\n:host(:is(:state(negative),[state--negative])) {\n --sbb-option-color: var(--sbb-color-3-negative);\n --sbb-option-icon-color: var(--sbb-color-5);\n}\n\n:host(:is(:state(size-s),[state--size-s])) {\n --sbb-option-min-height: var(--sbb-size-element-xxs);\n --sbb-option-focus-outline-offset: calc(-1 * var(--sbb-spacing-fixed-1x));\n --sbb-option-focus-outline-inset: 0 var(--sbb-spacing-fixed-1x);\n}\n\n:host(:is(:state(size-m),[state--size-m])) {\n --sbb-option-min-height: var(--sbb-size-element-s);\n --sbb-option-focus-outline-offset: inherit;\n --sbb-option-focus-outline-inset: var(--sbb-spacing-fixed-1x);\n}\n\n:host(:not(:is(:state(disable-highlight),[state--disable-highlight]))) .sbb-option__label slot {\n display: none;\n}\n\n:host(:is(:state(active),[state--active])) {\n --sbb-option-focus-outline-color: var(--sbb-focus-outline-color);\n}\n\n.sbb-option {\n font-size: var(--sbb-option-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n position: relative;\n display: flex;\n align-items: center;\n column-gap: var(--sbb-option-column-gap);\n justify-content: start;\n min-height: var(--sbb-option-min-height);\n padding-inline: var(--sbb-option-padding-inline);\n color: var(--sbb-option-color);\n}\n.sbb-option::after {\n content: \"\";\n display: block;\n position: absolute;\n inset: var(--sbb-option-focus-outline-inset);\n pointer-events: none;\n border: var(--sbb-focus-outline-width) solid var(--sbb-option-focus-outline-color);\n border-radius: var(--sbb-option-border-radius);\n}\n\n:host(:not(:is(:state(disabled),[state--disabled]))) .sbb-option__label--highlight {\n font-weight: bold;\n}\n@media (forced-colors: active) {\n :host(:not(:is(:state(disabled),[state--disabled]))) .sbb-option__label--highlight {\n color: Highlight;\n }\n}\n\n.sbb-option__icon {\n display: flex;\n min-width: var(--sbb-size-icon-ui-small);\n min-height: var(--sbb-size-icon-ui-small);\n color: var(--sbb-option-icon-color);\n}\n:host(:not(:is(:state(slotted-icon),[state--slotted-icon]), :is(:state(has-icon-name),[state--has-icon-name]))) .sbb-option__icon {\n display: var(--sbb-option-icon-container-display, none);\n}\n\n.sbb-option__label {\n text-overflow: var(--sbb-option-text-overflow);\n overflow: var(--sbb-option-overflow);\n white-space: var(--sbb-option-white-space, initial);\n}\n";
129
+
130
+ //#endregion
131
+ //#region src/elements-experimental/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.ts
132
+ const autocompleteGridOptionId = `sbb-autocomplete-grid-option`;
133
+ /**
134
+ * It displays an option item which can be used in `sbb-autocomplete-grid`.
135
+ *
136
+ * @slot - Use the unnamed slot to add content to the option label.
137
+ * @slot icon - Use this slot to provide an icon. If `icon-name` is set, a sbb-icon will be used.
138
+ * @cssprop [--sbb-option-icon-container-display=none] - Can be used to reserve space even
139
+ * when preserve-icon-space on autocomplete is not set or iconName is not set.
140
+ * @overrideType value - T = string
141
+ */
142
+ var SbbAutocompleteGridOptionElement = class extends SbbOptionBaseElement {
143
+ static {
144
+ this.elementName = "sbb-autocomplete-grid-option";
145
+ }
146
+ static {
147
+ this.role = "gridcell";
148
+ }
149
+ static {
150
+ this.styles = [unsafeCSS(autocomplete_grid_option_default)];
151
+ }
152
+ constructor() {
153
+ super();
154
+ this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete-grid-optgroup"), {
155
+ disabled: (p) => {
156
+ this.disabledFromGroup = p.disabled;
157
+ ɵstateController(this.closest?.("sbb-autocomplete-grid-row"))?.toggle("disabled", this.disabled || this.disabledFromGroup);
158
+ this.updateAriaDisabled();
159
+ },
160
+ label: (p) => this.groupLabel = p.label
161
+ }));
162
+ }
163
+ willUpdate(changedProperties) {
164
+ super.willUpdate(changedProperties);
165
+ if (changedProperties.has("disabled")) {
166
+ ɵstateController(this.closest?.("sbb-autocomplete-grid-row"))?.toggle("disabled", this.disabled || this.disabledFromGroup);
167
+ this.updateAriaDisabled();
168
+ }
169
+ }
170
+ selectByClick(event) {
171
+ if (this.disabled || this.disabledFromGroup) {
172
+ event.stopPropagation();
173
+ return;
174
+ }
175
+ this.selectViaUserInteraction(true);
176
+ }
177
+ };
178
+
179
+ //#endregion
180
+ //#region src/elements-experimental/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.scss?inline
181
+ var autocomplete_grid_row_default = ":host {\n display: block;\n}\n\n:host(:is(:state(negative),[state--negative])) {\n --sbb-autocomplete-grid-row-color: var(--sbb-color-3-negative);\n --sbb-autocomplete-grid-row-background-color-hover: var(--sbb-background-color-3-negative);\n --sbb-autocomplete-grid-row-disabled-border-color: var(--sbb-border-color-5);\n --sbb-autocomplete-grid-row-disabled-background-color: var(--sbb-background-color-3-negative);\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n}\n\n@media (any-hover: hover) {\n :host(:hover:not(:is(:state(disabled),[state--disabled]))) {\n --sbb-autocomplete-grid-row-background-color: var(\n --sbb-autocomplete-grid-row-background-color-hover\n );\n }\n}\n\n:host(:is(:state(disabled),[state--disabled])) {\n --sbb-autocomplete-grid-row-cursor: var(--sbb-cursor-default);\n}\n@media (forced-colors: active) {\n :host(:is(:state(disabled),[state--disabled])) {\n --sbb-autocomplete-grid-row-color: GrayText;\n }\n}\n\n::slotted(sbb-autocomplete-grid-option) {\n flex: 1 1 auto;\n margin-right: calc(-1 * var(--sbb-spacing-fixed-2x));\n overflow-x: hidden;\n}\n\n.sbb-autocomplete-grid-row {\n display: flex;\n align-items: center;\n padding-inline-end: var(--sbb-autocomplete-grid-row-padding-inline-end);\n justify-content: var(--sbb-autocomplete-grid-row-justify-content);\n gap: var(--sbb-spacing-fixed-6x);\n color: var(--sbb-autocomplete-grid-row-color);\n background-color: var(--sbb-autocomplete-grid-row-background-color, inherit);\n cursor: var(--sbb-autocomplete-grid-row-cursor);\n -webkit-tap-highlight-color: transparent;\n -webkit-text-fill-color: var(--sbb-autocomplete-grid-row-color);\n}\n:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row {\n position: relative;\n z-index: 0;\n}\n:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0.375rem;\n border: var(--sbb-border-width-1x) dashed var(--sbb-autocomplete-grid-row-disabled-border-color);\n border-radius: var(--sbb-border-radius-2x);\n background-color: var(--sbb-autocomplete-grid-row-disabled-background-color);\n z-index: -1;\n}\n@media (forced-colors: active) {\n :host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row::before {\n border-color: GrayText;\n }\n}\n";
182
+
183
+ //#endregion
184
+ //#region src/elements-experimental/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.ts
185
+ let autocompleteRowNextId = 0;
186
+ /**
187
+ * The component is used as a wrapper for options and action buttons.
188
+ *
189
+ * @slot - Use the unnamed slot to add a `sbb-autocomplete-grid-option` and a `sbb-autocomplete-grid-cell` with one or more `sbb-autocomplete-grid-button`.
190
+ */
191
+ var SbbAutocompleteGridRowElement = class extends SbbElement {
192
+ static {
193
+ this.elementName = "sbb-autocomplete-grid-row";
194
+ }
195
+ static {
196
+ this.role = "row";
197
+ }
198
+ static {
199
+ this.styles = [unsafeCSS(autocomplete_grid_row_default)];
200
+ }
201
+ connectedCallback() {
202
+ super.connectedCallback();
203
+ this.id ||= `sbb-autocomplete-grid-row-${++autocompleteRowNextId}`;
204
+ }
205
+ render() {
206
+ return html`
207
+ <span class="sbb-autocomplete-grid-row">
208
+ <slot></slot>
209
+ </span>
210
+ `;
211
+ }
212
+ };
213
+
214
+ //#endregion
215
+ //#region src/elements-experimental/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.ts
216
+ let nextId = 0;
217
+ /**
218
+ * On Safari, the aria role 'listbox' must be on the host element, or else VoiceOver won't work at all.
219
+ * On the other hand, JAWS and NVDA need the role to be "closer" to the options, or else optgroups won't work.
220
+ */
221
+ const ariaRoleOnHost = isSafari;
222
+ /**
223
+ * Combined with a native input, it displays a panel with a list of available options with connected buttons.
224
+ *
225
+ * @slot - Use the unnamed slot to add `sbb-autocomplete-grid-row` or `sbb-autocomplete-grid-optgroup` elements to the `sbb-autocomplete-grid`.
226
+ * @cssprop [--sbb-autocomplete-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
227
+ * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
228
+ * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
229
+ * @cssprop [--sbb-options-panel-max-height] - Maximum height of the options panel.
230
+ * If the calculated remaining space is smaller, the value gets ignored.
231
+ */
232
+ var SbbAutocompleteGridElement = class extends SbbAutocompleteBaseElement {
233
+ constructor() {
234
+ super(...arguments);
235
+ this.overlayId = `sbb-autocomplete-grid-${++nextId}`;
236
+ this.panelRole = "grid";
237
+ this._activeColumnIndex = 0;
238
+ }
239
+ static {
240
+ this.elementName = "sbb-autocomplete-grid";
241
+ }
242
+ static {
243
+ this.role = ariaRoleOnHost ? "grid" : null;
244
+ }
245
+ get options() {
246
+ return Array.from(this.querySelectorAll?.("sbb-autocomplete-grid-option") ?? []);
247
+ }
248
+ syncNegative() {
249
+ this.querySelectorAll?.("sbb-divider, sbb-autocomplete-grid-button, sbb-option-hint").forEach((e) => e.negative = this.negative);
250
+ this.querySelectorAll?.("sbb-autocomplete-grid-row, sbb-autocomplete-grid-option, sbb-autocomplete-grid-optgroup").forEach((element) => ɵstateController(element).toggle("negative", this.negative));
251
+ }
252
+ openedPanelKeyboardInteraction(event) {
253
+ if (!this.isOpen) return;
254
+ switch (event.key) {
255
+ case "Enter":
256
+ this.selectByKeyboard(event);
257
+ break;
258
+ case "ArrowDown":
259
+ case "ArrowUp":
260
+ this.setNextActiveOption(event);
261
+ break;
262
+ case "ArrowRight":
263
+ case "ArrowLeft":
264
+ this._setNextHorizontalActiveElement(event);
265
+ break;
266
+ }
267
+ }
268
+ /**
269
+ * Select an element on 'Enter' keypress.
270
+ *
271
+ * Due to keyboard navigation code, the `_activeColumnIndex` is zero when an option is 'focused'
272
+ * and greater than zero when a button is 'focused', so asking for `querySelectorAll(...)[this._activeColumnIndex]`
273
+ * would always return a `SbbAutocompleteGridButtonElement`.
274
+ */
275
+ selectByKeyboard(event) {
276
+ if (this.activeOption) {
277
+ event.preventDefault();
278
+ if (this._activeColumnIndex !== 0) this.activeOption.closest("sbb-autocomplete-grid-row")?.querySelectorAll("sbb-autocomplete-grid-button")[this._activeColumnIndex - 1]?.click();
279
+ else this.activeOption["selectViaUserInteraction"](true);
280
+ }
281
+ }
282
+ setNextActiveOption(event) {
283
+ const enabledOptions = this.options.filter((opt) => !opt.matches(":is(:state(disabled),[state--disabled])"));
284
+ this.activeOption?.setActive(false);
285
+ this.triggerElement.ariaActiveDescendantElement = null;
286
+ Array.from(this.querySelectorAll?.("sbb-autocomplete-grid-row :is(:state(focus-visible),[state--focus-visible])") ?? []).forEach((row) => ɵstateController(row).delete("focus-visible"));
287
+ this._activeColumnIndex = 0;
288
+ if (!enabledOptions.length) {
289
+ this.activeOption = null;
290
+ return;
291
+ }
292
+ const next = getNextElementIndex(event, this.activeOption ? enabledOptions.indexOf(this.activeOption) : -1, enabledOptions.length);
293
+ this.activeOption = enabledOptions[next];
294
+ this.activeOption.setActive(true);
295
+ this.triggerElement.ariaActiveDescendantElement = this.activeOption;
296
+ this.activeOption.scrollIntoView({ block: "nearest" });
297
+ if (event) event.preventDefault();
298
+ if (this.autoSelectActiveOption && event) this.setPendingSelection(this.activeOption);
299
+ }
300
+ _setNextHorizontalActiveElement(event) {
301
+ if (!this.activeOption) return;
302
+ const elementsInRow = Array.from(this.activeOption?.closest("sbb-autocomplete-grid-row")?.querySelectorAll("sbb-autocomplete-grid-option, sbb-autocomplete-grid-button") ?? [])?.filter((el) => !el.matches(":is(:state(disabled),[state--disabled])"));
303
+ if (!elementsInRow.length) return;
304
+ const next = getNextElementIndex(event, this._activeColumnIndex, elementsInRow.length);
305
+ const nextElement = elementsInRow[next];
306
+ if (nextElement instanceof SbbAutocompleteGridOptionElement) nextElement.setActive(true);
307
+ else ɵstateController(nextElement).add("focus-visible");
308
+ const lastActiveElement = elementsInRow[this._activeColumnIndex];
309
+ if (lastActiveElement instanceof SbbAutocompleteGridOptionElement) lastActiveElement.setActive(false);
310
+ else ɵstateController(lastActiveElement).delete("focus-visible");
311
+ this.triggerElement.ariaActiveDescendantElement = nextElement;
312
+ nextElement.scrollIntoView({ block: "nearest" });
313
+ this._activeColumnIndex = next;
314
+ }
315
+ resetActiveElement() {
316
+ if (this._activeColumnIndex !== 0) this.activeOption?.closest("sbb-autocomplete-grid-row")?.querySelectorAll("sbb-autocomplete-grid-button").forEach((e) => ɵstateController(e).delete("focus-visible"));
317
+ this.activeOption?.setActive(false);
318
+ this.activeOption = null;
319
+ this._activeColumnIndex = 0;
320
+ if (this.triggerElement) this.triggerElement.ariaActiveDescendantElement = null;
321
+ }
322
+ setTriggerAttributes(element) {
323
+ setAriaComboBoxAttributes(element, ariaRoleOnHost ? this.id : this.overlayId, false, "grid");
324
+ }
325
+ };
326
+
327
+ //#endregion
328
+ export { SbbAutocompleteGridButtonElement, SbbAutocompleteGridCellElement, SbbAutocompleteGridElement, SbbAutocompleteGridOptgroupElement, SbbAutocompleteGridOptionElement, SbbAutocompleteGridRowElement, autocompleteGridOptionId };
@@ -24,4 +24,3 @@ export declare const durationToTime: (duration: number, currentLanguage?: string
24
24
  short: string;
25
25
  long: string;
26
26
  };
27
- //# sourceMappingURL=date-helper.d.ts.map
@@ -1,5 +1,6 @@
1
- import { TemplateResult } from 'lit';
2
- import { Leg } from './timetable-properties.ts';
1
+ import type { TemplateResult } from 'lit';
2
+ import type { Leg } from './timetable-properties.ts';
3
+ import '@sbb-esta/lyne-elements/icon.pure.js';
3
4
  interface IAccessAttribute {
4
5
  duration: number;
5
6
  text: string;
@@ -23,4 +24,3 @@ export declare function getDepartureArrivalTimeAttribute(legs: Leg[], departureW
23
24
  arrivalTimeAttribute: IAccessAttribute | null;
24
25
  };
25
26
  export {};
26
- //# sourceMappingURL=access-leg-helper.d.ts.map
@@ -1,4 +1,4 @@
1
- import { Leg, Notice } from './timetable-properties.ts';
1
+ import type { Leg, Notice } from './timetable-properties.ts';
2
2
  export declare const isRideLeg: (leg: any) => leg is Extract<Leg, {
3
3
  __typename: "PTRideLeg";
4
4
  }>;
@@ -9,4 +9,3 @@ export declare const extractTimeAndStringFromNoticeText: (notice?: Notice) => {
9
9
  duration: number;
10
10
  text: string;
11
11
  };
12
- //# sourceMappingURL=timetable-helper.d.ts.map
@@ -22,6 +22,8 @@ export interface ServiceAlteration {
22
22
  *
23
23
  */
24
24
  delayText: string;
25
+ /** Cancelled Expected Flag */
26
+ cancelledExpected?: boolean;
25
27
  /** Journey is partially cancelled at beginning or end */
26
28
  partiallyCancelled: boolean;
27
29
  /** If partiallyCancelled, enduser info */
@@ -305,4 +307,3 @@ export interface ServiceJourney {
305
307
  /** List of stop points */
306
308
  stopPoints: ScheduledStopPoint[];
307
309
  }
308
- //# sourceMappingURL=timetable-properties.d.ts.map
@@ -3,4 +3,3 @@ export * from './core/datetime/date-helper.ts';
3
3
  export * from './core/timetable/access-leg-helper.ts';
4
4
  export * from './core/timetable/timetable-helper.ts';
5
5
  export * from './core/timetable/timetable-properties.ts';
6
- //# sourceMappingURL=core.d.ts.map