@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
package/README.md ADDED
@@ -0,0 +1,55 @@
1
+ # Lyne Components
2
+
3
+ > Lyne Components are the building blocks of the Lyne Design System
4
+ > and are based on standard compliant Web Components
5
+ > created using [Lit](https://lit.dev/) and
6
+ > browsable through [Storybook](https://lyne-storybook.app.sbb.ch/)
7
+
8
+ ## 🎯 Our aim
9
+
10
+ To fulfill our [Vision](./docs/VISION.md), we are building and maintaining Lyne, our Design System, which is and acts
11
+ as our common language — our Single Source of Truth.
12
+ For this purpose we use [Design Tokens](https://github.com/sbb-design-systems/lyne-design-tokens) as our design abstractions.
13
+ Those [Design Tokens](https://github.com/sbb-design-systems/lyne-design-tokens) are consumed by Lyne Components and are integrated within our documentation.
14
+
15
+ Lyne Design Tokens and Lyne Components are available for developers and designers.
16
+
17
+ ## 📚 Documentation
18
+
19
+ - General docs: [digital.sbb.ch](https://digital.sbb.ch)
20
+ - Component docs: [Storybook](https://lyne-storybook.app.sbb.ch)
21
+ - [Getting started guide](./docs/GETTING_STARTED.md)
22
+
23
+ ## 🔗 Packages
24
+
25
+ | Package | Description |
26
+ | -------------------------------------- | --------------------------------------------------------------------------- |
27
+ | `@sbb-esta/lyne-elements` | Web components built on top of the Lyne Design System |
28
+ | `@sbb-esta/lyne-elements-experimental` | Web components that do not yet align with our architecture or testing goals |
29
+ | `@sbb-esta/lyne-react` | React wrappers for `@sbb-esta/lyne-elements` |
30
+ | `@sbb-esta/lyne-react-experimental` | React wrappers for `@sbb-esta/lyne-elements-experimental` |
31
+
32
+ - [NPM Packages](https://www.npmjs.com/search?q=%40sbb-esta%2Flyne-)
33
+
34
+ ## 🖥 Browser and screen reader support
35
+
36
+ This library supports the most recent two versions of all major browsers: Chrome (including Android), Firefox, Safari (including iOS), and Edge.
37
+
38
+ We aim for great user experience with the following screen readers:
39
+
40
+ Windows: NVDA and JAWS with FF / Chrome.
41
+ macOS: VoiceOver with Safari / Chrome.
42
+ iOS: VoiceOver with Safari
43
+ Android: Android Accessibility Suite (formerly TalkBack) with Chrome.
44
+
45
+ ## 🙌 Contributing
46
+
47
+ - [General contribution guide](./docs/CONTRIBUTING.md)
48
+ - [Developer guide](./docs/DEVELOPER.md) for developers to get started working with this repo.
49
+ - [Coding standards](./docs/CODING_STANDARDS.md) for developers.
50
+ - [Code of conduct](./docs/CODE_OF_CONDUCT.md)
51
+
52
+ ## 📝 License
53
+
54
+ This software is published by SBB-CFF-FFS under the [MIT](/LICENSE) licence and unsupported unless otherwise clearly stated.
55
+ Use at your own risk.
@@ -0,0 +1,86 @@
1
+ import { __esDecorate as v, __runInitializers as f } from "tslib";
2
+ import { SbbAutocompleteBaseElement as g } from "@sbb-esta/lyne-elements/autocomplete.js";
3
+ import { getNextElementIndex as m } from "@sbb-esta/lyne-elements/core/a11y.js";
4
+ import { isSafari as A } from "@sbb-esta/lyne-elements/core/dom.js";
5
+ import { ɵstateController as a } from "@sbb-esta/lyne-elements/core/mixins.js";
6
+ import { setAriaComboBoxAttributes as O } from "@sbb-esta/lyne-elements/core/overlay.js";
7
+ import { customElement as x } from "lit/decorators.js";
8
+ import { SbbAutocompleteGridOptionElement as b } from "../autocomplete-grid-option.js";
9
+ let y = 0;
10
+ const d = A;
11
+ let D = (() => {
12
+ var o;
13
+ let p = [x("sbb-autocomplete-grid")], n, c = [], i, u = g;
14
+ return o = class extends u {
15
+ constructor() {
16
+ super(...arguments), this.overlayId = `sbb-autocomplete-grid-${++y}`, this.panelRole = "grid", this._activeColumnIndex = 0;
17
+ }
18
+ get options() {
19
+ return Array.from(this.querySelectorAll?.("sbb-autocomplete-grid-option") ?? []);
20
+ }
21
+ syncNegative() {
22
+ this.querySelectorAll?.("sbb-divider, sbb-autocomplete-grid-button, sbb-option-hint").forEach((t) => t.negative = this.negative), this.querySelectorAll?.("sbb-autocomplete-grid-row, sbb-autocomplete-grid-option, sbb-autocomplete-grid-optgroup").forEach((t) => a(t).toggle("negative", this.negative));
23
+ }
24
+ openedPanelKeyboardInteraction(t) {
25
+ if (this.isOpen)
26
+ switch (t.key) {
27
+ case "Enter":
28
+ this.selectByKeyboard(t);
29
+ break;
30
+ case "ArrowDown":
31
+ case "ArrowUp":
32
+ this.setNextActiveOption(t);
33
+ break;
34
+ case "ArrowRight":
35
+ case "ArrowLeft":
36
+ this._setNextHorizontalActiveElement(t);
37
+ break;
38
+ }
39
+ }
40
+ /**
41
+ * Select an element on 'Enter' keypress.
42
+ *
43
+ * Due to keyboard navigation code, the `_activeColumnIndex` is zero when an option is 'focused'
44
+ * and greater than zero when a button is 'focused', so asking for `querySelectorAll(...)[this._activeColumnIndex]`
45
+ * would always return a `SbbAutocompleteGridButtonElement`.
46
+ */
47
+ selectByKeyboard(t) {
48
+ this.activeOption && (t.preventDefault(), this._activeColumnIndex !== 0 ? this.activeOption.closest("sbb-autocomplete-grid-row")?.querySelectorAll("sbb-autocomplete-grid-button")[
49
+ // We ignore the option in the selector. Therefore, we have to shift the activeColumnIndex by one.
50
+ this._activeColumnIndex - 1
51
+ ]?.click() : this.activeOption.selectViaUserInteraction(!0));
52
+ }
53
+ setNextActiveOption(t) {
54
+ const e = this.options.filter((r) => !r.matches(":is(:state(disabled),[state--disabled])"));
55
+ if (this.activeOption?.setActive(!1), this.triggerElement?.removeAttribute("aria-activedescendant"), Array.from(this.querySelectorAll?.("sbb-autocomplete-grid-row :is(:state(focus-visible),[state--focus-visible])") ?? []).forEach((r) => a(r).delete("focus-visible")), this._activeColumnIndex = 0, !e.length) {
56
+ this.activeOption = null;
57
+ return;
58
+ }
59
+ const l = this.activeOption ? e.indexOf(this.activeOption) : -1, s = m(t, l, e.length);
60
+ this.activeOption = e[s], this.activeOption.setActive(!0), this.triggerElement?.setAttribute("aria-activedescendant", this.activeOption.id), this.activeOption.scrollIntoView({ block: "nearest" }), t && t.preventDefault(), this.autoSelectActiveOption && t && this.setPendingSelection(this.activeOption);
61
+ }
62
+ _setNextHorizontalActiveElement(t) {
63
+ if (!this.activeOption)
64
+ return;
65
+ const e = Array.from(this.activeOption?.closest("sbb-autocomplete-grid-row")?.querySelectorAll("sbb-autocomplete-grid-option, sbb-autocomplete-grid-button") ?? [])?.filter((h) => !h.matches(":is(:state(disabled),[state--disabled])"));
66
+ if (!e.length)
67
+ return;
68
+ const l = m(t, this._activeColumnIndex, e.length), s = e[l];
69
+ s instanceof b ? s.setActive(!0) : a(s).add("focus-visible");
70
+ const r = e[this._activeColumnIndex];
71
+ r instanceof b ? r.setActive(!1) : a(r).delete("focus-visible"), this.triggerElement?.setAttribute("aria-activedescendant", s.id), s.scrollIntoView({ block: "nearest" }), this._activeColumnIndex = l;
72
+ }
73
+ resetActiveElement() {
74
+ this._activeColumnIndex !== 0 && this.activeOption?.closest("sbb-autocomplete-grid-row")?.querySelectorAll("sbb-autocomplete-grid-button").forEach((t) => a(t).delete("focus-visible")), this.activeOption?.setActive(!1), this.activeOption = null, this._activeColumnIndex = 0, this.triggerElement?.removeAttribute("aria-activedescendant");
75
+ }
76
+ setTriggerAttributes(t) {
77
+ O(t, d ? this.id : this.overlayId, !1, "grid");
78
+ }
79
+ }, i = o, (() => {
80
+ const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(u[Symbol.metadata] ?? null) : void 0;
81
+ v(null, n = { value: i }, p, { kind: "class", name: i.name, metadata: t }, null, c), i = n.value, t && Object.defineProperty(i, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
82
+ })(), o.role = d ? "grid" : null, f(i, c), i;
83
+ })();
84
+ export {
85
+ D as SbbAutocompleteGridElement
86
+ };
@@ -0,0 +1,54 @@
1
+ import { __esDecorate as o, __runInitializers as n } from "tslib";
2
+ import { miniButtonStyle as d } from "@sbb-esta/lyne-elements/button/common.js";
3
+ import { SbbActionBaseElement as u } from "@sbb-esta/lyne-elements/core/base-elements.js";
4
+ import { SbbPropertyWatcherController as b } from "@sbb-esta/lyne-elements/core/controllers.js";
5
+ import { hostAttributes as c } from "@sbb-esta/lyne-elements/core/decorators.js";
6
+ import { isEventPrevented as m } from "@sbb-esta/lyne-elements/core/eventing.js";
7
+ import { SbbDisabledMixin as p, SbbNegativeMixin as h } from "@sbb-esta/lyne-elements/core/mixins.js";
8
+ import { boxSizingStyles as f } from "@sbb-esta/lyne-elements/core/styles.js";
9
+ import { SbbIconNameMixin as S } from "@sbb-esta/lyne-elements/icon.js";
10
+ import { isServer as g } from "lit";
11
+ import { customElement as _ } from "lit/decorators.js";
12
+ let y = 0, M = (() => {
13
+ var t;
14
+ let l = [_("sbb-autocomplete-grid-button"), c({
15
+ tabindex: null
16
+ })], i, r = [], s, a = p(h(S(u)));
17
+ return t = class extends a {
18
+ /** Gets the SbbAutocompleteGridOptionElement on the same row of the button. */
19
+ get option() {
20
+ return this.closest("sbb-autocomplete-grid-row")?.querySelector("sbb-autocomplete-grid-option") || null;
21
+ }
22
+ get optgroup() {
23
+ return this.closest("sbb-autocomplete-grid-optgroup");
24
+ }
25
+ constructor() {
26
+ super(), this._handleButtonClick = async (e) => {
27
+ await m(e) || this.closest("form");
28
+ }, this.internals.states.add("button"), g || (this.setupBaseEventHandlers(), this.addEventListener("click", this._handleButtonClick), this.addController(new b(this, () => this.closest("sbb-autocomplete-grid-optgroup"), {
29
+ disabled: () => this._updateInternals()
30
+ })));
31
+ }
32
+ isDisabledExternally() {
33
+ return this.optgroup?.disabled ?? !1;
34
+ }
35
+ renderTemplate() {
36
+ return super.renderIconSlot();
37
+ }
38
+ connectedCallback() {
39
+ super.connectedCallback(), this.id ||= `sbb-autocomplete-grid-button-${++y}`;
40
+ }
41
+ willUpdate(e) {
42
+ super.willUpdate(e), e.has("disabled") && this._updateInternals();
43
+ }
44
+ _updateInternals() {
45
+ this.disabled || this.optgroup?.disabled ? (this.internals.states.add("disabled"), this.internals.ariaDisabled = "true") : (this.internals.states.delete("disabled"), this.internals.ariaDisabled = null);
46
+ }
47
+ }, s = t, (() => {
48
+ const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(a[Symbol.metadata] ?? null) : void 0;
49
+ o(null, i = { value: s }, l, { kind: "class", name: s.name, metadata: e }, null, r), s = i.value, e && Object.defineProperty(s, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
50
+ })(), t.role = "button", t.styles = [f, d], n(s, r), s;
51
+ })();
52
+ export {
53
+ M as SbbAutocompleteGridButtonElement
54
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbAutocompleteGridButtonElement as o } from "./autocomplete-grid-button/autocomplete-grid-button.component.js";
2
+ export {
3
+ o as SbbAutocompleteGridButtonElement
4
+ };
@@ -0,0 +1,25 @@
1
+ import { __esDecorate as o, __runInitializers as c } from "tslib";
2
+ import { SbbElementInternalsMixin as m } from "@sbb-esta/lyne-elements/core/mixins.js";
3
+ import { boxSizingStyles as n } from "@sbb-esta/lyne-elements/core/styles.js";
4
+ import { css as b, LitElement as u, html as p } from "lit";
5
+ import { customElement as d } from "lit/decorators.js";
6
+ const f = b`:host{display:block}.sbb-autocomplete-grid-cell{display:flex;column-gap:var(--sbb-spacing-fixed-6x)}`;
7
+ let h = (() => {
8
+ var t;
9
+ let i = [d("sbb-autocomplete-grid-cell")], a, s = [], e, r = m(u);
10
+ return t = class extends r {
11
+ render() {
12
+ return p`
13
+ <span class="sbb-autocomplete-grid-cell">
14
+ <slot></slot>
15
+ </span>
16
+ `;
17
+ }
18
+ }, e = t, (() => {
19
+ const l = typeof Symbol == "function" && Symbol.metadata ? Object.create(r[Symbol.metadata] ?? null) : void 0;
20
+ o(null, a = { value: e }, i, { kind: "class", name: e.name, metadata: l }, null, s), e = a.value, l && Object.defineProperty(e, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: l });
21
+ })(), t.role = "gridcell", t.styles = [n, f], c(e, s), e;
22
+ })();
23
+ export {
24
+ h as SbbAutocompleteGridCellElement
25
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbAutocompleteGridCellElement as o } from "./autocomplete-grid-cell/autocomplete-grid-cell.component.js";
2
+ export {
3
+ o as SbbAutocompleteGridCellElement
4
+ };
@@ -0,0 +1,29 @@
1
+ import { __esDecorate as i, __runInitializers as n } from "tslib";
2
+ import { SbbPropertyWatcherController as u } from "@sbb-esta/lyne-elements/core/controllers.js";
3
+ import { SbbOptgroupBaseElement as c } from "@sbb-esta/lyne-elements/option/optgroup.js";
4
+ import { customElement as m } from "lit/decorators.js";
5
+ let f = (() => {
6
+ var e;
7
+ let s = [m("sbb-autocomplete-grid-optgroup")], o, a = [], t, l = c;
8
+ return e = class extends l {
9
+ get options() {
10
+ return Array.from(this.querySelectorAll?.("sbb-autocomplete-grid-option") ?? []);
11
+ }
12
+ constructor() {
13
+ super(), this.addController(new u(this, () => this.closest("sbb-autocomplete-grid"), {
14
+ negative: (r) => {
15
+ this.toggleState("negative", r.negative), this.requestUpdate();
16
+ }
17
+ }));
18
+ }
19
+ getAutocompleteParent() {
20
+ return this.closest?.("sbb-autocomplete-grid") || null;
21
+ }
22
+ }, t = e, (() => {
23
+ const r = typeof Symbol == "function" && Symbol.metadata ? Object.create(l[Symbol.metadata] ?? null) : void 0;
24
+ i(null, o = { value: t }, s, { kind: "class", name: t.name, metadata: r }, null, a), t = o.value, r && Object.defineProperty(t, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: r }), n(t, a);
25
+ })(), t;
26
+ })();
27
+ export {
28
+ f as SbbAutocompleteGridOptgroupElement
29
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbAutocompleteGridOptgroupElement as t } from "./autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js";
2
+ export {
3
+ t as SbbAutocompleteGridOptgroupElement
4
+ };
@@ -0,0 +1,41 @@
1
+ import { __esDecorate as n, __runInitializers as c } from "tslib";
2
+ import { SbbPropertyWatcherController as l } from "@sbb-esta/lyne-elements/core/controllers.js";
3
+ import { ɵstateController as b } from "@sbb-esta/lyne-elements/core/mixins.js";
4
+ import { boxSizingStyles as p } from "@sbb-esta/lyne-elements/core/styles.js";
5
+ import { SbbOptionBaseElement as d } from "@sbb-esta/lyne-elements/option.js";
6
+ import { customElement as h } from "lit/decorators.js";
7
+ import { css as m } from "lit";
8
+ const u = m`:host{--sbb-option-color: var(--sbb-color-3);--sbb-option-column-gap: var(--sbb-spacing-responsive-xxxs);--sbb-option-icon-color: var(--sbb-color-metal);--sbb-option-icon-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));--sbb-option-border-radius: var(--sbb-border-radius-4x);--sbb-option-padding-inline: var(--sbb-spacing-responsive-xxxs);--sbb-option-min-height: var(--sbb-size-element-s);--sbb-option-focus-outline-color: transparent;--sbb-option-focus-outline-inset: var(--sbb-spacing-fixed-1x);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(: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{--sbb-text-font-size: var(--sbb-text-font-size-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);position:relative;display:flex;align-items:center;column-gap:var(--sbb-option-column-gap);justify-content:start;min-height:var(--sbb-option-min-height);padding-inline:var(--sbb-option-padding-inline);color:var(--sbb-option-color)}.sbb-option:after{content:"";display:block;position:absolute;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)}: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{display:flex;min-width:var(--sbb-size-icon-ui-small);min-height:var(--sbb-size-icon-ui-small);color:var(--sbb-option-icon-color)}: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)}`, g = "sbb-autocomplete-grid-option";
9
+ let z = (() => {
10
+ var o;
11
+ let r = [h("sbb-autocomplete-grid-option")], e, s = [], i, a = d;
12
+ return o = class extends a {
13
+ constructor() {
14
+ super(), this.optionId = g, this.addController(new l(this, () => this.closest("sbb-autocomplete-grid-optgroup"), {
15
+ disabled: (t) => {
16
+ this.disabledFromGroup = t.disabled, b(this.closest?.("sbb-autocomplete-grid-row"))?.toggle("disabled", this.disabled || this.disabledFromGroup), this.updateAriaDisabled();
17
+ },
18
+ label: (t) => this.groupLabel = t.label
19
+ })), this.addController(new l(this, () => this.closest("sbb-autocomplete-grid"), {
20
+ negative: (t) => this.toggleState("negative", t.negative)
21
+ }));
22
+ }
23
+ willUpdate(t) {
24
+ super.willUpdate(t), t.has("disabled") && (b(this.closest?.("sbb-autocomplete-grid-row"))?.toggle("disabled", this.disabled || this.disabledFromGroup), this.updateAriaDisabled());
25
+ }
26
+ selectByClick(t) {
27
+ if (this.disabled || this.disabledFromGroup) {
28
+ t.stopPropagation();
29
+ return;
30
+ }
31
+ this.selectViaUserInteraction(!0);
32
+ }
33
+ }, i = o, (() => {
34
+ const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(a[Symbol.metadata] ?? null) : void 0;
35
+ n(null, e = { value: i }, r, { kind: "class", name: i.name, metadata: t }, null, s), i = e.value, t && Object.defineProperty(i, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
36
+ })(), o.role = "gridcell", o.styles = [p, u], c(i, s), i;
37
+ })();
38
+ export {
39
+ z as SbbAutocompleteGridOptionElement,
40
+ g as autocompleteGridOptionId
41
+ };
@@ -0,0 +1,5 @@
1
+ import { SbbAutocompleteGridOptionElement as e, autocompleteGridOptionId as p } from "./autocomplete-grid-option/autocomplete-grid-option.component.js";
2
+ export {
3
+ e as SbbAutocompleteGridOptionElement,
4
+ p as autocompleteGridOptionId
5
+ };
@@ -0,0 +1,28 @@
1
+ import { __esDecorate as l, __runInitializers as i } from "tslib";
2
+ import { SbbElementInternalsMixin as c } from "@sbb-esta/lyne-elements/core/mixins.js";
3
+ import { boxSizingStyles as d } from "@sbb-esta/lyne-elements/core/styles.js";
4
+ import { css as n, LitElement as u, html as g } from "lit";
5
+ import { customElement as m } from "lit/decorators.js";
6
+ const p = n`:host{--sbb-autocomplete-grid-row-color: var(--sbb-color-3);--sbb-autocomplete-grid-row-background-color: inherit;--sbb-autocomplete-grid-row-background-color-hover: var(--sbb-background-color-3);--sbb-autocomplete-grid-row-disabled-border-color: var(--sbb-color-graphite);--sbb-autocomplete-grid-row-disabled-border-color: light-dark( var(--sbb-color-graphite), var(--sbb-color-smoke) );--sbb-autocomplete-grid-row-disabled-background-color: var(--sbb-background-color-3);--sbb-autocomplete-grid-row-padding-inline-end: var(--sbb-spacing-responsive-xxxs);--sbb-autocomplete-grid-row-justify-content: space-between;--sbb-autocomplete-grid-row-cursor: var(--sbb-cursor-pointer);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){flex:1 1 auto;margin-right:calc(-1 * var(--sbb-spacing-fixed-2x));overflow-x:hidden}.sbb-autocomplete-grid-row{display:flex;align-items:center;padding-inline-end:var(--sbb-autocomplete-grid-row-padding-inline-end);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);cursor:var(--sbb-autocomplete-grid-row-cursor);-webkit-tap-highlight-color:transparent;-webkit-text-fill-color:var(--sbb-autocomplete-grid-row-color)}:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row{position:relative;z-index:0}:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row:before{content:"";display:block;position:absolute;inset:.375rem;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}@media(forced-colors:active){:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row:before{border-color:GrayText}}`;
7
+ let v = 0, y = (() => {
8
+ var o;
9
+ let b = [m("sbb-autocomplete-grid-row")], t, a = [], e, s = c(u);
10
+ return o = class extends s {
11
+ connectedCallback() {
12
+ super.connectedCallback(), this.id ||= `sbb-autocomplete-grid-row-${++v}`;
13
+ }
14
+ render() {
15
+ return g`
16
+ <span class="sbb-autocomplete-grid-row">
17
+ <slot></slot>
18
+ </span>
19
+ `;
20
+ }
21
+ }, e = o, (() => {
22
+ const r = typeof Symbol == "function" && Symbol.metadata ? Object.create(s[Symbol.metadata] ?? null) : void 0;
23
+ l(null, t = { value: e }, b, { kind: "class", name: e.name, metadata: r }, null, a), e = t.value, r && Object.defineProperty(e, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: r });
24
+ })(), o.role = "row", o.styles = [d, p], i(e, a), e;
25
+ })();
26
+ export {
27
+ y as SbbAutocompleteGridRowElement
28
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbAutocompleteGridRowElement as t } from "./autocomplete-grid-row/autocomplete-grid-row.component.js";
2
+ export {
3
+ t as SbbAutocompleteGridRowElement
4
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbAutocompleteGridElement as t } from "./autocomplete-grid/autocomplete-grid.component.js";
2
+ export {
3
+ t as SbbAutocompleteGridElement
4
+ };
@@ -0,0 +1,15 @@
1
+ import { SbbAutocompleteGridElement as t } from "./autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js";
2
+ import { SbbAutocompleteGridButtonElement as m } from "./autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js";
3
+ import { SbbAutocompleteGridCellElement as l } from "./autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js";
4
+ import { SbbAutocompleteGridOptgroupElement as i } from "./autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js";
5
+ import { SbbAutocompleteGridOptionElement as u, autocompleteGridOptionId as d } from "./autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js";
6
+ import { SbbAutocompleteGridRowElement as G } from "./autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js";
7
+ export {
8
+ m as SbbAutocompleteGridButtonElement,
9
+ l as SbbAutocompleteGridCellElement,
10
+ t as SbbAutocompleteGridElement,
11
+ i as SbbAutocompleteGridOptgroupElement,
12
+ u as SbbAutocompleteGridOptionElement,
13
+ G as SbbAutocompleteGridRowElement,
14
+ d as autocompleteGridOptionId
15
+ };
@@ -0,0 +1,191 @@
1
+ import { i18nDurationDay as N, i18nDurationHour as h, i18nDurationMinute as T } from "@sbb-esta/lyne-elements/core/i18n.js";
2
+ import { n as w, d as y, i as U } from "../../isValid-m3_OsPaB.js";
3
+ import { t as d, c as g, b as m, m as I } from "../../toDate-Bw2KTWeq.js";
4
+ import { g as C, a as Y, d as F } from "../../differenceInMinutes-COvvdYsJ.js";
5
+ function x(e, t, n) {
6
+ const i = d(e, n?.in);
7
+ return isNaN(t) ? g(e, NaN) : (t && i.setDate(i.getDate() + t), i);
8
+ }
9
+ function z(e, t, n) {
10
+ return g(e, +d(e) + t);
11
+ }
12
+ function H(e, t, n) {
13
+ return z(e, t * m);
14
+ }
15
+ function S(e, t, n) {
16
+ const [i, s] = w(
17
+ n?.in,
18
+ e,
19
+ t
20
+ ), r = M(i, s), a = Math.abs(
21
+ y(i, s)
22
+ );
23
+ i.setDate(i.getDate() - r * a);
24
+ const o = +(M(i, s) === -r), u = r * (a - o);
25
+ return u === 0 ? 0 : u;
26
+ }
27
+ function M(e, t) {
28
+ const 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();
29
+ return n < 0 ? -1 : n > 0 ? 1 : n;
30
+ }
31
+ function Z(e, t, n) {
32
+ const [i, s] = w(
33
+ n?.in,
34
+ e,
35
+ t
36
+ ), r = (+i - +s) / m;
37
+ return C(n?.roundingMethod)(r);
38
+ }
39
+ function v(e, t, n) {
40
+ return x(e, -t, n);
41
+ }
42
+ function O(e, t) {
43
+ const n = () => g(t?.in, NaN), s = k(e);
44
+ let r;
45
+ if (s.date) {
46
+ const c = W(s.date, 2);
47
+ r = j(c.restDateString, c.year);
48
+ }
49
+ if (!r || isNaN(+r)) return n();
50
+ const a = +r;
51
+ let o = 0, u;
52
+ if (s.time && (o = A(s.time), isNaN(o)))
53
+ return n();
54
+ if (s.timezone) {
55
+ if (u = E(s.timezone), isNaN(u)) return n();
56
+ } else {
57
+ const c = new Date(a + o), p = d(0, t?.in);
58
+ return p.setFullYear(
59
+ c.getUTCFullYear(),
60
+ c.getUTCMonth(),
61
+ c.getUTCDate()
62
+ ), p.setHours(
63
+ c.getUTCHours(),
64
+ c.getUTCMinutes(),
65
+ c.getUTCSeconds(),
66
+ c.getUTCMilliseconds()
67
+ ), p;
68
+ }
69
+ return d(a + o + u, t?.in);
70
+ }
71
+ const l = {
72
+ dateTimeDelimiter: /[T ]/,
73
+ timeZoneDelimiter: /[Z ]/i,
74
+ timezone: /([Z+-].*)$/
75
+ }, _ = /^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/, b = /^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/, R = /^([+-])(\d{2})(?::?(\d{2}))?$/;
76
+ function k(e) {
77
+ const t = {}, n = e.split(l.dateTimeDelimiter);
78
+ let i;
79
+ if (n.length > 2)
80
+ return t;
81
+ if (/:/.test(n[0]) ? i = n[0] : (t.date = n[0], i = n[1], l.timeZoneDelimiter.test(t.date) && (t.date = e.split(l.timeZoneDelimiter)[0], i = e.substr(
82
+ t.date.length,
83
+ e.length
84
+ ))), i) {
85
+ const s = l.timezone.exec(i);
86
+ s ? (t.time = i.replace(s[1], ""), t.timezone = s[1]) : t.time = i;
87
+ }
88
+ return t;
89
+ }
90
+ function W(e, t) {
91
+ const n = new RegExp(
92
+ "^(?:(\\d{4}|[+-]\\d{" + (4 + t) + "})|(\\d{2}|[+-]\\d{" + (2 + t) + "})$)"
93
+ ), i = e.match(n);
94
+ if (!i) return { year: NaN, restDateString: "" };
95
+ const s = i[1] ? parseInt(i[1]) : null, r = i[2] ? parseInt(i[2]) : null;
96
+ return {
97
+ year: r === null ? s : r * 100,
98
+ restDateString: e.slice((i[1] || i[2]).length)
99
+ };
100
+ }
101
+ function j(e, t) {
102
+ if (t === null) return /* @__PURE__ */ new Date(NaN);
103
+ const n = e.match(_);
104
+ if (!n) return /* @__PURE__ */ new Date(NaN);
105
+ const i = !!n[4], s = f(n[1]), r = f(n[2]) - 1, a = f(n[3]), o = f(n[4]), u = f(n[5]) - 1;
106
+ if (i)
107
+ return G(t, o, u) ? J(t, o, u) : /* @__PURE__ */ new Date(NaN);
108
+ {
109
+ const c = /* @__PURE__ */ new Date(0);
110
+ return !q(t, r, a) || !B(t, s) ? /* @__PURE__ */ new Date(NaN) : (c.setUTCFullYear(t, r, Math.max(s, a)), c);
111
+ }
112
+ }
113
+ function f(e) {
114
+ return e ? parseInt(e) : 1;
115
+ }
116
+ function A(e) {
117
+ const t = e.match(b);
118
+ if (!t) return NaN;
119
+ const n = D(t[1]), i = D(t[2]), s = D(t[3]);
120
+ return K(n, i, s) ? n * m + i * I + s * 1e3 : NaN;
121
+ }
122
+ function D(e) {
123
+ return e && parseFloat(e.replace(",", ".")) || 0;
124
+ }
125
+ function E(e) {
126
+ if (e === "Z") return 0;
127
+ const t = e.match(R);
128
+ if (!t) return 0;
129
+ const n = t[1] === "+" ? -1 : 1, i = parseInt(t[2]), s = t[3] && parseInt(t[3]) || 0;
130
+ return P(i, s) ? n * (i * m + s * I) : NaN;
131
+ }
132
+ function J(e, t, n) {
133
+ const i = /* @__PURE__ */ new Date(0);
134
+ i.setUTCFullYear(e, 0, 4);
135
+ const s = i.getUTCDay() || 7, r = (t - 1) * 7 + n + 1 - s;
136
+ return i.setUTCDate(i.getUTCDate() + r), i;
137
+ }
138
+ const V = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
139
+ function $(e) {
140
+ return e % 400 === 0 || e % 4 === 0 && e % 100 !== 0;
141
+ }
142
+ function q(e, t, n) {
143
+ return t >= 0 && t <= 11 && n >= 1 && n <= (V[t] || ($(e) ? 29 : 28));
144
+ }
145
+ function B(e, t) {
146
+ return t >= 1 && t <= ($(e) ? 366 : 365);
147
+ }
148
+ function G(e, t, n) {
149
+ return t >= 1 && t <= 53 && n >= 0 && n <= 6;
150
+ }
151
+ function K(e, t, n) {
152
+ return e === 24 ? t === 0 && n === 0 : n >= 0 && n < 60 && t >= 0 && t < 60 && e >= 0 && e < 25;
153
+ }
154
+ function P(e, t) {
155
+ return t >= 0 && t <= 59;
156
+ }
157
+ function Q(e, t, n) {
158
+ return H(e, -t);
159
+ }
160
+ function nt(e) {
161
+ if (!e)
162
+ return;
163
+ const t = O(e);
164
+ if (U(t)) {
165
+ if (e.includes("Z"))
166
+ return new Date(e.replace("Z", ""));
167
+ if (e.includes("T")) {
168
+ const n = e.split("T");
169
+ if (n[1] && (n[1].includes("+") || n[1].includes("-")))
170
+ return /* @__PURE__ */ new Date(`${n[0]}T${n[1].split(/[+-]/)[0]}`);
171
+ }
172
+ return new Date(e);
173
+ }
174
+ }
175
+ const it = (e, t) => {
176
+ const n = [], i = [];
177
+ let r = Y(0, e);
178
+ const a = S(r, 0);
179
+ a > 0 && (n.push(`${a} d`), t && i.push(`${a} ${a > 1 ? N.multiple.long[t] : N.single.long[t]}`), r = v(r, a));
180
+ const o = Z(r, 0);
181
+ o > 0 && (n.push(`${o} h`), t && i.push(`${o} ${o > 1 ? h.multiple.long[t] : h.single.long[t]}`), r = Q(r, o));
182
+ const u = F(r, 0);
183
+ return u > 0 && (n.push(`${u} min`), t && i.push(`${u} ${u > 1 ? T.multiple.long[t] : T.single.long[t]}`)), {
184
+ short: n.join(" "),
185
+ long: i.join(" ")
186
+ };
187
+ };
188
+ export {
189
+ it as durationToTime,
190
+ nt as removeTimezoneFromISOTimeString
191
+ };
@@ -0,0 +1,5 @@
1
+ import { durationToTime as m, removeTimezoneFromISOTimeString as r } from "./datetime/date-helper.js";
2
+ export {
3
+ m as durationToTime,
4
+ r as removeTimezoneFromISOTimeString
5
+ };