@sbb-esta/lyne-elements-experimental 5.0.0-next.3 → 5.0.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 (167) hide show
  1. package/_index.scss +2 -0
  2. package/{core.css → autocomplete-grid/_autocomplete-grid.global.scss} +4 -3
  3. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +4 -4
  4. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +42 -66
  5. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  6. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  7. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  8. package/{autocomplete-grid-option.component-kcihiOWt.js → autocomplete-grid-option.component-DUFBhQwI.js} +1 -1
  9. package/autocomplete-grid.js +3 -3
  10. package/autocomplete-grid.pure.js +3 -3
  11. package/core/datetime/date-helper.js +1 -1
  12. package/core/styles/_theme.scss +19 -0
  13. package/core.js +1 -1
  14. package/custom-elements.json +165 -27
  15. package/{date-helper-CuMnZCsr.js → date-helper-DNzMLcyb.js} +3 -3
  16. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  17. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +5 -5
  18. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
  19. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +54 -83
  20. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  21. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +1 -1
  22. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +0 -1
  23. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
  24. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  25. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  26. package/development/{autocomplete-grid-cell.component-BF8i4388.js → autocomplete-grid-cell.component-BbdELDro.js} +1 -1
  27. package/development/{autocomplete-grid-option.component-D9pTXPlu.js → autocomplete-grid-option.component-C7WuqRit.js} +1 -2
  28. package/development/{autocomplete-grid-row.component-CBHh50jC.js → autocomplete-grid-row.component-DoXbOsQM.js} +1 -1
  29. package/development/autocomplete-grid.js +4 -4
  30. package/development/autocomplete-grid.pure.js +3 -3
  31. package/development/core/datetime/date-helper.js +1 -1
  32. package/development/core/timetable/access-leg-helper.js +1 -1
  33. package/development/core/timetable/timetable-helper.js +1 -1
  34. package/development/core.js +1 -1
  35. package/development/date-helper-BcTDWVeP.js +539 -0
  36. package/development/{differenceInMinutes-B7_GTDq7.js → differenceInMinutes-CxAbGYQ3.js} +2 -2
  37. package/development/{format-DFx4997p.js → format-Cx3zmmaF.js} +3 -3
  38. package/development/{isValid-JpZ7FphI.js → isValid-40Olgzo1.js} +2 -2
  39. package/development/journey-summary/journey-summary.component.js +1 -1
  40. package/development/journey-summary.component-BsC7wBIn.js +341 -0
  41. package/development/journey-summary.js +2 -2
  42. package/development/journey-summary.pure.js +1 -1
  43. package/development/{mapper-hWWm7Uke.js → mapper-BrZOqqfe.js} +1 -1
  44. package/development/pearl-chain/pearl-chain.component.js +1 -1
  45. package/development/pearl-chain-time/pearl-chain-time.component.js +1 -1
  46. package/development/{pearl-chain-time.component-BxVQ1z-Z.js → pearl-chain-time.component-C-CuC1ke.js} +3 -3
  47. package/development/pearl-chain-time.js +2 -2
  48. package/development/pearl-chain-time.pure.js +1 -1
  49. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  50. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  51. package/development/{pearl-chain-vertical-item.component-DJioJtxP.js → pearl-chain-vertical-item.component-CLu9QrqJ.js} +2 -2
  52. package/development/pearl-chain-vertical-item.js +2 -2
  53. package/development/pearl-chain-vertical-item.pure.js +1 -1
  54. package/development/{pearl-chain-vertical.component-zSOeIkhh.js → pearl-chain-vertical.component-DbPz5k_R.js} +1 -1
  55. package/development/pearl-chain-vertical.js +2 -2
  56. package/development/pearl-chain-vertical.pure.js +1 -1
  57. package/development/pearl-chain.component-10OsJZIX.js +318 -0
  58. package/development/pearl-chain.js +2 -2
  59. package/development/pearl-chain.pure.js +1 -1
  60. package/development/seat-reservation/common/mapper/icon-mapper.js +1 -1
  61. package/development/seat-reservation/common/mapper/mapper.js +1 -1
  62. package/development/seat-reservation/common/mapper.js +1 -1
  63. package/development/seat-reservation/common/svgs.js +1 -1
  64. package/development/seat-reservation/common/translations/i18n.js +1 -1
  65. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +11 -1
  66. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  67. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +41 -24
  68. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  69. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  70. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  71. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  72. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +6 -2
  73. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  74. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +2 -2
  75. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  76. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +6 -2
  77. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  78. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -2
  79. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  80. package/development/{seat-reservation-area.component-CMqjbUtV.js → seat-reservation-area.component-DPhQJFid.js} +2 -2
  81. package/development/{seat-reservation-graphic.component-C2r57590.js → seat-reservation-graphic.component-0LYsmerm.js} +2 -2
  82. package/development/seat-reservation-navigation-coach.component-B97jKD7Y.js +438 -0
  83. package/development/{seat-reservation-navigation-services.component-Do8JLJh3.js → seat-reservation-navigation-services.component-Cx0Is97w.js} +2 -2
  84. package/development/{seat-reservation-place-control.component-BfuOGZYq.js → seat-reservation-place-control.component-DaL1g8WH.js} +40 -37
  85. package/development/{seat-reservation-scoped.component-D-Mvw-Q3.js → seat-reservation-scoped.component-BHbORVsR.js} +1 -1
  86. package/development/seat-reservation.component-DI9pSlzt.js +473 -0
  87. package/development/seat-reservation.js +12 -12
  88. package/development/seat-reservation.pure.js +11 -11
  89. package/development/{svgs-kDpBCto5.js → svgs-Dj-RKmRs.js} +1 -1
  90. package/development/timetable-duration/timetable-duration.component.js +1 -1
  91. package/development/timetable-duration.component-Chk5D4Is.js +96 -0
  92. package/development/timetable-duration.js +2 -2
  93. package/development/timetable-duration.pure.js +1 -1
  94. package/development/timetable-row/timetable-row.component.d.ts.map +1 -1
  95. package/development/timetable-row/timetable-row.component.js +1 -1
  96. package/development/timetable-row.component-nzrQzxL6.js +736 -0
  97. package/development/timetable-row.js +2 -2
  98. package/development/timetable-row.pure.js +1 -1
  99. package/development/{toDate-DOFAOjP-.js → toDate-CDWut5fS.js} +1 -1
  100. package/{differenceInMinutes-Dr9gRqtu.js → differenceInMinutes-BAZ-Fham.js} +1 -1
  101. package/{format-DbUuNYFU.js → format-DjgG1QPc.js} +2 -2
  102. package/{isValid-B9oVW3lA.js → isValid-CXnsFZVu.js} +1 -1
  103. package/journey-summary/journey-summary.component.js +1 -1
  104. package/{journey-summary.component-CkDRawn9.js → journey-summary.component-DNoO3OCf.js} +41 -41
  105. package/journey-summary.js +1 -1
  106. package/journey-summary.pure.js +1 -1
  107. package/package.json +6 -6
  108. package/pearl-chain/pearl-chain.component.js +1 -1
  109. package/pearl-chain-time/pearl-chain-time.component.js +1 -1
  110. package/{pearl-chain-time.component-D5OCEBJ_.js → pearl-chain-time.component-BuvA6IE1.js} +33 -33
  111. package/pearl-chain-time.js +1 -1
  112. package/pearl-chain-time.pure.js +1 -1
  113. package/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  114. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  115. package/{pearl-chain-vertical-item.component-IdquCJMy.js → pearl-chain-vertical-item.component-QZ4s8Jbv.js} +24 -24
  116. package/pearl-chain-vertical-item.js +1 -1
  117. package/pearl-chain-vertical-item.pure.js +1 -1
  118. package/pearl-chain-vertical.js +1 -1
  119. package/pearl-chain-vertical.pure.js +1 -1
  120. package/{pearl-chain.component-C6lcD7Xl.js → pearl-chain.component-DtGXXkY6.js} +26 -26
  121. package/pearl-chain.js +1 -1
  122. package/pearl-chain.pure.js +1 -1
  123. package/seat-reservation/common/mapper/mapper.js +1 -1
  124. package/seat-reservation/common/mapper.js +1 -1
  125. package/seat-reservation/common/svgs.js +1 -1
  126. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +91 -77
  127. package/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  128. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  129. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  130. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +2 -2
  131. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  132. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -2
  133. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  134. package/{seat-reservation-area.component-BcmwKJSK.js → seat-reservation-area.component-G9lHb7S8.js} +16 -16
  135. package/{seat-reservation-graphic.component-C3wc4DKr.js → seat-reservation-graphic.component-BXFcQDxY.js} +20 -20
  136. package/seat-reservation-navigation-coach.component-BXy8EkJe.js +338 -0
  137. package/{seat-reservation-navigation-services.component-CfAQa7pa.js → seat-reservation-navigation-services.component-49XmV9rv.js} +21 -21
  138. package/{seat-reservation-place-control.component-DrzEDW8Z.js → seat-reservation-place-control.component-DToIW328.js} +70 -71
  139. package/{seat-reservation.component-RNI6_X71.js → seat-reservation.component--0XnrCkk.js} +78 -77
  140. package/seat-reservation.js +12 -12
  141. package/seat-reservation.pure.js +11 -11
  142. package/timetable-duration/timetable-duration.component.js +1 -1
  143. package/timetable-duration.component-iMCvh1zr.js +61 -0
  144. package/timetable-duration.js +1 -1
  145. package/timetable-duration.pure.js +1 -1
  146. package/timetable-row/timetable-row.component.js +1 -1
  147. package/{timetable-row.component-Din-TQ9u.js → timetable-row.component-mNKmhRmP.js} +89 -85
  148. package/timetable-row.js +1 -1
  149. package/timetable-row.pure.js +1 -1
  150. package/core/styles/core.scss +0 -13
  151. package/core/styles/theme.scss +0 -5
  152. package/development/date-helper-DGz-ztQM.js +0 -520
  153. package/development/journey-summary.component-De1ioDRq.js +0 -341
  154. package/development/pearl-chain.component-B83OsEx8.js +0 -312
  155. package/development/seat-reservation-navigation-coach.component-BwLbiHCG.js +0 -426
  156. package/development/seat-reservation.component-B-n0sIL5.js +0 -472
  157. package/development/timetable-duration.component-fBla8Kue.js +0 -96
  158. package/development/timetable-row.component-DSTGtQAC.js +0 -732
  159. package/seat-reservation-navigation-coach.component-D1SgS8BU.js +0 -328
  160. package/timetable-duration.component-DPRcG1LP.js +0 -61
  161. /package/{autocomplete-grid-cell.component-DAsWZlTn.js → autocomplete-grid-cell.component-79IjA__I.js} +0 -0
  162. /package/{autocomplete-grid-row.component-VbyYP0U-.js → autocomplete-grid-row.component-B3U15Rwa.js} +0 -0
  163. /package/{mapper-Cqie5ivY.js → mapper-Dcou8VEf.js} +0 -0
  164. /package/{pearl-chain-vertical.component-CDOWaup3.js → pearl-chain-vertical.component-Dc3vaHsQ.js} +0 -0
  165. /package/{seat-reservation-scoped.component-BohQUGVW.js → seat-reservation-scoped.component-D8dAmrP7.js} +0 -0
  166. /package/{svgs-D5DhLHxC.js → svgs-D4fuYTHV.js} +0 -0
  167. /package/{toDate-p-Tpkb7t.js → toDate-BhNUyM4s.js} +0 -0
@@ -0,0 +1,438 @@
1
+ import { SbbElement, SbbLanguageController, buttonResetStyles, forceType, screenReaderOnlyStyles } from "@sbb-esta/lyne-elements/core.js";
2
+ import { html, nothing, unsafeCSS } from "lit";
3
+ import { __esDecorate, __runInitializers } from "tslib";
4
+ import { property } from "lit/decorators.js";
5
+ import { classMap } from "lit/directives/class-map.js";
6
+ import { getI18nSeatReservation } from "./seat-reservation/common/translations.js";
7
+ import { SbbSeatReservationNavigationServicesElement } from "./seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js";
8
+ //#region src/elements-experimental/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.scss?inline
9
+ var seat_reservation_navigation_coach_default = ":host {\n display: inline-block;\n min-height: calc(44 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n --sbb-seat-reservation-navigation-travelclass-spacing: 10;\n --sbb-seat-reservation-navigation-btn-border-width-default: 1;\n --sbb-seat-reservation-navigation-btn-border-width: var(\n --sbb-seat-reservation-navigation-btn-border-width-default\n );\n --sbb-seat-reservation-navigation-btn-border-color: var(--sbb-color-granite);\n --sbb-seat-reservation-navigation-btn-border-color: light-dark(\n var(--sbb-color-granite),\n var(--sbb-color-graphite)\n );\n --sbb-seat-reservation-navigation-btn-background-color: var(--sbb-color-white);\n --sbb-seat-reservation-navigation-btn-background-color: light-dark(\n var(--sbb-color-white),\n var(--sbb-color-black)\n );\n --sbb-seat-reservation-navigation-btn-border-width-selected: 2;\n --sbb-seat-reservation-navigation-btn-background-color-selected: var(--sbb-color-milk);\n --sbb-seat-reservation-navigation-btn-background-color-selected: light-dark(\n var(--sbb-color-milk),\n var(--sbb-color-iron)\n );\n --sbb-seat-reservation-navigation-btn-border-color-selected: var(--sbb-color-black);\n --sbb-seat-reservation-navigation-btn-border-color-selected: light-dark(\n var(--sbb-color-black),\n var(--sbb-color-white)\n );\n --sbb-seat-reservation-navigation-btn-outline-width-focused: 1;\n --sbb-seat-reservation-navigation-btn-outline-color-focused: var(--sbb-color-black);\n --sbb-seat-reservation-navigation-btn-outline-color-focused: light-dark(\n var(--sbb-color-black),\n var(--sbb-color-white)\n );\n --sbb-seat-reservation-navigation-btn-outline-offset-focused: 4;\n --sbb-seat-reservation-navigation-btn-background-color-focused: var(--sbb-color-white);\n --sbb-seat-reservation-navigation-btn-background-color-focused: light-dark(\n var(--sbb-color-white),\n var(--sbb-color-black)\n );\n --sbb-seat-reservation-navigation-btn-border-width-focused: var(\n --sbb-seat-reservation-navigation-btn-border-width\n );\n --sbb-seat-reservation-navigation-btn-border-color-focused: var(--sbb-color-black);\n --sbb-seat-reservation-navigation-btn-border-color-focused: light-dark(\n var(--sbb-color-black),\n var(--sbb-color-white)\n );\n --sbb-seat-reservation-navigation-btn-border-width-hovered: 2;\n --sbb-seat-reservation-navigation-btn-background-color-hovered: var(--sbb-color-cloud);\n --sbb-seat-reservation-navigation-btn-background-color-hovered: light-dark(\n var(--sbb-color-cloud),\n var(--sbb-color-midnight)\n );\n --sbb-seat-reservation-navigation-btn-border-color-hovered: var(--sbb-color-black);\n --sbb-seat-reservation-navigation-btn-border-color-hovered: light-dark(\n var(--sbb-color-black),\n var(--sbb-color-white)\n );\n --sbb-seat-reservation-navigation-btn-background-color-disabled: var(--sbb-background-color-2);\n --sbb-seat-reservation-navigation-btn-border-color-disabled: var(--sbb-color-platinum);\n --sbb-seat-reservation-navigation-btn-border-color-disabled: light-dark(\n var(--sbb-color-platinum),\n var(--sbb-color-iron)\n );\n}\n\n.sbb-sr-navigation__item-coach {\n display: flex;\n flex-direction: column;\n gap: calc(8 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n width: calc(80 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n list-style-type: none;\n}\n.sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation--first-class, .sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation--first-class {\n width: calc(100% - 18 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n.sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation__ctrl-button:not(.sbb-seat-reservation-navigation-driver-area) {\n border-radius: var(--sbb-border-radius-8x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-8x);\n}\n.sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation__ctrl-button:not(.sbb-seat-reservation-navigation-driver-area)::before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n border: calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);\n border-radius: var(--sbb-border-radius-8x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-8x);\n}\n.sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation--first-class {\n margin-inline-start: calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n.sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area) {\n border-radius: var(--sbb-border-radius-2x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-2x);\n}\n.sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area)::before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n border: calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);\n border-radius: var(--sbb-border-radius-2x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-2x);\n}\n.sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation__additional-information {\n padding-inline-end: calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n.sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation--first-class {\n margin-inline-end: calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n\n.sbb-sr-navigation__ctrl-button {\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: calc(36 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n position: relative;\n background-color: var(--sbb-seat-reservation-navigation-btn-background-color);\n cursor: var(--sbb-cursor-pointer);\n}\n.sbb-sr-navigation__ctrl-button.sbb-sr-navigation-driver-area {\n border-radius: var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x);\n}\n.sbb-sr-navigation__ctrl-button.sbb-sr-navigation-driver-area::before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n border: calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);\n border-radius: var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x);\n}\n.sbb-sr-navigation__ctrl-button {\n border-radius: var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x);\n}\n.sbb-sr-navigation__ctrl-button::before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n border: calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);\n border-radius: var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x);\n}\n\n.sbb-sr-navigation__item-coach--focused .sbb-sr-navigation__ctrl-button {\n --sbb-seat-reservation-navigation-btn-background-color: var(\n --sbb-seat-reservation-navigation-btn-background-color-focused\n );\n --sbb-seat-reservation-navigation-btn-border-color: var(\n --sbb-seat-reservation-navigation-btn-border-color-focused\n );\n --sbb-seat-reservation-navigation-btn-border-width: var(\n --sbb-seat-reservation-navigation-btn-border-width-focused\n );\n outline: calc(var(--sbb-seat-reservation-navigation-btn-outline-width-focused) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-outline-color-focused);\n outline-offset: calc(var(--sbb-seat-reservation-navigation-btn-outline-offset-focused) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n.sbb-sr-navigation__item-coach--focused .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-travelclass {\n background-color: var(--sbb-color-metal);\n background-color: light-dark(var(--sbb-color-metal), var(--sbb-color-storm));\n}\n.sbb-sr-navigation__item-coach--focused .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-number {\n color: var(--sbb-color-anthracite);\n color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-graphite));\n}\n\n.sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button {\n --sbb-seat-reservation-navigation-btn-background-color: var(\n --sbb-seat-reservation-navigation-btn-background-color-selected\n );\n --sbb-seat-reservation-navigation-btn-border-color: var(\n --sbb-seat-reservation-navigation-btn-border-color-selected\n );\n --sbb-seat-reservation-navigation-btn-border-width: var(\n --sbb-seat-reservation-navigation-btn-border-width-selected\n );\n}\n.sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-travelclass {\n background-color: var(--sbb-color-black);\n background-color: light-dark(var(--sbb-color-black), var(--sbb-color-white));\n}\n.sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button .sbb-sr-navigation__item-coach-number {\n color: var(--sbb-color-black);\n color: light-dark(var(--sbb-color-black), var(--sbb-color-white));\n}\n\n.sbb-sr-navigation__item-coach--hovered .sbb-sr-navigation__ctrl-button {\n --sbb-seat-reservation-navigation-btn-background-color: var(\n --sbb-seat-reservation-navigation-btn-background-color-hovered\n );\n --sbb-seat-reservation-navigation-btn-border-color: var(\n --sbb-seat-reservation-navigation-btn-border-color-hovered\n );\n --sbb-seat-reservation-navigation-btn-border-width: var(\n --sbb-seat-reservation-navigation-btn-border-width-hovered\n );\n}\n\n.sbb-sr-navigation__item-coach--selected.sbb-sr-navigation__item-coach--hovered .sbb-sr-navigation__ctrl-button {\n --sbb-seat-reservation-navigation-btn-background-color: var(\n --sbb-seat-reservation-navigation-btn-background-color-selected\n );\n --sbb-seat-reservation-navigation-btn-border-color: var(\n --sbb-seat-reservation-navigation-btn-border-color-selected\n );\n --sbb-seat-reservation-navigation-btn-border-width: var(\n --sbb-seat-reservation-navigation-btn-border-width-selected\n );\n background-color: var(--sbb-seat-reservation-navigation-btn-background-color-hovered) !important;\n}\n\n.sbb-sr-navigation__item-coach--selected .sbb-sr-navigation__ctrl-button:focus-visible:not([disabled], :disabled) {\n --sbb-seat-reservation-navigation-btn-background-color: var(\n --sbb-seat-reservation-navigation-btn-background-color-selected\n );\n --sbb-seat-reservation-navigation-btn-border-color: var(\n --sbb-seat-reservation-navigation-btn-border-color-selected\n );\n --sbb-seat-reservation-navigation-btn-border-width: var(\n --sbb-seat-reservation-navigation-btn-border-width-selected\n );\n}\n\n.sbb-sr-navigation__item-coach--hovered .sbb-sr-navigation__ctrl-button {\n --sbb-seat-reservation-navigation-btn-background-color: var(\n --sbb-seat-reservation-navigation-btn-background-color-hovered\n );\n --sbb-seat-reservation-navigation-btn-border-color: var(\n --sbb-seat-reservation-navigation-btn-border-color-hovered\n );\n --sbb-seat-reservation-navigation-btn-border-width: var(\n --sbb-seat-reservation-navigation-btn-border-width-hovered\n );\n}\n\n.sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled) {\n --sbb-seat-reservation-navigation-btn-background-color: var(\n --sbb-seat-reservation-navigation-btn-background-color-hovered\n );\n --sbb-seat-reservation-navigation-btn-border-color: var(\n --sbb-seat-reservation-navigation-btn-border-color-hovered\n );\n --sbb-seat-reservation-navigation-btn-border-width: var(\n --sbb-seat-reservation-navigation-btn-border-width-hovered\n );\n}\n.sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled) .sbb-sr-navigation__item-coach-travelclass {\n background-color: var(--sbb-color-smoke);\n}\n.sbb-sr-navigation__ctrl-button:hover:not([disabled], :disabled) .sbb-sr-navigation__item-coach-number {\n color: var(--sbb-color-iron);\n color: light-dark(var(--sbb-color-iron), var(--sbb-color-silver));\n}\n\n.sbb-sr-navigation__ctrl-button:is([disabled], :disabled) {\n --sbb-seat-reservation-navigation-btn-background-color: var(\n --sbb-seat-reservation-navigation-btn-background-color-disabled\n );\n --sbb-seat-reservation-navigation-btn-border-color: var(\n --sbb-seat-reservation-navigation-btn-border-color-disabled\n );\n cursor: unset;\n pointer-events: unset;\n}\n.sbb-sr-navigation__ctrl-button:is([disabled], :disabled) .sbb-sr-navigation__item-coach-travelclass {\n background-color: var(--sbb-color-graphite);\n background-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-granite));\n}\n.sbb-sr-navigation__ctrl-button:is([disabled], :disabled) .sbb-sr-navigation__item-coach-number {\n color: var(--sbb-color-graphite);\n color: light-dark(var(--sbb-color-graphite), var(--sbb-color-granite));\n}\n\n.sbb-sr-navigation__additional-information {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex: 1;\n column-gap: calc(8 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n padding-inline: calc(16 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n font-family: var(--sbb-typo-font-family);\n font-weight: 700;\n color: var(--sbb-color-granite);\n color: light-dark(var(--sbb-color-granite), var(--sbb-color-granite));\n}\n@media (forced-colors: active) {\n .sbb-sr-navigation__additional-information {\n color: var(--sbb-color-milk);\n }\n}\n\n.sbb-sr-navigation__item-coach-number {\n color: var(--sbb-color-granite);\n color: light-dark(var(--sbb-color-granite), var(--sbb-color-graphite));\n}\n@media (forced-colors: active) {\n .sbb-sr-navigation__item-coach-number {\n color: var(--sbb-color-granite);\n color: light-dark(var(--sbb-color-granite), var(--sbb-color-graphite));\n }\n}\n.sbb-sr-navigation__item-coach-number .sbb-sr-navigation__item-coach-travelclass {\n background-color: var(--sbb-background-color-2-inverted);\n}\n\n.sbb-sr-navigation--first-class {\n width: calc(100% - 8 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n position: absolute;\n inset-block-start: calc(3 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n inset-inline-start: calc(4 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n border: calc(1 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid transparent;\n border-radius: var(--sbb-border-radius-1x);\n margin: auto;\n background-color: var(--sbb-color-lemon);\n}\n\n.sbb-sr-navigation__item-coach-travelclass {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: calc(20 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n min-width: calc(20 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n border-radius: var(--sbb-border-radius-1x);\n text-align: center;\n background-color: var(--sbb-color-granite);\n background-color: light-dark(var(--sbb-color-granite), var(--sbb-color-graphite));\n color: var(--sbb-color-white);\n color: light-dark(var(--sbb-color-white), var(--sbb-color-black));\n}\n@media (forced-colors: active) {\n .sbb-sr-navigation__item-coach-travelclass {\n border: var(--sbb-border-width-1x) solid;\n }\n}\n\n:host([vertical]) .sbb-sr-navigation__item-coach {\n flex-direction: row;\n}\n:host([vertical]) .sbb-sr-navigation__item-coach .sbb-sr-navigation__ctrl-button {\n flex-direction: row-reverse;\n height: calc(80 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n min-width: calc(36 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n:host([vertical]) .sbb-sr-navigation__item-coach .sbb-sr-navigation__additional-information {\n flex-direction: column-reverse;\n padding-block: calc(16 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n padding-inline-start: unset;\n padding-inline-end: unset;\n}\n:host([vertical]) .sbb-sr-navigation__item-coach .sbb-sr-navigation--first-class {\n height: calc(100% - 8 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n width: initial;\n inset-inline-end: calc(3 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n inset-block-start: calc(4 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n inset-inline-start: initial;\n}\n:host([vertical]) .sbb-sr-navigation__item-coach.first-coach .sbb-sr-navigation--first-class, :host([vertical]) .sbb-sr-navigation__item-coach.last-coach .sbb-sr-navigation--first-class {\n height: calc(100% - 18 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n:host([vertical]) .sbb-sr-navigation__item-coach.first-coach:not(.last-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area) {\n border-radius: var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x);\n}\n:host([vertical]) .sbb-sr-navigation__item-coach.first-coach:not(.last-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area)::before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n border: calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);\n border-radius: var(--sbb-border-radius-8x) var(--sbb-border-radius-8x) var(--sbb-border-radius-2x) var(--sbb-border-radius-2x);\n}\n:host([vertical]) .sbb-sr-navigation__item-coach.first-coach:not(.last-coach) .sbb-sr-navigation--first-class {\n margin-block-start: calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n margin-inline-start: initial;\n}\n:host([vertical]) .sbb-sr-navigation__item-coach.last-coach:not(.first-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area) {\n border-radius: var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x);\n}\n:host([vertical]) .sbb-sr-navigation__item-coach.last-coach:not(.first-coach) .sbb-sr-navigation__ctrl-button:not(.sbb-sr-navigation-driver-area)::before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n border: calc(var(--sbb-seat-reservation-navigation-btn-border-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) solid var(--sbb-seat-reservation-navigation-btn-border-color);\n border-radius: var(--sbb-border-radius-2x) var(--sbb-border-radius-2x) var(--sbb-border-radius-8x) var(--sbb-border-radius-8x);\n}\n:host([vertical]) .sbb-sr-navigation__item-coach.last-coach:not(.first-coach) .sbb-sr-navigation--first-class {\n margin-block-end: calc(var(--sbb-seat-reservation-navigation-travelclass-spacing) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n margin-inline-end: initial;\n}\n:host([vertical]) .sbb-sr-navigation__item-coach .sbb-sr-navigation-driver-area {\n height: calc(80 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n min-width: calc(36 * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}";
10
+ //#endregion
11
+ //#region src/elements-experimental/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.ts
12
+ var SbbSelectCoachEvent = class extends Event {
13
+ get coachIndex() {
14
+ return this._coachIndex;
15
+ }
16
+ constructor(coachIndex) {
17
+ super("selectcoach", {
18
+ bubbles: true,
19
+ composed: true
20
+ });
21
+ this._coachIndex = coachIndex;
22
+ }
23
+ };
24
+ /**
25
+ * This component will display the navigation coach item for Seat reservation.
26
+ */
27
+ var SbbSeatReservationNavigationCoachElement = (() => {
28
+ let _classSuper = SbbElement;
29
+ let _selected_decorators;
30
+ let _selected_initializers = [];
31
+ let _selected_extraInitializers = [];
32
+ let _focused_decorators;
33
+ let _focused_initializers = [];
34
+ let _focused_extraInitializers = [];
35
+ let _hovered_decorators;
36
+ let _hovered_initializers = [];
37
+ let _hovered_extraInitializers = [];
38
+ let _nativeFocusActive_decorators;
39
+ let _nativeFocusActive_initializers = [];
40
+ let _nativeFocusActive_extraInitializers = [];
41
+ let _index_decorators;
42
+ let _index_initializers = [];
43
+ let _index_extraInitializers = [];
44
+ let _coachItemDetails_decorators;
45
+ let _coachItemDetails_initializers = [];
46
+ let _coachItemDetails_extraInitializers = [];
47
+ let _disable_decorators;
48
+ let _disable_initializers = [];
49
+ let _disable_extraInitializers = [];
50
+ let _vertical_decorators;
51
+ let _vertical_initializers = [];
52
+ let _vertical_extraInitializers = [];
53
+ let _showTitleInfo_decorators;
54
+ let _showTitleInfo_initializers = [];
55
+ let _showTitleInfo_extraInitializers = [];
56
+ return class SbbSeatReservationNavigationCoachElement extends _classSuper {
57
+ constructor() {
58
+ super(...arguments);
59
+ this.#selected_accessor_storage = __runInitializers(this, _selected_initializers, false);
60
+ this.#focused_accessor_storage = (__runInitializers(this, _selected_extraInitializers), __runInitializers(this, _focused_initializers, false));
61
+ this.#hovered_accessor_storage = (__runInitializers(this, _focused_extraInitializers), __runInitializers(this, _hovered_initializers, false));
62
+ this.#nativeFocusActive_accessor_storage = (__runInitializers(this, _hovered_extraInitializers), __runInitializers(this, _nativeFocusActive_initializers, true));
63
+ this.#index_accessor_storage = (__runInitializers(this, _nativeFocusActive_extraInitializers), __runInitializers(this, _index_initializers, 0));
64
+ this.#coachItemDetails_accessor_storage = (__runInitializers(this, _index_extraInitializers), __runInitializers(this, _coachItemDetails_initializers, {}));
65
+ this.#disable_accessor_storage = (__runInitializers(this, _coachItemDetails_extraInitializers), __runInitializers(this, _disable_initializers, false));
66
+ this.#vertical_accessor_storage = (__runInitializers(this, _disable_extraInitializers), __runInitializers(this, _vertical_initializers, false));
67
+ this.#showTitleInfo_accessor_storage = (__runInitializers(this, _vertical_extraInitializers), __runInitializers(this, _showTitleInfo_initializers, false));
68
+ this._language = (__runInitializers(this, _showTitleInfo_extraInitializers), new SbbLanguageController(this));
69
+ }
70
+ static {
71
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
72
+ _selected_decorators = [forceType(), property({ type: Boolean })];
73
+ _focused_decorators = [forceType(), property({ type: Boolean })];
74
+ _hovered_decorators = [forceType(), property({ type: Boolean })];
75
+ _nativeFocusActive_decorators = [forceType(), property({ type: Boolean })];
76
+ _index_decorators = [forceType(), property({ type: Number })];
77
+ _coachItemDetails_decorators = [property({
78
+ attribute: "coach-item-details",
79
+ type: Object
80
+ })];
81
+ _disable_decorators = [forceType(), property({
82
+ attribute: "disable",
83
+ type: Boolean
84
+ })];
85
+ _vertical_decorators = [forceType(), property({
86
+ type: Boolean,
87
+ reflect: true,
88
+ useDefault: true
89
+ })];
90
+ _showTitleInfo_decorators = [forceType(), property({ type: Boolean })];
91
+ __esDecorate(this, null, _selected_decorators, {
92
+ kind: "accessor",
93
+ name: "selected",
94
+ static: false,
95
+ private: false,
96
+ access: {
97
+ has: (obj) => "selected" in obj,
98
+ get: (obj) => obj.selected,
99
+ set: (obj, value) => {
100
+ obj.selected = value;
101
+ }
102
+ },
103
+ metadata: _metadata
104
+ }, _selected_initializers, _selected_extraInitializers);
105
+ __esDecorate(this, null, _focused_decorators, {
106
+ kind: "accessor",
107
+ name: "focused",
108
+ static: false,
109
+ private: false,
110
+ access: {
111
+ has: (obj) => "focused" in obj,
112
+ get: (obj) => obj.focused,
113
+ set: (obj, value) => {
114
+ obj.focused = value;
115
+ }
116
+ },
117
+ metadata: _metadata
118
+ }, _focused_initializers, _focused_extraInitializers);
119
+ __esDecorate(this, null, _hovered_decorators, {
120
+ kind: "accessor",
121
+ name: "hovered",
122
+ static: false,
123
+ private: false,
124
+ access: {
125
+ has: (obj) => "hovered" in obj,
126
+ get: (obj) => obj.hovered,
127
+ set: (obj, value) => {
128
+ obj.hovered = value;
129
+ }
130
+ },
131
+ metadata: _metadata
132
+ }, _hovered_initializers, _hovered_extraInitializers);
133
+ __esDecorate(this, null, _nativeFocusActive_decorators, {
134
+ kind: "accessor",
135
+ name: "nativeFocusActive",
136
+ static: false,
137
+ private: false,
138
+ access: {
139
+ has: (obj) => "nativeFocusActive" in obj,
140
+ get: (obj) => obj.nativeFocusActive,
141
+ set: (obj, value) => {
142
+ obj.nativeFocusActive = value;
143
+ }
144
+ },
145
+ metadata: _metadata
146
+ }, _nativeFocusActive_initializers, _nativeFocusActive_extraInitializers);
147
+ __esDecorate(this, null, _index_decorators, {
148
+ kind: "accessor",
149
+ name: "index",
150
+ static: false,
151
+ private: false,
152
+ access: {
153
+ has: (obj) => "index" in obj,
154
+ get: (obj) => obj.index,
155
+ set: (obj, value) => {
156
+ obj.index = value;
157
+ }
158
+ },
159
+ metadata: _metadata
160
+ }, _index_initializers, _index_extraInitializers);
161
+ __esDecorate(this, null, _coachItemDetails_decorators, {
162
+ kind: "accessor",
163
+ name: "coachItemDetails",
164
+ static: false,
165
+ private: false,
166
+ access: {
167
+ has: (obj) => "coachItemDetails" in obj,
168
+ get: (obj) => obj.coachItemDetails,
169
+ set: (obj, value) => {
170
+ obj.coachItemDetails = value;
171
+ }
172
+ },
173
+ metadata: _metadata
174
+ }, _coachItemDetails_initializers, _coachItemDetails_extraInitializers);
175
+ __esDecorate(this, null, _disable_decorators, {
176
+ kind: "accessor",
177
+ name: "disable",
178
+ static: false,
179
+ private: false,
180
+ access: {
181
+ has: (obj) => "disable" in obj,
182
+ get: (obj) => obj.disable,
183
+ set: (obj, value) => {
184
+ obj.disable = value;
185
+ }
186
+ },
187
+ metadata: _metadata
188
+ }, _disable_initializers, _disable_extraInitializers);
189
+ __esDecorate(this, null, _vertical_decorators, {
190
+ kind: "accessor",
191
+ name: "vertical",
192
+ static: false,
193
+ private: false,
194
+ access: {
195
+ has: (obj) => "vertical" in obj,
196
+ get: (obj) => obj.vertical,
197
+ set: (obj, value) => {
198
+ obj.vertical = value;
199
+ }
200
+ },
201
+ metadata: _metadata
202
+ }, _vertical_initializers, _vertical_extraInitializers);
203
+ __esDecorate(this, null, _showTitleInfo_decorators, {
204
+ kind: "accessor",
205
+ name: "showTitleInfo",
206
+ static: false,
207
+ private: false,
208
+ access: {
209
+ has: (obj) => "showTitleInfo" in obj,
210
+ get: (obj) => obj.showTitleInfo,
211
+ set: (obj, value) => {
212
+ obj.showTitleInfo = value;
213
+ }
214
+ },
215
+ metadata: _metadata
216
+ }, _showTitleInfo_initializers, _showTitleInfo_extraInitializers);
217
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
218
+ enumerable: true,
219
+ configurable: true,
220
+ writable: true,
221
+ value: _metadata
222
+ });
223
+ }
224
+ static {
225
+ this.elementName = "sbb-seat-reservation-navigation-coach";
226
+ }
227
+ static {
228
+ this.elementDependencies = [SbbSeatReservationNavigationServicesElement];
229
+ }
230
+ static {
231
+ this.styles = [
232
+ buttonResetStyles,
233
+ screenReaderOnlyStyles,
234
+ unsafeCSS(seat_reservation_navigation_coach_default)
235
+ ];
236
+ }
237
+ static {
238
+ this.events = {
239
+ selectcoach: "selectcoach",
240
+ focuscoach: "focuscoach"
241
+ };
242
+ }
243
+ #selected_accessor_storage;
244
+ /** Select coach property */
245
+ get selected() {
246
+ return this.#selected_accessor_storage;
247
+ }
248
+ set selected(value) {
249
+ this.#selected_accessor_storage = value;
250
+ }
251
+ #focused_accessor_storage;
252
+ /** Focus coach property */
253
+ get focused() {
254
+ return this.#focused_accessor_storage;
255
+ }
256
+ set focused(value) {
257
+ this.#focused_accessor_storage = value;
258
+ }
259
+ #hovered_accessor_storage;
260
+ /** Hover coach property */
261
+ get hovered() {
262
+ return this.#hovered_accessor_storage;
263
+ }
264
+ set hovered(value) {
265
+ this.#hovered_accessor_storage = value;
266
+ }
267
+ #nativeFocusActive_accessor_storage;
268
+ /** Native focus for this navigation coach is also set when the focused property is changed */
269
+ get nativeFocusActive() {
270
+ return this.#nativeFocusActive_accessor_storage;
271
+ }
272
+ set nativeFocusActive(value) {
273
+ this.#nativeFocusActive_accessor_storage = value;
274
+ }
275
+ #index_accessor_storage;
276
+ get index() {
277
+ return this.#index_accessor_storage;
278
+ }
279
+ set index(value) {
280
+ this.#index_accessor_storage = value;
281
+ }
282
+ #coachItemDetails_accessor_storage;
283
+ get coachItemDetails() {
284
+ return this.#coachItemDetails_accessor_storage;
285
+ }
286
+ set coachItemDetails(value) {
287
+ this.#coachItemDetails_accessor_storage = value;
288
+ }
289
+ #disable_accessor_storage;
290
+ /** Disable the coach navigation */
291
+ get disable() {
292
+ return this.#disable_accessor_storage;
293
+ }
294
+ set disable(value) {
295
+ this.#disable_accessor_storage = value;
296
+ }
297
+ #vertical_accessor_storage;
298
+ /** If the coach navigation should be displayed vertically */
299
+ get vertical() {
300
+ return this.#vertical_accessor_storage;
301
+ }
302
+ set vertical(value) {
303
+ this.#vertical_accessor_storage = value;
304
+ }
305
+ #showTitleInfo_accessor_storage;
306
+ /** Disable the mouse over title information */
307
+ get showTitleInfo() {
308
+ return this.#showTitleInfo_accessor_storage;
309
+ }
310
+ set showTitleInfo(value) {
311
+ this.#showTitleInfo_accessor_storage = value;
312
+ }
313
+ willUpdate(changedProperties) {
314
+ super.willUpdate(changedProperties);
315
+ if (changedProperties.has("selected")) {
316
+ const selectedNavButtonElement = this.shadowRoot?.querySelector(".sbb-sr-navigation__ctrl-button");
317
+ if (this.selected && selectedNavButtonElement) {
318
+ if (this.nativeFocusActive) selectedNavButtonElement.focus();
319
+ /** Emits when a nav coach has the focus */
320
+ this.dispatchEvent(new Event("focuscoach", {
321
+ bubbles: true,
322
+ composed: true
323
+ }));
324
+ }
325
+ }
326
+ if (changedProperties.has("focused") && this.focused) {
327
+ const focusedNavButtonElement = this.shadowRoot?.querySelector(".sbb-sr-navigation__ctrl-button");
328
+ if (focusedNavButtonElement && this.nativeFocusActive) focusedNavButtonElement.focus();
329
+ }
330
+ }
331
+ /**
332
+ * Render a list of service icons provided by a caller
333
+ *
334
+ * @protected
335
+ */
336
+ render() {
337
+ return html`
338
+ <div
339
+ class="${classMap({
340
+ "sbb-sr-navigation__item-coach": true,
341
+ "last-coach": this.coachItemDetails.driverAreaSide?.right || false,
342
+ "first-coach": this.coachItemDetails.driverAreaSide?.left || false,
343
+ "sbb-sr-navigation__item-coach--selected": this.selected,
344
+ "sbb-sr-navigation__item-coach--focused": this.focused,
345
+ "sbb-sr-navigation__item-coach--hovered": this.hovered
346
+ })}"
347
+ >
348
+ ${this._getNavigationButton()}
349
+ ${this.coachItemDetails.propertyIds?.length ? html`<sbb-seat-reservation-navigation-services
350
+ ?vertical="${this.vertical}"
351
+ .propertyIds="${this.coachItemDetails.propertyIds}"
352
+ ?showTitleInfo="${this.showTitleInfo}"
353
+ ></sbb-seat-reservation-navigation-services>` : nothing}
354
+ </div>
355
+ `;
356
+ }
357
+ _getNavigationButton() {
358
+ const currServiceClassNumber = this._getCoachServiceClassNumber();
359
+ const titleDescriptionNavCoachButton = this._getTitleDescriptionNavCoachButton(currServiceClassNumber);
360
+ const ariaDescriptionCoachServices = this._getAriaDescriptionCoachServices();
361
+ return html` <button
362
+ @click=${() => this._selectNavCoach(this.index)}
363
+ class="${classMap({
364
+ "sbb-sr-navigation__ctrl-button": true,
365
+ "sbb-sr-navigation-driver-area": this.coachItemDetails.isDriverArea
366
+ })}"
367
+ ?disabled="${this.disable}"
368
+ title="${this.showTitleInfo ? titleDescriptionNavCoachButton : nothing}"
369
+ type="button"
370
+ aria-describedby="nav-coach-service-descriptions-${this.index}"
371
+ >
372
+ ${this._getBtnInformation(currServiceClassNumber)}
373
+ <span class="sbb-screen-reader-only" id="nav-coach-service-descriptions-${this.index}">
374
+ ${!this.showTitleInfo ? html`<div>${titleDescriptionNavCoachButton}</div>` : nothing}
375
+ ${ariaDescriptionCoachServices ? html`<div>${ariaDescriptionCoachServices}</div>` : nothing}
376
+ </span>
377
+ </button>`;
378
+ }
379
+ _getBtnInformation(serviceClassNumber) {
380
+ if (this.coachItemDetails.isDriverArea) return null;
381
+ return html`
382
+ ${serviceClassNumber === 1 ? html`<span class="sbb-sr-navigation--first-class"></span>` : nothing}
383
+ ${this.coachItemDetails.travelClass?.length > 0 || this.coachItemDetails.id ? html`<div class="sbb-sr-navigation__additional-information">
384
+ ${this.coachItemDetails.id ? html`<div class="sbb-sr-navigation__item-coach-number" aria-hidden="true">
385
+ ${this.coachItemDetails.id}
386
+ </div>` : nothing}
387
+ <div
388
+ ${serviceClassNumber ?? nothing}
389
+ class="sbb-sr-navigation__item-coach-travelclass"
390
+ aria-hidden="true"
391
+ >
392
+ ${serviceClassNumber}
393
+ </div>
394
+ </div>` : nothing}
395
+ `;
396
+ }
397
+ _getTitleDescriptionNavCoachButton(serviceClassNumber) {
398
+ if (this.coachItemDetails.isDriverArea && !this.coachItemDetails.isLocomotive) return getI18nSeatReservation("NAVIGATE_COACH_BLOCKED", this._language.current, [this.coachItemDetails.id]);
399
+ if (this.coachItemDetails.isLocomotive) return getI18nSeatReservation("COACH_LOCOMOTIVE", this._language.current);
400
+ let label = getI18nSeatReservation("NAVIGATE_TO_COACH", this._language.current, [this.coachItemDetails.id]);
401
+ if (serviceClassNumber) {
402
+ const serviceClassTranslation = getI18nSeatReservation(serviceClassNumber === 1 ? "SERVICE_CLASS_FIRST" : "SERVICE_CLASS_SECOND", this._language.current);
403
+ const serviceClassLabel = getI18nSeatReservation("NAVIGATE_TO_COACH_SERVICE_CLASS_SUB", this._language.current, [serviceClassTranslation]);
404
+ label = label.concat(serviceClassLabel);
405
+ }
406
+ const freePlacesTxt = getI18nSeatReservation("COACH_AVAILABLE_NUMBER_OF_PLACES", this._language.current, [this.coachItemDetails.freePlaces?.seats, this.coachItemDetails.freePlaces?.bicycles]);
407
+ label = label.concat(". ").concat(freePlacesTxt);
408
+ return label;
409
+ }
410
+ _getAriaDescriptionCoachServices() {
411
+ let ariaDescription = null;
412
+ if (this.coachItemDetails.propertyIds?.length) {
413
+ ariaDescription = getI18nSeatReservation("COACH_AVAILABLE_SERVICES", this._language.current) + ": ";
414
+ ariaDescription += this.coachItemDetails.propertyIds.map((propertyId) => getI18nSeatReservation(propertyId, this._language.current)).join() + ".";
415
+ }
416
+ return ariaDescription;
417
+ }
418
+ /**
419
+ * emits the index of the coach array for the main navigation.
420
+ * @param selectcoach
421
+ * @private
422
+ */
423
+ _selectNavCoach(selectcoach) {
424
+ /**
425
+ * @type {SbbSelectCoachEvent}
426
+ * Emits when a coach within the navigation was selected and returns the clicked coach nav index.
427
+ */
428
+ this.dispatchEvent(new SbbSelectCoachEvent(selectcoach));
429
+ }
430
+ _getCoachServiceClassNumber() {
431
+ return this.coachItemDetails.travelClass?.includes("FIRST") ? 1 : this.coachItemDetails.travelClass?.includes("SECOND") ? 2 : null;
432
+ }
433
+ };
434
+ })();
435
+ //#endregion
436
+ export { SbbSelectCoachEvent as n, SbbSeatReservationNavigationCoachElement as t };
437
+
438
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC1COTdqS0Q3WS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLW1peGlucy5zY3NzJyBhcyBzYmItc3ItbWl4aW5zO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLWZ1bmN0aW9ucycgYXMgc2JiLXNyLWZ1bmN0aW9ucztcblxuJGRpc2FibGVkOiAnW2Rpc2FibGVkXSwgOmRpc2FibGVkJztcblxuOmhvc3Qge1xuICAvLyBmaXhlcyB0aGUga2V5Ym9hcmQgZm9jdXMgYm9yZGVyIHdoaWNoIHdhcyBjdXQgb2ZmIGR1ZSB0byBtaXNzaW5nIG5hdmlnYXRpb24gc2VydmljZSBpY29uc1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgIDQ0XG4gICk7IC8vIGRlZmF1bHQgYnV0dG9uIGhlaWdodCAoMzZweCkgKyAyICogNHB4IGZvY3VzIG91dGxpbmUgb2Zmc2V0XG5cbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmc6IDEwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1kZWZhdWx0OiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWRlZmF1bHRcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKVxuICApO1xuXG4gIC8vIHNlbGVjdGVkIHN0YXRlIHZhcmlhYmxlc1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1zZWxlY3RlZDogMjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1taWxrKSxcbiAgICB2YXIoLS1zYmItY29sb3ItaXJvbilcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3Itc2VsZWN0ZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gZm9jdXMgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tb3V0bGluZS13aWR0aC1mb2N1c2VkOiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLW91dGxpbmUtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItYmxhY2spLFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1vdXRsaW5lLW9mZnNldC1mb2N1c2VkOiA0O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJhY2tncm91bmQtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjaylcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItd2lkdGgtZm9jdXNlZDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWZvY3VzZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gaG92ZXIgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWhvdmVyZWQ6IDI7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1jbG91ZCksXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pZG5pZ2h0KVxuICApO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjayksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXdoaXRlKVxuICApO1xuXG4gIC8vIGRpc2FibGUgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMik7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWRpc2FibGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1wbGF0aW51bSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWlyb24pXG4gICk7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oOCk7XG4gIHdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAmLmZpcnN0LWNvYWNoLFxuICAmLmxhc3QtY29hY2gge1xuICAgIC5zYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3Mge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDE4KSk7XG4gICAgfVxuICB9XG5cbiAgJi5maXJzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCAyLCAyLCA4KTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmcpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICYubGFzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhKSB7XG4gICAgICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnZpc3VhbGl6ZS1jb2FjaC1ib3JkZXIoMiwgOCwgOCwgMik7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uIHtcbiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8vIHNhbWUgZm9yIGFsbCBzdGF0ZXNcbi5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzNik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvcik7XG4gIGN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKTtcblxuICAmLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhIHtcbiAgICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnZpc3VhbGl6ZS1jb2FjaC1ib3JkZXIoOCwgOCwgOCwgOCk7XG4gIH1cblxuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnZpc3VhbGl6ZS1jb2FjaC1ib3JkZXIoMiwgMiwgMiwgMik7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0tZm9jdXNlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnZm9jdXNlZCcpO1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItbWV0YWwpLCB2YXIoLS1zYmItY29sb3Itc3Rvcm0pKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG4gIH1cbn1cblxuLy8gc2VsZWN0ZWQsIGkuZS4gdGhlIGNvYWNoIHdpdGhpbiB0aGUgdHJhaW4gaXMgc2VsZWN0ZWQgKEZJR01BIFN0YXRlOlNlbGVjdGVkKVxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1zZWxlY3RlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnc2VsZWN0ZWQnKTtcblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWJsYWNrKSwgdmFyKC0tc2JiLWNvbG9yLXdoaXRlKSk7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtbnVtYmVyIHtcbiAgICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItYmxhY2spLCB2YXIoLS1zYmItY29sb3Itd2hpdGUpKTtcbiAgfVxufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLWhvdmVyZWQgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbiB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ2hvdmVyZWQnKTtcbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1zZWxlY3RlZC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZFxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnc2VsZWN0ZWQnKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyZWQpICFpbXBvcnRhbnQ7XG59XG5cbi8vIHNlbGVjdGVkIEFORCBmb2N1cyAoRklHTUEgU3RhdGU6U2VsZWN0ZWQgKyBGb2N1c2VkKVxuLy8gYmFja2dyb3VuZC1jb2xvciBmcm9tIHNlbGVjdGVkIFN0YXRlIGhhcyBtb3JlIHNwZWNpZmljaXR5LCBzbyB3ZSBuZWVkIHRvIG92ZXJyaWRlIGl0IGhlcmUgKGFnYWluKVxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1zZWxlY3RlZFxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOmZvY3VzLXZpc2libGU6bm90KCN7JGRpc2FibGVkfSkge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdzZWxlY3RlZCcpO1xufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLWhvdmVyZWQgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbiB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ2hvdmVyZWQnKTtcbn1cblxuLy8gaG92ZXIgKEZJR01BIFN0YXRlOmhvdmVyKVxuLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpob3Zlcjpub3QoI3skZGlzYWJsZWR9KSB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ2hvdmVyZWQnKTtcblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1jb2xvci1zbW9rZSk7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtbnVtYmVyIHtcbiAgICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItaXJvbiksIHZhcigtLXNiYi1jb2xvci1zaWx2ZXIpKTtcbiAgfVxufVxuXG4vLyBkaXNhYmxlZCAoRklHTUEgU3RhdGU6ZGlzYWJsZWQpXG4uc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOmlzKCN7JGRpc2FibGVkfSkge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdkaXNhYmxlZCcpO1xuXG4gIGN1cnNvcjogdW5zZXQ7XG4gIHBvaW50ZXItZXZlbnRzOiB1bnNldDtcblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSk7XG4gIH1cbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4OiAxO1xuICBjb2x1bW4tZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KTtcbiAgcGFkZGluZy1pbmxpbmU6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDE2KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXNiYi10eXBvLWZvbnQtZmFtaWx5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSkpO1xuXG4gIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgY29sb3I6IHZhcigtLXNiYi1jb2xvci1taWxrKTtcbiAgfVxufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtbnVtYmVyIHtcbiAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcblxuICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTItaW52ZXJ0ZWQpO1xuICB9XG59XG5cbi8vIGdyYXBoaWNhbCBvcmllbnRhdGlvbiBvZiBGSVJTVCBjbGFzc1xuLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDMpO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuXG4gIC8vIHVzZSBib3JkZXIgaW5zdGVhZCBvZiBoZWlnaHQgdG8gc3VwcG9ydCBmb3JjZS1jb2xvciBtb2Rlc1xuICBib3JkZXI6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDEpIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIG1hcmdpbjogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLWxlbW9uKTtcbn1cblxuLy8gdGV4dHVhbCBvcmllbnRhdGlvbiBvZiB0cmF2ZWwgY2xhc3Ncbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgyMCk7XG4gIG1pbi13aWR0aDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMjApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSkpO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3Itd2hpdGUpLCB2YXIoLS1zYmItY29sb3ItYmxhY2spKTtcblxuICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIGJvcmRlcjogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQ7XG4gIH1cbn1cblxuLy8gIyMjIyMjIyMjIyMjIyMjIyBWRVJUSUNBTCBNT0RFIHNldHRpbmdzICMjIyMjIyMjIyMjIyMjIyNcbjpob3N0KFt2ZXJ0aWNhbF0pIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgIGhlaWdodDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oODApO1xuICAgIG1pbi13aWR0aDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMzYpO1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgcGFkZGluZy1ibG9jazogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTYpO1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB1bnNldDtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHVuc2V0O1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSk7XG4gICAgd2lkdGg6IGluaXRpYWw7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMyk7XG4gICAgaW5zZXQtYmxvY2stc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuICAgIGluc2V0LWlubGluZS1zdGFydDogaW5pdGlhbDtcbiAgfVxuXG4gICYuZmlyc3QtY29hY2gsXG4gICYubGFzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDE4KSk7XG4gICAgfVxuICB9XG5cbiAgLy8gaGFuZGxlIGJvcmRlci1yYWRpdXNcbiAgJi5maXJzdC1jb2FjaDpub3QoLmxhc3QtY29hY2gpIHtcbiAgICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOm5vdCguc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCA4LCAyLCAyKTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBpbml0aWFsO1xuICAgIH1cbiAgfVxuXG4gICYubGFzdC1jb2FjaDpub3QoLmZpcnN0LWNvYWNoKSB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhKSB7XG4gICAgICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnZpc3VhbGl6ZS1jb2FjaC1ib3JkZXIoMiwgMiwgOCwgOCk7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gICAgICBtYXJnaW4tYmxvY2stZW5kOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbShcbiAgICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi10cmF2ZWxjbGFzcy1zcGFjaW5nKVxuICAgICAgKTtcbiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBpbml0aWFsO1xuICAgIH1cbiAgfVxuXG4gIC8vIERyaXZlciBhcmVhXG4gIC5zYmItc3ItbmF2aWdhdGlvbi1kcml2ZXItYXJlYSB7XG4gICAgaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gICAgbWluLXdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzNik7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIGJ1dHRvblJlc2V0U3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgc2NyZWVuUmVhZGVyT25seVN0eWxlcyxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMudHMnO1xuaW1wb3J0IHR5cGUgeyBDb2FjaEl0ZW1EZXRhaWxzIH0gZnJvbSAnLi4vY29tbW9uL3R5cGVzLnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCBjbGFzcyBTYmJTZWxlY3RDb2FjaEV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb2FjaEluZGV4OiBudW1iZXI7XG5cbiAgcHVibGljIGdldCBjb2FjaEluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2NvYWNoSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoY29hY2hJbmRleDogbnVtYmVyKSB7XG4gICAgc3VwZXIoJ3NlbGVjdGNvYWNoJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KTtcbiAgICB0aGlzLl9jb2FjaEluZGV4ID0gY29hY2hJbmRleDtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgZGlzcGxheSB0aGUgbmF2aWdhdGlvbiBjb2FjaCBpdGVtIGZvciBTZWF0IHJlc2VydmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uU2VydmljZXNFbGVtZW50LFxuICBdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbXG4gICAgYnV0dG9uUmVzZXRTdHlsZXMsXG4gICAgc2NyZWVuUmVhZGVyT25seVN0eWxlcyxcbiAgICB1bnNhZmVDU1Moc3R5bGUpLFxuICBdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBzZWxlY3Rjb2FjaDogJ3NlbGVjdGNvYWNoJyxcbiAgICBmb2N1c2NvYWNoOiAnZm9jdXNjb2FjaCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFNlbGVjdCBjb2FjaCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRm9jdXMgY29hY2ggcHJvcGVydHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSG92ZXIgY29hY2ggcHJvcGVydHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhvdmVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogTmF0aXZlIGZvY3VzIGZvciB0aGlzIG5hdmlnYXRpb24gY29hY2ggaXMgYWxzbyBzZXQgd2hlbiB0aGUgZm9jdXNlZCBwcm9wZXJ0eSBpcyBjaGFuZ2VkICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBuYXRpdmVGb2N1c0FjdGl2ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaW5kZXg6IG51bWJlciA9IDA7XG5cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY29hY2gtaXRlbS1kZXRhaWxzJywgdHlwZTogT2JqZWN0IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBjb2FjaEl0ZW1EZXRhaWxzOiBDb2FjaEl0ZW1EZXRhaWxzID0gPENvYWNoSXRlbURldGFpbHM+e307XG5cbiAgLyoqIERpc2FibGUgdGhlIGNvYWNoIG5hdmlnYXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGUnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkaXNhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIElmIHRoZSBjb2FjaCBuYXZpZ2F0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgdmVydGljYWxseSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSwgdXNlRGVmYXVsdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdmVydGljYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRGlzYWJsZSB0aGUgbW91c2Ugb3ZlciB0aXRsZSBpbmZvcm1hdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2hvd1RpdGxlSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NlbGVjdGVkJykpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nLFxuICAgICAgKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkICYmIHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c0FjdGl2ZSkge1xuICAgICAgICAgIHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIC8qKiBFbWl0cyB3aGVuIGEgbmF2IGNvYWNoIGhhcyB0aGUgZm9jdXMgKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZm9jdXNjb2FjaCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2ZvY3VzZWQnKSAmJiB0aGlzLmZvY3VzZWQpIHtcbiAgICAgIGNvbnN0IGZvY3VzZWROYXZCdXR0b25FbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbicsXG4gICAgICApIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuXG4gICAgICBpZiAoZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQgJiYgdGhpcy5uYXRpdmVGb2N1c0FjdGl2ZSkge1xuICAgICAgICBmb2N1c2VkTmF2QnV0dG9uRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgYSBsaXN0IG9mIHNlcnZpY2UgaWNvbnMgcHJvdmlkZWQgYnkgYSBjYWxsZXJcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiJHtjbGFzc01hcCh7XG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoJzogdHJ1ZSxcbiAgICAgICAgICAnbGFzdC1jb2FjaCc6IHRoaXMuY29hY2hJdGVtRGV0YWlscy5kcml2ZXJBcmVhU2lkZT8ucmlnaHQgfHwgZmFsc2UsXG4gICAgICAgICAgJ2ZpcnN0LWNvYWNoJzogdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmRyaXZlckFyZWFTaWRlPy5sZWZ0IHx8IGZhbHNlLFxuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0tc2VsZWN0ZWQnOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0tZm9jdXNlZCc6IHRoaXMuZm9jdXNlZCxcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLWhvdmVyZWQnOiB0aGlzLmhvdmVyZWQsXG4gICAgICAgIH0pfVwiXG4gICAgICA+XG4gICAgICAgICR7dGhpcy5fZ2V0TmF2aWdhdGlvbkJ1dHRvbigpfVxuICAgICAgICAke3RoaXMuY29hY2hJdGVtRGV0YWlscy5wcm9wZXJ0eUlkcz8ubGVuZ3RoXG4gICAgICAgICAgPyBodG1sYDxzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzXG4gICAgICAgICAgICAgID92ZXJ0aWNhbD1cIiR7dGhpcy52ZXJ0aWNhbH1cIlxuICAgICAgICAgICAgICAucHJvcGVydHlJZHM9XCIke3RoaXMuY29hY2hJdGVtRGV0YWlscy5wcm9wZXJ0eUlkc31cIlxuICAgICAgICAgICAgICA/c2hvd1RpdGxlSW5mbz1cIiR7dGhpcy5zaG93VGl0bGVJbmZvfVwiXG4gICAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TmF2aWdhdGlvbkJ1dHRvbigpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIgPSB0aGlzLl9nZXRDb2FjaFNlcnZpY2VDbGFzc051bWJlcigpO1xuICAgIGNvbnN0IHRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbiA9XG4gICAgICB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24oY3VyclNlcnZpY2VDbGFzc051bWJlcik7XG4gICAgY29uc3QgYXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcyA9IHRoaXMuX2dldEFyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMoKTtcblxuICAgIHJldHVybiBodG1sYCA8YnV0dG9uXG4gICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9zZWxlY3ROYXZDb2FjaCh0aGlzLmluZGV4KX1cbiAgICAgIGNsYXNzPVwiJHtjbGFzc01hcCh7XG4gICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nOiB0cnVlLFxuICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEnOiB0aGlzLmNvYWNoSXRlbURldGFpbHMuaXNEcml2ZXJBcmVhLFxuICAgICAgfSl9XCJcbiAgICAgID9kaXNhYmxlZD1cIiR7dGhpcy5kaXNhYmxlfVwiXG4gICAgICB0aXRsZT1cIiR7dGhpcy5zaG93VGl0bGVJbmZvID8gdGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uIDogbm90aGluZ31cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwibmF2LWNvYWNoLXNlcnZpY2UtZGVzY3JpcHRpb25zLSR7dGhpcy5pbmRleH1cIlxuICAgID5cbiAgICAgICR7dGhpcy5fZ2V0QnRuSW5mb3JtYXRpb24oY3VyclNlcnZpY2VDbGFzc051bWJlcil9XG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIiBpZD1cIm5hdi1jb2FjaC1zZXJ2aWNlLWRlc2NyaXB0aW9ucy0ke3RoaXMuaW5kZXh9XCI+XG4gICAgICAgICR7IXRoaXMuc2hvd1RpdGxlSW5mbyA/IGh0bWxgPGRpdj4ke3RpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbn08L2Rpdj5gIDogbm90aGluZ31cbiAgICAgICAgJHthcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzID8gaHRtbGA8ZGl2PiR7YXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlc308L2Rpdj5gIDogbm90aGluZ31cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QnRuSW5mb3JtYXRpb24oc2VydmljZUNsYXNzTnVtYmVyOiBudW1iZXIgfCBudWxsKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlzRHJpdmVyQXJlYSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3NlcnZpY2VDbGFzc051bWJlciA9PT0gMVxuICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3NcIj48L3NwYW4+YFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAke3RoaXMuY29hY2hJdGVtRGV0YWlscy50cmF2ZWxDbGFzcz8ubGVuZ3RoID4gMCB8fCB0aGlzLmNvYWNoSXRlbURldGFpbHMuaWRcbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9fYWRkaXRpb25hbC1pbmZvcm1hdGlvblwiPlxuICAgICAgICAgICAgJHt0aGlzLmNvYWNoSXRlbURldGFpbHMuaWRcbiAgICAgICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlkfVxuICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAke3NlcnZpY2VDbGFzc051bWJlciA/PyBub3RoaW5nfVxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLXRyYXZlbGNsYXNzXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXJ9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uKHNlcnZpY2VDbGFzc051bWJlcjogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY29hY2hJdGVtRGV0YWlscy5pc0RyaXZlckFyZWEgJiYgIXRoaXMuY29hY2hJdGVtRGV0YWlscy5pc0xvY29tb3RpdmUpIHtcbiAgICAgIHJldHVybiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdOQVZJR0FURV9DT0FDSF9CTE9DS0VEJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW1xuICAgICAgICB0aGlzLmNvYWNoSXRlbURldGFpbHMuaWQsXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlzTG9jb21vdGl2ZSkge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0xPQ09NT1RJVkUnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBsZXQgbGFiZWwgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdOQVZJR0FURV9UT19DT0FDSCcsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgIHRoaXMuY29hY2hJdGVtRGV0YWlscy5pZCxcbiAgICBdKTtcblxuICAgIC8vSWYgc2VydmljZSBjbGFzcyBleGlzdCwgdGhlbiBleHBhbmQgbGFiZWwgd2l0aCBzZXJ2aWNlIGNsYXNzIHRyYW5zbGF0aW9uXG4gICAgaWYgKHNlcnZpY2VDbGFzc051bWJlcikge1xuICAgICAgY29uc3Qgc2VydmljZUNsYXNzVHJhbnNsYXRpb25LZXkgPVxuICAgICAgICBzZXJ2aWNlQ2xhc3NOdW1iZXIgPT09IDEgPyAnU0VSVklDRV9DTEFTU19GSVJTVCcgOiAnU0VSVklDRV9DTEFTU19TRUNPTkQnO1xuICAgICAgY29uc3Qgc2VydmljZUNsYXNzVHJhbnNsYXRpb24gPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbktleSxcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NMYWJlbCA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgICdOQVZJR0FURV9UT19DT0FDSF9TRVJWSUNFX0NMQVNTX1NVQicsXG4gICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICAgIFtzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbl0sXG4gICAgICApO1xuICAgICAgbGFiZWwgPSBsYWJlbC5jb25jYXQoc2VydmljZUNsYXNzTGFiZWwpO1xuICAgIH1cblxuICAgIC8vIEV4cGFuZHMgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgc2VhdHMgYW5kIGJpY3ljbGUgc3BhY2VzIGFzIGluZm9cbiAgICBjb25zdCBmcmVlUGxhY2VzVHh0ID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICdDT0FDSF9BVkFJTEFCTEVfTlVNQkVSX09GX1BMQUNFUycsXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgW3RoaXMuY29hY2hJdGVtRGV0YWlscy5mcmVlUGxhY2VzPy5zZWF0cywgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmZyZWVQbGFjZXM/LmJpY3ljbGVzXSxcbiAgICApO1xuICAgIGxhYmVsID0gbGFiZWwuY29uY2F0KCcuICcpLmNvbmNhdChmcmVlUGxhY2VzVHh0KTtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICBwcml2YXRlIF9nZXRBcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCBhcmlhRGVzY3JpcHRpb24gPSBudWxsO1xuICAgIGlmICh0aGlzLmNvYWNoSXRlbURldGFpbHMucHJvcGVydHlJZHM/Lmxlbmd0aCkge1xuICAgICAgYXJpYURlc2NyaXB0aW9uID1cbiAgICAgICAgZ2V0STE4blNlYXRSZXNlcnZhdGlvbignQ09BQ0hfQVZBSUxBQkxFX1NFUlZJQ0VTJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkgKyAnOiAnO1xuICAgICAgYXJpYURlc2NyaXB0aW9uICs9XG4gICAgICAgIHRoaXMuY29hY2hJdGVtRGV0YWlscy5wcm9wZXJ0eUlkc1xuICAgICAgICAgIC5tYXAoKHByb3BlcnR5SWQpID0+IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24ocHJvcGVydHlJZCwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkpXG4gICAgICAgICAgLmpvaW4oKSArICcuJztcbiAgICB9XG4gICAgcmV0dXJuIGFyaWFEZXNjcmlwdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBlbWl0cyB0aGUgaW5kZXggb2YgdGhlIGNvYWNoIGFycmF5IGZvciB0aGUgbWFpbiBuYXZpZ2F0aW9uLlxuICAgKiBAcGFyYW0gc2VsZWN0Y29hY2hcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX3NlbGVjdE5hdkNvYWNoKHNlbGVjdGNvYWNoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7U2JiU2VsZWN0Q29hY2hFdmVudH1cbiAgICAgKiBFbWl0cyB3aGVuIGEgY29hY2ggd2l0aGluIHRoZSBuYXZpZ2F0aW9uIHdhcyBzZWxlY3RlZCBhbmQgcmV0dXJucyB0aGUgY2xpY2tlZCBjb2FjaCBuYXYgaW5kZXguXG4gICAgICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBTYmJTZWxlY3RDb2FjaEV2ZW50KHNlbGVjdGNvYWNoKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb2FjaFNlcnZpY2VDbGFzc051bWJlcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnRyYXZlbENsYXNzPy5pbmNsdWRlcygnRklSU1QnKVxuICAgICAgPyAxXG4gICAgICA6IHRoaXMuY29hY2hJdGVtRGV0YWlscy50cmF2ZWxDbGFzcz8uaW5jbHVkZXMoJ1NFQ09ORCcpXG4gICAgICAgID8gMlxuICAgICAgICA6IG51bGw7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gnOiBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uQ29hY2hFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FDeUJBLElBQWEsc0JBQWIsY0FBeUMsTUFBSztDQUc1QyxJQUFXLGFBQVU7RUFDbkIsT0FBTyxLQUFLO0NBQ2Q7Q0FFQSxZQUFtQixZQUFrQjtFQUNuQyxNQUFNLGVBQWU7R0FBRSxTQUFTO0dBQU0sVUFBVTtFQUFJLENBQUU7RUFDdEQsS0FBSyxjQUFjO0NBQ3JCOzs7OztJQU1XLGtEQUF3QzttQkFBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUFqRCxpREFBaUQsWUFBVTs7O0dBa0J0RCxLQUFBLDZCQUFBLGtCQUFBLE1BQUEsd0JBQW9CLEtBQUs7R0FLekIsS0FBQSw2QkFBQSxrQkFBQSxNQUFBLDJCQUFBLEdBQUEsa0JBQUEsTUFBQSx1QkFBbUIsS0FBSztHQUt4QixLQUFBLDZCQUFBLGtCQUFBLE1BQUEsMEJBQUEsR0FBQSxrQkFBQSxNQUFBLHVCQUFtQixLQUFLO0dBS3hCLEtBQUEsdUNBQUEsa0JBQUEsTUFBQSwwQkFBQSxHQUFBLGtCQUFBLE1BQUEsaUNBQTZCLElBQUk7R0FJakMsS0FBQSwyQkFBQSxrQkFBQSxNQUFBLG9DQUFBLEdBQUEsa0JBQUEsTUFBQSxxQkFBZ0IsQ0FBQztHQUdqQixLQUFBLHNDQUFBLGtCQUFBLE1BQUEsd0JBQUEsR0FBQSxrQkFBQSxNQUFBLGdDQUF1RCxDQUFBLENBQUU7R0FLekQsS0FBQSw2QkFBQSxrQkFBQSxNQUFBLG1DQUFBLEdBQUEsa0JBQUEsTUFBQSx1QkFBbUIsS0FBSztHQUt4QixLQUFBLDhCQUFBLGtCQUFBLE1BQUEsMEJBQUEsR0FBQSxrQkFBQSxNQUFBLHdCQUFvQixLQUFLO0dBS3pCLEtBQUEsbUNBQUEsa0JBQUEsTUFBQSwyQkFBQSxHQUFBLGtCQUFB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
@@ -1,6 +1,6 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
1
  import { SbbElement, SbbLanguageController, forceType, screenReaderOnlyStyles } from "@sbb-esta/lyne-elements/core.js";
3
2
  import { html, nothing, unsafeCSS } from "lit";
3
+ import { __esDecorate, __runInitializers } from "tslib";
4
4
  import { property } from "lit/decorators.js";
5
5
  import { getI18nSeatReservation } from "./seat-reservation/common/translations.js";
6
6
  import { SbbSeatReservationGraphicElement } from "./seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js";
@@ -156,4 +156,4 @@ var SbbSeatReservationNavigationServicesElement = (() => {
156
156
  //#endregion
157
157
  export { SbbSeatReservationNavigationServicesElement as t };
158
158
 
159
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC1EbzhKTEpoMy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcy5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLWZ1bmN0aW9ucycgYXMgc2JiLXNyLWZ1bmN0aW9ucztcblxuLnNiYi1zci1uYXZpZ2F0aW9uX19zaWducyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcblxuICAvLyBUSU1PLTQ0MjE1XG4gIC8vIGRlY3JlYXNlIGNvbHVtbi1nYXAgd2hlbiB0aHJlZSB3aWRlIHNlcnZpY2UtaWNvbnMgYXJlIGNvbWJpbmVkXG4gICY6aGFzKDpudGgtY2hpbGQobiArIDMgb2YgLmF1dG8td2lkdGgpKSB7XG4gICAgLy8gYWRqdXN0bWVudCBmb3Igc2lsZW5jZS0gYW5kIGJ1c2luZXNzLWljb25zXG4gICAgJjpoYXMoW25hbWVePSdTSUxFTkNFJ10sIFtuYW1lXj0nQlVTSU5FU1MnXSkge1xuICAgICAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg2KTtcblxuICAgICAgLy8gYmljeWNsZSBpY29uIG9ubHkgbmVlZHMgZnVydGhlciBhZGp1c3RtZW50IHdoZW4gY29tYmluZWQgd2l0aCBzaWxlbmNlLSBhbmQgYnVzaW5lc3MtaWNvbnNcbiAgICAgICY6aGFzKFtuYW1lXj0nQklDWUNMRSddKSB7XG4gICAgICAgIGdhcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbjpob3N0KFt2ZXJ0aWNhbF0pIC5zYmItc3ItbmF2aWdhdGlvbl9fc2lnbnMge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCJpbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgc2NyZWVuUmVhZGVyT25seVN0eWxlcyxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24gfSBmcm9tICcuLi9jb21tb24vdHJhbnNsYXRpb25zLnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IH0gZnJvbSAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIENvbXBvbmVudCBkaXNwbGF5cyB0aGUgYXZhaWxhYmxlIHNlcnZpY2UgaWNvbnMgb2Ygb25lIGNvYWNoLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiU2VhdFJlc2VydmF0aW9uR3JhcGhpY0VsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbc2NyZWVuUmVhZGVyT25seVN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIENvYWNoIHNlcnZpY2UgcHJvcGVydHkgaWRzLCB3aGljaCBhcmUgdXNlZCB0byBkaXNwbGF5IHRoZSBzZXJ2aWNlcyBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcm9wZXJ0eS1pZHMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJvcGVydHlJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqIElmIHRydWUsIHRoZSBzZXJ2aWNlIGljb25zIGFyZSBkaXNwbGF5ZWQgdmVydGljYWxseSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSwgdXNlRGVmYXVsdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdmVydGljYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRGlzYWJsZSB0aGUgbW91c2Ugb3ZlciB0aXRsZSBpbmZvcm1hdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2hvd1RpdGxlSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBzZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucHJvcGVydHlJZHM/Lmxlbmd0aFxuICAgICAgPyB0aGlzLl9nZXRTZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbigpXG4gICAgICA6IG51bGw7XG4gICAgcmV0dXJuIGh0bWxgIDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9fc2lnbnNcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgICR7c2VydmljZUxhYmVsRGVzY3JpcHRpb24gPyBzZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbiA6IG5vdGhpbmd9XG4gICAgICAgID4ke3NlcnZpY2VMYWJlbERlc2NyaXB0aW9ufTwvc3BhblxuICAgICAgPlxuICAgICAgJHt0aGlzLnByb3BlcnR5SWRzPy5tYXAoKHNpZ25JY29uOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICAgIGNsYXNzPVwiYXV0by13aWR0aFwiXG4gICAgICAgICAgICBuYW1lPSR7c2lnbkljb24gPz8gbm90aGluZ31cbiAgICAgICAgICAgIHRpdGxlPSR7dGhpcy5zaG93VGl0bGVJbmZvXG4gICAgICAgICAgICAgID8gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihzaWduSWNvbiwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudClcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICBgO1xuICAgICAgfSl9XG4gICAgPC9kaXY+YDtcbiAgfVxuXG4gIC8vR2VuZXJhdGUgdGhlIHRyYW5zbGF0ZWQgc2VydmljZSBsYWJlbCBmcm9tIHRoZSBhdmFpbGFibGUgcHJvcGVydGllc1xuICBwcml2YXRlIF9nZXRTZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBsZXQgbGFiZWwgPSBudWxsO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRTZXJ2aWNlTGFiZWxzID0gdGhpcy5wcm9wZXJ0eUlkc1xuICAgICAgLm1hcCgocHJvcCkgPT4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihwcm9wLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSlcbiAgICAgIC5maWx0ZXIoKHByb3BUcmFuc2xhdGlvbikgPT4gISFwcm9wVHJhbnNsYXRpb24pXG4gICAgICAuam9pbignLCAnKTtcblxuICAgIGlmICh0cmFuc2xhdGVkU2VydmljZUxhYmVscykge1xuICAgICAgbGFiZWwgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9BVkFJTEFCTEVfU0VSVklDRVMnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KVxuICAgICAgICAuY29uY2F0KCc6JylcbiAgICAgICAgLmNvbmNhdCh0cmFuc2xhdGVkU2VydmljZUxhYmVscyk7XG4gICAgfVxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcyc6IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUNtQmEscURBQTJDO21CQUFTOzs7Ozs7Ozs7O2NBQXBELG9EQUFvRCxZQUFVOzs7R0FPekQsS0FBQSxnQ0FBQSxrQkFBQSxNQUFBLDJCQUF3QixFQUFFLENBQUE7R0FLMUIsS0FBQSw4QkFBQSxrQkFBQSxNQUFBLCtCQUFBLEVBQUEsa0JBQUEsTUFBQSx3QkFBb0IsTUFBSztHQUt6QixLQUFBLG1DQUFBLGtCQUFBLE1BQUEsNEJBQUEsRUFBQSxrQkFBQSxNQUFBLDZCQUF5QixNQUFLO0dBRXRDLEtBQUEsYUFBUyxrQkFBQSxNQUFBLGlDQUFBLEVBQUcsSUFBSSxzQkFBc0IsS0FBSzs7Ozs4QkFibEQsU0FBUztJQUFFLFdBQVc7SUFBZ0IsTUFBTTtJQUFPLENBQUMsQ0FBQTsyQkFJcEQsV0FBVyxFQUNYLFNBQVM7SUFBRSxNQUFNO0lBQVMsU0FBUztJQUFNLFlBQVk7SUFBTSxDQUFDLENBQUE7Z0NBSTVELFdBQVcsRUFDWCxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQTtHQVQ1QixhQUFBLE1BQUEsTUFBQSx5QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGlCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVcsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFYLGNBQVc7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSwyQkFBQSwrQkFBQTtHQUszQixhQUFBLE1BQUEsTUFBQSxzQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGNBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBUSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVIsV0FBUTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHdCQUFBLDRCQUFBO0dBS3hCLGFBQUEsTUFBQSxNQUFBLDJCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsbUJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBYSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQWIsZ0JBQWE7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSw2QkFBQSxpQ0FBQTs7Ozs7Ozs7O0dBaEJHLEtBQUEsY0FBc0I7OztHQUMvQixLQUFBLHNCQUF3QyxDQUFDLGlDQUFpQzs7O0dBQzFFLEtBQUEsU0FBeUIsQ0FBQyx3QkFBd0IsVUFBVSw2Q0FBTSxDQUFDOztFQUkxRjs7RUFBQSxJQUFnQixjQUFXO0dBQUEsT0FBQSxLQUFBOztFQUEzQixJQUFnQixZQUFXLE9BQUE7R0FBQSxLQUFBLGdDQUFBOztFQUszQjs7RUFBQSxJQUFnQixXQUFRO0dBQUEsT0FBQSxLQUFBOztFQUF4QixJQUFnQixTQUFRLE9BQUE7R0FBQSxLQUFBLDZCQUFBOztFQUt4Qjs7RUFBQSxJQUFnQixnQkFBYTtHQUFBLE9BQUEsS0FBQTs7RUFBN0IsSUFBZ0IsY0FBYSxPQUFBO0dBQUEsS0FBQSxrQ0FBQTs7RUFJVixTQUFNO0dBQ3ZCLE1BQU0sMEJBQTBCLEtBQUssYUFBYSxTQUM5QyxLQUFLLDZCQUE2QixHQUNsQztHQUNKLE9BQU8sSUFBSTs7O1VBR0wsMEJBQTBCLDBCQUEwQixRQUFBO1dBQ25ELHdCQUF1Qjs7UUFFMUIsS0FBSyxhQUFhLEtBQUssYUFBb0I7SUFDM0MsT0FBTyxJQUFJOzs7bUJBR0EsWUFBWSxRQUFBO29CQUNYLEtBQUssZ0JBQ1QsdUJBQXVCLFVBQVUsS0FBSyxVQUFVLFFBQVEsR0FDeEQsUUFBQTs7OztLQUlSLENBQUE7OztFQUtFLDhCQUEyQjtHQUNqQyxJQUFJLFFBQVE7R0FDWixNQUFNLDBCQUEwQixLQUFLLFlBQ2xDLEtBQUssU0FBUyx1QkFBdUIsTUFBTSxLQUFLLFVBQVUsUUFBUSxDQUFDLENBQ25FLFFBQVEsb0JBQW9CLENBQUMsQ0FBQyxnQkFBZ0IsQ0FDOUMsS0FBSyxLQUFLO0dBRWIsSUFBSSx5QkFDRixRQUFRLHVCQUF1Qiw0QkFBNEIsS0FBSyxVQUFVLFFBQVEsQ0FDL0UsT0FBTyxJQUFJLENBQ1gsT0FBTyx3QkFBd0I7R0FFcEMsT0FBTyJ9
159
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC1DeDBJczk3dy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcy5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLWZ1bmN0aW9ucycgYXMgc2JiLXNyLWZ1bmN0aW9ucztcblxuLnNiYi1zci1uYXZpZ2F0aW9uX19zaWducyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcblxuICAvLyBUSU1PLTQ0MjE1XG4gIC8vIGRlY3JlYXNlIGNvbHVtbi1nYXAgd2hlbiB0aHJlZSB3aWRlIHNlcnZpY2UtaWNvbnMgYXJlIGNvbWJpbmVkXG4gICY6aGFzKDpudGgtY2hpbGQobiArIDMgb2YgLmF1dG8td2lkdGgpKSB7XG4gICAgLy8gYWRqdXN0bWVudCBmb3Igc2lsZW5jZS0gYW5kIGJ1c2luZXNzLWljb25zXG4gICAgJjpoYXMoW25hbWVePSdTSUxFTkNFJ10sIFtuYW1lXj0nQlVTSU5FU1MnXSkge1xuICAgICAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg2KTtcblxuICAgICAgLy8gYmljeWNsZSBpY29uIG9ubHkgbmVlZHMgZnVydGhlciBhZGp1c3RtZW50IHdoZW4gY29tYmluZWQgd2l0aCBzaWxlbmNlLSBhbmQgYnVzaW5lc3MtaWNvbnNcbiAgICAgICY6aGFzKFtuYW1lXj0nQklDWUNMRSddKSB7XG4gICAgICAgIGdhcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbjpob3N0KFt2ZXJ0aWNhbF0pIC5zYmItc3ItbmF2aWdhdGlvbl9fc2lnbnMge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCJpbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgc2NyZWVuUmVhZGVyT25seVN0eWxlcyxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24gfSBmcm9tICcuLi9jb21tb24vdHJhbnNsYXRpb25zLnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IH0gZnJvbSAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIENvbXBvbmVudCBkaXNwbGF5cyB0aGUgYXZhaWxhYmxlIHNlcnZpY2UgaWNvbnMgb2Ygb25lIGNvYWNoLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiU2VhdFJlc2VydmF0aW9uR3JhcGhpY0VsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbc2NyZWVuUmVhZGVyT25seVN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIENvYWNoIHNlcnZpY2UgcHJvcGVydHkgaWRzLCB3aGljaCBhcmUgdXNlZCB0byBkaXNwbGF5IHRoZSBzZXJ2aWNlcyBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcm9wZXJ0eS1pZHMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJvcGVydHlJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqIElmIHRydWUsIHRoZSBzZXJ2aWNlIGljb25zIGFyZSBkaXNwbGF5ZWQgdmVydGljYWxseSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSwgdXNlRGVmYXVsdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdmVydGljYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRGlzYWJsZSB0aGUgbW91c2Ugb3ZlciB0aXRsZSBpbmZvcm1hdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2hvd1RpdGxlSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBzZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucHJvcGVydHlJZHM/Lmxlbmd0aFxuICAgICAgPyB0aGlzLl9nZXRTZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbigpXG4gICAgICA6IG51bGw7XG4gICAgcmV0dXJuIGh0bWxgIDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9fc2lnbnNcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgICR7c2VydmljZUxhYmVsRGVzY3JpcHRpb24gPyBzZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbiA6IG5vdGhpbmd9XG4gICAgICAgID4ke3NlcnZpY2VMYWJlbERlc2NyaXB0aW9ufTwvc3BhblxuICAgICAgPlxuICAgICAgJHt0aGlzLnByb3BlcnR5SWRzPy5tYXAoKHNpZ25JY29uOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICAgIGNsYXNzPVwiYXV0by13aWR0aFwiXG4gICAgICAgICAgICBuYW1lPSR7c2lnbkljb24gPz8gbm90aGluZ31cbiAgICAgICAgICAgIHRpdGxlPSR7dGhpcy5zaG93VGl0bGVJbmZvXG4gICAgICAgICAgICAgID8gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihzaWduSWNvbiwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudClcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICBgO1xuICAgICAgfSl9XG4gICAgPC9kaXY+YDtcbiAgfVxuXG4gIC8vR2VuZXJhdGUgdGhlIHRyYW5zbGF0ZWQgc2VydmljZSBsYWJlbCBmcm9tIHRoZSBhdmFpbGFibGUgcHJvcGVydGllc1xuICBwcml2YXRlIF9nZXRTZXJ2aWNlTGFiZWxEZXNjcmlwdGlvbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBsZXQgbGFiZWwgPSBudWxsO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRTZXJ2aWNlTGFiZWxzID0gdGhpcy5wcm9wZXJ0eUlkc1xuICAgICAgLm1hcCgocHJvcCkgPT4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihwcm9wLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSlcbiAgICAgIC5maWx0ZXIoKHByb3BUcmFuc2xhdGlvbikgPT4gISFwcm9wVHJhbnNsYXRpb24pXG4gICAgICAuam9pbignLCAnKTtcblxuICAgIGlmICh0cmFuc2xhdGVkU2VydmljZUxhYmVscykge1xuICAgICAgbGFiZWwgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9BVkFJTEFCTEVfU0VSVklDRVMnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KVxuICAgICAgICAuY29uY2F0KCc6JylcbiAgICAgICAgLmNvbmNhdCh0cmFuc2xhdGVkU2VydmljZUxhYmVscyk7XG4gICAgfVxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcyc6IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUNtQmEscURBQTJDO21CQUFTOzs7Ozs7Ozs7O2NBQXBELG9EQUFvRCxZQUFVOzs7R0FPekQsS0FBQSxnQ0FBQSxrQkFBQSxNQUFBLDJCQUF3QixDQUFBLENBQUU7R0FLMUIsS0FBQSw4QkFBQSxrQkFBQSxNQUFBLDhCQUFBLEdBQUEsa0JBQUEsTUFBQSx3QkFBb0IsS0FBSztHQUt6QixLQUFBLG1DQUFBLGtCQUFBLE1BQUEsMkJBQUEsR0FBQSxrQkFBQSxNQUFBLDZCQUF5QixLQUFLO0dBRXRDLEtBQUEsYUFBUyxrQkFBQSxNQUFBLGdDQUFBLEdBQUcsSUFBSSxzQkFBc0IsSUFBSTtFQTBDcEQ7Ozs4QkF2REcsU0FBUztJQUFFLFdBQVc7SUFBZ0IsTUFBTTtHQUFLLENBQUUsQ0FBQzsyQkFJcEQsVUFBUyxHQUNULFNBQVM7SUFBRSxNQUFNO0lBQVMsU0FBUztJQUFNLFlBQVk7R0FBSSxDQUFFLENBQUM7Z0NBSTVELFVBQVMsR0FDVCxTQUFTLEVBQUUsTUFBTSxRQUFPLENBQUUsQ0FBQztHQVQ1QixhQUFBLE1BQUEsTUFBQSx5QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGlCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVcsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFYLGNBQVc7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsMkJBQUEsOEJBQUE7R0FLM0IsYUFBQSxNQUFBLE1BQUEsc0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxjQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVEsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFSLFdBQVE7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsd0JBQUEsMkJBQUE7R0FLeEIsYUFBQSxNQUFBLE1BQUEsMkJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxtQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFhLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBYixnQkFBYTtLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSw2QkFBQSxnQ0FBQTs7Ozs7Ozs7O0dBaEJHLEtBQUEsY0FBc0I7RUFBMkM7O0dBQzFFLEtBQUEsc0JBQXdDLENBQUMsZ0NBQWdDO0VBQUU7O0dBQzNFLEtBQUEsU0FBeUIsQ0FBQyx3QkFBd0IsVUFBVSw0Q0FBSyxDQUFDO0VBQUU7RUFJM0Y7O0VBQUEsSUFBZ0IsY0FBVztHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQTNCLElBQWdCLFlBQVcsT0FBQTtHQUFBLEtBQUEsZ0NBQUE7RUFBQTtFQUszQjs7RUFBQSxJQUFnQixXQUFRO0dBQUEsT0FBQSxLQUFBO0VBQUE7RUFBeEIsSUFBZ0IsU0FBUSxPQUFBO0dBQUEsS0FBQSw2QkFBQTtFQUFBO0VBS3hCOztFQUFBLElBQWdCLGdCQUFhO0dBQUEsT0FBQSxLQUFBO0VBQUE7RUFBN0IsSUFBZ0IsY0FBYSxPQUFBO0dBQUEsS0FBQSxrQ0FBQTtFQUFBO0VBSVYsU0FBTTtHQUN2QixNQUFNLDBCQUEwQixLQUFLLGFBQWEsU0FDOUMsS0FBSyw0QkFBMkIsSUFDaEM7R0FDSixPQUFPLElBQUk7OztVQUdMLDBCQUEwQiwwQkFBMEIsUUFBQTtXQUNuRCx3QkFBdUI7O1FBRTFCLEtBQUssYUFBYSxLQUFLLGFBQW9CO0lBQzNDLE9BQU8sSUFBSTs7O21CQUdBLFlBQVksUUFBQTtvQkFDWCxLQUFLLGdCQUNULHVCQUF1QixVQUFVLEtBQUssVUFBVSxPQUFPLElBQ3ZELFFBQUE7Ozs7R0FJVixDQUFDLEVBQUE7O0VBRUw7RUFHUSw4QkFBMkI7R0FDakMsSUFBSSxRQUFRO0dBQ1osTUFBTSwwQkFBMEIsS0FBSyxZQUNsQyxLQUFLLFNBQVMsdUJBQXVCLE1BQU0sS0FBSyxVQUFVLE9BQU8sQ0FBQyxFQUNsRSxRQUFRLG9CQUFvQixDQUFDLENBQUMsZUFBZSxFQUM3QyxLQUFLLElBQUk7R0FFWixJQUFJLHlCQUNGLFFBQVEsdUJBQXVCLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxFQUM5RSxPQUFPLEdBQUcsRUFDVixPQUFPLHVCQUF1QjtHQUVuQyxPQUFPO0VBQ1QifQ==