@sbb-esta/lyne-elements-experimental 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/core/datetime/date-helper.js +191 -0
  2. package/core/datetime.d.ts +3 -0
  3. package/core/datetime.d.ts.map +1 -1
  4. package/core/datetime.js +3 -189
  5. package/core/timetable/access-leg-helper.js +94 -0
  6. package/core/timetable/timetable-helper.js +13 -0
  7. package/core/timetable/timetable-properties.js +1 -0
  8. package/core/timetable.d.ts +3 -0
  9. package/core/timetable.d.ts.map +1 -1
  10. package/core/timetable.js +6 -102
  11. package/custom-elements.json +598 -439
  12. package/development/core/datetime/date-helper.js +285 -0
  13. package/development/core/datetime.d.ts +3 -0
  14. package/development/core/datetime.d.ts.map +1 -1
  15. package/development/core/datetime.js +2 -281
  16. package/development/core/timetable/access-leg-helper.js +128 -0
  17. package/development/core/timetable/timetable-helper.js +21 -0
  18. package/development/core/timetable/timetable-properties.js +2 -0
  19. package/development/core/timetable.d.ts +3 -0
  20. package/development/core/timetable.d.ts.map +1 -1
  21. package/development/core/timetable.js +3 -139
  22. package/development/{differenceInMinutes-Cmyza6nm.js → differenceInMinutes-CHSyWiQs.js} +2 -2
  23. package/development/{format-BU7bjY-L.js → format-D0-yhzi4.js} +3 -3
  24. package/development/{isValid-DO_pHwcW.js → isValid-Bo4R7iA7.js} +2 -2
  25. package/development/journey-summary/journey-summary.js +297 -0
  26. package/development/journey-summary.d.ts +3 -0
  27. package/development/journey-summary.d.ts.map +1 -1
  28. package/development/journey-summary.js +2 -294
  29. package/development/pearl-chain/pearl-chain.js +649 -0
  30. package/development/pearl-chain-time/pearl-chain-time.js +315 -0
  31. package/development/pearl-chain-time.d.ts +3 -0
  32. package/development/pearl-chain-time.d.ts.map +1 -1
  33. package/development/pearl-chain-time.js +2 -312
  34. package/development/pearl-chain-vertical/pearl-chain-vertical.js +45 -0
  35. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.js +395 -0
  36. package/development/pearl-chain-vertical-item.d.ts +3 -0
  37. package/development/pearl-chain-vertical-item.d.ts.map +1 -1
  38. package/development/pearl-chain-vertical-item.js +2 -392
  39. package/development/pearl-chain-vertical.d.ts +3 -0
  40. package/development/pearl-chain-vertical.d.ts.map +1 -1
  41. package/development/pearl-chain-vertical.js +2 -42
  42. package/development/pearl-chain.d.ts +3 -0
  43. package/development/pearl-chain.d.ts.map +1 -1
  44. package/development/pearl-chain.js +2 -646
  45. package/development/timetable-duration/timetable-duration.js +119 -0
  46. package/development/timetable-duration.d.ts +3 -0
  47. package/development/timetable-duration.d.ts.map +1 -1
  48. package/development/timetable-duration.js +2 -116
  49. package/development/timetable-row/timetable-row.js +820 -0
  50. package/development/timetable-row.d.ts +3 -0
  51. package/development/timetable-row.d.ts.map +1 -1
  52. package/development/timetable-row.js +2 -810
  53. package/development/{toDate-B6IBgPYH.js → toDate-D_Vjps95.js} +5 -5
  54. package/{differenceInMinutes-BI2zjbtS.js → differenceInMinutes-BMqUZdhj.js} +1 -1
  55. package/{format-CUYwLzoN.js → format-Dg8rkk7h.js} +2 -2
  56. package/index.d.ts +7 -7
  57. package/index.js +7 -7
  58. package/{isValid-mroh13Xp.js → isValid-DJ69OMZJ.js} +6 -6
  59. package/journey-summary/journey-summary.js +190 -0
  60. package/journey-summary.d.ts +3 -0
  61. package/journey-summary.d.ts.map +1 -1
  62. package/journey-summary.js +2 -188
  63. package/package.json +3 -3
  64. package/pearl-chain/pearl-chain.js +177 -0
  65. package/pearl-chain-time/pearl-chain-time.js +153 -0
  66. package/pearl-chain-time.d.ts +3 -0
  67. package/pearl-chain-time.d.ts.map +1 -1
  68. package/pearl-chain-time.js +2 -151
  69. package/pearl-chain-vertical/pearl-chain-vertical.js +23 -0
  70. package/pearl-chain-vertical-item/pearl-chain-vertical-item.js +71 -0
  71. package/pearl-chain-vertical-item.d.ts +3 -0
  72. package/pearl-chain-vertical-item.d.ts.map +1 -1
  73. package/pearl-chain-vertical-item.js +2 -69
  74. package/pearl-chain-vertical.d.ts +3 -0
  75. package/pearl-chain-vertical.d.ts.map +1 -1
  76. package/pearl-chain-vertical.js +2 -21
  77. package/pearl-chain.d.ts +3 -0
  78. package/pearl-chain.d.ts.map +1 -1
  79. package/pearl-chain.js +2 -175
  80. package/timetable-duration/timetable-duration.js +55 -0
  81. package/timetable-duration.d.ts +3 -0
  82. package/timetable-duration.d.ts.map +1 -1
  83. package/timetable-duration.js +2 -53
  84. package/timetable-row/timetable-row.js +462 -0
  85. package/timetable-row.d.ts +3 -0
  86. package/timetable-row.d.ts.map +1 -1
  87. package/timetable-row.js +9 -460
  88. package/{toDate-DQg4ZFnf.js → toDate-BCXKL_wM.js} +4 -4
  89. package/development/pearl-chain/pearl-chain.sample-data.d.ts +0 -141
  90. package/development/pearl-chain/pearl-chain.sample-data.d.ts.map +0 -1
  91. package/development/timetable-duration/timetable-duration.sample-data.d.ts +0 -6
  92. package/development/timetable-duration/timetable-duration.sample-data.d.ts.map +0 -1
  93. package/development/timetable-row/timetable-row.sample-data.d.ts +0 -25
  94. package/development/timetable-row/timetable-row.sample-data.d.ts.map +0 -1
  95. package/pearl-chain/pearl-chain.sample-data.d.ts +0 -141
  96. package/pearl-chain/pearl-chain.sample-data.d.ts.map +0 -1
  97. package/timetable-duration/timetable-duration.sample-data.d.ts +0 -6
  98. package/timetable-duration/timetable-duration.sample-data.d.ts.map +0 -1
  99. package/timetable-row/timetable-row.sample-data.d.ts +0 -25
  100. package/timetable-row/timetable-row.sample-data.d.ts.map +0 -1
@@ -1,297 +1,5 @@
1
- var __typeError = (msg) => {
2
- throw TypeError(msg);
3
- };
4
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
- import { __runInitializers, __esDecorate } from "tslib";
9
- import { SbbLanguageController } from "@sbb-esta/lyne-elements/core/controllers.js";
10
- import { defaultDateAdapter } from "@sbb-esta/lyne-elements/core/datetime.js";
11
- import { forceType } from "@sbb-esta/lyne-elements/core/decorators.js";
12
- import { i18nTripDuration } from "@sbb-esta/lyne-elements/core/i18n.js";
13
- import { css, LitElement, nothing, html } from "lit";
14
- import { customElement, property } from "lit/decorators.js";
15
- import { durationToTime, removeTimezoneFromISOTimeString } from "./core/datetime.js";
16
- import "@sbb-esta/lyne-elements/divider.js";
17
- import "@sbb-esta/lyne-elements/screen-reader-only.js";
18
- import "@sbb-esta/lyne-elements/journey-header.js";
19
- import "./pearl-chain-time.js";
20
- import { i as isValid } from "./isValid-DO_pHwcW.js";
21
- import { f as format } from "./format-BU7bjY-L.js";
22
- const style = css`*,
23
- ::before,
24
- ::after {
25
- box-sizing: border-box;
26
- }
27
-
28
- :host {
29
- display: block;
30
- }
31
-
32
- .sbb-journey-summary {
33
- --sbb-text-font-size: var(--sbb-font-size-text-s);
34
- font-family: var(--sbb-typo-font-family);
35
- font-weight: normal;
36
- line-height: var(--sbb-typo-line-height-body-text);
37
- letter-spacing: var(--sbb-typo-letter-spacing-body-text);
38
- font-size: var(--sbb-text-font-size);
39
- color: var(--sbb-color-iron);
40
- display: flex;
41
- flex-direction: column;
42
- }
43
-
44
- .sbb-journey-summary__via-block {
45
- display: flex;
46
- }
47
-
48
- .sbb-journey-summary__vias {
49
- overflow: hidden;
50
- white-space: nowrap;
51
- text-overflow: ellipsis;
52
- margin-block: 0;
53
- padding-inline-start: var(--sbb-spacing-fixed-1x);
54
- }
55
-
56
- .sbb-journey-summary__date {
57
- margin-block-end: var(--sbb-spacing-fixed-2x);
58
- }
59
-
60
- .sbb-journey-summary__via {
61
- white-space: nowrap;
62
- overflow: hidden;
63
- text-overflow: ellipsis;
64
- }
65
-
66
- .sbb-journey-summary__divider {
67
- margin-block: var(--sbb-spacing-fixed-6x);
68
- }
69
-
70
- ul li {
71
- list-style: none;
72
- display: inline;
73
- }`;
74
- let SbbJourneySummaryElement = (() => {
75
- var _trip_accessor_storage, _tripBack_accessor_storage, _roundTrip_accessor_storage, _headerLevel_accessor_storage, _disableAnimation_accessor_storage, _a11yFootpath_accessor_storage, _a;
76
- let _classDecorators = [customElement("sbb-journey-summary")];
77
- let _classDescriptor;
78
- let _classExtraInitializers = [];
79
- let _classThis;
80
- let _classSuper = LitElement;
81
- let _instanceExtraInitializers = [];
82
- let _trip_decorators;
83
- let _trip_initializers = [];
84
- let _trip_extraInitializers = [];
85
- let _tripBack_decorators;
86
- let _tripBack_initializers = [];
87
- let _tripBack_extraInitializers = [];
88
- let _roundTrip_decorators;
89
- let _roundTrip_initializers = [];
90
- let _roundTrip_extraInitializers = [];
91
- let _headerLevel_decorators;
92
- let _headerLevel_initializers = [];
93
- let _headerLevel_extraInitializers = [];
94
- let _disableAnimation_decorators;
95
- let _disableAnimation_initializers = [];
96
- let _disableAnimation_extraInitializers = [];
97
- let _a11yFootpath_decorators;
98
- let _a11yFootpath_initializers = [];
99
- let _a11yFootpath_extraInitializers = [];
100
- let _set_now_decorators;
101
- _a = class extends _classSuper {
102
- constructor() {
103
- super(...arguments);
104
- __privateAdd(this, _trip_accessor_storage);
105
- __privateAdd(this, _tripBack_accessor_storage);
106
- __privateAdd(this, _roundTrip_accessor_storage);
107
- __privateAdd(this, _headerLevel_accessor_storage);
108
- __privateAdd(this, _disableAnimation_accessor_storage);
109
- __privateAdd(this, _a11yFootpath_accessor_storage);
110
- __privateSet(this, _trip_accessor_storage, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _trip_initializers, null)));
111
- __privateSet(this, _tripBack_accessor_storage, (__runInitializers(this, _trip_extraInitializers), __runInitializers(this, _tripBack_initializers, null)));
112
- __privateSet(this, _roundTrip_accessor_storage, (__runInitializers(this, _tripBack_extraInitializers), __runInitializers(this, _roundTrip_initializers, false)));
113
- __privateSet(this, _headerLevel_accessor_storage, (__runInitializers(this, _roundTrip_extraInitializers), __runInitializers(this, _headerLevel_initializers, "3")));
114
- __privateSet(this, _disableAnimation_accessor_storage, (__runInitializers(this, _headerLevel_extraInitializers), __runInitializers(this, _disableAnimation_initializers, false)));
115
- __privateSet(this, _a11yFootpath_accessor_storage, (__runInitializers(this, _disableAnimation_extraInitializers), __runInitializers(this, _a11yFootpath_initializers, false)));
116
- this._now = (__runInitializers(this, _a11yFootpath_extraInitializers), null);
117
- this._hasContentSlot = false;
118
- this._language = new SbbLanguageController(this);
119
- }
120
- /** The trip prop */
121
- get trip() {
122
- return __privateGet(this, _trip_accessor_storage);
123
- }
124
- set trip(value) {
125
- __privateSet(this, _trip_accessor_storage, value);
126
- }
127
- /** The tripBack prop */
128
- get tripBack() {
129
- return __privateGet(this, _tripBack_accessor_storage);
130
- }
131
- set tripBack(value) {
132
- __privateSet(this, _tripBack_accessor_storage, value);
133
- }
134
- /**
135
- * The RoundTrip prop. This prop controls if one or two arrows are displayed in the header.
136
- */
137
- get roundTrip() {
138
- return __privateGet(this, _roundTrip_accessor_storage);
139
- }
140
- set roundTrip(value) {
141
- __privateSet(this, _roundTrip_accessor_storage, value);
142
- }
143
- /** Heading level of the journey header element (e.g. h1-h6). */
144
- get headerLevel() {
145
- return __privateGet(this, _headerLevel_accessor_storage);
146
- }
147
- set headerLevel(value) {
148
- __privateSet(this, _headerLevel_accessor_storage, value);
149
- }
150
- /**
151
- * Per default, the current location has a pulsating animation. You can
152
- * disable the animation with this property.
153
- */
154
- get disableAnimation() {
155
- return __privateGet(this, _disableAnimation_accessor_storage);
156
- }
157
- set disableAnimation(value) {
158
- __privateSet(this, _disableAnimation_accessor_storage, value);
159
- }
160
- /**
161
- * The Footpath attribute for rendering different icons
162
- * true: render a11y-icon
163
- * false: render walk-icon
164
- * default: render walk-icon
165
- */
166
- get a11yFootpath() {
167
- return __privateGet(this, _a11yFootpath_accessor_storage);
168
- }
169
- set a11yFootpath(value) {
170
- __privateSet(this, _a11yFootpath_accessor_storage, value);
171
- }
172
- /** A configured date which acts as the current date instead of the real current date. Recommended for testing purposes. */
173
- set now(value) {
174
- this._now = defaultDateAdapter.getValidDateOrNull(defaultDateAdapter.deserialize(value));
175
- }
176
- get now() {
177
- return this._now ?? /* @__PURE__ */ new Date();
178
- }
179
- connectedCallback() {
180
- var _a2;
181
- super.connectedCallback();
182
- this._hasContentSlot = Boolean((_a2 = this.querySelector) == null ? void 0 : _a2.call(this, '[slot="content"]'));
183
- }
184
- /** renders the date of the journey or if it is the current or next day */
185
- _renderJourneyStart(departureTime, duration) {
186
- const dateAdapter = defaultDateAdapter;
187
- const durationObj = duration ? durationToTime(duration, this._language.current) : null;
188
- if (isValid(departureTime)) {
189
- return html`
190
- <time datetime=${format(departureTime, "d") + " " + format(departureTime, "M")}>
191
- ${dateAdapter.format(departureTime).replace(",", ".")}</time
192
- >${duration && duration > 0 ? html`,<time>
193
- <sbb-screen-reader-only>
194
- ${i18nTripDuration[this._language.current]} ${durationObj.long}
195
- </sbb-screen-reader-only>
196
- <span aria-hidden="true">${durationObj.short}</span>
197
- </time>` : nothing}
198
- `;
199
- }
200
- return;
201
- }
202
- _renderJourneyVias(vias) {
203
- const slicedVias = vias.slice(0, 5);
204
- return html`
205
- <div class="sbb-journey-summary__via-block">
206
- <span class="sbb-journey-summary__via-text">Via</span>
207
- <ul class="sbb-journey-summary__vias" role=${vias.length <= 1 ? "presentation" : nothing}>
208
- ${slicedVias.map((via, index) => html`<li class="sbb-journey-summary__via">
209
- ${via}${index !== slicedVias.length - 1 && index < 4 ? html`<span>,</span>` : nothing}
210
- </li>`)}
211
- </ul>
212
- </div>
213
- `;
214
- }
215
- _renderJourneyInformation(trip) {
216
- const { vias, duration, departureWalk, departure, arrivalWalk, arrival, legs } = trip || {};
217
- return html`
218
- <div>
219
- ${vias && vias.length > 0 ? this._renderJourneyVias(vias) : nothing}
220
- <div class="sbb-journey-summary__date">
221
- ${this._renderJourneyStart(removeTimezoneFromISOTimeString(departure), duration)}
222
- </div>
223
- <sbb-pearl-chain-time
224
- .arrivalTime=${arrival}
225
- .departureTime=${departure}
226
- .departureWalk=${departureWalk}
227
- .arrivalWalk=${arrivalWalk}
228
- .legs=${legs}
229
- .disableAnimation=${this.disableAnimation}
230
- .a11yFootpath=${this.a11yFootpath}
231
- .now=${this.now}
232
- ></sbb-pearl-chain-time>
233
- </div>
234
- `;
235
- }
236
- render() {
237
- const { origin, destination } = this.trip || {};
238
- return html`
239
- <div class="sbb-journey-summary">
240
- ${origin ? html`<sbb-journey-header
241
- size="l"
242
- .level=${this.headerLevel || nothing}
243
- .origin=${origin}
244
- .destination=${destination}
245
- .roundTrip=${this.roundTrip ?? nothing}
246
- ></sbb-journey-header>` : nothing}
247
- ${this._renderJourneyInformation(this.trip)}
248
- ${this.tripBack ? html`<div>
249
- <sbb-divider class="sbb-journey-summary__divider"></sbb-divider>
250
- ${this._renderJourneyInformation(this.tripBack)}
251
- </div>` : nothing}
252
- ${this._hasContentSlot ? html` <div class="sbb-journey-summary__slot">
253
- <slot name="content"></slot>
254
- </div>` : nothing}
255
- </div>
256
- `;
257
- }
258
- }, _trip_accessor_storage = new WeakMap(), _tripBack_accessor_storage = new WeakMap(), _roundTrip_accessor_storage = new WeakMap(), _headerLevel_accessor_storage = new WeakMap(), _disableAnimation_accessor_storage = new WeakMap(), _a11yFootpath_accessor_storage = new WeakMap(), _classThis = _a, (() => {
259
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
260
- _trip_decorators = [property({ type: Object })];
261
- _tripBack_decorators = [property({ attribute: "trip-back", type: Object })];
262
- _roundTrip_decorators = [forceType(), property({ attribute: "round-trip", type: Boolean })];
263
- _headerLevel_decorators = [property({ attribute: "header-level" })];
264
- _disableAnimation_decorators = [forceType(), property({ attribute: "disable-animation", type: Boolean })];
265
- _a11yFootpath_decorators = [forceType(), property({ attribute: "a11y-footpath", type: Boolean })];
266
- _set_now_decorators = [property()];
267
- __esDecorate(_a, null, _trip_decorators, { kind: "accessor", name: "trip", static: false, private: false, access: { has: (obj) => "trip" in obj, get: (obj) => obj.trip, set: (obj, value) => {
268
- obj.trip = value;
269
- } }, metadata: _metadata }, _trip_initializers, _trip_extraInitializers);
270
- __esDecorate(_a, null, _tripBack_decorators, { kind: "accessor", name: "tripBack", static: false, private: false, access: { has: (obj) => "tripBack" in obj, get: (obj) => obj.tripBack, set: (obj, value) => {
271
- obj.tripBack = value;
272
- } }, metadata: _metadata }, _tripBack_initializers, _tripBack_extraInitializers);
273
- __esDecorate(_a, null, _roundTrip_decorators, { kind: "accessor", name: "roundTrip", static: false, private: false, access: { has: (obj) => "roundTrip" in obj, get: (obj) => obj.roundTrip, set: (obj, value) => {
274
- obj.roundTrip = value;
275
- } }, metadata: _metadata }, _roundTrip_initializers, _roundTrip_extraInitializers);
276
- __esDecorate(_a, null, _headerLevel_decorators, { kind: "accessor", name: "headerLevel", static: false, private: false, access: { has: (obj) => "headerLevel" in obj, get: (obj) => obj.headerLevel, set: (obj, value) => {
277
- obj.headerLevel = value;
278
- } }, metadata: _metadata }, _headerLevel_initializers, _headerLevel_extraInitializers);
279
- __esDecorate(_a, null, _disableAnimation_decorators, { kind: "accessor", name: "disableAnimation", static: false, private: false, access: { has: (obj) => "disableAnimation" in obj, get: (obj) => obj.disableAnimation, set: (obj, value) => {
280
- obj.disableAnimation = value;
281
- } }, metadata: _metadata }, _disableAnimation_initializers, _disableAnimation_extraInitializers);
282
- __esDecorate(_a, null, _a11yFootpath_decorators, { kind: "accessor", name: "a11yFootpath", static: false, private: false, access: { has: (obj) => "a11yFootpath" in obj, get: (obj) => obj.a11yFootpath, set: (obj, value) => {
283
- obj.a11yFootpath = value;
284
- } }, metadata: _metadata }, _a11yFootpath_initializers, _a11yFootpath_extraInitializers);
285
- __esDecorate(_a, null, _set_now_decorators, { kind: "setter", name: "now", static: false, private: false, access: { has: (obj) => "now" in obj, set: (obj, value) => {
286
- obj.now = value;
287
- } }, metadata: _metadata }, null, _instanceExtraInitializers);
288
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
289
- _classThis = _classDescriptor.value;
290
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
291
- })(), _a.styles = style, __runInitializers(_classThis, _classExtraInitializers), _a;
292
- return _classThis;
293
- })();
1
+ import { SbbJourneySummaryElement } from "./journey-summary/journey-summary.js";
294
2
  export {
295
3
  SbbJourneySummaryElement
296
4
  };
297
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam91cm5leS1zdW1tYXJ5LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL2pvdXJuZXktc3VtbWFyeS9qb3VybmV5LXN1bW1hcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuVHJpcER1cmF0aW9uIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUaXRsZUxldmVsIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvdGl0bGUuanMnO1xuaW1wb3J0IHsgZm9ybWF0LCBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZHVyYXRpb25Ub1RpbWUsIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB0eXBlIHsgTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9qb3VybmV5LXN1bW1hcnkuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9kaXZpZGVyLmpzJztcbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvam91cm5leS1oZWFkZXIuanMnO1xuaW1wb3J0ICcuLi9wZWFybC1jaGFpbi10aW1lLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmZhY2VTYmJKb3VybmV5U3VtbWFyeUF0dHJpYnV0ZXMge1xuICBsZWdzOiBMZWdbXTtcbiAgdmlhcz86IHN0cmluZ1tdO1xuICBvcmlnaW46IHN0cmluZztcbiAgZGVzdGluYXRpb246IHN0cmluZztcbiAgYXJyaXZhbFdhbGs/OiBudW1iZXI7XG4gIGRlcGFydHVyZTogc3RyaW5nO1xuICBhcnJpdmFsOiBzdHJpbmc7XG4gIGRlcGFydHVyZVdhbGs/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGpvdXJuZXkncyBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAc2xvdCBjb250ZW50IC0gVXNlIHRoaXMgc2xvdCB0byBhZGQgYHNiYi1idXR0b25gcyBvciBvdGhlciBpbnRlcmFjdGl2ZSBlbGVtZW50cy5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWpvdXJuZXktc3VtbWFyeScpXG5jbGFzcyBTYmJKb3VybmV5U3VtbWFyeUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqICBUaGUgdHJpcCBwcm9wICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE9iamVjdCB9KSBwdWJsaWMgYWNjZXNzb3IgdHJpcDogSW50ZXJmYWNlU2JiSm91cm5leVN1bW1hcnlBdHRyaWJ1dGVzID0gbnVsbCE7XG5cbiAgLyoqICBUaGUgdHJpcEJhY2sgcHJvcCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0cmlwLWJhY2snLCB0eXBlOiBPYmplY3QgfSlcbiAgcHVibGljIGFjY2Vzc29yIHRyaXBCYWNrOiBJbnRlcmZhY2VTYmJKb3VybmV5U3VtbWFyeUF0dHJpYnV0ZXMgPSBudWxsITtcblxuICAvKipcbiAgICogVGhlIFJvdW5kVHJpcCBwcm9wLiBUaGlzIHByb3AgY29udHJvbHMgaWYgb25lIG9yIHR3byBhcnJvd3MgYXJlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3JvdW5kLXRyaXAnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciByb3VuZFRyaXA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSGVhZGluZyBsZXZlbCBvZiB0aGUgam91cm5leSBoZWFkZXIgZWxlbWVudCAoZS5nLiBoMS1oNikuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hlYWRlci1sZXZlbCcgfSkgcHVibGljIGFjY2Vzc29yIGhlYWRlckxldmVsOiBTYmJUaXRsZUxldmVsID0gJzMnO1xuXG4gIC8qKlxuICAgKiBQZXIgZGVmYXVsdCwgdGhlIGN1cnJlbnQgbG9jYXRpb24gaGFzIGEgcHVsc2F0aW5nIGFuaW1hdGlvbi4gWW91IGNhblxuICAgKiBkaXNhYmxlIHRoZSBhbmltYXRpb24gd2l0aCB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGUtYW5pbWF0aW9uJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZUFuaW1hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgRm9vdHBhdGggYXR0cmlidXRlIGZvciByZW5kZXJpbmcgZGlmZmVyZW50IGljb25zXG4gICAqIHRydWU6IHJlbmRlciBhMTF5LWljb25cbiAgICogZmFsc2U6IHJlbmRlciB3YWxrLWljb25cbiAgICogZGVmYXVsdDogcmVuZGVyIHdhbGstaWNvblxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ExMXktZm9vdHBhdGgnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhMTF5Rm9vdHBhdGg6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogQSBjb25maWd1cmVkIGRhdGUgd2hpY2ggYWN0cyBhcyB0aGUgY3VycmVudCBkYXRlIGluc3RlYWQgb2YgdGhlIHJlYWwgY3VycmVudCBkYXRlLiBSZWNvbW1lbmRlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBub3codmFsdWU6IFNiYkRhdGVMaWtlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbm93ID0gZGVmYXVsdERhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChkZWZhdWx0RGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbm93ID8/IG5ldyBEYXRlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfbm93OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfaGFzQ29udGVudFNsb3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2hhc0NvbnRlbnRTbG90ID0gQm9vbGVhbih0aGlzLnF1ZXJ5U2VsZWN0b3I/LignW3Nsb3Q9XCJjb250ZW50XCJdJykpO1xuICB9XG5cbiAgLyoqICByZW5kZXJzIHRoZSBkYXRlIG9mIHRoZSBqb3VybmV5IG9yIGlmIGl0IGlzIHRoZSBjdXJyZW50IG9yIG5leHQgZGF5ICovXG4gIHByaXZhdGUgX3JlbmRlckpvdXJuZXlTdGFydChcbiAgICBkZXBhcnR1cmVUaW1lOiBEYXRlIHwgdW5kZWZpbmVkLFxuICAgIGR1cmF0aW9uOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICk6IFRlbXBsYXRlUmVzdWx0IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkYXRlQWRhcHRlciA9IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgICBjb25zdCBkdXJhdGlvbk9iaiA9IGR1cmF0aW9uID8gZHVyYXRpb25Ub1RpbWUoZHVyYXRpb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpIDogbnVsbDtcblxuICAgIGlmIChpc1ZhbGlkKGRlcGFydHVyZVRpbWUpKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHRpbWUgZGF0ZXRpbWU9JHtmb3JtYXQoZGVwYXJ0dXJlVGltZSEsICdkJykgKyAnICcgKyBmb3JtYXQoZGVwYXJ0dXJlVGltZSEsICdNJyl9PlxuICAgICAgICAgICR7ZGF0ZUFkYXB0ZXIuZm9ybWF0KGRlcGFydHVyZVRpbWUpLnJlcGxhY2UoJywnLCAnLicpfTwvdGltZVxuICAgICAgICA+JHtkdXJhdGlvbiAmJiBkdXJhdGlvbiA+IDBcbiAgICAgICAgICA/IGh0bWxgLDx0aW1lPlxuICAgICAgICAgICAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgICAgICAgICAgICAgJHtpMThuVHJpcER1cmF0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2R1cmF0aW9uT2JqIS5sb25nfVxuICAgICAgICAgICAgICAgIDwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4ke2R1cmF0aW9uT2JqIS5zaG9ydH08L3NwYW4+XG4gICAgICAgICAgICAgIDwvdGltZT5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgYDtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVySm91cm5leVZpYXModmlhczogc3RyaW5nW10pOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3Qgc2xpY2VkVmlhcyA9IHZpYXMuc2xpY2UoMCwgNSk7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fdmlhLWJsb2NrXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fdmlhLXRleHRcIj5WaWE8L3NwYW4+XG4gICAgICAgIDx1bCBjbGFzcz1cInNiYi1qb3VybmV5LXN1bW1hcnlfX3ZpYXNcIiByb2xlPSR7dmlhcy5sZW5ndGggPD0gMSA/ICdwcmVzZW50YXRpb24nIDogbm90aGluZ30+XG4gICAgICAgICAgJHtzbGljZWRWaWFzLm1hcChcbiAgICAgICAgICAgICh2aWEsIGluZGV4KSA9PlxuICAgICAgICAgICAgICBodG1sYDxsaSBjbGFzcz1cInNiYi1qb3VybmV5LXN1bW1hcnlfX3ZpYVwiPlxuICAgICAgICAgICAgICAgICR7dmlhfSR7aW5kZXggIT09IHNsaWNlZFZpYXMubGVuZ3RoIC0gMSAmJiBpbmRleCA8IDRcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3Bhbj4sPC9zcGFuPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgPC9saT5gLFxuICAgICAgICAgICl9XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVySm91cm5leUluZm9ybWF0aW9uKHRyaXA6IEludGVyZmFjZVNiYkpvdXJuZXlTdW1tYXJ5QXR0cmlidXRlcyk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCB7IHZpYXMsIGR1cmF0aW9uLCBkZXBhcnR1cmVXYWxrLCBkZXBhcnR1cmUsIGFycml2YWxXYWxrLCBhcnJpdmFsLCBsZWdzIH0gPSB0cmlwIHx8IHt9O1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2PlxuICAgICAgICAke3ZpYXMgJiYgdmlhcy5sZW5ndGggPiAwID8gdGhpcy5fcmVuZGVySm91cm5leVZpYXModmlhcykgOiBub3RoaW5nfVxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fZGF0ZVwiPlxuICAgICAgICAgICR7dGhpcy5fcmVuZGVySm91cm5leVN0YXJ0KHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcoZGVwYXJ0dXJlKSwgZHVyYXRpb24pfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNiYi1wZWFybC1jaGFpbi10aW1lXG4gICAgICAgICAgLmFycml2YWxUaW1lPSR7YXJyaXZhbH1cbiAgICAgICAgICAuZGVwYXJ0dXJlVGltZT0ke2RlcGFydHVyZX1cbiAgICAgICAgICAuZGVwYXJ0dXJlV2Fsaz0ke2RlcGFydHVyZVdhbGt9XG4gICAgICAgICAgLmFycml2YWxXYWxrPSR7YXJyaXZhbFdhbGt9XG4gICAgICAgICAgLmxlZ3M9JHtsZWdzfVxuICAgICAgICAgIC5kaXNhYmxlQW5pbWF0aW9uPSR7dGhpcy5kaXNhYmxlQW5pbWF0aW9ufVxuICAgICAgICAgIC5hMTF5Rm9vdHBhdGg9JHt0aGlzLmExMXlGb290cGF0aH1cbiAgICAgICAgICAubm93PSR7dGhpcy5ub3d9XG4gICAgICAgID48L3NiYi1wZWFybC1jaGFpbi10aW1lPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IHsgb3JpZ2luLCBkZXN0aW5hdGlvbiB9ID0gdGhpcy50cmlwIHx8IHt9O1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1qb3VybmV5LXN1bW1hcnlcIj5cbiAgICAgICAgJHtvcmlnaW5cbiAgICAgICAgICA/IGh0bWxgPHNiYi1qb3VybmV5LWhlYWRlclxuICAgICAgICAgICAgICBzaXplPVwibFwiXG4gICAgICAgICAgICAgIC5sZXZlbD0ke3RoaXMuaGVhZGVyTGV2ZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgLm9yaWdpbj0ke29yaWdpbn1cbiAgICAgICAgICAgICAgLmRlc3RpbmF0aW9uPSR7ZGVzdGluYXRpb259XG4gICAgICAgICAgICAgIC5yb3VuZFRyaXA9JHt0aGlzLnJvdW5kVHJpcCA/PyBub3RoaW5nfVxuICAgICAgICAgICAgPjwvc2JiLWpvdXJuZXktaGVhZGVyPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICR7dGhpcy5fcmVuZGVySm91cm5leUluZm9ybWF0aW9uKHRoaXMudHJpcCl9XG4gICAgICAgICR7dGhpcy50cmlwQmFja1xuICAgICAgICAgID8gaHRtbGA8ZGl2PlxuICAgICAgICAgICAgICA8c2JiLWRpdmlkZXIgY2xhc3M9XCJzYmItam91cm5leS1zdW1tYXJ5X19kaXZpZGVyXCI+PC9zYmItZGl2aWRlcj5cbiAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJKb3VybmV5SW5mb3JtYXRpb24odGhpcy50cmlwQmFjayl9XG4gICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAke3RoaXMuX2hhc0NvbnRlbnRTbG90XG4gICAgICAgICAgPyBodG1sYCA8ZGl2IGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fc2xvdFwiPlxuICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwiY29udGVudFwiPjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItam91cm5leS1zdW1tYXJ5JzogU2JiSm91cm5leVN1bW1hcnlFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUF3Q00sNEJBQXdCLE1BQUE7OzBCQUQ3QixjQUFjLHFCQUFxQixDQUFDOzs7O29CQUNFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBUixFQUFBLG1CQUFRLFlBQVU7QUFBQTs7QUFJbkI7QUFJNUI7QUFPQTtBQUd5QztBQVF6QztBQVVBO0FBcENJLHlCQUFBLHlCQUFBLGtCQUFBLE1BQUEsMEJBQUEsR0FJcUYsa0JBQUEsTUFBQSxvQkFBQSxJQUFLO0FBSTlFLHlCQUFBLDZCQUFBLGtCQUFBLE1BQUEsdUJBQUEsR0FBQSxrQkFBQSxNQUFBLHdCQUFpRCxJQUFLO0FBT3RELHlCQUFBLDhCQUFBLGtCQUFBLE1BQUEsMkJBQUEsR0FBQSxrQkFBQSxNQUFBLHlCQUFxQixLQUFLO0FBR2UseUJBQUEsZ0NBQUEsa0JBQUEsTUFBQSw0QkFBQSxHQUFBLGtCQUFBLE1BQUEsMkJBQTZCLEdBQUc7QUFRekUseUJBQUEscUNBQUEsa0JBQUEsTUFBQSw4QkFBQSxHQUFBLGtCQUFBLE1BQUEsZ0NBQTRCLEtBQUs7QUFVakMseUJBQUEsaUNBQUEsa0JBQUEsTUFBQSxtQ0FBQSxHQUFBLGtCQUFBLE1BQUEsNEJBQXdCLEtBQUs7QUFVckMsV0FBSSxRQUFBLGtCQUFBLE1BQUEsK0JBQUEsR0FBZ0I7QUFFcEIsV0FBZSxrQkFBWTtBQUMzQixXQUFBLFlBQVksSUFBSSxzQkFBc0Is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
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam91cm5leS1zdW1tYXJ5LmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjsifQ==