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

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 (199) hide show
  1. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +65 -76
  2. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +72 -52
  3. package/autocomplete-grid/autocomplete-grid-button.js +3 -6
  4. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +2 -17
  5. package/autocomplete-grid/autocomplete-grid-cell.js +4 -7
  6. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +20 -21
  7. package/autocomplete-grid/autocomplete-grid-optgroup.js +3 -6
  8. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +2 -33
  9. package/autocomplete-grid/autocomplete-grid-option.js +4 -9
  10. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +2 -22
  11. package/autocomplete-grid/autocomplete-grid-row.js +4 -7
  12. package/autocomplete-grid/autocomplete-grid.js +3 -6
  13. package/autocomplete-grid-cell.component-Dak9wlBr.js +24 -0
  14. package/autocomplete-grid-option.component-DNRFHOwc.js +37 -0
  15. package/autocomplete-grid-row.component-DBHZQ0GQ.js +27 -0
  16. package/autocomplete-grid.js +9 -21
  17. package/autocomplete-grid.pure.js +7 -15
  18. package/core/datetime/date-helper.js +2 -191
  19. package/core/datetime.js +2 -5
  20. package/core/timetable/access-leg-helper.js +76 -71
  21. package/core/timetable/timetable-helper.js +9 -11
  22. package/core/timetable/timetable-properties.js +0 -1
  23. package/core/timetable.js +3 -7
  24. package/date-helper-CGproP5d.js +185 -0
  25. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +114 -122
  26. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +92 -70
  27. package/development/autocomplete-grid/autocomplete-grid-button.js +6 -4
  28. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +2 -29
  29. package/development/autocomplete-grid/autocomplete-grid-cell.js +7 -5
  30. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +27 -22
  31. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +6 -4
  32. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +2 -109
  33. package/development/autocomplete-grid/autocomplete-grid-option.js +7 -7
  34. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +2 -91
  35. package/development/autocomplete-grid/autocomplete-grid-row.js +7 -5
  36. package/development/autocomplete-grid/autocomplete-grid.js +6 -4
  37. package/development/autocomplete-grid-cell.component-BBvM4o2H.js +42 -0
  38. package/development/autocomplete-grid-option.component-QzfM5eIE.js +123 -0
  39. package/development/autocomplete-grid-row.component-H8sCTCkT.js +104 -0
  40. package/development/autocomplete-grid.js +10 -14
  41. package/development/autocomplete-grid.pure.js +4 -13
  42. package/development/core/datetime/date-helper.js +2 -285
  43. package/development/core/datetime.js +2 -6
  44. package/development/core/timetable/access-leg-helper.js +104 -82
  45. package/development/core/timetable/timetable-helper.js +16 -17
  46. package/development/core/timetable/timetable-properties.js +0 -2
  47. package/development/core/timetable.js +3 -8
  48. package/development/date-helper-8_Y-PuHh.js +520 -0
  49. package/development/differenceInMinutes-DN_1Rk3O.js +110 -0
  50. package/development/format-Bbrn2bgo.js +1848 -0
  51. package/development/isValid-C-HzKv4v.js +178 -0
  52. package/development/journey-summary/journey-summary.component.js +2 -288
  53. package/development/journey-summary.component-uGhZvA4p.js +385 -0
  54. package/development/journey-summary.js +8 -5
  55. package/development/journey-summary.pure.js +2 -5
  56. package/development/pearl-chain/pearl-chain.component.js +2 -634
  57. package/development/pearl-chain-time/pearl-chain-time.component.js +2 -306
  58. package/development/pearl-chain-time.component-B8mayTWD.js +415 -0
  59. package/development/pearl-chain-time.js +8 -5
  60. package/development/pearl-chain-time.pure.js +2 -5
  61. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +2 -28
  62. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +2 -393
  63. package/development/pearl-chain-vertical-item.component-BDzbcIaf.js +435 -0
  64. package/development/pearl-chain-vertical-item.js +8 -5
  65. package/development/pearl-chain-vertical-item.pure.js +2 -5
  66. package/development/pearl-chain-vertical.component-CswE7b3M.js +39 -0
  67. package/development/pearl-chain-vertical.js +8 -5
  68. package/development/pearl-chain-vertical.pure.js +2 -5
  69. package/development/pearl-chain.component-wpsTvoSe.js +704 -0
  70. package/development/pearl-chain.js +8 -5
  71. package/development/pearl-chain.pure.js +2 -5
  72. package/development/seat-reservation/common/mapper/icon-mapper.js +168 -71
  73. package/development/seat-reservation/common/mapper/mapper.js +153 -122
  74. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +570 -559
  75. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +992 -972
  76. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.js +20334 -20367
  77. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1731 -1738
  78. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9741 -9782
  79. package/development/seat-reservation/common/mapper.js +1 -8
  80. package/development/seat-reservation/common/svgs.js +2 -46
  81. package/development/seat-reservation/common/translations/i18n.js +1118 -900
  82. package/development/seat-reservation/common/translations.js +1 -4
  83. package/development/seat-reservation/common/types.js +0 -2
  84. package/development/seat-reservation/common.js +7 -11
  85. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +1305 -1230
  86. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +2 -859
  87. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +2 -106
  88. package/development/seat-reservation/seat-reservation-area.js +7 -5
  89. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +35 -34
  90. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +2 -162
  91. package/development/seat-reservation/seat-reservation-graphic.js +7 -5
  92. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +2 -713
  93. package/development/seat-reservation/seat-reservation-navigation-coach.js +7 -5
  94. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +2 -131
  95. package/development/seat-reservation/seat-reservation-navigation-services.js +7 -5
  96. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -601
  97. package/development/seat-reservation/seat-reservation-place-control.js +7 -5
  98. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +2 -22
  99. package/development/seat-reservation/seat-reservation-scoped.js +7 -5
  100. package/development/seat-reservation/seat-reservation.js +7 -6
  101. package/development/seat-reservation-area.component-BK92ZtFo.js +138 -0
  102. package/development/seat-reservation-graphic.component-cUnsHh5x.js +193 -0
  103. package/development/seat-reservation-navigation-coach.component-D6Bglus8.js +828 -0
  104. package/development/seat-reservation-navigation-services.component-DYJ6Ddkg.js +179 -0
  105. package/development/seat-reservation-place-control.component-Bg9evKBW.js +726 -0
  106. package/development/seat-reservation-scoped.component-DRQ_I702.js +31 -0
  107. package/development/seat-reservation.component-Cq_aJKR0.js +818 -0
  108. package/development/seat-reservation.js +15 -28
  109. package/development/seat-reservation.pure.js +10 -28
  110. package/development/svgs-C3JMWR26.js +28 -0
  111. package/development/timetable-duration/timetable-duration.component.js +2 -108
  112. package/development/timetable-duration.component-DI0lET17.js +125 -0
  113. package/development/timetable-duration.js +8 -5
  114. package/development/timetable-duration.pure.js +2 -5
  115. package/development/timetable-row/timetable-row.component.js +2 -781
  116. package/development/timetable-row.component-CAED6Zwc.js +932 -0
  117. package/development/timetable-row.js +8 -13
  118. package/development/timetable-row.pure.js +2 -12
  119. package/development/toDate-Biiv3kyf.js +150 -0
  120. package/differenceInMinutes-Dr9gRqtu.js +27 -0
  121. package/format-CM5exOsN.js +1103 -0
  122. package/isValid-B9oVW3lA.js +36 -0
  123. package/journey-summary/journey-summary.component.js +2 -194
  124. package/journey-summary.component-Cq_4kaOp.js +264 -0
  125. package/journey-summary.js +5 -4
  126. package/journey-summary.pure.js +2 -4
  127. package/package.json +2 -2
  128. package/pearl-chain/pearl-chain.component.js +2 -165
  129. package/pearl-chain-time/pearl-chain-time.component.js +2 -157
  130. package/pearl-chain-time.component-DGDW5S1c.js +239 -0
  131. package/pearl-chain-time.js +5 -4
  132. package/pearl-chain-time.pure.js +2 -4
  133. package/pearl-chain-vertical/pearl-chain-vertical.component.js +2 -17
  134. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +2 -77
  135. package/pearl-chain-vertical-item.component-G22bWhLU.js +108 -0
  136. package/pearl-chain-vertical-item.js +5 -4
  137. package/pearl-chain-vertical-item.pure.js +2 -4
  138. package/pearl-chain-vertical.component-CXIDT5RD.js +21 -0
  139. package/pearl-chain-vertical.js +5 -4
  140. package/pearl-chain-vertical.pure.js +2 -4
  141. package/pearl-chain.component-DmjkVIva.js +194 -0
  142. package/pearl-chain.js +5 -4
  143. package/pearl-chain.pure.js +2 -4
  144. package/seat-reservation/common/mapper/icon-mapper.js +71 -71
  145. package/seat-reservation/common/mapper/mapper.js +95 -89
  146. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +568 -558
  147. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +989 -970
  148. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.js +20332 -20366
  149. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1729 -1737
  150. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9739 -9781
  151. package/seat-reservation/common/mapper.js +3 -9
  152. package/seat-reservation/common/svgs.js +2 -243
  153. package/seat-reservation/common/translations/i18n.js +1084 -891
  154. package/seat-reservation/common/translations.js +2 -4
  155. package/seat-reservation/common/types.js +0 -1
  156. package/seat-reservation/common.js +9 -15
  157. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +832 -810
  158. package/seat-reservation/seat-reservation/seat-reservation.component.js +2 -420
  159. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +2 -51
  160. package/seat-reservation/seat-reservation-area.js +4 -7
  161. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +68 -71
  162. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +2 -75
  163. package/seat-reservation/seat-reservation-graphic.js +4 -7
  164. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +2 -234
  165. package/seat-reservation/seat-reservation-navigation-coach.js +4 -7
  166. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +2 -85
  167. package/seat-reservation/seat-reservation-navigation-services.js +4 -7
  168. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -203
  169. package/seat-reservation/seat-reservation-place-control.js +4 -7
  170. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +2 -13
  171. package/seat-reservation/seat-reservation-scoped.js +4 -7
  172. package/seat-reservation/seat-reservation.js +5 -9
  173. package/seat-reservation-area.component-n-9rGn_y.js +75 -0
  174. package/seat-reservation-graphic.component-YTXRmKt0.js +102 -0
  175. package/seat-reservation-navigation-coach.component-YJ0vaYmO.js +333 -0
  176. package/seat-reservation-navigation-services.component-C3xnLJg2.js +127 -0
  177. package/seat-reservation-place-control.component-DmBAfM6K.js +322 -0
  178. package/seat-reservation-scoped.component-DPkz6u17.js +17 -0
  179. package/seat-reservation.component-C_anMkgw.js +364 -0
  180. package/seat-reservation.js +17 -39
  181. package/seat-reservation.pure.js +15 -32
  182. package/svgs-D9arBcqr.js +26 -0
  183. package/timetable-duration/timetable-duration.component.js +2 -57
  184. package/timetable-duration.component-DCu8Phts.js +65 -0
  185. package/timetable-duration.js +5 -4
  186. package/timetable-duration.pure.js +2 -4
  187. package/timetable-row/timetable-row.component.js +2 -427
  188. package/timetable-row.component-BVRCB3xK.js +559 -0
  189. package/timetable-row.js +6 -13
  190. package/timetable-row.pure.js +2 -11
  191. package/toDate-p-Tpkb7t.js +16 -0
  192. package/development/differenceInMinutes-B0dawX-5.js +0 -26
  193. package/development/format-BMkeaqaF.js +0 -1433
  194. package/development/isValid-BYRch7pV.js +0 -53
  195. package/development/toDate-BWb6Z1JD.js +0 -24
  196. package/differenceInMinutes-COvvdYsJ.js +0 -23
  197. package/format-CmKROkbc.js +0 -1186
  198. package/isValid-m3_OsPaB.js +0 -45
  199. package/toDate-Bw2KTWeq.js +0 -15
@@ -0,0 +1,179 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { SbbElement } from "@sbb-esta/lyne-elements/core/base-elements.js";
3
+ import { SbbLanguageController } from "@sbb-esta/lyne-elements/core/controllers.js";
4
+ import { forceType } from "@sbb-esta/lyne-elements/core/decorators.js";
5
+ import { boxSizingStyles } from "@sbb-esta/lyne-elements/core/styles.js";
6
+ import { css, html, nothing } from "lit";
7
+ import { property } from "lit/decorators.js";
8
+ import "@sbb-esta/lyne-elements/screen-reader-only.js";
9
+ import { getI18nSeatReservation } from "./seat-reservation/common/translations.js";
10
+ import { SbbSeatReservationGraphicElement } from "./seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js";
11
+ //#region src/elements-experimental/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.scss?lit&inline
12
+ var seat_reservation_navigation_services_default = css`.sbb-sr-navigation__signs {
13
+ display: flex;
14
+ flex-direction: row;
15
+ justify-content: center;
16
+ column-gap: var(--sbb-spacing-fixed-2x);
17
+ overflow: hidden;
18
+ line-height: normal;
19
+ color: var(--sbb-color-granite);
20
+ color: light-dark(var(--sbb-color-granite), var(--sbb-color-graphite));
21
+ }
22
+ .sbb-sr-navigation__signs:has(:nth-child(n+3 of .auto-width)):has([name^=SILENCE], [name^=BUSINESS]) {
23
+ column-gap: calc(6 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
24
+ }
25
+ .sbb-sr-navigation__signs:has(:nth-child(n+3 of .auto-width)):has([name^=SILENCE], [name^=BUSINESS]):has([name^=BICYCLE]) {
26
+ column-gap: calc(3 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
27
+ }
28
+
29
+ :host([vertical]) .sbb-sr-navigation__signs {
30
+ flex-direction: column;
31
+ height: 100%;
32
+ }`;
33
+ //#endregion
34
+ //#region src/elements-experimental/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.ts
35
+ SbbSeatReservationGraphicElement.define();
36
+ /**
37
+ * Component displays the available service icons of one coach.
38
+ *
39
+ */
40
+ var SbbSeatReservationNavigationServicesElement = (() => {
41
+ let _classSuper = SbbElement;
42
+ let _propertyIds_decorators;
43
+ let _propertyIds_initializers = [];
44
+ let _propertyIds_extraInitializers = [];
45
+ let _vertical_decorators;
46
+ let _vertical_initializers = [];
47
+ let _vertical_extraInitializers = [];
48
+ let _showTitleInfo_decorators;
49
+ let _showTitleInfo_initializers = [];
50
+ let _showTitleInfo_extraInitializers = [];
51
+ return class SbbSeatReservationNavigationServicesElement extends _classSuper {
52
+ constructor() {
53
+ super(...arguments);
54
+ this.#propertyIds_accessor_storage = __runInitializers(this, _propertyIds_initializers, []);
55
+ this.#vertical_accessor_storage = (__runInitializers(this, _propertyIds_extraInitializers), __runInitializers(this, _vertical_initializers, false));
56
+ this.#showTitleInfo_accessor_storage = (__runInitializers(this, _vertical_extraInitializers), __runInitializers(this, _showTitleInfo_initializers, false));
57
+ this._language = (__runInitializers(this, _showTitleInfo_extraInitializers), new SbbLanguageController(this));
58
+ }
59
+ static {
60
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
61
+ _propertyIds_decorators = [property({
62
+ attribute: "property-ids",
63
+ type: Array
64
+ })];
65
+ _vertical_decorators = [forceType(), property({
66
+ type: Boolean,
67
+ reflect: true,
68
+ useDefault: true
69
+ })];
70
+ _showTitleInfo_decorators = [forceType(), property({ type: Boolean })];
71
+ __esDecorate(this, null, _propertyIds_decorators, {
72
+ kind: "accessor",
73
+ name: "propertyIds",
74
+ static: false,
75
+ private: false,
76
+ access: {
77
+ has: (obj) => "propertyIds" in obj,
78
+ get: (obj) => obj.propertyIds,
79
+ set: (obj, value) => {
80
+ obj.propertyIds = value;
81
+ }
82
+ },
83
+ metadata: _metadata
84
+ }, _propertyIds_initializers, _propertyIds_extraInitializers);
85
+ __esDecorate(this, null, _vertical_decorators, {
86
+ kind: "accessor",
87
+ name: "vertical",
88
+ static: false,
89
+ private: false,
90
+ access: {
91
+ has: (obj) => "vertical" in obj,
92
+ get: (obj) => obj.vertical,
93
+ set: (obj, value) => {
94
+ obj.vertical = value;
95
+ }
96
+ },
97
+ metadata: _metadata
98
+ }, _vertical_initializers, _vertical_extraInitializers);
99
+ __esDecorate(this, null, _showTitleInfo_decorators, {
100
+ kind: "accessor",
101
+ name: "showTitleInfo",
102
+ static: false,
103
+ private: false,
104
+ access: {
105
+ has: (obj) => "showTitleInfo" in obj,
106
+ get: (obj) => obj.showTitleInfo,
107
+ set: (obj, value) => {
108
+ obj.showTitleInfo = value;
109
+ }
110
+ },
111
+ metadata: _metadata
112
+ }, _showTitleInfo_initializers, _showTitleInfo_extraInitializers);
113
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
114
+ enumerable: true,
115
+ configurable: true,
116
+ writable: true,
117
+ value: _metadata
118
+ });
119
+ }
120
+ static {
121
+ this.elementName = "sbb-seat-reservation-navigation-services";
122
+ }
123
+ static {
124
+ this.styles = [boxSizingStyles, seat_reservation_navigation_services_default];
125
+ }
126
+ #propertyIds_accessor_storage;
127
+ /** Coach service property ids, which are used to display the services in the navigation */
128
+ get propertyIds() {
129
+ return this.#propertyIds_accessor_storage;
130
+ }
131
+ set propertyIds(value) {
132
+ this.#propertyIds_accessor_storage = value;
133
+ }
134
+ #vertical_accessor_storage;
135
+ /** If true, the service icons are displayed vertically */
136
+ get vertical() {
137
+ return this.#vertical_accessor_storage;
138
+ }
139
+ set vertical(value) {
140
+ this.#vertical_accessor_storage = value;
141
+ }
142
+ #showTitleInfo_accessor_storage;
143
+ /** Disable the mouse over title information */
144
+ get showTitleInfo() {
145
+ return this.#showTitleInfo_accessor_storage;
146
+ }
147
+ set showTitleInfo(value) {
148
+ this.#showTitleInfo_accessor_storage = value;
149
+ }
150
+ render() {
151
+ const serviceLabelDescription = this.propertyIds?.length ? this._getServiceLabelDescription() : null;
152
+ return html` <div class="sbb-sr-navigation__signs">
153
+ <sbb-screen-reader-only ${serviceLabelDescription ? serviceLabelDescription : nothing}
154
+ >${serviceLabelDescription}</sbb-screen-reader-only
155
+ >
156
+ ${this.propertyIds?.map((signIcon) => {
157
+ return html`
158
+ <sbb-seat-reservation-graphic
159
+ class="auto-width"
160
+ name=${signIcon ?? nothing}
161
+ title=${this.showTitleInfo ? getI18nSeatReservation(signIcon, this._language.current) : nothing}
162
+ aria-hidden="true"
163
+ ></sbb-seat-reservation-graphic>
164
+ `;
165
+ })}
166
+ </div>`;
167
+ }
168
+ _getServiceLabelDescription() {
169
+ let label = null;
170
+ const translatedServiceLabels = this.propertyIds.map((prop) => getI18nSeatReservation(prop, this._language.current)).filter((propTranslation) => !!propTranslation).join(", ");
171
+ if (translatedServiceLabels) label = getI18nSeatReservation("COACH_AVAILABLE_SERVICES", this._language.current).concat(":").concat(translatedServiceLabels);
172
+ return label;
173
+ }
174
+ };
175
+ })();
176
+ //#endregion
177
+ export { SbbSeatReservationNavigationServicesElement as t };
178
+
179
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC1EWUo2RGRrZy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcy5zY3NzP2xpdCZpbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcy5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9zdHlsZXMnIGFzIHNiYjtcbkB1c2UgJy4uL2NvbW1vbi9zdHlsZXMvc2VhdC1yZXNlcnZhdGlvbi1mdW5jdGlvbnMnIGFzIHNiYi1zci1mdW5jdGlvbnM7XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9fc2lnbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sdW1uLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSkpO1xuXG4gIC8vIFRJTU8tNDQyMTVcbiAgLy8gZGVjcmVhc2UgY29sdW1uLWdhcCB3aGVuIHRocmVlIHdpZGUgc2VydmljZS1pY29ucyBhcmUgY29tYmluZWRcbiAgJjpoYXMoOm50aC1jaGlsZChuICsgMyBvZiAuYXV0by13aWR0aCkpIHtcbiAgICAvLyBhZGp1c3RtZW50IGZvciBzaWxlbmNlLSBhbmQgYnVzaW5lc3MtaWNvbnNcbiAgICAmOmhhcyhbbmFtZV49J1NJTEVOQ0UnXSwgW25hbWVePSdCVVNJTkVTUyddKSB7XG4gICAgICBjb2x1bW4tZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg2KTtcblxuICAgICAgLy8gYmljeWNsZSBpY29uIG9ubHkgbmVlZHMgZnVydGhlciBhZGp1c3RtZW50IHdoZW4gY29tYmluZWQgd2l0aCBzaWxlbmNlLSBhbmQgYnVzaW5lc3MtaWNvbnNcbiAgICAgICY6aGFzKFtuYW1lXj0nQklDWUNMRSddKSB7XG4gICAgICAgIGNvbHVtbi1nYXA6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG46aG9zdChbdmVydGljYWxdKSAuc2JiLXNyLW5hdmlnYXRpb25fX3NpZ25zIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiaW1wb3J0IHsgU2JiRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcy5qcyc7XG5pbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24gfSBmcm9tICcuLi9jb21tb24vdHJhbnNsYXRpb25zLnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IH0gZnJvbSAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG5TYmJTZWF0UmVzZXJ2YXRpb25HcmFwaGljRWxlbWVudC5kZWZpbmUoKTtcblxuLyoqXG4gKiBDb21wb25lbnQgZGlzcGxheXMgdGhlIGF2YWlsYWJsZSBzZXJ2aWNlIGljb25zIG9mIG9uZSBjb2FjaC5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uU2VydmljZXNFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgc3R5bGVdO1xuXG4gIC8qKiBDb2FjaCBzZXJ2aWNlIHByb3BlcnR5IGlkcywgd2hpY2ggYXJlIHVzZWQgdG8gZGlzcGxheSB0aGUgc2VydmljZXMgaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJvcGVydHktaWRzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHByb3BlcnR5SWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKiBJZiB0cnVlLCB0aGUgc2VydmljZSBpY29ucyBhcmUgZGlzcGxheWVkIHZlcnRpY2FsbHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUsIHVzZURlZmF1bHQ6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIHZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIERpc2FibGUgdGhlIG1vdXNlIG92ZXIgdGl0bGUgaW5mb3JtYXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHNob3dUaXRsZUluZm86IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3Qgc2VydmljZUxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnByb3BlcnR5SWRzPy5sZW5ndGhcbiAgICAgID8gdGhpcy5fZ2V0U2VydmljZUxhYmVsRGVzY3JpcHRpb24oKVxuICAgICAgOiBudWxsO1xuICAgIHJldHVybiBodG1sYCA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX3NpZ25zXCI+XG4gICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seSAke3NlcnZpY2VMYWJlbERlc2NyaXB0aW9uID8gc2VydmljZUxhYmVsRGVzY3JpcHRpb24gOiBub3RoaW5nfVxuICAgICAgICA+JHtzZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbn08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgID5cbiAgICAgICR7dGhpcy5wcm9wZXJ0eUlkcz8ubWFwKChzaWduSWNvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgICBjbGFzcz1cImF1dG8td2lkdGhcIlxuICAgICAgICAgICAgbmFtZT0ke3NpZ25JY29uID8/IG5vdGhpbmd9XG4gICAgICAgICAgICB0aXRsZT0ke3RoaXMuc2hvd1RpdGxlSW5mb1xuICAgICAgICAgICAgICA/IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oc2lnbkljb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYz5cbiAgICAgICAgYDtcbiAgICAgIH0pfVxuICAgIDwvZGl2PmA7XG4gIH1cblxuICAvL0dlbmVyYXRlIHRoZSB0cmFuc2xhdGVkIHNlcnZpY2UgbGFiZWwgZnJvbSB0aGUgYXZhaWxhYmxlIHByb3BlcnRpZXNcbiAgcHJpdmF0ZSBfZ2V0U2VydmljZUxhYmVsRGVzY3JpcHRpb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgbGV0IGxhYmVsID0gbnVsbDtcbiAgICBjb25zdCB0cmFuc2xhdGVkU2VydmljZUxhYmVscyA9IHRoaXMucHJvcGVydHlJZHNcbiAgICAgIC5tYXAoKHByb3ApID0+IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24ocHJvcCwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkpXG4gICAgICAuZmlsdGVyKChwcm9wVHJhbnNsYXRpb24pID0+ICEhcHJvcFRyYW5zbGF0aW9uKVxuICAgICAgLmpvaW4oJywgJyk7XG5cbiAgICBpZiAodHJhbnNsYXRlZFNlcnZpY2VMYWJlbHMpIHtcbiAgICAgIGxhYmVsID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignQ09BQ0hfQVZBSUxBQkxFX1NFUlZJQ0VTJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudClcbiAgICAgICAgLmNvbmNhdCgnOicpXG4gICAgICAgIC5jb25jYXQodHJhbnNsYXRlZFNlcnZpY2VMYWJlbHMpO1xuICAgIH1cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMnOiBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uU2VydmljZXNFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNlQSxpQ0FBaUMsUUFBUTs7Ozs7SUFNNUIscURBQTJDO21CQUFTOzs7Ozs7Ozs7O2NBQXBELG9EQUFvRCxZQUFVOzs7QUFNekQsU0FBQSwrQkFBQSxrQkFBQSxNQUFBLDJCQUF3QixFQUFFLENBQUE7QUFLMUIsU0FBQSw2QkFBQSxrQkFBQSxNQUFBLCtCQUFBLEVBQUEsa0JBQUEsTUFBQSx3QkFBb0IsTUFBSztBQUt6QixTQUFBLGtDQUFBLGtCQUFBLE1BQUEsNEJBQUEsRUFBQSxrQkFBQSxNQUFBLDZCQUF5QixNQUFLO0FBRXRDLFFBQUEsYUFBUyxrQkFBQSxNQUFBLGlDQUFBLEVBQUcsSUFBSSxzQkFBc0IsS0FBSzs7Ozs4QkFibEQsU0FBUztJQUFFLFdBQVc7SUFBZ0IsTUFBTTtJQUFPLENBQUMsQ0FBQTsyQkFJcEQsV0FBVyxFQUNYLFNBQVM7SUFBRSxNQUFNO0lBQVMsU0FBUztJQUFNLFlBQVk7SUFBTSxDQUFDLENBQUE7Z0NBSTVELFdBQVcsRUFDWCxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQTtBQVQ1QixnQkFBQSxNQUFBLE1BQUEseUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxpQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFXLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBWCxjQUFXOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsMkJBQUEsK0JBQUE7QUFLM0IsZ0JBQUEsTUFBQSxNQUFBLHNCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsY0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFRLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUixXQUFROztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsd0JBQUEsNEJBQUE7QUFLeEIsZ0JBQUEsTUFBQSxNQUFBLDJCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsbUJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBYSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQWIsZ0JBQWE7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSw2QkFBQSxpQ0FBQTs7Ozs7Ozs7O0FBZkcsUUFBQSxjQUFzQjs7O0FBQy9CLFFBQUEsU0FBeUIsQ0FBQyxpQkFBaUIsNkNBQU07O0VBSXhFOztFQUFBLElBQWdCLGNBQVc7QUFBQSxVQUFBLE1BQUE7O0VBQTNCLElBQWdCLFlBQVcsT0FBQTtBQUFBLFNBQUEsK0JBQUE7O0VBSzNCOztFQUFBLElBQWdCLFdBQVE7QUFBQSxVQUFBLE1BQUE7O0VBQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLFNBQUEsNEJBQUE7O0VBS3hCOztFQUFBLElBQWdCLGdCQUFhO0FBQUEsVUFBQSxNQUFBOztFQUE3QixJQUFnQixjQUFhLE9BQUE7QUFBQSxTQUFBLGlDQUFBOztFQUlWLFNBQU07R0FDdkIsTUFBTSwwQkFBMEIsS0FBSyxhQUFhLFNBQzlDLEtBQUssNkJBQTZCLEdBQ2xDO0FBQ0osVUFBTyxJQUFJO2dDQUNpQiwwQkFBMEIsMEJBQTBCLFFBQUE7V0FDekUsd0JBQXVCOztRQUUxQixLQUFLLGFBQWEsS0FBSyxhQUFvQjtBQUMzQyxXQUFPLElBQUk7OzttQkFHQSxZQUFZLFFBQUE7b0JBQ1gsS0FBSyxnQkFDVCx1QkFBdUIsVUFBVSxLQUFLLFVBQVUsUUFBUSxHQUN4RCxRQUFBOzs7O0tBSVIsQ0FBQTs7O0VBS0UsOEJBQTJCO0dBQ2pDLElBQUksUUFBUTtHQUNaLE1BQU0sMEJBQTBCLEtBQUssWUFDbEMsS0FBSyxTQUFTLHVCQUF1QixNQUFNLEtBQUssVUFBVSxRQUFRLENBQUMsQ0FDbkUsUUFBUSxvQkFBb0IsQ0FBQyxDQUFDLGdCQUFnQixDQUM5QyxLQUFLLEtBQUs7QUFFYixPQUFJLHdCQUNGLFNBQVEsdUJBQXVCLDRCQUE0QixLQUFLLFVBQVUsUUFBUSxDQUMvRSxPQUFPLElBQUksQ0FDWCxPQUFPLHdCQUF3QjtBQUVwQyxVQUFPIn0=