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