@sbb-esta/lyne-elements-experimental-dev 4.7.0-dev.1773388997 → 4.7.0-dev.1773393170

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 (200) hide show
  1. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +76 -65
  2. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +52 -72
  3. package/autocomplete-grid/autocomplete-grid-button.js +6 -3
  4. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +17 -2
  5. package/autocomplete-grid/autocomplete-grid-cell.js +7 -4
  6. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +21 -20
  7. package/autocomplete-grid/autocomplete-grid-optgroup.js +6 -3
  8. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +33 -2
  9. package/autocomplete-grid/autocomplete-grid-option.js +9 -4
  10. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +22 -2
  11. package/autocomplete-grid/autocomplete-grid-row.js +7 -4
  12. package/autocomplete-grid/autocomplete-grid.js +6 -3
  13. package/autocomplete-grid.js +21 -9
  14. package/autocomplete-grid.pure.js +15 -7
  15. package/core/datetime/date-helper.js +191 -2
  16. package/core/datetime.js +5 -2
  17. package/core/timetable/access-leg-helper.js +71 -76
  18. package/core/timetable/timetable-helper.js +11 -9
  19. package/core/timetable/timetable-properties.js +1 -0
  20. package/core/timetable.js +7 -3
  21. package/custom-elements.json +84 -84
  22. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +122 -114
  23. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +70 -92
  24. package/development/autocomplete-grid/autocomplete-grid-button.js +4 -6
  25. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +29 -2
  26. package/development/autocomplete-grid/autocomplete-grid-cell.js +5 -7
  27. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +22 -27
  28. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +4 -6
  29. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +109 -2
  30. package/development/autocomplete-grid/autocomplete-grid-option.js +7 -7
  31. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +91 -2
  32. package/development/autocomplete-grid/autocomplete-grid-row.js +5 -7
  33. package/development/autocomplete-grid/autocomplete-grid.js +4 -6
  34. package/development/autocomplete-grid.js +14 -10
  35. package/development/autocomplete-grid.pure.js +13 -4
  36. package/development/core/datetime/date-helper.js +285 -2
  37. package/development/core/datetime.js +6 -2
  38. package/development/core/timetable/access-leg-helper.js +82 -104
  39. package/development/core/timetable/timetable-helper.js +17 -16
  40. package/development/core/timetable/timetable-properties.js +2 -0
  41. package/development/core/timetable.js +8 -3
  42. package/development/differenceInMinutes-B0dawX-5.js +26 -0
  43. package/development/format-BMkeaqaF.js +1433 -0
  44. package/development/isValid-BYRch7pV.js +53 -0
  45. package/development/journey-summary/journey-summary.component.js +288 -2
  46. package/development/journey-summary.js +5 -8
  47. package/development/journey-summary.pure.js +5 -2
  48. package/development/pearl-chain/pearl-chain.component.js +634 -2
  49. package/development/pearl-chain-time/pearl-chain-time.component.js +306 -2
  50. package/development/pearl-chain-time.js +5 -8
  51. package/development/pearl-chain-time.pure.js +5 -2
  52. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +28 -2
  53. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +393 -2
  54. package/development/pearl-chain-vertical-item.js +5 -8
  55. package/development/pearl-chain-vertical-item.pure.js +5 -2
  56. package/development/pearl-chain-vertical.js +5 -8
  57. package/development/pearl-chain-vertical.pure.js +5 -2
  58. package/development/pearl-chain.js +5 -8
  59. package/development/pearl-chain.pure.js +5 -2
  60. package/development/seat-reservation/common/mapper/icon-mapper.js +71 -168
  61. package/development/seat-reservation/common/mapper/mapper.js +122 -153
  62. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +559 -570
  63. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +972 -992
  64. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.js +20367 -20334
  65. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1738 -1731
  66. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9782 -9741
  67. package/development/seat-reservation/common/mapper.js +8 -1
  68. package/development/seat-reservation/common/svgs.js +46 -2
  69. package/development/seat-reservation/common/translations/i18n.js +900 -1118
  70. package/development/seat-reservation/common/translations.js +4 -1
  71. package/development/seat-reservation/common/types.js +2 -0
  72. package/development/seat-reservation/common.js +11 -7
  73. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +1230 -1305
  74. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +859 -2
  75. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +106 -2
  76. package/development/seat-reservation/seat-reservation-area.js +5 -7
  77. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +34 -35
  78. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +162 -2
  79. package/development/seat-reservation/seat-reservation-graphic.js +5 -7
  80. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +713 -2
  81. package/development/seat-reservation/seat-reservation-navigation-coach.js +5 -7
  82. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +131 -2
  83. package/development/seat-reservation/seat-reservation-navigation-services.js +5 -7
  84. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +601 -2
  85. package/development/seat-reservation/seat-reservation-place-control.js +5 -7
  86. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +22 -2
  87. package/development/seat-reservation/seat-reservation-scoped.js +5 -7
  88. package/development/seat-reservation/seat-reservation.js +6 -7
  89. package/development/seat-reservation.js +28 -15
  90. package/development/seat-reservation.pure.js +28 -10
  91. package/development/timetable-duration/timetable-duration.component.js +108 -2
  92. package/development/timetable-duration.js +5 -8
  93. package/development/timetable-duration.pure.js +5 -2
  94. package/development/timetable-row/timetable-row.component.js +781 -2
  95. package/development/timetable-row.js +13 -8
  96. package/development/timetable-row.pure.js +12 -2
  97. package/development/toDate-BWb6Z1JD.js +24 -0
  98. package/differenceInMinutes-COvvdYsJ.js +23 -0
  99. package/format-CmKROkbc.js +1186 -0
  100. package/isValid-m3_OsPaB.js +45 -0
  101. package/journey-summary/journey-summary.component.js +194 -2
  102. package/journey-summary.js +4 -5
  103. package/journey-summary.pure.js +4 -2
  104. package/package.json +2 -2
  105. package/pearl-chain/pearl-chain.component.js +165 -2
  106. package/pearl-chain-time/pearl-chain-time.component.js +157 -2
  107. package/pearl-chain-time.js +4 -5
  108. package/pearl-chain-time.pure.js +4 -2
  109. package/pearl-chain-vertical/pearl-chain-vertical.component.js +17 -2
  110. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +77 -2
  111. package/pearl-chain-vertical-item.js +4 -5
  112. package/pearl-chain-vertical-item.pure.js +4 -2
  113. package/pearl-chain-vertical.js +4 -5
  114. package/pearl-chain-vertical.pure.js +4 -2
  115. package/pearl-chain.js +4 -5
  116. package/pearl-chain.pure.js +4 -2
  117. package/seat-reservation/common/mapper/icon-mapper.js +71 -71
  118. package/seat-reservation/common/mapper/mapper.js +89 -95
  119. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +558 -568
  120. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +970 -989
  121. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.js +20366 -20332
  122. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1737 -1729
  123. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9781 -9739
  124. package/seat-reservation/common/mapper.js +9 -3
  125. package/seat-reservation/common/svgs.js +243 -2
  126. package/seat-reservation/common/translations/i18n.js +891 -1084
  127. package/seat-reservation/common/translations.js +4 -2
  128. package/seat-reservation/common/types.js +1 -0
  129. package/seat-reservation/common.js +15 -9
  130. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +810 -832
  131. package/seat-reservation/seat-reservation/seat-reservation.component.js +420 -2
  132. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +51 -2
  133. package/seat-reservation/seat-reservation-area.js +7 -4
  134. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +71 -68
  135. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +75 -2
  136. package/seat-reservation/seat-reservation-graphic.js +7 -4
  137. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +234 -2
  138. package/seat-reservation/seat-reservation-navigation-coach.js +7 -4
  139. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +85 -2
  140. package/seat-reservation/seat-reservation-navigation-services.js +7 -4
  141. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +203 -2
  142. package/seat-reservation/seat-reservation-place-control.js +7 -4
  143. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +13 -2
  144. package/seat-reservation/seat-reservation-scoped.js +7 -4
  145. package/seat-reservation/seat-reservation.js +9 -5
  146. package/seat-reservation.js +39 -17
  147. package/seat-reservation.pure.js +32 -15
  148. package/timetable-duration/timetable-duration.component.js +57 -2
  149. package/timetable-duration.js +4 -5
  150. package/timetable-duration.pure.js +4 -2
  151. package/timetable-row/timetable-row.component.js +427 -2
  152. package/timetable-row.js +13 -6
  153. package/timetable-row.pure.js +11 -2
  154. package/toDate-Bw2KTWeq.js +15 -0
  155. package/autocomplete-grid-cell.component-Dak9wlBr.js +0 -24
  156. package/autocomplete-grid-option.component-DNRFHOwc.js +0 -37
  157. package/autocomplete-grid-row.component-DBHZQ0GQ.js +0 -27
  158. package/date-helper-CGproP5d.js +0 -185
  159. package/development/autocomplete-grid-cell.component-BBvM4o2H.js +0 -42
  160. package/development/autocomplete-grid-option.component-QzfM5eIE.js +0 -123
  161. package/development/autocomplete-grid-row.component-H8sCTCkT.js +0 -104
  162. package/development/date-helper-8_Y-PuHh.js +0 -520
  163. package/development/differenceInMinutes-DN_1Rk3O.js +0 -110
  164. package/development/format-Bbrn2bgo.js +0 -1848
  165. package/development/isValid-C-HzKv4v.js +0 -178
  166. package/development/journey-summary.component-uGhZvA4p.js +0 -385
  167. package/development/pearl-chain-time.component-B8mayTWD.js +0 -415
  168. package/development/pearl-chain-vertical-item.component-BDzbcIaf.js +0 -435
  169. package/development/pearl-chain-vertical.component-CswE7b3M.js +0 -39
  170. package/development/pearl-chain.component-wpsTvoSe.js +0 -704
  171. package/development/seat-reservation-area.component-BK92ZtFo.js +0 -138
  172. package/development/seat-reservation-graphic.component-cUnsHh5x.js +0 -193
  173. package/development/seat-reservation-navigation-coach.component-D6Bglus8.js +0 -828
  174. package/development/seat-reservation-navigation-services.component-DYJ6Ddkg.js +0 -179
  175. package/development/seat-reservation-place-control.component-Bg9evKBW.js +0 -726
  176. package/development/seat-reservation-scoped.component-DRQ_I702.js +0 -31
  177. package/development/seat-reservation.component-Cq_aJKR0.js +0 -818
  178. package/development/svgs-C3JMWR26.js +0 -28
  179. package/development/timetable-duration.component-DI0lET17.js +0 -125
  180. package/development/timetable-row.component-CAED6Zwc.js +0 -932
  181. package/development/toDate-Biiv3kyf.js +0 -150
  182. package/differenceInMinutes-Dr9gRqtu.js +0 -27
  183. package/format-CM5exOsN.js +0 -1103
  184. package/isValid-B9oVW3lA.js +0 -36
  185. package/journey-summary.component-Cq_4kaOp.js +0 -264
  186. package/pearl-chain-time.component-DGDW5S1c.js +0 -239
  187. package/pearl-chain-vertical-item.component-G22bWhLU.js +0 -108
  188. package/pearl-chain-vertical.component-CXIDT5RD.js +0 -21
  189. package/pearl-chain.component-DmjkVIva.js +0 -194
  190. package/seat-reservation-area.component-n-9rGn_y.js +0 -75
  191. package/seat-reservation-graphic.component-YTXRmKt0.js +0 -102
  192. package/seat-reservation-navigation-coach.component-YJ0vaYmO.js +0 -333
  193. package/seat-reservation-navigation-services.component-C3xnLJg2.js +0 -127
  194. package/seat-reservation-place-control.component-DmBAfM6K.js +0 -322
  195. package/seat-reservation-scoped.component-DPkz6u17.js +0 -17
  196. package/seat-reservation.component-C_anMkgw.js +0 -364
  197. package/svgs-D9arBcqr.js +0 -26
  198. package/timetable-duration.component-DCu8Phts.js +0 -65
  199. package/timetable-row.component-BVRCB3xK.js +0 -559
  200. package/toDate-p-Tpkb7t.js +0 -16
@@ -1,178 +0,0 @@
1
- import { n as constructFrom, r as millisecondsInDay, t as toDate } from "./toDate-Biiv3kyf.js";
2
- //#region node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js
3
- /**
4
- * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.
5
- * They usually appear for dates that denote time before the timezones were introduced
6
- * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891
7
- * and GMT+01:00:00 after that date)
8
- *
9
- * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,
10
- * which would lead to incorrect calculations.
11
- *
12
- * This function returns the timezone offset in milliseconds that takes seconds in account.
13
- */
14
- function getTimezoneOffsetInMilliseconds(date) {
15
- const _date = toDate(date);
16
- const utcDate = new Date(Date.UTC(_date.getFullYear(), _date.getMonth(), _date.getDate(), _date.getHours(), _date.getMinutes(), _date.getSeconds(), _date.getMilliseconds()));
17
- utcDate.setUTCFullYear(_date.getFullYear());
18
- return +date - +utcDate;
19
- }
20
- //#endregion
21
- //#region node_modules/date-fns/_lib/normalizeDates.js
22
- function normalizeDates(context, ...dates) {
23
- const normalize = constructFrom.bind(null, context || dates.find((date) => typeof date === "object"));
24
- return dates.map(normalize);
25
- }
26
- //#endregion
27
- //#region node_modules/date-fns/startOfDay.js
28
- /**
29
- * The {@link startOfDay} function options.
30
- */
31
- /**
32
- * @name startOfDay
33
- * @category Day Helpers
34
- * @summary Return the start of a day for the given date.
35
- *
36
- * @description
37
- * Return the start of a day for the given date.
38
- * The result will be in the local timezone.
39
- *
40
- * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
41
- * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
42
- *
43
- * @param date - The original date
44
- * @param options - The options
45
- *
46
- * @returns The start of a day
47
- *
48
- * @example
49
- * // The start of a day for 2 September 2014 11:55:00:
50
- * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
51
- * //=> Tue Sep 02 2014 00:00:00
52
- */
53
- function startOfDay(date, options) {
54
- const _date = toDate(date, options?.in);
55
- _date.setHours(0, 0, 0, 0);
56
- return _date;
57
- }
58
- //#endregion
59
- //#region node_modules/date-fns/differenceInCalendarDays.js
60
- /**
61
- * The {@link differenceInCalendarDays} function options.
62
- */
63
- /**
64
- * @name differenceInCalendarDays
65
- * @category Day Helpers
66
- * @summary Get the number of calendar days between the given dates.
67
- *
68
- * @description
69
- * Get the number of calendar days between the given dates. This means that the times are removed
70
- * from the dates and then the difference in days is calculated.
71
- *
72
- * @param laterDate - The later date
73
- * @param earlierDate - The earlier date
74
- * @param options - The options object
75
- *
76
- * @returns The number of calendar days
77
- *
78
- * @example
79
- * // How many calendar days are between
80
- * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?
81
- * const result = differenceInCalendarDays(
82
- * new Date(2012, 6, 2, 0, 0),
83
- * new Date(2011, 6, 2, 23, 0)
84
- * )
85
- * //=> 366
86
- * // How many calendar days are between
87
- * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?
88
- * const result = differenceInCalendarDays(
89
- * new Date(2011, 6, 3, 0, 1),
90
- * new Date(2011, 6, 2, 23, 59)
91
- * )
92
- * //=> 1
93
- */
94
- function differenceInCalendarDays(laterDate, earlierDate, options) {
95
- const [laterDate_, earlierDate_] = normalizeDates(options?.in, laterDate, earlierDate);
96
- const laterStartOfDay = startOfDay(laterDate_);
97
- const earlierStartOfDay = startOfDay(earlierDate_);
98
- const laterTimestamp = +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);
99
- const earlierTimestamp = +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);
100
- return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);
101
- }
102
- //#endregion
103
- //#region node_modules/date-fns/isDate.js
104
- /**
105
- * @name isDate
106
- * @category Common Helpers
107
- * @summary Is the given value a date?
108
- *
109
- * @description
110
- * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
111
- *
112
- * @param value - The value to check
113
- *
114
- * @returns True if the given value is a date
115
- *
116
- * @example
117
- * // For a valid date:
118
- * const result = isDate(new Date())
119
- * //=> true
120
- *
121
- * @example
122
- * // For an invalid date:
123
- * const result = isDate(new Date(NaN))
124
- * //=> true
125
- *
126
- * @example
127
- * // For some value:
128
- * const result = isDate('2014-02-31')
129
- * //=> false
130
- *
131
- * @example
132
- * // For an object:
133
- * const result = isDate({})
134
- * //=> false
135
- */
136
- function isDate(value) {
137
- return value instanceof Date || typeof value === "object" && Object.prototype.toString.call(value) === "[object Date]";
138
- }
139
- //#endregion
140
- //#region node_modules/date-fns/isValid.js
141
- /**
142
- * @name isValid
143
- * @category Common Helpers
144
- * @summary Is the given date valid?
145
- *
146
- * @description
147
- * Returns false if argument is Invalid Date and true otherwise.
148
- * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)
149
- * Invalid Date is a Date, whose time value is NaN.
150
- *
151
- * Time value of Date: http://es5.github.io/#x15.9.1.1
152
- *
153
- * @param date - The date to check
154
- *
155
- * @returns The date is valid
156
- *
157
- * @example
158
- * // For the valid date:
159
- * const result = isValid(new Date(2014, 1, 31))
160
- * //=> true
161
- *
162
- * @example
163
- * // For the value, convertible into a date:
164
- * const result = isValid(1393804800000)
165
- * //=> true
166
- *
167
- * @example
168
- * // For the invalid date:
169
- * const result = isValid(new Date(''))
170
- * //=> false
171
- */
172
- function isValid(date) {
173
- return !(!isDate(date) && typeof date !== "number" || isNaN(+toDate(date)));
174
- }
175
- //#endregion
176
- export { differenceInCalendarDays as n, normalizeDates as r, isValid as t };
177
-
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNWYWxpZC1DLUh6S3Y0di5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL19saWIvbm9ybWFsaXplRGF0ZXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZkRheS5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5DYWxlbmRhckRheXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNEYXRlLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzVmFsaWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4uL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEdvb2dsZSBDaHJvbWUgYXMgb2YgNjcuMC4zMzk2Ljg3IGludHJvZHVjZWQgdGltZXpvbmVzIHdpdGggb2Zmc2V0IHRoYXQgaW5jbHVkZXMgc2Vjb25kcy5cbiAqIFRoZXkgdXN1YWxseSBhcHBlYXIgZm9yIGRhdGVzIHRoYXQgZGVub3RlIHRpbWUgYmVmb3JlIHRoZSB0aW1lem9uZXMgd2VyZSBpbnRyb2R1Y2VkXG4gKiAoZS5nLiBmb3IgJ0V1cm9wZS9QcmFndWUnIHRpbWV6b25lIHRoZSBvZmZzZXQgaXMgR01UKzAwOjU3OjQ0IGJlZm9yZSAxIE9jdG9iZXIgMTg5MVxuICogYW5kIEdNVCswMTowMDowMCBhZnRlciB0aGF0IGRhdGUpXG4gKlxuICogRGF0ZSNnZXRUaW1lem9uZU9mZnNldCByZXR1cm5zIHRoZSBvZmZzZXQgaW4gbWludXRlcyBhbmQgd291bGQgcmV0dXJuIDU3IGZvciB0aGUgZXhhbXBsZSBhYm92ZSxcbiAqIHdoaWNoIHdvdWxkIGxlYWQgdG8gaW5jb3JyZWN0IGNhbGN1bGF0aW9ucy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHRpbWV6b25lIG9mZnNldCBpbiBtaWxsaXNlY29uZHMgdGhhdCB0YWtlcyBzZWNvbmRzIGluIGFjY291bnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzKGRhdGUpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSk7XG4gIGNvbnN0IHV0Y0RhdGUgPSBuZXcgRGF0ZShcbiAgICBEYXRlLlVUQyhcbiAgICAgIF9kYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBfZGF0ZS5nZXRNb250aCgpLFxuICAgICAgX2RhdGUuZ2V0RGF0ZSgpLFxuICAgICAgX2RhdGUuZ2V0SG91cnMoKSxcbiAgICAgIF9kYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgIF9kYXRlLmdldFNlY29uZHMoKSxcbiAgICAgIF9kYXRlLmdldE1pbGxpc2Vjb25kcygpLFxuICAgICksXG4gICk7XG4gIHV0Y0RhdGUuc2V0VVRDRnVsbFllYXIoX2RhdGUuZ2V0RnVsbFllYXIoKSk7XG4gIHJldHVybiArZGF0ZSAtICt1dGNEYXRlO1xufVxuIiwiaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEYXRlcyhjb250ZXh0LCAuLi5kYXRlcykge1xuICBjb25zdCBub3JtYWxpemUgPSBjb25zdHJ1Y3RGcm9tLmJpbmQoXG4gICAgbnVsbCxcbiAgICBjb250ZXh0IHx8IGRhdGVzLmZpbmQoKGRhdGUpID0+IHR5cGVvZiBkYXRlID09PSBcIm9iamVjdFwiKSxcbiAgKTtcbiAgcmV0dXJuIGRhdGVzLm1hcChub3JtYWxpemUpO1xufVxuIiwiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdGFydE9mRGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZkRheVxuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgZGF5IGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgc3RhcnQgb2YgYSBkYXkgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBzdGFydCBvZiBhIGRheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgc3RhcnQgb2YgYSBkYXkgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mRGF5KG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IFR1ZSBTZXAgMDIgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRPZkRheShkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdGFydE9mRGF5O1xuIiwiaW1wb3J0IHsgZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL19saWIvZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcy5qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQgeyBtaWxsaXNlY29uZHNJbkRheSB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgc3RhcnRPZkRheSB9IGZyb20gXCIuL3N0YXJ0T2ZEYXkuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5c30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5c1xuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBjYWxlbmRhciBkYXlzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgZGF5cyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy4gVGhpcyBtZWFucyB0aGF0IHRoZSB0aW1lcyBhcmUgcmVtb3ZlZFxuICogZnJvbSB0aGUgZGF0ZXMgYW5kIHRoZW4gdGhlIGRpZmZlcmVuY2UgaW4gZGF5cyBpcyBjYWxjdWxhdGVkLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBvYmplY3RcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGNhbGVuZGFyIGRheXNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgY2FsZW5kYXIgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTEgMjM6MDA6MDAgYW5kIDIgSnVseSAyMDEyIDAwOjAwOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKFxuICogICBuZXcgRGF0ZSgyMDEyLCA2LCAyLCAwLCAwKSxcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMiwgMjMsIDApXG4gKiApXG4gKiAvLz0+IDM2NlxuICogLy8gSG93IG1hbnkgY2FsZW5kYXIgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTEgMjM6NTk6MDAgYW5kIDMgSnVseSAyMDExIDAwOjAxOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKFxuICogICBuZXcgRGF0ZSgyMDExLCA2LCAzLCAwLCAxKSxcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMiwgMjMsIDU5KVxuICogKVxuICogLy89PiAxXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBbbGF0ZXJEYXRlXywgZWFybGllckRhdGVfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGxhdGVyRGF0ZSxcbiAgICBlYXJsaWVyRGF0ZSxcbiAgKTtcblxuICBjb25zdCBsYXRlclN0YXJ0T2ZEYXkgPSBzdGFydE9mRGF5KGxhdGVyRGF0ZV8pO1xuICBjb25zdCBlYXJsaWVyU3RhcnRPZkRheSA9IHN0YXJ0T2ZEYXkoZWFybGllckRhdGVfKTtcblxuICBjb25zdCBsYXRlclRpbWVzdGFtcCA9XG4gICAgK2xhdGVyU3RhcnRPZkRheSAtIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMobGF0ZXJTdGFydE9mRGF5KTtcbiAgY29uc3QgZWFybGllclRpbWVzdGFtcCA9XG4gICAgK2VhcmxpZXJTdGFydE9mRGF5IC0gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhlYXJsaWVyU3RhcnRPZkRheSk7XG5cbiAgLy8gUm91bmQgdGhlIG51bWJlciBvZiBkYXlzIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgYmVjYXVzZSB0aGUgbnVtYmVyIG9mXG4gIC8vIG1pbGxpc2Vjb25kcyBpbiBhIGRheSBpcyBub3QgY29uc3RhbnQgKGUuZy4gaXQncyBkaWZmZXJlbnQgaW4gdGhlIHdlZWsgb2ZcbiAgLy8gdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNsb2NrIHNoaWZ0KS5cbiAgcmV0dXJuIE1hdGgucm91bmQoKGxhdGVyVGltZXN0YW1wIC0gZWFybGllclRpbWVzdGFtcCkgLyBtaWxsaXNlY29uZHNJbkRheSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzO1xuIiwiLyoqXG4gKiBAbmFtZSBpc0RhdGVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIHZhbHVlIGEgZGF0ZT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZS4gVGhlIGZ1bmN0aW9uIHdvcmtzIGZvciBkYXRlcyB0cmFuc2ZlcnJlZCBhY3Jvc3MgaWZyYW1lcy5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2tcbiAqXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIGRhdGVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIGEgdmFsaWQgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzRGF0ZShuZXcgRGF0ZSgpKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBhbiBpbnZhbGlkIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBpc0RhdGUobmV3IERhdGUoTmFOKSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3Igc29tZSB2YWx1ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzRGF0ZSgnMjAxNC0wMi0zMScpXG4gKiAvLz0+IGZhbHNlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBhbiBvYmplY3Q6XG4gKiBjb25zdCByZXN1bHQgPSBpc0RhdGUoe30pXG4gKiAvLz0+IGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGUodmFsdWUpIHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgfHxcbiAgICAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSBcIltvYmplY3QgRGF0ZV1cIilcbiAgKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0RhdGU7XG4iLCJpbXBvcnQgeyBpc0RhdGUgfSBmcm9tIFwiLi9pc0RhdGUuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGlzVmFsaWRcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgdmFsaWQ/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm5zIGZhbHNlIGlmIGFyZ3VtZW50IGlzIEludmFsaWQgRGF0ZSBhbmQgdHJ1ZSBvdGhlcndpc2UuXG4gKiBBcmd1bWVudCBpcyBjb252ZXJ0ZWQgdG8gRGF0ZSB1c2luZyBgdG9EYXRlYC4gU2VlIFt0b0RhdGVdKGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvdG9EYXRlKVxuICogSW52YWxpZCBEYXRlIGlzIGEgRGF0ZSwgd2hvc2UgdGltZSB2YWx1ZSBpcyBOYU4uXG4gKlxuICogVGltZSB2YWx1ZSBvZiBEYXRlOiBodHRwOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjkuMS4xXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIHZhbGlkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciB0aGUgdmFsaWQgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzVmFsaWQobmV3IERhdGUoMjAxNCwgMSwgMzEpKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciB0aGUgdmFsdWUsIGNvbnZlcnRpYmxlIGludG8gYSBkYXRlOlxuICogY29uc3QgcmVzdWx0ID0gaXNWYWxpZCgxMzkzODA0ODAwMDAwKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciB0aGUgaW52YWxpZCBkYXRlOlxuICogY29uc3QgcmVzdWx0ID0gaXNWYWxpZChuZXcgRGF0ZSgnJykpXG4gKiAvLz0+IGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkKGRhdGUpIHtcbiAgcmV0dXJuICEoKCFpc0RhdGUoZGF0ZSkgJiYgdHlwZW9mIGRhdGUgIT09IFwibnVtYmVyXCIpIHx8IGlzTmFOKCt0b0RhdGUoZGF0ZSkpKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc1ZhbGlkO1xuIl0sInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswLDEsMiwzLDQsNV0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBYUEsU0FBZ0IsZ0NBQWdDLE1BQU07Q0FDcEQsTUFBTSxRQUFRLE9BQU8sS0FBSztDQUMxQixNQUFNLFVBQVUsSUFBSSxLQUNsQixLQUFLLElBQ0gsTUFBTSxhQUFhLEVBQ25CLE1BQU0sVUFBVSxFQUNoQixNQUFNLFNBQVMsRUFDZixNQUFNLFVBQVUsRUFDaEIsTUFBTSxZQUFZLEVBQ2xCLE1BQU0sWUFBWSxFQUNsQixNQUFNLGlCQUFpQixDQUN4QixDQUNGO0FBQ0QsU0FBUSxlQUFlLE1BQU0sYUFBYSxDQUFDO0FBQzNDLFFBQU8sQ0FBQyxPQUFPLENBQUM7Ozs7QUN6QmxCLFNBQWdCLGVBQWUsU0FBUyxHQUFHLE9BQU87Q0FDaEQsTUFBTSxZQUFZLGNBQWMsS0FDOUIsTUFDQSxXQUFXLE1BQU0sTUFBTSxTQUFTLE9BQU8sU0FBUyxTQUFTLENBQzFEO0FBQ0QsUUFBTyxNQUFNLElBQUksVUFBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNxQjdCLFNBQWdCLFdBQVcsTUFBTSxTQUFTO0NBQ3hDLE1BQU0sUUFBUSxPQUFPLE1BQU0sU0FBUyxHQUFHO0FBQ3ZDLE9BQU0sU0FBUyxHQUFHLEdBQUcsR0FBRyxFQUFFO0FBQzFCLFFBQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDU1QsU0FBZ0IseUJBQXlCLFdBQVcsYUFBYSxTQUFTO0NBQ3hFLE1BQU0sQ0FBQyxZQUFZLGdCQUFnQixlQUNqQyxTQUFTLElBQ1QsV0FDQSxZQUNEO0NBRUQsTUFBTSxrQkFBa0IsV0FBVyxXQUFXO0NBQzlDLE1BQU0sb0JBQW9CLFdBQVcsYUFBYTtDQUVsRCxNQUFNLGlCQUNKLENBQUMsa0JBQWtCLGdDQUFnQyxnQkFBZ0I7Q0FDckUsTUFBTSxtQkFDSixDQUFDLG9CQUFvQixnQ0FBZ0Msa0JBQWtCO0FBS3pFLFFBQU8sS0FBSyxPQUFPLGlCQUFpQixvQkFBb0Isa0JBQWtCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMxQjVFLFNBQWdCLE9BQU8sT0FBTztBQUM1QixRQUNFLGlCQUFpQixRQUNoQixPQUFPLFVBQVUsWUFDaEIsT0FBTyxVQUFVLFNBQVMsS0FBSyxNQUFNLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDRmhELFNBQWdCLFFBQVEsTUFBTTtBQUM1QixRQUFPLEVBQUcsQ0FBQyxPQUFPLEtBQUssSUFBSSxPQUFPLFNBQVMsWUFBYSxNQUFNLENBQUMsT0FBTyxLQUFLLENBQUMifQ==
@@ -1,385 +0,0 @@
1
- import { t as format } from "./format-Bbrn2bgo.js";
2
- import { t as isValid } from "./isValid-C-HzKv4v.js";
3
- import { __esDecorate, __runInitializers } from "tslib";
4
- import { SbbElement } from "@sbb-esta/lyne-elements/core/base-elements.js";
5
- import { SbbLanguageController } from "@sbb-esta/lyne-elements/core/controllers.js";
6
- import { forceType } from "@sbb-esta/lyne-elements/core/decorators.js";
7
- import { boxSizingStyles } from "@sbb-esta/lyne-elements/core/styles.js";
8
- import { css, html, nothing } from "lit";
9
- import { defaultDateAdapter } from "@sbb-esta/lyne-elements/core/datetime.js";
10
- import { i18nTripDuration } from "@sbb-esta/lyne-elements/core/i18n.js";
11
- import { property } from "lit/decorators.js";
12
- import { durationToTime, removeTimezoneFromISOTimeString } from "./core/datetime.js";
13
- import "@sbb-esta/lyne-elements/divider.js";
14
- import "@sbb-esta/lyne-elements/screen-reader-only.js";
15
- import "@sbb-esta/lyne-elements/journey-header.js";
16
- import "./pearl-chain-time.js";
17
- //#region src/elements-experimental/journey-summary/journey-summary.scss?lit&inline
18
- var journey_summary_default = css`:host {
19
- display: block;
20
- }
21
-
22
- .sbb-journey-summary {
23
- --sbb-text-font-size: var(--sbb-text-font-size-s);
24
- font-family: var(--sbb-typo-font-family);
25
- font-weight: normal;
26
- line-height: var(--sbb-typo-line-height-text);
27
- letter-spacing: var(--sbb-typo-letter-spacing-text);
28
- font-size: var(--sbb-text-font-size);
29
- color: var(--sbb-color-4);
30
- display: flex;
31
- flex-direction: column;
32
- }
33
-
34
- .sbb-journey-summary__via-block {
35
- display: flex;
36
- }
37
-
38
- .sbb-journey-summary__vias {
39
- overflow: hidden;
40
- white-space: nowrap;
41
- text-overflow: ellipsis;
42
- margin-block: 0;
43
- padding-inline-start: var(--sbb-spacing-fixed-1x);
44
- }
45
-
46
- .sbb-journey-summary__date {
47
- margin-block-end: var(--sbb-spacing-fixed-2x);
48
- }
49
-
50
- .sbb-journey-summary__via {
51
- white-space: nowrap;
52
- overflow: hidden;
53
- text-overflow: ellipsis;
54
- }
55
-
56
- .sbb-journey-summary__divider {
57
- margin-block: var(--sbb-spacing-fixed-6x);
58
- }
59
-
60
- ul li {
61
- list-style: none;
62
- display: inline;
63
- }`;
64
- //#endregion
65
- //#region src/elements-experimental/journey-summary/journey-summary.component.ts
66
- /**
67
- * It displays journey's information.
68
- *
69
- * @slot content - Use this slot to add `sbb-button`s or other interactive elements.
70
- */
71
- var SbbJourneySummaryElement = (() => {
72
- let _classSuper = SbbElement;
73
- let _instanceExtraInitializers = [];
74
- let _trip_decorators;
75
- let _trip_initializers = [];
76
- let _trip_extraInitializers = [];
77
- let _tripBack_decorators;
78
- let _tripBack_initializers = [];
79
- let _tripBack_extraInitializers = [];
80
- let _roundTrip_decorators;
81
- let _roundTrip_initializers = [];
82
- let _roundTrip_extraInitializers = [];
83
- let _headerLevel_decorators;
84
- let _headerLevel_initializers = [];
85
- let _headerLevel_extraInitializers = [];
86
- let _disableAnimation_decorators;
87
- let _disableAnimation_initializers = [];
88
- let _disableAnimation_extraInitializers = [];
89
- let _a11yFootpath_decorators;
90
- let _a11yFootpath_initializers = [];
91
- let _a11yFootpath_extraInitializers = [];
92
- let _set_now_decorators;
93
- return class SbbJourneySummaryElement extends _classSuper {
94
- constructor() {
95
- super(...arguments);
96
- this.#trip_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _trip_initializers, null));
97
- this.#tripBack_accessor_storage = (__runInitializers(this, _trip_extraInitializers), __runInitializers(this, _tripBack_initializers, null));
98
- this.#roundTrip_accessor_storage = (__runInitializers(this, _tripBack_extraInitializers), __runInitializers(this, _roundTrip_initializers, false));
99
- this.#headerLevel_accessor_storage = (__runInitializers(this, _roundTrip_extraInitializers), __runInitializers(this, _headerLevel_initializers, "3"));
100
- this.#disableAnimation_accessor_storage = (__runInitializers(this, _headerLevel_extraInitializers), __runInitializers(this, _disableAnimation_initializers, false));
101
- this.#a11yFootpath_accessor_storage = (__runInitializers(this, _disableAnimation_extraInitializers), __runInitializers(this, _a11yFootpath_initializers, false));
102
- this._now = (__runInitializers(this, _a11yFootpath_extraInitializers), null);
103
- this._hasContentSlot = false;
104
- this._language = new SbbLanguageController(this);
105
- }
106
- static {
107
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
108
- _trip_decorators = [property({ type: Object })];
109
- _tripBack_decorators = [property({
110
- attribute: "trip-back",
111
- type: Object
112
- })];
113
- _roundTrip_decorators = [forceType(), property({
114
- attribute: "round-trip",
115
- type: Boolean
116
- })];
117
- _headerLevel_decorators = [property({ attribute: "header-level" })];
118
- _disableAnimation_decorators = [forceType(), property({
119
- attribute: "disable-animation",
120
- type: Boolean
121
- })];
122
- _a11yFootpath_decorators = [forceType(), property({
123
- attribute: "a11y-footpath",
124
- type: Boolean
125
- })];
126
- _set_now_decorators = [property()];
127
- __esDecorate(this, null, _trip_decorators, {
128
- kind: "accessor",
129
- name: "trip",
130
- static: false,
131
- private: false,
132
- access: {
133
- has: (obj) => "trip" in obj,
134
- get: (obj) => obj.trip,
135
- set: (obj, value) => {
136
- obj.trip = value;
137
- }
138
- },
139
- metadata: _metadata
140
- }, _trip_initializers, _trip_extraInitializers);
141
- __esDecorate(this, null, _tripBack_decorators, {
142
- kind: "accessor",
143
- name: "tripBack",
144
- static: false,
145
- private: false,
146
- access: {
147
- has: (obj) => "tripBack" in obj,
148
- get: (obj) => obj.tripBack,
149
- set: (obj, value) => {
150
- obj.tripBack = value;
151
- }
152
- },
153
- metadata: _metadata
154
- }, _tripBack_initializers, _tripBack_extraInitializers);
155
- __esDecorate(this, null, _roundTrip_decorators, {
156
- kind: "accessor",
157
- name: "roundTrip",
158
- static: false,
159
- private: false,
160
- access: {
161
- has: (obj) => "roundTrip" in obj,
162
- get: (obj) => obj.roundTrip,
163
- set: (obj, value) => {
164
- obj.roundTrip = value;
165
- }
166
- },
167
- metadata: _metadata
168
- }, _roundTrip_initializers, _roundTrip_extraInitializers);
169
- __esDecorate(this, null, _headerLevel_decorators, {
170
- kind: "accessor",
171
- name: "headerLevel",
172
- static: false,
173
- private: false,
174
- access: {
175
- has: (obj) => "headerLevel" in obj,
176
- get: (obj) => obj.headerLevel,
177
- set: (obj, value) => {
178
- obj.headerLevel = value;
179
- }
180
- },
181
- metadata: _metadata
182
- }, _headerLevel_initializers, _headerLevel_extraInitializers);
183
- __esDecorate(this, null, _disableAnimation_decorators, {
184
- kind: "accessor",
185
- name: "disableAnimation",
186
- static: false,
187
- private: false,
188
- access: {
189
- has: (obj) => "disableAnimation" in obj,
190
- get: (obj) => obj.disableAnimation,
191
- set: (obj, value) => {
192
- obj.disableAnimation = value;
193
- }
194
- },
195
- metadata: _metadata
196
- }, _disableAnimation_initializers, _disableAnimation_extraInitializers);
197
- __esDecorate(this, null, _a11yFootpath_decorators, {
198
- kind: "accessor",
199
- name: "a11yFootpath",
200
- static: false,
201
- private: false,
202
- access: {
203
- has: (obj) => "a11yFootpath" in obj,
204
- get: (obj) => obj.a11yFootpath,
205
- set: (obj, value) => {
206
- obj.a11yFootpath = value;
207
- }
208
- },
209
- metadata: _metadata
210
- }, _a11yFootpath_initializers, _a11yFootpath_extraInitializers);
211
- __esDecorate(this, null, _set_now_decorators, {
212
- kind: "setter",
213
- name: "now",
214
- static: false,
215
- private: false,
216
- access: {
217
- has: (obj) => "now" in obj,
218
- set: (obj, value) => {
219
- obj.now = value;
220
- }
221
- },
222
- metadata: _metadata
223
- }, null, _instanceExtraInitializers);
224
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
225
- enumerable: true,
226
- configurable: true,
227
- writable: true,
228
- value: _metadata
229
- });
230
- }
231
- static {
232
- this.elementName = "sbb-journey-summary";
233
- }
234
- static {
235
- this.styles = [boxSizingStyles, journey_summary_default];
236
- }
237
- #trip_accessor_storage;
238
- /** The trip prop */
239
- get trip() {
240
- return this.#trip_accessor_storage;
241
- }
242
- set trip(value) {
243
- this.#trip_accessor_storage = value;
244
- }
245
- #tripBack_accessor_storage;
246
- /** The tripBack prop */
247
- get tripBack() {
248
- return this.#tripBack_accessor_storage;
249
- }
250
- set tripBack(value) {
251
- this.#tripBack_accessor_storage = value;
252
- }
253
- #roundTrip_accessor_storage;
254
- /**
255
- * The RoundTrip prop. This prop controls if one or two arrows are displayed in the header.
256
- */
257
- get roundTrip() {
258
- return this.#roundTrip_accessor_storage;
259
- }
260
- set roundTrip(value) {
261
- this.#roundTrip_accessor_storage = value;
262
- }
263
- #headerLevel_accessor_storage;
264
- /** Heading level of the journey header element (e.g. h1-h6). */
265
- get headerLevel() {
266
- return this.#headerLevel_accessor_storage;
267
- }
268
- set headerLevel(value) {
269
- this.#headerLevel_accessor_storage = value;
270
- }
271
- #disableAnimation_accessor_storage;
272
- /**
273
- * Per default, the current location has a pulsating animation. You can
274
- * disable the animation with this property.
275
- */
276
- get disableAnimation() {
277
- return this.#disableAnimation_accessor_storage;
278
- }
279
- set disableAnimation(value) {
280
- this.#disableAnimation_accessor_storage = value;
281
- }
282
- #a11yFootpath_accessor_storage;
283
- /**
284
- * The Footpath attribute for rendering different icons
285
- * true: render a11y-icon
286
- * false: render walk-icon
287
- * default: render walk-icon
288
- */
289
- get a11yFootpath() {
290
- return this.#a11yFootpath_accessor_storage;
291
- }
292
- set a11yFootpath(value) {
293
- this.#a11yFootpath_accessor_storage = value;
294
- }
295
- /**
296
- * A configured date which acts as the current date instead of the real current date.
297
- * Only recommended for testing purposes.
298
- */
299
- set now(value) {
300
- this._now = defaultDateAdapter.getValidDateOrNull(defaultDateAdapter.deserialize(value));
301
- }
302
- get now() {
303
- return this._now ?? /* @__PURE__ */ new Date();
304
- }
305
- connectedCallback() {
306
- super.connectedCallback();
307
- this._hasContentSlot = Boolean(this.querySelector?.("[slot=\"content\"]"));
308
- }
309
- /** renders the date of the journey or if it is the current or next day */
310
- _renderJourneyStart(departureTime, duration) {
311
- const dateAdapter = defaultDateAdapter;
312
- const durationObj = duration ? durationToTime(duration, this._language.current) : null;
313
- if (isValid(departureTime)) return html`
314
- <time datetime=${format(departureTime, "d") + " " + format(departureTime, "M")}>
315
- ${dateAdapter.format(departureTime).replace(",", ".")}</time
316
- >${duration && duration > 0 ? html`,<time>
317
- <sbb-screen-reader-only>
318
- ${i18nTripDuration[this._language.current]} ${durationObj.long}
319
- </sbb-screen-reader-only>
320
- <span aria-hidden="true">${durationObj.short}</span>
321
- </time>` : nothing}
322
- `;
323
- }
324
- _renderJourneyVias(vias) {
325
- const slicedVias = vias.slice(0, 5);
326
- return html`
327
- <div class="sbb-journey-summary__via-block">
328
- <span class="sbb-journey-summary__via-text">Via</span>
329
- <ul class="sbb-journey-summary__vias" role=${vias.length <= 1 ? "presentation" : nothing}>
330
- ${slicedVias.map((via, index) => html`<li class="sbb-journey-summary__via">
331
- ${via}${index !== slicedVias.length - 1 && index < 4 ? html`<span>,</span>` : nothing}
332
- </li>`)}
333
- </ul>
334
- </div>
335
- `;
336
- }
337
- _renderJourneyInformation(trip) {
338
- const { vias, duration, departureWalk, departure, arrivalWalk, arrival, legs } = trip || {};
339
- return html`
340
- <div>
341
- ${vias && vias.length > 0 ? this._renderJourneyVias(vias) : nothing}
342
- <div class="sbb-journey-summary__date">
343
- ${this._renderJourneyStart(removeTimezoneFromISOTimeString(departure), duration)}
344
- </div>
345
- <sbb-pearl-chain-time
346
- .arrivalTime=${arrival}
347
- .departureTime=${departure}
348
- .departureWalk=${departureWalk}
349
- .arrivalWalk=${arrivalWalk}
350
- .legs=${legs}
351
- .disableAnimation=${this.disableAnimation}
352
- .a11yFootpath=${this.a11yFootpath}
353
- .now=${this.now}
354
- ></sbb-pearl-chain-time>
355
- </div>
356
- `;
357
- }
358
- render() {
359
- const { origin, destination } = this.trip || {};
360
- return html`
361
- <div class="sbb-journey-summary">
362
- ${origin ? html`<sbb-journey-header
363
- size="l"
364
- .level=${this.headerLevel || nothing}
365
- .origin=${origin}
366
- .destination=${destination}
367
- .roundTrip=${this.roundTrip ?? nothing}
368
- ></sbb-journey-header>` : nothing}
369
- ${this._renderJourneyInformation(this.trip)}
370
- ${this.tripBack ? html`<div>
371
- <sbb-divider class="sbb-journey-summary__divider"></sbb-divider>
372
- ${this._renderJourneyInformation(this.tripBack)}
373
- </div>` : nothing}
374
- ${this._hasContentSlot ? html` <div class="sbb-journey-summary__slot">
375
- <slot name="content"></slot>
376
- </div>` : nothing}
377
- </div>
378
- `;
379
- }
380
- };
381
- })();
382
- //#endregion
383
- export { SbbJourneySummaryElement as t };
384
-
385
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam91cm5leS1zdW1tYXJ5LmNvbXBvbmVudC11R2hadkE0cC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL2pvdXJuZXktc3VtbWFyeS9qb3VybmV5LXN1bW1hcnkuc2Nzcz9saXQmaW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9qb3VybmV5LXN1bW1hcnkvam91cm5leS1zdW1tYXJ5LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2JiLWpvdXJuZXktc3VtbWFyeSB7XG4gIEBpbmNsdWRlIHNiYi50ZXh0LXMtLXJlZ3VsYXI7XG5cbiAgY29sb3I6IHZhcigtLXNiYi1jb2xvci00KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnNiYi1qb3VybmV5LXN1bW1hcnlfX3ZpYS1ibG9jayB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5zYmItam91cm5leS1zdW1tYXJ5X192aWFzIHtcbiAgQGluY2x1ZGUgc2JiLmVsbGlwc2lzO1xuXG4gIG1hcmdpbi1ibG9jazogMDtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbn1cblxuLnNiYi1qb3VybmV5LXN1bW1hcnlfX2RhdGUge1xuICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCk7XG59XG5cbi5zYmItam91cm5leS1zdW1tYXJ5X192aWEge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnNiYi1qb3VybmV5LXN1bW1hcnlfX2RpdmlkZXIge1xuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTZ4KTtcbn1cblxudWwgbGkge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4iLCJpbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZGVmYXVsdERhdGVBZGFwdGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kYXRldGltZS5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaTE4blRyaXBEdXJhdGlvbiB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy90aXRsZS5qcyc7XG5pbXBvcnQgeyBmb3JtYXQsIGlzVmFsaWQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBkdXJhdGlvblRvVGltZSwgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyB9IGZyb20gJy4uL2NvcmUvZGF0ZXRpbWUudHMnO1xuaW1wb3J0IHR5cGUgeyBMZWcgfSBmcm9tICcuLi9jb3JlL3RpbWV0YWJsZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2pvdXJuZXktc3VtbWFyeS5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2RpdmlkZXIuanMnO1xuaW1wb3J0ICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuaW1wb3J0ICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9qb3VybmV5LWhlYWRlci5qcyc7XG5pbXBvcnQgJy4uL3BlYXJsLWNoYWluLXRpbWUudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyZmFjZVNiYkpvdXJuZXlTdW1tYXJ5QXR0cmlidXRlcyB7XG4gIGxlZ3M6IExlZ1tdO1xuICB2aWFzPzogc3RyaW5nW107XG4gIG9yaWdpbjogc3RyaW5nO1xuICBkZXN0aW5hdGlvbjogc3RyaW5nO1xuICBhcnJpdmFsV2Fsaz86IG51bWJlcjtcbiAgZGVwYXJ0dXJlOiBzdHJpbmc7XG4gIGFycml2YWw6IHN0cmluZztcbiAgZGVwYXJ0dXJlV2Fsaz86IG51bWJlcjtcbiAgZHVyYXRpb24/OiBudW1iZXI7XG59XG5cbi8qKlxuICogSXQgZGlzcGxheXMgam91cm5leSdzIGluZm9ybWF0aW9uLlxuICpcbiAqIEBzbG90IGNvbnRlbnQgLSBVc2UgdGhpcyBzbG90IHRvIGFkZCBgc2JiLWJ1dHRvbmBzIG9yIG90aGVyIGludGVyYWN0aXZlIGVsZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2JiSm91cm5leVN1bW1hcnlFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItam91cm5leS1zdW1tYXJ5JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgc3R5bGVdO1xuXG4gIC8qKiAgVGhlIHRyaXAgcHJvcCAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSkgcHVibGljIGFjY2Vzc29yIHRyaXA6IEludGVyZmFjZVNiYkpvdXJuZXlTdW1tYXJ5QXR0cmlidXRlcyA9IG51bGwhO1xuXG4gIC8qKiAgVGhlIHRyaXBCYWNrIHByb3AgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndHJpcC1iYWNrJywgdHlwZTogT2JqZWN0IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmlwQmFjazogSW50ZXJmYWNlU2JiSm91cm5leVN1bW1hcnlBdHRyaWJ1dGVzID0gbnVsbCE7XG5cbiAgLyoqXG4gICAqIFRoZSBSb3VuZFRyaXAgcHJvcC4gVGhpcyBwcm9wIGNvbnRyb2xzIGlmIG9uZSBvciB0d28gYXJyb3dzIGFyZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlci5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdyb3VuZC10cmlwJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igcm91bmRUcmlwOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEhlYWRpbmcgbGV2ZWwgb2YgdGhlIGpvdXJuZXkgaGVhZGVyIGVsZW1lbnQgKGUuZy4gaDEtaDYpLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoZWFkZXItbGV2ZWwnIH0pIHB1YmxpYyBhY2Nlc3NvciBoZWFkZXJMZXZlbDogU2JiVGl0bGVMZXZlbCA9ICczJztcblxuICAvKipcbiAgICogUGVyIGRlZmF1bHQsIHRoZSBjdXJyZW50IGxvY2F0aW9uIGhhcyBhIHB1bHNhdGluZyBhbmltYXRpb24uIFlvdSBjYW5cbiAgICogZGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdpdGggdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlLWFuaW1hdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIEZvb3RwYXRoIGF0dHJpYnV0ZSBmb3IgcmVuZGVyaW5nIGRpZmZlcmVudCBpY29uc1xuICAgKiB0cnVlOiByZW5kZXIgYTExeS1pY29uXG4gICAqIGZhbHNlOiByZW5kZXIgd2Fsay1pY29uXG4gICAqIGRlZmF1bHQ6IHJlbmRlciB3YWxrLWljb25cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhMTF5LWZvb3RwYXRoJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYTExeUZvb3RwYXRoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgY29uZmlndXJlZCBkYXRlIHdoaWNoIGFjdHMgYXMgdGhlIGN1cnJlbnQgZGF0ZSBpbnN0ZWFkIG9mIHRoZSByZWFsIGN1cnJlbnQgZGF0ZS5cbiAgICogT25seSByZWNvbW1lbmRlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgbm93KHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbm93ID0gZGVmYXVsdERhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChkZWZhdWx0RGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbm93ID8/IG5ldyBEYXRlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfbm93OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfaGFzQ29udGVudFNsb3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2hhc0NvbnRlbnRTbG90ID0gQm9vbGVhbih0aGlzLnF1ZXJ5U2VsZWN0b3I/LignW3Nsb3Q9XCJjb250ZW50XCJdJykpO1xuICB9XG5cbiAgLyoqICByZW5kZXJzIHRoZSBkYXRlIG9mIHRoZSBqb3VybmV5IG9yIGlmIGl0IGlzIHRoZSBjdXJyZW50IG9yIG5leHQgZGF5ICovXG4gIHByaXZhdGUgX3JlbmRlckpvdXJuZXlTdGFydChcbiAgICBkZXBhcnR1cmVUaW1lOiBEYXRlIHwgdW5kZWZpbmVkLFxuICAgIGR1cmF0aW9uOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICk6IFRlbXBsYXRlUmVzdWx0IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkYXRlQWRhcHRlciA9IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgICBjb25zdCBkdXJhdGlvbk9iaiA9IGR1cmF0aW9uID8gZHVyYXRpb25Ub1RpbWUoZHVyYXRpb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpIDogbnVsbDtcblxuICAgIGlmIChpc1ZhbGlkKGRlcGFydHVyZVRpbWUpKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHRpbWUgZGF0ZXRpbWU9JHtmb3JtYXQoZGVwYXJ0dXJlVGltZSEsICdkJykgKyAnICcgKyBmb3JtYXQoZGVwYXJ0dXJlVGltZSEsICdNJyl9PlxuICAgICAgICAgICR7ZGF0ZUFkYXB0ZXIuZm9ybWF0KGRlcGFydHVyZVRpbWUpLnJlcGxhY2UoJywnLCAnLicpfTwvdGltZVxuICAgICAgICA+JHtkdXJhdGlvbiAmJiBkdXJhdGlvbiA+IDBcbiAgICAgICAgICA/IGh0bWxgLDx0aW1lPlxuICAgICAgICAgICAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgICAgICAgICAgICAgJHtpMThuVHJpcER1cmF0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2R1cmF0aW9uT2JqIS5sb25nfVxuICAgICAgICAgICAgICAgIDwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4ke2R1cmF0aW9uT2JqIS5zaG9ydH08L3NwYW4+XG4gICAgICAgICAgICAgIDwvdGltZT5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgYDtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVySm91cm5leVZpYXModmlhczogc3RyaW5nW10pOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3Qgc2xpY2VkVmlhcyA9IHZpYXMuc2xpY2UoMCwgNSk7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fdmlhLWJsb2NrXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fdmlhLXRleHRcIj5WaWE8L3NwYW4+XG4gICAgICAgIDx1bCBjbGFzcz1cInNiYi1qb3VybmV5LXN1bW1hcnlfX3ZpYXNcIiByb2xlPSR7dmlhcy5sZW5ndGggPD0gMSA/ICdwcmVzZW50YXRpb24nIDogbm90aGluZ30+XG4gICAgICAgICAgJHtzbGljZWRWaWFzLm1hcChcbiAgICAgICAgICAgICh2aWEsIGluZGV4KSA9PlxuICAgICAgICAgICAgICBodG1sYDxsaSBjbGFzcz1cInNiYi1qb3VybmV5LXN1bW1hcnlfX3ZpYVwiPlxuICAgICAgICAgICAgICAgICR7dmlhfSR7aW5kZXggIT09IHNsaWNlZFZpYXMubGVuZ3RoIC0gMSAmJiBpbmRleCA8IDRcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3Bhbj4sPC9zcGFuPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgPC9saT5gLFxuICAgICAgICAgICl9XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVySm91cm5leUluZm9ybWF0aW9uKHRyaXA6IEludGVyZmFjZVNiYkpvdXJuZXlTdW1tYXJ5QXR0cmlidXRlcyk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCB7IHZpYXMsIGR1cmF0aW9uLCBkZXBhcnR1cmVXYWxrLCBkZXBhcnR1cmUsIGFycml2YWxXYWxrLCBhcnJpdmFsLCBsZWdzIH0gPSB0cmlwIHx8IHt9O1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2PlxuICAgICAgICAke3ZpYXMgJiYgdmlhcy5sZW5ndGggPiAwID8gdGhpcy5fcmVuZGVySm91cm5leVZpYXModmlhcykgOiBub3RoaW5nfVxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fZGF0ZVwiPlxuICAgICAgICAgICR7dGhpcy5fcmVuZGVySm91cm5leVN0YXJ0KHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcoZGVwYXJ0dXJlKSwgZHVyYXRpb24pfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNiYi1wZWFybC1jaGFpbi10aW1lXG4gICAgICAgICAgLmFycml2YWxUaW1lPSR7YXJyaXZhbH1cbiAgICAgICAgICAuZGVwYXJ0dXJlVGltZT0ke2RlcGFydHVyZX1cbiAgICAgICAgICAuZGVwYXJ0dXJlV2Fsaz0ke2RlcGFydHVyZVdhbGt9XG4gICAgICAgICAgLmFycml2YWxXYWxrPSR7YXJyaXZhbFdhbGt9XG4gICAgICAgICAgLmxlZ3M9JHtsZWdzfVxuICAgICAgICAgIC5kaXNhYmxlQW5pbWF0aW9uPSR7dGhpcy5kaXNhYmxlQW5pbWF0aW9ufVxuICAgICAgICAgIC5hMTF5Rm9vdHBhdGg9JHt0aGlzLmExMXlGb290cGF0aH1cbiAgICAgICAgICAubm93PSR7dGhpcy5ub3d9XG4gICAgICAgID48L3NiYi1wZWFybC1jaGFpbi10aW1lPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IHsgb3JpZ2luLCBkZXN0aW5hdGlvbiB9ID0gdGhpcy50cmlwIHx8IHt9O1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1qb3VybmV5LXN1bW1hcnlcIj5cbiAgICAgICAgJHtvcmlnaW5cbiAgICAgICAgICA/IGh0bWxgPHNiYi1qb3VybmV5LWhlYWRlclxuICAgICAgICAgICAgICBzaXplPVwibFwiXG4gICAgICAgICAgICAgIC5sZXZlbD0ke3RoaXMuaGVhZGVyTGV2ZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgLm9yaWdpbj0ke29yaWdpbn1cbiAgICAgICAgICAgICAgLmRlc3RpbmF0aW9uPSR7ZGVzdGluYXRpb259XG4gICAgICAgICAgICAgIC5yb3VuZFRyaXA9JHt0aGlzLnJvdW5kVHJpcCA/PyBub3RoaW5nfVxuICAgICAgICAgICAgPjwvc2JiLWpvdXJuZXktaGVhZGVyPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICR7dGhpcy5fcmVuZGVySm91cm5leUluZm9ybWF0aW9uKHRoaXMudHJpcCl9XG4gICAgICAgICR7dGhpcy50cmlwQmFja1xuICAgICAgICAgID8gaHRtbGA8ZGl2PlxuICAgICAgICAgICAgICA8c2JiLWRpdmlkZXIgY2xhc3M9XCJzYmItam91cm5leS1zdW1tYXJ5X19kaXZpZGVyXCI+PC9zYmItZGl2aWRlcj5cbiAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJKb3VybmV5SW5mb3JtYXRpb24odGhpcy50cmlwQmFjayl9XG4gICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAke3RoaXMuX2hhc0NvbnRlbnRTbG90XG4gICAgICAgICAgPyBodG1sYCA8ZGl2IGNsYXNzPVwic2JiLWpvdXJuZXktc3VtbWFyeV9fc2xvdFwiPlxuICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwiY29udGVudFwiPjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItam91cm5leS1zdW1tYXJ5JzogU2JiSm91cm5leVN1bW1hcnlFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUN1Q2Esa0NBQXdCO21CQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Y0FBakMsaUNBQWlDLFlBQVU7OztBQUtWLFNBQUEseUJBTGpDLGtCQUFBLE1BQUEsMkJBQXdCLEVBQUEsa0JBQUEsTUFBQSxvQkFLc0QsS0FBSztBQUk5RSxTQUFBLDZCQUFBLGtCQUFBLE1BQUEsd0JBQUEsRUFBQSxrQkFBQSxNQUFBLHdCQUFpRCxLQUFLO0FBT3RELFNBQUEsOEJBQUEsa0JBQUEsTUFBQSw0QkFBQSxFQUFBLGtCQUFBLE1BQUEseUJBQXFCLE1BQUs7QUFHZSxTQUFBLGdDQUFBLGtCQUFBLE1BQUEsNkJBQUEsRUFBQSxrQkFBQSxNQUFBLDJCQUE2QixJQUFHO0FBUXpFLFNBQUEscUNBQUEsa0JBQUEsTUFBQSwrQkFBQSxFQUFBLGtCQUFBLE1BQUEsZ0NBQTRCLE1BQUs7QUFVakMsU0FBQSxpQ0FBQSxrQkFBQSxNQUFBLG9DQUFBLEVBQUEsa0JBQUEsTUFBQSw0QkFBd0IsTUFBSztBQWFyQyxRQUFBLFFBQUksa0JBQUEsTUFBQSxnQ0FBQSxFQUFnQjtBQUVwQixRQUFBLGtCQUEyQjtBQUMzQixRQUFBLFlBQVksSUFBSSxzQkFBc0IsS0FB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