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

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 +193 -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 +290 -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-BOXfsJCN.js +1373 -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 +209 -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 +208 -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 +368 -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 +58 -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 +597 -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 +106 -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 +687 -0
  77. package/differenceInMinutes-CDpgJIgL.js +19 -0
  78. package/format-qHhIvnY8.js +1164 -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 +147 -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 +386 -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,386 @@
1
+ import { SbbLanguageController as ve } from "@sbb-esta/lyne-elements/core/controllers.js";
2
+ import { defaultDateAdapter as Q } from "@sbb-esta/lyne-elements/core/datetime.js";
3
+ import { setOrRemoveAttribute as _e } from "@sbb-esta/lyne-elements/core/dom.js";
4
+ import { i18nTripQuayChange as xe, i18nFromStand as X, i18nFromPier as we, i18nFromPlatform as $e, i18nDeparture as Z, i18nMeansOfTransport as O, i18nDirection as G, i18nRealTimeInfo as V, i18nSupersaver as ee, i18nTransferProcedures as ye, i18nArrival as Te, i18nClass as te, i18nOccupancy as re, i18nTravelhints as Ne, i18nTripDuration as se, i18nNew as ae } from "@sbb-esta/lyne-elements/core/i18n.js";
5
+ import { css as Ce, html as l, LitElement as Ae, nothing as c } from "lit";
6
+ import { property as f, customElement as Me } from "lit/decorators.js";
7
+ import { removeTimezoneFromISOTimeString as ie, durationToTime as ne } 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-qHhIvnY8.js";
14
+ const Ie = Ce`*,: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 Pe = Object.defineProperty, ke = Object.getOwnPropertyDescriptor, g = (e, t, s, i) => {
16
+ for (var r = i > 1 ? void 0 : i ? ke(t, s) : t, a = e.length - 1, n; a >= 0; a--)
17
+ (n = e[a]) && (r = (i ? n(t, s, r) : n(r)) || r);
18
+ return i && r && Pe(t, s, r), r;
19
+ };
20
+ const Le = (e, t) => l`<span class="sbb-timetable__row-transport">
21
+ <sbb-icon name=${e}></sbb-icon>
22
+ <span class="sbb-screen-reader-only">${t}</span>
23
+ </span>`, Se = (e, t) => {
24
+ const s = ["M", "B", "T"].includes(e) ? " " : "";
25
+ return l`<span class="sbb-timetable__row-transportnumber">
26
+ ${t !== null ? e + s + t : e}
27
+ </span>`;
28
+ }, be = (e) => {
29
+ var t, s, i;
30
+ return (i = (s = (t = e == null ? void 0 : e.find((r) => {
31
+ var a, n;
32
+ return (n = (a = r.serviceJourney) == null ? void 0 : a.serviceAlteration) == null ? void 0 : n.reachableText;
33
+ })) == null ? void 0 : t.serviceJourney) == null ? void 0 : s.serviceAlteration) == null ? void 0 : i.reachableText;
34
+ }, Ee = (e) => {
35
+ var t, s, i;
36
+ return (i = (s = (t = e == null ? void 0 : e.find((r) => {
37
+ var a, n;
38
+ return (n = (a = r.serviceJourney) == null ? void 0 : a.serviceAlteration) == null ? void 0 : n.delayText;
39
+ })) == null ? void 0 : t.serviceJourney) == null ? void 0 : s.serviceAlteration) == null ? void 0 : i.delayText;
40
+ }, le = (e) => {
41
+ var t, s, i;
42
+ return (i = (s = (t = e == null ? void 0 : e.find((r) => {
43
+ var a, n;
44
+ return !!((n = (a = r.serviceJourney) == null ? void 0 : a.serviceAlteration) != null && n.redirectedText);
45
+ })) == null ? void 0 : t.serviceJourney) == null ? void 0 : s.serviceAlteration) == null ? void 0 : i.redirectedText;
46
+ }, ce = (e) => {
47
+ var t, s, i;
48
+ return (i = (s = (t = e == null ? void 0 : e.find((r) => {
49
+ var a, n;
50
+ return !!((n = (a = r.serviceJourney) == null ? void 0 : a.serviceAlteration) != null && n.unplannedStopPointsText);
51
+ })) == null ? void 0 : t.serviceJourney) == null ? void 0 : s.serviceAlteration) == null ? void 0 : i.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
+ (s, i) => t[s.cause] - t[i.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: s, legs: i } = e || {}, r = i == null ? void 0 : i.filter((n) => Oe(n)), { tripStatus: a } = s || {};
100
+ if (a != null && a.cancelled || a != null && a.partiallyCancelled)
101
+ return { name: "cancellation", text: a == null ? void 0 : a.cancelledText };
102
+ if (be(r))
103
+ return { name: "missed-connection", text: be(r) };
104
+ if (a != null && a.alternative) return { name: "alternative", text: a.alternativeText };
105
+ if (le(r)) return { name: "reroute", text: le(r) };
106
+ if (ce(r)) return { name: "add-stop", text: ce(r) };
107
+ if (a != null && a.delayed || a != null && a.delayedUnknown)
108
+ return { name: "delay", text: Ee(r) };
109
+ if (a != null && a.quayChanged) {
110
+ const n = r[0].departure;
111
+ return {
112
+ name: "platform-change",
113
+ text: n.quayChanged ? n.quayChangedText : xe[t]
114
+ };
115
+ }
116
+ return {};
117
+ }, ze = (e) => {
118
+ const t = ["RR", "RK", "RC", "RL", "RM", "RS", "RU", "XP", "XR", "XT"];
119
+ return e.reduce((s, i) => {
120
+ if (s) return s;
121
+ if (t.includes(i.name))
122
+ return { ...i, name: "RR" };
123
+ }, void 0);
124
+ }, We = (e) => {
125
+ const t = ["Z", "SB", "SZ", "VR", "TG"];
126
+ return e.filter((i, r) => e.findIndex((a) => a.name === i.name) === r).filter((i) => t.includes(i.name)).sort((i, r) => t.indexOf(i.name) - t.indexOf(r.name));
127
+ }, k = (e) => {
128
+ const t = ze(e), s = We(e);
129
+ return t === void 0 ? s : s.length ? s[0].name === "Z" && s[1] ? [s[0], t, s[1]].concat(
130
+ s.slice(2)
131
+ ) : [t, ...s] : [t];
132
+ };
133
+ let m = class extends Ae {
134
+ constructor() {
135
+ super(...arguments), this.loadingTrip = !1, this.loadingPrice = !1, this.b = null, this.a = new ve(this);
136
+ }
137
+ set now(e) {
138
+ this.b = Q.getValidDateOrNull(Q.deserialize(e));
139
+ }
140
+ get now() {
141
+ return this.b ?? /* @__PURE__ */ new Date();
142
+ }
143
+ willUpdate(e) {
144
+ super.willUpdate(e), e.has("loadingTrip") && _e(this, "role", this.loadingTrip ? null : "rowgroup");
145
+ }
146
+ /** The skeleton render function for the loading state */
147
+ f() {
148
+ return l`
149
+ <sbb-card size="l" class="sbb-loading">
150
+ ${this.loadingPrice ? l`<sbb-card-badge class="sbb-loading__badge"></sbb-card-badge>` : c}
151
+ <div class="sbb-loading__wrapper">
152
+ <div class="sbb-loading__row"></div>
153
+ <div class="sbb-loading__row"></div>
154
+ <div class="sbb-loading__row"></div>
155
+ </div>
156
+ </sbb-card>
157
+ `;
158
+ }
159
+ c(e) {
160
+ switch (e) {
161
+ case "TRAIN":
162
+ return $e;
163
+ case "SHIP":
164
+ return we;
165
+ case "TRAMWAY":
166
+ return X;
167
+ case "BUS":
168
+ return X;
169
+ default:
170
+ return;
171
+ }
172
+ }
173
+ d() {
174
+ var t, s;
175
+ if (!((t = this.trip.summary) != null && t.product)) return null;
176
+ const e = this.c((s = this.trip.summary.product) == null ? void 0 : s.vehicleMode);
177
+ return {
178
+ long: e == null ? void 0 : e.long[this.a.current],
179
+ short: e == null ? void 0 : e.short[this.a.current]
180
+ };
181
+ }
182
+ /** map Quay */
183
+ g() {
184
+ var t;
185
+ if (!((t = this.trip.summary) != null && t.product)) return;
186
+ const e = this.d();
187
+ return l`
188
+ <span class="sbb-timetable__row--quay">
189
+ <span class="sbb-screen-reader-only">${e == null ? void 0 : e.long}&nbsp;</span>
190
+ <span class="sbb-timetable__row--quay-type" aria-hidden="true"
191
+ >${e == null ? void 0 : e.short}</span
192
+ >
193
+ </span>
194
+ `;
195
+ }
196
+ e(e) {
197
+ var r;
198
+ const { situations: t } = e || {}, s = t && De(t), i = Ue(e, this.a.current);
199
+ return {
200
+ cus: (r = Object.keys(i)) != null && r.length ? i : null,
201
+ him: t != null && t.length ? Be(s[0]) : null
202
+ };
203
+ }
204
+ h(e) {
205
+ var S, E, D, B, U, z, W, q, F, j, J, H;
206
+ const { summary: t, legs: s, notices: i } = e || {}, {
207
+ departureWalk: r,
208
+ arrivalWalk: a,
209
+ departure: n,
210
+ arrival: b,
211
+ product: h,
212
+ direction: R,
213
+ occupancy: o,
214
+ duration: u
215
+ } = t || {}, { departureTimeAttribute: p, arrivalTimeAttribute: _ } = Re(
216
+ s,
217
+ r || 0,
218
+ a || 0,
219
+ this.a.current
220
+ ), v = n != null && n.time ? ie(n.time) : void 0, x = b != null && b.time ? ie(b.time) : void 0, $ = p ? `${p.text} ${p.duration}, ` : "", y = _ ? `${_.text} ${_.duration}, ` : "", T = v ? `${Z[this.a.current]}: ${oe(v, "HH:mm")}, ` : "", N = () => {
221
+ var M;
222
+ return n != null && n.quayFormatted ? `${n != null && n.quayChanged ? `${ae[this.a.current]} ` : ""}${(M = this.d()) == null ? void 0 : M.long} ${n == null ? void 0 : n.quayFormatted}, ` : "";
223
+ }, C = h && h.vehicleMode ? O[h.vehicleMode.toLowerCase()] && `${O[h.vehicleMode.toLowerCase()][this.a.current]}, ` : "", A = h != null && h.vehicleSubModeShortName ? `${h.vehicleSubModeShortName} ${h.line || ""}, ` : "", I = `${G[this.a.current]} ${R}, `, d = this.e(e), w = (S = d == null ? void 0 : d.cus) != null && S.text ? `${V[this.a.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.a.current]}: ${(B = d == null ? void 0 : d.him) == null ? void 0 : B.text}, ` : "", he = this.boarding ? `${this.boarding.text}, ` : "", me = `${(U = this.price) != null && U.isDiscount ? ee[this.a.current] : ""} ${(z = this.price) != null && z.text && ((W = this.price) != null && W.price) ? (((q = this.price) == null ? void 0 : q.text) || "") + " " + (((F = this.price) == null ? void 0 : F.price) || "") + ", " : ""}`, pe = (s == null ? void 0 : s.length) > 1 ? `${(s == null ? void 0 : s.length) - 1} ${ye[this.a.current]}, ` : "", ge = x ? `${Te[this.a.current]}: ${oe(x, "HH:mm")}, ` : "";
224
+ let P = "";
225
+ o && (o.firstClass && o.firstClass !== "UNKNOWN" && (P += `${te.first[this.a.current]} ${(j = re[o.firstClass.toLowerCase()]) == null ? void 0 : j[this.a.current]}.`), o.secondClass && o.secondClass !== "UNKNOWN" && (P += ` ${te.second[this.a.current]} ${(J = re[o.secondClass.toLowerCase()]) == null ? void 0 : J[this.a.current]}.`));
226
+ const L = i && k(i).length && ((H = k(i)) == null ? void 0 : H.map((K, M) => {
227
+ var Y;
228
+ return M < 4 && ((Y = K.text) == null ? void 0 : Y.template);
229
+ }).join(", ")) + ", ", fe = L ? `${Ne[this.a.current]}: ${L}` : "", ue = u && u > 0 ? `${se[this.a.current]} ${ne(u, this.a.current).long}, ` : "";
230
+ return `${$} ${T} ${N()} ${C} ${A} ${I} ${w} ${he} ${me} ${w ? "" : de} ${ge} ${y} ${ue} ${pe} ${P} ${fe}`;
231
+ }
232
+ render() {
233
+ var $, y, T, N, C;
234
+ if (this.loadingTrip)
235
+ return this.f();
236
+ const { legs: e, id: t, notices: s, summary: i } = this.trip || {}, {
237
+ product: r,
238
+ direction: a,
239
+ departureWalk: n,
240
+ departure: b,
241
+ arrival: h,
242
+ arrivalWalk: R,
243
+ occupancy: o,
244
+ duration: u
245
+ } = i || {}, p = this.e(this.trip), _ = !!p.cus || !!p.him, v = s && k(s), x = u ? ne(u, this.a.current) : null;
246
+ return l`
247
+ <sbb-card size="l" id=${t}>
248
+ <sbb-card-button
249
+ ?active=${this.active}
250
+ aria-expanded=${(($ = this.accessibilityExpanded) == null ? void 0 : $.toString()) ?? c}
251
+ >
252
+ ${this.cardActionLabel ? this.cardActionLabel : this.h(this.trip)}
253
+ </sbb-card-button>
254
+ ${this.loadingPrice ? l`<sbb-card-badge class="sbb-loading__badge"></sbb-card-badge>` : c}
255
+ ${this.price && !this.loadingPrice ? l`<sbb-card-badge color=${this.price.isDiscount ? "charcoal" : "white"}>
256
+ ${this.price.isDiscount ? l`<span aria-hidden="true">
257
+ %<span class="sbb-screen-reader-only"
258
+ >${ee[this.a.current]}</span
259
+ >
260
+ </span>` : c}
261
+ ${this.price.text ? l`<span>${this.price.text}</span>` : c}
262
+ ${this.price.price ? l`<span>${this.price.price}</span>` : c}
263
+ </sbb-card-badge>` : c}
264
+ <div class="sbb-timetable__row" role="row">
265
+ <div class="sbb-timetable__row-header" role="gridcell">
266
+ <div class="sbb-timetable__row-details">
267
+ ${(r == null ? void 0 : r.corporateIdentityPictogram) && l`<span class="sbb-timetable__row-transport-wrapper">
268
+ <sbb-icon
269
+ class="sbb-timetable__row-transport-icon"
270
+ name="picto:${r.corporateIdentityPictogram}"
271
+ ></sbb-icon>
272
+ <span class="sbb-screen-reader-only">
273
+ ${r && r.vehicleMode && O[r.vehicleMode.toLowerCase()] && O[r.vehicleMode.toLowerCase()][this.a.current]}
274
+ &nbsp;
275
+ </span>
276
+ </span>`}
277
+ ${r && (r.corporateIdentityIcon ? Le(r.corporateIdentityIcon, r.name) : r.vehicleSubModeShortName && Se(r.vehicleSubModeShortName, r == null ? void 0 : r.line))}
278
+ </div>
279
+ ${a ? l`<p>${`${G[this.a.current]} ${a}`}</p>` : c}
280
+ </div>
281
+ <sbb-pearl-chain-time
282
+ role="gridcell"
283
+ .legs=${e}
284
+ .departureTime=${b == null ? void 0 : b.time}
285
+ .arrivalTime=${h == null ? void 0 : h.time}
286
+ .departureWalk=${n}
287
+ .arrivalWalk=${R}
288
+ ?disable-animation=${this.disableAnimation}
289
+ .now=${this.now}
290
+ ></sbb-pearl-chain-time>
291
+ <div class="sbb-timetable__row-footer" role="gridcell">
292
+ ${r && this.c(r.vehicleMode) && (b != null && b.quayFormatted) ? l`<span
293
+ class=${b != null && b.quayChanged ? "sbb-timetable__row-quay--changed" : c}
294
+ >
295
+ <span class="sbb-screen-reader-only">
296
+ ${`${Z[this.a.current]} ${b != null && b.quayChanged ? ae[this.a.current] : ""}`}
297
+ &nbsp;
298
+ </span>
299
+ ${this.g()} ${b == null ? void 0 : b.quayFormatted}
300
+ </span>` : c}
301
+ ${o != null && o.firstClass && (o == null ? void 0 : o.firstClass) !== "UNKNOWN" || o != null && o.secondClass && o.secondClass !== "UNKNOWN" ? l`<sbb-timetable-occupancy
302
+ .firstClassOccupancy=${(y = o == null ? void 0 : o.firstClass) == null ? void 0 : y.toLowerCase()}
303
+ .secondClassOccupancy=${(T = o == null ? void 0 : o.secondClass) == null ? void 0 : T.toLowerCase()}
304
+ ></sbb-timetable-occupancy>` : c}
305
+ ${v && v.length || this.boarding ? l`<ul class="sbb-timetable__row-hints" role="list">
306
+ ${v == null ? void 0 : v.map(
307
+ (A, I) => {
308
+ var d, w;
309
+ return I < 4 ? l`<li>
310
+ <sbb-icon
311
+ class="sbb-travel-hints__item"
312
+ name=${"sa-" + ((d = A.name) == null ? void 0 : d.toLowerCase())}
313
+ ></sbb-icon>
314
+ <span class="sbb-screen-reader-only">${(w = A.text) == null ? void 0 : w.template}</span>
315
+ </li>` : c;
316
+ }
317
+ )}
318
+ ${this.boarding ? l`<li>
319
+ <sbb-icon
320
+ class="sbb-travel-hints__item"
321
+ name=${(N = this.boarding) == null ? void 0 : N.name}
322
+ aria-label=${(C = this.boarding) == null ? void 0 : C.text}
323
+ aria-hidden="false"
324
+ ></sbb-icon>
325
+ </li>` : c}
326
+ </ul>` : c}
327
+ ${u && u > 0 ? l`<time>
328
+ <span class="sbb-screen-reader-only">
329
+ ${`${se[this.a.current]} ${x.long}`}
330
+ </span>
331
+ <span aria-hidden="true">${x.short}</span>
332
+ </time>` : c}
333
+ ${_ && (p.cus || p.him) ? l`<span class="sbb-timetable__row-warning">
334
+ <sbb-icon name=${(p.cus || p.him).name}></sbb-icon>
335
+ <span class="sbb-screen-reader-only">${(p.cus || p.him).text}</span>
336
+ </span>` : c}
337
+ </div>
338
+ </div>
339
+ </sbb-card>
340
+ `;
341
+ }
342
+ };
343
+ m.styles = Ie;
344
+ g([
345
+ f({ type: Object })
346
+ ], m.prototype, "trip", 2);
347
+ g([
348
+ f({ type: Object })
349
+ ], m.prototype, "price", 2);
350
+ g([
351
+ f({ attribute: "disable-animation", reflect: !0, type: Boolean })
352
+ ], m.prototype, "disableAnimation", 2);
353
+ g([
354
+ f({ type: Object })
355
+ ], m.prototype, "boarding", 2);
356
+ g([
357
+ f({ attribute: "loading-trip", type: Boolean })
358
+ ], m.prototype, "loadingTrip", 2);
359
+ g([
360
+ f({ attribute: "loading-price", type: Boolean })
361
+ ], m.prototype, "loadingPrice", 2);
362
+ g([
363
+ f({ attribute: "card-action-label" })
364
+ ], m.prototype, "cardActionLabel", 2);
365
+ g([
366
+ f({ attribute: "accessibility-expanded", type: Boolean })
367
+ ], m.prototype, "accessibilityExpanded", 2);
368
+ g([
369
+ f({ type: Boolean })
370
+ ], m.prototype, "active", 2);
371
+ g([
372
+ f()
373
+ ], m.prototype, "now", 1);
374
+ m = g([
375
+ Me("sbb-timetable-row")
376
+ ], m);
377
+ export {
378
+ m as SbbTimetableRowElement,
379
+ We as filterNotices,
380
+ Ue as getCus,
381
+ Be as getHimIcon,
382
+ k as handleNotices,
383
+ Le as renderIconProduct,
384
+ Se as renderStringProduct,
385
+ De as sortSituation
386
+ };