@sbb-esta/lyne-elements-experimental 4.8.1 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +1 -1
  2. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  3. package/autocomplete-grid/autocomplete-grid-cell.js +1 -1
  4. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  5. package/autocomplete-grid/autocomplete-grid-option.js +1 -1
  6. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  7. package/autocomplete-grid/autocomplete-grid-row.js +1 -1
  8. package/{autocomplete-grid-cell.component-Dak9wlBr.js → autocomplete-grid-cell.component-DkD9aFKc.js} +5 -5
  9. package/autocomplete-grid-option.component-CtATJy7n.js +37 -0
  10. package/autocomplete-grid-row.component-6nJv5PMj.js +27 -0
  11. package/autocomplete-grid.js +3 -3
  12. package/autocomplete-grid.pure.js +3 -3
  13. package/custom-elements.json +70 -2
  14. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +2 -2
  15. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -1
  16. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  17. package/development/autocomplete-grid/autocomplete-grid-cell.js +1 -1
  18. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
  19. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  20. package/development/autocomplete-grid/autocomplete-grid-option.js +1 -1
  21. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -1
  22. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  23. package/development/autocomplete-grid/autocomplete-grid-row.js +1 -1
  24. package/development/autocomplete-grid-cell.component-BxkWGaX0.js +34 -0
  25. package/development/autocomplete-grid-option.component-5mPGswUO.js +61 -0
  26. package/development/autocomplete-grid-row.component-DEm6zyHZ.js +39 -0
  27. package/development/autocomplete-grid.js +3 -3
  28. package/development/autocomplete-grid.pure.js +3 -3
  29. package/development/core/datetime/date-helper.js +1 -1
  30. package/development/core/datetime.js +1 -1
  31. package/development/{date-helper-8_Y-PuHh.js → date-helper-qNdwgC9O.js} +4 -4
  32. package/development/{differenceInMinutes-DN_1Rk3O.js → differenceInMinutes-B7_GTDq7.js} +2 -2
  33. package/development/{format-Bbrn2bgo.js → format-DFx4997p.js} +3 -3
  34. package/development/{isValid-C-HzKv4v.js → isValid-JpZ7FphI.js} +2 -2
  35. package/development/journey-summary/journey-summary.component.d.ts.map +1 -1
  36. package/development/journey-summary/journey-summary.component.js +1 -1
  37. package/development/journey-summary.component-BZwgD4im.js +340 -0
  38. package/development/journey-summary.js +1 -1
  39. package/development/journey-summary.pure.js +1 -1
  40. package/development/pearl-chain/pearl-chain.component.d.ts.map +1 -1
  41. package/development/pearl-chain/pearl-chain.component.js +1 -1
  42. package/development/pearl-chain-time/pearl-chain-time.component.d.ts.map +1 -1
  43. package/development/pearl-chain-time/pearl-chain-time.component.js +1 -1
  44. package/development/pearl-chain-time.component-B2_BI6E_.js +319 -0
  45. package/development/pearl-chain-time.js +1 -1
  46. package/development/pearl-chain-time.pure.js +1 -1
  47. package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts.map +1 -1
  48. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  49. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts.map +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-DcmH13Vb.js +133 -0
  52. package/development/pearl-chain-vertical-item.js +1 -1
  53. package/development/pearl-chain-vertical-item.pure.js +1 -1
  54. package/development/pearl-chain-vertical.component-CpcNFl-x.js +31 -0
  55. package/development/pearl-chain-vertical.js +1 -1
  56. package/development/pearl-chain-vertical.pure.js +1 -1
  57. package/development/pearl-chain.component-oQZUzsyW.js +316 -0
  58. package/development/pearl-chain.js +1 -1
  59. package/development/pearl-chain.pure.js +1 -1
  60. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +3 -0
  61. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  62. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +37 -2
  63. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  64. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  65. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts.map +1 -1
  66. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  67. package/development/seat-reservation/seat-reservation-area.js +1 -1
  68. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +1 -1
  69. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -1
  70. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  71. package/development/seat-reservation/seat-reservation-graphic.js +1 -1
  72. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  73. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  74. package/development/seat-reservation/seat-reservation-navigation-coach.js +1 -1
  75. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +1 -1
  76. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  77. package/development/seat-reservation/seat-reservation-navigation-services.js +1 -1
  78. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  79. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
  80. package/development/seat-reservation/seat-reservation-place-control.js +1 -1
  81. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -1
  82. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  83. package/development/seat-reservation/seat-reservation-scoped.js +1 -1
  84. package/development/seat-reservation/seat-reservation.js +1 -1
  85. package/development/seat-reservation-area.component-DbeuTnXT.js +96 -0
  86. package/development/seat-reservation-graphic.component-DlrHtlia.js +129 -0
  87. package/development/seat-reservation-navigation-coach.component-CjoDkcVU.js +428 -0
  88. package/development/seat-reservation-navigation-services.component-CGel7__P.js +159 -0
  89. package/development/seat-reservation-place-control.component-CM9efId7.js +429 -0
  90. package/development/seat-reservation-scoped.component-CFA_bJ3o.js +25 -0
  91. package/development/seat-reservation.component-DFJVFmrI.js +510 -0
  92. package/development/seat-reservation.js +7 -7
  93. package/development/seat-reservation.pure.js +7 -7
  94. package/development/timetable-duration/timetable-duration.component.d.ts.map +1 -1
  95. package/development/timetable-duration/timetable-duration.component.js +1 -1
  96. package/development/timetable-duration.component-BhFlqYbV.js +100 -0
  97. package/development/timetable-duration.js +1 -1
  98. package/development/timetable-duration.pure.js +1 -1
  99. package/development/timetable-row/timetable-row.component.d.ts.map +1 -1
  100. package/development/timetable-row/timetable-row.component.js +1 -1
  101. package/development/timetable-row.component-Dko8laRT.js +729 -0
  102. package/development/timetable-row.js +1 -1
  103. package/development/timetable-row.pure.js +1 -1
  104. package/development/{toDate-Biiv3kyf.js → toDate-DOFAOjP-.js} +2 -2
  105. package/journey-summary/journey-summary.component.js +1 -1
  106. package/{journey-summary.component-Cq_4kaOp.js → journey-summary.component-DC7-qPHY.js} +38 -38
  107. package/journey-summary.js +1 -1
  108. package/journey-summary.pure.js +1 -1
  109. package/package.json +2 -2
  110. package/pearl-chain/pearl-chain.component.js +1 -1
  111. package/pearl-chain-time/pearl-chain-time.component.js +1 -1
  112. package/{pearl-chain-time.component-DGDW5S1c.js → pearl-chain-time.component-CkKsrbgQ.js} +28 -28
  113. package/pearl-chain-time.js +1 -1
  114. package/pearl-chain-time.pure.js +1 -1
  115. package/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  116. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  117. package/pearl-chain-vertical-item.component-BUqZ-3Ay.js +108 -0
  118. package/pearl-chain-vertical-item.js +1 -1
  119. package/pearl-chain-vertical-item.pure.js +1 -1
  120. package/{pearl-chain-vertical.component-CXIDT5RD.js → pearl-chain-vertical.component-Df9CvRxo.js} +5 -5
  121. package/pearl-chain-vertical.js +1 -1
  122. package/pearl-chain-vertical.pure.js +1 -1
  123. package/pearl-chain.component-CpISVoAu.js +194 -0
  124. package/pearl-chain.js +1 -1
  125. package/pearl-chain.pure.js +1 -1
  126. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +30 -4
  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-area.js +1 -1
  130. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +1 -1
  131. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  132. package/seat-reservation/seat-reservation-graphic.js +1 -1
  133. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  134. package/seat-reservation/seat-reservation-navigation-coach.js +1 -1
  135. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  136. package/seat-reservation/seat-reservation-navigation-services.js +1 -1
  137. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
  138. package/seat-reservation/seat-reservation-place-control.js +1 -1
  139. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  140. package/seat-reservation/seat-reservation-scoped.js +1 -1
  141. package/seat-reservation/seat-reservation.js +1 -1
  142. package/seat-reservation-area.component-CtYawDjE.js +75 -0
  143. package/seat-reservation-graphic.component-Cm_pVxaB.js +102 -0
  144. package/seat-reservation-navigation-coach.component-sug9IBTH.js +333 -0
  145. package/{seat-reservation-navigation-services.component-QL0UnilZ.js → seat-reservation-navigation-services.component-C9dDYD_M.js} +19 -19
  146. package/seat-reservation-place-control.component-CE7d9M2b.js +322 -0
  147. package/seat-reservation-scoped.component-DVyP2JGE.js +17 -0
  148. package/{seat-reservation.component-zrQHTRl3.js → seat-reservation.component-DajC6fqU.js} +58 -55
  149. package/seat-reservation.js +7 -7
  150. package/seat-reservation.pure.js +7 -7
  151. package/timetable-duration/timetable-duration.component.js +1 -1
  152. package/{timetable-duration.component-DaYoJUGS.js → timetable-duration.component-BnJA8wSb.js} +12 -12
  153. package/timetable-duration.js +1 -1
  154. package/timetable-duration.pure.js +1 -1
  155. package/timetable-row/timetable-row.component.js +1 -1
  156. package/{timetable-row.component-BDMAEsbR.js → timetable-row.component-DbzBCpKR.js} +59 -59
  157. package/timetable-row.js +1 -1
  158. package/timetable-row.pure.js +1 -1
  159. package/autocomplete-grid-option.component-DNRFHOwc.js +0 -37
  160. package/autocomplete-grid-row.component-DBHZQ0GQ.js +0 -27
  161. package/development/autocomplete-grid-cell.component-BBvM4o2H.js +0 -42
  162. package/development/autocomplete-grid-option.component-QzfM5eIE.js +0 -123
  163. package/development/autocomplete-grid-row.component-H8sCTCkT.js +0 -104
  164. package/development/journey-summary.component-uGhZvA4p.js +0 -385
  165. package/development/pearl-chain-time.component-B8mayTWD.js +0 -415
  166. package/development/pearl-chain-vertical-item.component-BDzbcIaf.js +0 -435
  167. package/development/pearl-chain-vertical.component-CswE7b3M.js +0 -39
  168. package/development/pearl-chain.component-wpsTvoSe.js +0 -704
  169. package/development/seat-reservation-area.component-ORuli_DC.js +0 -138
  170. package/development/seat-reservation-graphic.component-lZXqHWIz.js +0 -193
  171. package/development/seat-reservation-navigation-coach.component-D2QXTMJJ.js +0 -828
  172. package/development/seat-reservation-navigation-services.component-Bg1adRlU.js +0 -179
  173. package/development/seat-reservation-place-control.component-CwUX-QYO.js +0 -726
  174. package/development/seat-reservation-scoped.component-uLT33P9y.js +0 -31
  175. package/development/seat-reservation.component-MOv5kHDC.js +0 -821
  176. package/development/timetable-duration.component-D21SXsQq.js +0 -125
  177. package/development/timetable-row.component-Y5w8vEwP.js +0 -932
  178. package/pearl-chain-vertical-item.component-G22bWhLU.js +0 -108
  179. package/pearl-chain.component-DmjkVIva.js +0 -194
  180. package/seat-reservation-area.component-COD6CXhP.js +0 -75
  181. package/seat-reservation-graphic.component-BNfU5tQM.js +0 -102
  182. package/seat-reservation-navigation-coach.component-Bh9ILq60.js +0 -333
  183. package/seat-reservation-place-control.component-BfnZUyHv.js +0 -322
  184. package/seat-reservation-scoped.component-CY04BT_4.js +0 -17
@@ -0,0 +1,429 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { SbbButtonBaseElement } from "@sbb-esta/lyne-elements/core/base-elements.js";
3
+ import { SbbLanguageController } from "@sbb-esta/lyne-elements/core/controllers.js";
4
+ import { forceType } from "@sbb-esta/lyne-elements/core/decorators.js";
5
+ import { boxSizingStyles } from "@sbb-esta/lyne-elements/core/styles.js";
6
+ import { html, nothing, unsafeCSS } from "lit";
7
+ import { property } from "lit/decorators.js";
8
+ import { styleMap } from "lit/directives/style-map.js";
9
+ import { getI18nSeatReservation } from "./seat-reservation/common/translations.js";
10
+ import { SbbSeatReservationGraphicElement } from "./seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js";
11
+ //#region src/elements-experimental/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.scss?inline
12
+ var seat_reservation_place_control_default = ":host {\n --sbb-seat-reservation-place-control-text-scale-value: 1;\n --sbb-seat-reservation-place-control-width: 16;\n --sbb-seat-reservation-place-control-height: 16;\n --sbb-seat-reservation-place-control-top: 0;\n --sbb-seat-reservation-place-control-left: 0;\n --sbb-seat-reservation-place-control-rotation: 0;\n --sbb-seat-reservation-place-control-text-rotation: 0;\n --sbb-seat-reservation-place-control-text-size: calc(\n var(--sbb-seat-reservation-place-control-text-scale-value, 1) * 0.5\n );\n --sbb-seat-reservation-place-control-default-text: var(--sbb-color-black);\n --sbb-seat-reservation-place-control-default-text: light-dark(\n var(--sbb-color-black),\n var(--sbb-color-white)\n );\n --sbb-seat-reservation-place-control-hover-text: var(--sbb-color-iron);\n --sbb-seat-reservation-place-control-hover-text: light-dark(\n var(--sbb-color-iron),\n var(--sbb-color-silver)\n );\n --sbb-seat-reservation-place-control-focus-text: var(--sbb-color-anthracite);\n --sbb-seat-reservation-place-control-focus-text: light-dark(\n var(--sbb-color-anthracite),\n var(--sbb-color-graphite)\n );\n --sbb-seat-reservation-place-control-allocated-text: var(--sbb-color-smoke);\n --sbb-seat-reservation-place-control-allocated-text: light-dark(\n var(--sbb-color-smoke),\n var(--sbb-color-metal)\n );\n --sbb-seat-reservation-place-control-free-background-default: var(--sbb-background-color-2);\n --sbb-seat-reservation-place-control-free-background-hover: var(--sbb-color-cloud);\n --sbb-seat-reservation-place-control-free-background-hover: light-dark(\n var(--sbb-color-cloud),\n var(--sbb-color-midnight)\n );\n --sbb-seat-reservation-place-control-free-background-focus: var(--sbb-color-silver);\n --sbb-seat-reservation-place-control-free-background-focus: light-dark(\n var(--sbb-color-silver),\n var(--sbb-color-black)\n );\n --sbb-seat-reservation-place-control-free-backrest-background-default: var(--sbb-color-black);\n --sbb-seat-reservation-place-control-free-backrest-background-default: light-dark(\n var(--sbb-color-black),\n var(--sbb-color-white)\n );\n --sbb-seat-reservation-place-control-free-backrest-background-hover: var(--sbb-color-black);\n --sbb-seat-reservation-place-control-free-backrest-background-hover: light-dark(\n var(--sbb-color-black),\n var(--sbb-color-white)\n );\n --sbb-seat-reservation-place-control-free-backrest-background-focus: var(--sbb-color-black);\n --sbb-seat-reservation-place-control-free-backrest-background-focus: light-dark(\n var(--sbb-color-black),\n var(--sbb-color-white)\n );\n --sbb-seat-reservation-place-control-selected-background-default: var(--sbb-color-primary);\n --sbb-seat-reservation-place-control-selected-background-hover: var(--sbb-color-primary125);\n --sbb-seat-reservation-place-control-selected-background-focus: var(--sbb-color-primary150);\n --sbb-seat-reservation-place-control-selected-backrest-background-default: var(\n --sbb-color-primary150\n );\n --sbb-seat-reservation-place-control-selected-backrest-background-hover: #7d000f;\n --sbb-seat-reservation-place-control-selected-backrest-background-focus: #5a000b;\n --sbb-seat-reservation-place-control-allocated-background-default: var(--sbb-color-milk);\n --sbb-seat-reservation-place-control-allocated-background-default: light-dark(\n var(--sbb-color-milk),\n var(--sbb-color-midnight)\n );\n --sbb-seat-reservation-place-control-free-backrest-high-contrast: CanvasText;\n --sbb-seat-reservation-place-control-free-background-high-contrast: Canvas;\n --sbb-seat-reservation-place-control-free-text-high-contrast: ButtonText;\n --sbb-seat-reservation-place-control-free-icon-high-contrast: CanvasText;\n --sbb-seat-reservation-place-control-allocated-backrest-high-contrast: GrayText;\n --sbb-seat-reservation-place-control-allocated-background-high-contrast: Canvas;\n --sbb-seat-reservation-place-control-allocated-text-high-contrast: GrayText;\n --sbb-seat-reservation-place-control-allocated-icon-high-contrast: GrayText;\n width: calc(var(--sbb-seat-reservation-place-control-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n height: calc(var(--sbb-seat-reservation-place-control-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n position: absolute;\n inset-block-start: calc(var(--sbb-seat-reservation-place-control-top) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n inset-inline-start: calc(var(--sbb-seat-reservation-place-control-left) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n font-weight: 300;\n cursor: var(--sbb-cursor-pointer);\n}\n\n:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-free-background-hover);\n}\n:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-free-backrest-background-hover);\n}\n:host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {\n background-color: var(--sbb-seat-reservation-place-control-free-background-hover);\n color: var(--sbb-seat-reservation-place-control-free-text);\n}\n@media (forced-colors: active) {\n :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-free-background-high-contrast);\n }\n :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);\n }\n :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-icon) {\n fill: var(--sbb-seat-reservation-place-control-free-icon-high-contrast);\n }\n :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-seatline) {\n stroke: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);\n }\n :host(:hover) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {\n forced-color-adjust: none;\n background-color: var(--sbb-seat-reservation-place-control-free-background-high-contrast);\n color: var(--sbb-seat-reservation-place-control-free-text-high-contrast);\n }\n}\n:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-selected-background-hover);\n}\n:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-selected-backrest-background-hover);\n}\n:host(:hover) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {\n background-color: var(--sbb-seat-reservation-place-control-selected-background-hover);\n color: var(--sbb-seat-reservation-place-control-selected-text);\n}\n\n:host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-free-background-focus);\n}\n:host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-free-backrest-background-focus);\n}\n:host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {\n background-color: var(--sbb-seat-reservation-place-control-free-background-focus);\n color: var(--sbb-seat-reservation-place-control-free-text);\n}\n@media (forced-colors: active) {\n :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-free-background-high-contrast);\n }\n :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);\n }\n :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-icon) {\n fill: var(--sbb-seat-reservation-place-control-free-icon-high-contrast);\n }\n :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) ::part(svg-seatline) {\n stroke: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);\n }\n :host(:focus-visible) .sbb-sr-place-ctrl--state-free:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {\n forced-color-adjust: none;\n background-color: var(--sbb-seat-reservation-place-control-free-background-high-contrast);\n color: var(--sbb-seat-reservation-place-control-free-text-high-contrast);\n }\n}\n\n:host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-selected-background-focus);\n}\n:host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-selected-backrest-background-focus);\n}\n:host(:active) .sbb-sr-place-ctrl--state-selected:not(.sbb-reservation-place-control--disabled) .sbb-sr-place-ctrl__text {\n background-color: var(--sbb-seat-reservation-place-control-selected-background-focus);\n color: var(--sbb-seat-reservation-place-control-selected-text);\n}\n\n:host(:dir(rtl)) :not(.sbb-sr-place-ctrl--type-bicycle,\n.sbb-sr-place-ctrl--orientation-90,\n.sbb-sr-place-ctrl--orientation-270,\n.sbb-sr-place-ctrl--state-selected) ::part(svg-place) {\n rotate: calc(180 * 1deg);\n}\n\n.sbb-sr-place-ctrl {\n width: max-content;\n position: relative;\n font-size: calc(var(--sbb-seat-reservation-place-control-text-size) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n.sbb-sr-place-ctrl--state-free ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-free-background-default);\n}\n.sbb-sr-place-ctrl--state-free ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-free-backrest-background-default);\n}\n.sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text {\n background-color: var(--sbb-seat-reservation-place-control-free-background-default);\n color: var(--sbb-seat-reservation-place-control-free-text);\n}\n@media (forced-colors: active) {\n .sbb-sr-place-ctrl--state-free ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-free-background-high-contrast);\n }\n .sbb-sr-place-ctrl--state-free ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);\n }\n .sbb-sr-place-ctrl--state-free ::part(svg-icon) {\n fill: var(--sbb-seat-reservation-place-control-free-icon-high-contrast);\n }\n .sbb-sr-place-ctrl--state-free ::part(svg-seatline) {\n stroke: var(--sbb-seat-reservation-place-control-free-backrest-high-contrast);\n }\n .sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text {\n forced-color-adjust: none;\n background-color: var(--sbb-seat-reservation-place-control-free-background-high-contrast);\n color: var(--sbb-seat-reservation-place-control-free-text-high-contrast);\n }\n}\n.sbb-sr-place-ctrl--state-selected ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-selected-background-default);\n}\n.sbb-sr-place-ctrl--state-selected ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-selected-backrest-background-default);\n}\n.sbb-sr-place-ctrl--state-selected .sbb-sr-place-ctrl__text {\n background-color: var(--sbb-seat-reservation-place-control-selected-background-default);\n color: var(--sbb-seat-reservation-place-control-selected-text);\n}\n.sbb-sr-place-ctrl--state-allocated ::part(svg-place), .sbb-sr-place-ctrl--state-restricted ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-allocated-background-default);\n}\n.sbb-sr-place-ctrl--state-allocated ::part(svg-backrest), .sbb-sr-place-ctrl--state-restricted ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-allocated-backrest-background-default);\n}\n.sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text, .sbb-sr-place-ctrl--state-restricted .sbb-sr-place-ctrl__text {\n background-color: var(--sbb-seat-reservation-place-control-allocated-background-default);\n color: var(--sbb-seat-reservation-place-control-allocated-text);\n}\n@media (forced-colors: active) {\n .sbb-sr-place-ctrl--state-allocated ::part(svg-place), .sbb-sr-place-ctrl--state-restricted ::part(svg-place) {\n fill: var(--sbb-seat-reservation-place-control-allocated-background-high-contrast);\n }\n .sbb-sr-place-ctrl--state-allocated ::part(svg-backrest), .sbb-sr-place-ctrl--state-restricted ::part(svg-backrest) {\n fill: var(--sbb-seat-reservation-place-control-allocated-backrest-high-contrast);\n }\n .sbb-sr-place-ctrl--state-allocated ::part(svg-icon), .sbb-sr-place-ctrl--state-restricted ::part(svg-icon) {\n fill: var(--sbb-seat-reservation-place-control-allocated-icon-high-contrast);\n }\n .sbb-sr-place-ctrl--state-allocated ::part(svg-seatline), .sbb-sr-place-ctrl--state-restricted ::part(svg-seatline) {\n stroke: var(--sbb-seat-reservation-place-control-allocated-backrest-high-contrast);\n }\n .sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text, .sbb-sr-place-ctrl--state-restricted .sbb-sr-place-ctrl__text {\n forced-color-adjust: none;\n background-color: var(--sbb-seat-reservation-place-control-allocated-background-high-contrast);\n color: var(--sbb-seat-reservation-place-control-allocated-text-high-contrast);\n }\n}\n.sbb-sr-place-ctrl--state-allocated, .sbb-sr-place-ctrl--state-restricted {\n cursor: not-allowed;\n}\n.sbb-sr-place-ctrl__text {\n overflow: hidden;\n display: none;\n position: absolute;\n inset-block-start: 50%;\n translate: -50% -50%;\n rotate: calc(var(--sbb-seat-reservation-place-control-text-rotation) * 1deg);\n font-family: var(--sbb-typo-font-family);\n font-size: 0.75em;\n line-height: initial;\n}\n.sbb-sr-place-ctrl--state-free .sbb-sr-place-ctrl__text, .sbb-sr-place-ctrl--state-allocated .sbb-sr-place-ctrl__text {\n display: block;\n}\n.sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text {\n inset-block-start: 65%;\n inset-inline-start: 50%;\n transform-origin: center 16%;\n font-size: 0.6875em;\n}\n.sbb-sr-place-ctrl--orientation-0.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text {\n inset-inline-start: 45%;\n}\n.sbb-sr-place-ctrl--orientation-90.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text {\n inset-block-start: 46%;\n inset-inline-start: 50%;\n}\n.sbb-sr-place-ctrl--orientation-180.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text {\n inset-inline-start: 55%;\n}\n.sbb-sr-place-ctrl--orientation-270.sbb-sr-place-ctrl--type-seat .sbb-sr-place-ctrl__text {\n inset-block-start: 52%;\n inset-inline-start: 52%;\n}\n\n:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-0 .sbb-sr-place-ctrl__text {\n inset-inline-start: 3%;\n}\n:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-90 .sbb-sr-place-ctrl__text, :host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-180 .sbb-sr-place-ctrl__text {\n inset-inline-start: 10%;\n}\n:host(:dir(rtl)) .sbb-sr-place-ctrl--orientation-270 .sbb-sr-place-ctrl__text {\n inset-inline-start: 5%;\n}\n:host(:dir(rtl)) .sbb-sr-place-ctrl--type-bicycle .sbb-sr-place-ctrl__text {\n inset-inline-start: -10%;\n}";
13
+ //#endregion
14
+ //#region src/elements-experimental/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.ts
15
+ SbbSeatReservationGraphicElement.define();
16
+ /**
17
+ * Output the graphic of a seat or a bicycle place as a control element.
18
+ */
19
+ var SbbSeatReservationPlaceControlElement = (() => {
20
+ let _classSuper = SbbButtonBaseElement;
21
+ let _placeType_decorators;
22
+ let _placeType_initializers = [];
23
+ let _placeType_extraInitializers = [];
24
+ let _state_decorators;
25
+ let _state_initializers = [];
26
+ let _state_extraInitializers = [];
27
+ let _travelDirection_decorators;
28
+ let _travelDirection_initializers = [];
29
+ let _travelDirection_extraInitializers = [];
30
+ let _propertyIds_decorators;
31
+ let _propertyIds_initializers = [];
32
+ let _propertyIds_extraInitializers = [];
33
+ let _text_decorators;
34
+ let _text_initializers = [];
35
+ let _text_extraInitializers = [];
36
+ let _deckIndex_decorators;
37
+ let _deckIndex_initializers = [];
38
+ let _deckIndex_extraInitializers = [];
39
+ let _coachIndex_decorators;
40
+ let _coachIndex_initializers = [];
41
+ let _coachIndex_extraInitializers = [];
42
+ let _preventClick_decorators;
43
+ let _preventClick_initializers = [];
44
+ let _preventClick_extraInitializers = [];
45
+ let _keyfocus_decorators;
46
+ let _keyfocus_initializers = [];
47
+ let _keyfocus_extraInitializers = [];
48
+ let _showTitleInfo_decorators;
49
+ let _showTitleInfo_initializers = [];
50
+ let _showTitleInfo_extraInitializers = [];
51
+ return class SbbSeatReservationPlaceControlElement extends _classSuper {
52
+ static {
53
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
54
+ _placeType_decorators = [forceType(), property({ attribute: "type" })];
55
+ _state_decorators = [forceType(), property({
56
+ attribute: "state",
57
+ reflect: true
58
+ })];
59
+ _travelDirection_decorators = [property({ attribute: "travel-direction" })];
60
+ _propertyIds_decorators = [property({
61
+ attribute: "propertyIds",
62
+ type: Array
63
+ })];
64
+ _text_decorators = [forceType(), property({ attribute: "text" })];
65
+ _deckIndex_decorators = [forceType(), property({
66
+ attribute: "deck-index",
67
+ type: Number
68
+ })];
69
+ _coachIndex_decorators = [forceType(), property({
70
+ attribute: "coach-index",
71
+ type: Number
72
+ })];
73
+ _preventClick_decorators = [forceType(), property({
74
+ attribute: "prevent-click",
75
+ type: Boolean
76
+ })];
77
+ _keyfocus_decorators = [forceType(), property({ attribute: "keyfocus" })];
78
+ _showTitleInfo_decorators = [forceType(), property({
79
+ type: Boolean,
80
+ useDefault: true
81
+ })];
82
+ __esDecorate(this, null, _placeType_decorators, {
83
+ kind: "accessor",
84
+ name: "placeType",
85
+ static: false,
86
+ private: false,
87
+ access: {
88
+ has: (obj) => "placeType" in obj,
89
+ get: (obj) => obj.placeType,
90
+ set: (obj, value) => {
91
+ obj.placeType = value;
92
+ }
93
+ },
94
+ metadata: _metadata
95
+ }, _placeType_initializers, _placeType_extraInitializers);
96
+ __esDecorate(this, null, _state_decorators, {
97
+ kind: "accessor",
98
+ name: "state",
99
+ static: false,
100
+ private: false,
101
+ access: {
102
+ has: (obj) => "state" in obj,
103
+ get: (obj) => obj.state,
104
+ set: (obj, value) => {
105
+ obj.state = value;
106
+ }
107
+ },
108
+ metadata: _metadata
109
+ }, _state_initializers, _state_extraInitializers);
110
+ __esDecorate(this, null, _travelDirection_decorators, {
111
+ kind: "accessor",
112
+ name: "travelDirection",
113
+ static: false,
114
+ private: false,
115
+ access: {
116
+ has: (obj) => "travelDirection" in obj,
117
+ get: (obj) => obj.travelDirection,
118
+ set: (obj, value) => {
119
+ obj.travelDirection = value;
120
+ }
121
+ },
122
+ metadata: _metadata
123
+ }, _travelDirection_initializers, _travelDirection_extraInitializers);
124
+ __esDecorate(this, null, _propertyIds_decorators, {
125
+ kind: "accessor",
126
+ name: "propertyIds",
127
+ static: false,
128
+ private: false,
129
+ access: {
130
+ has: (obj) => "propertyIds" in obj,
131
+ get: (obj) => obj.propertyIds,
132
+ set: (obj, value) => {
133
+ obj.propertyIds = value;
134
+ }
135
+ },
136
+ metadata: _metadata
137
+ }, _propertyIds_initializers, _propertyIds_extraInitializers);
138
+ __esDecorate(this, null, _text_decorators, {
139
+ kind: "accessor",
140
+ name: "text",
141
+ static: false,
142
+ private: false,
143
+ access: {
144
+ has: (obj) => "text" in obj,
145
+ get: (obj) => obj.text,
146
+ set: (obj, value) => {
147
+ obj.text = value;
148
+ }
149
+ },
150
+ metadata: _metadata
151
+ }, _text_initializers, _text_extraInitializers);
152
+ __esDecorate(this, null, _deckIndex_decorators, {
153
+ kind: "accessor",
154
+ name: "deckIndex",
155
+ static: false,
156
+ private: false,
157
+ access: {
158
+ has: (obj) => "deckIndex" in obj,
159
+ get: (obj) => obj.deckIndex,
160
+ set: (obj, value) => {
161
+ obj.deckIndex = value;
162
+ }
163
+ },
164
+ metadata: _metadata
165
+ }, _deckIndex_initializers, _deckIndex_extraInitializers);
166
+ __esDecorate(this, null, _coachIndex_decorators, {
167
+ kind: "accessor",
168
+ name: "coachIndex",
169
+ static: false,
170
+ private: false,
171
+ access: {
172
+ has: (obj) => "coachIndex" in obj,
173
+ get: (obj) => obj.coachIndex,
174
+ set: (obj, value) => {
175
+ obj.coachIndex = value;
176
+ }
177
+ },
178
+ metadata: _metadata
179
+ }, _coachIndex_initializers, _coachIndex_extraInitializers);
180
+ __esDecorate(this, null, _preventClick_decorators, {
181
+ kind: "accessor",
182
+ name: "preventClick",
183
+ static: false,
184
+ private: false,
185
+ access: {
186
+ has: (obj) => "preventClick" in obj,
187
+ get: (obj) => obj.preventClick,
188
+ set: (obj, value) => {
189
+ obj.preventClick = value;
190
+ }
191
+ },
192
+ metadata: _metadata
193
+ }, _preventClick_initializers, _preventClick_extraInitializers);
194
+ __esDecorate(this, null, _keyfocus_decorators, {
195
+ kind: "accessor",
196
+ name: "keyfocus",
197
+ static: false,
198
+ private: false,
199
+ access: {
200
+ has: (obj) => "keyfocus" in obj,
201
+ get: (obj) => obj.keyfocus,
202
+ set: (obj, value) => {
203
+ obj.keyfocus = value;
204
+ }
205
+ },
206
+ metadata: _metadata
207
+ }, _keyfocus_initializers, _keyfocus_extraInitializers);
208
+ __esDecorate(this, null, _showTitleInfo_decorators, {
209
+ kind: "accessor",
210
+ name: "showTitleInfo",
211
+ static: false,
212
+ private: false,
213
+ access: {
214
+ has: (obj) => "showTitleInfo" in obj,
215
+ get: (obj) => obj.showTitleInfo,
216
+ set: (obj, value) => {
217
+ obj.showTitleInfo = value;
218
+ }
219
+ },
220
+ metadata: _metadata
221
+ }, _showTitleInfo_initializers, _showTitleInfo_extraInitializers);
222
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
223
+ enumerable: true,
224
+ configurable: true,
225
+ writable: true,
226
+ value: _metadata
227
+ });
228
+ }
229
+ static {
230
+ this.elementName = "sbb-seat-reservation-place-control";
231
+ }
232
+ static {
233
+ this.styles = [boxSizingStyles, unsafeCSS(seat_reservation_place_control_default)];
234
+ }
235
+ static {
236
+ this.events = { selectplace: "selectplace" };
237
+ }
238
+ #placeType_accessor_storage;
239
+ /** placeType of the place, e.g. 'SEAT', 'BICYCLE' */
240
+ get placeType() {
241
+ return this.#placeType_accessor_storage;
242
+ }
243
+ set placeType(value) {
244
+ this.#placeType_accessor_storage = value;
245
+ }
246
+ #state_accessor_storage;
247
+ /** state of the place, e.g. 'FREE', 'SELECTED', 'BLOCKED' */
248
+ get state() {
249
+ return this.#state_accessor_storage;
250
+ }
251
+ set state(value) {
252
+ this.#state_accessor_storage = value;
253
+ }
254
+ #travelDirection_accessor_storage;
255
+ /** direction of a whole train, used to compute an orientation of a place */
256
+ get travelDirection() {
257
+ return this.#travelDirection_accessor_storage;
258
+ }
259
+ set travelDirection(value) {
260
+ this.#travelDirection_accessor_storage = value;
261
+ }
262
+ #propertyIds_accessor_storage;
263
+ /** property ids of the place, to display more info about the place */
264
+ get propertyIds() {
265
+ return this.#propertyIds_accessor_storage;
266
+ }
267
+ set propertyIds(value) {
268
+ this.#propertyIds_accessor_storage = value;
269
+ }
270
+ #text_accessor_storage;
271
+ /** label of the place, e.g. '1A', '2B' */
272
+ get text() {
273
+ return this.#text_accessor_storage;
274
+ }
275
+ set text(value) {
276
+ this.#text_accessor_storage = value;
277
+ }
278
+ #deckIndex_accessor_storage;
279
+ /** Deck Index Prop to identifier the right place to deck */
280
+ get deckIndex() {
281
+ return this.#deckIndex_accessor_storage;
282
+ }
283
+ set deckIndex(value) {
284
+ this.#deckIndex_accessor_storage = value;
285
+ }
286
+ #coachIndex_accessor_storage;
287
+ /** Coach Index Prop to identifier the right place to coach */
288
+ get coachIndex() {
289
+ return this.#coachIndex_accessor_storage;
290
+ }
291
+ set coachIndex(value) {
292
+ this.#coachIndex_accessor_storage = value;
293
+ }
294
+ #preventClick_accessor_storage;
295
+ /** Prevent click prop prevent any place action */
296
+ get preventClick() {
297
+ return this.#preventClick_accessor_storage;
298
+ }
299
+ set preventClick(value) {
300
+ this.#preventClick_accessor_storage = value;
301
+ }
302
+ #keyfocus_accessor_storage;
303
+ /** Set the place focus outline style */
304
+ get keyfocus() {
305
+ return this.#keyfocus_accessor_storage;
306
+ }
307
+ set keyfocus(value) {
308
+ this.#keyfocus_accessor_storage = value;
309
+ }
310
+ #showTitleInfo_accessor_storage;
311
+ /** Disable the mouse over title information */
312
+ get showTitleInfo() {
313
+ return this.#showTitleInfo_accessor_storage;
314
+ }
315
+ set showTitleInfo(value) {
316
+ this.#showTitleInfo_accessor_storage = value;
317
+ }
318
+ constructor() {
319
+ super();
320
+ this.#placeType_accessor_storage = __runInitializers(this, _placeType_initializers, "SEAT");
321
+ this.#state_accessor_storage = (__runInitializers(this, _placeType_extraInitializers), __runInitializers(this, _state_initializers, "FREE"));
322
+ this.#travelDirection_accessor_storage = (__runInitializers(this, _state_extraInitializers), __runInitializers(this, _travelDirection_initializers, "NONE"));
323
+ this.#propertyIds_accessor_storage = (__runInitializers(this, _travelDirection_extraInitializers), __runInitializers(this, _propertyIds_initializers, []));
324
+ this.#text_accessor_storage = (__runInitializers(this, _propertyIds_extraInitializers), __runInitializers(this, _text_initializers, ""));
325
+ this.#deckIndex_accessor_storage = (__runInitializers(this, _text_extraInitializers), __runInitializers(this, _deckIndex_initializers, null));
326
+ this.#coachIndex_accessor_storage = (__runInitializers(this, _deckIndex_extraInitializers), __runInitializers(this, _coachIndex_initializers, null));
327
+ this.#preventClick_accessor_storage = (__runInitializers(this, _coachIndex_extraInitializers), __runInitializers(this, _preventClick_initializers, false));
328
+ this.#keyfocus_accessor_storage = (__runInitializers(this, _preventClick_extraInitializers), __runInitializers(this, _keyfocus_initializers, "unfocus"));
329
+ this.#showTitleInfo_accessor_storage = (__runInitializers(this, _keyfocus_extraInitializers), __runInitializers(this, _showTitleInfo_initializers, false));
330
+ this._optionalScreenreaderInfo = (__runInitializers(this, _showTitleInfo_extraInitializers), "");
331
+ this._language = new SbbLanguageController(this);
332
+ this.addEventListener("click", () => this._selectPlace());
333
+ }
334
+ willUpdate(changedProperties) {
335
+ super.willUpdate(changedProperties);
336
+ if (changedProperties.has("keyfocus")) {
337
+ if (this.keyfocus === "focus") this.focus();
338
+ }
339
+ if (changedProperties.has("showTitleInfo")) {
340
+ if (!this.showTitleInfo) this.title = "";
341
+ }
342
+ }
343
+ render() {
344
+ const name = this._getPlaceSvg(this.placeType, this.state);
345
+ const type = this.type.toLowerCase();
346
+ const state = this.state.toLowerCase();
347
+ const text = this.text;
348
+ const width = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-width");
349
+ const height = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-height");
350
+ const rotation = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-rotation");
351
+ const textRotation = this.style?.getPropertyValue("--sbb-seat-reservation-place-control-text-rotation");
352
+ const inverseRotationPlaceCheckIcon = Number(textRotation) - Number(rotation);
353
+ const disabledClass = this.preventClick ? "sbb-reservation-place-control--disabled" : null;
354
+ if (this.showTitleInfo) this.title = this._getTitleDescriptionPlace(rotation);
355
+ else this._optionalScreenreaderInfo = this._getTitleDescriptionPlace(rotation);
356
+ this.tabIndex = -1;
357
+ return html`
358
+ <div
359
+ part="sbb-sr-place-part"
360
+ class="sbb-sr-place-ctrl sbb-sr-place-ctrl--orientation-${rotation} sbb-sr-place-ctrl--state-${state} sbb-sr-place-ctrl--type-${type} ${disabledClass}"
361
+ >
362
+ <sbb-seat-reservation-graphic
363
+ style=${styleMap({
364
+ "--sbb-seat-reservation-graphic-width": width,
365
+ "--sbb-seat-reservation-graphic-height": height,
366
+ "--sbb-seat-reservation-graphic-rotation": rotation,
367
+ "--sbb-seat-reservation-graphic-inverse-rotation": inverseRotationPlaceCheckIcon
368
+ })}
369
+ .name=${name}
370
+ aria-hidden="true"
371
+ ></sbb-seat-reservation-graphic>
372
+ <span ${this.text ?? nothing} class="sbb-sr-place-ctrl__text" aria-hidden="true"
373
+ >${text}</span
374
+ >
375
+ ${!this.showTitleInfo ? html`<sbb-screen-reader-only id="${this.id}"
376
+ >${this._optionalScreenreaderInfo}</sbb-screen-reader-only
377
+ >` : nothing}
378
+ </div>
379
+ `;
380
+ }
381
+ _getPlaceSvg(type, state) {
382
+ return `PLACE_${type}_${state}`;
383
+ }
384
+ _getTitleDescriptionPlace(rotation) {
385
+ let description = getI18nSeatReservation("PLACE_CONTROL_" + this.type + "_" + this.state, this._language.current, [this.text]);
386
+ const relativeTravelDirection = this._getRelativeTravelDirection(rotation);
387
+ if (this.propertyIds.length || relativeTravelDirection) {
388
+ description += ". " + getI18nSeatReservation("PLACE_PROPERTY", this._language.current).concat(": ");
389
+ description += [relativeTravelDirection, ...this.propertyIds].map((propertyId) => getI18nSeatReservation("PLACE_PROPERTIES." + propertyId, this._language.current)).filter((value) => value).join(", ");
390
+ }
391
+ return description;
392
+ }
393
+ _getRelativeTravelDirection(rotationValue) {
394
+ if (!this.travelDirection || this.travelDirection === "NONE" || this.placeType !== "SEAT" || !rotationValue) return void 0;
395
+ const rotation = Number(rotationValue);
396
+ if (rotation === 90 || rotation === 270) return "TRAVEL_DIRECTION_TRANSVERSELY";
397
+ if (rotation === 0 && this.travelDirection === "RIGHT" || rotation === 180 && this.travelDirection === "LEFT") return "TRAVEL_DIRECTION_IN_DIRECTION";
398
+ else if (rotation === 0 || rotation === 180) return "TRAVEL_DIRECTION_IN_OPPOSITE_DIRECTION";
399
+ }
400
+ /** If the place selectable, we emit the placeSelection object which contains infos to the place state */
401
+ _selectPlace() {
402
+ if ((this.state === "FREE" || this.state === "SELECTED") && !this.preventClick) {
403
+ this.state = this.state === "FREE" ? "SELECTED" : "FREE";
404
+ const placeSelection = {
405
+ id: this.id,
406
+ deckIndex: this.deckIndex,
407
+ coachIndex: this.coachIndex,
408
+ number: this.text,
409
+ state: this.state,
410
+ placeType: this.placeType
411
+ };
412
+ /**
413
+ * @type {CustomEvent<PlaceSelection>}
414
+ * Emits when a place was selected via user interaction and returns a
415
+ * PlaceSelection object with necessary place information.
416
+ */
417
+ this.dispatchEvent(new CustomEvent("selectplace", {
418
+ detail: placeSelection,
419
+ bubbles: true,
420
+ composed: true
421
+ }));
422
+ }
423
+ }
424
+ };
425
+ })();
426
+ //#endregion
427
+ export { SbbSeatReservationPlaceControlElement as t };
428
+
429
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC1DTTllZklkNy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wvc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLW1peGlucycgYXMgc2JiLXNyLW1peGlucztcbkB1c2UgJy4uL2NvbW1vbi9zdHlsZXMvc2VhdC1yZXNlcnZhdGlvbi1mdW5jdGlvbnMnIGFzIHNiYi1zci1mdW5jdGlvbnM7XG5cbi8vIERlcGVuZHMgb24gdGhlIHBsYWNlIHN0YXRlIGFuZCBjdXJyZW50IGV2ZW50IChob3Zlcnxmb2N1cyksIHRoZSBiYWNrZ3JvdW5kIGFuZCBmaWxsIGNvbG9ycyBvZiB0aGUgcGxhY2UsXG4vLyBiYWNrcmVzdCBvZiBwbGFjZSBhbmQgdGhlIHRleHQgY29sb3IgYXJlIGhhbmRsZWQgYnkgY29sb3JpemVQbGFjZSBmdW5jdGlvbi5cbkBtaXhpbiBjb2xvcml6ZVBsYWNlKCRzdGF0ZSwgJGV2ZW50KSB7XG4gIDo6cGFydChzdmctcGxhY2UpIHtcbiAgICBmaWxsOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS1iYWNrZ3JvdW5kLSN7JGV2ZW50fSk7XG4gIH1cblxuICA6OnBhcnQoc3ZnLWJhY2tyZXN0KSB7XG4gICAgZmlsbDogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0jeyRzdGF0ZX0tYmFja3Jlc3QtYmFja2dyb3VuZC0jeyRldmVudH0pO1xuICB9XG5cbiAgLnNiYi1zci1wbGFjZS1jdHJsX190ZXh0IHtcbiAgICAvLyBkb250IHVzZSB0cmFuc3BhcmVudCBvciByZW1vdmUgYmFja2dyb3VuZCwgb3RoZXJ3aXNlIHRoZXJlIGFyZSBhMTF5IHZpb2xhdGlvbnMgcmVnYXJkaW5nXG4gICAgLy8gaW5zdWZmaWNpZW50IGNvbG9yIGNvbnRyYXN0XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0jeyRzdGF0ZX0tYmFja2dyb3VuZC0jeyRldmVudH0pO1xuICAgIGNvbG9yOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS10ZXh0KTtcbiAgfVxuXG4gIEBpZiAkc3RhdGUgIT0gJ3NlbGVjdGVkJyB7XG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgOjpwYXJ0KHN2Zy1wbGFjZSkge1xuICAgICAgICBmaWxsOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS1iYWNrZ3JvdW5kLWhpZ2gtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICA6OnBhcnQoc3ZnLWJhY2tyZXN0KSB7XG4gICAgICAgIGZpbGw6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtI3skc3RhdGV9LWJhY2tyZXN0LWhpZ2gtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICA6OnBhcnQoc3ZnLWljb24pIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0jeyRzdGF0ZX0taWNvbi1oaWdoLWNvbnRyYXN0KTtcbiAgICAgIH1cblxuICAgICAgOjpwYXJ0KHN2Zy1zZWF0bGluZSkge1xuICAgICAgICBzdHJva2U6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtI3skc3RhdGV9LWJhY2tyZXN0LWhpZ2gtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICAuc2JiLXNyLXBsYWNlLWN0cmxfX3RleHQge1xuICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoXG4gICAgICAgICAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS1iYWNrZ3JvdW5kLWhpZ2gtY29udHJhc3RcbiAgICAgICAgKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtI3skc3RhdGV9LXRleHQtaGlnaC1jb250cmFzdCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiRkaXNhYmxlZDogJy5zYmItcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0tZGlzYWJsZWQnO1xuXG46aG9zdCB7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNjYWxlLXZhbHVlOiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGg6IDE2O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtaGVpZ2h0OiAxNjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRvcDogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWxlZnQ6IDA7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1yb3RhdGlvbjogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb246IDA7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNpemU6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNjYWxlLXZhbHVlLCAxKSAqIDAuNVxuICApO1xuXG4gIC8vIENvbG9yIGRlZmluaXRpb24gZm9yIHRleHRcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWRlZmF1bHQtdGV4dDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItYmxhY2spLFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWhvdmVyLXRleHQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWlyb24pLFxuICAgIHZhcigtLXNiYi1jb2xvci1zaWx2ZXIpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mb2N1cy10ZXh0OiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSxcbiAgICB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1hbGxvY2F0ZWQtdGV4dDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3Itc21va2UpLFxuICAgIHZhcigtLXNiYi1jb2xvci1tZXRhbClcbiAgKTtcblxuICAvLyBDb2xvciBiYWNrZ3JvdW5kIGRlZmluaXRpb24gZm9yIHBsYWNlIHdpdGggc3RhdGUgRlJFRVxuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrZ3JvdW5kLWRlZmF1bHQ6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTIpO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrZ3JvdW5kLWhvdmVyOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1jbG91ZCksXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pZG5pZ2h0KVxuICApO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrZ3JvdW5kLWZvY3VzOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1zaWx2ZXIpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjaylcbiAgKTtcblxuICAvLyBDb2xvciBiYWNrZ3JvdW5kIGRlZmluaXRpb24gZm9yIGJhY2tyZXN0IHdpdGggc3RhdGUgRlJFRVxuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrcmVzdC1iYWNrZ3JvdW5kLWRlZmF1bHQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tyZXN0LWJhY2tncm91bmQtaG92ZXI6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tyZXN0LWJhY2tncm91bmQtZm9jdXM6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gQ29sb3IgYmFja2dyb3VuZCBkZWZpbml0aW9uIGZvciBwbGFjZSB3aXRoIHN0YXRlIFNFTEVDVEVEXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1zZWxlY3RlZC1iYWNrZ3JvdW5kLWRlZmF1bHQ6IHZhcigtLXNiYi1jb2xvci1wcmltYXJ5KTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tncm91bmQtaG92ZXI6IHZhcigtLXNiYi1jb2xvci1wcmltYXJ5MTI1KTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tncm91bmQtZm9jdXM6IHZhcigtLXNiYi1jb2xvci1wcmltYXJ5MTUwKTtcblxuICAvLyBDb2xvciBiYWNrZ3JvdW5kIGRlZmluaXRpb24gZm9yIGJhY2tyZXN0IHdpdGggc3RhdGUgU0VMRUNURURcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tyZXN0LWJhY2tncm91bmQtZGVmYXVsdDogdmFyKFxuICAgIC0tc2JiLWNvbG9yLXByaW1hcnkxNTBcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tyZXN0LWJhY2tncm91bmQtaG92ZXI6ICM3ZDAwMGY7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1zZWxlY3RlZC1iYWNrcmVzdC1iYWNrZ3JvdW5kLWZvY3VzOiAjNWEwMDBiO1xuXG4gIC8vIENvbG9yIGJhY2tncm91bmQgZGVmaW5pdGlvbiBmb3IgcGxhY2Ugd2l0aCBzdGF0ZSBBTExPQ0FURURcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC1iYWNrZ3JvdW5kLWRlZmF1bHQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pbGspLFxuICAgIHZhcigtLXNiYi1jb2xvci1taWRuaWdodClcbiAgKTtcblxuICAvLyBDb2xvciBkZWZpbml0aW9ucyBmb3IgaGlnaCBjb250cmFzdCBtb2RlXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tyZXN0LWhpZ2gtY29udHJhc3Q6IENhbnZhc1RleHQ7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tncm91bmQtaGlnaC1jb250cmFzdDogQ2FudmFzO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS10ZXh0LWhpZ2gtY29udHJhc3Q6IEJ1dHRvblRleHQ7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWljb24taGlnaC1jb250cmFzdDogQ2FudmFzVGV4dDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC1iYWNrcmVzdC1oaWdoLWNvbnRyYXN0OiBHcmF5VGV4dDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC1iYWNrZ3JvdW5kLWhpZ2gtY29udHJhc3Q6IENhbnZhcztcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC10ZXh0LWhpZ2gtY29udHJhc3Q6IEdyYXlUZXh0O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtYWxsb2NhdGVkLWljb24taGlnaC1jb250cmFzdDogR3JheVRleHQ7XG5cbiAgd2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGgpKTtcbiAgaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWhlaWdodCkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRvcCkpO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtbGVmdCkpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItcG9pbnRlcik7XG59XG5cbjpob3N0KDpob3Zlcikge1xuICAuc2JiLXNyLXBsYWNlLWN0cmwge1xuICAgICYtLXN0YXRlLWZyZWU6bm90KCN7JGRpc2FibGVkfSkge1xuICAgICAgQGluY2x1ZGUgY29sb3JpemVQbGFjZSgnZnJlZScsICdob3ZlcicpO1xuICAgIH1cblxuICAgICYtLXN0YXRlLXNlbGVjdGVkOm5vdCgjeyRkaXNhYmxlZH0pIHtcbiAgICAgIEBpbmNsdWRlIGNvbG9yaXplUGxhY2UoJ3NlbGVjdGVkJywgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG59XG5cbjpob3N0KDpmb2N1cy12aXNpYmxlKSB7XG4gIC5zYmItc3ItcGxhY2UtY3RybCB7XG4gICAgJi0tc3RhdGUtZnJlZTpub3QoI3skZGlzYWJsZWR9KSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdmcmVlJywgJ2ZvY3VzJyk7XG4gICAgfVxuICB9XG59XG5cbjpob3N0KDphY3RpdmUpIHtcbiAgLnNiYi1zci1wbGFjZS1jdHJsIHtcbiAgICAmLS1zdGF0ZS1zZWxlY3RlZDpub3QoI3skZGlzYWJsZWR9KSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdzZWxlY3RlZCcsICdmb2N1cycpO1xuICAgIH1cbiAgfVxufVxuXG4vLyByb3RhdGVzIHRoZSBET00tcGFydCBcInN2Zy1wbGFjZVwiIGJ5IDE4MCBkZWdyZWVzIGlmIHRoZSBob3N0IGlzIGluIFJUTCBtb2RlLlxuQGluY2x1ZGUgc2JiLXNyLW1peGlucy5yb3RhdGUtZG9tLXBhcnQoc3ZnLXBsYWNlKTtcblxuLnNiYi1zci1wbGFjZS1jdHJsIHtcbiAgJHJvb3Q6ICY7XG5cbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0odmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNpemUpKTtcblxuICAmLS1zdGF0ZS1mcmVlIHtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdmcmVlJywgJ2RlZmF1bHQnKTtcbiAgfVxuXG4gICYtLXN0YXRlLXNlbGVjdGVkIHtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdzZWxlY3RlZCcsICdkZWZhdWx0Jyk7XG4gIH1cblxuICAmLS1zdGF0ZS1hbGxvY2F0ZWQsXG4gICYtLXN0YXRlLXJlc3RyaWN0ZWQge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplUGxhY2UoJ2FsbG9jYXRlZCcsICdkZWZhdWx0Jyk7XG5cbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJl9fdGV4dCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogNTAlO1xuICAgIHRyYW5zbGF0ZTogLTUwJSAtNTAlO1xuICAgIHJvdGF0ZTogY2FsYyh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb24pICogMWRlZyk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXNiYi10eXBvLWZvbnQtZmFtaWx5KTtcblxuICAgIC8vIGRvbnQgdXNlIHNiYi5weC10by1yZW0gb3IgLS1zYmItdHlwby1zY2FsZS0wLTc1eDsgd2Ugd2FudCBcImVtXCIgaW4gdGhpcyBjYXNlIVxuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuXG4gICAgI3skcm9vdH0tLXN0YXRlLWZyZWUgJixcbiAgICAjeyRyb290fS0tc3RhdGUtYWxsb2NhdGVkICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgI3skcm9vdH0tLXR5cGUtYmljeWNsZSAmIHtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiA2NSU7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDUwJTtcblxuICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdHJhbnNmb3JtIG9yaWdpbiBwb2ludCBmb3IgYmljeWNsZSBwbGFjZXMgdGV4dCAobmVjZXNzYXJ5IGZvciByb3RhdGlvbiksXG4gICAgICAvLyBiZWNhdXNlIHRoZSBwb3NpdGlvbiBvZiBwbGFjZSBudW1iZXIgaXMgbm90IGNlbnRlcmVkIGluIHRoZSBwbGFjZSBhcmVhLlxuICAgICAgLy8gVGhlIHZhbHVlIDE2JSBpcyB0aGUgb3B0aW1hbCB2YWx1ZSBmb3IgdGhlIHJvdGF0aW9uIG9mZnNldCBvbiB0aGUgb3JpZ2luIHktYXhpcy5cbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciAxNiU7XG5cbiAgICAgIC8vIHVzZSBhIHNtYWxsZXIgZm9udC1zaXplIHRvIGF2b2lkIGExMXkgdmlvbGF0aW9uXG4gICAgICBmb250LXNpemU6IDAuNjg3NWVtO1xuICAgIH1cblxuICAgIC8vIERlcGVuZGluZyBvbiB0aGUgcGxhY2Ugb3JpZW50YXRpb24sIG1pbm9yIHBvc2l0aW9uaW5nIGFkanVzdG1lbnRzIG1heSBuZWVkIHRvIGJlIG1hZGUgdG8gY2VudGVyIHRoZSB0ZXh0LFxuICAgIC8vIGJlY2F1c2Ugb2YgdGhlIHdpZHRoIG9mIHRoZSBTVkcgd2hpY2ggaXMgbm90IHNxdWFyZVxuICAgICN7JHJvb3R9LS1vcmllbnRhdGlvbi0wI3skcm9vdH0tLXR5cGUtc2VhdCAmIHtcbiAgICAgIGluc2V0LWlubGluZS1zdGFydDogNDUlO1xuICAgIH1cblxuICAgICN7JHJvb3R9LS1vcmllbnRhdGlvbi05MCN7JHJvb3R9LS10eXBlLXNlYXQgJiB7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogNDYlO1xuICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiA1MCU7XG4gICAgfVxuXG4gICAgI3skcm9vdH0tLW9yaWVudGF0aW9uLTE4MCN7JHJvb3R9LS10eXBlLXNlYXQgJiB7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDU1JTtcbiAgICB9XG5cbiAgICAjeyRyb290fS0tb3JpZW50YXRpb24tMjcwI3skcm9vdH0tLXR5cGUtc2VhdCAmIHtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiA1MiU7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDUyJTtcbiAgICB9XG4gIH1cbn1cblxuOmhvc3QoOmRpcihydGwpKSB7XG4gIC8vIEZvciBSVEwsIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSByaWdodCBzaWRlXG4gIC5zYmItc3ItcGxhY2UtY3RybCB7XG4gICAgJi0tb3JpZW50YXRpb24tMCAuc2JiLXNyLXBsYWNlLWN0cmxfX3RleHQge1xuICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAzJTtcbiAgICB9XG5cbiAgICAmLS1vcmllbnRhdGlvbi05MCAuc2JiLXNyLXBsYWNlLWN0cmxfX3RleHQsXG4gICAgJi0tb3JpZW50YXRpb24tMTgwIC5zYmItc3ItcGxhY2UtY3RybF9fdGV4dCB7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDEwJTtcbiAgICB9XG5cbiAgICAmLS1vcmllbnRhdGlvbi0yNzAgLnNiYi1zci1wbGFjZS1jdHJsX190ZXh0IHtcbiAgICAgIGluc2V0LWlubGluZS1zdGFydDogNSU7XG4gICAgfVxuXG4gICAgJi0tdHlwZS1iaWN5Y2xlIC5zYmItc3ItcGxhY2UtY3RybF9fdGV4dCB7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IC0xMCU7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBTYmJCdXR0b25CYXNlRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcy5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHN0eWxlTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvc3R5bGUtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMudHMnO1xuaW1wb3J0IHR5cGUgeyBQbGFjZVNlbGVjdGlvbiwgUGxhY2VTdGF0ZSwgUGxhY2VUeXBlLCBUcmF2ZWxEaXJlY3Rpb24gfSBmcm9tICcuLi9jb21tb24vdHlwZXMudHMnO1xuaW1wb3J0IHsgU2JiU2VhdFJlc2VydmF0aW9uR3JhcGhpY0VsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMvc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC5zY3NzP2lubGluZSc7XG5cblNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50LmRlZmluZSgpO1xuXG50eXBlIFRyYXZlbERpcmVjdGlvbkkxOG5LZXkgPVxuICB8ICdUUkFWRUxfRElSRUNUSU9OX0lOX0RJUkVDVElPTidcbiAgfCAnVFJBVkVMX0RJUkVDVElPTl9JTl9PUFBPU0lURV9ESVJFQ1RJT04nXG4gIHwgJ1RSQVZFTF9ESVJFQ1RJT05fVFJBTlNWRVJTRUxZJztcblxuLyoqXG4gKiBPdXRwdXQgdGhlIGdyYXBoaWMgb2YgYSBzZWF0IG9yIGEgYmljeWNsZSBwbGFjZSBhcyBhIGNvbnRyb2wgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQgZXh0ZW5kcyBTYmJCdXR0b25CYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdHBsYWNlOiAnc2VsZWN0cGxhY2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBwbGFjZVR5cGUgb2YgdGhlIHBsYWNlLCBlLmcuICdTRUFUJywgJ0JJQ1lDTEUnICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0eXBlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcGxhY2VUeXBlOiBQbGFjZVR5cGUgPSAnU0VBVCc7XG5cbiAgLyoqIHN0YXRlIG9mIHRoZSBwbGFjZSwgZS5nLiAnRlJFRScsICdTRUxFQ1RFRCcsICdCTE9DS0VEJyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc3RhdGUnLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzdGF0ZTogUGxhY2VTdGF0ZSA9ICdGUkVFJztcblxuICAvKiogZGlyZWN0aW9uIG9mIGEgd2hvbGUgdHJhaW4sIHVzZWQgdG8gY29tcHV0ZSBhbiBvcmllbnRhdGlvbiBvZiBhIHBsYWNlICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RyYXZlbC1kaXJlY3Rpb24nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmF2ZWxEaXJlY3Rpb246IFRyYXZlbERpcmVjdGlvbiA9ICdOT05FJztcblxuICAvKiogcHJvcGVydHkgaWRzIG9mIHRoZSBwbGFjZSwgdG8gZGlzcGxheSBtb3JlIGluZm8gYWJvdXQgdGhlIHBsYWNlICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3Byb3BlcnR5SWRzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHByb3BlcnR5SWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKiBsYWJlbCBvZiB0aGUgcGxhY2UsIGUuZy4gJzFBJywgJzJCJyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGV4dCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIHRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBEZWNrIEluZGV4IFByb3AgdG8gaWRlbnRpZmllciB0aGUgcmlnaHQgcGxhY2UgdG8gZGVjayAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGVjay1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGVja0luZGV4OiBudW1iZXIgPSBudWxsITtcblxuICAvKiogQ29hY2ggSW5kZXggUHJvcCB0byBpZGVudGlmaWVyIHRoZSByaWdodCBwbGFjZSB0byBjb2FjaCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY29hY2gtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSW5kZXg6IG51bWJlciA9IG51bGwhO1xuXG4gIC8qKiBQcmV2ZW50IGNsaWNrIHByb3AgcHJldmVudCBhbnkgcGxhY2UgYWN0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmV2ZW50LWNsaWNrJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJldmVudENsaWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFNldCB0aGUgcGxhY2UgZm9jdXMgb3V0bGluZSBzdHlsZSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAna2V5Zm9jdXMnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBrZXlmb2N1czogc3RyaW5nID0gJ3VuZm9jdXMnO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBtb3VzZSBvdmVyIHRpdGxlIGluZm9ybWF0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCB1c2VEZWZhdWx0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzaG93VGl0bGVJbmZvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uYWxTY3JlZW5yZWFkZXJJbmZvOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuX3NlbGVjdFBsYWNlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdrZXlmb2N1cycpKSB7XG4gICAgICBpZiAodGhpcy5rZXlmb2N1cyA9PT0gJ2ZvY3VzJykge1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgdGl0bGUgd2FzIHNob3duIG9uY2UsIHdlIGNhbm5vdCB1bnNldCBpdCBjb21wbGV0ZWx5LCBidXQgdGhpc1xuICAgIC8vIGJlaGF2aW9yIHNob3VsZCBub3QgaGFwcGVuIHZlcnkgb2Z0ZW4gYXMgdGhlIHRpdGxlIHNob3VsZFxuICAgIC8vIG5vdCBzd2l0Y2ggZnJvbSBvbiB0byBvZmYgYW5kIG9uIGFnYWluXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2hvd1RpdGxlSW5mbycpKSB7XG4gICAgICBpZiAoIXRoaXMuc2hvd1RpdGxlSW5mbykge1xuICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0gdGhpcy5fZ2V0UGxhY2VTdmcodGhpcy5wbGFjZVR5cGUsIHRoaXMuc3RhdGUpO1xuICAgIGNvbnN0IHR5cGU6IHN0cmluZyA9IHRoaXMudHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHN0YXRlOiBzdHJpbmcgPSB0aGlzLnN0YXRlLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdGV4dDogc3RyaW5nIHwgbnVsbCA9IHRoaXMudGV4dDtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC13aWR0aCcpO1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1oZWlnaHQnKTtcbiAgICBjb25zdCByb3RhdGlvbiA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1yb3RhdGlvbicpO1xuICAgIGNvbnN0IHRleHRSb3RhdGlvbiA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb24nLFxuICAgICk7XG4gICAgY29uc3QgaW52ZXJzZVJvdGF0aW9uUGxhY2VDaGVja0ljb24gPSBOdW1iZXIodGV4dFJvdGF0aW9uKSAtIE51bWJlcihyb3RhdGlvbik7XG4gICAgY29uc3QgZGlzYWJsZWRDbGFzcyA9IHRoaXMucHJldmVudENsaWNrID8gJ3NiYi1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLS1kaXNhYmxlZCcgOiBudWxsO1xuXG4gICAgLy8gb25seSBzZXQgdGl0bGUgdG8gdGhlIFNiYkJ1dHRvbkJhc2VFbGVtZW50IGlmIHJlcXVlc3RlZDsgb3RoZXJ3aXNlIHByb3ZpZGUgdGhlIHRpdGxlXG4gICAgLy8gaW5mb3JtYXRpb24gdG8gc2NyZWVuIHJlYWRlcnMgdmlhIGFuIGFkZGl0aW9uYWwgZWxlbWVudFxuICAgIGlmICh0aGlzLnNob3dUaXRsZUluZm8pIHtcbiAgICAgIHRoaXMudGl0bGUgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2Uocm90YXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vcHRpb25hbFNjcmVlbnJlYWRlckluZm8gPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2Uocm90YXRpb24pO1xuICAgIH1cblxuICAgIHRoaXMudGFiSW5kZXggPSAtMTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBwYXJ0PVwic2JiLXNyLXBsYWNlLXBhcnRcIlxuICAgICAgICBjbGFzcz1cInNiYi1zci1wbGFjZS1jdHJsIHNiYi1zci1wbGFjZS1jdHJsLS1vcmllbnRhdGlvbi0ke3JvdGF0aW9ufSBzYmItc3ItcGxhY2UtY3RybC0tc3RhdGUtJHtzdGF0ZX0gc2JiLXNyLXBsYWNlLWN0cmwtLXR5cGUtJHt0eXBlfSAke2Rpc2FibGVkQ2xhc3N9XCJcbiAgICAgID5cbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgnOiB3aWR0aCxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogaGVpZ2h0LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1yb3RhdGlvbic6IHJvdGF0aW9uLFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1pbnZlcnNlLXJvdGF0aW9uJzogaW52ZXJzZVJvdGF0aW9uUGxhY2VDaGVja0ljb24sXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgLm5hbWU9JHtuYW1lfVxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICAgIDxzcGFuICR7dGhpcy50ZXh0ID8/IG5vdGhpbmd9IGNsYXNzPVwic2JiLXNyLXBsYWNlLWN0cmxfX3RleHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID4ke3RleHR9PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgJHshdGhpcy5zaG93VGl0bGVJbmZvXG4gICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGlkPVwiJHt0aGlzLmlkfVwiXG4gICAgICAgICAgICAgID4ke3RoaXMuX29wdGlvbmFsU2NyZWVucmVhZGVySW5mb308L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgID5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBsYWNlU3ZnKHR5cGU6IFBsYWNlVHlwZSwgc3RhdGU6IFBsYWNlU3RhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlIGFzIHN0cmluZztcbiAgICBjb25zdCBzdGF0ZVN0cmluZyA9IHN0YXRlIGFzIHN0cmluZztcbiAgICByZXR1cm4gYFBMQUNFXyR7dHlwZVN0cmluZ31fJHtzdGF0ZVN0cmluZ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGl0bGVEZXNjcmlwdGlvblBsYWNlKHJvdGF0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gJ1BMQUNFX0NPTlRST0xfJyArIHRoaXMudHlwZSArICdfJyArIHRoaXMuc3RhdGU7XG4gICAgbGV0IGRlc2NyaXB0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbih0cmFuc2xhdGlvbktleSwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW3RoaXMudGV4dF0pO1xuXG4gICAgY29uc3QgcmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24gPSB0aGlzLl9nZXRSZWxhdGl2ZVRyYXZlbERpcmVjdGlvbihyb3RhdGlvbik7XG5cbiAgICBpZiAodGhpcy5wcm9wZXJ0eUlkcy5sZW5ndGggfHwgcmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24pIHtcbiAgICAgIGRlc2NyaXB0aW9uICs9XG4gICAgICAgICcuICcgKyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdQTEFDRV9QUk9QRVJUWScsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLmNvbmNhdCgnOiAnKTtcblxuICAgICAgZGVzY3JpcHRpb24gKz0gW3JlbGF0aXZlVHJhdmVsRGlyZWN0aW9uLCAuLi50aGlzLnByb3BlcnR5SWRzXVxuICAgICAgICAubWFwKChwcm9wZXJ0eUlkKSA9PlxuICAgICAgICAgIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ1BMQUNFX1BST1BFUlRJRVMuJyArIHByb3BlcnR5SWQsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLFxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSlcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24oXG4gICAgcm90YXRpb25WYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApOiBUcmF2ZWxEaXJlY3Rpb25JMThuS2V5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy50cmF2ZWxEaXJlY3Rpb24gfHxcbiAgICAgIHRoaXMudHJhdmVsRGlyZWN0aW9uID09PSAnTk9ORScgfHxcbiAgICAgIHRoaXMucGxhY2VUeXBlICE9PSAnU0VBVCcgfHxcbiAgICAgICFyb3RhdGlvblZhbHVlXG4gICAgKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCByb3RhdGlvbiA9IE51bWJlcihyb3RhdGlvblZhbHVlKTtcblxuICAgIGlmIChyb3RhdGlvbiA9PT0gOTAgfHwgcm90YXRpb24gPT09IDI3MCkge1xuICAgICAgcmV0dXJuICdUUkFWRUxfRElSRUNUSU9OX1RSQU5TVkVSU0VMWSc7XG4gICAgfVxuXG4gICAgY29uc3QgaW5EaXJlY3Rpb24gPVxuICAgICAgKHJvdGF0aW9uID09PSAwICYmIHRoaXMudHJhdmVsRGlyZWN0aW9uID09PSAnUklHSFQnKSB8fFxuICAgICAgKHJvdGF0aW9uID09PSAxODAgJiYgdGhpcy50cmF2ZWxEaXJlY3Rpb24gPT09ICdMRUZUJyk7XG5cbiAgICBpZiAoaW5EaXJlY3Rpb24pIHtcbiAgICAgIHJldHVybiAnVFJBVkVMX0RJUkVDVElPTl9JTl9ESVJFQ1RJT04nO1xuICAgIH0gZWxzZSBpZiAocm90YXRpb24gPT09IDAgfHwgcm90YXRpb24gPT09IDE4MCkge1xuICAgICAgcmV0dXJuICdUUkFWRUxfRElSRUNUSU9OX0lOX09QUE9TSVRFX0RJUkVDVElPTic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBJZiB0aGUgcGxhY2Ugc2VsZWN0YWJsZSwgd2UgZW1pdCB0aGUgcGxhY2VTZWxlY3Rpb24gb2JqZWN0IHdoaWNoIGNvbnRhaW5zIGluZm9zIHRvIHRoZSBwbGFjZSBzdGF0ZSAqL1xuICBwcml2YXRlIF9zZWxlY3RQbGFjZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RhYmxlID0gKHRoaXMuc3RhdGUgPT09ICdGUkVFJyB8fCB0aGlzLnN0YXRlID09PSAnU0VMRUNURUQnKSAmJiAhdGhpcy5wcmV2ZW50Q2xpY2s7XG5cbiAgICBpZiAoc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuc3RhdGUgPT09ICdGUkVFJyA/ICdTRUxFQ1RFRCcgOiAnRlJFRSc7XG4gICAgICBjb25zdCBwbGFjZVNlbGVjdGlvbjogUGxhY2VTZWxlY3Rpb24gPSB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICBkZWNrSW5kZXg6IHRoaXMuZGVja0luZGV4LFxuICAgICAgICBjb2FjaEluZGV4OiB0aGlzLmNvYWNoSW5kZXgsXG4gICAgICAgIG51bWJlcjogdGhpcy50ZXh0LFxuICAgICAgICBzdGF0ZTogdGhpcy5zdGF0ZSxcbiAgICAgICAgcGxhY2VUeXBlOiB0aGlzLnBsYWNlVHlwZSxcbiAgICAgIH07XG5cbiAgICAgIC8qKlxuICAgICAgICogQHR5cGUge0N1c3RvbUV2ZW50PFBsYWNlU2VsZWN0aW9uPn1cbiAgICAgICAqIEVtaXRzIHdoZW4gYSBwbGFjZSB3YXMgc2VsZWN0ZWQgdmlhIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHJldHVybnMgYVxuICAgICAgICogUGxhY2VTZWxlY3Rpb24gb2JqZWN0IHdpdGggbmVjZXNzYXJ5IHBsYWNlIGluZm9ybWF0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudDxQbGFjZVNlbGVjdGlvbj4oJ3NlbGVjdHBsYWNlJywge1xuICAgICAgICAgIGRldGFpbDogcGxhY2VTZWxlY3Rpb24sXG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbCc6IFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUNxQkEsaUNBQWlDLFFBQVE7Ozs7SUFVNUIsK0NBQXFDO21CQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBQTlDLDhDQUE4QyxZQUFvQjs7OzRCQVE1RSxXQUFXLEVBQ1gsU0FBUyxFQUFFLFdBQVcsUUFBUSxDQUFDLENBQUE7d0JBSS9CLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUFTLFNBQVM7SUFBTSxDQUFDLENBQUE7a0NBSS9DLFNBQVMsRUFBRSxXQUFXLG9CQUFvQixDQUFDLENBQUE7OEJBSTNDLFNBQVM7SUFBRSxXQUFXO0lBQWUsTUFBTTtJQUFPLENBQUMsQ0FBQTt1QkFJbkQsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLFFBQVEsQ0FBQyxDQUFBOzRCQUkvQixXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBYyxNQUFNO0lBQVEsQ0FBQyxDQUFBOzZCQUluRCxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBZSxNQUFNO0lBQVEsQ0FBQyxDQUFBOytCQUlwRCxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBaUIsTUFBTTtJQUFTLENBQUMsQ0FBQTsyQkFJdkQsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLFlB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
@@ -0,0 +1,25 @@
1
+ import { SbbElement } from "@sbb-esta/lyne-elements/core/base-elements.js";
2
+ import { boxSizingStyles } from "@sbb-esta/lyne-elements/core/styles.js";
3
+ import { html, unsafeCSS } from "lit";
4
+ //#region src/elements-experimental/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.scss?inline
5
+ var seat_reservation_scoped_default = ":host {\n --sbb-seat-reservation-scoped-width: 0;\n --sbb-seat-reservation-scoped-height: 0;\n display: block;\n width: calc(var(--sbb-seat-reservation-scoped-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n height: calc(var(--sbb-seat-reservation-scoped-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}";
6
+ //#endregion
7
+ //#region src/elements-experimental/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.ts
8
+ /**
9
+ * Wrapper class for scoped elements with similar properties to set.
10
+ */
11
+ var SbbSeatReservationScopedElement = class extends SbbElement {
12
+ static {
13
+ this.elementName = "sbb-seat-reservation-scoped";
14
+ }
15
+ static {
16
+ this.styles = [boxSizingStyles, unsafeCSS(seat_reservation_scoped_default)];
17
+ }
18
+ render() {
19
+ return html`<slot></slot>`;
20
+ }
21
+ };
22
+ //#endregion
23
+ export { SbbSeatReservationScopedElement as t };
24
+
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1zY29wZWQuY29tcG9uZW50LUNGQV9iSjNvLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9zdHlsZXMnIGFzIHNiYjtcbkB1c2UgJy4uL2NvbW1vbi9zdHlsZXMvc2VhdC1yZXNlcnZhdGlvbi1mdW5jdGlvbnMnIGFzIHNiYi1zci1mdW5jdGlvbnM7XG5cbjpob3N0IHtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQtd2lkdGg6IDA7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkLWhlaWdodDogMDtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC13aWR0aCkpO1xuICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC1oZWlnaHQpKTtcbn1cbiIsImltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9zdHlsZXMuanMnO1xuaW1wb3J0IHsgaHRtbCwgdW5zYWZlQ1NTLCB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIFdyYXBwZXIgY2xhc3MgZm9yIHNjb3BlZCBlbGVtZW50cyB3aXRoIHNpbWlsYXIgcHJvcGVydGllcyB0byBzZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTZWF0UmVzZXJ2YXRpb25TY29wZWRFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdD48L3Nsb3Q+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkJzogU2JiU2VhdFJlc2VydmF0aW9uU2NvcGVkRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FDU0EsSUFBYSxrQ0FBYixjQUFxRCxXQUFVOztBQUM3QixPQUFBLGNBQXNCOzs7QUFDL0IsT0FBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLGdDQUFNLENBQUM7O0NBRWhFLFNBQU07QUFDdkIsU0FBTyxJQUFJIn0=