@sbb-esta/lyne-elements-experimental 3.12.0 → 3.13.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 (50) hide show
  1. package/custom-elements.json +297 -14
  2. package/development/seat-reservation/common/mapper/mapper.d.ts +4 -2
  3. package/development/seat-reservation/common/mapper/mapper.d.ts.map +1 -1
  4. package/development/seat-reservation/common/mapper/mapper.js +3 -5
  5. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -1
  6. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.js +19 -3
  7. package/development/seat-reservation/common/translations/i18n.d.ts +22 -13
  8. package/development/seat-reservation/common/translations/i18n.d.ts.map +1 -1
  9. package/development/seat-reservation/common/translations/i18n.js +412 -33
  10. package/development/seat-reservation/common/types.d.ts +1 -0
  11. package/development/seat-reservation/common/types.d.ts.map +1 -1
  12. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +34 -2
  13. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  14. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +81 -18
  15. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +3 -1
  16. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  17. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +32 -17
  18. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  19. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +3 -2
  20. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +2 -0
  21. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  22. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +60 -39
  23. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +2 -2
  24. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  25. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +4 -4
  26. package/package.json +2 -2
  27. package/seat-reservation/common/mapper/mapper.d.ts +4 -2
  28. package/seat-reservation/common/mapper/mapper.d.ts.map +1 -1
  29. package/seat-reservation/common/mapper/mapper.js +35 -35
  30. package/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -1
  31. package/seat-reservation/common/mapper/seat-reservation-sample-data.js +18 -2
  32. package/seat-reservation/common/translations/i18n.d.ts +22 -13
  33. package/seat-reservation/common/translations/i18n.d.ts.map +1 -1
  34. package/seat-reservation/common/translations/i18n.js +406 -35
  35. package/seat-reservation/common/types.d.ts +1 -0
  36. package/seat-reservation/common/types.d.ts.map +1 -1
  37. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +34 -2
  38. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  39. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +131 -72
  40. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts +3 -1
  41. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  42. package/seat-reservation/seat-reservation/seat-reservation.component.js +97 -93
  43. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  44. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +10 -10
  45. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +2 -0
  46. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  47. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +103 -103
  48. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  49. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  50. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +8 -8
@@ -22,19 +22,45 @@ const style = css`*,
22
22
 
23
23
  :host {
24
24
  --sbb-seat-reservation-navigation-travelclass-spacing: 10;
25
- --sbb-seat-reservation-navigation-btn-outline-color: var(--sbb-color-granite);
26
- --sbb-seat-reservation-navigation-btn-outline-color: light-dark(
25
+ --sbb-seat-reservation-navigation-btn-border-width: 1;
26
+ --sbb-seat-reservation-navigation-btn-border-color: var(--sbb-color-granite);
27
+ --sbb-seat-reservation-navigation-btn-border-color: light-dark(
27
28
  var(--sbb-color-granite),
28
29
  var(--sbb-color-graphite)
29
30
  );
30
- --sbb-seat-reservation-navigation-btn-outline-width: 1;
31
- --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-backgorund-color-2);
32
- --sbb-seat-reservation-navigation-btn-outline-color-selected: var(--sbb-color-black);
33
- --sbb-seat-reservation-navigation-btn-outline-color-selected: light-dark(
31
+ --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-white);
32
+ --sbb-seat-reservation-navigation-btn-background-color: light-dark(
33
+ var(--sbb-color-white),
34
+ var(--sbb-color-black)
35
+ );
36
+ --sbb-seat-reservation-navigation-btn-border-width-selected: 2;
37
+ --sbb-seat-reservation-navigation-btn-background-color-selected: var(--sbb-color-milk);
38
+ --sbb-seat-reservation-navigation-btn-background-color-selected: light-dark(
39
+ var(--sbb-color-milk),
40
+ var(--sbb-color-iron)
41
+ );
42
+ --sbb-seat-reservation-navigation-btn-border-color-selected: var(--sbb-color-black);
43
+ --sbb-seat-reservation-navigation-btn-border-color-selected: light-dark(
44
+ var(--sbb-color-black),
45
+ var(--sbb-color-white)
46
+ );
47
+ --sbb-seat-reservation-navigation-btn-outline-width-focused: 1;
48
+ --sbb-seat-reservation-navigation-btn-outline-color-focused: var(--sbb-color-black);
49
+ --sbb-seat-reservation-navigation-btn-outline-color-focused: light-dark(
50
+ var(--sbb-color-black),
51
+ var(--sbb-color-white)
52
+ );
53
+ --sbb-seat-reservation-navigation-btn-outline-offset-focused: 4;
54
+ --sbb-seat-reservation-navigation-btn-background-color-focused: var(--sbb-color-white);
55
+ --sbb-seat-reservation-navigation-btn-background-color-focused: light-dark(
56
+ var(--sbb-color-white),
57
+ var(--sbb-color-black)
58
+ );
59
+ --sbb-seat-reservation-navigation-btn-border-color-focused: var(--sbb-color-black);
60
+ --sbb-seat-reservation-navigation-btn-border-color-focused: light-dark(
34
61
  var(--sbb-color-black),
35
62
  var(--sbb-color-white)
36
63
  );
37
- --sbb-seat-reservation-navigation-btn-outline-width-hover: 2;
38
64
  --sbb-seat-reservation-navigation-btn-background-color-hover: var(--sbb-color-cloud);
39
65
  --sbb-seat-reservation-navigation-btn-background-color-hover: light-dark(
40
66
  var(--sbb-color-cloud),
@@ -95,34 +121,24 @@ const style = css`*,
95
121
  justify-content: center;
96
122
  height: calc(36 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
97
123
  position: relative;
98
- outline: calc(var(--sbb-seat-reservation-navigation-btn-outline-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-outline-color);
124
+ border: calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);
99
125
  border-radius: var(--sbb-border-radius-2x);
100
126
  background-color: var(--sbb-seat-reservation-navigation-btn-background-color);
101
- cursor: pointer;
127
+ cursor: var(--sbb-cursor-pointer);
102
128
  }
103
129
  .sbb-sr-navigation__ctrl-button.sbb-sr-navigation-driver-area {
104
130
  border-radius: var(--sbb-border-radius-8x);
105
131
  cursor: initial;
106
132
  }
107
133
 
108
- .sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button,
109
- .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled], :disabled, .sbb-sr-navigation-driver-area),
110
- .sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled, .sbb-sr-navigation-driver-area) {
111
- --sbb-seat-reservation-navigation-btn-outline-width: var(
112
- --sbb-seat-reservation-navigation-btn-outline-width-hover
113
- );
114
- --sbb-seat-reservation-navigation-btn-outline-color: var(--sbb-color-black);
115
- --sbb-seat-reservation-navigation-btn-outline-color: light-dark(
116
- var(--sbb-color-black),
117
- var(--sbb-color-white)
118
- );
119
- }
120
-
121
134
  .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled], :disabled) {
122
- --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-silver);
123
- --sbb-seat-reservation-navigation-btn-background-color: light-dark(
124
- var(--sbb-color-silver),
125
- var(--sbb-color-black)
135
+ outline: calc(var(--sbb-seat-reservation-navigation-btn-outline-width-focused) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-outline-color-focused);
136
+ outline-offset: calc(var(--sbb-seat-reservation-navigation-btn-outline-offset-focused) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
137
+ --sbb-seat-reservation-navigation-btn-background-color: var(
138
+ --sbb-seat-reservation-navigation-btn-background-color-focused
139
+ );
140
+ --sbb-seat-reservation-navigation-btn-border-color: var(
141
+ --sbb-seat-reservation-navigation-btn-border-color-focused
126
142
  );
127
143
  }
128
144
  .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled], :disabled) .sbb-sr-navigation__item-coach-travelclass {
@@ -135,10 +151,11 @@ const style = css`*,
135
151
  }
136
152
 
137
153
  .sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button {
138
- --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-milk);
139
- --sbb-seat-reservation-navigation-btn-background-color: light-dark(
140
- var(--sbb-color-milk),
141
- var(--sbb-color-iron)
154
+ --sbb-seat-reservation-navigation-btn-background-color: var(
155
+ --sbb-seat-reservation-navigation-btn-background-color-selected
156
+ );
157
+ --sbb-seat-reservation-navigation-btn-border-width: var(
158
+ --sbb-seat-reservation-navigation-btn-border-width-selected
142
159
  );
143
160
  }
144
161
  .sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-travelclass {
@@ -150,11 +167,15 @@ const style = css`*,
150
167
  color: light-dark(var(--sbb-color-black), var(--sbb-color-white));
151
168
  }
152
169
 
170
+ .sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled], :disabled) {
171
+ --sbb-seat-reservation-navigation-btn-background-color: var(
172
+ --sbb-seat-reservation-navigation-btn-background-color-selected
173
+ );
174
+ }
175
+
153
176
  .sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled, .sbb-sr-navigation-driver-area) {
154
- --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-cloud);
155
- --sbb-seat-reservation-navigation-btn-background-color: light-dark(
156
- var(--sbb-color-cloud),
157
- var(--sbb-color-midnight)
177
+ --sbb-seat-reservation-navigation-btn-background-color: var(
178
+ --sbb-seat-reservation-navigation-btn-background-color-hover
158
179
  );
159
180
  }
160
181
  .sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled, .sbb-sr-navigation-driver-area) .sbb-sr-navigation__item-coach-travelclass {
@@ -167,8 +188,8 @@ const style = css`*,
167
188
 
168
189
  .sbb-sr-navigation__ctrl-button:is([disabled], :disabled) {
169
190
  --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-background-color-2);
170
- --sbb-seat-reservation-navigation-btn-outline-color: var(--sbb-color-platinum);
171
- --sbb-seat-reservation-navigation-btn-outline-color: light-dark(
191
+ --sbb-seat-reservation-navigation-btn-border-color: var(--sbb-color-platinum);
192
+ --sbb-seat-reservation-navigation-btn-border-color: light-dark(
172
193
  var(--sbb-color-platinum),
173
194
  var(--sbb-color-iron)
174
195
  );
@@ -376,14 +397,14 @@ let SbbSeatReservationNavigationCoachElement = (() => {
376
397
  set propertyIds(value) {
377
398
  __privateSet(this, _propertyIds_accessor_storage, value);
378
399
  }
379
- /* pre-selected Coach index property */
400
+ /** Pre-selected coach index property */
380
401
  get selected() {
381
402
  return __privateGet(this, _selected_accessor_storage);
382
403
  }
383
404
  set selected(value) {
384
405
  __privateSet(this, _selected_accessor_storage, value);
385
406
  }
386
- /* focus Coach index property */
407
+ /** Focused coach index property */
387
408
  get focused() {
388
409
  return __privateGet(this, _focused_accessor_storage);
389
410
  }
@@ -635,4 +656,4 @@ let SbbSeatReservationNavigationCoachElement = (() => {
635
656
  export {
636
657
  SbbSeatReservationNavigationCoachElement
637
658
  };
638
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2guY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIG5vdGhpbmcsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBDb2FjaE51bWJlck9mRnJlZVBsYWNlcywgUGxhY2VUcmF2ZWxDbGFzcyB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5pbXBvcnQgJy4uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdENvYWNoRXZlbnREZXRhaWxzID0gbnVtYmVyO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgZGlzcGxheSB0aGUgbmF2aWdhdGlvbiBjb2FjaCBpdGVtIGZvciBTZWF0IHJlc2VydmF0aW9uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25Db2FjaEVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdGNvYWNoOiAnc2VsZWN0Y29hY2gnLFxuICAgIGZvY3VzY29hY2g6ICdmb2N1c2NvYWNoJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogQ29hY2ggSUQsIHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNvYWNoIGluIHRoZSBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjb2FjaC1pZCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSWQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBDb2FjaCBzZXJ2aWNlIHByb3BlcnR5IGlkcywgd2hpY2ggYXJlIHVzZWQgdG8gZGlzcGxheSB0aGUgc2VydmljZXMgaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJvcGVydHktaWRzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHByb3BlcnR5SWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qIHByZS1zZWxlY3RlZCBDb2FjaCBpbmRleCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiBmb2N1cyBDb2FjaCBpbmRleCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluZGV4OiBudW1iZXIgPSAwO1xuXG4gIC8qKiBSZXByZXNlbnRhdGlvbiBvZiBwbGFjZXMgYXZhaWxhYmxlIGZvciBzZWxlY3RpbmcsIGNvdW50aW5nIHNlYXQgcGxhY2VzIGFuZCBiaWN5Y2xlIHBsYWNlcyBzZXBhcmV0ZWx5ICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ZyZWUtcGxhY2VzLWJ5LXR5cGUnLCB0eXBlOiBPYmplY3QgfSlcbiAgcHVibGljIGFjY2Vzc29yIGZyZWVQbGFjZXNCeVR5cGU6IENvYWNoTnVtYmVyT2ZGcmVlUGxhY2VzID0geyBzZWF0czogMCwgYmljeWNsZXM6IDAgfTtcblxuICAvKiogVHJhdmVsIGNsYXNzIG9mIHRoZSBjb2FjaCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0cmF2ZWwtY2xhc3MnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdHJhdmVsQ2xhc3M6IFBsYWNlVHJhdmVsQ2xhc3NbXSA9IFsnQU5ZX0NMQVNTJ107XG5cbiAgLyoqIElmIHRoZSBjb2FjaCBpcyBhIGRyaXZlci9yZXN0cmljdGVkIGFyZWEgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RyaXZlci1hcmVhJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZHJpdmVyQXJlYTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJZiB0aGUgY29hY2ggaXMgdGhlIGZpcnN0IGluIHRoZSBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJZiB0aGUgY29hY2ggaXMgdGhlIGxhc3QgaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGxhc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRGlzYWJsZSB0aGUgY29hY2ggbmF2aWdhdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGlzYWJsZScsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSWYgdGhlIGNvYWNoIG5hdmlnYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCB2ZXJ0aWNhbGx5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlLCB1c2VEZWZhdWx0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB2ZXJ0aWNhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NlbGVjdGVkJykpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nLFxuICAgICAgKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkICYmIHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudCkge1xuICAgICAgICBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgLyoqIEVtaXRzIHdoZW4gYSBuYXYgY29hY2ggaGFzIHRoZSBmb2N1cyAqL1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdmb2N1c2NvYWNoJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9jdXNlZCcpICYmIHRoaXMuZm9jdXNlZCkge1xuICAgICAgY29uc3QgZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJyxcbiAgICAgICkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICBpZiAoZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQpIHtcbiAgICAgICAgZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGEgbGlzdCBvZiBzZXJ2aWNlIGljb25zIHByb3ZpZGVkIGJ5IGEgY2FsbGVyXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCc6IHRydWUsXG4gICAgICAgICAgJ2xhc3QtY29hY2gnOiB0aGlzLmxhc3QsXG4gICAgICAgICAgJ2ZpcnN0LWNvYWNoJzogdGhpcy5maXJzdCxcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkJzogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgfSl9XCJcbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9nZXROYXZpZ2F0aW9uQnV0dG9uKCl9XG4gICAgICAgICR7dGhpcy5wcm9wZXJ0eUlkcz8ubGVuZ3RoXG4gICAgICAgICAgPyBodG1sYDxzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzXG4gICAgICAgICAgICAgID92ZXJ0aWNhbD1cIiR7dGhpcy52ZXJ0aWNhbH1cIlxuICAgICAgICAgICAgICAucHJvcGVydHlJZHM9XCIke3RoaXMucHJvcGVydHlJZHN9XCJcbiAgICAgICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXM+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXROYXZpZ2F0aW9uQnV0dG9uKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgY29uc3QgY3VyclNlcnZpY2VDbGFzc051bWJlciA9IHRoaXMuX2dldENvYWNoU2VydmljZUNsYXNzTnVtYmVyKCk7XG4gICAgY29uc3QgdGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uID1cbiAgICAgIHRoaXMuX2dldFRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbihjdXJyU2VydmljZUNsYXNzTnVtYmVyKTtcbiAgICBjb25zdCBhcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzID0gdGhpcy5fZ2V0QXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcygpO1xuXG4gICAgcmV0dXJuIGh0bWxgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID9kaXNhYmxlZD1cIiR7dGhpcy5kaXNhYmxlfVwiXG4gICAgICAgIGNsYXNzPVwiJHtjbGFzc01hcCh7XG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbic6IHRydWUsXG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhJzogdGhpcy5kcml2ZXJBcmVhLFxuICAgICAgICB9KX1cIlxuICAgICAgICB0aXRsZT1cIiR7dGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9ufVwiXG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJuYXYtY29hY2gtc2VydmljZS1kZXNjcmlwdGlvbnMtJHt0aGlzLmluZGV4fVwiXG4gICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX3NlbGVjdE5hdkNvYWNoKHRoaXMuaW5kZXgpfVxuICAgICAgPlxuICAgICAgICAke3RoaXMuX2dldEJ0bkluZm9ybWF0aW9uKGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIpfVxuICAgICAgPC9idXR0b24+XG4gICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seSBpZD1cIm5hdi1jb2FjaC1zZXJ2aWNlLWRlc2NyaXB0aW9ucy0ke3RoaXMuaW5kZXh9XCJcbiAgICAgICAgPiR7YXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlc308L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgID5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QnRuSW5mb3JtYXRpb24oc2VydmljZUNsYXNzTnVtYmVyOiBudW1iZXIgfCBudWxsKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5kcml2ZXJBcmVhKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyID09PSAxXG4gICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzc1wiPjwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICAgICR7dGhpcy50cmF2ZWxDbGFzcz8ubGVuZ3RoID4gMCB8fCB0aGlzLmNvYWNoSWRcbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9fYWRkaXRpb25hbC1pbmZvcm1hdGlvblwiPlxuICAgICAgICAgICAgJHt0aGlzLmNvYWNoSWRcbiAgICAgICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5jb2FjaElkfVxuICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAke3NlcnZpY2VDbGFzc051bWJlciA/PyBub3RoaW5nfVxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLXRyYXZlbGNsYXNzXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXJ9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uKHNlcnZpY2VDbGFzc051bWJlcjogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZHJpdmVyQXJlYSkge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ05BVklHQVRFX0NPQUNIX0JMT0NLRUQnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbXG4gICAgICAgIHRoaXMuY29hY2hJZCxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGxldCBsYWJlbCA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ05BVklHQVRFX1RPX0NPQUNIJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW3RoaXMuY29hY2hJZF0pO1xuXG4gICAgLy9JZiBzZXJ2aWNlIGNsYXNzIGV4aXN0LCB0aGVuIGV4cGFuZCBsYWJlbCB3aXRoIHNlcnZpY2UgY2xhc3MgdHJhbnNsYXRpb25cbiAgICBpZiAoc2VydmljZUNsYXNzTnVtYmVyKSB7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbktleSA9XG4gICAgICAgIHNlcnZpY2VDbGFzc051bWJlciA9PT0gMSA/ICdTRVJWSUNFX0NMQVNTX0ZJUlNUJyA6ICdTRVJWSUNFX0NMQVNTX1NFQ09ORCc7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgIHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uS2V5LFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc0xhYmVsID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgJ05BVklHQVRFX1RPX0NPQUNIX1NFUlZJQ0VfQ0xBU1NfU1VCJyxcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgW3NlcnZpY2VDbGFzc1RyYW5zbGF0aW9uXSxcbiAgICAgICk7XG4gICAgICBsYWJlbCA9IGxhYmVsLmNvbmNhdChzZXJ2aWNlQ2xhc3NMYWJlbCk7XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kcyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBzZWF0cyBhbmQgYmljeWNsZSBzcGFjZXMgYXMgaW5mb1xuICAgIGNvbnN0IGZyZWVQbGFjZXNUeHQgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgJ0NPQUNIX0FWQUlMQUJMRV9OVU1CRVJfT0ZfUExBQ0VTJyxcbiAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICBbdGhpcy5mcmVlUGxhY2VzQnlUeXBlLnNlYXRzLCB0aGlzLmZyZWVQbGFjZXNCeVR5cGUuYmljeWNsZXNdLFxuICAgICk7XG4gICAgbGFiZWwgPSBsYWJlbC5jb25jYXQoJy4gJykuY29uY2F0KGZyZWVQbGFjZXNUeHQpO1xuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEFyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgbGV0IGFyaWFEZXNjcml0aW9uID0gbnVsbDtcbiAgICBpZiAodGhpcy5wcm9wZXJ0eUlkcy5sZW5ndGgpIHtcbiAgICAgIGFyaWFEZXNjcml0aW9uID1cbiAgICAgICAgZ2V0STE4blNlYXRSZXNlcnZhdGlvbignQ09BQ0hfQVZBSUxBQkxFX1NFUlZJQ0VTJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkgKyAnOiAnO1xuICAgICAgYXJpYURlc2NyaXRpb24gKz0gdGhpcy5wcm9wZXJ0eUlkc1xuICAgICAgICAubWFwKChwcm9wZXJ0eUlkKSA9PiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKHByb3BlcnR5SWQsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpKVxuICAgICAgICAuam9pbigpO1xuICAgIH1cbiAgICByZXR1cm4gYXJpYURlc2NyaXRpb247XG4gIH1cblxuICAvKipcbiAgICogZW1pdHMgdGhlIGluZGV4IG9mIHRoZSBjb2FjaCBhcnJheSBmb3IgdGhlIG1haW4gbmF2aWdhdGlvbi5cbiAgICogQHBhcmFtIGNvYWNoSW5kZXhcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX3NlbGVjdE5hdkNvYWNoKGNvYWNoSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcml2ZXJBcmVhKSB7XG4gICAgICAvKipcbiAgICAgICAqIEB0eXBlIHtDdXN0b21FdmVudDxTZWxlY3RDb2FjaEV2ZW50RGV0YWlscz59XG4gICAgICAgKiBFbWl0cyB3aGVuIGEgY29hY2ggd2l0aGluIHRoZSBuYXZpZ2F0aW9uIHdhcyBzZWxlY3RlZCBhbmQgcmV0dXJucyB0aGUgY2xpY2tlZCBjb2FjaCBuYXYgaW5kZXguXG4gICAgICAgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50PFNlbGVjdENvYWNoRXZlbnREZXRhaWxzPignc2VsZWN0Y29hY2gnLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgICBkZXRhaWw6IGNvYWNoSW5kZXgsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb2FjaFNlcnZpY2VDbGFzc051bWJlcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy50cmF2ZWxDbGFzcz8uaW5jbHVkZXMoJ0ZJUlNUJykpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAodGhpcy50cmF2ZWxDbGFzcz8uaW5jbHVkZXMoJ1NFQ09ORCcpKSB7XG4gICAgICByZXR1cm4gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoJzogU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNo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
659
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2guY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIG5vdGhpbmcsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBDb2FjaE51bWJlck9mRnJlZVBsYWNlcywgUGxhY2VUcmF2ZWxDbGFzcyB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5pbXBvcnQgJy4uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdENvYWNoRXZlbnREZXRhaWxzID0gbnVtYmVyO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgZGlzcGxheSB0aGUgbmF2aWdhdGlvbiBjb2FjaCBpdGVtIGZvciBTZWF0IHJlc2VydmF0aW9uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25Db2FjaEVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdGNvYWNoOiAnc2VsZWN0Y29hY2gnLFxuICAgIGZvY3VzY29hY2g6ICdmb2N1c2NvYWNoJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogQ29hY2ggSUQsIHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNvYWNoIGluIHRoZSBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjb2FjaC1pZCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSWQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBDb2FjaCBzZXJ2aWNlIHByb3BlcnR5IGlkcywgd2hpY2ggYXJlIHVzZWQgdG8gZGlzcGxheSB0aGUgc2VydmljZXMgaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJvcGVydHktaWRzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHByb3BlcnR5SWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKiBQcmUtc2VsZWN0ZWQgY29hY2ggaW5kZXggcHJvcGVydHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEZvY3VzZWQgY29hY2ggaW5kZXggcHJvcGVydHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBpbmRleDogbnVtYmVyID0gMDtcblxuICAvKiogUmVwcmVzZW50YXRpb24gb2YgcGxhY2VzIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW5nLCBjb3VudGluZyBzZWF0IHBsYWNlcyBhbmQgYmljeWNsZSBwbGFjZXMgc2VwYXJldGVseSAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmcmVlLXBsYWNlcy1ieS10eXBlJywgdHlwZTogT2JqZWN0IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmcmVlUGxhY2VzQnlUeXBlOiBDb2FjaE51bWJlck9mRnJlZVBsYWNlcyA9IHsgc2VhdHM6IDAsIGJpY3ljbGVzOiAwIH07XG5cbiAgLyoqIFRyYXZlbCBjbGFzcyBvZiB0aGUgY29hY2ggKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndHJhdmVsLWNsYXNzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHRyYXZlbENsYXNzOiBQbGFjZVRyYXZlbENsYXNzW10gPSBbJ0FOWV9DTEFTUyddO1xuXG4gIC8qKiBJZiB0aGUgY29hY2ggaXMgYSBkcml2ZXIvcmVzdHJpY3RlZCBhcmVhICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkcml2ZXItYXJlYScsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRyaXZlckFyZWE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSWYgdGhlIGNvYWNoIGlzIHRoZSBmaXJzdCBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSWYgdGhlIGNvYWNoIGlzIHRoZSBsYXN0IGluIHRoZSBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsYXN0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIERpc2FibGUgdGhlIGNvYWNoIG5hdmlnYXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGUnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkaXNhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIElmIHRoZSBjb2FjaCBuYXZpZ2F0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgdmVydGljYWxseSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSwgdXNlRGVmYXVsdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdmVydGljYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzZWxlY3RlZCcpKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJyxcbiAgICAgICkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQpIHtcbiAgICAgICAgc2VsZWN0ZWROYXZCdXR0b25FbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIC8qKiBFbWl0cyB3aGVuIGEgbmF2IGNvYWNoIGhhcyB0aGUgZm9jdXMgKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZm9jdXNjb2FjaCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2ZvY3VzZWQnKSAmJiB0aGlzLmZvY3VzZWQpIHtcbiAgICAgIGNvbnN0IGZvY3VzZWROYXZCdXR0b25FbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbicsXG4gICAgICApIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgaWYgKGZvY3VzZWROYXZCdXR0b25FbGVtZW50KSB7XG4gICAgICAgIGZvY3VzZWROYXZCdXR0b25FbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhIGxpc3Qgb2Ygc2VydmljZSBpY29ucyBwcm92aWRlZCBieSBhIGNhbGxlclxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gnOiB0cnVlLFxuICAgICAgICAgICdsYXN0LWNvYWNoJzogdGhpcy5sYXN0LFxuICAgICAgICAgICdmaXJzdC1jb2FjaCc6IHRoaXMuZmlyc3QsXG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1zZWxlY3RlZCc6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICAgIH0pfVwiXG4gICAgICA+XG4gICAgICAgICR7dGhpcy5fZ2V0TmF2aWdhdGlvbkJ1dHRvbigpfVxuICAgICAgICAke3RoaXMucHJvcGVydHlJZHM/Lmxlbmd0aFxuICAgICAgICAgID8gaHRtbGA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlc1xuICAgICAgICAgICAgICA/dmVydGljYWw9XCIke3RoaXMudmVydGljYWx9XCJcbiAgICAgICAgICAgICAgLnByb3BlcnR5SWRzPVwiJHt0aGlzLnByb3BlcnR5SWRzfVwiXG4gICAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TmF2aWdhdGlvbkJ1dHRvbigpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIgPSB0aGlzLl9nZXRDb2FjaFNlcnZpY2VDbGFzc051bWJlcigpO1xuICAgIGNvbnN0IHRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbiA9XG4gICAgICB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24oY3VyclNlcnZpY2VDbGFzc051bWJlcik7XG4gICAgY29uc3QgYXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcyA9IHRoaXMuX2dldEFyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMoKTtcblxuICAgIHJldHVybiBodG1sYCA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA/ZGlzYWJsZWQ9XCIke3RoaXMuZGlzYWJsZX1cIlxuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nOiB0cnVlLFxuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbi1kcml2ZXItYXJlYSc6IHRoaXMuZHJpdmVyQXJlYSxcbiAgICAgICAgfSl9XCJcbiAgICAgICAgdGl0bGU9XCIke3RpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbn1cIlxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwibmF2LWNvYWNoLXNlcnZpY2UtZGVzY3JpcHRpb25zLSR7dGhpcy5pbmRleH1cIlxuICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9zZWxlY3ROYXZDb2FjaCh0aGlzLmluZGV4KX1cbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9nZXRCdG5JbmZvcm1hdGlvbihjdXJyU2VydmljZUNsYXNzTnVtYmVyKX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHkgaWQ9XCJuYXYtY29hY2gtc2VydmljZS1kZXNjcmlwdGlvbnMtJHt0aGlzLmluZGV4fVwiXG4gICAgICAgID4ke2FyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXN9PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5XG4gICAgICA+YDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEJ0bkluZm9ybWF0aW9uKHNlcnZpY2VDbGFzc051bWJlcjogbnVtYmVyIHwgbnVsbCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZHJpdmVyQXJlYSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3NlcnZpY2VDbGFzc051bWJlciA9PT0gMVxuICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3NcIj48L3NwYW4+YFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAke3RoaXMudHJhdmVsQ2xhc3M/Lmxlbmd0aCA+IDAgfHwgdGhpcy5jb2FjaElkXG4gICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb25cIj5cbiAgICAgICAgICAgICR7dGhpcy5jb2FjaElkXG4gICAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtbnVtYmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuY29hY2hJZH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXIgPz8gbm90aGluZ31cbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzc1wiXG4gICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+YFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbihzZXJ2aWNlQ2xhc3NOdW1iZXI6IG51bWJlciB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRyaXZlckFyZWEpIHtcbiAgICAgIHJldHVybiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdOQVZJR0FURV9DT0FDSF9CTE9DS0VEJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW1xuICAgICAgICB0aGlzLmNvYWNoSWQsXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICBsZXQgbGFiZWwgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdOQVZJR0FURV9UT19DT0FDSCcsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFt0aGlzLmNvYWNoSWRdKTtcblxuICAgIC8vSWYgc2VydmljZSBjbGFzcyBleGlzdCwgdGhlbiBleHBhbmQgbGFiZWwgd2l0aCBzZXJ2aWNlIGNsYXNzIHRyYW5zbGF0aW9uXG4gICAgaWYgKHNlcnZpY2VDbGFzc051bWJlcikge1xuICAgICAgY29uc3Qgc2VydmljZUNsYXNzVHJhbnNsYXRpb25LZXkgPVxuICAgICAgICBzZXJ2aWNlQ2xhc3NOdW1iZXIgPT09IDEgPyAnU0VSVklDRV9DTEFTU19GSVJTVCcgOiAnU0VSVklDRV9DTEFTU19TRUNPTkQnO1xuICAgICAgY29uc3Qgc2VydmljZUNsYXNzVHJhbnNsYXRpb24gPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbktleSxcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NMYWJlbCA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgICdOQVZJR0FURV9UT19DT0FDSF9TRVJWSUNFX0NMQVNTX1NVQicsXG4gICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICAgIFtzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbl0sXG4gICAgICApO1xuICAgICAgbGFiZWwgPSBsYWJlbC5jb25jYXQoc2VydmljZUNsYXNzTGFiZWwpO1xuICAgIH1cblxuICAgIC8vIEV4cGFuZHMgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgc2VhdHMgYW5kIGJpY3ljbGUgc3BhY2VzIGFzIGluZm9cbiAgICBjb25zdCBmcmVlUGxhY2VzVHh0ID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICdDT0FDSF9BVkFJTEFCTEVfTlVNQkVSX09GX1BMQUNFUycsXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgW3RoaXMuZnJlZVBsYWNlc0J5VHlwZS5zZWF0cywgdGhpcy5mcmVlUGxhY2VzQnlUeXBlLmJpY3ljbGVzXSxcbiAgICApO1xuICAgIGxhYmVsID0gbGFiZWwuY29uY2F0KCcuICcpLmNvbmNhdChmcmVlUGxhY2VzVHh0KTtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICBwcml2YXRlIF9nZXRBcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCBhcmlhRGVzY3JpdGlvbiA9IG51bGw7XG4gICAgaWYgKHRoaXMucHJvcGVydHlJZHMubGVuZ3RoKSB7XG4gICAgICBhcmlhRGVzY3JpdGlvbiA9XG4gICAgICAgIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0FWQUlMQUJMRV9TRVJWSUNFUycsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpICsgJzogJztcbiAgICAgIGFyaWFEZXNjcml0aW9uICs9IHRoaXMucHJvcGVydHlJZHNcbiAgICAgICAgLm1hcCgocHJvcGVydHlJZCkgPT4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihwcm9wZXJ0eUlkLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSlcbiAgICAgICAgLmpvaW4oKTtcbiAgICB9XG4gICAgcmV0dXJuIGFyaWFEZXNjcml0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIGVtaXRzIHRoZSBpbmRleCBvZiB0aGUgY29hY2ggYXJyYXkgZm9yIHRoZSBtYWluIG5hdmlnYXRpb24uXG4gICAqIEBwYXJhbSBjb2FjaEluZGV4XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9zZWxlY3ROYXZDb2FjaChjb2FjaEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJpdmVyQXJlYSkge1xuICAgICAgLyoqXG4gICAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8U2VsZWN0Q29hY2hFdmVudERldGFpbHM+fVxuICAgICAgICogRW1pdHMgd2hlbiBhIGNvYWNoIHdpdGhpbiB0aGUgbmF2aWdhdGlvbiB3YXMgc2VsZWN0ZWQgYW5kIHJldHVybnMgdGhlIGNsaWNrZWQgY29hY2ggbmF2IGluZGV4LlxuICAgICAgICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudDxTZWxlY3RDb2FjaEV2ZW50RGV0YWlscz4oJ3NlbGVjdGNvYWNoJywge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgICAgZGV0YWlsOiBjb2FjaEluZGV4LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29hY2hTZXJ2aWNlQ2xhc3NOdW1iZXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMudHJhdmVsQ2xhc3M/LmluY2x1ZGVzKCdGSVJTVCcpKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHJhdmVsQ2xhc3M/LmluY2x1ZGVzKCdTRUNPTkQnKSkge1xuICAgICAgcmV0dXJuIDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaCc6IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25D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
@@ -71,7 +71,7 @@ let SbbSeatReservationNavigationServicesElement = (() => {
71
71
  __privateSet(this, _vertical_accessor_storage, value);
72
72
  }
73
73
  render() {
74
- const serviceLabelDescription = this.propertyIds.length ? this._getServiceLabelDescription() : null;
74
+ const serviceLabelDescription = this.propertyIds?.length ? this._getServiceLabelDescription() : null;
75
75
  return html` <div class="sbb-sr-navigation__signs">
76
76
  <sbb-screen-reader-only ${serviceLabelDescription ? serviceLabelDescription : nothing}
77
77
  >${serviceLabelDescription}</sbb-screen-reader-only
@@ -116,4 +116,4 @@ let SbbSeatReservationNavigationServicesElement = (() => {
116
116
  export {
117
117
  SbbSeatReservationNavigationServicesElement
118
118
  };
119
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcy9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogQ29tcG9uZW50IGRpc3BsYXlzIHRoZSBhdmFpbGFibGUgc2VydmljZSBpY29ucyBvZiBvbmUgY29hY2guXG4gKlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqIENvYWNoIHNlcnZpY2UgcHJvcGVydHkgaWRzLCB3aGljaCBhcmUgdXNlZCB0byBkaXNwbGF5IHRoZSBzZXJ2aWNlcyBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcm9wZXJ0eS1pZHMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJvcGVydHlJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqIElmIHRydWUsIHRoZSBzZXJ2aWNlIGljb25zIGFyZSBkaXNwbGF5ZWQgdmVydGljYWxseSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSwgdXNlRGVmYXVsdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdmVydGljYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3Qgc2VydmljZUxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnByb3BlcnR5SWRzLmxlbmd0aFxuICAgICAgPyB0aGlzLl9nZXRTZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbigpXG4gICAgICA6IG51bGw7XG4gICAgcmV0dXJuIGh0bWxgIDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9fc2lnbnNcIj5cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5ICR7c2VydmljZUxhYmVsRGVzY3JpcHRpb24gPyBzZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbiA6IG5vdGhpbmd9XG4gICAgICAgID4ke3NlcnZpY2VMYWJlbERlc2NyaXB0aW9ufTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgPlxuICAgICAgJHt0aGlzLnByb3BlcnR5SWRzPy5tYXAoKHNpZ25JY29uOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICAgIGNsYXNzPVwiYXV0by13aWR0aFwiXG4gICAgICAgICAgICBuYW1lPSR7c2lnbkljb24gPz8gbm90aGluZ31cbiAgICAgICAgICAgIHRpdGxlPSR7Z2V0STE4blNlYXRSZXNlcnZhdGlvbihzaWduSWNvbiwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCl9XG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICAgIGA7XG4gICAgICB9KX1cbiAgICA8L2Rpdj5gO1xuICB9XG5cbiAgLy9HZW5lcmF0ZSB0aGUgdHJhbnNsYXRlZCBzZXJ2aWNlIGxhYmVsIGZyb20gdGhlIGF2YWlsYWJsZSBwcm9wZXJ0aWVzXG4gIHByaXZhdGUgX2dldFNlcnZpY2VMYWJlbERlc2NyaXB0aW9uKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCBsYWJlbCA9IG51bGw7XG4gICAgY29uc3QgdHJhbnNsYXRlZFNlcnZpY2VMYWJlbHMgPSB0aGlzLnByb3BlcnR5SWRzXG4gICAgICAubWFwKChwcm9wKSA9PiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKHByb3AsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpKVxuICAgICAgLmZpbHRlcigocHJvcFRyYW5zbGF0aW9uKSA9PiAhIXByb3BUcmFuc2xhdGlvbilcbiAgICAgIC5qb2luKCcsICcpO1xuXG4gICAgaWYgKHRyYW5zbGF0ZWRTZXJ2aWNlTGFiZWxzKSB7XG4gICAgICBsYWJlbCA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0FWQUlMQUJMRV9TRVJWSUNFUycsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICAgIC5jb25jYXQoJzonKVxuICAgICAgICAuY29uY2F0KHRyYW5zbGF0ZWRTZXJ2aWNlTGFiZWxzKTtcbiAgICB9XG4gICAgcmV0dXJuIGxhYmVsO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzJzogU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvblNlcnZpY2VzRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQW1CTSwrQ0FBMkMsTUFBQTs7MEJBRGhELGNBQWMsMENBQTBDLENBQUM7Ozs7b0JBQ0E7Ozs7Ozs7QUFBUixFQUFBLG1CQUFRLFlBQVU7QUFBQTs7QUFLbEU7QUFLQTtBQUxnQix5QkFBQSwrQkFBQSxrQkFBQSxNQUFBLDJCQUF3QixDQUFBLENBQUU7QUFLMUIseUJBQUEsNkJBQUEsa0JBQUEsTUFBQSw4QkFBQSxHQUFBLGtCQUFBLE1BQUEsd0JBQW9CLEtBQUs7QUFFakMsV0FBQSxtRUFBWSxJQUFJLHNCQUFzQixJQUFJO0FBQUEsSUFzQ3BEO0FBQUE7QUFBQSxJQTdDRSxJQUFnQixjQUFXO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUEzQixJQUFnQixZQUFXLE9BQUE7QUFBQSx5QkFBQSwrQkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBSzNCLElBQWdCLFdBQVE7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLHlCQUFBLDRCQUFBO0FBQUEsSUFBQTtBQUFBLElBSUwsU0FBTTtBQUN2QixZQUFNLDBCQUEwQixLQUFLLFlBQVksU0FDN0MsS0FBSyxnQ0FDTDtBQUNKLGFBQU87QUFBQSxnQ0FDcUIsMEJBQTBCLDBCQUEwQixPQUFPO0FBQUEsV0FDaEYsdUJBQXVCO0FBQUE7QUFBQSxRQUUxQixLQUFLLGFBQWEsSUFBSSxDQUFDLGFBQW9CO0FBQzNDLGVBQU87QUFBQTtBQUFBO0FBQUEsbUJBR0ksWUFBWSxPQUFPO0FBQUEsb0JBQ2xCLHVCQUF1QixVQUFVLEtBQUssVUFBVSxPQUFPLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUl0RSxDQUFDLENBQUM7QUFBQTtBQUFBLElBRU47QUFBQTtBQUFBLElBR1EsOEJBQTJCO0FBQ2pDLFVBQUksUUFBUTtBQUNaLFlBQU0sMEJBQTBCLEtBQUssWUFDbEMsSUFBSSxDQUFDLFNBQVMsdUJBQXVCLE1BQU0sS0FBSyxVQUFVLE9BQU8sQ0FBQyxFQUNsRSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxlQUFlLEVBQzdDLEtBQUssSUFBSTtBQUVaLFVBQUkseUJBQXlCO0FBQzNCLGdCQUFRLHVCQUF1Qiw0QkFBNEIsS0FBSyxVQUFVLE9BQU8sRUFDOUUsT0FBTyxHQUFHLEVBQ1YsT0FBTyx1QkFBdUI7QUFBQSxNQUNuQztBQUNBLGFBQU87QUFBQSxJQUNUO0FBQUEsS0E1Q0EsK0NBS0E7OytCQU5DLFNBQVMsRUFBRSxXQUFXLGdCQUFnQixNQUFNLE1BQUEsQ0FBTyxDQUFDO0FBSXBELDJCQUFBLENBQUEsYUFDQSxTQUFTLEVBQUUsTUFBTSxTQUFTLFNBQVMsTUFBTSxZQUFZLEtBQUEsQ0FBTSxDQUFDO0FBSjdELGlCQUFBLElBQUEsTUFBQSx5QkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGVBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsaUJBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixhQUFXLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFYLGNBQVc7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsMkJBQUEsOEJBQUE7QUFLM0IsaUJBQUEsSUFBQSxNQUFBLHNCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsWUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxjQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsVUFBUSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBUixXQUFRO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLHdCQUFBLDJCQUFBO0FBVjFCLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixPQUQ1QyxrQkFBQSxZQUFBLHVCQUFBLEdBQTRDOzs7In0=
119
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcy9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogQ29tcG9uZW50IGRpc3BsYXlzIHRoZSBhdmFpbGFibGUgc2VydmljZSBpY29ucyBvZiBvbmUgY29hY2guXG4gKlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqIENvYWNoIHNlcnZpY2UgcHJvcGVydHkgaWRzLCB3aGljaCBhcmUgdXNlZCB0byBkaXNwbGF5IHRoZSBzZXJ2aWNlcyBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcm9wZXJ0eS1pZHMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJvcGVydHlJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqIElmIHRydWUsIHRoZSBzZXJ2aWNlIGljb25zIGFyZSBkaXNwbGF5ZWQgdmVydGljYWxseSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSwgdXNlRGVmYXVsdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdmVydGljYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3Qgc2VydmljZUxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnByb3BlcnR5SWRzPy5sZW5ndGhcbiAgICAgID8gdGhpcy5fZ2V0U2VydmljZUxhYmVsRGVzY3JpcHRpb24oKVxuICAgICAgOiBudWxsO1xuICAgIHJldHVybiBodG1sYCA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX3NpZ25zXCI+XG4gICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seSAke3NlcnZpY2VMYWJlbERlc2NyaXB0aW9uID8gc2VydmljZUxhYmVsRGVzY3JpcHRpb24gOiBub3RoaW5nfVxuICAgICAgICA+JHtzZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbn08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgID5cbiAgICAgICR7dGhpcy5wcm9wZXJ0eUlkcz8ubWFwKChzaWduSWNvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgICBjbGFzcz1cImF1dG8td2lkdGhcIlxuICAgICAgICAgICAgbmFtZT0ke3NpZ25JY29uID8/IG5vdGhpbmd9XG4gICAgICAgICAgICB0aXRsZT0ke2dldEkxOG5TZWF0UmVzZXJ2YXRpb24oc2lnbkljb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpfVxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICBgO1xuICAgICAgfSl9XG4gICAgPC9kaXY+YDtcbiAgfVxuXG4gIC8vR2VuZXJhdGUgdGhlIHRyYW5zbGF0ZWQgc2VydmljZSBsYWJlbCBmcm9tIHRoZSBhdmFpbGFibGUgcHJvcGVydGllc1xuICBwcml2YXRlIF9nZXRTZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBsZXQgbGFiZWwgPSBudWxsO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRTZXJ2aWNlTGFiZWxzID0gdGhpcy5wcm9wZXJ0eUlkc1xuICAgICAgLm1hcCgocHJvcCkgPT4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihwcm9wLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSlcbiAgICAgIC5maWx0ZXIoKHByb3BUcmFuc2xhdGlvbikgPT4gISFwcm9wVHJhbnNsYXRpb24pXG4gICAgICAuam9pbignLCAnKTtcblxuICAgIGlmICh0cmFuc2xhdGVkU2VydmljZUxhYmVscykge1xuICAgICAgbGFiZWwgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9BVkFJTEFCTEVfU0VSVklDRVMnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KVxuICAgICAgICAuY29uY2F0KCc6JylcbiAgICAgICAgLmNvbmNhdCh0cmFuc2xhdGVkU2VydmljZUxhYmVscyk7XG4gICAgfVxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcyc6IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFtQk0sK0NBQTJDLE1BQUE7OzBCQURoRCxjQUFjLDBDQUEwQyxDQUFDOzs7O29CQUNBOzs7Ozs7O0FBQVIsRUFBQSxtQkFBUSxZQUFVO0FBQUE7O0FBS2xFO0FBS0E7QUFMZ0IseUJBQUEsK0JBQUEsa0JBQUEsTUFBQSwyQkFBd0IsQ0FBQSxDQUFFO0FBSzFCLHlCQUFBLDZCQUFBLGtCQUFBLE1BQUEsOEJBQUEsR0FBQSxrQkFBQSxNQUFBLHdCQUFvQixLQUFLO0FBRWpDLFdBQUEsbUVBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUFBLElBc0NwRDtBQUFBO0FBQUEsSUE3Q0UsSUFBZ0IsY0FBVztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBM0IsSUFBZ0IsWUFBVyxPQUFBO0FBQUEseUJBQUEsK0JBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUszQixJQUFnQixXQUFRO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUF4QixJQUFnQixTQUFRLE9BQUE7QUFBQSx5QkFBQSw0QkFBQTtBQUFBLElBQUE7QUFBQSxJQUlMLFNBQU07QUFDdkIsWUFBTSwwQkFBMEIsS0FBSyxhQUFhLFNBQzlDLEtBQUssZ0NBQ0w7QUFDSixhQUFPO0FBQUEsZ0NBQ3FCLDBCQUEwQiwwQkFBMEIsT0FBTztBQUFBLFdBQ2hGLHVCQUF1QjtBQUFBO0FBQUEsUUFFMUIsS0FBSyxhQUFhLElBQUksQ0FBQyxhQUFvQjtBQUMzQyxlQUFPO0FBQUE7QUFBQTtBQUFBLG1CQUdJLFlBQVksT0FBTztBQUFBLG9CQUNsQix1QkFBdUIsVUFBVSxLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFJdEUsQ0FBQyxDQUFDO0FBQUE7QUFBQSxJQUVOO0FBQUE7QUFBQSxJQUdRLDhCQUEyQjtBQUNqQyxVQUFJLFFBQVE7QUFDWixZQUFNLDBCQUEwQixLQUFLLFlBQ2xDLElBQUksQ0FBQyxTQUFTLHVCQUF1QixNQUFNLEtBQUssVUFBVSxPQUFPLENBQUMsRUFDbEUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsZUFBZSxFQUM3QyxLQUFLLElBQUk7QUFFWixVQUFJLHlCQUF5QjtBQUMzQixnQkFBUSx1QkFBdUIsNEJBQTRCLEtBQUssVUFBVSxPQUFPLEVBQzlFLE9BQU8sR0FBRyxFQUNWLE9BQU8sdUJBQXVCO0FBQUEsTUFDbkM7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEtBNUNBLCtDQUtBOzsrQkFOQyxTQUFTLEVBQUUsV0FBVyxnQkFBZ0IsTUFBTSxNQUFBLENBQU8sQ0FBQztBQUlwRCwyQkFBQSxDQUFBLGFBQ0EsU0FBUyxFQUFFLE1BQU0sU0FBUyxTQUFTLE1BQU0sWUFBWSxLQUFBLENBQU0sQ0FBQztBQUo3RCxpQkFBQSxJQUFBLE1BQUEseUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxlQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGlCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsYUFBVyxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBWCxjQUFXO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLDJCQUFBLDhCQUFBO0FBSzNCLGlCQUFBLElBQUEsTUFBQSxzQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFlBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsY0FBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLFVBQVEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVIsV0FBUTtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSx3QkFBQSwyQkFBQTtBQVYxQixpQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBQ3lCLEdBQUEsU0FBeUIsT0FENUMsa0JBQUEsWUFBQSx1QkFBQSxHQUE0Qzs7OyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"seat-reservation-place-control.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAGrF,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKnG,OAAO,KAAK,EAAkB,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,gCAAgC,CAAC;AAIxC;;GAEG;AACH,qBAEM,qCAAsC,SAAQ,oBAAoB;IACtE,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,qDAAqD;IACrD,SAEgB,SAAS,EAAE,SAAS,CAAU;IAE9C,6DAA6D;IAC7D,SAEgB,KAAK,EAAE,UAAU,CAAU;IAE3C,sEAAsE;IACtE,SACgB,WAAW,EAAE,MAAM,EAAE,CAAM;IAE3C,0CAA0C;IAC1C,SAEgB,IAAI,EAAE,MAAM,CAAM;IAElC,4DAA4D;IAC5D,SAEgB,SAAS,EAAE,MAAM,CAAS;IAE1C,8DAA8D;IAC9D,SAEgB,UAAU,EAAE,MAAM,CAAS;IAE3C,kDAAkD;IAClD,SAEgB,YAAY,EAAE,OAAO,CAAS;IAE9C,wCAAwC;IACxC,SAEgB,QAAQ,EAAE,MAAM,CAAa;IAE7C,OAAO,CAAC,SAAS,CAAmC;;cAQjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAUzD,MAAM,IAAI,cAAc;IAuC3C,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,yBAAyB;IAejC,yGAAyG;IACzG,OAAO,CAAC,YAAY;CA4BrB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,oCAAoC,EAAE,qCAAqC,CAAC;KAC7E;CACF"}
1
+ {"version":3,"file":"seat-reservation-place-control.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAGrF,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKnG,OAAO,KAAK,EAAkB,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,gCAAgC,CAAC;AAIxC;;GAEG;AACH,qBAEM,qCAAsC,SAAQ,oBAAoB;IACtE,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,qDAAqD;IACrD,SAEgB,SAAS,EAAE,SAAS,CAAU;IAE9C,6DAA6D;IAC7D,SAEgB,KAAK,EAAE,UAAU,CAAU;IAE3C,sEAAsE;IACtE,SACgB,WAAW,EAAE,MAAM,EAAE,CAAM;IAE3C,0CAA0C;IAC1C,SAEgB,IAAI,EAAE,MAAM,CAAM;IAElC,4DAA4D;IAC5D,SAEgB,SAAS,EAAE,MAAM,CAAS;IAE1C,8DAA8D;IAC9D,SAEgB,UAAU,EAAE,MAAM,CAAS;IAE3C,kDAAkD;IAClD,SAEgB,YAAY,EAAE,OAAO,CAAS;IAE9C,wCAAwC;IACxC,SAEgB,QAAQ,EAAE,MAAM,CAAa;IAE7C,OAAO,CAAC,SAAS,CAAmC;;cAOjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAUzD,MAAM,IAAI,cAAc;IAuC3C,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,yBAAyB;IAkBjC,yGAAyG;IACzG,OAAO,CAAC,YAAY;CA4BrB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,oCAAoC,EAAE,qCAAqC,CAAC;KAC7E;CACF"}
@@ -95,7 +95,8 @@ const style = css`*,
95
95
  position: absolute;
96
96
  inset-block-start: calc(var(--sbb-seat-reservation-place-control-top) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
97
97
  inset-inline-start: calc(var(--sbb-seat-reservation-place-control-left) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
98
- cursor: pointer;
98
+ font-weight: 300;
99
+ cursor: var(--sbb-cursor-pointer);
99
100
  }
100
101
 
101
102
  :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {
@@ -285,7 +286,6 @@ let SbbSeatReservationPlaceControlElement = (() => {
285
286
  __privateSet(this, _keyfocus_accessor_storage, (__runInitializers(this, _preventClick_extraInitializers), __runInitializers(this, _keyfocus_initializers, "unfocus")));
286
287
  this._language = (__runInitializers(this, _keyfocus_extraInitializers), new SbbLanguageController(this));
287
288
  this.addEventListener("click", () => this._selectPlace());
288
- this.addEventListener("focus", () => this.scrollIntoView({ behavior: "smooth" }));
289
289
  }
290
290
  /** placeType of the place, e.g. 'SEAT', 'BICYCLE' */
291
291
  get placeType() {
@@ -395,7 +395,7 @@ let SbbSeatReservationPlaceControlElement = (() => {
395
395
  let description = getI18nSeatReservation(translationKey, this._language.current, [this.text]);
396
396
  if (this.propertyIds.length) {
397
397
  description += ". " + getI18nSeatReservation("PLACE_PROPERTY", this._language.current).concat(": ");
398
- description += this.propertyIds.map((propertyId) => getI18nSeatReservation(propertyId, this._language.current)).join(", ");
398
+ description += this.propertyIds.map((propertyId) => getI18nSeatReservation("PLACE_PROPERTIES." + propertyId, this._language.current)).filter((value) => value).join(", ");
399
399
  }
400
400
  return description;
401
401
  }
@@ -464,4 +464,4 @@ let SbbSeatReservationPlaceControlElement = (() => {
464
464
  export {
465
465
  SbbSeatReservationPlaceControlElement
466
466
  };
467
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkJ1dHRvbkJhc2VFbGVtZW50IH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHR5cGUgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24gfSBmcm9tICcuLi9jb21tb24uanMnO1xuaW1wb3J0IHR5cGUgeyBQbGFjZVNlbGVjdGlvbiwgUGxhY2VTdGF0ZSwgUGxhY2VUeXBlIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0ICcuLi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBPdXRwdXQgdGhlIGdyYXBoaWMgb2YgYSBzZWF0IG9yIGEgYmljeWNsZSBwbGFjZSBhcyBhIGNvbnRyb2wgZWxlbWVudC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbCcpXG5jbGFzcyBTYmJTZWF0UmVzZXJ2YXRpb25QbGFjZUNvbnRyb2xFbGVtZW50IGV4dGVuZHMgU2JiQnV0dG9uQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgc2VsZWN0cGxhY2U6ICdzZWxlY3RwbGFjZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIHBsYWNlVHlwZSBvZiB0aGUgcGxhY2UsIGUuZy4gJ1NFQVQnLCAnQklDWUNMRScgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3R5cGUnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwbGFjZVR5cGU6IFBsYWNlVHlwZSA9ICdTRUFUJztcblxuICAvKiogc3RhdGUgb2YgdGhlIHBsYWNlLCBlLmcuICdGUkVFJywgJ1NFTEVDVEVEJywgJ0JMT0NLRUQnICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzdGF0ZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIHN0YXRlOiBQbGFjZVN0YXRlID0gJ0ZSRUUnO1xuXG4gIC8qKiBwcm9wZXJ0eSBpZHMgb2YgdGhlIHBsYWNlLCB0byBkaXNwbGF5IG1vcmUgaW5mbyBhYm91dCB0aGUgcGxhY2UgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJvcGVydHlJZHMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJvcGVydHlJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqIGxhYmVsIG9mIHRoZSBwbGFjZSwgZS5nLiAnMUEnLCAnMkInICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0ZXh0JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGV4dDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIERlY2sgSW5kZXggUHJvcCB0byBpZGVudGlmaWVyIHRoZSByaWdodCBwbGFjZSB0byBkZWNrICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkZWNrLWluZGV4JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkZWNrSW5kZXg6IG51bWJlciA9IG51bGwhO1xuXG4gIC8qKiBDb2FjaCBJbmRleCBQcm9wIHRvIGlkZW50aWZpZXIgdGhlIHJpZ2h0IHBsYWNlIHRvIGNvYWNoICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjb2FjaC1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY29hY2hJbmRleDogbnVtYmVyID0gbnVsbCE7XG5cbiAgLyoqIFByZXZlbnQgY2xpY2sgcHJvcCBwcmV2ZW50IGFueSBwbGFjZSBhY3Rpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3ByZXZlbnQtY2xpY2snLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwcmV2ZW50Q2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2V0IHRoZSBwbGFjZSBmb2N1cyBvdXRsaW5lIHN0eWxlICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdrZXlmb2N1cycgfSlcbiAgcHVibGljIGFjY2Vzc29yIGtleWZvY3VzOiBzdHJpbmcgPSAndW5mb2N1cyc7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLl9zZWxlY3RQbGFjZSgpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2tleWZvY3VzJykpIHtcbiAgICAgIGlmICh0aGlzLmtleWZvY3VzID09PSAnZm9jdXMnKSB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSB0aGlzLl9nZXRQbGFjZVN2Zyh0aGlzLnBsYWNlVHlwZSwgdGhpcy5zdGF0ZSk7XG4gICAgY29uc3QgdHlwZTogc3RyaW5nID0gdGhpcy50eXBlLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgc3RhdGU6IHN0cmluZyA9IHRoaXMuc3RhdGUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCB0ZXh0OiBzdHJpbmcgfCBudWxsID0gdGhpcy50ZXh0O1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5zdHlsZT8uZ2V0UHJvcGVydHlWYWx1ZSgnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXdpZHRoJyk7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5zdHlsZT8uZ2V0UHJvcGVydHlWYWx1ZSgnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWhlaWdodCcpO1xuICAgIGNvbnN0IHJvdGF0aW9uID0gdGhpcy5zdHlsZT8uZ2V0UHJvcGVydHlWYWx1ZSgnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXJvdGF0aW9uJyk7XG4gICAgY29uc3QgdGV4dFJvdGF0aW9uID0gdGhpcy5zdHlsZT8uZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtdGV4dC1yb3RhdGlvbicsXG4gICAgKTtcbiAgICBjb25zdCBpbnZlcnNlUm90YXRpb25QbGFjZUNoZWNrSWNvbiA9IE51bWJlcih0ZXh0Um90YXRpb24pIC0gTnVtYmVyKHJvdGF0aW9uKTtcbiAgICBjb25zdCBkaXNhYmxlZENsYXNzID0gdGhpcy5wcmV2ZW50Q2xpY2sgPyAnc2JiLXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtLWRpc2FibGVkJyA6IG51bGw7XG5cbiAgICB0aGlzLnRpdGxlID0gdGhpcy5fZ2V0VGl0bGVEZXNjcmlwdGlvblBsYWNlKCk7XG4gICAgdGhpcy50YWJJbmRleCA9IC0xO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIHBhcnQ9XCJzYmItc3ItcGxhY2UtcGFydFwiXG4gICAgICAgIGNsYXNzPVwic2JiLXNyLXBsYWNlLWN0cmwgc2JiLXNyLXBsYWNlLWN0cmwtLW9yaWVudGF0aW9uLSR7cm90YXRpb259IHNiYi1zci1wbGFjZS1jdHJsLS1zdGF0ZS0ke3N0YXRlfSBzYmItc3ItcGxhY2UtY3RybC0tdHlwZS0ke3R5cGV9ICR7ZGlzYWJsZWRDbGFzc31cIlxuICAgICAgPlxuICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpY1xuICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy13aWR0aCc6IHdpZHRoLFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQnOiBoZWlnaHQsXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXJvdGF0aW9uJzogcm90YXRpb24sXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWludmVyc2Utcm90YXRpb24nOiBpbnZlcnNlUm90YXRpb25QbGFjZUNoZWNrSWNvbixcbiAgICAgICAgICB9KX1cbiAgICAgICAgICAubmFtZT0ke25hbWV9XG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYz5cbiAgICAgICAgPHNwYW4gJHt0aGlzLnRleHQgPz8gbm90aGluZ30gY2xhc3M9XCJzYmItc3ItcGxhY2UtY3RybF9fdGV4dFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgPiR7dGV4dH08L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBsYWNlU3ZnKHR5cGU6IFBsYWNlVHlwZSwgc3RhdGU6IFBsYWNlU3RhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlIGFzIHN0cmluZztcbiAgICBjb25zdCBzdGF0ZVN0cmluZyA9IHN0YXRlIGFzIHN0cmluZztcbiAgICByZXR1cm4gYFBMQUNFXyR7dHlwZVN0cmluZ31fJHtzdGF0ZVN0cmluZ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGl0bGVEZXNjcmlwdGlvblBsYWNlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSAnUExBQ0VfQ09OVFJPTF8nICsgdGhpcy50eXBlICsgJ18nICsgdGhpcy5zdGF0ZTtcbiAgICBsZXQgZGVzY3JpcHRpb24gPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKHRyYW5zbGF0aW9uS2V5LCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbdGhpcy50ZXh0XSk7XG5cbiAgICBpZiAodGhpcy5wcm9wZXJ0eUlkcy5sZW5ndGgpIHtcbiAgICAgIGRlc2NyaXB0aW9uICs9XG4gICAgICAgICcuICcgKyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdQTEFDRV9QUk9QRVJUWScsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLmNvbmNhdCgnOiAnKTtcbiAgICAgIGRlc2NyaXB0aW9uICs9IHRoaXMucHJvcGVydHlJZHNcbiAgICAgICAgLm1hcCgocHJvcGVydHlJZCkgPT4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihwcm9wZXJ0eUlkLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSlcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICB9XG5cbiAgLyoqIElmIHRoZSBwbGFjZSBzZWxlY3RhYmxlLCB3ZSBlbWl0IHRoZSBwbGFjZVNlbGVjdGlvbiBvYmplY3Qgd2hpY2ggY29udGFpbnMgaW5mb3MgdG8gdGhlIHBsYWNlIHN0YXRlICovXG4gIHByaXZhdGUgX3NlbGVjdFBsYWNlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGFibGUgPSAodGhpcy5zdGF0ZSA9PT0gJ0ZSRUUnIHx8IHRoaXMuc3RhdGUgPT09ICdTRUxFQ1RFRCcpICYmICF0aGlzLnByZXZlbnRDbGljaztcblxuICAgIGlmIChzZWxlY3RhYmxlKSB7XG4gICAgICB0aGlzLnN0YXRlID0gdGhpcy5zdGF0ZSA9PT0gJ0ZSRUUnID8gJ1NFTEVDVEVEJyA6ICdGUkVFJztcbiAgICAgIGNvbnN0IHBsYWNlU2VsZWN0aW9uOiBQbGFjZVNlbGVjdGlvbiA9IHtcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIGRlY2tJbmRleDogdGhpcy5kZWNrSW5kZXgsXG4gICAgICAgIGNvYWNoSW5kZXg6IHRoaXMuY29hY2hJbmRleCxcbiAgICAgICAgbnVtYmVyOiB0aGlzLnRleHQsXG4gICAgICAgIHN0YXRlOiB0aGlzLnN0YXRlLFxuICAgICAgICBwbGFjZVR5cGU6IHRoaXMucGxhY2VUeXBlLFxuICAgICAgfTtcblxuICAgICAgLyoqXG4gICAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8UGxhY2VTZWxlY3Rpb24+fVxuICAgICAgICogRW1pdHMgd2hlbiBhIHBsYWNlIHdhcyBzZWxlY3RlZCB2aWEgdXNlciBpbnRlcmFjdGlvbiBhbmQgcmV0dXJucyBhXG4gICAgICAgKiBQbGFjZVNlbGVjdGlvbiBvYmplY3Qgd2l0aCBuZWNlc3NhcnkgcGxhY2UgaW5mb3JtYXRpb24uXG4gICAgICAgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50PFBsYWNlU2VsZWN0aW9uPignc2VsZWN0cGxhY2UnLCB7XG4gICAgICAgICAgZGV0YWlsOiBwbGFjZVNlbGVjdGlvbixcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sJzogU2JiU2VhdFJlc2VydmF0aW9uUGxhY2VDb250cm9sRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
467
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkJ1dHRvbkJhc2VFbGVtZW50IH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHR5cGUgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24gfSBmcm9tICcuLi9jb21tb24uanMnO1xuaW1wb3J0IHR5cGUgeyBQbGFjZVNlbGVjdGlvbiwgUGxhY2VTdGF0ZSwgUGxhY2VUeXBlIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0ICcuLi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBPdXRwdXQgdGhlIGdyYXBoaWMgb2YgYSBzZWF0IG9yIGEgYmljeWNsZSBwbGFjZSBhcyBhIGNvbnRyb2wgZWxlbWVudC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbCcpXG5jbGFzcyBTYmJTZWF0UmVzZXJ2YXRpb25QbGFjZUNvbnRyb2xFbGVtZW50IGV4dGVuZHMgU2JiQnV0dG9uQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgc2VsZWN0cGxhY2U6ICdzZWxlY3RwbGFjZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIHBsYWNlVHlwZSBvZiB0aGUgcGxhY2UsIGUuZy4gJ1NFQVQnLCAnQklDWUNMRScgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3R5cGUnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwbGFjZVR5cGU6IFBsYWNlVHlwZSA9ICdTRUFUJztcblxuICAvKiogc3RhdGUgb2YgdGhlIHBsYWNlLCBlLmcuICdGUkVFJywgJ1NFTEVDVEVEJywgJ0JMT0NLRUQnICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzdGF0ZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIHN0YXRlOiBQbGFjZVN0YXRlID0gJ0ZSRUUnO1xuXG4gIC8qKiBwcm9wZXJ0eSBpZHMgb2YgdGhlIHBsYWNlLCB0byBkaXNwbGF5IG1vcmUgaW5mbyBhYm91dCB0aGUgcGxhY2UgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJvcGVydHlJZHMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJvcGVydHlJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqIGxhYmVsIG9mIHRoZSBwbGFjZSwgZS5nLiAnMUEnLCAnMkInICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0ZXh0JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGV4dDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIERlY2sgSW5kZXggUHJvcCB0byBpZGVudGlmaWVyIHRoZSByaWdodCBwbGFjZSB0byBkZWNrICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkZWNrLWluZGV4JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkZWNrSW5kZXg6IG51bWJlciA9IG51bGwhO1xuXG4gIC8qKiBDb2FjaCBJbmRleCBQcm9wIHRvIGlkZW50aWZpZXIgdGhlIHJpZ2h0IHBsYWNlIHRvIGNvYWNoICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjb2FjaC1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY29hY2hJbmRleDogbnVtYmVyID0gbnVsbCE7XG5cbiAgLyoqIFByZXZlbnQgY2xpY2sgcHJvcCBwcmV2ZW50IGFueSBwbGFjZSBhY3Rpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3ByZXZlbnQtY2xpY2snLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwcmV2ZW50Q2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2V0IHRoZSBwbGFjZSBmb2N1cyBvdXRsaW5lIHN0eWxlICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdrZXlmb2N1cycgfSlcbiAgcHVibGljIGFjY2Vzc29yIGtleWZvY3VzOiBzdHJpbmcgPSAndW5mb2N1cyc7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLl9zZWxlY3RQbGFjZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygna2V5Zm9jdXMnKSkge1xuICAgICAgaWYgKHRoaXMua2V5Zm9jdXMgPT09ICdmb2N1cycpIHtcbiAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IHRoaXMuX2dldFBsYWNlU3ZnKHRoaXMucGxhY2VUeXBlLCB0aGlzLnN0YXRlKTtcbiAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSB0aGlzLnR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzdGF0ZTogc3RyaW5nID0gdGhpcy5zdGF0ZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHRleHQ6IHN0cmluZyB8IG51bGwgPSB0aGlzLnRleHQ7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLnN0eWxlPy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGgnKTtcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLnN0eWxlPy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtaGVpZ2h0Jyk7XG4gICAgY29uc3Qgcm90YXRpb24gPSB0aGlzLnN0eWxlPy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtcm90YXRpb24nKTtcbiAgICBjb25zdCB0ZXh0Um90YXRpb24gPSB0aGlzLnN0eWxlPy5nZXRQcm9wZXJ0eVZhbHVlKFxuICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXJvdGF0aW9uJyxcbiAgICApO1xuICAgIGNvbnN0IGludmVyc2VSb3RhdGlvblBsYWNlQ2hlY2tJY29uID0gTnVtYmVyKHRleHRSb3RhdGlvbikgLSBOdW1iZXIocm90YXRpb24pO1xuICAgIGNvbnN0IGRpc2FibGVkQ2xhc3MgPSB0aGlzLnByZXZlbnRDbGljayA/ICdzYmItcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0tZGlzYWJsZWQnIDogbnVsbDtcblxuICAgIHRoaXMudGl0bGUgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2UoKTtcbiAgICB0aGlzLnRhYkluZGV4ID0gLTE7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgcGFydD1cInNiYi1zci1wbGFjZS1wYXJ0XCJcbiAgICAgICAgY2xhc3M9XCJzYmItc3ItcGxhY2UtY3RybCBzYmItc3ItcGxhY2UtY3RybC0tb3JpZW50YXRpb24tJHtyb3RhdGlvbn0gc2JiLXNyLXBsYWNlLWN0cmwtLXN0YXRlLSR7c3RhdGV9IHNiYi1zci1wbGFjZS1jdHJsLS10eXBlLSR7dHlwZX0gJHtkaXNhYmxlZENsYXNzfVwiXG4gICAgICA+XG4gICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXdpZHRoJzogd2lkdGgsXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWhlaWdodCc6IGhlaWdodCxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24nOiByb3RhdGlvbixcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaW52ZXJzZS1yb3RhdGlvbic6IGludmVyc2VSb3RhdGlvblBsYWNlQ2hlY2tJY29uLFxuICAgICAgICAgIH0pfVxuICAgICAgICAgIC5uYW1lPSR7bmFtZX1cbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICA8c3BhbiAke3RoaXMudGV4dCA/PyBub3RoaW5nfSBjbGFzcz1cInNiYi1zci1wbGFjZS1jdHJsX190ZXh0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+JHt0ZXh0fTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGxhY2VTdmcodHlwZTogUGxhY2VUeXBlLCBzdGF0ZTogUGxhY2VTdGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHN0YXRlU3RyaW5nID0gc3RhdGUgYXMgc3RyaW5nO1xuICAgIHJldHVybiBgUExBQ0VfJHt0eXBlU3RyaW5nfV8ke3N0YXRlU3RyaW5nfWA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2UoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmFuc2xhdGlvbktleSA9ICdQTEFDRV9DT05UUk9MXycgKyB0aGlzLnR5cGUgKyAnXycgKyB0aGlzLnN0YXRlO1xuICAgIGxldCBkZXNjcmlwdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24odHJhbnNsYXRpb25LZXksIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFt0aGlzLnRleHRdKTtcblxuICAgIGlmICh0aGlzLnByb3BlcnR5SWRzLmxlbmd0aCkge1xuICAgICAgZGVzY3JpcHRpb24gKz1cbiAgICAgICAgJy4gJyArIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ1BMQUNFX1BST1BFUlRZJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkuY29uY2F0KCc6ICcpO1xuICAgICAgZGVzY3JpcHRpb24gKz0gdGhpcy5wcm9wZXJ0eUlkc1xuICAgICAgICAubWFwKChwcm9wZXJ0eUlkKSA9PlxuICAgICAgICAgIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ1BMQUNFX1BST1BFUlRJRVMuJyArIHByb3BlcnR5SWQsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLFxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSlcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICB9XG5cbiAgLyoqIElmIHRoZSBwbGFjZSBzZWxlY3RhYmxlLCB3ZSBlbWl0IHRoZSBwbGFjZVNlbGVjdGlvbiBvYmplY3Qgd2hpY2ggY29udGFpbnMgaW5mb3MgdG8gdGhlIHBsYWNlIHN0YXRlICovXG4gIHByaXZhdGUgX3NlbGVjdFBsYWNlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGFibGUgPSAodGhpcy5zdGF0ZSA9PT0gJ0ZSRUUnIHx8IHRoaXMuc3RhdGUgPT09ICdTRUxFQ1RFRCcpICYmICF0aGlzLnByZXZlbnRDbGljaztcblxuICAgIGlmIChzZWxlY3RhYmxlKSB7XG4gICAgICB0aGlzLnN0YXRlID0gdGhpcy5zdGF0ZSA9PT0gJ0ZSRUUnID8gJ1NFTEVDVEVEJyA6ICdGUkVFJztcbiAgICAgIGNvbnN0IHBsYWNlU2VsZWN0aW9uOiBQbGFjZVNlbGVjdGlvbiA9IHtcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIGRlY2tJbmRleDogdGhpcy5kZWNrSW5kZXgsXG4gICAgICAgIGNvYWNoSW5kZXg6IHRoaXMuY29hY2hJbmRleCxcbiAgICAgICAgbnVtYmVyOiB0aGlzLnRleHQsXG4gICAgICAgIHN0YXRlOiB0aGlzLnN0YXRlLFxuICAgICAgICBwbGFjZVR5cGU6IHRoaXMucGxhY2VUeXBlLFxuICAgICAgfTtcblxuICAgICAgLyoqXG4gICAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8UGxhY2VTZWxlY3Rpb24+fVxuICAgICAgICogRW1pdHMgd2hlbiBhIHBsYWNlIHdhcyBzZWxlY3RlZCB2aWEgdXNlciBpbnRlcmFjdGlvbiBhbmQgcmV0dXJucyBhXG4gICAgICAgKiBQbGFjZVNlbGVjdGlvbiBvYmplY3Qgd2l0aCBuZWNlc3NhcnkgcGxhY2UgaW5mb3JtYXRpb24uXG4gICAgICAgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50PFBsYWNlU2VsZWN0aW9uPignc2VsZWN0cGxhY2UnLCB7XG4gICAgICAgICAgZGV0YWlsOiBwbGFjZVNlbGVjdGlvbixcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sJzogU2JiU2VhdFJlc2VydmF0aW9uUGxhY2VDb250cm9sRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-experimental",
3
- "version": "3.12.0",
3
+ "version": "3.13.0",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
@@ -11,7 +11,7 @@
11
11
  "type": "module",
12
12
  "customElements": "custom-elements.json",
13
13
  "peerDependencies": {
14
- "@sbb-esta/lyne-elements": "3.12.0"
14
+ "@sbb-esta/lyne-elements": "3.13.0"
15
15
  },
16
16
  "dependencies": {
17
17
  "lit": "^3.3.1",
@@ -9,16 +9,18 @@ export declare const mapRawDataToSeatReservation: (vehicleType: VehicleType) =>
9
9
  * @param coachIndex
10
10
  * @returns PlaceSelection
11
11
  */
12
- export declare const mapPlaceInfosToPlaceSelection: (place: Place, deckIndex: number, coachIndex: number) => PlaceSelection;
12
+ export declare const mapPlaceInfosToPlaceSelection: (place: Place, placeId: string, deckIndex: number, coachIndex: number) => PlaceSelection;
13
13
  /**
14
14
  * Mapped information from place, coach and the coachindex to the seatReservationPlaceSelection.
15
15
  * This Object information is emitted outwards
16
16
  * @param place
17
17
  * @param coach
18
+ * @param placeId
19
+ * @param coachDeckIndex
18
20
  * @param coachIndex
19
21
  * @returns SeatReservationPlaceSelection
20
22
  */
21
- export declare const mapPlaceAndCoachToSeatReservationPlaceSelection: (place: Place, coach: CoachItem, deckIndex: number, coachIndex: number) => SeatReservationPlaceSelection;
23
+ export declare const mapPlaceAndCoachToSeatReservationPlaceSelection: (place: Place, coach: CoachItem, placeId: string, deckIndex: number, coachIndex: number) => SeatReservationPlaceSelection;
22
24
  /**
23
25
  * Mapped coach information to coach selection
24
26
  * @param coachIndex
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/common/mapper/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,KAAK,EACL,cAAc,EAEd,eAAe,EACf,6BAA6B,EAC7B,4BAA4B,EAC5B,WAAW,EACZ,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,eAAO,MAAM,2BAA2B,GAAI,aAAa,WAAW,KAAG,eAmFtE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GACxC,OAAO,KAAK,EACZ,WAAW,MAAM,EACjB,YAAY,MAAM,KACjB,cAWF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,+CAA+C,GAC1D,OAAO,KAAK,EACZ,OAAO,SAAS,EAChB,WAAW,MAAM,EACjB,YAAY,MAAM,KACjB,6BAcF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,GACxC,YAAY,MAAM,EAClB,OAAO,SAAS,EAChB,yBAAyB,uBAAuB,KAC/C,4BAUF,CAAC"}
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/common/mapper/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,KAAK,EACL,cAAc,EAEd,eAAe,EACf,6BAA6B,EAC7B,4BAA4B,EAC5B,WAAW,EACZ,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,eAAO,MAAM,2BAA2B,GAAI,aAAa,WAAW,KAAG,eAmFtE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GACxC,OAAO,KAAK,EACZ,SAAS,MAAM,EACf,WAAW,MAAM,EACjB,YAAY,MAAM,KACjB,cASF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,+CAA+C,GAC1D,OAAO,KAAK,EACZ,OAAO,SAAS,EAChB,SAAS,MAAM,EACf,WAAW,MAAM,EACjB,YAAY,MAAM,KACjB,6BAYF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,GACxC,YAAY,MAAM,EAClB,OAAO,SAAS,EAChB,yBAAyB,uBAAuB,KAC/C,4BAUF,CAAC"}
@@ -1,20 +1,20 @@
1
- import { MOCK_COACHES_RAW_0 as l, MOCK_COACHES_RAW_1 as h } from "./seat-reservation-sample-data.js";
2
- const u = (e) => {
3
- const o = (e === "TRAIN" ? l : h).map((a) => {
4
- const i = a?.coachDeckLayout, r = [], c = [], m = i.placeGroups.map((t) => (r.indexOf(t.travelClass) === -1 && r.push(t.travelClass), c.indexOf(t.accommodationSubType) === -1 && c.push(t.accommodationSubType), t.places?.map((s) => ({
5
- number: s?.number,
6
- state: s?.state,
1
+ import { MOCK_COACHES_RAW_0 as h, MOCK_COACHES_RAW_1 as l } from "./seat-reservation-sample-data.js";
2
+ const y = (e) => {
3
+ const s = (e === "TRAIN" ? h : l).map((a) => {
4
+ const o = a?.coachDeckLayout, r = [], c = [], d = o.placeGroups.map((t) => (r.indexOf(t.travelClass) === -1 && r.push(t.travelClass), c.indexOf(t.accommodationSubType) === -1 && c.push(t.accommodationSubType), t.places?.map((i) => ({
5
+ number: i?.number,
6
+ state: i?.state,
7
7
  type: t.accommodationSubType.indexOf("BICYCLE") === -1 ? "SEAT" : "BICYCLE",
8
- dimension: { w: s.rectangle.dimension.width, h: s.rectangle.dimension.height },
8
+ dimension: { w: i.rectangle.dimension.width, h: i.rectangle.dimension.height },
9
9
  position: {
10
- x: s.rectangle.position.x,
11
- y: s.rectangle.position.y,
12
- z: s.rectangle.position.z
10
+ x: i.rectangle.position.x,
11
+ y: i.rectangle.position.y,
12
+ z: i.rectangle.position.z
13
13
  },
14
- rotation: s?.orientation || 0,
14
+ rotation: i?.orientation || 0,
15
15
  travelClass: t?.travelClass,
16
- propertyIds: s.placeProperties || []
17
- })))).flat(), p = i.serviceIcons.map((t) => ({
16
+ propertyIds: i.placeProperties || []
17
+ })))).flat(), m = o.serviceIcons.map((t) => ({
18
18
  icon: t.type,
19
19
  position: {
20
20
  x: t.rectangle.position.x,
@@ -25,7 +25,7 @@ const u = (e) => {
25
25
  w: t.rectangle.dimension.width,
26
26
  h: t.rectangle.dimension.height
27
27
  }
28
- })), d = i.graphicElements.map((t) => ({
28
+ })), p = o.graphicElements.map((t) => ({
29
29
  icon: t?.type,
30
30
  position: {
31
31
  x: t.rectangle.position.x,
@@ -36,12 +36,12 @@ const u = (e) => {
36
36
  rotation: t.orientation
37
37
  }));
38
38
  return {
39
- id: i?.id,
40
- number: i?.name,
41
- dimension: { w: i.dimension?.width, h: i.dimension?.height },
42
- places: m,
43
- serviceElements: p,
44
- graphicElements: d,
39
+ id: o?.id,
40
+ number: o?.name,
41
+ dimension: { w: o.dimension?.width, h: o.dimension?.height },
42
+ places: d,
43
+ serviceElements: m,
44
+ graphicElements: p,
45
45
  travelClass: r,
46
46
  propertyIds: c
47
47
  };
@@ -50,37 +50,37 @@ const u = (e) => {
50
50
  vehicleType: e,
51
51
  deckCoachIndex: 0,
52
52
  deckCoachLevel: "SINGLE_DECK",
53
- coachItems: o
53
+ coachItems: s
54
54
  };
55
- }, y = (e, n, o) => ({
56
- id: "seat-reservation__place-button-" + n + "-" + o + "-" + e.number,
55
+ }, g = (e, n, s, a) => ({
56
+ id: n,
57
57
  number: e.number,
58
- deckIndex: n,
59
- coachIndex: o,
58
+ deckIndex: s,
59
+ coachIndex: a,
60
60
  state: e.state,
61
61
  placeType: e.type
62
- }), g = (e, n, o, a) => ({
63
- id: "seat-reservation__place-button-" + o + "-" + a + "-" + e.number,
62
+ }), u = (e, n, s, a, o) => ({
63
+ id: s,
64
64
  coachId: n.id,
65
65
  coachNumber: n.number,
66
- coachIndex: a,
67
- deckIndex: o,
66
+ coachIndex: o,
67
+ deckIndex: a,
68
68
  placeNumber: e.number,
69
69
  placeType: e.type,
70
70
  placeTravelClass: e.travelClass || "ANY_CLASS",
71
71
  propertyIds: e.propertyIds || []
72
- }), b = (e, n, o) => ({
72
+ }), T = (e, n, s) => ({
73
73
  coachId: n.id,
74
74
  coachNumber: n.number,
75
75
  coachIndex: e,
76
76
  coachType: n?.type,
77
77
  coachTravelClass: n?.travelClass,
78
78
  coachPropertyIds: n?.propertyIds,
79
- coachNumberOfFreePlaces: o
79
+ coachNumberOfFreePlaces: s
80
80
  });
81
81
  export {
82
- b as mapCoachInfosToCoachSelection,
83
- g as mapPlaceAndCoachToSeatReservationPlaceSelection,
84
- y as mapPlaceInfosToPlaceSelection,
85
- u as mapRawDataToSeatReservation
82
+ T as mapCoachInfosToCoachSelection,
83
+ u as mapPlaceAndCoachToSeatReservationPlaceSelection,
84
+ g as mapPlaceInfosToPlaceSelection,
85
+ y as mapRawDataToSeatReservation
86
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"seat-reservation-sample-data.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/common/mapper/seat-reservation-sample-data.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyjT9B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0hB9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4yBtC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA24nB7B,CAAC"}
1
+ {"version":3,"file":"seat-reservation-sample-data.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/common/mapper/seat-reservation-sample-data.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyjT9B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0iB9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4yBtC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA24nB7B,CAAC"}