@sbb-esta/lyne-elements-experimental 2.10.1 → 2.11.1

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 (166) hide show
  1. package/custom-elements.json +4357 -0
  2. package/development/seat-reservation/common/mapper/icon-mapper.d.ts +112 -0
  3. package/development/seat-reservation/common/mapper/icon-mapper.d.ts.map +1 -0
  4. package/development/seat-reservation/common/mapper/icon-mapper.js +72 -0
  5. package/development/seat-reservation/common/mapper/mapper.d.ts +29 -0
  6. package/development/seat-reservation/common/mapper/mapper.d.ts.map +1 -0
  7. package/development/seat-reservation/common/mapper/mapper.js +117 -0
  8. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts +225 -0
  9. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -0
  10. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.js +6152 -0
  11. package/development/seat-reservation/common/mapper.d.ts +3 -0
  12. package/development/seat-reservation/common/mapper.d.ts.map +1 -0
  13. package/development/seat-reservation/common/mapper.js +10 -0
  14. package/development/seat-reservation/common/svgs.d.ts +25 -0
  15. package/development/seat-reservation/common/svgs.d.ts.map +1 -0
  16. package/development/seat-reservation/common/svgs.js +48 -0
  17. package/development/seat-reservation/common/translations/i18n.d.ts +19 -0
  18. package/development/seat-reservation/common/translations/i18n.d.ts.map +1 -0
  19. package/development/seat-reservation/common/translations/i18n.js +462 -0
  20. package/development/seat-reservation/common/translations.d.ts +2 -0
  21. package/development/seat-reservation/common/translations.d.ts.map +1 -0
  22. package/development/seat-reservation/common/translations.js +5 -0
  23. package/development/seat-reservation/common/types.d.ts +71 -0
  24. package/development/seat-reservation/common/types.d.ts.map +1 -0
  25. package/development/seat-reservation/common/types.js +2 -0
  26. package/development/seat-reservation/common.d.ts +8 -0
  27. package/development/seat-reservation/common.d.ts.map +1 -0
  28. package/development/seat-reservation/common.js +14 -0
  29. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +157 -0
  30. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -0
  31. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +706 -0
  32. package/development/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts +29 -0
  33. package/development/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -0
  34. package/development/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +196 -0
  35. package/development/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts +5 -0
  36. package/development/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts.map +1 -0
  37. package/development/seat-reservation/seat-reservation/seat-reservation-scoped.js +5 -0
  38. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +62 -0
  39. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -0
  40. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +615 -0
  41. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts +18 -0
  42. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts.map +1 -0
  43. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +108 -0
  44. package/development/seat-reservation/seat-reservation-area.d.ts +5 -0
  45. package/development/seat-reservation/seat-reservation-area.d.ts.map +1 -0
  46. package/development/seat-reservation/seat-reservation-area.js +5 -0
  47. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.d.ts +9 -0
  48. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.d.ts.map +1 -0
  49. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +326 -0
  50. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts +29 -0
  51. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -0
  52. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +224 -0
  53. package/development/seat-reservation/seat-reservation-graphic.d.ts +5 -0
  54. package/development/seat-reservation/seat-reservation-graphic.d.ts.map +1 -0
  55. package/development/seat-reservation/seat-reservation-graphic.js +5 -0
  56. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +66 -0
  57. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -0
  58. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +576 -0
  59. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts +5 -0
  60. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts.map +1 -0
  61. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.js +5 -0
  62. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts +21 -0
  63. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +1 -0
  64. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +123 -0
  65. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts +5 -0
  66. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts.map +1 -0
  67. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.js +5 -0
  68. package/development/seat-reservation/seat-reservation-navigation.d.ts +6 -0
  69. package/development/seat-reservation/seat-reservation-navigation.d.ts.map +1 -0
  70. package/development/seat-reservation/seat-reservation-navigation.js +7 -0
  71. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +53 -0
  72. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -0
  73. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +446 -0
  74. package/development/seat-reservation/seat-reservation-place-control.d.ts +5 -0
  75. package/development/seat-reservation/seat-reservation-place-control.d.ts.map +1 -0
  76. package/development/seat-reservation/seat-reservation-place-control.js +5 -0
  77. package/development/seat-reservation/seat-reservation.d.ts +7 -0
  78. package/development/seat-reservation/seat-reservation.d.ts.map +1 -0
  79. package/development/seat-reservation/seat-reservation.js +9 -0
  80. package/development/seat-reservation.d.ts +10 -0
  81. package/development/seat-reservation.d.ts.map +1 -0
  82. package/development/seat-reservation.js +30 -0
  83. package/index.d.ts +14 -0
  84. package/index.js +14 -0
  85. package/package.json +52 -2
  86. package/seat-reservation/common/mapper/icon-mapper.d.ts +112 -0
  87. package/seat-reservation/common/mapper/icon-mapper.d.ts.map +1 -0
  88. package/seat-reservation/common/mapper/icon-mapper.js +71 -0
  89. package/seat-reservation/common/mapper/mapper.d.ts +29 -0
  90. package/seat-reservation/common/mapper/mapper.d.ts.map +1 -0
  91. package/seat-reservation/common/mapper/mapper.js +87 -0
  92. package/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts +225 -0
  93. package/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -0
  94. package/seat-reservation/common/mapper/seat-reservation-sample-data.js +6149 -0
  95. package/seat-reservation/common/mapper.d.ts +3 -0
  96. package/seat-reservation/common/mapper.d.ts.map +1 -0
  97. package/seat-reservation/common/mapper.js +9 -0
  98. package/seat-reservation/common/svgs.d.ts +25 -0
  99. package/seat-reservation/common/svgs.d.ts.map +1 -0
  100. package/seat-reservation/common/svgs.js +250 -0
  101. package/seat-reservation/common/translations/i18n.d.ts +19 -0
  102. package/seat-reservation/common/translations/i18n.d.ts.map +1 -0
  103. package/seat-reservation/common/translations/i18n.js +460 -0
  104. package/seat-reservation/common/translations.d.ts +2 -0
  105. package/seat-reservation/common/translations.d.ts.map +1 -0
  106. package/seat-reservation/common/translations.js +4 -0
  107. package/seat-reservation/common/types.d.ts +71 -0
  108. package/seat-reservation/common/types.d.ts.map +1 -0
  109. package/seat-reservation/common/types.js +1 -0
  110. package/seat-reservation/common.d.ts +8 -0
  111. package/seat-reservation/common.d.ts.map +1 -0
  112. package/seat-reservation/common.js +13 -0
  113. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +157 -0
  114. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -0
  115. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +435 -0
  116. package/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts +29 -0
  117. package/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -0
  118. package/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +107 -0
  119. package/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts +5 -0
  120. package/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts.map +1 -0
  121. package/seat-reservation/seat-reservation/seat-reservation-scoped.js +4 -0
  122. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts +62 -0
  123. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -0
  124. package/seat-reservation/seat-reservation/seat-reservation.component.js +404 -0
  125. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts +18 -0
  126. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts.map +1 -0
  127. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +49 -0
  128. package/seat-reservation/seat-reservation-area.d.ts +5 -0
  129. package/seat-reservation/seat-reservation-area.d.ts.map +1 -0
  130. package/seat-reservation/seat-reservation-area.js +4 -0
  131. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.d.ts +9 -0
  132. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.d.ts.map +1 -0
  133. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +317 -0
  134. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts +29 -0
  135. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -0
  136. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +113 -0
  137. package/seat-reservation/seat-reservation-graphic.d.ts +5 -0
  138. package/seat-reservation/seat-reservation-graphic.d.ts.map +1 -0
  139. package/seat-reservation/seat-reservation-graphic.js +4 -0
  140. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +66 -0
  141. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -0
  142. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +248 -0
  143. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts +5 -0
  144. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts.map +1 -0
  145. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.js +4 -0
  146. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts +21 -0
  147. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +1 -0
  148. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +80 -0
  149. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts +5 -0
  150. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts.map +1 -0
  151. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.js +4 -0
  152. package/seat-reservation/seat-reservation-navigation.d.ts +6 -0
  153. package/seat-reservation/seat-reservation-navigation.d.ts.map +1 -0
  154. package/seat-reservation/seat-reservation-navigation.js +6 -0
  155. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +53 -0
  156. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -0
  157. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +190 -0
  158. package/seat-reservation/seat-reservation-place-control.d.ts +5 -0
  159. package/seat-reservation/seat-reservation-place-control.d.ts.map +1 -0
  160. package/seat-reservation/seat-reservation-place-control.js +4 -0
  161. package/seat-reservation/seat-reservation.d.ts +7 -0
  162. package/seat-reservation/seat-reservation.d.ts.map +1 -0
  163. package/seat-reservation/seat-reservation.js +8 -0
  164. package/seat-reservation.d.ts +10 -0
  165. package/seat-reservation.d.ts.map +1 -0
  166. package/seat-reservation.js +29 -0
@@ -0,0 +1,576 @@
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
3
+ };
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
+ import { __runInitializers, __esDecorate } from "tslib";
9
+ import { SbbLanguageController } from "@sbb-esta/lyne-elements/core/controllers.js";
10
+ import { forceType } from "@sbb-esta/lyne-elements/core/decorators.js";
11
+ import { EventEmitter } from "@sbb-esta/lyne-elements/core/eventing.js";
12
+ import { css, LitElement, nothing, html } from "lit";
13
+ import { customElement, property } from "lit/decorators.js";
14
+ import { classMap } from "lit/directives/class-map.js";
15
+ import { getI18nSeatReservation } from "../../common/translations.js";
16
+ import "@sbb-esta/lyne-elements/screen-reader-only.js";
17
+ import "../seat-reservation-navigation-services.js";
18
+ const style = css`*,
19
+ ::before,
20
+ ::after {
21
+ box-sizing: border-box;
22
+ }
23
+
24
+ :host {
25
+ --sbb-seat-reservation-navigation-travelclass-spacing: 0.625rem;
26
+ --sbb-seat-reservation-navigation-btn-outline-color: var(--sbb-color-granite);
27
+ --sbb-seat-reservation-navigation-btn-outline-width: var(--sbb-border-width-1x);
28
+ --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-white);
29
+ --sbb-seat-reservation-navigation-btn-outline-color-selected: var(--sbb-color-black);
30
+ --sbb-seat-reservation-navigation-btn-outline-width-hover: var(--sbb-border-width-2x);
31
+ --sbb-seat-reservation-navigation-btn-background-color-hover: var(--sbb-color-cloud);
32
+ }
33
+
34
+ .sbb-sr-navigation__item-coach {
35
+ display: flex;
36
+ flex-direction: column;
37
+ gap: var(--sbb-spacing-fixed-2x);
38
+ width: var(--sbb-train-formation-wagon-width);
39
+ list-style-type: none;
40
+ }
41
+ .sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation--first-class, .sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation--first-class {
42
+ width: calc(100% - 1.125rem);
43
+ }
44
+ .sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation__ctrl-button:not(.sbb-seat-reservation-navigation-driver-area) {
45
+ border-start-start-radius: var(--sbb-border-radius-8x);
46
+ border-end-start-radius: var(--sbb-border-radius-8x);
47
+ }
48
+ .sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation--first-class {
49
+ margin-inline-start: var(--sbb-seat-reservation-navigation-travelclass-spacing);
50
+ }
51
+ .sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area) {
52
+ border-start-end-radius: var(--sbb-border-radius-8x);
53
+ border-end-end-radius: var(--sbb-border-radius-8x);
54
+ }
55
+ .sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation__additional-information {
56
+ padding-inline-end: var(--sbb-seat-reservation-navigation-travelclass-spacing);
57
+ }
58
+ .sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation--first-class {
59
+ margin-inline-end: var(--sbb-seat-reservation-navigation-travelclass-spacing);
60
+ }
61
+ .sbb-sr-navigation__item-coach.vertical-coach {
62
+ flex-direction: row;
63
+ }
64
+
65
+ .sbb-sr-navigation__ctrl-button {
66
+ -webkit-appearance: none;
67
+ -moz-appearance: none;
68
+ box-sizing: border-box;
69
+ margin: 0;
70
+ outline: none;
71
+ border: none;
72
+ border-radius: 0;
73
+ padding: 0;
74
+ background: none;
75
+ -webkit-tap-highlight-color: transparent;
76
+ color: inherit;
77
+ display: flex;
78
+ flex-direction: column;
79
+ justify-content: center;
80
+ height: 2.25rem;
81
+ position: relative;
82
+ outline: var(--sbb-seat-reservation-navigation-btn-outline-width) solid var(--sbb-seat-reservation-navigation-btn-outline-color);
83
+ border-radius: var(--sbb-border-radius-2x);
84
+ background-color: var(--sbb-seat-reservation-navigation-btn-background-color);
85
+ cursor: pointer;
86
+ }
87
+ .sbb-sr-navigation__ctrl-button.sbb-sr-navigation-driver-area {
88
+ border-radius: var(--sbb-border-radius-8x);
89
+ cursor: initial;
90
+ }
91
+
92
+ .sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button,
93
+ .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled], :disabled, .sbb-sr-navigation-driver-area),
94
+ .sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled, .sbb-sr-navigation-driver-area) {
95
+ --sbb-seat-reservation-navigation-btn-outline-width: var(
96
+ --sbb-seat-reservation-navigation-btn-outline-width-hover
97
+ );
98
+ --sbb-seat-reservation-navigation-btn-outline-color: var(--sbb-color-black);
99
+ }
100
+
101
+ .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled], :disabled) {
102
+ --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-silver);
103
+ }
104
+ .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled], :disabled) .sbb-sr-navigation__item-coach-travelclass {
105
+ background-color: var(--sbb-color-metal);
106
+ }
107
+ .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled], :disabled) .sbb-sr-navigation__item-coach-number {
108
+ color: var(--sbb-color-anthracite);
109
+ }
110
+
111
+ .sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button {
112
+ --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-milk);
113
+ }
114
+ .sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-travelclass {
115
+ background-color: var(--sbb-color-black);
116
+ }
117
+ .sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-number {
118
+ color: var(--sbb-color-black);
119
+ }
120
+
121
+ .sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled, .sbb-sr-navigation-driver-area) {
122
+ --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-cloud);
123
+ }
124
+ .sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled, .sbb-sr-navigation-driver-area) .sbb-sr-navigation__item-coach-travelclass {
125
+ background-color: var(--sbb-color-smoke);
126
+ }
127
+ .sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled, .sbb-sr-navigation-driver-area) .sbb-sr-navigation__item-coach-number {
128
+ color: var(--sbb-color-iron);
129
+ }
130
+
131
+ .sbb-sr-navigation__ctrl-button:is([disabled], :disabled) {
132
+ --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-white);
133
+ --sbb-seat-reservation-navigation-btn-outline-color: var(--sbb-color-platinum);
134
+ cursor: unset;
135
+ pointer-events: unset;
136
+ }
137
+ .sbb-sr-navigation__ctrl-button:is([disabled], :disabled) .sbb-sr-navigation__item-coach-travelclass {
138
+ background-color: var(--sbb-color-graphite);
139
+ }
140
+ .sbb-sr-navigation__ctrl-button:is([disabled], :disabled) .sbb-sr-navigation__item-coach-number {
141
+ color: var(--sbb-color-graphite);
142
+ }
143
+
144
+ .sbb-sr-navigation__additional-information {
145
+ display: flex;
146
+ justify-content: space-between;
147
+ align-items: center;
148
+ flex: 1;
149
+ column-gap: var(--sbb-spacing-fixed-2x);
150
+ padding-inline: 1rem 1rem;
151
+ font-family: var(--sbb-typo-font-family);
152
+ font-weight: 700;
153
+ color: var(--sbb-color-granite);
154
+ }
155
+ @media (forced-colors: active) {
156
+ .sbb-sr-navigation__additional-information {
157
+ color: var(--sbb-color-milk);
158
+ }
159
+ }
160
+
161
+ .sbb-sr-navigation__item-coach-number {
162
+ color: var(--sbb-color-granite);
163
+ }
164
+ @media (forced-colors: active) {
165
+ .sbb-sr-navigation__item-coach-number {
166
+ color: var(--sbb-color-granite);
167
+ }
168
+ }
169
+ @media (forced-colors: active) and (forced-colors: active) {
170
+ .sbb-sr-navigation__item-coach-number {
171
+ color: inherit;
172
+ }
173
+ }
174
+ .sbb-sr-navigation__item-coach-number .sbb-sr-navigation__item-coach-travelclass {
175
+ background-color: var(--sbb-color-charcoal);
176
+ }
177
+
178
+ .sbb-sr-navigation--first-class {
179
+ width: calc(100% - 0.5rem);
180
+ position: absolute;
181
+ inset-block-start: 0.1875rem;
182
+ inset-inline-start: 0.25rem;
183
+ border: var(--sbb-border-width-1x) solid transparent;
184
+ border-radius: var(--sbb-border-radius-1x);
185
+ margin: auto;
186
+ background-color: var(--sbb-color-lemon);
187
+ }
188
+
189
+ .sbb-sr-navigation__item-coach-travelclass {
190
+ display: flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ min-height: 1.25rem;
194
+ min-width: 1.25rem;
195
+ border-radius: var(--sbb-border-radius-1x);
196
+ text-align: center;
197
+ background-color: var(--sbb-color-granite);
198
+ color: var(--sbb-color-white);
199
+ }
200
+
201
+ .sbb-sr-navigation__item-coach.vertical-coach .sbb-sr-navigation__ctrl-button {
202
+ flex-direction: row-reverse;
203
+ height: 5rem;
204
+ min-width: 2.25rem;
205
+ }
206
+ .sbb-sr-navigation__item-coach.vertical-coach .sbb-sr-navigation__additional-information {
207
+ flex-direction: column-reverse;
208
+ padding-block: 1rem 1rem;
209
+ padding-inline-start: unset;
210
+ padding-inline-end: unset;
211
+ }
212
+ .sbb-sr-navigation__item-coach.vertical-coach .sbb-sr-navigation--first-class {
213
+ height: calc(100% - 0.5rem);
214
+ width: initial;
215
+ inset-inline-end: 0.1875rem;
216
+ inset-block-start: 0.25rem;
217
+ inset-inline-start: initial;
218
+ }
219
+ .sbb-sr-navigation__item-coach.vertical-coach.first-coach .sbb-sr-navigation--first-class, .sbb-sr-navigation__item-coach.vertical-coach.last-coach .sbb-sr-navigation--first-class {
220
+ height: calc(100% - 1.125rem);
221
+ }
222
+ .sbb-sr-navigation__item-coach.vertical-coach.first-coach:not(.last-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area) {
223
+ border-start-end-radius: var(--sbb-border-radius-8x);
224
+ border-end-start-radius: var(--sbb-border-radius-2x);
225
+ }
226
+ .sbb-sr-navigation__item-coach.vertical-coach.first-coach:not(.last-coach) .sbb-sr-navigation--first-class {
227
+ margin-block-start: var(--sbb-seat-reservation-navigation-travelclass-spacing);
228
+ margin-inline-start: initial;
229
+ }
230
+ .sbb-sr-navigation__item-coach.vertical-coach.last-coach:not(.first-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area) {
231
+ border-start-end-radius: var(--sbb-border-radius-2x);
232
+ border-end-start-radius: var(--sbb-border-radius-8x);
233
+ }
234
+ .sbb-sr-navigation__item-coach.vertical-coach.last-coach:not(.first-coach) .sbb-sr-navigation--first-class {
235
+ margin-block-end: var(--sbb-seat-reservation-navigation-travelclass-spacing);
236
+ margin-inline-end: initial;
237
+ }
238
+ .sbb-sr-navigation__item-coach.vertical-coach .sbb-sr-navigation-driver-area {
239
+ height: 5rem;
240
+ min-width: 2.25rem;
241
+ }`;
242
+ const MAX_SERVICE_PROPERTIES = 3;
243
+ let SbbSeatReservationNavigationCoachElement = (() => {
244
+ var _coachId_accessor_storage, _propertyIds_accessor_storage, _selected_accessor_storage, _focused_accessor_storage, _index_accessor_storage, _travelClass_accessor_storage, _driverArea_accessor_storage, _first_accessor_storage, _last_accessor_storage, _disable_accessor_storage, _vertical_accessor_storage, _a;
245
+ let _classDecorators = [customElement("sbb-seat-reservation-navigation-coach")];
246
+ let _classDescriptor;
247
+ let _classExtraInitializers = [];
248
+ let _classThis;
249
+ let _classSuper = LitElement;
250
+ let _coachId_decorators;
251
+ let _coachId_initializers = [];
252
+ let _coachId_extraInitializers = [];
253
+ let _propertyIds_decorators;
254
+ let _propertyIds_initializers = [];
255
+ let _propertyIds_extraInitializers = [];
256
+ let _selected_decorators;
257
+ let _selected_initializers = [];
258
+ let _selected_extraInitializers = [];
259
+ let _focused_decorators;
260
+ let _focused_initializers = [];
261
+ let _focused_extraInitializers = [];
262
+ let _index_decorators;
263
+ let _index_initializers = [];
264
+ let _index_extraInitializers = [];
265
+ let _travelClass_decorators;
266
+ let _travelClass_initializers = [];
267
+ let _travelClass_extraInitializers = [];
268
+ let _driverArea_decorators;
269
+ let _driverArea_initializers = [];
270
+ let _driverArea_extraInitializers = [];
271
+ let _first_decorators;
272
+ let _first_initializers = [];
273
+ let _first_extraInitializers = [];
274
+ let _last_decorators;
275
+ let _last_initializers = [];
276
+ let _last_extraInitializers = [];
277
+ let _disable_decorators;
278
+ let _disable_initializers = [];
279
+ let _disable_extraInitializers = [];
280
+ let _vertical_decorators;
281
+ let _vertical_initializers = [];
282
+ let _vertical_extraInitializers = [];
283
+ var SbbSeatReservationNavigationCoachElement2 = (_a = class extends _classSuper {
284
+ constructor() {
285
+ super(...arguments);
286
+ __privateAdd(this, _coachId_accessor_storage);
287
+ __privateAdd(this, _propertyIds_accessor_storage);
288
+ __privateAdd(this, _selected_accessor_storage);
289
+ __privateAdd(this, _focused_accessor_storage);
290
+ __privateAdd(this, _index_accessor_storage);
291
+ __privateAdd(this, _travelClass_accessor_storage);
292
+ __privateAdd(this, _driverArea_accessor_storage);
293
+ __privateAdd(this, _first_accessor_storage);
294
+ __privateAdd(this, _last_accessor_storage);
295
+ __privateAdd(this, _disable_accessor_storage);
296
+ __privateAdd(this, _vertical_accessor_storage);
297
+ __privateSet(this, _coachId_accessor_storage, __runInitializers(this, _coachId_initializers, ""));
298
+ __privateSet(this, _propertyIds_accessor_storage, (__runInitializers(this, _coachId_extraInitializers), __runInitializers(this, _propertyIds_initializers, [])));
299
+ __privateSet(this, _selected_accessor_storage, (__runInitializers(this, _propertyIds_extraInitializers), __runInitializers(this, _selected_initializers, false)));
300
+ __privateSet(this, _focused_accessor_storage, (__runInitializers(this, _selected_extraInitializers), __runInitializers(this, _focused_initializers, false)));
301
+ __privateSet(this, _index_accessor_storage, (__runInitializers(this, _focused_extraInitializers), __runInitializers(this, _index_initializers, 0)));
302
+ __privateSet(this, _travelClass_accessor_storage, (__runInitializers(this, _index_extraInitializers), __runInitializers(this, _travelClass_initializers, ["ANY_CLASS"])));
303
+ __privateSet(this, _driverArea_accessor_storage, (__runInitializers(this, _travelClass_extraInitializers), __runInitializers(this, _driverArea_initializers, false)));
304
+ __privateSet(this, _first_accessor_storage, (__runInitializers(this, _driverArea_extraInitializers), __runInitializers(this, _first_initializers, false)));
305
+ __privateSet(this, _last_accessor_storage, (__runInitializers(this, _first_extraInitializers), __runInitializers(this, _last_initializers, false)));
306
+ __privateSet(this, _disable_accessor_storage, (__runInitializers(this, _last_extraInitializers), __runInitializers(this, _disable_initializers, false)));
307
+ __privateSet(this, _vertical_accessor_storage, (__runInitializers(this, _disable_extraInitializers), __runInitializers(this, _vertical_initializers, false)));
308
+ this._language = (__runInitializers(this, _vertical_extraInitializers), new SbbLanguageController(this));
309
+ this.selectNavCoach = new EventEmitter(this, SbbSeatReservationNavigationCoachElement2.events.selectCoach);
310
+ this.focusNavCoach = new EventEmitter(this, SbbSeatReservationNavigationCoachElement2.events.focusCoach);
311
+ }
312
+ /** Coach ID, which is used to identify the coach in the navigation */
313
+ get coachId() {
314
+ return __privateGet(this, _coachId_accessor_storage);
315
+ }
316
+ set coachId(value) {
317
+ __privateSet(this, _coachId_accessor_storage, value);
318
+ }
319
+ /** Coach service property ids, which are used to display the services in the navigation */
320
+ get propertyIds() {
321
+ return __privateGet(this, _propertyIds_accessor_storage);
322
+ }
323
+ set propertyIds(value) {
324
+ __privateSet(this, _propertyIds_accessor_storage, value);
325
+ }
326
+ /* pre-selected Coach index property */
327
+ get selected() {
328
+ return __privateGet(this, _selected_accessor_storage);
329
+ }
330
+ set selected(value) {
331
+ __privateSet(this, _selected_accessor_storage, value);
332
+ }
333
+ /* focus Coach index property */
334
+ get focused() {
335
+ return __privateGet(this, _focused_accessor_storage);
336
+ }
337
+ set focused(value) {
338
+ __privateSet(this, _focused_accessor_storage, value);
339
+ }
340
+ get index() {
341
+ return __privateGet(this, _index_accessor_storage);
342
+ }
343
+ set index(value) {
344
+ __privateSet(this, _index_accessor_storage, value);
345
+ }
346
+ /** Travel class of the coach */
347
+ get travelClass() {
348
+ return __privateGet(this, _travelClass_accessor_storage);
349
+ }
350
+ set travelClass(value) {
351
+ __privateSet(this, _travelClass_accessor_storage, value);
352
+ }
353
+ /** If the coach is a driver/restricted area */
354
+ get driverArea() {
355
+ return __privateGet(this, _driverArea_accessor_storage);
356
+ }
357
+ set driverArea(value) {
358
+ __privateSet(this, _driverArea_accessor_storage, value);
359
+ }
360
+ /** If the coach is the first in the navigation */
361
+ get first() {
362
+ return __privateGet(this, _first_accessor_storage);
363
+ }
364
+ set first(value) {
365
+ __privateSet(this, _first_accessor_storage, value);
366
+ }
367
+ /** If the coach is the last in the navigation */
368
+ get last() {
369
+ return __privateGet(this, _last_accessor_storage);
370
+ }
371
+ set last(value) {
372
+ __privateSet(this, _last_accessor_storage, value);
373
+ }
374
+ /** Disable the coach navigation */
375
+ get disable() {
376
+ return __privateGet(this, _disable_accessor_storage);
377
+ }
378
+ set disable(value) {
379
+ __privateSet(this, _disable_accessor_storage, value);
380
+ }
381
+ /** If the coach navigation should be displayed vertically */
382
+ get vertical() {
383
+ return __privateGet(this, _vertical_accessor_storage);
384
+ }
385
+ set vertical(value) {
386
+ __privateSet(this, _vertical_accessor_storage, value);
387
+ }
388
+ willUpdate(changedProperties) {
389
+ var _a2, _b;
390
+ super.willUpdate(changedProperties);
391
+ if (changedProperties.has("selected")) {
392
+ const selectedNavButtonElement = (_a2 = this.shadowRoot) == null ? void 0 : _a2.querySelector(".sbb-sr-navigation__ctrl-button");
393
+ if (this.selected && selectedNavButtonElement) {
394
+ selectedNavButtonElement.focus();
395
+ this.focusNavCoach.emit();
396
+ }
397
+ }
398
+ if (changedProperties.has("focused") && this.focused) {
399
+ const focusedNavButtonElement = (_b = this.shadowRoot) == null ? void 0 : _b.querySelector(".sbb-sr-navigation__ctrl-button");
400
+ if (focusedNavButtonElement) {
401
+ focusedNavButtonElement.focus();
402
+ }
403
+ }
404
+ }
405
+ /**
406
+ * Render a maximum of 3 of the service sign icons (slice(0,3)) regardless of the input from Backend,
407
+ * otherwise the layout could be destroyed. Furthermore, we have to filter out the value ANY_SEAT,
408
+ * since this is also passed as a property and does not need to be used here
409
+ *
410
+ * @protected
411
+ */
412
+ render() {
413
+ var _a2;
414
+ this.propertyIds = this.propertyIds.filter((propertyId) => propertyId !== "ANY_SEAT").slice(0, MAX_SERVICE_PROPERTIES);
415
+ return html`
416
+ <div
417
+ class="${classMap({
418
+ "sbb-sr-navigation__item-coach": true,
419
+ "last-coach": this.last,
420
+ "first-coach": this.first,
421
+ "vertical-coach": this.vertical,
422
+ "sbb-sr-navigation__item-coach--selected": this.selected
423
+ })}"
424
+ >
425
+ ${this._getNavigationButton()}
426
+ ${((_a2 = this.propertyIds) == null ? void 0 : _a2.length) ? html`<sbb-seat-reservation-navigation-services
427
+ ?vertical="${this.vertical}"
428
+ .propertyIds="${this.propertyIds}"
429
+ ></sbb-seat-reservation-navigation-services>` : nothing}
430
+ </div>
431
+ `;
432
+ }
433
+ _getNavigationButton() {
434
+ const currServiceClassNumber = this._getCoachServiceClassNumber();
435
+ const titleDescriptionNavCoachButton = this._getTitleDescriptionNavCoachButton(currServiceClassNumber);
436
+ const ariaDescriptionCoachServices = this._getAriaDescriptionCoachServices();
437
+ return html` <button
438
+ type="button"
439
+ ?disabled="${this.disable}"
440
+ class="${classMap({
441
+ "sbb-sr-navigation__ctrl-button": true,
442
+ "sbb-sr-navigation-driver-area": this.driverArea
443
+ })}"
444
+ title="${titleDescriptionNavCoachButton}"
445
+ aria-describedby="nav-coach-service-descriptions-${this.index}"
446
+ @click=${() => this._selectNavCoach(this.index)}
447
+ >
448
+ ${this._getBtnInformation(currServiceClassNumber)}
449
+ </button>
450
+ <sbb-screen-reader-only id="nav-coach-service-descriptions-${this.index}"
451
+ >${ariaDescriptionCoachServices}</sbb-screen-reader-only
452
+ >`;
453
+ }
454
+ _getBtnInformation(serviceClassNumber) {
455
+ var _a2;
456
+ if (this.driverArea) {
457
+ return null;
458
+ }
459
+ return html`
460
+ ${serviceClassNumber === 1 ? html`<span class="sbb-sr-navigation--first-class"></span>` : nothing}
461
+ ${((_a2 = this.travelClass) == null ? void 0 : _a2.length) > 0 || this.coachId ? html`<div class="sbb-sr-navigation__additional-information">
462
+ ${this.coachId ? html`<div class="sbb-sr-navigation__item-coach-number" aria-hidden="true">
463
+ ${this.coachId}
464
+ </div>` : nothing}
465
+ <div
466
+ ${serviceClassNumber ?? nothing}
467
+ class="sbb-sr-navigation__item-coach-travelclass"
468
+ aria-hidden="true"
469
+ >
470
+ ${serviceClassNumber}
471
+ </div>
472
+ </div>` : nothing}
473
+ `;
474
+ }
475
+ _getTitleDescriptionNavCoachButton(serviceClassNumber) {
476
+ if (this.driverArea) {
477
+ return getI18nSeatReservation("NAVIGATE_COACH_BLOCKED", this._language.current, [
478
+ this.coachId
479
+ ]);
480
+ }
481
+ let label = getI18nSeatReservation("NAVIGATE_TO_COACH", this._language.current, [this.coachId]);
482
+ if (serviceClassNumber) {
483
+ const serviceClassTranslationKey = serviceClassNumber === 1 ? "SERVICE_CLASS_FIRST" : "SERVICE_CLASS_SECOND";
484
+ const serviceClassTranslation = getI18nSeatReservation(serviceClassTranslationKey, this._language.current);
485
+ const serviceClassLabel = getI18nSeatReservation("NAVIGATE_TO_COACH_SERVICE_CLASS_SUB", this._language.current, [serviceClassTranslation]);
486
+ label = label.concat(serviceClassLabel);
487
+ }
488
+ return label;
489
+ }
490
+ _getAriaDescriptionCoachServices() {
491
+ let ariaDescrition = null;
492
+ if (this.propertyIds.length) {
493
+ ariaDescrition = getI18nSeatReservation("COACH_AVAILABLE_SERVICES", this._language.current) + ": ";
494
+ ariaDescrition += this.propertyIds.map((propertyId) => getI18nSeatReservation(propertyId, this._language.current)).join();
495
+ }
496
+ return ariaDescrition;
497
+ }
498
+ /**
499
+ * emits the index of the coach array for the main navigation.
500
+ * @param coachIndex
501
+ * @private
502
+ */
503
+ _selectNavCoach(coachIndex) {
504
+ if (!this.driverArea) {
505
+ this.selectNavCoach.emit(coachIndex);
506
+ }
507
+ }
508
+ _getCoachServiceClassNumber() {
509
+ var _a2, _b;
510
+ if ((_a2 = this.travelClass) == null ? void 0 : _a2.includes("FIRST")) {
511
+ return 1;
512
+ } else if ((_b = this.travelClass) == null ? void 0 : _b.includes("SECOND")) {
513
+ return 2;
514
+ } else {
515
+ return null;
516
+ }
517
+ }
518
+ }, _coachId_accessor_storage = new WeakMap(), _propertyIds_accessor_storage = new WeakMap(), _selected_accessor_storage = new WeakMap(), _focused_accessor_storage = new WeakMap(), _index_accessor_storage = new WeakMap(), _travelClass_accessor_storage = new WeakMap(), _driverArea_accessor_storage = new WeakMap(), _first_accessor_storage = new WeakMap(), _last_accessor_storage = new WeakMap(), _disable_accessor_storage = new WeakMap(), _vertical_accessor_storage = new WeakMap(), _classThis = _a, (() => {
519
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
520
+ _coachId_decorators = [forceType(), property({ attribute: "coach-id" })];
521
+ _propertyIds_decorators = [property({ attribute: "property-ids", type: Array })];
522
+ _selected_decorators = [forceType(), property({ type: Boolean })];
523
+ _focused_decorators = [forceType(), property({ type: Boolean })];
524
+ _index_decorators = [forceType(), property({ type: Number })];
525
+ _travelClass_decorators = [property({ attribute: "travel-class", type: Array })];
526
+ _driverArea_decorators = [forceType(), property({ attribute: "driver-area", type: Boolean })];
527
+ _first_decorators = [forceType(), property({ type: Boolean })];
528
+ _last_decorators = [forceType(), property({ type: Boolean })];
529
+ _disable_decorators = [forceType(), property({ attribute: "disable", type: Boolean })];
530
+ _vertical_decorators = [forceType(), property({ type: Boolean })];
531
+ __esDecorate(_a, null, _coachId_decorators, { kind: "accessor", name: "coachId", static: false, private: false, access: { has: (obj) => "coachId" in obj, get: (obj) => obj.coachId, set: (obj, value) => {
532
+ obj.coachId = value;
533
+ } }, metadata: _metadata }, _coachId_initializers, _coachId_extraInitializers);
534
+ __esDecorate(_a, null, _propertyIds_decorators, { kind: "accessor", name: "propertyIds", static: false, private: false, access: { has: (obj) => "propertyIds" in obj, get: (obj) => obj.propertyIds, set: (obj, value) => {
535
+ obj.propertyIds = value;
536
+ } }, metadata: _metadata }, _propertyIds_initializers, _propertyIds_extraInitializers);
537
+ __esDecorate(_a, null, _selected_decorators, { kind: "accessor", name: "selected", static: false, private: false, access: { has: (obj) => "selected" in obj, get: (obj) => obj.selected, set: (obj, value) => {
538
+ obj.selected = value;
539
+ } }, metadata: _metadata }, _selected_initializers, _selected_extraInitializers);
540
+ __esDecorate(_a, null, _focused_decorators, { kind: "accessor", name: "focused", static: false, private: false, access: { has: (obj) => "focused" in obj, get: (obj) => obj.focused, set: (obj, value) => {
541
+ obj.focused = value;
542
+ } }, metadata: _metadata }, _focused_initializers, _focused_extraInitializers);
543
+ __esDecorate(_a, null, _index_decorators, { kind: "accessor", name: "index", static: false, private: false, access: { has: (obj) => "index" in obj, get: (obj) => obj.index, set: (obj, value) => {
544
+ obj.index = value;
545
+ } }, metadata: _metadata }, _index_initializers, _index_extraInitializers);
546
+ __esDecorate(_a, null, _travelClass_decorators, { kind: "accessor", name: "travelClass", static: false, private: false, access: { has: (obj) => "travelClass" in obj, get: (obj) => obj.travelClass, set: (obj, value) => {
547
+ obj.travelClass = value;
548
+ } }, metadata: _metadata }, _travelClass_initializers, _travelClass_extraInitializers);
549
+ __esDecorate(_a, null, _driverArea_decorators, { kind: "accessor", name: "driverArea", static: false, private: false, access: { has: (obj) => "driverArea" in obj, get: (obj) => obj.driverArea, set: (obj, value) => {
550
+ obj.driverArea = value;
551
+ } }, metadata: _metadata }, _driverArea_initializers, _driverArea_extraInitializers);
552
+ __esDecorate(_a, null, _first_decorators, { kind: "accessor", name: "first", static: false, private: false, access: { has: (obj) => "first" in obj, get: (obj) => obj.first, set: (obj, value) => {
553
+ obj.first = value;
554
+ } }, metadata: _metadata }, _first_initializers, _first_extraInitializers);
555
+ __esDecorate(_a, null, _last_decorators, { kind: "accessor", name: "last", static: false, private: false, access: { has: (obj) => "last" in obj, get: (obj) => obj.last, set: (obj, value) => {
556
+ obj.last = value;
557
+ } }, metadata: _metadata }, _last_initializers, _last_extraInitializers);
558
+ __esDecorate(_a, null, _disable_decorators, { kind: "accessor", name: "disable", static: false, private: false, access: { has: (obj) => "disable" in obj, get: (obj) => obj.disable, set: (obj, value) => {
559
+ obj.disable = value;
560
+ } }, metadata: _metadata }, _disable_initializers, _disable_extraInitializers);
561
+ __esDecorate(_a, null, _vertical_decorators, { kind: "accessor", name: "vertical", static: false, private: false, access: { has: (obj) => "vertical" in obj, get: (obj) => obj.vertical, set: (obj, value) => {
562
+ obj.vertical = value;
563
+ } }, metadata: _metadata }, _vertical_initializers, _vertical_extraInitializers);
564
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
565
+ SbbSeatReservationNavigationCoachElement2 = _classThis = _classDescriptor.value;
566
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
567
+ })(), _a.styles = style, _a.events = {
568
+ selectCoach: "selectCoach",
569
+ focusCoach: "focusCoach"
570
+ }, __runInitializers(_classThis, _classExtraInitializers), _a);
571
+ return SbbSeatReservationNavigationCoachElement2 = _classThis;
572
+ })();
573
+ export {
574
+ SbbSeatReservationNavigationCoachElement
575
+ };
576
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIG5vdGhpbmcsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi90cmFuc2xhdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBQbGFjZVRyYXZlbENsYXNzIH0gZnJvbSAnLi4vLi4vY29tbW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmpzJztcblxuY29uc3QgTUFYX1NFUlZJQ0VfUFJPUEVSVElFUyA9IDM7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdENvYWNoRXZlbnREZXRhaWxzID0gbnVtYmVyO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgZGlzcGxheSB0aGUgbmF2aWdhdGlvbiBjb2FjaCBpdGVtIGZvciBTZWF0IHJlc2VydmF0aW9uLlxuICpcbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2VsZWN0Q29hY2hFdmVudERldGFpbHM+fSBzZWxlY3RDb2FjaCAtIEVtaXRzIHdoZW4gYSBjb2FjaCB3aXRoaW4gdGhlIG5hdmlnYXRpb24gd2FzIHNlbGVjdGVkIGFuZCByZXR1cm5zIHRoZSBjbGlja2VkIGNvYWNoIG5hdiBpbmRleFxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZm9jdXNDb2FjaCAtIEVtaXRzIHdoZW4gYSBuYXYgY29hY2ggaGFzIHRoZSBmb2N1c1xuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25Db2FjaEVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdENvYWNoOiAnc2VsZWN0Q29hY2gnLFxuICAgIGZvY3VzQ29hY2g6ICdmb2N1c0NvYWNoJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogQ29hY2ggSUQsIHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNvYWNoIGluIHRoZSBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjb2FjaC1pZCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSWQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBDb2FjaCBzZXJ2aWNlIHByb3BlcnR5IGlkcywgd2hpY2ggYXJlIHVzZWQgdG8gZGlzcGxheSB0aGUgc2VydmljZXMgaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJvcGVydHktaWRzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHByb3BlcnR5SWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qIHByZS1zZWxlY3RlZCBDb2FjaCBpbmRleCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiBmb2N1cyBDb2FjaCBpbmRleCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluZGV4OiBudW1iZXIgPSAwO1xuXG4gIC8qKiBUcmF2ZWwgY2xhc3Mgb2YgdGhlIGNvYWNoICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RyYXZlbC1jbGFzcycsIHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmF2ZWxDbGFzczogUGxhY2VUcmF2ZWxDbGFzc1tdID0gWydBTllfQ0xBU1MnXTtcblxuICAvKiogSWYgdGhlIGNvYWNoIGlzIGEgZHJpdmVyL3Jlc3RyaWN0ZWQgYXJlYSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZHJpdmVyLWFyZWEnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkcml2ZXJBcmVhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIElmIHRoZSBjb2FjaCBpcyB0aGUgZmlyc3QgaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGZpcnN0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIElmIHRoZSBjb2FjaCBpcyB0aGUgbGFzdCBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbGFzdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBjb2FjaCBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJZiB0aGUgY29hY2ggbmF2aWdhdGlvbiBzaG91bGQgYmUgZGlzcGxheWVkIHZlcnRpY2FsbHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKiBFbWl0cyB3aGVuIGEgY29hY2ggd2l0aGluIHRoZSBuYXZpZ2F0aW9uIHdhcyBzZWxlY3RlZCAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0TmF2Q29hY2g6IEV2ZW50RW1pdHRlcjxTZWxlY3RDb2FjaEV2ZW50RGV0YWlscz4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudC5ldmVudHMuc2VsZWN0Q29hY2gsXG4gICk7XG4gIHByb3RlY3RlZCBmb2N1c05hdkNvYWNoOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudC5ldmVudHMuZm9jdXNDb2FjaCxcbiAgKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NlbGVjdGVkJykpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nLFxuICAgICAgKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkICYmIHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudCkge1xuICAgICAgICBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5mb2N1c05hdkNvYWNoLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdmb2N1c2VkJykgJiYgdGhpcy5mb2N1c2VkKSB7XG4gICAgICBjb25zdCBmb2N1c2VkTmF2QnV0dG9uRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nLFxuICAgICAgKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgIGlmIChmb2N1c2VkTmF2QnV0dG9uRWxlbWVudCkge1xuICAgICAgICBmb2N1c2VkTmF2QnV0dG9uRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgYSBtYXhpbXVtIG9mIDMgb2YgdGhlIHNlcnZpY2Ugc2lnbiBpY29ucyAoc2xpY2UoMCwzKSkgcmVnYXJkbGVzcyBvZiB0aGUgaW5wdXQgZnJvbSBCYWNrZW5kLFxuICAgKiBvdGhlcndpc2UgdGhlIGxheW91dCBjb3VsZCBiZSBkZXN0cm95ZWQuIEZ1cnRoZXJtb3JlLCB3ZSBoYXZlIHRvIGZpbHRlciBvdXQgdGhlIHZhbHVlIEFOWV9TRUFULFxuICAgKiBzaW5jZSB0aGlzIGlzIGFsc28gcGFzc2VkIGFzIGEgcHJvcGVydHkgYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgdXNlZCBoZXJlXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRoaXMucHJvcGVydHlJZHMgPSB0aGlzLnByb3BlcnR5SWRzXG4gICAgICAuZmlsdGVyKChwcm9wZXJ0eUlkKSA9PiBwcm9wZXJ0eUlkICE9PSAnQU5ZX1NFQVQnKVxuICAgICAgLnNsaWNlKDAsIE1BWF9TRVJWSUNFX1BST1BFUlRJRVMpO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCc6IHRydWUsXG4gICAgICAgICAgJ2xhc3QtY29hY2gnOiB0aGlzLmxhc3QsXG4gICAgICAgICAgJ2ZpcnN0LWNvYWNoJzogdGhpcy5maXJzdCxcbiAgICAgICAgICAndmVydGljYWwtY29hY2gnOiB0aGlzLnZlcnRpY2FsLFxuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0tc2VsZWN0ZWQnOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgICB9KX1cIlxuICAgICAgPlxuICAgICAgICAke3RoaXMuX2dldE5hdmlnYXRpb25CdXR0b24oKX1cbiAgICAgICAgJHt0aGlzLnByb3BlcnR5SWRzPy5sZW5ndGhcbiAgICAgICAgICA/IGh0bWxgPHNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXNcbiAgICAgICAgICAgICAgP3ZlcnRpY2FsPVwiJHt0aGlzLnZlcnRpY2FsfVwiXG4gICAgICAgICAgICAgIC5wcm9wZXJ0eUlkcz1cIiR7dGhpcy5wcm9wZXJ0eUlkc31cIlxuICAgICAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcz5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5hdmlnYXRpb25CdXR0b24oKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyU2VydmljZUNsYXNzTnVtYmVyID0gdGhpcy5fZ2V0Q29hY2hTZXJ2aWNlQ2xhc3NOdW1iZXIoKTtcbiAgICBjb25zdCB0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24gPVxuICAgICAgdGhpcy5fZ2V0VGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uKGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIpO1xuICAgIGNvbnN0IGFyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMgPSB0aGlzLl9nZXRBcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzKCk7XG5cbiAgICByZXR1cm4gaHRtbGAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgP2Rpc2FibGVkPVwiJHt0aGlzLmRpc2FibGV9XCJcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJzogdHJ1ZSxcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEnOiB0aGlzLmRyaXZlckFyZWEsXG4gICAgICAgIH0pfVwiXG4gICAgICAgIHRpdGxlPVwiJHt0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b259XCJcbiAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm5hdi1jb2FjaC1zZXJ2aWNlLWRlc2NyaXB0aW9ucy0ke3RoaXMuaW5kZXh9XCJcbiAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fc2VsZWN0TmF2Q29hY2godGhpcy5pbmRleCl9XG4gICAgICA+XG4gICAgICAgICR7dGhpcy5fZ2V0QnRuSW5mb3JtYXRpb24oY3VyclNlcnZpY2VDbGFzc051bWJlcil9XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGlkPVwibmF2LWNvYWNoLXNlcnZpY2UtZGVzY3JpcHRpb25zLSR7dGhpcy5pbmRleH1cIlxuICAgICAgICA+JHthcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgPmA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRCdG5JbmZvcm1hdGlvbihzZXJ2aWNlQ2xhc3NOdW1iZXI6IG51bWJlciB8IG51bGwpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICh0aGlzLmRyaXZlckFyZWEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXIgPT09IDFcbiAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzXCI+PC9zcGFuPmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgICAgJHt0aGlzLnRyYXZlbENsYXNzPy5sZW5ndGggPiAwIHx8IHRoaXMuY29hY2hJZFxuICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uXCI+XG4gICAgICAgICAgICAke3RoaXMuY29hY2hJZFxuICAgICAgICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLmNvYWNoSWR9XG4gICAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyID8/IG5vdGhpbmd9XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3NcIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAke3NlcnZpY2VDbGFzc051bWJlcn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUaXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24oc2VydmljZUNsYXNzTnVtYmVyOiBudW1iZXIgfCBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kcml2ZXJBcmVhKSB7XG4gICAgICByZXR1cm4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignTkFWSUdBVEVfQ09BQ0hfQkxPQ0tFRCcsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgICAgdGhpcy5jb2FjaElkLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgbGV0IGxhYmVsID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignTkFWSUdBVEVfVE9fQ09BQ0gnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbdGhpcy5jb2FjaElkXSk7XG5cbiAgICAvL0lmIHNlcnZpY2UgY2xhc3MgZXhpc3QsIHRoZW4gZXhwYW5kIGxhYmVsIHdpdGggc2VydmljZSBjbGFzcyB0cmFuc2xhdGlvblxuICAgIGlmIChzZXJ2aWNlQ2xhc3NOdW1iZXIpIHtcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uS2V5ID1cbiAgICAgICAgc2VydmljZUNsYXNzTnVtYmVyID09PSAxID8gJ1NFUlZJQ0VfQ0xBU1NfRklSU1QnIDogJ1NFUlZJQ0VfQ0xBU1NfU0VDT05EJztcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgc2VydmljZUNsYXNzVHJhbnNsYXRpb25LZXksXG4gICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICApO1xuICAgICAgY29uc3Qgc2VydmljZUNsYXNzTGFiZWwgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAnTkFWSUdBVEVfVE9fQ09BQ0hfU0VSVklDRV9DTEFTU19TVUInLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICBbc2VydmljZUNsYXNzVHJhbnNsYXRpb25dLFxuICAgICAgKTtcbiAgICAgIGxhYmVsID0gbGFiZWwuY29uY2F0KHNlcnZpY2VDbGFzc0xhYmVsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICBwcml2YXRlIF9nZXRBcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCBhcmlhRGVzY3JpdGlvbiA9IG51bGw7XG4gICAgaWYgKHRoaXMucHJvcGVydHlJZHMubGVuZ3RoKSB7XG4gICAgICBhcmlhRGVzY3JpdGlvbiA9XG4gICAgICAgIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0FWQUlMQUJMRV9TRVJWSUNFUycsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpICsgJzogJztcbiAgICAgIGFyaWFEZXNjcml0aW9uICs9IHRoaXMucHJvcGVydHlJZHNcbiAgICAgICAgLm1hcCgocHJvcGVydHlJZCkgPT4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihwcm9wZXJ0eUlkLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSlcbiAgICAgICAgLmpvaW4oKTtcbiAgICB9XG4gICAgcmV0dXJuIGFyaWFEZXNjcml0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIGVtaXRzIHRoZSBpbmRleCBvZiB0aGUgY29hY2ggYXJyYXkgZm9yIHRoZSBtYWluIG5hdmlnYXRpb24uXG4gICAqIEBwYXJhbSBjb2FjaEluZGV4XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9zZWxlY3ROYXZDb2FjaChjb2FjaEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJpdmVyQXJlYSkge1xuICAgICAgdGhpcy5zZWxlY3ROYXZDb2FjaC5lbWl0KGNvYWNoSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldENvYWNoU2VydmljZUNsYXNzTnVtYmVyKCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLnRyYXZlbENsYXNzPy5pbmNsdWRlcygnRklSU1QnKSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyYXZlbENsYXNzPy5pbmNsdWRlcygnU0VDT05EJykpIHtcbiAgICAgIHJldHVybiAyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gnOiBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uQ29hY2hFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLE1BQU0seUJBQXlCO0lBWXpCLDRDQUF3QyxNQUFBOzswQkFEN0MsY0FBYyx1Q0FBdUMsQ0FBQzs7OztvQkFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFSQSxNQUFBQSw2Q0FBQSxtQkFBUSxZQUFVO0FBQUE7O0FBVS9EO0FBSUE7QUFLQTtBQUtBO0FBSUE7QUFJQTtBQUtBO0FBS0E7QUFLQTtBQUtBO0FBS0E7QUEvQ2dCLHlCQUFBLDJCQUFBLGtCQUFBLE1BQUEsdUJBQWtCLEVBQUU7QUFJcEIseUJBQUEsZ0NBQUEsa0JBQUEsTUFBQSwwQkFBQSxHQUFBLGtCQUFBLE1BQUEsMkJBQXdCLENBQUEsQ0FBRTtBQUsxQix5QkFBQSw2QkFBQSxrQkFBQSxNQUFBLDhCQUFBLEdBQUEsa0JBQUEsTUFBQSx3QkFBb0IsS0FBSztBQUt6Qix5QkFBQSw0QkFBQSxrQkFBQSxNQUFBLDJCQUFBLEdBQUEsa0JBQUEsTUFBQSx1QkFBbUIsS0FBSztBQUl4Qix5QkFBQSwwQkFBQSxrQkFBQSxNQUFBLDBCQUFBLEdBQUEsa0JBQUEsTUFBQSxxQkFBZ0IsQ0FBQztBQUlpQix5QkFBQSxnQ0FBQSxrQkFBQSxNQUFBLHdCQUFBLEdBQUEsa0JBQUEsTUFBQSwyQkFBQSxDQUFDLFdBQVcsQ0FBQztBQUsvQyx5QkFBQSwrQkFBQSxrQkFBQSxNQUFBLDhCQUFBLEdBQUEsa0JBQUEsTUFBQSwwQkFBc0IsS0FBSztBQUszQix5QkFBQSwwQkFBQSxrQkFBQSxNQUFBLDZCQUFBLEdBQUEsa0JBQUEsTUFBQSxxQkFBaUIsS0FBSztBQUt0Qix5QkFBQSx5QkFBQSxrQkFBQSxNQUFBLHdCQUFBLEdBQUEsa0JBQUEsTUFBQSxvQkFBZ0IsS0FBSztBQUtyQix5QkFBQSw0QkFBQSxrQkFBQSxNQUFBLHVCQUFBLEdBQUEsa0JBQUEsTUFBQSx1QkFBbUIsS0FBSztBQUt4Qix5QkFBQSw2QkFBQSxrQkFBQSxNQUFBLDBCQUFBLEdBQUEsa0JBQUEsTUFBQSx3QkFBb0IsS0FBSztBQUVqQyxXQUFBLG1FQUFZLElBQUksc0JBQXNCLElBQUk7QUFHeEMsV0FBQSxpQkFBd0QsSUFBSSxhQUNwRSxNQUNBQSwwQ0FBeUMsT0FBTyxXQUFXO0FBRW5ELFdBQUEsZ0JBQW9DLElBQUksYUFDaEQsTUFDQUEsMENBQXlDLE9BQU8sVUFBVTtBQUFBLElBQUE7QUFBQTtBQUFBLElBMUQ1RCxJQUFnQixVQUFxQjtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBckMsSUFBZ0IsUUFBcUIsT0FBQTtBQUFBLHlCQUFBLDJCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFJckMsSUFBZ0IsY0FBMkI7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQTNDLElBQWdCLFlBQTJCLE9BQUE7QUFBQSx5QkFBQSwrQkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBSzNDLElBQWdCLFdBQTBCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUExQyxJQUFnQixTQUEwQixPQUFBO0FBQUEseUJBQUEsNEJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUsxQyxJQUFnQixVQUF5QjtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBekMsSUFBZ0IsUUFBeUIsT0FBQTtBQUFBLHlCQUFBLDJCQUFBO0FBQUEsSUFBQTtBQUFBLElBSXpDLElBQWdCLFFBQWtCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFsQyxJQUFnQixNQUFrQixPQUFBO0FBQUEseUJBQUEseUJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUlsQyxJQUFnQixjQUFnRDtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBaEUsSUFBZ0IsWUFBZ0QsT0FBQTtBQUFBLHlCQUFBLCtCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLaEUsSUFBZ0IsYUFBNEI7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQTVDLElBQWdCLFdBQTRCLE9BQUE7QUFBQSx5QkFBQSw4QkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBSzVDLElBQWdCLFFBQXVCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUF2QyxJQUFnQixNQUF1QixPQUFBO0FBQUEseUJBQUEseUJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUt2QyxJQUFnQixPQUFzQjtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBdEMsSUFBZ0IsS0FBc0IsT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLdEMsSUFBZ0IsVUFBeUI7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXpDLElBQWdCLFFBQXlCLE9BQUE7QUFBQSx5QkFBQSwyQkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBS3pDLElBQWdCLFdBQTBCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUExQyxJQUFnQixTQUEwQixPQUFBO0FBQUEseUJBQUEsNEJBQUE7QUFBQSxJQUFBO0FBQUEsSUFjdkIsV0FBVyxtQkFBdUM7O0FBQ25FLFlBQU0sV0FBVyxpQkFBaUI7QUFFOUIsVUFBQSxrQkFBa0IsSUFBSSxVQUFVLEdBQUc7QUFDckMsY0FBTSw0QkFBMkJDLE1BQUEsS0FBSyxlQUFMLGdCQUFBQSxJQUFpQixjQUNoRDtBQUVFLFlBQUEsS0FBSyxZQUFZLDBCQUEwQjtBQUM3QyxtQ0FBeUIsTUFBSztBQUM5QixlQUFLLGNBQWM7O01BQ3JCO0FBR0YsVUFBSSxrQkFBa0IsSUFBSSxTQUFTLEtBQUssS0FBSyxTQUFTO0FBQ3BELGNBQU0sMkJBQTBCLFVBQUssZUFBTCxtQkFBaUIsY0FDL0M7QUFFRixZQUFJLHlCQUF5QjtBQUMzQixrQ0FBd0IsTUFBSztBQUFBLFFBQUE7QUFBQSxNQUMvQjtBQUFBLElBQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBVWlCLFNBQU07O0FBQ2xCLFdBQUEsY0FBYyxLQUFLLFlBQ3JCLE9BQU8sQ0FBQyxlQUFlLGVBQWUsVUFBVSxFQUNoRCxNQUFNLEdBQUcsc0JBQXNCO0FBQzNCLGFBQUE7QUFBQTtBQUFBLGlCQUVNLFNBQVM7QUFBQSxRQUNoQixpQ0FBaUM7QUFBQSxRQUNqQyxjQUFjLEtBQUs7QUFBQSxRQUNuQixlQUFlLEtBQUs7QUFBQSxRQUNwQixrQkFBa0IsS0FBSztBQUFBLFFBQ3ZCLDJDQUEyQyxLQUFLO0FBQUEsTUFBQSxDQUNqRCxDQUFDO0FBQUE7QUFBQSxVQUVBLEtBQUsscUJBQXNCLENBQUE7QUFBQSxZQUMzQkEsTUFBQSxLQUFLLGdCQUFMLGdCQUFBQSxJQUFrQixVQUNoQjtBQUFBLDJCQUNlLEtBQUssUUFBUTtBQUFBLDhCQUNWLEtBQUssV0FBVztBQUFBLDREQUVsQyxPQUFPO0FBQUE7QUFBQTtBQUFBLElBQUE7QUFBQSxJQUtULHVCQUFvQjtBQUNwQixZQUFBLHlCQUF5QixLQUFLO0FBQzlCLFlBQUEsaUNBQ0osS0FBSyxtQ0FBbUMsc0JBQXNCO0FBQzFELFlBQUEsK0JBQStCLEtBQUs7QUFFbkMsYUFBQTtBQUFBO0FBQUEscUJBRVUsS0FBSyxPQUFPO0FBQUEsaUJBQ2hCLFNBQVM7QUFBQSxRQUNoQixrQ0FBa0M7QUFBQSxRQUNsQyxpQ0FBaUMsS0FBSztBQUFBLE1BQUEsQ0FDdkMsQ0FBQztBQUFBLGlCQUNPLDhCQUE4QjtBQUFBLDJEQUNZLEtBQUssS0FBSztBQUFBLGlCQUNwRCxNQUFNLEtBQUssZ0JBQWdCLEtBQUssS0FBSyxDQUFDO0FBQUE7QUFBQSxVQUU3QyxLQUFLLG1CQUFtQixzQkFBc0IsQ0FBQztBQUFBO0FBQUEsbUVBRVUsS0FBSyxLQUFLO0FBQUEsV0FDbEUsNEJBQTRCO0FBQUE7QUFBQSxJQUFBO0FBQUEsSUFJN0IsbUJBQW1CLG9CQUFpQzs7QUFDMUQsVUFBSSxLQUFLLFlBQVk7QUFDWixlQUFBO0FBQUEsTUFBQTtBQUdGLGFBQUE7QUFBQSxRQUNILHVCQUF1QixJQUNyQiw2REFDQSxPQUFPO0FBQUEsVUFDVEEsTUFBQSxLQUFLLGdCQUFMLGdCQUFBQSxJQUFrQixVQUFTLEtBQUssS0FBSyxVQUNuQztBQUFBLGNBQ0ksS0FBSyxVQUNIO0FBQUEsb0JBQ0ksS0FBSyxPQUFPO0FBQUEsMEJBRWhCLE9BQU87QUFBQTtBQUFBLGdCQUVQLHNCQUFzQixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBSTdCLGtCQUFrQjtBQUFBO0FBQUEsb0JBR3hCLE9BQU87QUFBQTtBQUFBLElBQUE7QUFBQSxJQUlQLG1DQUFtQyxvQkFBaUM7QUFDMUUsVUFBSSxLQUFLLFlBQVk7QUFDbkIsZUFBTyx1QkFBdUIsMEJBQTBCLEtBQUssVUFBVSxTQUFTO0FBQUEsVUFDOUUsS0FBSztBQUFBLFFBQUEsQ0FDTjtBQUFBLE1BQUE7QUFHQyxVQUFBLFFBQVEsdUJBQXVCLHFCQUFxQixLQUFLLFVBQVUsU0FBUyxDQUFDLEtBQUssT0FBTyxDQUFDO0FBRzlGLFVBQUksb0JBQW9CO0FBQ2hCLGNBQUEsNkJBQ0osdUJBQXVCLElBQUksd0JBQXdCO0FBQ3JELGNBQU0sMEJBQTBCLHVCQUM5Qiw0QkFDQSxLQUFLLFVBQVUsT0FBTztBQUVsQixjQUFBLG9CQUFvQix1QkFDeEIsdUNBQ0EsS0FBSyxVQUFVLFNBQ2YsQ0FBQyx1QkFBdUIsQ0FBQztBQUVuQixnQkFBQSxNQUFNLE9BQU8saUJBQWlCO0FBQUEsTUFBQTtBQUdqQyxhQUFBO0FBQUEsSUFBQTtBQUFBLElBR0QsbUNBQWdDO0FBQ3RDLFVBQUksaUJBQWlCO0FBQ2pCLFVBQUEsS0FBSyxZQUFZLFFBQVE7QUFDM0IseUJBQ0UsdUJBQXVCLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxJQUFJO0FBQy9FLDBCQUFrQixLQUFLLFlBQ3BCLElBQUksQ0FBQyxlQUFlLHVCQUF1QixZQUFZLEtBQUssVUFBVSxPQUFPLENBQUMsRUFDOUU7O0FBRUUsYUFBQTtBQUFBLElBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFRRCxnQkFBZ0IsWUFBa0I7QUFDcEMsVUFBQSxDQUFDLEtBQUssWUFBWTtBQUNmLGFBQUEsZUFBZSxLQUFLLFVBQVU7QUFBQSxNQUFBO0FBQUEsSUFDckM7QUFBQSxJQUdNLDhCQUEyQjs7QUFDakMsV0FBSUEsTUFBQSxLQUFLLGdCQUFMLGdCQUFBQSxJQUFrQixTQUFTLFVBQVU7QUFDaEMsZUFBQTtBQUFBLE1BQ0UsWUFBQSxVQUFLLGdCQUFMLG1CQUFrQixTQUFTLFdBQVc7QUFDeEMsZUFBQTtBQUFBLE1BQUEsT0FDRjtBQUNFLGVBQUE7QUFBQSxNQUFBO0FBQUEsSUFDVDtBQUFBLEtBbE9GLDJDQUlBLCtDQUtBLDRDQUtBLDJDQUlBLHlDQUlBLCtDQUtBLDhDQUtBLHlDQUtBLHdDQUtBLDJDQUtBOzsyQkFqREMsYUFDQSxTQUFTLEVBQUUsV0FBVyxXQUFBLENBQVksQ0FBQzsrQkFJbkMsU0FBUyxFQUFFLFdBQVcsZ0JBQWdCLE1BQU0sTUFBQSxDQUFPLENBQUM7NEJBSXBELGFBQ0EsU0FBUyxFQUFFLE1BQU0sUUFBQSxDQUFTLENBQUM7MkJBSTNCLGFBQ0EsU0FBUyxFQUFFLE1BQU0sUUFBQSxDQUFTLENBQUM7eUJBRzNCLGFBQ0EsU0FBUyxFQUFFLE1BQU0sT0FBQSxDQUFRLENBQUM7K0JBSTFCLFNBQVMsRUFBRSxXQUFXLGdCQUFnQixNQUFNLE1BQUEsQ0FBTyxDQUFDO0FBSXBELDZCQUFBLENBQUEsVUFBVyxHQUNYLFNBQVMsRUFBRSxXQUFXLGVBQWUsTUFBTSxTQUFTLENBQUM7eUJBSXJELGFBQ0EsU0FBUyxFQUFFLE1BQU0sUUFBQSxDQUFTLENBQUM7d0JBSTNCLGFBQ0EsU0FBUyxFQUFFLE1BQU0sUUFBQSxDQUFTLENBQUM7QUFJM0IsMEJBQUEsQ0FBQSxVQUFXLEdBQ1gsU0FBUyxFQUFFLFdBQVcsV0FBVyxNQUFNLFNBQVMsQ0FBQzs0QkFJakQsYUFDQSxTQUFTLEVBQUUsTUFBTSxRQUFBLENBQVMsQ0FBQztBQTlDWixpQkFBQSxJQUFBLE1BQUEscUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxXQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGFBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFNBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsVUFBcUI7QUFBQSxTQUFBLFVBQUEsYUFBQSx1QkFBQSwwQkFBQTtBQUlyQixpQkFBQSxJQUFBLE1BQUEseUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxlQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGlCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxhQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLGNBQTJCO0FBQUEsU0FBQSxVQUFBLGFBQUEsMkJBQUEsOEJBQUE7QUFLM0IsaUJBQUEsSUFBQSxNQUFBLHNCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsWUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxjQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxVQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLFdBQTBCO0FBQUEsU0FBQSxVQUFBLGFBQUEsd0JBQUEsMkJBQUE7QUFLMUIsaUJBQUEsSUFBQSxNQUFBLHFCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsV0FBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxhQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxTQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLFVBQXlCO0FBQUEsU0FBQSxVQUFBLGFBQUEsdUJBQUEsMEJBQUE7QUFJekIsaUJBQUEsSUFBQSxNQUFBLG1CQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsU0FBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxXQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxPQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLFFBQWtCO0FBQUEsU0FBQSxVQUFBLGFBQUEscUJBQUEsd0JBQUE7QUFJbEIsaUJBQUEsSUFBQSxNQUFBLHlCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsZUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxpQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsYUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBQSxjQUFnRDtBQUFBLFNBQUEsVUFBQSxhQUFBLDJCQUFBLDhCQUFBO0FBS2hELGlCQUFBLElBQUEsTUFBQSx3QkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsZ0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFlBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsYUFBNEI7QUFBQSxTQUFBLFVBQUEsYUFBQSwwQkFBQSw2QkFBQTtBQUs1QixpQkFBQSxJQUFBLE1BQUEsbUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxTQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFdBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLE9BQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsUUFBdUI7QUFBQSxTQUFBLFVBQUEsYUFBQSxxQkFBQSx3QkFBQTtBQUt2QixpQkFBQSxJQUFBLE1BQUEsa0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxRQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFVBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLE1BQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsT0FBc0I7QUFBQSxTQUFBLFVBQUEsYUFBQSxvQkFBQSx1QkFBQTtBQUt0QixpQkFBQSxJQUFBLE1BQUEscUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxXQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGFBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFNBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsVUFBeUI7QUFBQSxTQUFBLFVBQUEsYUFBQSx1QkFBQSwwQkFBQTtBQUt6QixpQkFBQSxJQUFBLE1BQUEsc0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxZQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGNBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFVBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsV0FBMEI7QUFBQSxTQUFBLFVBQUEsYUFBQSx3QkFBQSwyQkFBQTtBQXpENUMsaUJBOE9DLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUE3T3dCLEdBQU0sU0FBbUIsT0FDekIsR0FBQSxTQUFTO0FBQUEsSUFDOUIsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLEVBQ0osR0FMTixrQkFBd0MsWUFBQSx1QkFBQSxHQUFDOzs7In0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @entrypoint
3
+ */
4
+ export * from './seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js';
5
+ //# sourceMappingURL=seat-reservation-navigation-coach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-reservation-navigation-coach.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,oFAAoF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { SbbSeatReservationNavigationCoachElement } from "./seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js";
2
+ export {
3
+ SbbSeatReservationNavigationCoachElement
4
+ };
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjsifQ==
@@ -0,0 +1,21 @@
1
+ import { CSSResultGroup, TemplateResult, LitElement } from 'lit';
2
+ /**
3
+ * Component displays the available service icons of one coach.
4
+ *
5
+ */
6
+ export declare class SbbSeatReservationNavigationServicesElement extends LitElement {
7
+ static styles: CSSResultGroup;
8
+ /** Coach service property ids, which are used to display the services in the navigation */
9
+ accessor propertyIds: string[];
10
+ /** If true, the service icons are displayed vertically */
11
+ accessor vertical: boolean;
12
+ private _language;
13
+ protected render(): TemplateResult;
14
+ private _getServiceLabelDescription;
15
+ }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'sbb-seat-reservation-navigation-services': SbbSeatReservationNavigationServicesElement;
19
+ }
20
+ }
21
+ //# sourceMappingURL=seat-reservation-navigation-services.component.d.ts.map