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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +76 -65
  2. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +52 -72
  3. package/autocomplete-grid/autocomplete-grid-button.js +6 -3
  4. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +17 -2
  5. package/autocomplete-grid/autocomplete-grid-cell.js +7 -4
  6. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +21 -20
  7. package/autocomplete-grid/autocomplete-grid-optgroup.js +6 -3
  8. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +33 -2
  9. package/autocomplete-grid/autocomplete-grid-option.js +9 -4
  10. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +22 -2
  11. package/autocomplete-grid/autocomplete-grid-row.js +7 -4
  12. package/autocomplete-grid/autocomplete-grid.js +6 -3
  13. package/autocomplete-grid.js +21 -9
  14. package/autocomplete-grid.pure.js +15 -7
  15. package/core/datetime/date-helper.js +191 -2
  16. package/core/datetime.js +5 -2
  17. package/core/timetable/access-leg-helper.js +71 -76
  18. package/core/timetable/timetable-helper.js +11 -9
  19. package/core/timetable/timetable-properties.js +1 -0
  20. package/core/timetable.js +7 -3
  21. package/custom-elements.json +84 -84
  22. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +122 -114
  23. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +70 -92
  24. package/development/autocomplete-grid/autocomplete-grid-button.js +4 -6
  25. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +29 -2
  26. package/development/autocomplete-grid/autocomplete-grid-cell.js +5 -7
  27. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +22 -27
  28. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +4 -6
  29. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +109 -2
  30. package/development/autocomplete-grid/autocomplete-grid-option.js +7 -7
  31. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +91 -2
  32. package/development/autocomplete-grid/autocomplete-grid-row.js +5 -7
  33. package/development/autocomplete-grid/autocomplete-grid.js +4 -6
  34. package/development/autocomplete-grid.js +14 -10
  35. package/development/autocomplete-grid.pure.js +13 -4
  36. package/development/core/datetime/date-helper.js +285 -2
  37. package/development/core/datetime.js +6 -2
  38. package/development/core/timetable/access-leg-helper.js +82 -104
  39. package/development/core/timetable/timetable-helper.js +17 -16
  40. package/development/core/timetable/timetable-properties.js +2 -0
  41. package/development/core/timetable.js +8 -3
  42. package/development/differenceInMinutes-B0dawX-5.js +26 -0
  43. package/development/format-BMkeaqaF.js +1433 -0
  44. package/development/isValid-BYRch7pV.js +53 -0
  45. package/development/journey-summary/journey-summary.component.js +288 -2
  46. package/development/journey-summary.js +5 -8
  47. package/development/journey-summary.pure.js +5 -2
  48. package/development/pearl-chain/pearl-chain.component.js +634 -2
  49. package/development/pearl-chain-time/pearl-chain-time.component.js +306 -2
  50. package/development/pearl-chain-time.js +5 -8
  51. package/development/pearl-chain-time.pure.js +5 -2
  52. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +28 -2
  53. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +393 -2
  54. package/development/pearl-chain-vertical-item.js +5 -8
  55. package/development/pearl-chain-vertical-item.pure.js +5 -2
  56. package/development/pearl-chain-vertical.js +5 -8
  57. package/development/pearl-chain-vertical.pure.js +5 -2
  58. package/development/pearl-chain.js +5 -8
  59. package/development/pearl-chain.pure.js +5 -2
  60. package/development/seat-reservation/common/mapper/icon-mapper.js +71 -168
  61. package/development/seat-reservation/common/mapper/mapper.js +122 -153
  62. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +559 -570
  63. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +972 -992
  64. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.js +20367 -20334
  65. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1738 -1731
  66. package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9782 -9741
  67. package/development/seat-reservation/common/mapper.js +8 -1
  68. package/development/seat-reservation/common/svgs.js +46 -2
  69. package/development/seat-reservation/common/translations/i18n.js +900 -1118
  70. package/development/seat-reservation/common/translations.js +4 -1
  71. package/development/seat-reservation/common/types.js +2 -0
  72. package/development/seat-reservation/common.js +11 -7
  73. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +1230 -1305
  74. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +859 -2
  75. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +106 -2
  76. package/development/seat-reservation/seat-reservation-area.js +5 -7
  77. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +34 -35
  78. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +162 -2
  79. package/development/seat-reservation/seat-reservation-graphic.js +5 -7
  80. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +713 -2
  81. package/development/seat-reservation/seat-reservation-navigation-coach.js +5 -7
  82. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +131 -2
  83. package/development/seat-reservation/seat-reservation-navigation-services.js +5 -7
  84. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +601 -2
  85. package/development/seat-reservation/seat-reservation-place-control.js +5 -7
  86. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +22 -2
  87. package/development/seat-reservation/seat-reservation-scoped.js +5 -7
  88. package/development/seat-reservation/seat-reservation.js +6 -7
  89. package/development/seat-reservation.js +28 -15
  90. package/development/seat-reservation.pure.js +28 -10
  91. package/development/timetable-duration/timetable-duration.component.js +108 -2
  92. package/development/timetable-duration.js +5 -8
  93. package/development/timetable-duration.pure.js +5 -2
  94. package/development/timetable-row/timetable-row.component.js +781 -2
  95. package/development/timetable-row.js +13 -8
  96. package/development/timetable-row.pure.js +12 -2
  97. package/development/toDate-BWb6Z1JD.js +24 -0
  98. package/differenceInMinutes-COvvdYsJ.js +23 -0
  99. package/format-CmKROkbc.js +1186 -0
  100. package/isValid-m3_OsPaB.js +45 -0
  101. package/journey-summary/journey-summary.component.js +194 -2
  102. package/journey-summary.js +4 -5
  103. package/journey-summary.pure.js +4 -2
  104. package/package.json +2 -2
  105. package/pearl-chain/pearl-chain.component.js +165 -2
  106. package/pearl-chain-time/pearl-chain-time.component.js +157 -2
  107. package/pearl-chain-time.js +4 -5
  108. package/pearl-chain-time.pure.js +4 -2
  109. package/pearl-chain-vertical/pearl-chain-vertical.component.js +17 -2
  110. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +77 -2
  111. package/pearl-chain-vertical-item.js +4 -5
  112. package/pearl-chain-vertical-item.pure.js +4 -2
  113. package/pearl-chain-vertical.js +4 -5
  114. package/pearl-chain-vertical.pure.js +4 -2
  115. package/pearl-chain.js +4 -5
  116. package/pearl-chain.pure.js +4 -2
  117. package/seat-reservation/common/mapper/icon-mapper.js +71 -71
  118. package/seat-reservation/common/mapper/mapper.js +89 -95
  119. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.js +558 -568
  120. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.js +970 -989
  121. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-giruno.js +20366 -20332
  122. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-others.js +1737 -1729
  123. package/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.js +9781 -9739
  124. package/seat-reservation/common/mapper.js +9 -3
  125. package/seat-reservation/common/svgs.js +243 -2
  126. package/seat-reservation/common/translations/i18n.js +891 -1084
  127. package/seat-reservation/common/translations.js +4 -2
  128. package/seat-reservation/common/types.js +1 -0
  129. package/seat-reservation/common.js +15 -9
  130. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +810 -832
  131. package/seat-reservation/seat-reservation/seat-reservation.component.js +420 -2
  132. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +51 -2
  133. package/seat-reservation/seat-reservation-area.js +7 -4
  134. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +71 -68
  135. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +75 -2
  136. package/seat-reservation/seat-reservation-graphic.js +7 -4
  137. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +234 -2
  138. package/seat-reservation/seat-reservation-navigation-coach.js +7 -4
  139. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +85 -2
  140. package/seat-reservation/seat-reservation-navigation-services.js +7 -4
  141. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +203 -2
  142. package/seat-reservation/seat-reservation-place-control.js +7 -4
  143. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +13 -2
  144. package/seat-reservation/seat-reservation-scoped.js +7 -4
  145. package/seat-reservation/seat-reservation.js +9 -5
  146. package/seat-reservation.js +39 -17
  147. package/seat-reservation.pure.js +32 -15
  148. package/timetable-duration/timetable-duration.component.js +57 -2
  149. package/timetable-duration.js +4 -5
  150. package/timetable-duration.pure.js +4 -2
  151. package/timetable-row/timetable-row.component.js +427 -2
  152. package/timetable-row.js +13 -6
  153. package/timetable-row.pure.js +11 -2
  154. package/toDate-Bw2KTWeq.js +15 -0
  155. package/autocomplete-grid-cell.component-Dak9wlBr.js +0 -24
  156. package/autocomplete-grid-option.component-DNRFHOwc.js +0 -37
  157. package/autocomplete-grid-row.component-DBHZQ0GQ.js +0 -27
  158. package/date-helper-CGproP5d.js +0 -185
  159. package/development/autocomplete-grid-cell.component-BBvM4o2H.js +0 -42
  160. package/development/autocomplete-grid-option.component-QzfM5eIE.js +0 -123
  161. package/development/autocomplete-grid-row.component-H8sCTCkT.js +0 -104
  162. package/development/date-helper-8_Y-PuHh.js +0 -520
  163. package/development/differenceInMinutes-DN_1Rk3O.js +0 -110
  164. package/development/format-Bbrn2bgo.js +0 -1848
  165. package/development/isValid-C-HzKv4v.js +0 -178
  166. package/development/journey-summary.component-uGhZvA4p.js +0 -385
  167. package/development/pearl-chain-time.component-B8mayTWD.js +0 -415
  168. package/development/pearl-chain-vertical-item.component-BDzbcIaf.js +0 -435
  169. package/development/pearl-chain-vertical.component-CswE7b3M.js +0 -39
  170. package/development/pearl-chain.component-wpsTvoSe.js +0 -704
  171. package/development/seat-reservation-area.component-BK92ZtFo.js +0 -138
  172. package/development/seat-reservation-graphic.component-cUnsHh5x.js +0 -193
  173. package/development/seat-reservation-navigation-coach.component-D6Bglus8.js +0 -828
  174. package/development/seat-reservation-navigation-services.component-DYJ6Ddkg.js +0 -179
  175. package/development/seat-reservation-place-control.component-Bg9evKBW.js +0 -726
  176. package/development/seat-reservation-scoped.component-DRQ_I702.js +0 -31
  177. package/development/seat-reservation.component-Cq_aJKR0.js +0 -818
  178. package/development/svgs-C3JMWR26.js +0 -28
  179. package/development/timetable-duration.component-DI0lET17.js +0 -125
  180. package/development/timetable-row.component-CAED6Zwc.js +0 -932
  181. package/development/toDate-Biiv3kyf.js +0 -150
  182. package/differenceInMinutes-Dr9gRqtu.js +0 -27
  183. package/format-CM5exOsN.js +0 -1103
  184. package/isValid-B9oVW3lA.js +0 -36
  185. package/journey-summary.component-Cq_4kaOp.js +0 -264
  186. package/pearl-chain-time.component-DGDW5S1c.js +0 -239
  187. package/pearl-chain-vertical-item.component-G22bWhLU.js +0 -108
  188. package/pearl-chain-vertical.component-CXIDT5RD.js +0 -21
  189. package/pearl-chain.component-DmjkVIva.js +0 -194
  190. package/seat-reservation-area.component-n-9rGn_y.js +0 -75
  191. package/seat-reservation-graphic.component-YTXRmKt0.js +0 -102
  192. package/seat-reservation-navigation-coach.component-YJ0vaYmO.js +0 -333
  193. package/seat-reservation-navigation-services.component-C3xnLJg2.js +0 -127
  194. package/seat-reservation-place-control.component-DmBAfM6K.js +0 -322
  195. package/seat-reservation-scoped.component-DPkz6u17.js +0 -17
  196. package/seat-reservation.component-C_anMkgw.js +0 -364
  197. package/svgs-D9arBcqr.js +0 -26
  198. package/timetable-duration.component-DCu8Phts.js +0 -65
  199. package/timetable-row.component-BVRCB3xK.js +0 -559
  200. package/toDate-p-Tpkb7t.js +0 -16
@@ -1,2 +1,601 @@
1
- import { t as SbbSeatReservationPlaceControlElement } from "../../seat-reservation-place-control.component-Bg9evKBW.js";
2
- export { SbbSeatReservationPlaceControlElement };
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 { __esDecorate, __runInitializers } from "tslib";
9
+ import { SbbButtonBaseElement } from "@sbb-esta/lyne-elements/core/base-elements.js";
10
+ import { SbbLanguageController } from "@sbb-esta/lyne-elements/core/controllers.js";
11
+ import { forceType } from "@sbb-esta/lyne-elements/core/decorators.js";
12
+ import { boxSizingStyles } from "@sbb-esta/lyne-elements/core/styles.js";
13
+ import { css, nothing, html } from "lit";
14
+ import { property } from "lit/decorators.js";
15
+ import { styleMap } from "lit/directives/style-map.js";
16
+ import { getI18nSeatReservation } from "../common/translations.js";
17
+ import { SbbSeatReservationGraphicElement } from "../seat-reservation-graphic/seat-reservation-graphic.component.js";
18
+ const style = css`:host {
19
+ --sbb-seat-reservation-place-control-text-scale-value: 1;
20
+ --sbb-seat-reservation-place-control-width: 16;
21
+ --sbb-seat-reservation-place-control-height: 16;
22
+ --sbb-seat-reservation-place-control-top: 0;
23
+ --sbb-seat-reservation-place-control-left: 0;
24
+ --sbb-seat-reservation-place-control-rotation: 0;
25
+ --sbb-seat-reservation-place-control-text-rotation: 0;
26
+ --sbb-seat-reservation-place-control-text-size: calc(
27
+ var(--sbb-seat-reservation-place-control-text-scale-value, 1) * 0.5
28
+ );
29
+ --sbb-seat-reservation-place-control-default-text: var(--sbb-color-black);
30
+ --sbb-seat-reservation-place-control-default-text: light-dark(
31
+ var(--sbb-color-black),
32
+ var(--sbb-color-white)
33
+ );
34
+ --sbb-seat-reservation-place-control-hover-text: var(--sbb-color-iron);
35
+ --sbb-seat-reservation-place-control-hover-text: light-dark(
36
+ var(--sbb-color-iron),
37
+ var(--sbb-color-silver)
38
+ );
39
+ --sbb-seat-reservation-place-control-focus-text: var(--sbb-color-anthracite);
40
+ --sbb-seat-reservation-place-control-focus-text: light-dark(
41
+ var(--sbb-color-anthracite),
42
+ var(--sbb-color-graphite)
43
+ );
44
+ --sbb-seat-reservation-place-control-allocated-text: var(--sbb-color-smoke);
45
+ --sbb-seat-reservation-place-control-allocated-text: light-dark(
46
+ var(--sbb-color-smoke),
47
+ var(--sbb-color-metal)
48
+ );
49
+ --sbb-seat-reservation-place-control-free-background-default: var(--sbb-background-color-2);
50
+ --sbb-seat-reservation-place-control-free-background-hover: var(--sbb-color-cloud);
51
+ --sbb-seat-reservation-place-control-free-background-hover: light-dark(
52
+ var(--sbb-color-cloud),
53
+ var(--sbb-color-midnight)
54
+ );
55
+ --sbb-seat-reservation-place-control-free-background-focus: var(--sbb-color-silver);
56
+ --sbb-seat-reservation-place-control-free-background-focus: light-dark(
57
+ var(--sbb-color-silver),
58
+ var(--sbb-color-black)
59
+ );
60
+ --sbb-seat-reservation-place-control-free-backrest-background-default: var(--sbb-color-black);
61
+ --sbb-seat-reservation-place-control-free-backrest-background-default: light-dark(
62
+ var(--sbb-color-black),
63
+ var(--sbb-color-white)
64
+ );
65
+ --sbb-seat-reservation-place-control-free-backrest-background-hover: var(--sbb-color-black);
66
+ --sbb-seat-reservation-place-control-free-backrest-background-hover: light-dark(
67
+ var(--sbb-color-black),
68
+ var(--sbb-color-white)
69
+ );
70
+ --sbb-seat-reservation-place-control-free-backrest-background-focus: var(--sbb-color-black);
71
+ --sbb-seat-reservation-place-control-free-backrest-background-focus: light-dark(
72
+ var(--sbb-color-black),
73
+ var(--sbb-color-white)
74
+ );
75
+ --sbb-seat-reservation-place-control-selected-background-default: var(--sbb-color-primary);
76
+ --sbb-seat-reservation-place-control-selected-background-hover: var(--sbb-color-primary125);
77
+ --sbb-seat-reservation-place-control-selected-background-focus: var(--sbb-color-primary150);
78
+ --sbb-seat-reservation-place-control-selected-backrest-background-default: var(
79
+ --sbb-color-primary150
80
+ );
81
+ --sbb-seat-reservation-place-control-selected-backrest-background-hover: #7d000f;
82
+ --sbb-seat-reservation-place-control-selected-backrest-background-focus: #5a000b;
83
+ --sbb-seat-reservation-place-control-allocated-background-default: var(--sbb-color-milk);
84
+ --sbb-seat-reservation-place-control-allocated-background-default: light-dark(
85
+ var(--sbb-color-milk),
86
+ var(--sbb-color-midnight)
87
+ );
88
+ --sbb-seat-reservation-place-control-free-backrest-high-contrast: CanvasText;
89
+ --sbb-seat-reservation-place-control-free-background-high-contrast: Canvas;
90
+ --sbb-seat-reservation-place-control-free-text-high-contrast: ButtonText;
91
+ --sbb-seat-reservation-place-control-free-icon-high-contrast: CanvasText;
92
+ --sbb-seat-reservation-place-control-allocated-backrest-high-contrast: GrayText;
93
+ --sbb-seat-reservation-place-control-allocated-background-high-contrast: Canvas;
94
+ --sbb-seat-reservation-place-control-allocated-text-high-contrast: GrayText;
95
+ --sbb-seat-reservation-place-control-allocated-icon-high-contrast: GrayText;
96
+ width: calc(var(--sbb-seat-reservation-place-control-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
97
+ height: calc(var(--sbb-seat-reservation-place-control-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
98
+ position: absolute;
99
+ inset-block-start: calc(var(--sbb-seat-reservation-place-control-top) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
100
+ inset-inline-start: calc(var(--sbb-seat-reservation-place-control-left) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
101
+ font-weight: 300;
102
+ cursor: var(--sbb-cursor-pointer);
103
+ }
104
+
105
+ :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {
106
+ fill: var(--sbb-seat-reservation-place-control-free-background-hover);
107
+ }
108
+ :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {
109
+ fill: var(--sbb-seat-reservation-place-control-free-backrest-background-hover);
110
+ }
111
+ :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {
112
+ background-color: var(--sbb-seat-reservation-place-control-free-background-hover);
113
+ color: var(--sbb-seat-reservation-place-control-free-text);
114
+ }
115
+ @media (forced-colors: active) {
116
+ :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {
117
+ fill: var(--sbb-seat-reservation-place-control-free-background-high-contrast);
118
+ }
119
+ :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {
120
+ fill: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);
121
+ }
122
+ :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-icon) {
123
+ fill: var(--sbb-seat-reservation-place-control-free-icon-high-contrast);
124
+ }
125
+ :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-seatline) {
126
+ stroke: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);
127
+ }
128
+ :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {
129
+ forced-color-adjust: none;
130
+ background-color: var(--sbb-seat-reservation-place-control-free-background-high-contrast);
131
+ color: var(--sbb-seat-reservation-place-control-free-text-high-contrast);
132
+ }
133
+ }
134
+ :host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {
135
+ fill: var(--sbb-seat-reservation-place-control-selected-background-hover);
136
+ }
137
+ :host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {
138
+ fill: var(--sbb-seat-reservation-place-control-selected-backrest-background-hover);
139
+ }
140
+ :host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {
141
+ background-color: var(--sbb-seat-reservation-place-control-selected-background-hover);
142
+ color: var(--sbb-seat-reservation-place-control-selected-text);
143
+ }
144
+
145
+ :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {
146
+ fill: var(--sbb-seat-reservation-place-control-free-background-focus);
147
+ }
148
+ :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {
149
+ fill: var(--sbb-seat-reservation-place-control-free-backrest-background-focus);
150
+ }
151
+ :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {
152
+ background-color: var(--sbb-seat-reservation-place-control-free-background-focus);
153
+ color: var(--sbb-seat-reservation-place-control-free-text);
154
+ }
155
+ @media (forced-colors: active) {
156
+ :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {
157
+ fill: var(--sbb-seat-reservation-place-control-free-background-high-contrast);
158
+ }
159
+ :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {
160
+ fill: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);
161
+ }
162
+ :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-icon) {
163
+ fill: var(--sbb-seat-reservation-place-control-free-icon-high-contrast);
164
+ }
165
+ :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-seatline) {
166
+ stroke: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);
167
+ }
168
+ :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {
169
+ forced-color-adjust: none;
170
+ background-color: var(--sbb-seat-reservation-place-control-free-background-high-contrast);
171
+ color: var(--sbb-seat-reservation-place-control-free-text-high-contrast);
172
+ }
173
+ }
174
+
175
+ :host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {
176
+ fill: var(--sbb-seat-reservation-place-control-selected-background-focus);
177
+ }
178
+ :host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {
179
+ fill: var(--sbb-seat-reservation-place-control-selected-backrest-background-focus);
180
+ }
181
+ :host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {
182
+ background-color: var(--sbb-seat-reservation-place-control-selected-background-focus);
183
+ color: var(--sbb-seat-reservation-place-control-selected-text);
184
+ }
185
+
186
+ :host(:dir(rtl)) :not(.sbb-sr-place-ctrl--type-bicycle,
187
+ .sbb-sr-place-ctrl--orientation-90,
188
+ .sbb-sr-place-ctrl--orientation-270,
189
+ .sbb-sr-place-ctrl--state-selected) ::part(svg-place) {
190
+ rotate: calc(180 * 1deg);
191
+ }
192
+
193
+ .sbb-sr-place-ctrl {
194
+ width: max-content;
195
+ position: relative;
196
+ font-size: calc(var(--sbb-seat-reservation-place-control-text-size) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));
197
+ }
198
+ .sbb-sr-place-ctrl--state-free ::part(svg-place) {
199
+ fill: var(--sbb-seat-reservation-place-control-free-background-default);
200
+ }
201
+ .sbb-sr-place-ctrl--state-free ::part(svg-backrest) {
202
+ fill: var(--sbb-seat-reservation-place-control-free-backrest-background-default);
203
+ }
204
+ .sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text {
205
+ background-color: var(--sbb-seat-reservation-place-control-free-background-default);
206
+ color: var(--sbb-seat-reservation-place-control-free-text);
207
+ }
208
+ @media (forced-colors: active) {
209
+ .sbb-sr-place-ctrl--state-free ::part(svg-place) {
210
+ fill: var(--sbb-seat-reservation-place-control-free-background-high-contrast);
211
+ }
212
+ .sbb-sr-place-ctrl--state-free ::part(svg-backrest) {
213
+ fill: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);
214
+ }
215
+ .sbb-sr-place-ctrl--state-free ::part(svg-icon) {
216
+ fill: var(--sbb-seat-reservation-place-control-free-icon-high-contrast);
217
+ }
218
+ .sbb-sr-place-ctrl--state-free ::part(svg-seatline) {
219
+ stroke: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);
220
+ }
221
+ .sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text {
222
+ forced-color-adjust: none;
223
+ background-color: var(--sbb-seat-reservation-place-control-free-background-high-contrast);
224
+ color: var(--sbb-seat-reservation-place-control-free-text-high-contrast);
225
+ }
226
+ }
227
+ .sbb-sr-place-ctrl--state-selected ::part(svg-place) {
228
+ fill: var(--sbb-seat-reservation-place-control-selected-background-default);
229
+ }
230
+ .sbb-sr-place-ctrl--state-selected ::part(svg-backrest) {
231
+ fill: var(--sbb-seat-reservation-place-control-selected-backrest-background-default);
232
+ }
233
+ .sbb-sr-place-ctrl--state-selected .sbb-sr-place-ctrl__text {
234
+ background-color: var(--sbb-seat-reservation-place-control-selected-background-default);
235
+ color: var(--sbb-seat-reservation-place-control-selected-text);
236
+ }
237
+ .sbb-sr-place-ctrl--state-allocated ::part(svg-place), .sbb-sr-place-ctrl--state-restricted ::part(svg-place) {
238
+ fill: var(--sbb-seat-reservation-place-control-allocated-background-default);
239
+ }
240
+ .sbb-sr-place-ctrl--state-allocated ::part(svg-backrest), .sbb-sr-place-ctrl--state-restricted ::part(svg-backrest) {
241
+ fill: var(--sbb-seat-reservation-place-control-allocated-backrest-background-default);
242
+ }
243
+ .sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text, .sbb-sr-place-ctrl--state-restricted .sbb-sr-place-ctrl__text {
244
+ background-color: var(--sbb-seat-reservation-place-control-allocated-background-default);
245
+ color: var(--sbb-seat-reservation-place-control-allocated-text);
246
+ }
247
+ @media (forced-colors: active) {
248
+ .sbb-sr-place-ctrl--state-allocated ::part(svg-place), .sbb-sr-place-ctrl--state-restricted ::part(svg-place) {
249
+ fill: var(--sbb-seat-reservation-place-control-allocated-background-high-contrast);
250
+ }
251
+ .sbb-sr-place-ctrl--state-allocated ::part(svg-backrest), .sbb-sr-place-ctrl--state-restricted ::part(svg-backrest) {
252
+ fill: var(--sbb-seat-reservation-place-control-allocated-backrest-high-contrast);
253
+ }
254
+ .sbb-sr-place-ctrl--state-allocated ::part(svg-icon), .sbb-sr-place-ctrl--state-restricted ::part(svg-icon) {
255
+ fill: var(--sbb-seat-reservation-place-control-allocated-icon-high-contrast);
256
+ }
257
+ .sbb-sr-place-ctrl--state-allocated ::part(svg-seatline), .sbb-sr-place-ctrl--state-restricted ::part(svg-seatline) {
258
+ stroke: var(--sbb-seat-reservation-place-control-allocated-backrest-high-contrast);
259
+ }
260
+ .sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text, .sbb-sr-place-ctrl--state-restricted .sbb-sr-place-ctrl__text {
261
+ forced-color-adjust: none;
262
+ background-color: var(--sbb-seat-reservation-place-control-allocated-background-high-contrast);
263
+ color: var(--sbb-seat-reservation-place-control-allocated-text-high-contrast);
264
+ }
265
+ }
266
+ .sbb-sr-place-ctrl--state-allocated, .sbb-sr-place-ctrl--state-restricted {
267
+ cursor: not-allowed;
268
+ }
269
+ .sbb-sr-place-ctrl__text {
270
+ overflow: hidden;
271
+ display: none;
272
+ position: absolute;
273
+ inset-block-start: 50%;
274
+ translate: -50% -50%;
275
+ rotate: calc(var(--sbb-seat-reservation-place-control-text-rotation) * 1deg);
276
+ font-family: var(--sbb-typo-font-family);
277
+ font-size: 0.75em;
278
+ line-height: initial;
279
+ }
280
+ .sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text, .sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text, .sbb-sr-place-ctrl--state-restricted.sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text {
281
+ display: block;
282
+ }
283
+ .sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text {
284
+ inset-block-start: 65%;
285
+ inset-inline-start: 50%;
286
+ transform-origin: center 16%;
287
+ font-size: 0.6875em;
288
+ }
289
+ .sbb-sr-place-ctrl--orientation-0.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text {
290
+ inset-inline-start: 45%;
291
+ }
292
+ .sbb-sr-place-ctrl--orientation-90.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text {
293
+ inset-block-start: 46%;
294
+ inset-inline-start: 50%;
295
+ }
296
+ .sbb-sr-place-ctrl--orientation-180.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text {
297
+ inset-inline-start: 55%;
298
+ }
299
+ .sbb-sr-place-ctrl--orientation-270.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text {
300
+ inset-block-start: 52%;
301
+ inset-inline-start: 52%;
302
+ }
303
+
304
+ :host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-0 .sbb-sr-place-ctrl__text {
305
+ inset-inline-start: 3%;
306
+ }
307
+ :host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-90 .sbb-sr-place-ctrl__text, :host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-180 .sbb-sr-place-ctrl__text {
308
+ inset-inline-start: 10%;
309
+ }
310
+ :host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-270 .sbb-sr-place-ctrl__text {
311
+ inset-inline-start: 5%;
312
+ }
313
+ :host(:dir(rtl)) .sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text {
314
+ inset-inline-start: -10%;
315
+ }`;
316
+ SbbSeatReservationGraphicElement.define();
317
+ let SbbSeatReservationPlaceControlElement = (() => {
318
+ var _placeType_accessor_storage, _state_accessor_storage, _travelDirection_accessor_storage, _propertyIds_accessor_storage, _text_accessor_storage, _deckIndex_accessor_storage, _coachIndex_accessor_storage, _preventClick_accessor_storage, _keyfocus_accessor_storage, _showTitleInfo_accessor_storage, _a;
319
+ let _classSuper = SbbButtonBaseElement;
320
+ let _placeType_decorators;
321
+ let _placeType_initializers = [];
322
+ let _placeType_extraInitializers = [];
323
+ let _state_decorators;
324
+ let _state_initializers = [];
325
+ let _state_extraInitializers = [];
326
+ let _travelDirection_decorators;
327
+ let _travelDirection_initializers = [];
328
+ let _travelDirection_extraInitializers = [];
329
+ let _propertyIds_decorators;
330
+ let _propertyIds_initializers = [];
331
+ let _propertyIds_extraInitializers = [];
332
+ let _text_decorators;
333
+ let _text_initializers = [];
334
+ let _text_extraInitializers = [];
335
+ let _deckIndex_decorators;
336
+ let _deckIndex_initializers = [];
337
+ let _deckIndex_extraInitializers = [];
338
+ let _coachIndex_decorators;
339
+ let _coachIndex_initializers = [];
340
+ let _coachIndex_extraInitializers = [];
341
+ let _preventClick_decorators;
342
+ let _preventClick_initializers = [];
343
+ let _preventClick_extraInitializers = [];
344
+ let _keyfocus_decorators;
345
+ let _keyfocus_initializers = [];
346
+ let _keyfocus_extraInitializers = [];
347
+ let _showTitleInfo_decorators;
348
+ let _showTitleInfo_initializers = [];
349
+ let _showTitleInfo_extraInitializers = [];
350
+ return _a = class extends _classSuper {
351
+ constructor() {
352
+ super();
353
+ __privateAdd(this, _placeType_accessor_storage);
354
+ __privateAdd(this, _state_accessor_storage);
355
+ __privateAdd(this, _travelDirection_accessor_storage);
356
+ __privateAdd(this, _propertyIds_accessor_storage);
357
+ __privateAdd(this, _text_accessor_storage);
358
+ __privateAdd(this, _deckIndex_accessor_storage);
359
+ __privateAdd(this, _coachIndex_accessor_storage);
360
+ __privateAdd(this, _preventClick_accessor_storage);
361
+ __privateAdd(this, _keyfocus_accessor_storage);
362
+ __privateAdd(this, _showTitleInfo_accessor_storage);
363
+ __privateSet(this, _placeType_accessor_storage, __runInitializers(this, _placeType_initializers, "SEAT"));
364
+ __privateSet(this, _state_accessor_storage, (__runInitializers(this, _placeType_extraInitializers), __runInitializers(this, _state_initializers, "FREE")));
365
+ __privateSet(this, _travelDirection_accessor_storage, (__runInitializers(this, _state_extraInitializers), __runInitializers(this, _travelDirection_initializers, "NONE")));
366
+ __privateSet(this, _propertyIds_accessor_storage, (__runInitializers(this, _travelDirection_extraInitializers), __runInitializers(this, _propertyIds_initializers, [])));
367
+ __privateSet(this, _text_accessor_storage, (__runInitializers(this, _propertyIds_extraInitializers), __runInitializers(this, _text_initializers, "")));
368
+ __privateSet(this, _deckIndex_accessor_storage, (__runInitializers(this, _text_extraInitializers), __runInitializers(this, _deckIndex_initializers, null)));
369
+ __privateSet(this, _coachIndex_accessor_storage, (__runInitializers(this, _deckIndex_extraInitializers), __runInitializers(this, _coachIndex_initializers, null)));
370
+ __privateSet(this, _preventClick_accessor_storage, (__runInitializers(this, _coachIndex_extraInitializers), __runInitializers(this, _preventClick_initializers, false)));
371
+ __privateSet(this, _keyfocus_accessor_storage, (__runInitializers(this, _preventClick_extraInitializers), __runInitializers(this, _keyfocus_initializers, "unfocus")));
372
+ __privateSet(this, _showTitleInfo_accessor_storage, (__runInitializers(this, _keyfocus_extraInitializers), __runInitializers(this, _showTitleInfo_initializers, false)));
373
+ this._optionalScreenreaderInfo = (__runInitializers(this, _showTitleInfo_extraInitializers), "");
374
+ this._language = new SbbLanguageController(this);
375
+ this.addEventListener("click", () => this._selectPlace());
376
+ }
377
+ /** placeType of the place, e.g. 'SEAT', 'BICYCLE' */
378
+ get placeType() {
379
+ return __privateGet(this, _placeType_accessor_storage);
380
+ }
381
+ set placeType(value) {
382
+ __privateSet(this, _placeType_accessor_storage, value);
383
+ }
384
+ /** state of the place, e.g. 'FREE', 'SELECTED', 'BLOCKED' */
385
+ get state() {
386
+ return __privateGet(this, _state_accessor_storage);
387
+ }
388
+ set state(value) {
389
+ __privateSet(this, _state_accessor_storage, value);
390
+ }
391
+ /** direction of a whole train, used to compute an orientation of a place */
392
+ get travelDirection() {
393
+ return __privateGet(this, _travelDirection_accessor_storage);
394
+ }
395
+ set travelDirection(value) {
396
+ __privateSet(this, _travelDirection_accessor_storage, value);
397
+ }
398
+ /** property ids of the place, to display more info about the place */
399
+ get propertyIds() {
400
+ return __privateGet(this, _propertyIds_accessor_storage);
401
+ }
402
+ set propertyIds(value) {
403
+ __privateSet(this, _propertyIds_accessor_storage, value);
404
+ }
405
+ /** label of the place, e.g. '1A', '2B' */
406
+ get text() {
407
+ return __privateGet(this, _text_accessor_storage);
408
+ }
409
+ set text(value) {
410
+ __privateSet(this, _text_accessor_storage, value);
411
+ }
412
+ /** Deck Index Prop to identifier the right place to deck */
413
+ get deckIndex() {
414
+ return __privateGet(this, _deckIndex_accessor_storage);
415
+ }
416
+ set deckIndex(value) {
417
+ __privateSet(this, _deckIndex_accessor_storage, value);
418
+ }
419
+ /** Coach Index Prop to identifier the right place to coach */
420
+ get coachIndex() {
421
+ return __privateGet(this, _coachIndex_accessor_storage);
422
+ }
423
+ set coachIndex(value) {
424
+ __privateSet(this, _coachIndex_accessor_storage, value);
425
+ }
426
+ /** Prevent click prop prevent any place action */
427
+ get preventClick() {
428
+ return __privateGet(this, _preventClick_accessor_storage);
429
+ }
430
+ set preventClick(value) {
431
+ __privateSet(this, _preventClick_accessor_storage, value);
432
+ }
433
+ /** Set the place focus outline style */
434
+ get keyfocus() {
435
+ return __privateGet(this, _keyfocus_accessor_storage);
436
+ }
437
+ set keyfocus(value) {
438
+ __privateSet(this, _keyfocus_accessor_storage, value);
439
+ }
440
+ /** Disable the mouse over title information */
441
+ get showTitleInfo() {
442
+ return __privateGet(this, _showTitleInfo_accessor_storage);
443
+ }
444
+ set showTitleInfo(value) {
445
+ __privateSet(this, _showTitleInfo_accessor_storage, value);
446
+ }
447
+ willUpdate(changedProperties) {
448
+ super.willUpdate(changedProperties);
449
+ if (changedProperties.has("keyfocus")) {
450
+ if (this.keyfocus === "focus") {
451
+ this.focus();
452
+ }
453
+ }
454
+ if (changedProperties.has("showTitleInfo")) {
455
+ if (!this.showTitleInfo) {
456
+ this.title = "";
457
+ }
458
+ }
459
+ }
460
+ render() {
461
+ const name = this._getPlaceSvg(this.placeType, this.state);
462
+ const type = this.type.toLowerCase();
463
+ const state = this.state.toLowerCase();
464
+ const text = this.text;
465
+ const width = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-width");
466
+ const height = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-height");
467
+ const rotation = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-rotation");
468
+ const textRotation = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-text-rotation");
469
+ const inverseRotationPlaceCheckIcon = Number(textRotation) - Number(rotation);
470
+ const disabledClass = this.preventClick ? "sbb-reservation-place-control--disabled" : null;
471
+ if (this.showTitleInfo) {
472
+ this.title = this._getTitleDescriptionPlace(rotation);
473
+ } else {
474
+ this._optionalScreenreaderInfo = this._getTitleDescriptionPlace(rotation);
475
+ }
476
+ this.tabIndex = -1;
477
+ return html`
478
+ <div
479
+ part="sbb-sr-place-part"
480
+ class="sbb-sr-place-ctrl sbb-sr-place-ctrl--orientation-${rotation} sbb-sr-place-ctrl--state-${state} sbb-sr-place-ctrl--type-${type} ${disabledClass}"
481
+ >
482
+ <sbb-seat-reservation-graphic
483
+ style=${styleMap({
484
+ "--sbb-seat-reservation-graphic-width": width,
485
+ "--sbb-seat-reservation-graphic-height": height,
486
+ "--sbb-seat-reservation-graphic-rotation": rotation,
487
+ "--sbb-seat-reservation-graphic-inverse-rotation": inverseRotationPlaceCheckIcon
488
+ })}
489
+ .name=${name}
490
+ aria-hidden="true"
491
+ ></sbb-seat-reservation-graphic>
492
+ <span ${this.text ?? nothing} class="sbb-sr-place-ctrl__text" aria-hidden="true"
493
+ >${text}</span
494
+ >
495
+ ${!this.showTitleInfo ? html`<sbb-screen-reader-only id="${this.id}"
496
+ >${this._optionalScreenreaderInfo}</sbb-screen-reader-only
497
+ >` : nothing}
498
+ </div>
499
+ `;
500
+ }
501
+ _getPlaceSvg(type, state) {
502
+ const typeString = type;
503
+ const stateString = state;
504
+ return `PLACE_${typeString}_${stateString}`;
505
+ }
506
+ _getTitleDescriptionPlace(rotation) {
507
+ const translationKey = "PLACE_CONTROL_" + this.type + "_" + this.state;
508
+ let description = getI18nSeatReservation(translationKey, this._language.current, [this.text]);
509
+ const relativeTravelDirection = this._getRelativeTravelDirection(rotation);
510
+ if (this.propertyIds.length || relativeTravelDirection) {
511
+ description += ". " + getI18nSeatReservation("PLACE_PROPERTY", this._language.current).concat(": ");
512
+ description += [relativeTravelDirection, ...this.propertyIds].map((propertyId) => getI18nSeatReservation("PLACE_PROPERTIES." + propertyId, this._language.current)).filter((value) => value).join(", ");
513
+ }
514
+ return description;
515
+ }
516
+ _getRelativeTravelDirection(rotationValue) {
517
+ if (!this.travelDirection || this.travelDirection === "NONE" || this.placeType !== "SEAT" || !rotationValue)
518
+ return void 0;
519
+ const rotation = Number(rotationValue);
520
+ if (rotation === 90 || rotation === 270) {
521
+ return "TRAVEL_DIRECTION_TRANSVERSELY";
522
+ }
523
+ const inDirection = rotation === 0 && this.travelDirection === "RIGHT" || rotation === 180 && this.travelDirection === "LEFT";
524
+ if (inDirection) {
525
+ return "TRAVEL_DIRECTION_IN_DIRECTION";
526
+ } else if (rotation === 0 || rotation === 180) {
527
+ return "TRAVEL_DIRECTION_IN_OPPOSITE_DIRECTION";
528
+ }
529
+ return void 0;
530
+ }
531
+ /** If the place selectable, we emit the placeSelection object which contains infos to the place state */
532
+ _selectPlace() {
533
+ const selectable = (this.state === "FREE" || this.state === "SELECTED") && !this.preventClick;
534
+ if (selectable) {
535
+ this.state = this.state === "FREE" ? "SELECTED" : "FREE";
536
+ const placeSelection = {
537
+ id: this.id,
538
+ deckIndex: this.deckIndex,
539
+ coachIndex: this.coachIndex,
540
+ number: this.text,
541
+ state: this.state,
542
+ placeType: this.placeType
543
+ };
544
+ this.dispatchEvent(new CustomEvent("selectplace", {
545
+ detail: placeSelection,
546
+ bubbles: true,
547
+ composed: true
548
+ }));
549
+ }
550
+ }
551
+ }, _placeType_accessor_storage = new WeakMap(), _state_accessor_storage = new WeakMap(), _travelDirection_accessor_storage = new WeakMap(), _propertyIds_accessor_storage = new WeakMap(), _text_accessor_storage = new WeakMap(), _deckIndex_accessor_storage = new WeakMap(), _coachIndex_accessor_storage = new WeakMap(), _preventClick_accessor_storage = new WeakMap(), _keyfocus_accessor_storage = new WeakMap(), _showTitleInfo_accessor_storage = new WeakMap(), (() => {
552
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
553
+ _placeType_decorators = [forceType(), property({ attribute: "type" })];
554
+ _state_decorators = [forceType(), property({ attribute: "state", reflect: true })];
555
+ _travelDirection_decorators = [property({ attribute: "travel-direction" })];
556
+ _propertyIds_decorators = [property({ attribute: "propertyIds", type: Array })];
557
+ _text_decorators = [forceType(), property({ attribute: "text" })];
558
+ _deckIndex_decorators = [forceType(), property({ attribute: "deck-index", type: Number })];
559
+ _coachIndex_decorators = [forceType(), property({ attribute: "coach-index", type: Number })];
560
+ _preventClick_decorators = [forceType(), property({ attribute: "prevent-click", type: Boolean })];
561
+ _keyfocus_decorators = [forceType(), property({ attribute: "keyfocus" })];
562
+ _showTitleInfo_decorators = [forceType(), property({ type: Boolean, useDefault: true })];
563
+ __esDecorate(_a, null, _placeType_decorators, { kind: "accessor", name: "placeType", static: false, private: false, access: { has: (obj) => "placeType" in obj, get: (obj) => obj.placeType, set: (obj, value) => {
564
+ obj.placeType = value;
565
+ } }, metadata: _metadata }, _placeType_initializers, _placeType_extraInitializers);
566
+ __esDecorate(_a, null, _state_decorators, { kind: "accessor", name: "state", static: false, private: false, access: { has: (obj) => "state" in obj, get: (obj) => obj.state, set: (obj, value) => {
567
+ obj.state = value;
568
+ } }, metadata: _metadata }, _state_initializers, _state_extraInitializers);
569
+ __esDecorate(_a, null, _travelDirection_decorators, { kind: "accessor", name: "travelDirection", static: false, private: false, access: { has: (obj) => "travelDirection" in obj, get: (obj) => obj.travelDirection, set: (obj, value) => {
570
+ obj.travelDirection = value;
571
+ } }, metadata: _metadata }, _travelDirection_initializers, _travelDirection_extraInitializers);
572
+ __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) => {
573
+ obj.propertyIds = value;
574
+ } }, metadata: _metadata }, _propertyIds_initializers, _propertyIds_extraInitializers);
575
+ __esDecorate(_a, null, _text_decorators, { kind: "accessor", name: "text", static: false, private: false, access: { has: (obj) => "text" in obj, get: (obj) => obj.text, set: (obj, value) => {
576
+ obj.text = value;
577
+ } }, metadata: _metadata }, _text_initializers, _text_extraInitializers);
578
+ __esDecorate(_a, null, _deckIndex_decorators, { kind: "accessor", name: "deckIndex", static: false, private: false, access: { has: (obj) => "deckIndex" in obj, get: (obj) => obj.deckIndex, set: (obj, value) => {
579
+ obj.deckIndex = value;
580
+ } }, metadata: _metadata }, _deckIndex_initializers, _deckIndex_extraInitializers);
581
+ __esDecorate(_a, null, _coachIndex_decorators, { kind: "accessor", name: "coachIndex", static: false, private: false, access: { has: (obj) => "coachIndex" in obj, get: (obj) => obj.coachIndex, set: (obj, value) => {
582
+ obj.coachIndex = value;
583
+ } }, metadata: _metadata }, _coachIndex_initializers, _coachIndex_extraInitializers);
584
+ __esDecorate(_a, null, _preventClick_decorators, { kind: "accessor", name: "preventClick", static: false, private: false, access: { has: (obj) => "preventClick" in obj, get: (obj) => obj.preventClick, set: (obj, value) => {
585
+ obj.preventClick = value;
586
+ } }, metadata: _metadata }, _preventClick_initializers, _preventClick_extraInitializers);
587
+ __esDecorate(_a, null, _keyfocus_decorators, { kind: "accessor", name: "keyfocus", static: false, private: false, access: { has: (obj) => "keyfocus" in obj, get: (obj) => obj.keyfocus, set: (obj, value) => {
588
+ obj.keyfocus = value;
589
+ } }, metadata: _metadata }, _keyfocus_initializers, _keyfocus_extraInitializers);
590
+ __esDecorate(_a, null, _showTitleInfo_decorators, { kind: "accessor", name: "showTitleInfo", static: false, private: false, access: { has: (obj) => "showTitleInfo" in obj, get: (obj) => obj.showTitleInfo, set: (obj, value) => {
591
+ obj.showTitleInfo = value;
592
+ } }, metadata: _metadata }, _showTitleInfo_initializers, _showTitleInfo_extraInitializers);
593
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
594
+ })(), _a.elementName = "sbb-seat-reservation-place-control", _a.styles = [boxSizingStyles, style], _a.events = {
595
+ selectplace: "selectplace"
596
+ }, _a;
597
+ })();
598
+ export {
599
+ SbbSeatReservationPlaceControlElement
600
+ };
601
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkJ1dHRvbkJhc2VFbGVtZW50IH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvc3R5bGVzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHR5cGUgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24gfSBmcm9tICcuLi9jb21tb24vdHJhbnNsYXRpb25zLnRzJztcbmltcG9ydCB0eXBlIHsgUGxhY2VTZWxlY3Rpb24sIFBsYWNlU3RhdGUsIFBsYWNlVHlwZSwgVHJhdmVsRGlyZWN0aW9uIH0gZnJvbSAnLi4vY29tbW9uL3R5cGVzLnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IH0gZnJvbSAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wuc2Nzcz9saXQmaW5saW5lJztcblxuU2JiU2VhdFJlc2VydmF0aW9uR3JhcGhpY0VsZW1lbnQuZGVmaW5lKCk7XG5cbnR5cGUgVHJhdmVsRGlyZWN0aW9uSTE4bktleSA9XG4gIHwgJ1RSQVZFTF9ESVJFQ1RJT05fSU5fRElSRUNUSU9OJ1xuICB8ICdUUkFWRUxfRElSRUNUSU9OX0lOX09QUE9TSVRFX0RJUkVDVElPTidcbiAgfCAnVFJBVkVMX0RJUkVDVElPTl9UUkFOU1ZFUlNFTFknO1xuXG4vKipcbiAqIE91dHB1dCB0aGUgZ3JhcGhpYyBvZiBhIHNlYXQgb3IgYSBiaWN5Y2xlIHBsYWNlIGFzIGEgY29udHJvbCBlbGVtZW50LlxuICovXG5leHBvcnQgY2xhc3MgU2JiU2VhdFJlc2VydmF0aW9uUGxhY2VDb250cm9sRWxlbWVudCBleHRlbmRzIFNiYkJ1dHRvbkJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdHBsYWNlOiAnc2VsZWN0cGxhY2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBwbGFjZVR5cGUgb2YgdGhlIHBsYWNlLCBlLmcuICdTRUFUJywgJ0JJQ1lDTEUnICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0eXBlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcGxhY2VUeXBlOiBQbGFjZVR5cGUgPSAnU0VBVCc7XG5cbiAgLyoqIHN0YXRlIG9mIHRoZSBwbGFjZSwgZS5nLiAnRlJFRScsICdTRUxFQ1RFRCcsICdCTE9DS0VEJyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc3RhdGUnLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzdGF0ZTogUGxhY2VTdGF0ZSA9ICdGUkVFJztcblxuICAvKiogZGlyZWN0aW9uIG9mIGEgd2hvbGUgdHJhaW4sIHVzZWQgdG8gY29tcHV0ZSBhbiBvcmllbnRhdGlvbiBvZiBhIHBsYWNlICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RyYXZlbC1kaXJlY3Rpb24nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmF2ZWxEaXJlY3Rpb246IFRyYXZlbERpcmVjdGlvbiA9ICdOT05FJztcblxuICAvKiogcHJvcGVydHkgaWRzIG9mIHRoZSBwbGFjZSwgdG8gZGlzcGxheSBtb3JlIGluZm8gYWJvdXQgdGhlIHBsYWNlICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3Byb3BlcnR5SWRzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHByb3BlcnR5SWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKiBsYWJlbCBvZiB0aGUgcGxhY2UsIGUuZy4gJzFBJywgJzJCJyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGV4dCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIHRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBEZWNrIEluZGV4IFByb3AgdG8gaWRlbnRpZmllciB0aGUgcmlnaHQgcGxhY2UgdG8gZGVjayAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGVjay1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGVja0luZGV4OiBudW1iZXIgPSBudWxsITtcblxuICAvKiogQ29hY2ggSW5kZXggUHJvcCB0byBpZGVudGlmaWVyIHRoZSByaWdodCBwbGFjZSB0byBjb2FjaCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY29hY2gtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSW5kZXg6IG51bWJlciA9IG51bGwhO1xuXG4gIC8qKiBQcmV2ZW50IGNsaWNrIHByb3AgcHJldmVudCBhbnkgcGxhY2UgYWN0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmV2ZW50LWNsaWNrJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJldmVudENsaWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFNldCB0aGUgcGxhY2UgZm9jdXMgb3V0bGluZSBzdHlsZSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAna2V5Zm9jdXMnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBrZXlmb2N1czogc3RyaW5nID0gJ3VuZm9jdXMnO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBtb3VzZSBvdmVyIHRpdGxlIGluZm9ybWF0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCB1c2VEZWZhdWx0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzaG93VGl0bGVJbmZvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uYWxTY3JlZW5yZWFkZXJJbmZvOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuX3NlbGVjdFBsYWNlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdrZXlmb2N1cycpKSB7XG4gICAgICBpZiAodGhpcy5rZXlmb2N1cyA9PT0gJ2ZvY3VzJykge1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgdGl0bGUgd2FzIHNob3duIG9uY2UsIHdlIGNhbm5vdCB1bnNldCBpdCBjb21wbGV0ZWx5LCBidXQgdGhpc1xuICAgIC8vIGJlaGF2aW9yIHNob3VsZCBub3QgaGFwcGVuIHZlcnkgb2Z0ZW4gYXMgdGhlIHRpdGxlIHNob3VsZFxuICAgIC8vIG5vdCBzd2l0Y2ggZnJvbSBvbiB0byBvZmYgYW5kIG9uIGFnYWluXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2hvd1RpdGxlSW5mbycpKSB7XG4gICAgICBpZiAoIXRoaXMuc2hvd1RpdGxlSW5mbykge1xuICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0gdGhpcy5fZ2V0UGxhY2VTdmcodGhpcy5wbGFjZVR5cGUsIHRoaXMuc3RhdGUpO1xuICAgIGNvbnN0IHR5cGU6IHN0cmluZyA9IHRoaXMudHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHN0YXRlOiBzdHJpbmcgPSB0aGlzLnN0YXRlLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdGV4dDogc3RyaW5nIHwgbnVsbCA9IHRoaXMudGV4dDtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC13aWR0aCcpO1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1oZWlnaHQnKTtcbiAgICBjb25zdCByb3RhdGlvbiA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1yb3RhdGlvbicpO1xuICAgIGNvbnN0IHRleHRSb3RhdGlvbiA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb24nLFxuICAgICk7XG4gICAgY29uc3QgaW52ZXJzZVJvdGF0aW9uUGxhY2VDaGVja0ljb24gPSBOdW1iZXIodGV4dFJvdGF0aW9uKSAtIE51bWJlcihyb3RhdGlvbik7XG4gICAgY29uc3QgZGlzYWJsZWRDbGFzcyA9IHRoaXMucHJldmVudENsaWNrID8gJ3NiYi1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLS1kaXNhYmxlZCcgOiBudWxsO1xuXG4gICAgLy8gb25seSBzZXQgdGl0bGUgdG8gdGhlIFNiYkJ1dHRvbkJhc2VFbGVtZW50IGlmIHJlcXVlc3RlZDsgb3RoZXJ3aXNlIHByb3ZpZGUgdGhlIHRpdGxlXG4gICAgLy8gaW5mb3JtYXRpb24gdG8gc2NyZWVuIHJlYWRlcnMgdmlhIGFuIGFkZGl0aW9uYWwgZWxlbWVudFxuICAgIGlmICh0aGlzLnNob3dUaXRsZUluZm8pIHtcbiAgICAgIHRoaXMudGl0bGUgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2Uocm90YXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vcHRpb25hbFNjcmVlbnJlYWRlckluZm8gPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2Uocm90YXRpb24pO1xuICAgIH1cblxuICAgIHRoaXMudGFiSW5kZXggPSAtMTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBwYXJ0PVwic2JiLXNyLXBsYWNlLXBhcnRcIlxuICAgICAgICBjbGFzcz1cInNiYi1zci1wbGFjZS1jdHJsIHNiYi1zci1wbGFjZS1jdHJsLS1vcmllbnRhdGlvbi0ke3JvdGF0aW9ufSBzYmItc3ItcGxhY2UtY3RybC0tc3RhdGUtJHtzdGF0ZX0gc2JiLXNyLXBsYWNlLWN0cmwtLXR5cGUtJHt0eXBlfSAke2Rpc2FibGVkQ2xhc3N9XCJcbiAgICAgID5cbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgnOiB3aWR0aCxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogaGVpZ2h0LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1yb3RhdGlvbic6IHJvdGF0aW9uLFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1pbnZlcnNlLXJvdGF0aW9uJzogaW52ZXJzZVJvdGF0aW9uUGxhY2VDaGVja0ljb24sXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgLm5hbWU9JHtuYW1lfVxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICAgIDxzcGFuICR7dGhpcy50ZXh0ID8/IG5vdGhpbmd9IGNsYXNzPVwic2JiLXNyLXBsYWNlLWN0cmxfX3RleHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID4ke3RleHR9PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgJHshdGhpcy5zaG93VGl0bGVJbmZvXG4gICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGlkPVwiJHt0aGlzLmlkfVwiXG4gICAgICAgICAgICAgID4ke3RoaXMuX29wdGlvbmFsU2NyZWVucmVhZGVySW5mb308L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgID5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBsYWNlU3ZnKHR5cGU6IFBsYWNlVHlwZSwgc3RhdGU6IFBsYWNlU3RhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlIGFzIHN0cmluZztcbiAgICBjb25zdCBzdGF0ZVN0cmluZyA9IHN0YXRlIGFzIHN0cmluZztcbiAgICByZXR1cm4gYFBMQUNFXyR7dHlwZVN0cmluZ31fJHtzdGF0ZVN0cmluZ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGl0bGVEZXNjcmlwdGlvblBsYWNlKHJvdGF0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gJ1BMQUNFX0NPTlRST0xfJyArIHRoaXMudHlwZSArICdfJyArIHRoaXMuc3RhdGU7XG4gICAgbGV0IGRlc2NyaXB0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbih0cmFuc2xhdGlvbktleSwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW3RoaXMudGV4dF0pO1xuXG4gICAgY29uc3QgcmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24gPSB0aGlzLl9nZXRSZWxhdGl2ZVRyYXZlbERpcmVjdGlvbihyb3RhdGlvbik7XG5cbiAgICBpZiAodGhpcy5wcm9wZXJ0eUlkcy5sZW5ndGggfHwgcmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24pIHtcbiAgICAgIGRlc2NyaXB0aW9uICs9XG4gICAgICAgICcuICcgKyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdQTEFDRV9QUk9QRVJUWScsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLmNvbmNhdCgnOiAnKTtcblxuICAgICAgZGVzY3JpcHRpb24gKz0gW3JlbGF0aXZlVHJhdmVsRGlyZWN0aW9uLCAuLi50aGlzLnByb3BlcnR5SWRzXVxuICAgICAgICAubWFwKChwcm9wZXJ0eUlkKSA9PlxuICAgICAgICAgIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ1BMQUNFX1BST1BFUlRJRVMuJyArIHByb3BlcnR5SWQsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLFxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSlcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24oXG4gICAgcm90YXRpb25WYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApOiBUcmF2ZWxEaXJlY3Rpb25JMThuS2V5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy50cmF2ZWxEaXJlY3Rpb24gfHxcbiAgICAgIHRoaXMudHJhdmVsRGlyZWN0aW9uID09PSAnTk9ORScgfHxcbiAgICAgIHRoaXMucGxhY2VUeXBlICE9PSAnU0VBVCcgfHxcbiAgICAgICFyb3RhdGlvblZhbHVlXG4gICAgKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCByb3RhdGlvbiA9IE51bWJlcihyb3RhdGlvblZhbHVlKTtcblxuICAgIGlmIChyb3RhdGlvbiA9PT0gOTAgfHwgcm90YXRpb24gPT09IDI3MCkge1xuICAgICAgcmV0dXJuICdUUkFWRUxfRElSRUNUSU9OX1RSQU5TVkVSU0VMWSc7XG4gICAgfVxuXG4gICAgY29uc3QgaW5EaXJlY3Rpb24gPVxuICAgICAgKHJvdGF0aW9uID09PSAwICYmIHRoaXMudHJhdmVsRGlyZWN0aW9uID09PSAnUklHSFQnKSB8fFxuICAgICAgKHJvdGF0aW9uID09PSAxODAgJiYgdGhpcy50cmF2ZWxEaXJlY3Rpb24gPT09ICdMRUZUJyk7XG5cbiAgICBpZiAoaW5EaXJlY3Rpb24pIHtcbiAgICAgIHJldHVybiAnVFJBVkVMX0RJUkVDVElPTl9JTl9ESVJFQ1RJT04nO1xuICAgIH0gZWxzZSBpZiAocm90YXRpb24gPT09IDAgfHwgcm90YXRpb24gPT09IDE4MCkge1xuICAgICAgcmV0dXJuICdUUkFWRUxfRElSRUNUSU9OX0lOX09QUE9TSVRFX0RJUkVDVElPTic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBJZiB0aGUgcGxhY2Ugc2VsZWN0YWJsZSwgd2UgZW1pdCB0aGUgcGxhY2VTZWxlY3Rpb24gb2JqZWN0IHdoaWNoIGNvbnRhaW5zIGluZm9zIHRvIHRoZSBwbGFjZSBzdGF0ZSAqL1xuICBwcml2YXRlIF9zZWxlY3RQbGFjZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RhYmxlID0gKHRoaXMuc3RhdGUgPT09ICdGUkVFJyB8fCB0aGlzLnN0YXRlID09PSAnU0VMRUNURUQnKSAmJiAhdGhpcy5wcmV2ZW50Q2xpY2s7XG5cbiAgICBpZiAoc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuc3RhdGUgPT09ICdGUkVFJyA/ICdTRUxFQ1RFRCcgOiAnRlJFRSc7XG4gICAgICBjb25zdCBwbGFjZVNlbGVjdGlvbjogUGxhY2VTZWxlY3Rpb24gPSB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICBkZWNrSW5kZXg6IHRoaXMuZGVja0luZGV4LFxuICAgICAgICBjb2FjaEluZGV4OiB0aGlzLmNvYWNoSW5kZXgsXG4gICAgICAgIG51bWJlcjogdGhpcy50ZXh0LFxuICAgICAgICBzdGF0ZTogdGhpcy5zdGF0ZSxcbiAgICAgICAgcGxhY2VUeXBlOiB0aGlzLnBsYWNlVHlwZSxcbiAgICAgIH07XG5cbiAgICAgIC8qKlxuICAgICAgICogQHR5cGUge0N1c3RvbUV2ZW50PFBsYWNlU2VsZWN0aW9uPn1cbiAgICAgICAqIEVtaXRzIHdoZW4gYSBwbGFjZSB3YXMgc2VsZWN0ZWQgdmlhIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHJldHVybnMgYVxuICAgICAgICogUGxhY2VTZWxlY3Rpb24gb2JqZWN0IHdpdGggbmVjZXNzYXJ5IHBsYWNlIGluZm9ybWF0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudDxQbGFjZVNlbGVjdGlvbj4oJ3NlbGVjdHBsYWNlJywge1xuICAgICAgICAgIGRldGFpbDogcGxhY2VTZWxlY3Rpb24sXG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbCc6IFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxpQ0FBaUMsT0FBQTtJQVVwQix5Q0FBcUMsTUFBQTs7b0JBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBOUMsU0FBQSxtQkFBOEMsWUFBb0I7QUFBQSxJQTJEN0UsY0FBQTtBQUNFLFlBQUE7QUFsREY7QUFLQTtBQUlBO0FBSUE7QUFLQTtBQUtBO0FBS0E7QUFLQTtBQUtBO0FBS0E7QUEzQ2dCLHlCQUFBLDZCQUFBLGtCQUFBLE1BQUEseUJBQXVCLE1BQU07QUFLN0IseUJBQUEsMEJBQUEsa0JBQUEsTUFBQSw0QkFBQSxHQUFBLGtCQUFBLE1BQUEscUJBQW9CLE1BQU07QUFJMUIseUJBQUEsb0NBQUEsa0JBQUEsTUFBQSx3QkFBQSxHQUFBLGtCQUFBLE1BQUEsK0JBQW1DLE1BQU07QUFJekMseUJBQUEsZ0NBQUEsa0JBQUEsTUFBQSxrQ0FBQSxHQUFBLGtCQUFBLE1BQUEsMkJBQXdCLENBQUEsQ0FBRTtBQUsxQix5QkFBQSx5QkFBQSxrQkFBQSxNQUFBLDhCQUFBLEdBQUEsa0JBQUEsTUFBQSxvQkFBZSxFQUFFO0FBS2pCLHlCQUFBLDhCQUFBLGtCQUFBLE1BQUEsdUJBQUEsR0FBQSxrQkFBQSxNQUFBLHlCQUFvQixJQUFLO0FBS3pCLHlCQUFBLCtCQUFBLGtCQUFBLE1BQUEsNEJBQUEsR0FBQSxrQkFBQSxNQUFBLDBCQUFxQixJQUFLO0FBSzFCLHlCQUFBLGlDQUFBLGtCQUFBLE1BQUEsNkJBQUEsR0FBQSxrQkFBQSxNQUFBLDRCQUF3QixLQUFLO0FBSzdCLHlCQUFBLDZCQUFBLGtCQUFBLE1BQUEsK0JBQUEsR0FBQSxrQkFBQSxNQUFBLHdCQUFtQixTQUFTO0FBSzVCLHlCQUFBLGtDQUFBLGtCQUFBLE1BQUEsMkJBQUEsR0FBQSxrQkFBQSxNQUFBLDZCQUF5QixLQUFLO0FBRXRDLFdBQUEsNkJBQXlCLGtCQUFBLE1BQUEsZ0NBQUEsR0FBVztBQUVwQyxXQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUloRCxXQUFLLGlCQUFpQixTQUFTLE1BQU0sS0FBSyxjQUFjO0FBQUEsSUFDMUQ7QUFBQTtBQUFBLElBcERBLElBQWdCLFlBQVM7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXpCLElBQWdCLFVBQVMsT0FBQTtBQUFBLHlCQUFBLDZCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLekIsSUFBZ0IsUUFBSztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBckIsSUFBZ0IsTUFBSyxPQUFBO0FBQUEseUJBQUEseUJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUlyQixJQUFnQixrQkFBZTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBL0IsSUFBZ0IsZ0JBQWUsT0FBQTtBQUFBLHlCQUFBLG1DQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFJL0IsSUFBZ0IsY0FBVztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBM0IsSUFBZ0IsWUFBVyxPQUFBO0FBQUEseUJBQUEsK0JBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUszQixJQUFnQixPQUFJO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSx5QkFBQSx3QkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBS3BCLElBQWdCLFlBQVM7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXpCLElBQWdCLFVBQVMsT0FBQTtBQUFBLHlCQUFBLDZCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLekIsSUFBZ0IsYUFBVTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBMUIsSUFBZ0IsV0FBVSxPQUFBO0FBQUEseUJBQUEsOEJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUsxQixJQUFnQixlQUFZO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUE1QixJQUFnQixhQUFZLE9BQUE7QUFBQSx5QkFBQSxnQ0FBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBSzVCLElBQWdCLFdBQVE7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLHlCQUFBLDRCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLeEIsSUFBZ0IsZ0JBQWE7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQTdCLElBQWdCLGNBQWEsT0FBQTtBQUFBLHlCQUFBLGlDQUFBO0FBQUEsSUFBQTtBQUFBLElBV1YsV0FBVyxtQkFBdUM7QUFDbkUsWUFBTSxXQUFXLGlCQUFpQjtBQUVsQyxVQUFJLGtCQUFrQixJQUFJLFVBQVUsR0FBRztBQUNyQyxZQUFJLEtBQUssYUFBYSxTQUFTO0FBQzdCLGVBQUssTUFBQTtBQUFBLFFBQ1A7QUFBQSxNQUNGO0FBS0EsVUFBSSxrQkFBa0IsSUFBSSxlQUFlLEdBQUc7QUFDMUMsWUFBSSxDQUFDLEtBQUssZUFBZTtBQUN2QixlQUFLLFFBQVE7QUFBQSxRQUNmO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUVtQixTQUFNO0FBQ3ZCLFlBQU0sT0FBZSxLQUFLLGFBQWEsS0FBSyxXQUFXLEtBQUssS0FBSztBQUNqRSxZQUFNLE9BQWUsS0FBSyxLQUFLLFlBQUE7QUFDL0IsWUFBTSxRQUFnQixLQUFLLE1BQU0sWUFBQTtBQUNqQyxZQUFNLE9BQXNCLEtBQUs7QUFDakMsWUFBTSxRQUFRLEtBQUssT0FBTyxpQkFBaUIsNENBQTRDO0FBQ3ZGLFlBQU0sU0FBUyxLQUFLLE9BQU8saUJBQWlCLDZDQUE2QztBQUN6RixZQUFNLFdBQVcsS0FBSyxPQUFPLGlCQUFpQiwrQ0FBK0M7QUFDN0YsWUFBTSxlQUFlLEtBQUssT0FBTyxpQkFDL0Isb0RBQW9EO0FBRXRELFlBQU0sZ0NBQWdDLE9BQU8sWUFBWSxJQUFJLE9BQU8sUUFBUTtBQUM1RSxZQUFNLGdCQUFnQixLQUFLLGVBQWUsNENBQTRDO0FBSXRGLFVBQUksS0FBSyxlQUFlO0FBQ3RCLGFBQUssUUFBUSxLQUFLLDBCQUEwQixRQUFRO0FBQUEsTUFDdEQsT0FBTztBQUNMLGFBQUssNEJBQTRCLEtBQUssMEJBQTBCLFFBQVE7QUFBQSxNQUMxRTtBQUVBLFdBQUssV0FBVztBQUVoQixhQUFPO0FBQUE7QUFBQTtBQUFBLGtFQUd1RCxRQUFRLDZCQUE2QixLQUFLLDRCQUE0QixJQUFJLElBQUksYUFBYTtBQUFBO0FBQUE7QUFBQSxrQkFHM0ksU0FBUztBQUFBLFFBQ2Ysd0NBQXdDO0FBQUEsUUFDeEMseUNBQXlDO0FBQUEsUUFDekMsMkNBQTJDO0FBQUEsUUFDM0MsbURBQW1EO0FBQUEsTUFBQSxDQUNwRCxDQUFDO0FBQUEsa0JBQ00sSUFBSTtBQUFBO0FBQUE7QUFBQSxnQkFHTixLQUFLLFFBQVEsT0FBTztBQUFBLGFBQ3ZCLElBQUk7QUFBQTtBQUFBLFVBRVAsQ0FBQyxLQUFLLGdCQUNKLG1DQUFtQyxLQUFLLEVBQUU7QUFBQSxpQkFDckMsS0FBSyx5QkFBeUI7QUFBQSxpQkFFbkMsT0FBTztBQUFBO0FBQUE7QUFBQSxJQUdqQjtBQUFBLElBRVEsYUFBYSxNQUFpQixPQUFpQjtBQUNyRCxZQUFNLGFBQWE7QUFDbkIsWUFBTSxjQUFjO0FBQ3BCLGFBQU8sU0FBUyxVQUFVLElBQUksV0FBVztBQUFBLElBQzNDO0FBQUEsSUFFUSwwQkFBMEIsVUFBNEI7QUFDNUQsWUFBTSxpQkFBaUIsbUJBQW1CLEtBQUssT0FBTyxNQUFNLEtBQUs7QUFDakUsVUFBSSxjQUFjLHVCQUF1QixnQkFBZ0IsS0FBSyxVQUFVLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQztBQUU1RixZQUFNLDBCQUEwQixLQUFLLDRCQUE0QixRQUFRO0FBRXpFLFVBQUksS0FBSyxZQUFZLFVBQVUseUJBQXlCO0FBQ3RELHVCQUNFLE9BQU8sdUJBQXVCLGtCQUFrQixLQUFLLFVBQVUsT0FBTyxFQUFFLE9BQU8sSUFBSTtBQUVyRix1QkFBZSxDQUFDLHlCQUF5QixHQUFHLEtBQUssV0FBVyxFQUN6RCxJQUFJLENBQUMsZUFDSix1QkFBdUIsc0JBQXNCLFlBQVksS0FBSyxVQUFVLE9BQU8sQ0FBQyxFQUVqRixPQUFPLENBQUMsVUFBVSxLQUFLLEVBQ3ZCLEtBQUssSUFBSTtBQUFBLE1BQ2Q7QUFFQSxhQUFPO0FBQUEsSUFDVDtBQUFBLElBRVEsNEJBQ04sZUFBaUM7QUFFakMsVUFDRSxDQUFDLEtBQUssbUJBQ04sS0FBSyxvQkFBb0IsVUFDekIsS0FBSyxjQUFjLFVBQ25CLENBQUM7QUFFRCxlQUFPO0FBQ1QsWUFBTSxXQUFXLE9BQU8sYUFBYTtBQUVyQyxVQUFJLGFBQWEsTUFBTSxhQUFhLEtBQUs7QUFDdkMsZUFBTztBQUFBLE1BQ1Q7QUFFQSxZQUFNLGNBQ0gsYUFBYSxLQUFLLEtBQUssb0JBQW9CLFdBQzNDLGFBQWEsT0FBTyxLQUFLLG9CQUFvQjtBQUVoRCxVQUFJLGFBQWE7QUFDZixlQUFPO0FBQUEsTUFDVCxXQUFXLGFBQWEsS0FBSyxhQUFhLEtBQUs7QUFDN0MsZUFBTztBQUFBLE1BQ1Q7QUFFQSxhQUFPO0FBQUEsSUFDVDtBQUFBO0FBQUEsSUFHUSxlQUFZO0FBQ2xCLFlBQU0sY0FBYyxLQUFLLFVBQVUsVUFBVSxLQUFLLFVBQVUsZUFBZSxDQUFDLEtBQUs7QUFFakYsVUFBSSxZQUFZO0FBQ2QsYUFBSyxRQUFRLEtBQUssVUFBVSxTQUFTLGFBQWE7QUFDbEQsY0FBTSxpQkFBaUM7QUFBQSxVQUNyQyxJQUFJLEtBQUs7QUFBQSxVQUNULFdBQVcsS0FBSztBQUFBLFVBQ2hCLFlBQVksS0FBSztBQUFBLFVBQ2pCLFFBQVEsS0FBSztBQUFBLFVBQ2IsT0FBTyxLQUFLO0FBQUEsVUFDWixXQUFXLEtBQUs7QUFBQSxRQUFBO0FBUWxCLGFBQUssY0FDSCxJQUFJLFlBQTRCLGVBQWU7QUFBQSxVQUM3QyxRQUFRO0FBQUEsVUFDUixTQUFTO0FBQUEsVUFDVCxVQUFVO0FBQUEsUUFBQSxDQUNYLENBQUM7QUFBQSxNQUVOO0FBQUEsSUFDRjtBQUFBLEVBQUEsR0FoTkEsNkNBS0EseUNBSUEsbURBSUEsK0NBS0Esd0NBS0EsNkNBS0EsOENBS0EsZ0RBS0EsNENBS0E7OzZCQTdDQyxhQUNBLFNBQVMsRUFBRSxXQUFXLE9BQUEsQ0FBUSxDQUFDO0FBSS9CLHdCQUFBLENBQUEsVUFBQSxHQUNBLFNBQVMsRUFBRSxXQUFXLFNBQVMsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUkvQyxrQ0FBQSxDQUFBLFNBQVMsRUFBRSxXQUFXLG1CQUFBLENBQW9CLENBQUM7K0JBSTNDLFNBQVMsRUFBRSxXQUFXLGVBQWUsTUFBTSxNQUFBLENBQU8sQ0FBQzt3QkFJbkQsYUFDQSxTQUFTLEVBQUUsV0FBVyxPQUFBLENBQVEsQ0FBQztBQUkvQiw0QkFBQSxDQUFBLFVBQUEsR0FDQSxTQUFTLEVBQUUsV0FBVyxjQUFjLE1BQU0sT0FBQSxDQUFRLENBQUM7QUFJbkQsNkJBQUEsQ0FBQSxVQUFBLEdBQ0EsU0FBUyxFQUFFLFdBQVcsZUFBZSxNQUFNLE9BQUEsQ0FBUSxDQUFDO0FBSXBELCtCQUFBLENBQUEsVUFBQSxHQUNBLFNBQVMsRUFBRSxXQUFXLGlCQUFpQixNQUFNLFFBQUEsQ0FBUyxDQUFDOzRCQUl2RCxhQUNBLFNBQVMsRUFBRSxXQUFXLFdBQUEsQ0FBWSxDQUFDO0FBSW5DLGdDQUFBLENBQUEsVUFBQSxHQUNBLFNBQVMsRUFBRSxNQUFNLFNBQVMsWUFBWSxLQUFBLENBQU0sQ0FBQztBQTFDOUMsaUJBQUEsSUFBQSxNQUFBLHVCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsYUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxlQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsV0FBUyxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBVCxZQUFTO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLHlCQUFBLDRCQUFBO0FBS3pCLGlCQUFBLElBQUEsTUFBQSxtQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsV0FBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLE9BQUssS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUwsUUFBSztBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxxQkFBQSx3QkFBQTtBQUlyQixpQkFBQSxJQUFBLE1BQUEsNkJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxtQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxxQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLGlCQUFlLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFmLGtCQUFlO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLCtCQUFBLGtDQUFBO0FBSS9CLGlCQUFBLElBQUEsTUFBQSx5QkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGVBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsaUJBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixhQUFXLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFYLGNBQVc7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsMkJBQUEsOEJBQUE7QUFLM0IsaUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsTUFBSSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLG9CQUFBLHVCQUFBO0FBS3BCLGlCQUFBLElBQUEsTUFBQSx1QkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGFBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsZUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLFdBQVMsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVQsWUFBUztBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSx5QkFBQSw0QkFBQTtBQUt6QixpQkFBQSxJQUFBLE1BQUEsd0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxjQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGdCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsWUFBVSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBVixhQUFVO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLDBCQUFBLDZCQUFBO0FBSzFCLGlCQUFBLElBQUEsTUFBQSwwQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGdCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGtCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsY0FBWSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBWixlQUFZO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLDRCQUFBLCtCQUFBO0FBSzVCLGlCQUFBLElBQUEsTUFBQSxzQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFlBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsY0FBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLFVBQVEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVIsV0FBUTtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSx3QkFBQSwyQkFBQTtBQUt4QixpQkFBQSxJQUFBLE1BQUEsMkJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxpQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxtQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLGVBQWEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQWIsZ0JBQWE7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsNkJBQUEsZ0NBQUE7O1FBcERHLEdBQUEsY0FBc0Isc0NBQy9CLEdBQUEsU0FBeUIsQ0FBQyxpQkFBaUIsS0FBSyxHQUNoRCxHQUFBLFNBQVM7QUFBQSxJQUM5QixhQUFhO0FBQUEsRUFBQSxHQUpKOzsifQ==