@sbb-esta/lyne-elements-experimental 0.0.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +55 -0
  2. package/constants-ClrwyPF-.js +12 -0
  3. package/core/datetime/date-helper.d.ts +27 -0
  4. package/core/datetime/date-helper.d.ts.map +1 -0
  5. package/core/datetime.d.ts +2 -0
  6. package/core/datetime.d.ts.map +1 -0
  7. package/core/datetime.js +199 -0
  8. package/core/timetable/access-leg-helper.d.ts +26 -0
  9. package/core/timetable/access-leg-helper.d.ts.map +1 -0
  10. package/core/timetable/timetable-helper.d.ts +9 -0
  11. package/core/timetable/timetable-helper.d.ts.map +1 -0
  12. package/core/timetable/timetable-properties.d.ts +308 -0
  13. package/core/timetable/timetable-properties.d.ts.map +1 -0
  14. package/core/timetable.d.ts +4 -0
  15. package/core/timetable.d.ts.map +1 -0
  16. package/core/timetable.js +123 -0
  17. package/custom-elements.json +1606 -0
  18. package/development/constants-D72r1E-c.js +22 -0
  19. package/development/core/datetime/date-helper.d.ts +27 -0
  20. package/development/core/datetime/date-helper.d.ts.map +1 -0
  21. package/development/core/datetime.d.ts +2 -0
  22. package/development/core/datetime.d.ts.map +1 -0
  23. package/development/core/datetime.js +297 -0
  24. package/development/core/timetable/access-leg-helper.d.ts +26 -0
  25. package/development/core/timetable/access-leg-helper.d.ts.map +1 -0
  26. package/development/core/timetable/timetable-helper.d.ts +9 -0
  27. package/development/core/timetable/timetable-helper.d.ts.map +1 -0
  28. package/development/core/timetable/timetable-properties.d.ts +308 -0
  29. package/development/core/timetable/timetable-properties.d.ts.map +1 -0
  30. package/development/core/timetable.d.ts +4 -0
  31. package/development/core/timetable.d.ts.map +1 -0
  32. package/development/core/timetable.js +164 -0
  33. package/development/differenceInMinutes-D47vcSvy.js +21 -0
  34. package/development/format-WI2gcVKN.js +1379 -0
  35. package/development/isValid-YTpbhEHG.js +52 -0
  36. package/development/journey-summary/journey-summary.d.ts +57 -0
  37. package/development/journey-summary/journey-summary.d.ts.map +1 -0
  38. package/development/journey-summary.d.ts +2 -0
  39. package/development/journey-summary.d.ts.map +1 -0
  40. package/development/journey-summary.js +210 -0
  41. package/development/pearl-chain/pearl-chain.d.ts +41 -0
  42. package/development/pearl-chain/pearl-chain.d.ts.map +1 -0
  43. package/development/pearl-chain/pearl-chain.sample-data.d.ts +121 -0
  44. package/development/pearl-chain/pearl-chain.sample-data.d.ts.map +1 -0
  45. package/development/pearl-chain-time/pearl-chain-time.d.ts +44 -0
  46. package/development/pearl-chain-time/pearl-chain-time.d.ts.map +1 -0
  47. package/development/pearl-chain-time.d.ts +2 -0
  48. package/development/pearl-chain-time.d.ts.map +1 -0
  49. package/development/pearl-chain-time.js +209 -0
  50. package/development/pearl-chain-vertical/pearl-chain-vertical.d.ts +17 -0
  51. package/development/pearl-chain-vertical/pearl-chain-vertical.d.ts.map +1 -0
  52. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.d.ts +35 -0
  53. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.d.ts.map +1 -0
  54. package/development/pearl-chain-vertical-item.d.ts +2 -0
  55. package/development/pearl-chain-vertical-item.d.ts.map +1 -0
  56. package/development/pearl-chain-vertical-item.js +369 -0
  57. package/development/pearl-chain-vertical.d.ts +2 -0
  58. package/development/pearl-chain-vertical.d.ts.map +1 -0
  59. package/development/pearl-chain-vertical.js +59 -0
  60. package/development/pearl-chain.d.ts +2 -0
  61. package/development/pearl-chain.d.ts.map +1 -0
  62. package/development/pearl-chain.js +599 -0
  63. package/development/timetable-duration/timetable-duration.d.ts +23 -0
  64. package/development/timetable-duration/timetable-duration.d.ts.map +1 -0
  65. package/development/timetable-duration/timetable-duration.sample-data.d.ts +6 -0
  66. package/development/timetable-duration/timetable-duration.sample-data.d.ts.map +1 -0
  67. package/development/timetable-duration.d.ts +2 -0
  68. package/development/timetable-duration.d.ts.map +1 -0
  69. package/development/timetable-duration.js +107 -0
  70. package/development/timetable-row/timetable-row.d.ts +79 -0
  71. package/development/timetable-row/timetable-row.d.ts.map +1 -0
  72. package/development/timetable-row/timetable-row.sample-data.d.ts +24 -0
  73. package/development/timetable-row/timetable-row.sample-data.d.ts.map +1 -0
  74. package/development/timetable-row.d.ts +2 -0
  75. package/development/timetable-row.d.ts.map +1 -0
  76. package/development/timetable-row.js +696 -0
  77. package/differenceInMinutes-CDpgJIgL.js +19 -0
  78. package/format-CEz7IGRJ.js +1168 -0
  79. package/index.d.ts +19 -0
  80. package/index.js +17 -0
  81. package/isValid-Df_caLp4.js +40 -0
  82. package/journey-summary/journey-summary.d.ts +57 -0
  83. package/journey-summary/journey-summary.d.ts.map +1 -0
  84. package/journey-summary.d.ts +2 -0
  85. package/journey-summary.d.ts.map +1 -0
  86. package/journey-summary.js +130 -0
  87. package/package.json +79 -2
  88. package/pearl-chain/pearl-chain.d.ts +41 -0
  89. package/pearl-chain/pearl-chain.d.ts.map +1 -0
  90. package/pearl-chain/pearl-chain.sample-data.d.ts +121 -0
  91. package/pearl-chain/pearl-chain.sample-data.d.ts.map +1 -0
  92. package/pearl-chain-time/pearl-chain-time.d.ts +44 -0
  93. package/pearl-chain-time/pearl-chain-time.d.ts.map +1 -0
  94. package/pearl-chain-time.d.ts +2 -0
  95. package/pearl-chain-time.d.ts.map +1 -0
  96. package/pearl-chain-time.js +90 -0
  97. package/pearl-chain-vertical/pearl-chain-vertical.d.ts +17 -0
  98. package/pearl-chain-vertical/pearl-chain-vertical.d.ts.map +1 -0
  99. package/pearl-chain-vertical-item/pearl-chain-vertical-item.d.ts +35 -0
  100. package/pearl-chain-vertical-item/pearl-chain-vertical-item.d.ts.map +1 -0
  101. package/pearl-chain-vertical-item.d.ts +2 -0
  102. package/pearl-chain-vertical-item.d.ts.map +1 -0
  103. package/pearl-chain-vertical-item.js +48 -0
  104. package/pearl-chain-vertical.d.ts +2 -0
  105. package/pearl-chain-vertical.d.ts.map +1 -0
  106. package/pearl-chain-vertical.js +24 -0
  107. package/pearl-chain.d.ts +2 -0
  108. package/pearl-chain.d.ts.map +1 -0
  109. package/pearl-chain.js +148 -0
  110. package/timetable-duration/timetable-duration.d.ts +23 -0
  111. package/timetable-duration/timetable-duration.d.ts.map +1 -0
  112. package/timetable-duration/timetable-duration.sample-data.d.ts +6 -0
  113. package/timetable-duration/timetable-duration.sample-data.d.ts.map +1 -0
  114. package/timetable-duration.d.ts +2 -0
  115. package/timetable-duration.d.ts.map +1 -0
  116. package/timetable-duration.js +37 -0
  117. package/timetable-row/timetable-row.d.ts +79 -0
  118. package/timetable-row/timetable-row.d.ts.map +1 -0
  119. package/timetable-row/timetable-row.sample-data.d.ts +24 -0
  120. package/timetable-row/timetable-row.sample-data.d.ts.map +1 -0
  121. package/timetable-row.d.ts +2 -0
  122. package/timetable-row.d.ts.map +1 -0
  123. package/timetable-row.js +392 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timetable-row.sample-data.d.ts","sourceRoot":"","sources":["../../../src/elements-experimental/timetable-row/timetable-row.sample-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYtD,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAClC;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,GACD,CAAC,CAAC;AAEN,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAoB9C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,SAAS,CA2BhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAoB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,SAAS,CAuBrD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAwB3C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,SAAS,CAkB7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,SAAS,CAkBzD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,SAAS,CAkB3D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,SAAS,CAkBhE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,SAAS,CA+DlD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,SAAS,CA8CjD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,SAAS,CA8B5C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,SAAS,CA8B1C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAuB3C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CA0J/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,SAAS,CA4BxD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAsF9C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './timetable-row/timetable-row.js';
2
+ //# sourceMappingURL=timetable-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timetable-row.d.ts","sourceRoot":"","sources":["../../src/elements-experimental/timetable-row.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,392 @@
1
+ import { SbbLanguageController as fe } from "@sbb-esta/lyne-elements/core/controllers.js";
2
+ import { defaultDateAdapter as Y } from "@sbb-esta/lyne-elements/core/datetime.js";
3
+ import { setOrRemoveAttribute as ve } from "@sbb-esta/lyne-elements/core/dom.js";
4
+ import { i18nTripQuayChange as we, i18nFromStand as X, i18nFromPier as xe, i18nFromPlatform as ye, i18nDeparture as Z, i18nMeansOfTransport as O, i18nDirection as G, i18nRealTimeInfo as V, i18nSupersaver as ee, i18nTransferProcedures as $e, i18nArrival as Te, i18nClass as te, i18nOccupancy as re, i18nTravelhints as Ce, i18nTripDuration as ae, i18nNew as se } from "@sbb-esta/lyne-elements/core/i18n.js";
5
+ import { css as Ne, html as b, LitElement as Ae, nothing as c } from "lit";
6
+ import { property as u, customElement as Me } from "lit/decorators.js";
7
+ import { removeTimezoneFromISOTimeString as ne, durationToTime as ie } from "./core/datetime.js";
8
+ import { isRideLeg as Oe, getDepartureArrivalTimeAttribute as Re } from "./core/timetable.js";
9
+ import "@sbb-esta/lyne-elements/card.js";
10
+ import "@sbb-esta/lyne-elements/icon.js";
11
+ import "@sbb-esta/lyne-elements/timetable-occupancy.js";
12
+ import "./pearl-chain-time.js";
13
+ import { f as oe } from "./format-CEz7IGRJ.js";
14
+ const Se = Ne`*,:before,:after{box-sizing:border-box}:host{--sbb-timetable-row-gap: var(--sbb-spacing-fixed-2x);--sbb-timetable-row-height: 1.5625rem;--sbb-timetable-row-height-header: 1.25rem;--sbb-timetable-row-height-footer: 1rem;--sbb-timetable-row-skeleton-pulse-duration: 1.8s;display:block}:host([disable-animation]){--sbb-timetable-row-skeleton-pulse-duration: 0}.sbb-timetable__row-transport-icon{--sbb-icon-svg-width: 1.25rem;--sbb-icon-svg-height: 1.25rem}.sbb-travel-hints__item{--sbb-icon-svg-height: .875rem}.sbb-screen-reader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-timetable__row--quay{margin-inline-end:var(--sbb-spacing-fixed-1x)}.sbb-timetable__row--quay-type{float:left}ul{list-style:none;margin:0;padding:0;font-size:inherit;display:inline-flex}li,.sbb-timetable__row-transport{display:inline-flex;align-self:center}.sbb-timetable__row-transportnumber,.sbb-timetable__row-time{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);font-weight:700;line-height:unset;white-space:nowrap;align-self:center}.sbb-timetable__row{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;flex-direction:column;gap:var(--sbb-timetable-row-gap)}.sbb-timetable__row-header,.sbb-timetable__row-footer{animation:none}.sbb-timetable__row-header{display:flex;gap:var(--sbb-spacing-fixed-2x);align-items:center;line-height:var(--sbb-timetable-row-height-header)}.sbb-timetable__row-details,.sbb-timetable__row-hints{display:inline-flex;gap:var(--sbb-spacing-fixed-1x);align-items:center}.sbb-timetable__row-header p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0;align-self:center}.sbb-timetable__row-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--sbb-spacing-fixed-2x);line-height:var(--sbb-timetable-row-height-footer)}.sbb-timetable__row-footer>span{align-self:center}.sbb-timetable__row-footer :only-child{margin-inline-start:auto}.sbb-timetable__row-quay--changed{color:var(--sbb-color-red)}.sbb-timetable__row-transport-wrapper,.sbb-timetable__row-warning{display:inline-flex}.sbb-loading{pointer-events:none}.sbb-loading__wrapper{display:flex;flex-direction:column;gap:var(--sbb-spacing-fixed-2x)}.sbb-loading__row{width:100%;border-radius:var(--sbb-border-radius-1x);height:var(--sbb-timetable-row-height)}@media (min-width: 52.5rem){.sbb-loading__row{height:1.75rem}}@media (forced-colors: active){.sbb-loading__row{border:var(--sbb-border-width-1x) solid ButtonBorder!important}}.sbb-loading__row,.sbb-loading__badge{background:var(--sbb-color-cloud);animation:skeleton-pulse var(--sbb-timetable-row-skeleton-pulse-duration) ease-out infinite}.sbb-loading__row:first-of-type{height:var(--sbb-timetable-row-height-header);width:50%}.sbb-loading__row:last-of-type{height:var(--sbb-timetable-row-height-footer)}.sbb-loading__badge{margin-inline:auto calc(var(--sbb-spacing-fixed-3x) * -1);padding-inline-end:var(--sbb-spacing-fixed-6x);border-end-start-radius:var(--sbb-border-radius-4x);transform:skew(16deg);width:7.1875rem;height:1.25rem}@keyframes skeleton-pulse{0%{background:var(--sbb-color-cloud)}17%{background:var(--sbb-color-cloud)}50%{background:var(--sbb-color-milk)}67%{background:var(--sbb-color-milk)}to{background:var(--sbb-color-cloud)}}`;
15
+ var Ie = Object.defineProperty, Pe = Object.getOwnPropertyDescriptor, m = (e, t, a, n) => {
16
+ for (var r = n > 1 ? void 0 : n ? Pe(t, a) : t, s = e.length - 1, i; s >= 0; s--)
17
+ (i = e[s]) && (r = (n ? i(t, a, r) : i(r)) || r);
18
+ return n && r && Ie(t, a, r), r;
19
+ };
20
+ const ke = (e, t) => b`<span class="sbb-timetable__row-transport">
21
+ <sbb-icon name=${e}></sbb-icon>
22
+ <span class="sbb-screen-reader-only">${t}</span>
23
+ </span>`, Le = (e, t) => {
24
+ const a = ["M", "B", "T"].includes(e) ? " " : "";
25
+ return b`<span class="sbb-timetable__row-transportnumber">
26
+ ${t !== null ? e + a + t : e}
27
+ </span>`;
28
+ }, le = (e) => {
29
+ var t, a, n;
30
+ return (n = (a = (t = e == null ? void 0 : e.find((r) => {
31
+ var s, i;
32
+ return (i = (s = r.serviceJourney) == null ? void 0 : s.serviceAlteration) == null ? void 0 : i.reachableText;
33
+ })) == null ? void 0 : t.serviceJourney) == null ? void 0 : a.serviceAlteration) == null ? void 0 : n.reachableText;
34
+ }, Ee = (e) => {
35
+ var t, a, n;
36
+ return (n = (a = (t = e == null ? void 0 : e.find((r) => {
37
+ var s, i;
38
+ return (i = (s = r.serviceJourney) == null ? void 0 : s.serviceAlteration) == null ? void 0 : i.delayText;
39
+ })) == null ? void 0 : t.serviceJourney) == null ? void 0 : a.serviceAlteration) == null ? void 0 : n.delayText;
40
+ }, be = (e) => {
41
+ var t, a, n;
42
+ return (n = (a = (t = e == null ? void 0 : e.find((r) => {
43
+ var s, i;
44
+ return !!((i = (s = r.serviceJourney) == null ? void 0 : s.serviceAlteration) != null && i.redirectedText);
45
+ })) == null ? void 0 : t.serviceJourney) == null ? void 0 : a.serviceAlteration) == null ? void 0 : n.redirectedText;
46
+ }, ce = (e) => {
47
+ var t, a, n;
48
+ return (n = (a = (t = e == null ? void 0 : e.find((r) => {
49
+ var s, i;
50
+ return !!((i = (s = r.serviceJourney) == null ? void 0 : s.serviceAlteration) != null && i.unplannedStopPointsText);
51
+ })) == null ? void 0 : t.serviceJourney) == null ? void 0 : a.serviceAlteration) == null ? void 0 : n.unplannedStopPointsText;
52
+ }, De = (e) => {
53
+ const t = {
54
+ DISTURBANCE: 0,
55
+ INFORMATION: 1,
56
+ DELAY: 2,
57
+ TRAIN_REPLACEMENT_BY_BUS: 3,
58
+ CONSTRUCTION_SITE: 4,
59
+ END_MESSAGE: 5
60
+ };
61
+ return [...e].sort(
62
+ (a, n) => t[a.cause] - t[n.cause]
63
+ );
64
+ }, Be = (e) => {
65
+ var t;
66
+ switch (e == null ? void 0 : e.cause) {
67
+ case "DISTURBANCE":
68
+ return {
69
+ name: "disruption",
70
+ text: (t = e == null ? void 0 : e.broadcastMessages) != null && t.length ? e == null ? void 0 : e.broadcastMessages[0].title : ""
71
+ };
72
+ case "INFORMATION":
73
+ return {
74
+ name: "info",
75
+ text: e != null && e.broadcastMessages.length ? e == null ? void 0 : e.broadcastMessages[0].title : ""
76
+ };
77
+ case "DELAY":
78
+ return {
79
+ name: "delay",
80
+ text: e != null && e.broadcastMessages.length ? e == null ? void 0 : e.broadcastMessages[0].title : ""
81
+ };
82
+ case "TRAIN_REPLACEMENT_BY_BUS":
83
+ return {
84
+ name: "replacementbus",
85
+ text: e != null && e.broadcastMessages.length ? e == null ? void 0 : e.broadcastMessages[0].title : ""
86
+ };
87
+ case "CONSTRUCTION_SITE":
88
+ return {
89
+ name: "construction",
90
+ text: e != null && e.broadcastMessages.length ? e == null ? void 0 : e.broadcastMessages[0].title : ""
91
+ };
92
+ default:
93
+ return {
94
+ name: "info",
95
+ text: e != null && e.broadcastMessages.length ? e == null ? void 0 : e.broadcastMessages[0].title : ""
96
+ };
97
+ }
98
+ }, Ue = (e, t) => {
99
+ const { summary: a, legs: n } = e || {}, r = n == null ? void 0 : n.filter((i) => Oe(i)), { tripStatus: s } = a || {};
100
+ if (s != null && s.cancelled || s != null && s.partiallyCancelled)
101
+ return { name: "cancellation", text: s == null ? void 0 : s.cancelledText };
102
+ if (le(r))
103
+ return { name: "missed-connection", text: le(r) };
104
+ if (s != null && s.alternative)
105
+ return { name: "alternative", text: s.alternativeText };
106
+ if (be(r))
107
+ return { name: "reroute", text: be(r) };
108
+ if (ce(r))
109
+ return { name: "add-stop", text: ce(r) };
110
+ if (s != null && s.delayed || s != null && s.delayedUnknown)
111
+ return { name: "delay", text: Ee(r) };
112
+ if (s != null && s.quayChanged) {
113
+ const i = r[0].departure;
114
+ return {
115
+ name: "platform-change",
116
+ text: i.quayChanged ? i.quayChangedText : we[t]
117
+ };
118
+ }
119
+ return {};
120
+ }, ze = (e) => {
121
+ const t = ["RR", "RK", "RC", "RL", "RM", "RS", "RU", "XP", "XR", "XT"];
122
+ return e.reduce((a, n) => {
123
+ if (a)
124
+ return a;
125
+ if (t.includes(n.name))
126
+ return { ...n, name: "RR" };
127
+ }, void 0);
128
+ }, We = (e) => {
129
+ const t = ["Z", "SB", "SZ", "VR", "TG"];
130
+ return e.filter((n, r) => e.findIndex((s) => s.name === n.name) === r).filter((n) => t.includes(n.name)).sort((n, r) => t.indexOf(n.name) - t.indexOf(r.name));
131
+ }, P = (e) => {
132
+ const t = ze(e), a = We(e);
133
+ return t === void 0 ? a : a.length ? a[0].name === "Z" && a[1] ? [a[0], t, a[1]].concat(
134
+ a.slice(2)
135
+ ) : [t, ...a] : [t];
136
+ };
137
+ let p = class extends Ae {
138
+ constructor() {
139
+ super(...arguments), this.loadingTrip = !1, this.loadingPrice = !1, this._now = null, this._language = new fe(this);
140
+ }
141
+ set now(e) {
142
+ this._now = Y.getValidDateOrNull(Y.deserialize(e));
143
+ }
144
+ get now() {
145
+ return this._now ?? /* @__PURE__ */ new Date();
146
+ }
147
+ willUpdate(e) {
148
+ super.willUpdate(e), e.has("loadingTrip") && ve(this, "role", this.loadingTrip ? null : "rowgroup");
149
+ }
150
+ /** The skeleton render function for the loading state */
151
+ _renderSkeleton() {
152
+ return b`
153
+ <sbb-card size="l" class="sbb-loading">
154
+ ${this.loadingPrice ? b`<sbb-card-badge class="sbb-loading__badge"></sbb-card-badge>` : c}
155
+ <div class="sbb-loading__wrapper">
156
+ <div class="sbb-loading__row"></div>
157
+ <div class="sbb-loading__row"></div>
158
+ <div class="sbb-loading__row"></div>
159
+ </div>
160
+ </sbb-card>
161
+ `;
162
+ }
163
+ _getQuayType(e) {
164
+ switch (e) {
165
+ case "TRAIN":
166
+ return ye;
167
+ case "SHIP":
168
+ return xe;
169
+ case "TRAMWAY":
170
+ return X;
171
+ case "BUS":
172
+ return X;
173
+ default:
174
+ return;
175
+ }
176
+ }
177
+ _getQuayTypeStrings() {
178
+ var t, a;
179
+ if (!((t = this.trip.summary) != null && t.product))
180
+ return null;
181
+ const e = this._getQuayType((a = this.trip.summary.product) == null ? void 0 : a.vehicleMode);
182
+ return {
183
+ long: e == null ? void 0 : e.long[this._language.current],
184
+ short: e == null ? void 0 : e.short[this._language.current]
185
+ };
186
+ }
187
+ /** map Quay */
188
+ _renderQuayType() {
189
+ var t;
190
+ if (!((t = this.trip.summary) != null && t.product))
191
+ return;
192
+ const e = this._getQuayTypeStrings();
193
+ return b`
194
+ <span class="sbb-timetable__row--quay">
195
+ <span class="sbb-screen-reader-only">${e == null ? void 0 : e.long}&nbsp;</span>
196
+ <span class="sbb-timetable__row--quay-type" aria-hidden="true"
197
+ >${e == null ? void 0 : e.short}</span
198
+ >
199
+ </span>
200
+ `;
201
+ }
202
+ _handleHimCus(e) {
203
+ var r;
204
+ const { situations: t } = e || {}, a = t && De(t), n = Ue(e, this._language.current);
205
+ return {
206
+ cus: (r = Object.keys(n)) != null && r.length ? n : null,
207
+ him: t != null && t.length ? Be(a[0]) : null
208
+ };
209
+ }
210
+ _getAccessibilityText(e) {
211
+ var L, E, D, B, U, z, W, Q, q, F, H, j;
212
+ const { summary: t, legs: a, notices: n } = e || {}, {
213
+ departureWalk: r,
214
+ arrivalWalk: s,
215
+ departure: i,
216
+ arrival: l,
217
+ product: g,
218
+ direction: R,
219
+ occupancy: o,
220
+ duration: _
221
+ } = t || {}, { departureTimeAttribute: h, arrivalTimeAttribute: v } = Re(
222
+ a,
223
+ r || 0,
224
+ s || 0,
225
+ this._language.current
226
+ ), f = i != null && i.time ? ne(i.time) : void 0, w = l != null && l.time ? ne(l.time) : void 0, y = h ? `${h.text} ${h.duration}, ` : "", $ = v ? `${v.text} ${v.duration}, ` : "", T = f ? `${Z[this._language.current]}: ${oe(f, "HH:mm")}, ` : "", C = () => {
227
+ var M;
228
+ return i != null && i.quayFormatted ? `${i != null && i.quayChanged ? `${se[this._language.current]} ` : ""}${(M = this._getQuayTypeStrings()) == null ? void 0 : M.long} ${i == null ? void 0 : i.quayFormatted}, ` : "";
229
+ }, N = g && g.vehicleMode ? O[g.vehicleMode.toLowerCase()] && `${O[g.vehicleMode.toLowerCase()][this._language.current]}, ` : "", A = g != null && g.vehicleSubModeShortName ? `${g.vehicleSubModeShortName} ${g.line || ""}, ` : "", S = `${G[this._language.current]} ${R}, `, d = this._handleHimCus(e), x = (L = d == null ? void 0 : d.cus) != null && L.text ? `${V[this._language.current]}: ${(E = d == null ? void 0 : d.cus) == null ? void 0 : E.text}, ` : "", de = (D = d == null ? void 0 : d.him) != null && D.text ? `${V[this._language.current]}: ${(B = d == null ? void 0 : d.him) == null ? void 0 : B.text}, ` : "", ge = this.boarding ? `${this.boarding.text}, ` : "", pe = `${(U = this.price) != null && U.isDiscount ? ee[this._language.current] : ""} ${(z = this.price) != null && z.text && ((W = this.price) != null && W.price) ? (((Q = this.price) == null ? void 0 : Q.text) || "") + " " + (((q = this.price) == null ? void 0 : q.price) || "") + ", " : ""}`, he = (a == null ? void 0 : a.length) > 1 ? `${(a == null ? void 0 : a.length) - 1} ${$e[this._language.current]}, ` : "", me = w ? `${Te[this._language.current]}: ${oe(w, "HH:mm")}, ` : "";
230
+ let I = "";
231
+ o && (o.firstClass && o.firstClass !== "UNKNOWN" && (I += `${te.first[this._language.current]} ${(F = re[o.firstClass.toLowerCase()]) == null ? void 0 : F[this._language.current]}.`), o.secondClass && o.secondClass !== "UNKNOWN" && (I += ` ${te.second[this._language.current]} ${(H = re[o.secondClass.toLowerCase()]) == null ? void 0 : H[this._language.current]}.`));
232
+ const k = n && P(n).length && ((j = P(n)) == null ? void 0 : j.map((J, M) => {
233
+ var K;
234
+ return M < 4 && ((K = J.text) == null ? void 0 : K.template);
235
+ }).join(", ")) + ", ", ue = k ? `${Ce[this._language.current]}: ${k}` : "", _e = _ && _ > 0 ? `${ae[this._language.current]} ${ie(_, this._language.current).long}, ` : "";
236
+ return `${y} ${T} ${C()} ${N} ${A} ${S} ${x} ${ge} ${pe} ${x ? "" : de} ${me} ${$} ${_e} ${he} ${I} ${ue}`;
237
+ }
238
+ render() {
239
+ var y, $, T, C, N;
240
+ if (this.loadingTrip)
241
+ return this._renderSkeleton();
242
+ const { legs: e, id: t, notices: a, summary: n } = this.trip || {}, {
243
+ product: r,
244
+ direction: s,
245
+ departureWalk: i,
246
+ departure: l,
247
+ arrival: g,
248
+ arrivalWalk: R,
249
+ occupancy: o,
250
+ duration: _
251
+ } = n || {}, h = this._handleHimCus(this.trip), v = !!h.cus || !!h.him, f = a && P(a), w = _ ? ie(_, this._language.current) : null;
252
+ return b`
253
+ <sbb-card size="l" id=${t}>
254
+ <sbb-card-button
255
+ ?active=${this.active}
256
+ aria-expanded=${((y = this.accessibilityExpanded) == null ? void 0 : y.toString()) ?? c}
257
+ >
258
+ ${this.cardActionLabel ? this.cardActionLabel : this._getAccessibilityText(this.trip)}
259
+ </sbb-card-button>
260
+ ${this.loadingPrice ? b`<sbb-card-badge class="sbb-loading__badge"></sbb-card-badge>` : c}
261
+ ${this.price && !this.loadingPrice ? b`<sbb-card-badge color=${this.price.isDiscount ? "charcoal" : "white"}>
262
+ ${this.price.isDiscount ? b`<span aria-hidden="true">
263
+ %<span class="sbb-screen-reader-only"
264
+ >${ee[this._language.current]}</span
265
+ >
266
+ </span>` : c}
267
+ ${this.price.text ? b`<span>${this.price.text}</span>` : c}
268
+ ${this.price.price ? b`<span>${this.price.price}</span>` : c}
269
+ </sbb-card-badge>` : c}
270
+ <div class="sbb-timetable__row" role="row">
271
+ <div class="sbb-timetable__row-header" role="gridcell">
272
+ <div class="sbb-timetable__row-details">
273
+ ${(r == null ? void 0 : r.corporateIdentityPictogram) && b`<span class="sbb-timetable__row-transport-wrapper">
274
+ <sbb-icon
275
+ class="sbb-timetable__row-transport-icon"
276
+ name="picto:${r.corporateIdentityPictogram}"
277
+ ></sbb-icon>
278
+ <span class="sbb-screen-reader-only">
279
+ ${r && r.vehicleMode && O[r.vehicleMode.toLowerCase()] && O[r.vehicleMode.toLowerCase()][this._language.current]}
280
+ &nbsp;
281
+ </span>
282
+ </span>`}
283
+ ${r && (r.corporateIdentityIcon ? ke(r.corporateIdentityIcon, r.name) : r.vehicleSubModeShortName && Le(r.vehicleSubModeShortName, r == null ? void 0 : r.line))}
284
+ </div>
285
+ ${s ? b`<p>${`${G[this._language.current]} ${s}`}</p>` : c}
286
+ </div>
287
+ <sbb-pearl-chain-time
288
+ role="gridcell"
289
+ .legs=${e}
290
+ .departureTime=${l == null ? void 0 : l.time}
291
+ .arrivalTime=${g == null ? void 0 : g.time}
292
+ .departureWalk=${i}
293
+ .arrivalWalk=${R}
294
+ ?disable-animation=${this.disableAnimation}
295
+ .now=${this.now}
296
+ ></sbb-pearl-chain-time>
297
+ <div class="sbb-timetable__row-footer" role="gridcell">
298
+ ${r && this._getQuayType(r.vehicleMode) && (l != null && l.quayFormatted) ? b`<span
299
+ class=${l != null && l.quayChanged ? "sbb-timetable__row-quay--changed" : c}
300
+ >
301
+ <span class="sbb-screen-reader-only">
302
+ ${`${Z[this._language.current]} ${l != null && l.quayChanged ? se[this._language.current] : ""}`}
303
+ &nbsp;
304
+ </span>
305
+ ${this._renderQuayType()} ${l == null ? void 0 : l.quayFormatted}
306
+ </span>` : c}
307
+ ${o != null && o.firstClass && (o == null ? void 0 : o.firstClass) !== "UNKNOWN" || o != null && o.secondClass && o.secondClass !== "UNKNOWN" ? b`<sbb-timetable-occupancy
308
+ .firstClassOccupancy=${($ = o == null ? void 0 : o.firstClass) == null ? void 0 : $.toLowerCase()}
309
+ .secondClassOccupancy=${(T = o == null ? void 0 : o.secondClass) == null ? void 0 : T.toLowerCase()}
310
+ ></sbb-timetable-occupancy>` : c}
311
+ ${f && f.length || this.boarding ? b`<ul class="sbb-timetable__row-hints" role="list">
312
+ ${f == null ? void 0 : f.map(
313
+ (A, S) => {
314
+ var d, x;
315
+ return S < 4 ? b`<li>
316
+ <sbb-icon
317
+ class="sbb-travel-hints__item"
318
+ name=${"sa-" + ((d = A.name) == null ? void 0 : d.toLowerCase())}
319
+ ></sbb-icon>
320
+ <span class="sbb-screen-reader-only">${(x = A.text) == null ? void 0 : x.template}</span>
321
+ </li>` : c;
322
+ }
323
+ )}
324
+ ${this.boarding ? b`<li>
325
+ <sbb-icon
326
+ class="sbb-travel-hints__item"
327
+ name=${(C = this.boarding) == null ? void 0 : C.name}
328
+ aria-label=${(N = this.boarding) == null ? void 0 : N.text}
329
+ aria-hidden="false"
330
+ ></sbb-icon>
331
+ </li>` : c}
332
+ </ul>` : c}
333
+ ${_ && _ > 0 ? b`<time>
334
+ <span class="sbb-screen-reader-only">
335
+ ${`${ae[this._language.current]} ${w.long}`}
336
+ </span>
337
+ <span aria-hidden="true">${w.short}</span>
338
+ </time>` : c}
339
+ ${v && (h.cus || h.him) ? b`<span class="sbb-timetable__row-warning">
340
+ <sbb-icon name=${(h.cus || h.him).name}></sbb-icon>
341
+ <span class="sbb-screen-reader-only">${(h.cus || h.him).text}</span>
342
+ </span>` : c}
343
+ </div>
344
+ </div>
345
+ </sbb-card>
346
+ `;
347
+ }
348
+ };
349
+ p.styles = Se;
350
+ m([
351
+ u({ type: Object })
352
+ ], p.prototype, "trip", 2);
353
+ m([
354
+ u({ type: Object })
355
+ ], p.prototype, "price", 2);
356
+ m([
357
+ u({ attribute: "disable-animation", reflect: !0, type: Boolean })
358
+ ], p.prototype, "disableAnimation", 2);
359
+ m([
360
+ u({ type: Object })
361
+ ], p.prototype, "boarding", 2);
362
+ m([
363
+ u({ attribute: "loading-trip", type: Boolean })
364
+ ], p.prototype, "loadingTrip", 2);
365
+ m([
366
+ u({ attribute: "loading-price", type: Boolean })
367
+ ], p.prototype, "loadingPrice", 2);
368
+ m([
369
+ u({ attribute: "card-action-label" })
370
+ ], p.prototype, "cardActionLabel", 2);
371
+ m([
372
+ u({ attribute: "accessibility-expanded", type: Boolean })
373
+ ], p.prototype, "accessibilityExpanded", 2);
374
+ m([
375
+ u({ type: Boolean })
376
+ ], p.prototype, "active", 2);
377
+ m([
378
+ u()
379
+ ], p.prototype, "now", 1);
380
+ p = m([
381
+ Me("sbb-timetable-row")
382
+ ], p);
383
+ export {
384
+ p as SbbTimetableRowElement,
385
+ We as filterNotices,
386
+ Ue as getCus,
387
+ Be as getHimIcon,
388
+ P as handleNotices,
389
+ ke as renderIconProduct,
390
+ Le as renderStringProduct,
391
+ De as sortSituation
392
+ };