@sbb-esta/lyne-elements-experimental-dev 4.7.0-dev.1773388997 → 4.7.0-dev.1773396173

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 (199) hide show
  1. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +76 -65
  2. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +52 -72
  3. package/autocomplete-grid/autocomplete-grid-button.js +6 -3
  4. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +17 -2
  5. package/autocomplete-grid/autocomplete-grid-cell.js +7 -4
  6. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +21 -20
  7. package/autocomplete-grid/autocomplete-grid-optgroup.js +6 -3
  8. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +33 -2
  9. package/autocomplete-grid/autocomplete-grid-option.js +9 -4
  10. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +22 -2
  11. package/autocomplete-grid/autocomplete-grid-row.js +7 -4
  12. package/autocomplete-grid/autocomplete-grid.js +6 -3
  13. package/autocomplete-grid.js +21 -9
  14. package/autocomplete-grid.pure.js +15 -7
  15. package/core/datetime/date-helper.js +191 -2
  16. package/core/datetime.js +5 -2
  17. package/core/timetable/access-leg-helper.js +71 -76
  18. package/core/timetable/timetable-helper.js +11 -9
  19. package/core/timetable/timetable-properties.js +1 -0
  20. package/core/timetable.js +7 -3
  21. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +122 -114
  22. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +70 -92
  23. package/development/autocomplete-grid/autocomplete-grid-button.js +4 -6
  24. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +29 -2
  25. package/development/autocomplete-grid/autocomplete-grid-cell.js +5 -7
  26. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +22 -27
  27. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +4 -6
  28. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +109 -2
  29. package/development/autocomplete-grid/autocomplete-grid-option.js +7 -7
  30. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +91 -2
  31. package/development/autocomplete-grid/autocomplete-grid-row.js +5 -7
  32. package/development/autocomplete-grid/autocomplete-grid.js +4 -6
  33. package/development/autocomplete-grid.js +14 -10
  34. package/development/autocomplete-grid.pure.js +13 -4
  35. package/development/core/datetime/date-helper.js +285 -2
  36. package/development/core/datetime.js +6 -2
  37. package/development/core/timetable/access-leg-helper.js +82 -104
  38. package/development/core/timetable/timetable-helper.js +17 -16
  39. package/development/core/timetable/timetable-properties.js +2 -0
  40. package/development/core/timetable.js +8 -3
  41. package/development/differenceInMinutes-B0dawX-5.js +26 -0
  42. package/development/format-BMkeaqaF.js +1433 -0
  43. package/development/isValid-BYRch7pV.js +53 -0
  44. package/development/journey-summary/journey-summary.component.js +288 -2
  45. package/development/journey-summary.js +5 -8
  46. package/development/journey-summary.pure.js +5 -2
  47. package/development/pearl-chain/pearl-chain.component.js +634 -2
  48. package/development/pearl-chain-time/pearl-chain-time.component.js +306 -2
  49. package/development/pearl-chain-time.js +5 -8
  50. package/development/pearl-chain-time.pure.js +5 -2
  51. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +28 -2
  52. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +393 -2
  53. package/development/pearl-chain-vertical-item.js +5 -8
  54. package/development/pearl-chain-vertical-item.pure.js +5 -2
  55. package/development/pearl-chain-vertical.js +5 -8
  56. package/development/pearl-chain-vertical.pure.js +5 -2
  57. package/development/pearl-chain.js +5 -8
  58. package/development/pearl-chain.pure.js +5 -2
  59. package/development/seat-reservation/common/mapper/icon-mapper.js +71 -168
  60. package/development/seat-reservation/common/mapper/mapper.js +122 -153
  61. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +559 -570
  62. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +972 -992
  63. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.js +20367 -20334
  64. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1738 -1731
  65. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9782 -9741
  66. package/development/seat-reservation/common/mapper.js +8 -1
  67. package/development/seat-reservation/common/svgs.js +46 -2
  68. package/development/seat-reservation/common/translations/i18n.js +900 -1118
  69. package/development/seat-reservation/common/translations.js +4 -1
  70. package/development/seat-reservation/common/types.js +2 -0
  71. package/development/seat-reservation/common.js +11 -7
  72. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +1230 -1305
  73. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +859 -2
  74. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +106 -2
  75. package/development/seat-reservation/seat-reservation-area.js +5 -7
  76. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +34 -35
  77. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +162 -2
  78. package/development/seat-reservation/seat-reservation-graphic.js +5 -7
  79. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +713 -2
  80. package/development/seat-reservation/seat-reservation-navigation-coach.js +5 -7
  81. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +131 -2
  82. package/development/seat-reservation/seat-reservation-navigation-services.js +5 -7
  83. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +601 -2
  84. package/development/seat-reservation/seat-reservation-place-control.js +5 -7
  85. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +22 -2
  86. package/development/seat-reservation/seat-reservation-scoped.js +5 -7
  87. package/development/seat-reservation/seat-reservation.js +6 -7
  88. package/development/seat-reservation.js +28 -15
  89. package/development/seat-reservation.pure.js +28 -10
  90. package/development/timetable-duration/timetable-duration.component.js +108 -2
  91. package/development/timetable-duration.js +5 -8
  92. package/development/timetable-duration.pure.js +5 -2
  93. package/development/timetable-row/timetable-row.component.js +781 -2
  94. package/development/timetable-row.js +13 -8
  95. package/development/timetable-row.pure.js +12 -2
  96. package/development/toDate-BWb6Z1JD.js +24 -0
  97. package/differenceInMinutes-COvvdYsJ.js +23 -0
  98. package/format-CmKROkbc.js +1186 -0
  99. package/isValid-m3_OsPaB.js +45 -0
  100. package/journey-summary/journey-summary.component.js +194 -2
  101. package/journey-summary.js +4 -5
  102. package/journey-summary.pure.js +4 -2
  103. package/package.json +2 -2
  104. package/pearl-chain/pearl-chain.component.js +165 -2
  105. package/pearl-chain-time/pearl-chain-time.component.js +157 -2
  106. package/pearl-chain-time.js +4 -5
  107. package/pearl-chain-time.pure.js +4 -2
  108. package/pearl-chain-vertical/pearl-chain-vertical.component.js +17 -2
  109. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +77 -2
  110. package/pearl-chain-vertical-item.js +4 -5
  111. package/pearl-chain-vertical-item.pure.js +4 -2
  112. package/pearl-chain-vertical.js +4 -5
  113. package/pearl-chain-vertical.pure.js +4 -2
  114. package/pearl-chain.js +4 -5
  115. package/pearl-chain.pure.js +4 -2
  116. package/seat-reservation/common/mapper/icon-mapper.js +71 -71
  117. package/seat-reservation/common/mapper/mapper.js +89 -95
  118. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +558 -568
  119. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +970 -989
  120. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.js +20366 -20332
  121. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1737 -1729
  122. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9781 -9739
  123. package/seat-reservation/common/mapper.js +9 -3
  124. package/seat-reservation/common/svgs.js +243 -2
  125. package/seat-reservation/common/translations/i18n.js +891 -1084
  126. package/seat-reservation/common/translations.js +4 -2
  127. package/seat-reservation/common/types.js +1 -0
  128. package/seat-reservation/common.js +15 -9
  129. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +810 -832
  130. package/seat-reservation/seat-reservation/seat-reservation.component.js +420 -2
  131. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +51 -2
  132. package/seat-reservation/seat-reservation-area.js +7 -4
  133. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +71 -68
  134. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +75 -2
  135. package/seat-reservation/seat-reservation-graphic.js +7 -4
  136. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +234 -2
  137. package/seat-reservation/seat-reservation-navigation-coach.js +7 -4
  138. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +85 -2
  139. package/seat-reservation/seat-reservation-navigation-services.js +7 -4
  140. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +203 -2
  141. package/seat-reservation/seat-reservation-place-control.js +7 -4
  142. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +13 -2
  143. package/seat-reservation/seat-reservation-scoped.js +7 -4
  144. package/seat-reservation/seat-reservation.js +9 -5
  145. package/seat-reservation.js +39 -17
  146. package/seat-reservation.pure.js +32 -15
  147. package/timetable-duration/timetable-duration.component.js +57 -2
  148. package/timetable-duration.js +4 -5
  149. package/timetable-duration.pure.js +4 -2
  150. package/timetable-row/timetable-row.component.js +427 -2
  151. package/timetable-row.js +13 -6
  152. package/timetable-row.pure.js +11 -2
  153. package/toDate-Bw2KTWeq.js +15 -0
  154. package/autocomplete-grid-cell.component-Dak9wlBr.js +0 -24
  155. package/autocomplete-grid-option.component-DNRFHOwc.js +0 -37
  156. package/autocomplete-grid-row.component-DBHZQ0GQ.js +0 -27
  157. package/date-helper-CGproP5d.js +0 -185
  158. package/development/autocomplete-grid-cell.component-BBvM4o2H.js +0 -42
  159. package/development/autocomplete-grid-option.component-QzfM5eIE.js +0 -123
  160. package/development/autocomplete-grid-row.component-H8sCTCkT.js +0 -104
  161. package/development/date-helper-8_Y-PuHh.js +0 -520
  162. package/development/differenceInMinutes-DN_1Rk3O.js +0 -110
  163. package/development/format-Bbrn2bgo.js +0 -1848
  164. package/development/isValid-C-HzKv4v.js +0 -178
  165. package/development/journey-summary.component-uGhZvA4p.js +0 -385
  166. package/development/pearl-chain-time.component-B8mayTWD.js +0 -415
  167. package/development/pearl-chain-vertical-item.component-BDzbcIaf.js +0 -435
  168. package/development/pearl-chain-vertical.component-CswE7b3M.js +0 -39
  169. package/development/pearl-chain.component-wpsTvoSe.js +0 -704
  170. package/development/seat-reservation-area.component-BK92ZtFo.js +0 -138
  171. package/development/seat-reservation-graphic.component-cUnsHh5x.js +0 -193
  172. package/development/seat-reservation-navigation-coach.component-D6Bglus8.js +0 -828
  173. package/development/seat-reservation-navigation-services.component-DYJ6Ddkg.js +0 -179
  174. package/development/seat-reservation-place-control.component-Bg9evKBW.js +0 -726
  175. package/development/seat-reservation-scoped.component-DRQ_I702.js +0 -31
  176. package/development/seat-reservation.component-Cq_aJKR0.js +0 -818
  177. package/development/svgs-C3JMWR26.js +0 -28
  178. package/development/timetable-duration.component-DI0lET17.js +0 -125
  179. package/development/timetable-row.component-CAED6Zwc.js +0 -932
  180. package/development/toDate-Biiv3kyf.js +0 -150
  181. package/differenceInMinutes-Dr9gRqtu.js +0 -27
  182. package/format-CM5exOsN.js +0 -1103
  183. package/isValid-B9oVW3lA.js +0 -36
  184. package/journey-summary.component-Cq_4kaOp.js +0 -264
  185. package/pearl-chain-time.component-DGDW5S1c.js +0 -239
  186. package/pearl-chain-vertical-item.component-G22bWhLU.js +0 -108
  187. package/pearl-chain-vertical.component-CXIDT5RD.js +0 -21
  188. package/pearl-chain.component-DmjkVIva.js +0 -194
  189. package/seat-reservation-area.component-n-9rGn_y.js +0 -75
  190. package/seat-reservation-graphic.component-YTXRmKt0.js +0 -102
  191. package/seat-reservation-navigation-coach.component-YJ0vaYmO.js +0 -333
  192. package/seat-reservation-navigation-services.component-C3xnLJg2.js +0 -127
  193. package/seat-reservation-place-control.component-DmBAfM6K.js +0 -322
  194. package/seat-reservation-scoped.component-DPkz6u17.js +0 -17
  195. package/seat-reservation.component-C_anMkgw.js +0 -364
  196. package/svgs-D9arBcqr.js +0 -26
  197. package/timetable-duration.component-DCu8Phts.js +0 -65
  198. package/timetable-row.component-BVRCB3xK.js +0 -559
  199. package/toDate-p-Tpkb7t.js +0 -16
@@ -0,0 +1,45 @@
1
+ import { t as o, c as D, a as m } from "./toDate-Bw2KTWeq.js";
2
+ function i(t) {
3
+ const e = o(t), n = new Date(
4
+ Date.UTC(
5
+ e.getFullYear(),
6
+ e.getMonth(),
7
+ e.getDate(),
8
+ e.getHours(),
9
+ e.getMinutes(),
10
+ e.getSeconds(),
11
+ e.getMilliseconds()
12
+ )
13
+ );
14
+ return n.setUTCFullYear(e.getFullYear()), +t - +n;
15
+ }
16
+ function g(t, ...e) {
17
+ const n = D.bind(
18
+ null,
19
+ e.find((a) => typeof a == "object")
20
+ );
21
+ return e.map(n);
22
+ }
23
+ function c(t, e) {
24
+ const n = o(t, e?.in);
25
+ return n.setHours(0, 0, 0, 0), n;
26
+ }
27
+ function y(t, e, n) {
28
+ const [a, l] = g(
29
+ n?.in,
30
+ t,
31
+ e
32
+ ), r = c(a), s = c(l), u = +r - i(r), f = +s - i(s);
33
+ return Math.round((u - f) / m);
34
+ }
35
+ function p(t) {
36
+ return t instanceof Date || typeof t == "object" && Object.prototype.toString.call(t) === "[object Date]";
37
+ }
38
+ function b(t) {
39
+ return !(!p(t) && typeof t != "number" || isNaN(+o(t)));
40
+ }
41
+ export {
42
+ y as d,
43
+ b as i,
44
+ g as n
45
+ };
@@ -1,2 +1,194 @@
1
- import { t as e } from "../journey-summary.component-Cq_4kaOp.js";
2
- export { e as SbbJourneySummaryElement };
1
+ var G = (a) => {
2
+ throw TypeError(a);
3
+ };
4
+ var H = (a, s, o) => s.has(a) || G("Cannot " + o);
5
+ var h = (a, s, o) => (H(a, s, "read from private field"), o ? o.call(a) : s.get(a)), m = (a, s, o) => s.has(a) ? G("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(a) : s.set(a, o), n = (a, s, o, $) => (H(a, s, "write to private field"), $ ? $.call(a, o) : s.set(a, o), o);
6
+ import { __runInitializers as l, __esDecorate as u } from "tslib";
7
+ import { SbbElement as X } from "@sbb-esta/lyne-elements/core/base-elements.js";
8
+ import { SbbLanguageController as Y } from "@sbb-esta/lyne-elements/core/controllers.js";
9
+ import { defaultDateAdapter as x } from "@sbb-esta/lyne-elements/core/datetime.js";
10
+ import { forceType as w } from "@sbb-esta/lyne-elements/core/decorators.js";
11
+ import { i18nTripDuration as Z } from "@sbb-esta/lyne-elements/core/i18n.js";
12
+ import { boxSizingStyles as J } from "@sbb-esta/lyne-elements/core/styles.js";
13
+ import { css as E, nothing as d, html as c } from "lit";
14
+ import { property as b } from "lit/decorators.js";
15
+ import { durationToTime as tt, removeTimezoneFromISOTimeString as et } from "../core/datetime.js";
16
+ import "@sbb-esta/lyne-elements/divider.js";
17
+ import "@sbb-esta/lyne-elements/screen-reader-only.js";
18
+ import "@sbb-esta/lyne-elements/journey-header.js";
19
+ import "../pearl-chain-time.js";
20
+ import { i as it } from "../isValid-m3_OsPaB.js";
21
+ import { f as K } from "../format-CmKROkbc.js";
22
+ const at = E`:host{display:block}.sbb-journey-summary{--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);color:var(--sbb-color-4);display:flex;flex-direction:column}.sbb-journey-summary__via-block{display:flex}.sbb-journey-summary__vias{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-block:0;padding-inline-start:var(--sbb-spacing-fixed-1x)}.sbb-journey-summary__date{margin-block-end:var(--sbb-spacing-fixed-2x)}.sbb-journey-summary__via{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sbb-journey-summary__divider{margin-block:var(--sbb-spacing-fixed-6x)}ul li{list-style:none;display:inline}`;
23
+ let $t = (() => {
24
+ var _, y, f, v, g, k, r;
25
+ let a = X, s = [], o, $ = [], j = [], z, T = [], B = [], A, F = [], I = [], L, O = [], C = [], V, D = [], W = [], N, q = [], M = [], P;
26
+ return r = class extends a {
27
+ constructor() {
28
+ super(...arguments);
29
+ m(this, _);
30
+ m(this, y);
31
+ m(this, f);
32
+ m(this, v);
33
+ m(this, g);
34
+ m(this, k);
35
+ n(this, _, (l(this, s), l(this, $, null))), n(this, y, (l(this, j), l(this, T, null))), n(this, f, (l(this, B), l(this, F, !1))), n(this, v, (l(this, I), l(this, O, "3"))), n(this, g, (l(this, C), l(this, D, !1))), n(this, k, (l(this, W), l(this, q, !1))), this._now = (l(this, M), null), this._hasContentSlot = !1, this._language = new Y(this);
36
+ }
37
+ /** The trip prop */
38
+ get trip() {
39
+ return h(this, _);
40
+ }
41
+ set trip(e) {
42
+ n(this, _, e);
43
+ }
44
+ /** The tripBack prop */
45
+ get tripBack() {
46
+ return h(this, y);
47
+ }
48
+ set tripBack(e) {
49
+ n(this, y, e);
50
+ }
51
+ /**
52
+ * The RoundTrip prop. This prop controls if one or two arrows are displayed in the header.
53
+ */
54
+ get roundTrip() {
55
+ return h(this, f);
56
+ }
57
+ set roundTrip(e) {
58
+ n(this, f, e);
59
+ }
60
+ /** Heading level of the journey header element (e.g. h1-h6). */
61
+ get headerLevel() {
62
+ return h(this, v);
63
+ }
64
+ set headerLevel(e) {
65
+ n(this, v, e);
66
+ }
67
+ /**
68
+ * Per default, the current location has a pulsating animation. You can
69
+ * disable the animation with this property.
70
+ */
71
+ get disableAnimation() {
72
+ return h(this, g);
73
+ }
74
+ set disableAnimation(e) {
75
+ n(this, g, e);
76
+ }
77
+ /**
78
+ * The Footpath attribute for rendering different icons
79
+ * true: render a11y-icon
80
+ * false: render walk-icon
81
+ * default: render walk-icon
82
+ */
83
+ get a11yFootpath() {
84
+ return h(this, k);
85
+ }
86
+ set a11yFootpath(e) {
87
+ n(this, k, e);
88
+ }
89
+ /**
90
+ * A configured date which acts as the current date instead of the real current date.
91
+ * Only recommended for testing purposes.
92
+ */
93
+ set now(e) {
94
+ this._now = x.getValidDateOrNull(x.deserialize(e));
95
+ }
96
+ get now() {
97
+ return this._now ?? /* @__PURE__ */ new Date();
98
+ }
99
+ connectedCallback() {
100
+ super.connectedCallback(), this._hasContentSlot = !!this.querySelector?.('[slot="content"]');
101
+ }
102
+ /** renders the date of the journey or if it is the current or next day */
103
+ _renderJourneyStart(e, t) {
104
+ const i = x, p = t ? tt(t, this._language.current) : null;
105
+ if (it(e))
106
+ return c`
107
+ <time datetime=${K(e, "d") + " " + K(e, "M")}>
108
+ ${i.format(e).replace(",", ".")}</time
109
+ >${t && t > 0 ? c`,<time>
110
+ <sbb-screen-reader-only>
111
+ ${Z[this._language.current]} ${p.long}
112
+ </sbb-screen-reader-only>
113
+ <span aria-hidden="true">${p.short}</span>
114
+ </time>` : d}
115
+ `;
116
+ }
117
+ _renderJourneyVias(e) {
118
+ const t = e.slice(0, 5);
119
+ return c`
120
+ <div class="sbb-journey-summary__via-block">
121
+ <span class="sbb-journey-summary__via-text">Via</span>
122
+ <ul class="sbb-journey-summary__vias" role=${e.length <= 1 ? "presentation" : d}>
123
+ ${t.map((i, p) => c`<li class="sbb-journey-summary__via">
124
+ ${i}${p !== t.length - 1 && p < 4 ? c`<span>,</span>` : d}
125
+ </li>`)}
126
+ </ul>
127
+ </div>
128
+ `;
129
+ }
130
+ _renderJourneyInformation(e) {
131
+ const { vias: t, duration: i, departureWalk: p, departure: S, arrivalWalk: Q, arrival: R, legs: U } = e || {};
132
+ return c`
133
+ <div>
134
+ ${t && t.length > 0 ? this._renderJourneyVias(t) : d}
135
+ <div class="sbb-journey-summary__date">
136
+ ${this._renderJourneyStart(et(S), i)}
137
+ </div>
138
+ <sbb-pearl-chain-time
139
+ .arrivalTime=${R}
140
+ .departureTime=${S}
141
+ .departureWalk=${p}
142
+ .arrivalWalk=${Q}
143
+ .legs=${U}
144
+ .disableAnimation=${this.disableAnimation}
145
+ .a11yFootpath=${this.a11yFootpath}
146
+ .now=${this.now}
147
+ ></sbb-pearl-chain-time>
148
+ </div>
149
+ `;
150
+ }
151
+ render() {
152
+ const { origin: e, destination: t } = this.trip || {};
153
+ return c`
154
+ <div class="sbb-journey-summary">
155
+ ${e ? c`<sbb-journey-header
156
+ size="l"
157
+ .level=${this.headerLevel || d}
158
+ .origin=${e}
159
+ .destination=${t}
160
+ .roundTrip=${this.roundTrip ?? d}
161
+ ></sbb-journey-header>` : d}
162
+ ${this._renderJourneyInformation(this.trip)}
163
+ ${this.tripBack ? c`<div>
164
+ <sbb-divider class="sbb-journey-summary__divider"></sbb-divider>
165
+ ${this._renderJourneyInformation(this.tripBack)}
166
+ </div>` : d}
167
+ ${this._hasContentSlot ? c` <div class="sbb-journey-summary__slot">
168
+ <slot name="content"></slot>
169
+ </div>` : d}
170
+ </div>
171
+ `;
172
+ }
173
+ }, _ = new WeakMap(), y = new WeakMap(), f = new WeakMap(), v = new WeakMap(), g = new WeakMap(), k = new WeakMap(), (() => {
174
+ const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(a[Symbol.metadata] ?? null) : void 0;
175
+ o = [b({ type: Object })], z = [b({ attribute: "trip-back", type: Object })], A = [w(), b({ attribute: "round-trip", type: Boolean })], L = [b({ attribute: "header-level" })], V = [w(), b({ attribute: "disable-animation", type: Boolean })], N = [w(), b({ attribute: "a11y-footpath", type: Boolean })], P = [b()], u(r, null, o, { kind: "accessor", name: "trip", static: !1, private: !1, access: { has: (t) => "trip" in t, get: (t) => t.trip, set: (t, i) => {
176
+ t.trip = i;
177
+ } }, metadata: e }, $, j), u(r, null, z, { kind: "accessor", name: "tripBack", static: !1, private: !1, access: { has: (t) => "tripBack" in t, get: (t) => t.tripBack, set: (t, i) => {
178
+ t.tripBack = i;
179
+ } }, metadata: e }, T, B), u(r, null, A, { kind: "accessor", name: "roundTrip", static: !1, private: !1, access: { has: (t) => "roundTrip" in t, get: (t) => t.roundTrip, set: (t, i) => {
180
+ t.roundTrip = i;
181
+ } }, metadata: e }, F, I), u(r, null, L, { kind: "accessor", name: "headerLevel", static: !1, private: !1, access: { has: (t) => "headerLevel" in t, get: (t) => t.headerLevel, set: (t, i) => {
182
+ t.headerLevel = i;
183
+ } }, metadata: e }, O, C), u(r, null, V, { kind: "accessor", name: "disableAnimation", static: !1, private: !1, access: { has: (t) => "disableAnimation" in t, get: (t) => t.disableAnimation, set: (t, i) => {
184
+ t.disableAnimation = i;
185
+ } }, metadata: e }, D, W), u(r, null, N, { kind: "accessor", name: "a11yFootpath", static: !1, private: !1, access: { has: (t) => "a11yFootpath" in t, get: (t) => t.a11yFootpath, set: (t, i) => {
186
+ t.a11yFootpath = i;
187
+ } }, metadata: e }, q, M), u(r, null, P, { kind: "setter", name: "now", static: !1, private: !1, access: { has: (t) => "now" in t, set: (t, i) => {
188
+ t.now = i;
189
+ } }, metadata: e }, null, s), e && Object.defineProperty(r, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
190
+ })(), r.elementName = "sbb-journey-summary", r.styles = [J, at], r;
191
+ })();
192
+ export {
193
+ $t as SbbJourneySummaryElement
194
+ };
@@ -1,6 +1,5 @@
1
- import { t as e } from "./journey-summary.component-Cq_4kaOp.js";
2
- import "./journey-summary.pure.js";
3
- //#region src/elements-experimental/journey-summary.ts
1
+ import { SbbJourneySummaryElement as e } from "./journey-summary/journey-summary.component.js";
4
2
  e.define();
5
- //#endregion
6
- export { e as SbbJourneySummaryElement };
3
+ export {
4
+ e as SbbJourneySummaryElement
5
+ };
@@ -1,2 +1,4 @@
1
- import { t as e } from "./journey-summary.component-Cq_4kaOp.js";
2
- export { e as SbbJourneySummaryElement };
1
+ import { SbbJourneySummaryElement as r } from "./journey-summary/journey-summary.component.js";
2
+ export {
3
+ r as SbbJourneySummaryElement
4
+ };
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-experimental-dev",
3
- "version": "4.7.0-dev.1773388997",
3
+ "version": "4.7.0-dev.1773396173",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
9
  "storybook",
10
- "https://github.com/sbb-design-systems/lyne-components/commit/a53df7a865e5e9799d60718ee7796e7cc0d6646e"
10
+ "https://github.com/sbb-design-systems/lyne-components/commit/a8df81a0cd578eeaa62e976b373520766496d43d"
11
11
  ],
12
12
  "type": "module",
13
13
  "exports": {
@@ -1,2 +1,165 @@
1
- import { t as e } from "../pearl-chain.component-DmjkVIva.js";
2
- export { e as SbbPearlChainElement };
1
+ var j = (t) => {
2
+ throw TypeError(t);
3
+ };
4
+ var M = (t, i, o) => i.has(t) || j("Cannot " + o);
5
+ var N = (t, i, o) => (M(t, i, "read from private field"), o ? o.call(t) : i.get(t)), I = (t, i, o) => i.has(t) ? j("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(t) : i.set(t, o), v = (t, i, o, _) => (M(t, i, "write to private field"), _ ? _.call(t, o) : i.set(t, o), o);
6
+ import { __runInitializers as m, __esDecorate as P } from "tslib";
7
+ import { SbbElement as oe } from "@sbb-esta/lyne-elements/core/base-elements.js";
8
+ import { defaultDateAdapter as Y } from "@sbb-esta/lyne-elements/core/datetime.js";
9
+ import { forceType as ne } from "@sbb-esta/lyne-elements/core/decorators.js";
10
+ import { boxSizingStyles as be } from "@sbb-esta/lyne-elements/core/styles.js";
11
+ import { css as ce, html as f, nothing as F } from "lit";
12
+ import { property as E } from "lit/decorators.js";
13
+ import { styleMap as X } from "lit/directives/style-map.js";
14
+ import { removeTimezoneFromISOTimeString as n } from "../core/datetime.js";
15
+ import { isRideLeg as pe } from "../core/timetable.js";
16
+ import { d as w, a as z } from "../differenceInMinutes-COvvdYsJ.js";
17
+ import { t as x } from "../toDate-Bw2KTWeq.js";
18
+ function he(t, i) {
19
+ return +x(t) > +x(i);
20
+ }
21
+ function q(t, i) {
22
+ return +x(t) < +x(i);
23
+ }
24
+ const de = ce`:host{--sbb-pearl-chain-height: var(--sbb-border-width-2x);--sbb-pearl-chain-spacing-small: .125rem;--sbb-pearl-chain-color: var(--sbb-pearl-chain-bullet-color);--sbb-pearl-chain-color-disruption: var(--sbb-pearl-chain-bullet-color-disruption);--sbb-pearl-chain-color-past: var(--sbb-pearl-chain-bullet-color-past);--sbb-pearl-chain-leg-width: 100%;display:block;--sbb-pearl-chain-position-color: var(--sbb-color-primary);--sbb-pearl-chain-bullet-size-start-end: .625rem;--sbb-pearl-chain-bullet-size-stop: .5rem;--sbb-pearl-chain-bullet-color: var(--sbb-background-color-3-inverted);--sbb-pearl-chain-bullet-color-past: var(--sbb-color-metal);--sbb-pearl-chain-bullet-color-past: light-dark(var(--sbb-color-metal), var(--sbb-color-granite));--sbb-pearl-chain-bullet-color-irrelevant: var(--sbb-color-metal);--sbb-pearl-chain-bullet-color-irrelevant: light-dark( var(--sbb-color-metal), var(--sbb-color-granite) );--sbb-pearl-chain-bullet-color-disruption: var(--sbb-color-error);--sbb-pearl-chain-bullet-border-width: var(--sbb-border-width-2x);--sbb-pearl-chain-bullet-animation-duration: 1.92s;--sbb-pearl-chain-bullet-animation-easing: ease-out;--sbb-pearl-chain-bullet-crossed-width: .88375rem;--sbb-pearl-chain-bullet-crossed-height: .21875rem;--sbb-pearl-chain-bullet-crossed-border-width: .09375rem}.sbb-pearl-chain{position:relative;display:flex;justify-content:space-between;flex-wrap:nowrap;color:var(--sbb-pearl-chain-color);width:100%;padding-block:calc((var(--sbb-pearl-chain-bullet-size-start-end) - var(--sbb-pearl-chain-height)) / 2);padding-inline-end:var(--sbb-pearl-chain-bullet-size-start-end)}.sbb-pearl-chain__bullet{min-height:var(--sbb-pearl-chain-bullet-size-start-end);min-width:var(--sbb-pearl-chain-bullet-size-start-end);height:var(--sbb-pearl-chain-bullet-size-start-end);width:var(--sbb-pearl-chain-bullet-size-start-end);background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%}@media(forced-colors:active){.sbb-pearl-chain__bullet{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__bullet{content:"";position:absolute;background-color:currentcolor;inset-block-start:0;z-index:3}.sbb-pearl-chain__bullet:first-of-type{inset-inline-start:0}.sbb-pearl-chain__bullet:last-of-type{inset-inline-end:0}.sbb-pearl-chain__leg{flex-shrink:0;flex-grow:0;position:relative;height:var(--sbb-pearl-chain-height);border-inline-end:var(--sbb-pearl-chain-spacing-small) solid Canvas;background-color:currentcolor;width:var(--sbb-pearl-chain-leg-width);display:flex;align-items:center}@media(forced-colors:active){.sbb-pearl-chain__leg{background-color:CanvasText}.sbb-pearl-chain--past .sbb-pearl-chain__leg{background-color:GrayText}}.sbb-pearl-chain__leg:last-of-type{border:none}.sbb-pearl-chain__stop{position:relative;z-index:2;background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%}@media(forced-colors:active){.sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__stop{min-height:var(--sbb-pearl-chain-bullet-size-stop);min-width:var(--sbb-pearl-chain-bullet-size-stop);height:var(--sbb-pearl-chain-bullet-size-stop);width:var(--sbb-pearl-chain-bullet-size-stop);border:var(--sbb-pearl-chain-bullet-border-width) solid currentcolor;background:Canvas}.sbb-pearl-chain__bullet--future{background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%}@media(forced-colors:active){.sbb-pearl-chain__bullet--future{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__leg--past,.sbb-pearl-chain--past,.sbb-pearl-chain__leg--past:after,.sbb-pearl-chain__leg--progress:after,.sbb-pearl-chain__leg--progress .sbb-pearl-chain__stop,.sbb-pearl-chain--progress,.sbb-pearl-chain__bullet--past{color:var(--sbb-pearl-chain-color-past);--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-past)}@media(forced-colors:active){.sbb-pearl-chain__leg--past,.sbb-pearl-chain--past,.sbb-pearl-chain__leg--past:after,.sbb-pearl-chain__leg--progress:after,.sbb-pearl-chain__leg--progress .sbb-pearl-chain__stop,.sbb-pearl-chain--progress,.sbb-pearl-chain__bullet--past{--sbb-pearl-chain-bullet-color: GrayText !important}}@media(forced-colors:active){.sbb-pearl-chain__leg--past,.sbb-pearl-chain--past,.sbb-pearl-chain__leg--past:after,.sbb-pearl-chain__leg--progress:after,.sbb-pearl-chain__leg--progress .sbb-pearl-chain__stop,.sbb-pearl-chain--progress,.sbb-pearl-chain__bullet--past{background-color:GrayText!important}}.sbb-pearl-chain__bullet--progress{background:var(--sbb-pearl-chain-bullet-color);--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-past)}@media(forced-colors:active){.sbb-pearl-chain__bullet--progress{--sbb-pearl-chain-bullet-color: GrayText !important}}.sbb-pearl-chain__bullet--departure-disruption,.sbb-pearl-chain--arrival-disruption,.sbb-pearl-chain--departure-disruption,.sbb-pearl-chain__leg--disruption{color:var(--sbb-pearl-chain-color-disruption);--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-disruption)}@media(forced-colors:active){.sbb-pearl-chain__bullet--departure-disruption,.sbb-pearl-chain--arrival-disruption,.sbb-pearl-chain--departure-disruption,.sbb-pearl-chain__leg--disruption{--sbb-pearl-chain-bullet-color: Highlight}}@media(forced-colors:active){.sbb-pearl-chain__bullet--departure-disruption,.sbb-pearl-chain--arrival-disruption,.sbb-pearl-chain--departure-disruption,.sbb-pearl-chain__leg--disruption{color:Highlight;background:Highlight}}.sbb-pearl-chain__leg--disruption .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-disruption)}@media(forced-colors:active){.sbb-pearl-chain__leg--disruption .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: Highlight}}.sbb-pearl-chain__leg--past .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-past)}@media(forced-colors:active){.sbb-pearl-chain__leg--past .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: GrayText !important}}.sbb-pearl-chain__leg--disruption:after{background-color:unset;background-image:linear-gradient(to right,currentcolor 0%,currentcolor 50%,Canvas 50%);background-repeat:repeat-x;background-size:calc(2 * var(--sbb-pearl-chain-spacing-small)) var(--sbb-pearl-chain-height);inset-inline-end:var(--sbb-pearl-chain-height)}@media(forced-colors:active){.sbb-pearl-chain__leg--disruption:after{background:unset;border-block-start:.0625rem dashed Highlight;transform:translateY(.0625rem)}}.sbb-pearl-chain__leg--skipped{color:var(--sbb-pearl-chain-color-disruption)}.sbb-pearl-chain__leg--skipped:after{background-color:unset;background-image:linear-gradient(to right,currentcolor 0%,currentcolor 50%,Canvas 50%);background-repeat:repeat-x;background-size:calc(2 * var(--sbb-pearl-chain-spacing-small)) var(--sbb-pearl-chain-height);inset-inline-end:var(--sbb-pearl-chain-height)}@media(forced-colors:active){.sbb-pearl-chain__leg--skipped:after{background:unset;border-block-start:.0625rem dashed Highlight;transform:translateY(.0625rem)}}.sbb-pearl-chain__stop--departure-skipped{min-height:var(--sbb-pearl-chain-bullet-size-stop);min-width:var(--sbb-pearl-chain-bullet-size-stop);height:var(--sbb-pearl-chain-bullet-size-stop);width:var(--sbb-pearl-chain-bullet-size-stop);border:var(--sbb-pearl-chain-bullet-border-width) solid currentcolor;background:Canvas}.sbb-pearl-chain__stop--departure-skipped:before{content:"";position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%) rotate(45deg);border-block-start:var(--sbb-pearl-chain-bullet-crossed-border-width) solid canvas;background:var(--sbb-pearl-chain-bullet-color-disruption);height:var(--sbb-pearl-chain-bullet-crossed-height);width:var(--sbb-pearl-chain-bullet-crossed-width)}@media(forced-colors:active){.sbb-pearl-chain__stop--departure-skipped:before{background:Highlight}}.sbb-pearl-chain--arrival-skipped,.sbb-pearl-chain--departure-skipped{min-height:var(--sbb-pearl-chain-bullet-size-start-end);min-width:var(--sbb-pearl-chain-bullet-size-start-end);height:var(--sbb-pearl-chain-bullet-size-start-end);width:var(--sbb-pearl-chain-bullet-size-start-end);border:var(--sbb-pearl-chain-bullet-border-width) solid currentcolor;background:Canvas}.sbb-pearl-chain--arrival-skipped:before,.sbb-pearl-chain--departure-skipped:before{content:"";position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%) rotate(45deg);border-block-start:var(--sbb-pearl-chain-bullet-crossed-border-width) solid canvas;background:var(--sbb-pearl-chain-bullet-color-disruption);height:var(--sbb-pearl-chain-bullet-crossed-height);width:var(--sbb-pearl-chain-bullet-crossed-width)}@media(forced-colors:active){.sbb-pearl-chain--arrival-skipped:before,.sbb-pearl-chain--departure-skipped:before{background:Highlight}}.sbb-pearl-chain__leg:after{content:"";position:absolute;inset-block:0;inset-inline-start:0;background-color:currentcolor;border-radius:var(--sbb-pearl-chain-height);z-index:1}@media(forced-colors:active){.sbb-pearl-chain__leg:after{background-color:CanvasText}.sbb-pearl-chain--past .sbb-pearl-chain__leg:after{background-color:GrayText}}.sbb-pearl-chain__leg:last-of-type:after{inset-inline-end:calc(-1 * var(--sbb-pearl-chain-height))}.sbb-pearl-chain__leg--progress:after{background-color:var(--sbb-pearl-chain-color-past);width:var(--sbb-pearl-chain-leg-status)}.sbb-pearl-chain__position{min-height:var(--sbb-pearl-chain-bullet-size-start-end);min-width:var(--sbb-pearl-chain-bullet-size-start-end);height:var(--sbb-pearl-chain-bullet-size-start-end);width:var(--sbb-pearl-chain-bullet-size-start-end);background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%}@media(forced-colors:active){.sbb-pearl-chain__position{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__position{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-position-color)}@media(forced-colors:active){.sbb-pearl-chain__position{--sbb-pearl-chain-position-color: Highlight}}@keyframes pearl-chain-bullet-position-pulse{0%{box-shadow:0 0 0 0 var(--sbb-pearl-chain-position-color)}25%{box-shadow:0 0 0 0 var(--sbb-pearl-chain-position-color)}50%{box-shadow:0 0 0 .1875rem color-mix(in srgb,var(--sbb-pearl-chain-position-color) 20%,transparent)}to{box-shadow:0 0 0 0 var(--sbb-pearl-chain-position-color)}}.sbb-pearl-chain__position{animation:pearl-chain-bullet-position-pulse var(--sbb-pearl-chain-bullet-animation-duration) var(--sbb-pearl-chain-bullet-animation-easing) infinite;position:absolute;inset-block-start:-200%;z-index:4;inset-inline-start:var(--sbb-pearl-chain-status-position)}.sbb-pearl-chain__position--no-animation{animation:unset}.sbb-screen-reader-only{border:0;clip-path:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
25
+ let Ce = (() => {
26
+ var u, g, b;
27
+ let t = oe, i = [], o, _ = [], H = [], O, J = [], R = [], W;
28
+ return b = class extends t {
29
+ constructor() {
30
+ super(...arguments);
31
+ I(this, u);
32
+ I(this, g);
33
+ v(this, u, (m(this, i), m(this, _, []))), v(this, g, (m(this, H), m(this, J, !1))), this._now = (m(this, R), null);
34
+ }
35
+ /**
36
+ * Define the legs of the pearl-chain.
37
+ * Format:
38
+ * `{"legs": [{"duration": 25}, ...]}`
39
+ * `duration` in minutes. Duration of the leg is relative
40
+ * to the total travel time. Example: departure 16:30, change at 16:40,
41
+ * arrival at 17:00. So the change should have a duration of 33.33%.
42
+ */
43
+ get legs() {
44
+ return N(this, u);
45
+ }
46
+ set legs(a) {
47
+ v(this, u, a);
48
+ }
49
+ /**
50
+ * Per default, the current location has a pulsating animation. You can
51
+ * disable the animation with this property.
52
+ */
53
+ get disableAnimation() {
54
+ return N(this, g);
55
+ }
56
+ set disableAnimation(a) {
57
+ v(this, g, a);
58
+ }
59
+ /**
60
+ * A configured date which acts as the current date instead of the real current date.
61
+ * Only recommended for testing purposes.
62
+ */
63
+ set now(a) {
64
+ this._now = Y.getValidDateOrNull(Y.deserialize(a));
65
+ }
66
+ get now() {
67
+ return this._now;
68
+ }
69
+ _getAllDuration(a) {
70
+ return a?.reduce((e, r) => {
71
+ const l = n(r.arrival?.time), s = n(r.departure?.time);
72
+ return l && s ? e + w(n(r.arrival.time), n(r.departure.time)) : e;
73
+ }, 0);
74
+ }
75
+ _isAllCancelled(a) {
76
+ return a?.every((e) => e?.serviceJourney?.serviceAlteration?.cancelled);
77
+ }
78
+ _getRelativeDuration(a, e) {
79
+ const r = n(e.arrival?.time), l = n(e.departure?.time);
80
+ if (r && l) {
81
+ const s = w(n(e.arrival.time), n(e.departure.time)), c = this._getAllDuration(a);
82
+ return c === 0 ? 100 : s / c * 100;
83
+ }
84
+ return 0;
85
+ }
86
+ _getProgress(a, e, r) {
87
+ if (!e?.time || !r?.time)
88
+ return 0;
89
+ const l = z(e.time, e.delay ?? 0), s = z(r.time, r.delay ?? 0), c = w(s, l), S = w(a, l);
90
+ return c && S / c * 100;
91
+ }
92
+ _getStatus(a, e, r) {
93
+ const l = e && e.time && z(e.time, e.delay ?? 0), s = r && r.time && z(r.time, r.delay ?? 0);
94
+ return l && q(l, a) && s && he(s, a) ? "progress" : s && q(s, a) ? "past" : "future";
95
+ }
96
+ _renderPosition(a, e, r) {
97
+ const l = this._getProgress(a, e, r);
98
+ if (l < 0 && l > 100)
99
+ return;
100
+ const s = () => ({
101
+ "--sbb-pearl-chain-status-position": `${l}%`,
102
+ ...l >= 50 ? { transform: "translateX(-100%)" } : {}
103
+ }), c = this.disableAnimation ? "sbb-pearl-chain__position--no-animation" : "";
104
+ return f`<span
105
+ style=${X(s())}
106
+ class="sbb-pearl-chain__position ${c}"
107
+ ></span>`;
108
+ }
109
+ render() {
110
+ const a = this.now ?? /* @__PURE__ */ new Date(), e = this.legs?.filter((p) => pe(p)), r = e?.length && n(e[0]?.departure?.time), l = r && {
111
+ time: r,
112
+ delay: e[0].departure.delay ?? 0
113
+ }, s = e?.length && n(e[e.length - 1].arrival?.time), c = s && {
114
+ time: s,
115
+ delay: e[e.length - 1]?.arrival.delay ?? 0
116
+ }, S = e && e[0]?.serviceJourney?.stopPoints && e[0]?.serviceJourney?.stopPoints[0].stopStatus === "NOT_SERVICED" ? "sbb-pearl-chain--departure-skipped" : "", K = (() => {
117
+ const p = e && e[e.length - 1], h = p && p.serviceJourney?.stopPoints;
118
+ return h && h[h.length - 1].stopStatus === "NOT_SERVICED" ? "sbb-pearl-chain--arrival-skipped" : "";
119
+ })(), G = e && e[0]?.serviceJourney?.serviceAlteration?.cancelled ? "sbb-pearl-chain--departure-disruption" : "", L = e && e[e.length - 1]?.serviceJourney?.serviceAlteration?.cancelled ? "sbb-pearl-chain--arrival-disruption" : "", A = l && c && this._getStatus(a, l, c), Q = e && A && !G ? "sbb-pearl-chain__bullet--" + A : "", U = e && A && !L ? "sbb-pearl-chain__bullet--" + this._getStatus(a, void 0, c) : "";
120
+ return this._isAllCancelled(e) ? f`
121
+ <div class="sbb-pearl-chain">
122
+ <span class="sbb-pearl-chain__bullet sbb-pearl-chain--departure-disruption"></span>
123
+ <div class="sbb-pearl-chain__leg sbb-pearl-chain__leg--disruption"></div>
124
+ <span class="sbb-pearl-chain__bullet sbb-pearl-chain--departure-disruption"></span>
125
+ </div>
126
+ ` : f`
127
+ <div class="sbb-pearl-chain">
128
+ <span
129
+ class="sbb-pearl-chain__bullet ${Q} ${S} ${G}"
130
+ ></span>
131
+ ${e?.map((p, h) => {
132
+ const { stopPoints: d, serviceAlteration: V } = p?.serviceJourney || {}, Z = this._getRelativeDuration(e, p), ee = n(p.departure?.time), ae = n(p.arrival?.time), re = d && d[d.length - 1]?.stopStatus === "NOT_SERVICED", te = d && d[d.length - 1]?.stopStatus === "PLANNED", B = d && d[0]?.stopStatus === "NOT_SERVICED", D = h > 0 && e[h - 1].serviceJourney.stopPoints, ie = D && D[D.length - 1]?.stopStatus === "NOT_SERVICED", k = re || B && te ? "sbb-pearl-chain__leg--skipped" : "", le = B || ie ? "sbb-pearl-chain__stop--departure-skipped" : "", y = V?.cancelled || V?.partiallyCancelled ? "sbb-pearl-chain__leg--disruption" : "", T = { time: ee, delay: p.departure?.delay ?? 0 }, C = { time: ae, delay: p.arrival?.delay ?? 0 }, $ = this._getStatus(a, T, C), se = !y && !k && "sbb-pearl-chain__leg--" + $;
133
+ return f` <div
134
+ class="sbb-pearl-chain__leg ${se || ""} ${y} ${k}"
135
+ style=${X({
136
+ "--sbb-pearl-chain-leg-width": `${Z}%`,
137
+ ...$ === "progress" && !y && !k ? {
138
+ "--sbb-pearl-chain-leg-status": `${this._getProgress(a, T, C)}%`
139
+ } : {}
140
+ })}
141
+ >
142
+ ${h > 0 && h < e.length ? f`<span class="sbb-pearl-chain__stop ${le}"></span>` : F}
143
+ ${$ === "progress" && !y && !k ? this._renderPosition(a, T, C) : F}
144
+ </div>`;
145
+ })}
146
+ <span
147
+ class="sbb-pearl-chain__bullet ${U} ${K} ${L}"
148
+ ></span>
149
+ </div>
150
+ `;
151
+ }
152
+ }, u = new WeakMap(), g = new WeakMap(), (() => {
153
+ const a = typeof Symbol == "function" && Symbol.metadata ? Object.create(t[Symbol.metadata] ?? null) : void 0;
154
+ o = [E({ type: Array })], O = [ne(), E({ attribute: "disable-animation", type: Boolean })], W = [E()], P(b, null, o, { kind: "accessor", name: "legs", static: !1, private: !1, access: { has: (e) => "legs" in e, get: (e) => e.legs, set: (e, r) => {
155
+ e.legs = r;
156
+ } }, metadata: a }, _, H), P(b, null, O, { kind: "accessor", name: "disableAnimation", static: !1, private: !1, access: { has: (e) => "disableAnimation" in e, get: (e) => e.disableAnimation, set: (e, r) => {
157
+ e.disableAnimation = r;
158
+ } }, metadata: a }, J, R), P(b, null, W, { kind: "setter", name: "now", static: !1, private: !1, access: { has: (e) => "now" in e, set: (e, r) => {
159
+ e.now = r;
160
+ } }, metadata: a }, null, i), a && Object.defineProperty(b, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: a });
161
+ })(), b.elementName = "sbb-pearl-chain", b.styles = [be, de], b;
162
+ })();
163
+ export {
164
+ Ce as SbbPearlChainElement
165
+ };
@@ -1,2 +1,157 @@
1
- import { t as e } from "../pearl-chain-time.component-DGDW5S1c.js";
2
- export { e as SbbPearlChainTimeElement };
1
+ var M = (a) => {
2
+ throw TypeError(a);
3
+ };
4
+ var Q = (a, s, o) => s.has(a) || M("Cannot " + o);
5
+ var m = (a, s, o) => (Q(a, s, "read from private field"), o ? o.call(a) : s.get(a)), c = (a, s, o) => s.has(a) ? M("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(a) : s.set(a, o), l = (a, s, o, x) => (Q(a, s, "write to private field"), x ? x.call(a, o) : s.set(a, o), o);
6
+ import { __runInitializers as n, __esDecorate as h } from "tslib";
7
+ import { SbbElement as P } from "@sbb-esta/lyne-elements/core/base-elements.js";
8
+ import { SbbLanguageController as C } from "@sbb-esta/lyne-elements/core/controllers.js";
9
+ import { defaultDateAdapter as U } from "@sbb-esta/lyne-elements/core/datetime.js";
10
+ import { forceType as y } from "@sbb-esta/lyne-elements/core/decorators.js";
11
+ import { i18nDeparture as ee, i18nTransferProcedures as te, i18nArrival as ae } from "@sbb-esta/lyne-elements/core/i18n.js";
12
+ import { boxSizingStyles as ie } from "@sbb-esta/lyne-elements/core/styles.js";
13
+ import { css as re, nothing as w, html as k } from "lit";
14
+ import { property as p } from "lit/decorators.js";
15
+ import { removeTimezoneFromISOTimeString as X } from "../core/datetime.js";
16
+ import { getDepartureArrivalTimeAttribute as se, isRideLeg as le } from "../core/timetable.js";
17
+ import "../pearl-chain.js";
18
+ import { f as Y } from "../format-CmKROkbc.js";
19
+ const ne = re`:host{display:block;--sbb-pearl-chain-time-height: auto}@media(min-width:37.5rem){:host{--sbb-pearl-chain-time-height: 1.5625rem}}@media(min-width:64rem){:host{--sbb-pearl-chain-time-height: 1.75rem}}.sbb-pearl-chain__time{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;height:var(--sbb-pearl-chain-time-height)}.sbb-pearl-chain__time-walktime,.sbb-pearl-chain__time-transfer{--sbb-text-font-size: var(--sbb-text-font-size-xxs);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);display:inline-flex;align-items:center}.sbb-pearl-chain__time-walktime--walk-small-left{transform:translate(-.4375rem);margin-inline-end:calc(var(--sbb-spacing-fixed-2x) - .4375rem)}.sbb-pearl-chain__time-walktime--walk-small-right{margin-inline-start:calc(var(--sbb-spacing-fixed-2x) - .25rem)}.sbb-pearl-chain__time-walktime--wheelchair-small-left{transform:translate(-.375rem);margin-inline-end:calc(var(--sbb-spacing-fixed-2x) - .4375rem)}.sbb-pearl-chain__time-walktime--wheelchair-small-right{margin-inline-start:calc(var(--sbb-spacing-fixed-2x) - .25rem)}.sbb-pearl-chain__time-walktime-prime-symbol{float:right}.sbb-pearl-chain__time-transfer{gap:var(--sbb-spacing-fixed-1x)}.sbb-pearl-chain__time-transfer--sa-ci-departure{margin-inline-end:var(--sbb-spacing-fixed-2x)}.sbb-pearl-chain__time-transfer--sa-ci-arrival{margin-inline-start:calc(var(--sbb-spacing-fixed-2x) - .25rem)}.sbb-pearl-chain__time-chain{flex:1 1 auto;align-self:center;margin-inline:var(--sbb-spacing-fixed-3x)}.sbb-pearl-chain__time-time{--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);font-weight:700;color:var(--sbb-color-2)}.sbb-screen-reader-only{border:0;clip-path:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
20
+ let we = (() => {
21
+ var b, d, g, _, u, f, v, r;
22
+ let a = P, s = [], o, x = [], z = [], T, W = [], A = [], $, F = [], I = [], N, D = [], H = [], O, j = [], L = [], B, S = [], R = [], V, q = [], G = [], J;
23
+ return r = class extends a {
24
+ constructor() {
25
+ super(...arguments);
26
+ c(this, b);
27
+ c(this, d);
28
+ c(this, g);
29
+ c(this, _);
30
+ c(this, u);
31
+ c(this, f);
32
+ c(this, v);
33
+ l(this, b, (n(this, s), n(this, x, []))), l(this, d, (n(this, z), n(this, W, ""))), l(this, g, (n(this, A), n(this, F, ""))), l(this, _, (n(this, I), n(this, D, NaN))), l(this, u, (n(this, H), n(this, j, NaN))), l(this, f, (n(this, L), n(this, S, !1))), l(this, v, (n(this, R), n(this, q, !1))), this._now = (n(this, G), null), this._language = new C(this);
34
+ }
35
+ /**
36
+ * define the legs of the pearl-chain.
37
+ * Format:
38
+ * `{"legs": [{"duration": 25}, ...]}`
39
+ * `duration` in minutes. Duration of the leg is relative
40
+ * to the total travel time. Example: departure 16:30, change at 16:40,
41
+ * arrival at 17:00. So the change should have a duration of 33.33%.
42
+ */
43
+ get legs() {
44
+ return m(this, b);
45
+ }
46
+ set legs(t) {
47
+ l(this, b, t);
48
+ }
49
+ /** Prop to render the departure time - will be formatted as "H:mm" */
50
+ get departureTime() {
51
+ return m(this, d);
52
+ }
53
+ set departureTime(t) {
54
+ l(this, d, t);
55
+ }
56
+ /** Prop to render the arrival time - will be formatted as "H:mm" */
57
+ get arrivalTime() {
58
+ return m(this, g);
59
+ }
60
+ set arrivalTime(t) {
61
+ l(this, g, t);
62
+ }
63
+ /** Optional prop to render the walk time (in minutes) before departure */
64
+ get departureWalk() {
65
+ return m(this, _);
66
+ }
67
+ set departureWalk(t) {
68
+ l(this, _, t);
69
+ }
70
+ /** Optional prop to render the walk time (in minutes) after arrival */
71
+ get arrivalWalk() {
72
+ return m(this, u);
73
+ }
74
+ set arrivalWalk(t) {
75
+ l(this, u, t);
76
+ }
77
+ /**
78
+ * Per default, the current location has a pulsating animation. You can
79
+ * disable the animation with this property.
80
+ */
81
+ get disableAnimation() {
82
+ return m(this, f);
83
+ }
84
+ set disableAnimation(t) {
85
+ l(this, f, t);
86
+ }
87
+ /** Optional prop to render wheelchair-small instead of walk-small */
88
+ get a11yFootpath() {
89
+ return m(this, v);
90
+ }
91
+ set a11yFootpath(t) {
92
+ l(this, v, t);
93
+ }
94
+ /**
95
+ * A configured date which acts as the current date instead of the real current date.
96
+ * Only recommended for testing purposes.
97
+ */
98
+ set now(t) {
99
+ this._now = U.getValidDateOrNull(U.deserialize(t));
100
+ }
101
+ get now() {
102
+ return this._now ?? /* @__PURE__ */ new Date();
103
+ }
104
+ render() {
105
+ const t = this.departureTime ? X(this.departureTime) : void 0, e = this.arrivalTime ? X(this.arrivalTime) : void 0, { renderDepartureTimeAttribute: i, renderArrivalTimeAttribute: Z } = se(this.legs, this.departureWalk || 0, this.arrivalWalk || 0, this._language.current, this.a11yFootpath), K = this.legs?.filter((E) => le(E));
106
+ return k`
107
+ <div class="sbb-pearl-chain__time">
108
+ ${i()}
109
+ ${t ? k`<time class="sbb-pearl-chain__time-time" datetime=${this.departureTime}>
110
+ <span class="sbb-screen-reader-only"
111
+ >${ee[this._language.current]}:&nbsp;</span
112
+ >
113
+ ${Y(t, "HH:mm")}
114
+ </time>` : w}
115
+ ${K?.length > 1 ? k`<span class="sbb-screen-reader-only" role="paragraph">
116
+ ${K?.length - 1} ${te[this._language.current]}
117
+ </span>` : w}
118
+ <sbb-pearl-chain
119
+ class="sbb-pearl-chain__time-chain"
120
+ .legs=${this.legs}
121
+ .disableAnimation=${this.disableAnimation}
122
+ .now=${this.now}
123
+ ></sbb-pearl-chain>
124
+ ${e ? k`<time class="sbb-pearl-chain__time-time" datetime=${this.arrivalTime}>
125
+ <span class="sbb-screen-reader-only"
126
+ >${ae[this._language.current]}:&nbsp;</span
127
+ >
128
+ ${Y(e, "HH:mm")}
129
+ </time>` : w}
130
+ ${Z()}
131
+ </div>
132
+ `;
133
+ }
134
+ }, b = new WeakMap(), d = new WeakMap(), g = new WeakMap(), _ = new WeakMap(), u = new WeakMap(), f = new WeakMap(), v = new WeakMap(), (() => {
135
+ const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(a[Symbol.metadata] ?? null) : void 0;
136
+ o = [p({ type: Array })], T = [y(), p({ attribute: "departure-time" })], $ = [y(), p({ attribute: "arrival-time" })], N = [y(), p({ attribute: "departure-walk", type: Number })], O = [y(), p({ attribute: "arrival-walk", type: Number })], B = [y(), p({ attribute: "disable-animation", type: Boolean })], V = [y(), p({ attribute: "a11y-footpath", type: Boolean })], J = [p()], h(r, null, o, { kind: "accessor", name: "legs", static: !1, private: !1, access: { has: (e) => "legs" in e, get: (e) => e.legs, set: (e, i) => {
137
+ e.legs = i;
138
+ } }, metadata: t }, x, z), h(r, null, T, { kind: "accessor", name: "departureTime", static: !1, private: !1, access: { has: (e) => "departureTime" in e, get: (e) => e.departureTime, set: (e, i) => {
139
+ e.departureTime = i;
140
+ } }, metadata: t }, W, A), h(r, null, $, { kind: "accessor", name: "arrivalTime", static: !1, private: !1, access: { has: (e) => "arrivalTime" in e, get: (e) => e.arrivalTime, set: (e, i) => {
141
+ e.arrivalTime = i;
142
+ } }, metadata: t }, F, I), h(r, null, N, { kind: "accessor", name: "departureWalk", static: !1, private: !1, access: { has: (e) => "departureWalk" in e, get: (e) => e.departureWalk, set: (e, i) => {
143
+ e.departureWalk = i;
144
+ } }, metadata: t }, D, H), h(r, null, O, { kind: "accessor", name: "arrivalWalk", static: !1, private: !1, access: { has: (e) => "arrivalWalk" in e, get: (e) => e.arrivalWalk, set: (e, i) => {
145
+ e.arrivalWalk = i;
146
+ } }, metadata: t }, j, L), h(r, null, B, { kind: "accessor", name: "disableAnimation", static: !1, private: !1, access: { has: (e) => "disableAnimation" in e, get: (e) => e.disableAnimation, set: (e, i) => {
147
+ e.disableAnimation = i;
148
+ } }, metadata: t }, S, R), h(r, null, V, { kind: "accessor", name: "a11yFootpath", static: !1, private: !1, access: { has: (e) => "a11yFootpath" in e, get: (e) => e.a11yFootpath, set: (e, i) => {
149
+ e.a11yFootpath = i;
150
+ } }, metadata: t }, q, G), h(r, null, J, { kind: "setter", name: "now", static: !1, private: !1, access: { has: (e) => "now" in e, set: (e, i) => {
151
+ e.now = i;
152
+ } }, metadata: t }, null, s), t && Object.defineProperty(r, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
153
+ })(), r.elementName = "sbb-pearl-chain-time", r.styles = [ie, ne], r;
154
+ })();
155
+ export {
156
+ we as SbbPearlChainTimeElement
157
+ };
@@ -1,6 +1,5 @@
1
- import { t as e } from "./pearl-chain-time.component-DGDW5S1c.js";
2
- import "./pearl-chain-time.pure.js";
3
- //#region src/elements-experimental/pearl-chain-time.ts
1
+ import { SbbPearlChainTimeElement as e } from "./pearl-chain-time/pearl-chain-time.component.js";
4
2
  e.define();
5
- //#endregion
6
- export { e as SbbPearlChainTimeElement };
3
+ export {
4
+ e as SbbPearlChainTimeElement
5
+ };
@@ -1,2 +1,4 @@
1
- import { t as e } from "./pearl-chain-time.component-DGDW5S1c.js";
2
- export { e as SbbPearlChainTimeElement };
1
+ import { SbbPearlChainTimeElement as r } from "./pearl-chain-time/pearl-chain-time.component.js";
2
+ export {
3
+ r as SbbPearlChainTimeElement
4
+ };