@sbb-esta/lyne-elements-experimental 5.0.0-next.2 → 5.0.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.
- package/_index.scss +2 -0
- package/autocomplete-grid/_autocomplete-grid.global.scss +14 -0
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +4 -4
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +42 -66
- package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
- package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
- package/autocomplete-grid-option.component-DUFBhQwI.js +35 -0
- package/autocomplete-grid.js +3 -3
- package/autocomplete-grid.pure.js +3 -3
- package/core/datetime/date-helper.js +1 -1
- package/core/styles/_theme.scss +19 -0
- package/core/styles/lean-off-brand-theme.scss +3 -0
- package/core/styles/lean-safety-theme.scss +3 -0
- package/core.js +1 -1
- package/custom-elements.json +5312 -5160
- package/{date-helper-CuMnZCsr.js → date-helper-DNzMLcyb.js} +3 -3
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +5 -5
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +54 -83
- package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +0 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
- package/development/{autocomplete-grid-cell.component-BF8i4388.js → autocomplete-grid-cell.component-BbdELDro.js} +1 -1
- package/development/autocomplete-grid-option.component-C7WuqRit.js +57 -0
- package/development/{autocomplete-grid-row.component-CBHh50jC.js → autocomplete-grid-row.component-DoXbOsQM.js} +1 -1
- package/development/autocomplete-grid.js +4 -4
- package/development/autocomplete-grid.pure.js +3 -3
- package/development/core/datetime/date-helper.js +1 -1
- package/development/core/timetable/access-leg-helper.js +1 -1
- package/development/core/timetable/timetable-helper.js +1 -1
- package/development/core.js +1 -1
- package/development/date-helper-BcTDWVeP.js +539 -0
- package/development/{differenceInMinutes-B7_GTDq7.js → differenceInMinutes-CxAbGYQ3.js} +2 -2
- package/development/{format-DFx4997p.js → format-Cx3zmmaF.js} +3 -3
- package/development/{isValid-JpZ7FphI.js → isValid-40Olgzo1.js} +2 -2
- package/development/journey-summary/journey-summary.component.d.ts +2 -3
- package/development/journey-summary/journey-summary.component.d.ts.map +1 -1
- package/development/journey-summary/journey-summary.component.js +1 -1
- package/development/journey-summary.component-BsC7wBIn.js +341 -0
- package/development/journey-summary.js +2 -2
- package/development/journey-summary.pure.js +1 -1
- package/development/{mapper-hWWm7Uke.js → mapper-BrZOqqfe.js} +1 -1
- package/development/pearl-chain/pearl-chain.component.js +1 -1
- package/development/pearl-chain-time/pearl-chain-time.component.js +1 -1
- package/development/{pearl-chain-time.component-BxVQ1z-Z.js → pearl-chain-time.component-C-CuC1ke.js} +3 -3
- package/development/pearl-chain-time.js +2 -2
- package/development/pearl-chain-time.pure.js +1 -1
- package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
- package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
- package/development/{pearl-chain-vertical-item.component-DJioJtxP.js → pearl-chain-vertical-item.component-CLu9QrqJ.js} +2 -2
- package/development/pearl-chain-vertical-item.js +2 -2
- package/development/pearl-chain-vertical-item.pure.js +1 -1
- package/development/{pearl-chain-vertical.component-zSOeIkhh.js → pearl-chain-vertical.component-DbPz5k_R.js} +1 -1
- package/development/pearl-chain-vertical.js +2 -2
- package/development/pearl-chain-vertical.pure.js +1 -1
- package/development/pearl-chain.component-10OsJZIX.js +318 -0
- package/development/pearl-chain.js +2 -2
- package/development/pearl-chain.pure.js +1 -1
- package/development/seat-reservation/common/mapper/icon-mapper.js +1 -1
- package/development/seat-reservation/common/mapper/mapper.js +1 -1
- package/development/seat-reservation/common/mapper.js +1 -1
- package/development/seat-reservation/common/svgs.js +1 -1
- package/development/seat-reservation/common/translations/i18n.js +1 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +11 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +46 -29
- package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
- package/development/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
- package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
- package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
- package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +6 -2
- package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
- package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +2 -2
- package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
- package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +6 -2
- package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
- package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -2
- package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
- package/development/{seat-reservation-area.component-CMqjbUtV.js → seat-reservation-area.component-DPhQJFid.js} +2 -2
- package/development/{seat-reservation-graphic.component-C2r57590.js → seat-reservation-graphic.component-0LYsmerm.js} +2 -2
- package/development/seat-reservation-navigation-coach.component-B97jKD7Y.js +438 -0
- package/development/{seat-reservation-navigation-services.component-Do8JLJh3.js → seat-reservation-navigation-services.component-Cx0Is97w.js} +2 -2
- package/development/{seat-reservation-place-control.component-BfuOGZYq.js → seat-reservation-place-control.component-DaL1g8WH.js} +40 -37
- package/development/{seat-reservation-scoped.component-D-Mvw-Q3.js → seat-reservation-scoped.component-BHbORVsR.js} +1 -1
- package/development/seat-reservation.component-DI9pSlzt.js +473 -0
- package/development/seat-reservation.js +12 -12
- package/development/seat-reservation.pure.js +11 -11
- package/development/{svgs-kDpBCto5.js → svgs-Dj-RKmRs.js} +1 -1
- package/development/timetable-duration/timetable-duration.component.js +1 -1
- package/development/timetable-duration.component-Chk5D4Is.js +96 -0
- package/development/timetable-duration.js +2 -2
- package/development/timetable-duration.pure.js +1 -1
- package/development/timetable-row/timetable-row.component.d.ts.map +1 -1
- package/development/timetable-row/timetable-row.component.js +1 -1
- package/development/timetable-row.component-nzrQzxL6.js +736 -0
- package/development/timetable-row.js +2 -2
- package/development/timetable-row.pure.js +1 -1
- package/development/{toDate-DOFAOjP-.js → toDate-CDWut5fS.js} +1 -1
- package/{differenceInMinutes-Dr9gRqtu.js → differenceInMinutes-BAZ-Fham.js} +1 -1
- package/{format-DbUuNYFU.js → format-DjgG1QPc.js} +2 -2
- package/{isValid-B9oVW3lA.js → isValid-CXnsFZVu.js} +1 -1
- package/journey-summary/journey-summary.component.js +1 -1
- package/{journey-summary.component-CkDRawn9.js → journey-summary.component-DNoO3OCf.js} +41 -41
- package/journey-summary.js +1 -1
- package/journey-summary.pure.js +1 -1
- package/lean-safety-theme.css +13 -0
- package/lean-theme.css +13 -0
- package/package.json +18 -6
- package/pearl-chain/pearl-chain.component.js +1 -1
- package/pearl-chain-time/pearl-chain-time.component.js +1 -1
- package/{pearl-chain-time.component-D5OCEBJ_.js → pearl-chain-time.component-BuvA6IE1.js} +33 -33
- package/pearl-chain-time.js +1 -1
- package/pearl-chain-time.pure.js +1 -1
- package/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
- package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
- package/{pearl-chain-vertical-item.component-IdquCJMy.js → pearl-chain-vertical-item.component-QZ4s8Jbv.js} +24 -24
- package/pearl-chain-vertical-item.js +1 -1
- package/pearl-chain-vertical-item.pure.js +1 -1
- package/pearl-chain-vertical.js +1 -1
- package/pearl-chain-vertical.pure.js +1 -1
- package/{pearl-chain.component-C6lcD7Xl.js → pearl-chain.component-DtGXXkY6.js} +26 -26
- package/pearl-chain.js +1 -1
- package/pearl-chain.pure.js +1 -1
- package/seat-reservation/common/mapper/mapper.js +1 -1
- package/seat-reservation/common/mapper.js +1 -1
- package/seat-reservation/common/svgs.js +1 -1
- package/seat-reservation/seat-reservation/seat-reservation-base-element.js +96 -82
- package/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
- package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
- package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
- package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +2 -2
- package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
- package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -2
- package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
- package/{seat-reservation-area.component-BcmwKJSK.js → seat-reservation-area.component-G9lHb7S8.js} +16 -16
- package/{seat-reservation-graphic.component-C3wc4DKr.js → seat-reservation-graphic.component-BXFcQDxY.js} +20 -20
- package/seat-reservation-navigation-coach.component-BXy8EkJe.js +338 -0
- package/{seat-reservation-navigation-services.component-CfAQa7pa.js → seat-reservation-navigation-services.component-49XmV9rv.js} +21 -21
- package/{seat-reservation-place-control.component-DrzEDW8Z.js → seat-reservation-place-control.component-DToIW328.js} +70 -71
- package/{seat-reservation.component-CB2IWgM9.js → seat-reservation.component--0XnrCkk.js} +80 -79
- package/seat-reservation.js +12 -12
- package/seat-reservation.pure.js +11 -11
- package/timetable-duration/timetable-duration.component.js +1 -1
- package/timetable-duration.component-iMCvh1zr.js +61 -0
- package/timetable-duration.js +1 -1
- package/timetable-duration.pure.js +1 -1
- package/timetable-row/timetable-row.component.js +1 -1
- package/timetable-row.component-mNKmhRmP.js +566 -0
- package/timetable-row.js +1 -1
- package/timetable-row.pure.js +1 -1
- package/autocomplete-grid-option.component-iEj9qreq.js +0 -35
- package/core/styles/core.scss +0 -13
- package/core/styles/theme.scss +0 -5
- package/development/autocomplete-grid-option.component-BQwwanAf.js +0 -59
- package/development/date-helper-DGz-ztQM.js +0 -520
- package/development/journey-summary.component-De1ioDRq.js +0 -341
- package/development/pearl-chain.component-B83OsEx8.js +0 -312
- package/development/seat-reservation-navigation-coach.component-BwLbiHCG.js +0 -426
- package/development/seat-reservation.component-B2nJ13F1.js +0 -472
- package/development/timetable-duration.component-fBla8Kue.js +0 -96
- package/development/timetable-row.component-C9Y9Rev1.js +0 -732
- package/seat-reservation-navigation-coach.component-D1SgS8BU.js +0 -328
- package/timetable-duration.component-DPRcG1LP.js +0 -61
- package/timetable-row.component-BqIVlISS.js +0 -562
- /package/{autocomplete-grid-cell.component-DAsWZlTn.js → autocomplete-grid-cell.component-79IjA__I.js} +0 -0
- /package/{autocomplete-grid-row.component-VbyYP0U-.js → autocomplete-grid-row.component-B3U15Rwa.js} +0 -0
- /package/{core.css → lean-off-brand-theme.css} +0 -0
- /package/{mapper-Cqie5ivY.js → mapper-Dcou8VEf.js} +0 -0
- /package/{pearl-chain-vertical.component-CDOWaup3.js → pearl-chain-vertical.component-Dc3vaHsQ.js} +0 -0
- /package/{seat-reservation-scoped.component-BohQUGVW.js → seat-reservation-scoped.component-D8dAmrP7.js} +0 -0
- /package/{svgs-D5DhLHxC.js → svgs-D4fuYTHV.js} +0 -0
- /package/{toDate-p-Tpkb7t.js → toDate-BhNUyM4s.js} +0 -0
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
import { t as format } from "./format-DFx4997p.js";
|
|
2
|
-
import { t as isValid } from "./isValid-JpZ7FphI.js";
|
|
3
|
-
import { __esDecorate, __runInitializers } from "tslib";
|
|
4
|
-
import { SbbElement, SbbLanguageController, defaultDateAdapter, forceType, i18nTripDuration, screenReaderOnlyStyles } from "@sbb-esta/lyne-elements/core.js";
|
|
5
|
-
import { html, nothing, unsafeCSS } from "lit";
|
|
6
|
-
import { SbbDividerElement } from "@sbb-esta/lyne-elements/divider.pure.js";
|
|
7
|
-
import { SbbJourneyHeaderElement } from "@sbb-esta/lyne-elements/journey-header.pure.js";
|
|
8
|
-
import { property } from "lit/decorators.js";
|
|
9
|
-
import { durationToTime, removeTimezoneFromISOTimeString } from "./core.js";
|
|
10
|
-
import { SbbPearlChainTimeElement } from "./pearl-chain-time.pure.js";
|
|
11
|
-
//#region src/elements-experimental/journey-summary/journey-summary.scss?inline
|
|
12
|
-
var journey_summary_default = ":host {\n display: block;\n}\n\n.sbb-journey-summary {\n --sbb-text-font-size: var(--sbb-text-font-size-s);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n color: var(--sbb-color-4);\n display: flex;\n flex-direction: column;\n}\n\n.sbb-journey-summary__via-block {\n display: flex;\n}\n\n.sbb-journey-summary__vias {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin-block: 0;\n padding-inline-start: var(--sbb-spacing-fixed-1x);\n}\n\n.sbb-journey-summary__date {\n margin-block-end: var(--sbb-spacing-fixed-2x);\n}\n\n.sbb-journey-summary__via {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.sbb-journey-summary__divider {\n margin-block: var(--sbb-spacing-fixed-6x);\n}\n\nul li {\n list-style: none;\n display: inline;\n}";
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/elements-experimental/journey-summary/journey-summary.component.ts
|
|
15
|
-
/**
|
|
16
|
-
* It displays journey's information.
|
|
17
|
-
*
|
|
18
|
-
* @slot content - Use this slot to add `sbb-button`s or other interactive elements.
|
|
19
|
-
*/
|
|
20
|
-
var SbbJourneySummaryElement = (() => {
|
|
21
|
-
let _classSuper = SbbElement;
|
|
22
|
-
let _instanceExtraInitializers = [];
|
|
23
|
-
let _trip_decorators;
|
|
24
|
-
let _trip_initializers = [];
|
|
25
|
-
let _trip_extraInitializers = [];
|
|
26
|
-
let _tripBack_decorators;
|
|
27
|
-
let _tripBack_initializers = [];
|
|
28
|
-
let _tripBack_extraInitializers = [];
|
|
29
|
-
let _roundTrip_decorators;
|
|
30
|
-
let _roundTrip_initializers = [];
|
|
31
|
-
let _roundTrip_extraInitializers = [];
|
|
32
|
-
let _headerLevel_decorators;
|
|
33
|
-
let _headerLevel_initializers = [];
|
|
34
|
-
let _headerLevel_extraInitializers = [];
|
|
35
|
-
let _disableAnimation_decorators;
|
|
36
|
-
let _disableAnimation_initializers = [];
|
|
37
|
-
let _disableAnimation_extraInitializers = [];
|
|
38
|
-
let _a11yFootpath_decorators;
|
|
39
|
-
let _a11yFootpath_initializers = [];
|
|
40
|
-
let _a11yFootpath_extraInitializers = [];
|
|
41
|
-
let _set_now_decorators;
|
|
42
|
-
return class SbbJourneySummaryElement extends _classSuper {
|
|
43
|
-
constructor() {
|
|
44
|
-
super(...arguments);
|
|
45
|
-
this.#trip_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _trip_initializers, null));
|
|
46
|
-
this.#tripBack_accessor_storage = (__runInitializers(this, _trip_extraInitializers), __runInitializers(this, _tripBack_initializers, null));
|
|
47
|
-
this.#roundTrip_accessor_storage = (__runInitializers(this, _tripBack_extraInitializers), __runInitializers(this, _roundTrip_initializers, false));
|
|
48
|
-
this.#headerLevel_accessor_storage = (__runInitializers(this, _roundTrip_extraInitializers), __runInitializers(this, _headerLevel_initializers, "3"));
|
|
49
|
-
this.#disableAnimation_accessor_storage = (__runInitializers(this, _headerLevel_extraInitializers), __runInitializers(this, _disableAnimation_initializers, false));
|
|
50
|
-
this.#a11yFootpath_accessor_storage = (__runInitializers(this, _disableAnimation_extraInitializers), __runInitializers(this, _a11yFootpath_initializers, false));
|
|
51
|
-
this._now = (__runInitializers(this, _a11yFootpath_extraInitializers), null);
|
|
52
|
-
this._hasContentSlot = false;
|
|
53
|
-
this._language = new SbbLanguageController(this);
|
|
54
|
-
}
|
|
55
|
-
static {
|
|
56
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
57
|
-
_trip_decorators = [property({ type: Object })];
|
|
58
|
-
_tripBack_decorators = [property({
|
|
59
|
-
attribute: "trip-back",
|
|
60
|
-
type: Object
|
|
61
|
-
})];
|
|
62
|
-
_roundTrip_decorators = [forceType(), property({
|
|
63
|
-
attribute: "round-trip",
|
|
64
|
-
type: Boolean
|
|
65
|
-
})];
|
|
66
|
-
_headerLevel_decorators = [property({ attribute: "header-level" })];
|
|
67
|
-
_disableAnimation_decorators = [forceType(), property({
|
|
68
|
-
attribute: "disable-animation",
|
|
69
|
-
type: Boolean
|
|
70
|
-
})];
|
|
71
|
-
_a11yFootpath_decorators = [forceType(), property({
|
|
72
|
-
attribute: "a11y-footpath",
|
|
73
|
-
type: Boolean
|
|
74
|
-
})];
|
|
75
|
-
_set_now_decorators = [property()];
|
|
76
|
-
__esDecorate(this, null, _trip_decorators, {
|
|
77
|
-
kind: "accessor",
|
|
78
|
-
name: "trip",
|
|
79
|
-
static: false,
|
|
80
|
-
private: false,
|
|
81
|
-
access: {
|
|
82
|
-
has: (obj) => "trip" in obj,
|
|
83
|
-
get: (obj) => obj.trip,
|
|
84
|
-
set: (obj, value) => {
|
|
85
|
-
obj.trip = value;
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
metadata: _metadata
|
|
89
|
-
}, _trip_initializers, _trip_extraInitializers);
|
|
90
|
-
__esDecorate(this, null, _tripBack_decorators, {
|
|
91
|
-
kind: "accessor",
|
|
92
|
-
name: "tripBack",
|
|
93
|
-
static: false,
|
|
94
|
-
private: false,
|
|
95
|
-
access: {
|
|
96
|
-
has: (obj) => "tripBack" in obj,
|
|
97
|
-
get: (obj) => obj.tripBack,
|
|
98
|
-
set: (obj, value) => {
|
|
99
|
-
obj.tripBack = value;
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
metadata: _metadata
|
|
103
|
-
}, _tripBack_initializers, _tripBack_extraInitializers);
|
|
104
|
-
__esDecorate(this, null, _roundTrip_decorators, {
|
|
105
|
-
kind: "accessor",
|
|
106
|
-
name: "roundTrip",
|
|
107
|
-
static: false,
|
|
108
|
-
private: false,
|
|
109
|
-
access: {
|
|
110
|
-
has: (obj) => "roundTrip" in obj,
|
|
111
|
-
get: (obj) => obj.roundTrip,
|
|
112
|
-
set: (obj, value) => {
|
|
113
|
-
obj.roundTrip = value;
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
metadata: _metadata
|
|
117
|
-
}, _roundTrip_initializers, _roundTrip_extraInitializers);
|
|
118
|
-
__esDecorate(this, null, _headerLevel_decorators, {
|
|
119
|
-
kind: "accessor",
|
|
120
|
-
name: "headerLevel",
|
|
121
|
-
static: false,
|
|
122
|
-
private: false,
|
|
123
|
-
access: {
|
|
124
|
-
has: (obj) => "headerLevel" in obj,
|
|
125
|
-
get: (obj) => obj.headerLevel,
|
|
126
|
-
set: (obj, value) => {
|
|
127
|
-
obj.headerLevel = value;
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
metadata: _metadata
|
|
131
|
-
}, _headerLevel_initializers, _headerLevel_extraInitializers);
|
|
132
|
-
__esDecorate(this, null, _disableAnimation_decorators, {
|
|
133
|
-
kind: "accessor",
|
|
134
|
-
name: "disableAnimation",
|
|
135
|
-
static: false,
|
|
136
|
-
private: false,
|
|
137
|
-
access: {
|
|
138
|
-
has: (obj) => "disableAnimation" in obj,
|
|
139
|
-
get: (obj) => obj.disableAnimation,
|
|
140
|
-
set: (obj, value) => {
|
|
141
|
-
obj.disableAnimation = value;
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
metadata: _metadata
|
|
145
|
-
}, _disableAnimation_initializers, _disableAnimation_extraInitializers);
|
|
146
|
-
__esDecorate(this, null, _a11yFootpath_decorators, {
|
|
147
|
-
kind: "accessor",
|
|
148
|
-
name: "a11yFootpath",
|
|
149
|
-
static: false,
|
|
150
|
-
private: false,
|
|
151
|
-
access: {
|
|
152
|
-
has: (obj) => "a11yFootpath" in obj,
|
|
153
|
-
get: (obj) => obj.a11yFootpath,
|
|
154
|
-
set: (obj, value) => {
|
|
155
|
-
obj.a11yFootpath = value;
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
metadata: _metadata
|
|
159
|
-
}, _a11yFootpath_initializers, _a11yFootpath_extraInitializers);
|
|
160
|
-
__esDecorate(this, null, _set_now_decorators, {
|
|
161
|
-
kind: "setter",
|
|
162
|
-
name: "now",
|
|
163
|
-
static: false,
|
|
164
|
-
private: false,
|
|
165
|
-
access: {
|
|
166
|
-
has: (obj) => "now" in obj,
|
|
167
|
-
set: (obj, value) => {
|
|
168
|
-
obj.now = value;
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
metadata: _metadata
|
|
172
|
-
}, null, _instanceExtraInitializers);
|
|
173
|
-
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
174
|
-
enumerable: true,
|
|
175
|
-
configurable: true,
|
|
176
|
-
writable: true,
|
|
177
|
-
value: _metadata
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
static {
|
|
181
|
-
this.elementName = "sbb-journey-summary";
|
|
182
|
-
}
|
|
183
|
-
static {
|
|
184
|
-
this.elementDependencies = [
|
|
185
|
-
SbbDividerElement,
|
|
186
|
-
SbbJourneyHeaderElement,
|
|
187
|
-
SbbPearlChainTimeElement
|
|
188
|
-
];
|
|
189
|
-
}
|
|
190
|
-
static {
|
|
191
|
-
this.styles = [screenReaderOnlyStyles, unsafeCSS(journey_summary_default)];
|
|
192
|
-
}
|
|
193
|
-
#trip_accessor_storage;
|
|
194
|
-
/** The trip prop */
|
|
195
|
-
get trip() {
|
|
196
|
-
return this.#trip_accessor_storage;
|
|
197
|
-
}
|
|
198
|
-
set trip(value) {
|
|
199
|
-
this.#trip_accessor_storage = value;
|
|
200
|
-
}
|
|
201
|
-
#tripBack_accessor_storage;
|
|
202
|
-
/** The tripBack prop */
|
|
203
|
-
get tripBack() {
|
|
204
|
-
return this.#tripBack_accessor_storage;
|
|
205
|
-
}
|
|
206
|
-
set tripBack(value) {
|
|
207
|
-
this.#tripBack_accessor_storage = value;
|
|
208
|
-
}
|
|
209
|
-
#roundTrip_accessor_storage;
|
|
210
|
-
/**
|
|
211
|
-
* The RoundTrip prop. This prop controls if one or two arrows are displayed in the header.
|
|
212
|
-
*/
|
|
213
|
-
get roundTrip() {
|
|
214
|
-
return this.#roundTrip_accessor_storage;
|
|
215
|
-
}
|
|
216
|
-
set roundTrip(value) {
|
|
217
|
-
this.#roundTrip_accessor_storage = value;
|
|
218
|
-
}
|
|
219
|
-
#headerLevel_accessor_storage;
|
|
220
|
-
/** Heading level of the journey header element (e.g. h1-h6). */
|
|
221
|
-
get headerLevel() {
|
|
222
|
-
return this.#headerLevel_accessor_storage;
|
|
223
|
-
}
|
|
224
|
-
set headerLevel(value) {
|
|
225
|
-
this.#headerLevel_accessor_storage = value;
|
|
226
|
-
}
|
|
227
|
-
#disableAnimation_accessor_storage;
|
|
228
|
-
/**
|
|
229
|
-
* Per default, the current location has a pulsating animation. You can
|
|
230
|
-
* disable the animation with this property.
|
|
231
|
-
*/
|
|
232
|
-
get disableAnimation() {
|
|
233
|
-
return this.#disableAnimation_accessor_storage;
|
|
234
|
-
}
|
|
235
|
-
set disableAnimation(value) {
|
|
236
|
-
this.#disableAnimation_accessor_storage = value;
|
|
237
|
-
}
|
|
238
|
-
#a11yFootpath_accessor_storage;
|
|
239
|
-
/**
|
|
240
|
-
* The Footpath attribute for rendering different icons
|
|
241
|
-
* true: render a11y-icon
|
|
242
|
-
* false: render walk-icon
|
|
243
|
-
* default: render walk-icon
|
|
244
|
-
*/
|
|
245
|
-
get a11yFootpath() {
|
|
246
|
-
return this.#a11yFootpath_accessor_storage;
|
|
247
|
-
}
|
|
248
|
-
set a11yFootpath(value) {
|
|
249
|
-
this.#a11yFootpath_accessor_storage = value;
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* A configured date which acts as the current date instead of the real current date.
|
|
253
|
-
* Only recommended for testing purposes.
|
|
254
|
-
*/
|
|
255
|
-
set now(value) {
|
|
256
|
-
this._now = defaultDateAdapter.getValidDateOrNull(defaultDateAdapter.deserialize(value));
|
|
257
|
-
}
|
|
258
|
-
get now() {
|
|
259
|
-
return this._now ?? /* @__PURE__ */ new Date();
|
|
260
|
-
}
|
|
261
|
-
connectedCallback() {
|
|
262
|
-
super.connectedCallback();
|
|
263
|
-
this._hasContentSlot = Boolean(this.querySelector?.("[slot=\"content\"]"));
|
|
264
|
-
}
|
|
265
|
-
/** renders the date of the journey or if it is the current or next day */
|
|
266
|
-
_renderJourneyStart(departureTime, duration) {
|
|
267
|
-
const dateAdapter = defaultDateAdapter;
|
|
268
|
-
const durationObj = duration ? durationToTime(duration, this._language.current) : null;
|
|
269
|
-
if (isValid(departureTime)) return html`
|
|
270
|
-
<time datetime=${format(departureTime, "d") + " " + format(departureTime, "M")}>
|
|
271
|
-
${dateAdapter.format(departureTime).replace(",", ".")}</time
|
|
272
|
-
>${duration && duration > 0 ? html`,<time>
|
|
273
|
-
<span class="sbb-screen-reader-only">
|
|
274
|
-
${i18nTripDuration[this._language.current]} ${durationObj.long}
|
|
275
|
-
</span>
|
|
276
|
-
<span aria-hidden="true">${durationObj.short}</span>
|
|
277
|
-
</time>` : nothing}
|
|
278
|
-
`;
|
|
279
|
-
}
|
|
280
|
-
_renderJourneyVias(vias) {
|
|
281
|
-
const slicedVias = vias.slice(0, 5);
|
|
282
|
-
return html`
|
|
283
|
-
<div class="sbb-journey-summary__via-block">
|
|
284
|
-
<span class="sbb-journey-summary__via-text">Via</span>
|
|
285
|
-
<ul class="sbb-journey-summary__vias" role=${vias.length <= 1 ? "presentation" : nothing}>
|
|
286
|
-
${slicedVias.map((via, index) => html`<li class="sbb-journey-summary__via">
|
|
287
|
-
${via}${index !== slicedVias.length - 1 && index < 4 ? html`<span>,</span>` : nothing}
|
|
288
|
-
</li>`)}
|
|
289
|
-
</ul>
|
|
290
|
-
</div>
|
|
291
|
-
`;
|
|
292
|
-
}
|
|
293
|
-
_renderJourneyInformation(trip) {
|
|
294
|
-
const { vias, duration, departureWalk, departure, arrivalWalk, arrival, legs } = trip || {};
|
|
295
|
-
return html`
|
|
296
|
-
<div>
|
|
297
|
-
${vias && vias.length > 0 ? this._renderJourneyVias(vias) : nothing}
|
|
298
|
-
<div class="sbb-journey-summary__date">
|
|
299
|
-
${this._renderJourneyStart(removeTimezoneFromISOTimeString(departure), duration)}
|
|
300
|
-
</div>
|
|
301
|
-
<sbb-pearl-chain-time
|
|
302
|
-
.arrivalTime=${arrival}
|
|
303
|
-
.departureTime=${departure}
|
|
304
|
-
.departureWalk=${departureWalk}
|
|
305
|
-
.arrivalWalk=${arrivalWalk}
|
|
306
|
-
.legs=${legs}
|
|
307
|
-
.disableAnimation=${this.disableAnimation}
|
|
308
|
-
.a11yFootpath=${this.a11yFootpath}
|
|
309
|
-
.now=${this.now}
|
|
310
|
-
></sbb-pearl-chain-time>
|
|
311
|
-
</div>
|
|
312
|
-
`;
|
|
313
|
-
}
|
|
314
|
-
render() {
|
|
315
|
-
const { origin, destination } = this.trip || {};
|
|
316
|
-
return html`
|
|
317
|
-
<div class="sbb-journey-summary">
|
|
318
|
-
${origin ? html`<sbb-journey-header
|
|
319
|
-
visual-level="4"
|
|
320
|
-
.level=${this.headerLevel || nothing}
|
|
321
|
-
.origin=${origin}
|
|
322
|
-
.destination=${destination}
|
|
323
|
-
.roundTrip=${this.roundTrip ?? nothing}
|
|
324
|
-
></sbb-journey-header>` : nothing}
|
|
325
|
-
${this._renderJourneyInformation(this.trip)}
|
|
326
|
-
${this.tripBack ? html`<div>
|
|
327
|
-
<sbb-divider class="sbb-journey-summary__divider"></sbb-divider>
|
|
328
|
-
${this._renderJourneyInformation(this.tripBack)}
|
|
329
|
-
</div>` : nothing}
|
|
330
|
-
${this._hasContentSlot ? html` <div class="sbb-journey-summary__slot">
|
|
331
|
-
<slot name="content"></slot>
|
|
332
|
-
</div>` : nothing}
|
|
333
|
-
</div>
|
|
334
|
-
`;
|
|
335
|
-
}
|
|
336
|
-
};
|
|
337
|
-
})();
|
|
338
|
-
//#endregion
|
|
339
|
-
export { SbbJourneySummaryElement as t };
|
|
340
|
-
|
|
341
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam91cm5leS1zdW1tYXJ5LmNvbXBvbmVudC1EZTFpb0RScS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL2pvdXJuZXktc3VtbWFyeS9qb3VybmV5LXN1bW1hcnkuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL2pvdXJuZXktc3VtbWFyeS9qb3VybmV5LXN1bW1hcnkuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zYmItam91cm5leS1zdW1tYXJ5IHtcbiAgQGluY2x1ZGUgc2JiLnRleHQtcy0tcmVndWxhcjtcblxuICBjb2xvcjogdmFyKC0tc2JiLWNvbG9yLTQpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uc2JiLWpvdXJuZXktc3VtbWFyeV9fdmlhLWJsb2NrIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnNiYi1qb3VybmV5LXN1bW1hcnlfX3ZpYXMge1xuICBAaW5jbHVkZSBzYmIuZWxsaXBzaXM7XG5cbiAgbWFyZ2luLWJsb2NrOiAwO1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xufVxuXG4uc2JiLWpvdXJuZXktc3VtbWFyeV9fZGF0ZSB7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbn1cblxuLnNiYi1qb3VybmV5LXN1bW1hcnlfX3ZpYSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4uc2JiLWpvdXJuZXktc3VtbWFyeV9fZGl2aWRlciB7XG4gIG1hcmdpbi1ibG9jazogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNngpO1xufVxuXG51bCBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbiIsImltcG9ydCB7XG4gIGRlZmF1bHREYXRlQWRhcHRlcixcbiAgZm9yY2VUeXBlLFxuICBpMThuVHJpcER1cmF0aW9uLFxuICBTYmJFbGVtZW50LFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIHNjcmVlblJlYWRlck9ubHlTdHlsZXMsXG59IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUuanMnO1xuaW1wb3J0IHsgU2JiRGl2aWRlckVsZW1lbnQgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9kaXZpZGVyLnB1cmUuanMnO1xuaW1wb3J0IHsgU2JiSm91cm5leUhlYWRlckVsZW1lbnQgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9qb3VybmV5LWhlYWRlci5wdXJlLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3RpdGxlLnB1cmUuanMnO1xuaW1wb3J0IHsgZm9ybWF0LCBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBkdXJhdGlvblRvVGltZSwgdHlwZSBMZWcsIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcgfSBmcm9tICcuLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlBlYXJsQ2hhaW5UaW1lRWxlbWVudCB9IGZyb20gJy4uL3BlYXJsLWNoYWluLXRpbWUucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2pvdXJuZXktc3VtbWFyeS5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlU2JiSm91cm5leVN1bW1hcnlBdHRyaWJ1dGVzIHtcbiAgbGVnczogTGVnW107XG4gIHZpYXM/OiBzdHJpbmdbXTtcbiAgb3JpZ2luOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIGFycml2YWxXYWxrPzogbnVtYmVyO1xuICBkZXBhcnR1cmU6IHN0cmluZztcbiAgYXJyaXZhbDogc3RyaW5nO1xuICBkZXBhcnR1cmVXYWxrPzogbnVtYmVyO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBqb3VybmV5J3MgaW5mb3JtYXRpb24uXG4gKlxuICogQHNsb3QgY29udGVudCAtIFVzZSB0aGlzIHNsb3QgdG8gYWRkIGBzYmItYnV0dG9uYHMgb3Igb3RoZXIgaW50ZXJhY3RpdmUgZWxlbWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJKb3VybmV5U3VtbWFyeUVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1qb3VybmV5LXN1bW1hcnknO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbXG4gICAgU2JiRGl2aWRlckVsZW1lbnQsXG4gICAgU2JiSm91cm5leUhlYWRlckVsZW1lbnQsXG4gICAgU2JiUGVhcmxDaGFpblRpbWVFbGVtZW50LFxuICBdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbc2NyZWVuUmVhZGVyT25seVN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqICBUaGUgdHJpcCBwcm9wICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE9iamVjdCB9KSBwdWJsaWMgYWNjZXNzb3IgdHJpcDogSW50ZXJmYWNlU2JiSm91cm5leVN1bW1hcnlBdHRyaWJ1dGVzID0gbnVsbCE7XG5cbiAgLyoqICBUaGUgdHJpcEJhY2sgcHJvcCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0cmlwLWJhY2snLCB0eXBlOiBPYmplY3QgfSlcbiAgcHVibGljIGFjY2Vzc29yIHRyaXBCYWNrOiBJbnRlcmZhY2VTYmJKb3VybmV5U3VtbWFyeUF0dHJpYnV0ZXMgPSBudWxsITtcblxuICAvKipcbiAgICogVGhlIFJvdW5kVHJpcCBwcm9wLiBUaGlzIHByb3AgY29udHJvbHMgaWYgb25lIG9yIHR3byBhcnJvd3MgYXJlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3JvdW5kLXRyaXAnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciByb3VuZFRyaXA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSGVhZGluZyBsZXZlbCBvZiB0aGUgam91cm5leSBoZWFkZXIgZWxlbWVudCAoZS5nLiBoMS1oNikuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hlYWRlci1sZXZlbCcgfSkgcHVibGljIGFjY2Vzc29yIGhlYWRlckxldmVsOiBTYmJUaXRsZUxldmVsID0gJzMnO1xuXG4gIC8qKlxuICAgKiBQZXIgZGVmYXVsdCwgdGhlIGN1cnJlbnQgbG9jYXRpb24gaGFzIGEgcHVsc2F0aW5nIGFuaW1hdGlvbi4gWW91IGNhblxuICAgKiBkaXNhYmxlIHRoZSBhbmltYXRpb24gd2l0aCB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGUtYW5pbWF0aW9uJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZUFuaW1hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgRm9vdHBhdGggYXR0cmlidXRlIGZvciByZW5kZXJpbmcgZGlmZmVyZW50IGljb25zXG4gICAqIHRydWU6IHJlbmRlciBhMTF5LWljb25cbiAgICogZmFsc2U6IHJlbmRlciB3YWxrLWljb25cbiAgICogZGVmYXVsdDogcmVuZGVyIHdhbGstaWNvblxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ExMXktZm9vdHBhdGgnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhMTF5Rm9vdHBhdGg6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBjb25maWd1cmVkIGRhdGUgd2hpY2ggYWN0cyBhcyB0aGUgY3VycmVudCBkYXRlIGluc3RlYWQgb2YgdGhlIHJlYWwgY3VycmVudCBkYXRlLlxuICAgKiBPbmx5IHJlY29tbWVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBub3codmFsdWU6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ub3cgPSBkZWZhdWx0RGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKGRlZmF1bHREYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICB9XG4gIHB1YmxpYyBnZXQgbm93KCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9ub3cgPz8gbmV3IERhdGUoKTtcbiAgfVxuICBwcml2YXRlIF9ub3c6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9oYXNDb250ZW50U2xvdDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5faGFzQ29udGVudFNsb3QgPSBCb29sZWFuKHRoaXMucXVlcnlTZWxlY3Rvcj8uKCdbc2xvdD1cImNvbnRlbnRcIl0nKSk7XG4gIH1cblxuICAvKiogIHJlbmRlcnMgdGhlIGRhdGUgb2YgdGhlIGpvdXJuZXkgb3IgaWYgaXQgaXMgdGhlIGN1cnJlbnQgb3IgbmV4dCBkYXkgKi9cbiAgcHJpdmF0ZSBfcmVuZGVySm91cm5leVN0YXJ0KFxuICAgIGRlcGFydHVyZVRpbWU6IERhdGUgfCB1bmRlZmluZWQsXG4gICAgZHVyYXRpb246IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgKTogVGVtcGxhdGVSZXN1bHQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGRhdGVBZGFwdGVyID0gZGVmYXVsdERhdGVBZGFwdGVyO1xuICAgIGNvbnN0IGR1cmF0aW9uT2JqID0gZHVyYXRpb24gPyBkdXJhdGlvblRvVGltZShkdXJhdGlvbiwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkgOiBudWxsO1xuXG4gICAgaWYgKGlzVmFsaWQoZGVwYXJ0dXJlVGltZSkpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8dGltZSBkYXRldGltZT0ke2Zvcm1hdChkZXBhcnR1cmVUaW1lISwgJ2QnKSArICcgJyArIGZvcm1hdChkZXBhcnR1cmVUaW1lISwgJ00nKX0+XG4gICAgICAgICAgJHtkYXRlQWRhcHRlci5mb3JtYXQoZGVwYXJ0dXJlVGltZSkucmVwbGFjZSgnLCcsICcuJyl9PC90aW1lXG4gICAgICAgID4ke2R1cmF0aW9uICYmIGR1cmF0aW9uID4gMFxuICAgICAgICAgID8gaHRtbGAsPHRpbWU+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAke2kxOG5UcmlwRHVyYXRpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7ZHVyYXRpb25PYmohLmxvbmd9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiR7ZHVyYXRpb25PYmohLnNob3J0fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC90aW1lPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICBgO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJKb3VybmV5Vmlhcyh2aWFzOiBzdHJpbmdbXSk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBzbGljZWRWaWFzID0gdmlhcy5zbGljZSgwLCA1KTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItam91cm5leS1zdW1tYXJ5X192aWEtYmxvY2tcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItam91cm5leS1zdW1tYXJ5X192aWEtdGV4dFwiPlZpYTwvc3Bhbj5cbiAgICAgICAgPHVsIGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fdmlhc1wiIHJvbGU9JHt2aWFzLmxlbmd0aCA8PSAxID8gJ3ByZXNlbnRhdGlvbicgOiBub3RoaW5nfT5cbiAgICAgICAgICAke3NsaWNlZFZpYXMubWFwKFxuICAgICAgICAgICAgKHZpYSwgaW5kZXgpID0+XG4gICAgICAgICAgICAgIGh0bWxgPGxpIGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fdmlhXCI+XG4gICAgICAgICAgICAgICAgJHt2aWF9JHtpbmRleCAhPT0gc2xpY2VkVmlhcy5sZW5ndGggLSAxICYmIGluZGV4IDwgNFxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxzcGFuPiw8L3NwYW4+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICA8L2xpPmAsXG4gICAgICAgICAgKX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJKb3VybmV5SW5mb3JtYXRpb24odHJpcDogSW50ZXJmYWNlU2JiSm91cm5leVN1bW1hcnlBdHRyaWJ1dGVzKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IHsgdmlhcywgZHVyYXRpb24sIGRlcGFydHVyZVdhbGssIGRlcGFydHVyZSwgYXJyaXZhbFdhbGssIGFycml2YWwsIGxlZ3MgfSA9IHRyaXAgfHwge307XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXY+XG4gICAgICAgICR7dmlhcyAmJiB2aWFzLmxlbmd0aCA+IDAgPyB0aGlzLl9yZW5kZXJKb3VybmV5Vmlhcyh2aWFzKSA6IG5vdGhpbmd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItam91cm5leS1zdW1tYXJ5X19kYXRlXCI+XG4gICAgICAgICAgJHt0aGlzLl9yZW5kZXJKb3VybmV5U3RhcnQocmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhkZXBhcnR1cmUpLCBkdXJhdGlvbil9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2JiLXBlYXJsLWNoYWluLXRpbWVcbiAgICAgICAgICAuYXJyaXZhbFRpbWU9JHthcnJpdmFsfVxuICAgICAgICAgIC5kZXBhcnR1cmVUaW1lPSR7ZGVwYXJ0dXJlfVxuICAgICAgICAgIC5kZXBhcnR1cmVXYWxrPSR7ZGVwYXJ0dXJlV2Fsa31cbiAgICAgICAgICAuYXJyaXZhbFdhbGs9JHthcnJpdmFsV2Fsa31cbiAgICAgICAgICAubGVncz0ke2xlZ3N9XG4gICAgICAgICAgLmRpc2FibGVBbmltYXRpb249JHt0aGlzLmRpc2FibGVBbmltYXRpb259XG4gICAgICAgICAgLmExMXlGb290cGF0aD0ke3RoaXMuYTExeUZvb3RwYXRofVxuICAgICAgICAgIC5ub3c9JHt0aGlzLm5vd31cbiAgICAgICAgPjwvc2JiLXBlYXJsLWNoYWluLXRpbWU+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgeyBvcmlnaW4sIGRlc3RpbmF0aW9uIH0gPSB0aGlzLnRyaXAgfHwge307XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeVwiPlxuICAgICAgICAke29yaWdpblxuICAgICAgICAgID8gaHRtbGA8c2JiLWpvdXJuZXktaGVhZGVyXG4gICAgICAgICAgICAgIHZpc3VhbC1sZXZlbD1cIjRcIlxuICAgICAgICAgICAgICAubGV2ZWw9JHt0aGlzLmhlYWRlckxldmVsIHx8IG5vdGhpbmd9XG4gICAgICAgICAgICAgIC5vcmlnaW49JHtvcmlnaW59XG4gICAgICAgICAgICAgIC5kZXN0aW5hdGlvbj0ke2Rlc3RpbmF0aW9ufVxuICAgICAgICAgICAgICAucm91bmRUcmlwPSR7dGhpcy5yb3VuZFRyaXAgPz8gbm90aGluZ31cbiAgICAgICAgICAgID48L3NiYi1qb3VybmV5LWhlYWRlcj5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAke3RoaXMuX3JlbmRlckpvdXJuZXlJbmZvcm1hdGlvbih0aGlzLnRyaXApfVxuICAgICAgICAke3RoaXMudHJpcEJhY2tcbiAgICAgICAgICA/IGh0bWxgPGRpdj5cbiAgICAgICAgICAgICAgPHNiYi1kaXZpZGVyIGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fZGl2aWRlclwiPjwvc2JiLWRpdmlkZXI+XG4gICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVySm91cm5leUluZm9ybWF0aW9uKHRoaXMudHJpcEJhY2spfVxuICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgJHt0aGlzLl9oYXNDb250ZW50U2xvdFxuICAgICAgICAgID8gaHRtbGAgPGRpdiBjbGFzcz1cInNiYi1qb3VybmV5LXN1bW1hcnlfX3Nsb3RcIj5cbiAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIj48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWpvdXJuZXktc3VtbWFyeSc6IFNiYkpvdXJuZXlTdW1tYXJ5RWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDc0NhLGtDQUF3QjttQkFBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBQWpDLGlDQUFpQyxZQUFVOzs7QUFVVixTQUFBLHlCQVZqQyxrQkFBQSxNQUFBLDJCQUF3QixFQUFBLGtCQUFBLE1BQUEsb0JBVXNELEtBQUs7QUFJOUUsU0FBQSw2QkFBQSxrQkFBQSxNQUFBLHdCQUFBLEVBQUEsa0JBQUEsTUFBQSx3QkFBaUQsS0FBSztBQU90RCxTQUFBLDhCQUFBLGtCQUFBLE1BQUEsNEJBQUEsRUFBQSxrQkFBQSxNQUFBLHlCQUFxQixNQUFLO0FBR2UsU0FBQSxnQ0FBQSxrQkFBQSxNQUFBLDZCQUFBLEVBQUEsa0JBQUEsTUFBQSwyQkFBNkIsSUFBRztBQVF6RSxTQUFBLHFDQUFBLGtCQUFBLE1BQUEsK0JBQUEsRUFBQSxrQkFBQSxNQUFBLGdDQUE0QixNQUFLO0FBVWpDLFNBQUEsaUNBQUEsa0JBQUEsTUFBQSxvQ0FBQSxFQUFBLGtCQUFBLE1BQUEsNEJBQXdCLE1BQUs7QUFhckMsUUFBQSxRQUFJLGtCQUFBLE1BQUEsZ0NBQUEsRUFBZ0I7QUFFcEIsUUFBQSxrQkFBMkI7QUFDM0IsUUFBQSxZQUFZLElBQUksc0JBQXNCLEtBQUs7Ozs7dUJBaERsRCxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUMsQ0FBQTsyQkFHMUIsU0FBUztJQUFFLFdBQVc7SUFBYSxNQUFNO0lBQVEsQ0FBQyxDQUFBOzRCQU1sRCxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBYyxNQUFNO0lBQVMsQ0FB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
|