@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776760633 → 5.0.0-next-dev.1776866482

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 (212) hide show
  1. package/{block-link-common-CDrCAdGP.js → block-link-common-CiqQc2Rs.js} +1 -1
  2. package/core/styles/core.scss +11 -0
  3. package/core/styles/mixins/helpers.scss +3 -3
  4. package/core/styles/mixins/panel.scss +5 -1
  5. package/core.css +38 -0
  6. package/custom-elements.json +1630 -1291
  7. package/development/{block-link-common-CwurjMj1.js → block-link-common-B9Vx8CTp.js} +2 -2
  8. package/development/form-field/form-field/form-field.component.js +1 -1
  9. package/development/{form-field.component-BHMh3V6s.js → form-field.component-M0wf8ZR8.js} +2 -2
  10. package/development/form-field.js +1 -1
  11. package/development/form-field.pure.js +1 -1
  12. package/development/link/common/block-link-common.js +1 -1
  13. package/development/link.js +1 -1
  14. package/development/link.pure.js +1 -1
  15. package/development/slider/slider.component.js +1 -1
  16. package/development/{slider.component-ZBdkbZei.js → slider.component-CXrGIpkh.js} +2 -2
  17. package/development/slider.js +1 -1
  18. package/development/slider.pure.js +1 -1
  19. package/development/step-label.component-BTXuaONx.js +126 -0
  20. package/development/stepper/step-label/step-label.component.js +1 -1
  21. package/development/stepper.js +1 -1
  22. package/development/stepper.pure.js +1 -1
  23. package/development/teaser/teaser.component.js +1 -1
  24. package/development/teaser-hero/teaser-hero.component.d.ts.map +1 -1
  25. package/development/teaser-hero/teaser-hero.component.js +1 -1
  26. package/development/teaser-hero.component-De621iKn.js +100 -0
  27. package/development/teaser-hero.js +1 -1
  28. package/development/teaser-hero.pure.js +1 -1
  29. package/development/teaser-panel/teaser-panel.component.d.ts +19 -0
  30. package/development/teaser-panel/teaser-panel.component.d.ts.map +1 -0
  31. package/development/teaser-panel/teaser-panel.component.js +2 -0
  32. package/development/teaser-panel.component-CjSrfJYG.js +32 -0
  33. package/development/teaser-panel.d.ts +2 -0
  34. package/development/teaser-panel.d.ts.map +1 -0
  35. package/development/teaser-panel.js +9 -0
  36. package/development/teaser-panel.pure.d.ts +3 -0
  37. package/development/teaser-panel.pure.d.ts.map +1 -0
  38. package/development/teaser-panel.pure.js +2 -0
  39. package/development/teaser-product/common/teaser-product-common.js +1 -1
  40. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  41. package/development/{teaser-product-common-DhbAGnQN.js → teaser-product-common-DasV_SDa.js} +1 -1
  42. package/development/{teaser-product.component-C3PZbA5W.js → teaser-product.component-CB6fOX7T.js} +1 -1
  43. package/development/teaser-product.js +2 -2
  44. package/development/teaser-product.pure.js +2 -2
  45. package/development/{teaser.component-BJso_6lz.js → teaser.component-DwM26tMt.js} +1 -1
  46. package/development/teaser.js +1 -1
  47. package/development/teaser.pure.js +1 -1
  48. package/development/time-input/time-input.component.js +1 -1
  49. package/development/{time-input.component-BWMBV6fm.js → time-input.component-x-QOtbwE.js} +1 -1
  50. package/development/time-input.js +1 -1
  51. package/development/time-input.pure.js +1 -1
  52. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  53. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  54. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  55. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  56. package/development/{timetable-form-details.component-C8EdT4rZ.js → timetable-form-details.component-B7mwIQoz.js} +1 -1
  57. package/development/{timetable-form-field.component-CoANLGWk.js → timetable-form-field.component-BIpoMaJW.js} +1 -1
  58. package/development/{timetable-form-swap-button.component-_EUhzoww.js → timetable-form-swap-button.component-DM7UFhGh.js} +1 -1
  59. package/development/{timetable-form.component-DLjBbFRv.js → timetable-form.component-BBkeono7.js} +1 -1
  60. package/development/timetable-form.js +4 -4
  61. package/development/timetable-form.pure.js +4 -4
  62. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  63. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  64. package/development/{timetable-occupancy-icon.component-DXFUx67a.js → timetable-occupancy-icon.component-CRayfWIo.js} +1 -1
  65. package/development/timetable-occupancy-icon.js +1 -1
  66. package/development/timetable-occupancy-icon.pure.js +1 -1
  67. package/development/{timetable-occupancy.component-By7X3Sj2.js → timetable-occupancy.component-D6BIvkpY.js} +1 -1
  68. package/development/timetable-occupancy.js +1 -1
  69. package/development/timetable-occupancy.pure.js +1 -1
  70. package/development/title/title-base.js +1 -1
  71. package/development/title/title.component.js +1 -1
  72. package/development/{title-base-Bc3biGfy.js → title-base-CWLTIRh_.js} +1 -1
  73. package/development/{title.component-B7rIqG0N.js → title.component-TCKohHBO.js} +2 -2
  74. package/development/title.js +2 -2
  75. package/development/title.pure.js +2 -2
  76. package/development/toast/toast.component.js +1 -1
  77. package/development/{toast.component-lPPTFudM.js → toast.component-CZL72aVO.js} +1 -1
  78. package/development/toast.js +1 -1
  79. package/development/toast.pure.js +1 -1
  80. package/development/toggle/toggle/toggle.component.js +1 -1
  81. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  82. package/development/toggle-check/toggle-check.component.js +1 -1
  83. package/development/toggle-check.component-LYr7DJj1.js +156 -0
  84. package/development/toggle-check.js +1 -1
  85. package/development/toggle-check.pure.js +1 -1
  86. package/development/{toggle-option.component-DscH6K3b.js → toggle-option.component-DRAJ11fp.js} +1 -1
  87. package/development/{toggle.component-Dap1d4rK.js → toggle.component-BeHHTgRh.js} +1 -1
  88. package/development/toggle.js +2 -2
  89. package/development/toggle.pure.js +2 -2
  90. package/development/tooltip/tooltip.component.js +1 -1
  91. package/development/{tooltip.component-lvElko6C.js → tooltip.component-BV0yBh9f.js} +1 -1
  92. package/development/tooltip.js +1 -1
  93. package/development/tooltip.pure.js +1 -1
  94. package/development/train/train/train.component.js +1 -1
  95. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  96. package/development/train/train-formation/train-formation.component.js +1 -1
  97. package/development/train/train-wagon/train-wagon.component.js +1 -1
  98. package/development/{train-blocked-passage.component-C6XmqBo_.js → train-blocked-passage.component-Bh2dR1gn.js} +1 -1
  99. package/development/{train-formation.component-BoQcwy6n.js → train-formation.component-Dm0t9N_h.js} +1 -1
  100. package/development/{train-wagon.component-zQVbqhIL.js → train-wagon.component-X0XSMLK_.js} +1 -1
  101. package/development/{train.component-D5Z4vgej.js → train.component-BvbNBkZF.js} +1 -1
  102. package/development/train.js +4 -4
  103. package/development/train.pure.js +4 -4
  104. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  105. package/development/{visual-checkbox.component-jRksxrOu.js → visual-checkbox.component-DJ30EugM.js} +1 -1
  106. package/development/visual-checkbox.js +1 -1
  107. package/development/visual-checkbox.pure.js +1 -1
  108. package/form-field/form-field/form-field.component.js +1 -1
  109. package/{form-field.component-D8qiPCgJ.js → form-field.component-DbV7fMoe.js} +1 -1
  110. package/form-field.js +1 -1
  111. package/form-field.pure.js +1 -1
  112. package/index.d.ts +2 -0
  113. package/index.js +2 -0
  114. package/link/common/block-link-common.js +1 -1
  115. package/link.js +1 -1
  116. package/link.pure.js +1 -1
  117. package/off-brand-theme.css +38 -0
  118. package/package.json +12 -2
  119. package/safety-theme.css +38 -0
  120. package/slider/slider.component.js +1 -1
  121. package/{slider.component-B3V7sjSF.js → slider.component-DfMkuXac.js} +1 -1
  122. package/slider.js +1 -1
  123. package/slider.pure.js +1 -1
  124. package/standard-theme.css +38 -0
  125. package/step-label.component-CbtQ7MvH.js +77 -0
  126. package/stepper/step-label/step-label.component.js +1 -1
  127. package/stepper.js +1 -1
  128. package/stepper.pure.js +1 -1
  129. package/teaser/teaser.component.js +1 -1
  130. package/teaser-hero/teaser-hero.component.js +1 -1
  131. package/teaser-hero.component-BUhWjc2i.js +80 -0
  132. package/teaser-hero.js +1 -1
  133. package/teaser-hero.pure.js +1 -1
  134. package/teaser-panel/teaser-panel.component.js +2 -0
  135. package/teaser-panel.component-C4auDYCc.js +21 -0
  136. package/teaser-panel.js +6 -0
  137. package/teaser-panel.pure.js +2 -0
  138. package/teaser-product/common/teaser-product-common.js +1 -1
  139. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  140. package/teaser-product.js +2 -2
  141. package/teaser-product.pure.js +2 -2
  142. package/teaser.js +1 -1
  143. package/teaser.pure.js +1 -1
  144. package/time-input/time-input.component.js +1 -1
  145. package/time-input.js +1 -1
  146. package/time-input.pure.js +1 -1
  147. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  148. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  149. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  150. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  151. package/timetable-form.js +4 -4
  152. package/timetable-form.pure.js +4 -4
  153. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  154. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  155. package/timetable-occupancy-icon.js +1 -1
  156. package/timetable-occupancy-icon.pure.js +1 -1
  157. package/timetable-occupancy.js +1 -1
  158. package/timetable-occupancy.pure.js +1 -1
  159. package/title/title-base.js +1 -1
  160. package/title/title.component.js +1 -1
  161. package/{title.component-7zqQqbRJ.js → title.component-CjDkG7gT.js} +1 -1
  162. package/title.js +2 -2
  163. package/title.pure.js +2 -2
  164. package/toast/toast.component.js +1 -1
  165. package/toast.js +1 -1
  166. package/toast.pure.js +1 -1
  167. package/toggle/toggle/toggle.component.js +1 -1
  168. package/toggle/toggle-option/toggle-option.component.js +1 -1
  169. package/toggle-check/toggle-check.component.js +1 -1
  170. package/toggle-check.component-WVQ4NM-R.js +116 -0
  171. package/toggle-check.js +1 -1
  172. package/toggle-check.pure.js +1 -1
  173. package/toggle.js +2 -2
  174. package/toggle.pure.js +2 -2
  175. package/tooltip/tooltip.component.js +1 -1
  176. package/tooltip.js +1 -1
  177. package/tooltip.pure.js +1 -1
  178. package/train/train/train.component.js +1 -1
  179. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  180. package/train/train-formation/train-formation.component.js +1 -1
  181. package/train/train-wagon/train-wagon.component.js +1 -1
  182. package/train.js +4 -4
  183. package/train.pure.js +4 -4
  184. package/visual-checkbox/visual-checkbox.component.js +1 -1
  185. package/visual-checkbox.js +1 -1
  186. package/visual-checkbox.pure.js +1 -1
  187. package/development/step-label.component-B7M9Yqyz.js +0 -126
  188. package/development/teaser-hero.component-7KeR7bPf.js +0 -101
  189. package/development/toggle-check.component-CuODx4cx.js +0 -156
  190. package/step-label.component-BXg13qOD.js +0 -77
  191. package/teaser-hero.component-CLuVP2ba.js +0 -81
  192. package/toggle-check.component-DkOBgRQM.js +0 -116
  193. /package/{teaser-product-common-B8NakRRV.js → teaser-product-common-Kz3ApcVE.js} +0 -0
  194. /package/{teaser-product.component-Dqapk40c.js → teaser-product.component-C7KoSqcP.js} +0 -0
  195. /package/{teaser.component-BaxumXCl.js → teaser.component-Bl_Myx2h.js} +0 -0
  196. /package/{time-input.component-N0DexLd9.js → time-input.component-BVoO7JLV.js} +0 -0
  197. /package/{timetable-form-details.component-CIY5ZAQJ.js → timetable-form-details.component-BQmF3WLu.js} +0 -0
  198. /package/{timetable-form-field.component-LuzgeDdh.js → timetable-form-field.component-DrQuTOJr.js} +0 -0
  199. /package/{timetable-form-swap-button.component-BT36u2L9.js → timetable-form-swap-button.component-C9dU9vDV.js} +0 -0
  200. /package/{timetable-form.component-YNDnJnkX.js → timetable-form.component-AbZF15Tg.js} +0 -0
  201. /package/{timetable-occupancy-icon.component-DPNwMhLs.js → timetable-occupancy-icon.component-B6pF-j0D.js} +0 -0
  202. /package/{timetable-occupancy.component-BbHtiw_F.js → timetable-occupancy.component-CLpJ-rjI.js} +0 -0
  203. /package/{title-base-Cbe4eNS1.js → title-base-HD0z6npS.js} +0 -0
  204. /package/{toast.component-ccBpQmCC.js → toast.component-DzsaWxPV.js} +0 -0
  205. /package/{toggle-option.component-BiyjKQB1.js → toggle-option.component-DeePQ-NW.js} +0 -0
  206. /package/{toggle.component-CVbRdQDM.js → toggle.component-D7X0E_hM.js} +0 -0
  207. /package/{tooltip.component-Do4V1jGd.js → tooltip.component-BCRFxBuV.js} +0 -0
  208. /package/{train-blocked-passage.component-EET0Kobk.js → train-blocked-passage.component-DIh8dbU9.js} +0 -0
  209. /package/{train-formation.component-B8IFJ_7b.js → train-formation.component-DS4EDwPY.js} +0 -0
  210. /package/{train-wagon.component-CLMLEf6I.js → train-wagon.component-CZiVPOaZ.js} +0 -0
  211. /package/{train.component-D_ysGCwu.js → train.component-DuFi_iBX.js} +0 -0
  212. /package/{visual-checkbox.component-CdqoYyEe.js → visual-checkbox.component-BsjmJgcn.js} +0 -0
@@ -5,7 +5,7 @@ import { SbbDisabledMixin, SbbElement, SbbFormAssociatedMixin, SbbReadonlyMixin,
5
5
  import { SbbIconElement } from "./icon.pure.js";
6
6
  import { ref } from "lit/directives/ref.js";
7
7
  //#region src/elements/slider/slider.scss?inline
8
- var slider_default = "@charset \"UTF-8\";\n:host {\n --_sbb-slider-value-fraction: 0;\n outline: none !important;\n display: inline-block;\n min-width: var(--sbb-slider-min-width);\n width: min(var(--sbb-slider-width), 100%);\n}\n\n:host(:disabled) {\n --sbb-slider-icon-color: var(--sbb-color-graphite);\n --sbb-slider-icon-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-smoke));\n --sbb-slider-knob-border-color: var(--sbb-border-color-5);\n --sbb-slider-knob-border-size: var(--sbb-border-width-2x);\n --sbb-slider-knob-border-style: dashed;\n}\n\n:host([readonly]) {\n --sbb-slider-icon-color: var(--sbb-color-5);\n --sbb-slider-knob-border-color: var(--sbb-slider-selected-line-disabled-color);\n}\n\n:host(:disabled),\n:host([readonly]) {\n --sbb-slider-line-color: var(--sbb-slider-line-disabled-color);\n --sbb-slider-selected-line-color: var(--sbb-slider-selected-line-disabled-color);\n}\n@media (forced-colors: active) {\n :host(:disabled),\n :host([readonly]) {\n --sbb-slider-icon-color: GrayText;\n --sbb-slider-selected-line-disabled-color: GrayText;\n --sbb-slider-line-disabled-color: GrayText;\n }\n}\n\n.sbb-slider__height-container {\n display: flex;\n flex-direction: column;\n}\n.sbb-slider__height-container::before {\n content: \"​\";\n user-select: none;\n width: 0;\n height: 0;\n}\n\n.sbb-slider__wrapper {\n display: flex;\n gap: var(--sbb-slider-gap);\n padding-block: var(--sbb-slider-padding-block);\n color: var(--sbb-slider-icon-color);\n}\n\n.sbb-slider__container {\n position: relative;\n min-height: var(--sbb-size-icon-ui-small);\n flex-grow: 1;\n}\n\n.sbb-slider__range-input {\n position: absolute;\n width: 100%;\n inset: 0;\n opacity: 0;\n margin: 0;\n}\n\n.sbb-slider__line {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n height: var(--sbb-slider-line-height);\n width: 100%;\n background-color: var(--sbb-slider-line-color);\n border-radius: var(--sbb-slider-line-height);\n overflow: hidden;\n pointer-events: none;\n}\n\n.sbb-slider__selected-line {\n position: relative;\n height: 100%;\n background-color: var(--sbb-slider-selected-line-color);\n width: calc(var(--_sbb-slider-value-fraction) * 100%);\n}\n\n.sbb-slider__knob {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n box-shadow: var(--sbb-box-shadow-level-5-hard);\n width: var(--sbb-slider-knob-size);\n height: var(--sbb-slider-knob-size);\n inset-inline-start: calc(var(--_sbb-slider-value-fraction) * 100% - var(--sbb-slider-knob-size) * var(--_sbb-slider-value-fraction));\n transition-property: width, height;\n transition-duration: var(--sbb-disable-animation-duration, var(--sbb-animation-duration-1x));\n transition-timing-function: ease-in;\n background-color: var(--sbb-slider-knob-color);\n border: var(--sbb-slider-knob-border-size) var(--sbb-slider-knob-border-style) var(--sbb-slider-knob-border-color);\n border-radius: 50%;\n pointer-events: none;\n}\n:host(:focus-visible) .sbb-slider__knob {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n --sbb-slider-knob-size: var(--sbb-slider-knob-size-active);\n}\n:host(:not(:is(:disabled, [readonly]))) .sbb-slider__range-input:active ~ .sbb-slider__knob {\n --sbb-slider-knob-size: var(--sbb-slider-knob-size-active);\n}";
8
+ var slider_default = "@charset \"UTF-8\";\n:host {\n --_sbb-slider-value-fraction: 0;\n outline: none !important;\n display: inline-block;\n min-width: var(--sbb-slider-min-width);\n width: min(var(--sbb-slider-width), 100%);\n}\n\n:host(:disabled) {\n --sbb-slider-icon-color: var(--sbb-color-graphite);\n --sbb-slider-icon-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-smoke));\n --sbb-slider-knob-border-color: var(--sbb-border-color-5);\n --sbb-slider-knob-border-size: var(--sbb-border-width-2x);\n --sbb-slider-knob-border-style: dashed;\n}\n\n:host([readonly]) {\n --sbb-slider-icon-color: var(--sbb-color-5);\n --sbb-slider-knob-border-color: var(--sbb-slider-selected-line-disabled-color);\n}\n\n:host(:disabled),\n:host([readonly]) {\n --sbb-slider-line-color: var(--sbb-slider-line-disabled-color);\n --sbb-slider-selected-line-color: var(--sbb-slider-selected-line-disabled-color);\n}\n@media (forced-colors: active) {\n :host(:disabled),\n :host([readonly]) {\n --sbb-slider-icon-color: GrayText;\n --sbb-slider-selected-line-disabled-color: GrayText;\n --sbb-slider-line-disabled-color: GrayText;\n }\n}\n\n.sbb-slider__height-container {\n display: flex;\n flex-direction: column;\n}\n.sbb-slider__height-container::before {\n content: \"​\";\n user-select: none;\n width: 0;\n height: 0;\n}\n\n.sbb-slider__wrapper {\n display: flex;\n gap: var(--sbb-slider-gap);\n padding-block: var(--sbb-slider-padding-block);\n color: var(--sbb-slider-icon-color);\n}\n\n.sbb-slider__container {\n position: relative;\n min-height: var(--sbb-size-icon-ui-small);\n flex-grow: 1;\n}\n\n.sbb-slider__range-input {\n position: absolute;\n width: 100%;\n inset: 0;\n opacity: 0;\n margin: 0;\n}\n\n.sbb-slider__line {\n position: absolute;\n top: 50%;\n translate: 0 -50%;\n height: var(--sbb-slider-line-height);\n width: 100%;\n background-color: var(--sbb-slider-line-color);\n border-radius: var(--sbb-slider-line-height);\n overflow: hidden;\n pointer-events: none;\n}\n\n.sbb-slider__selected-line {\n position: relative;\n height: 100%;\n background-color: var(--sbb-slider-selected-line-color);\n width: calc(var(--_sbb-slider-value-fraction) * 100%);\n}\n\n.sbb-slider__knob {\n position: absolute;\n top: 50%;\n translate: 0 -50%;\n box-shadow: var(--sbb-box-shadow-level-5-hard);\n width: var(--sbb-slider-knob-size);\n height: var(--sbb-slider-knob-size);\n inset-inline-start: calc(var(--_sbb-slider-value-fraction) * 100% - var(--sbb-slider-knob-size) * var(--_sbb-slider-value-fraction));\n transition-property: width, height;\n transition-duration: var(--sbb-disable-animation-duration, var(--sbb-animation-duration-1x));\n transition-timing-function: ease-in;\n background-color: var(--sbb-slider-knob-color);\n border: var(--sbb-slider-knob-border-size) var(--sbb-slider-knob-border-style) var(--sbb-slider-knob-border-color);\n border-radius: 50%;\n pointer-events: none;\n}\n:host(:focus-visible) .sbb-slider__knob {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n --sbb-slider-knob-size: var(--sbb-slider-knob-size-active);\n}\n:host(:not(:is(:disabled, [readonly]))) .sbb-slider__range-input:active ~ .sbb-slider__knob {\n --sbb-slider-knob-size: var(--sbb-slider-knob-size-active);\n}";
9
9
  //#endregion
10
10
  //#region src/elements/slider/slider.component.ts
11
11
  /**
@@ -343,4 +343,4 @@ var SbbSliderElement = (() => {
343
343
  //#endregion
344
344
  export { SbbSliderElement as t };
345
345
 
346
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC1aQmRrYlplaS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2xpZGVyL3NsaWRlci5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tX3NiYi1zbGlkZXItdmFsdWUtZnJhY3Rpb246IDA7XG5cbiAgLy8gVXNlICFpbXBvcnRhbnQgaGVyZSB0byBub3QgaW50ZXJmZXJlIHdpdGggRmlyZWZveCBmb2N1cyByaW5nIGRlZmluaXRpb25cbiAgLy8gd2hpY2ggYXBwZWFycyBpbiBub3JtYWxpemUgQ1NTIG9mIHNldmVyYWwgZnJhbWV3b3Jrcy5cbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXNsaWRlci1taW4td2lkdGgpO1xuICB3aWR0aDogbWluKHZhcigtLXNiYi1zbGlkZXItd2lkdGgpLCAxMDAlKTtcbn1cblxuOmhvc3QoOmRpc2FibGVkKSB7XG4gIC0tc2JiLXNsaWRlci1pY29uLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSksIHZhcigtLXNiYi1jb2xvci1zbW9rZSkpO1xuICAtLXNiYi1zbGlkZXIta25vYi1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1ib3JkZXItY29sb3ItNSk7XG4gIC0tc2JiLXNsaWRlci1rbm9iLWJvcmRlci1zaXplOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTJ4KTtcbiAgLS1zYmItc2xpZGVyLWtub2ItYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG59XG5cbjpob3N0KFtyZWFkb25seV0pIHtcbiAgLS1zYmItc2xpZGVyLWljb24tY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbiAgLS1zYmItc2xpZGVyLWtub2ItYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItc2xpZGVyLXNlbGVjdGVkLWxpbmUtZGlzYWJsZWQtY29sb3IpO1xufVxuXG46aG9zdCg6ZGlzYWJsZWQpLFxuOmhvc3QoW3JlYWRvbmx5XSkge1xuICAtLXNiYi1zbGlkZXItbGluZS1jb2xvcjogdmFyKC0tc2JiLXNsaWRlci1saW5lLWRpc2FibGVkLWNvbG9yKTtcbiAgLS1zYmItc2xpZGVyLXNlbGVjdGVkLWxpbmUtY29sb3I6IHZhcigtLXNiYi1zbGlkZXItc2VsZWN0ZWQtbGluZS1kaXNhYmxlZC1jb2xvcik7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXNsaWRlci1pY29uLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAtLXNiYi1zbGlkZXItc2VsZWN0ZWQtbGluZS1kaXNhYmxlZC1jb2xvcjogR3JheVRleHQ7XG4gICAgLS1zYmItc2xpZGVyLWxpbmUtZGlzYWJsZWQtY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbi5zYmItc2xpZGVyX19oZWlnaHQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICBAaW5jbHVkZSBzYmIuemVyby13aWR0aC1zcGFjZTtcbn1cblxuLnNiYi1zbGlkZXJfX3dyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLXNiYi1zbGlkZXItZ2FwKTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXNsaWRlci1wYWRkaW5nLWJsb2NrKTtcbiAgY29sb3I6IHZhcigtLXNiYi1zbGlkZXItaWNvbi1jb2xvcik7XG59XG5cbi5zYmItc2xpZGVyX19jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuICBmbGV4LWdyb3c6IDE7XG59XG5cbi5zYmItc2xpZGVyX19yYW5nZS1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGluc2V0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5zYmItc2xpZGVyX19saW5lIHtcbiAgQGluY2x1ZGUgc2JiLmFic29sdXRlLWNlbnRlci15O1xuXG4gIGhlaWdodDogdmFyKC0tc2JiLXNsaWRlci1saW5lLWhlaWdodCk7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2xpZGVyLWxpbmUtY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2xpZGVyLWxpbmUtaGVpZ2h0KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zYmItc2xpZGVyX19zZWxlY3RlZC1saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zbGlkZXItc2VsZWN0ZWQtbGluZS1jb2xvcik7XG4gIHdpZHRoOiBjYWxjKHZhcigtLV9zYmItc2xpZGVyLXZhbHVlLWZyYWN0aW9uKSAqIDEwMCUpO1xufVxuXG4uc2JiLXNsaWRlcl9fa25vYiB7XG4gIEBpbmNsdWRlIHNiYi5hYnNvbHV0ZS1jZW50ZXIteTtcblxuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LWhhcmQpO1xuICB3aWR0aDogdmFyKC0tc2JiLXNsaWRlci1rbm9iLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1zbGlkZXIta25vYi1zaXplKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgIGNhbGModmFyKC0tX3NiYi1zbGlkZXItdmFsdWUtZnJhY3Rpb24pICogMTAwJSkgLSB2YXIoLS1zYmItc2xpZGVyLWtub2Itc2l6ZSkgKlxuICAgICAgdmFyKC0tX3NiYi1zbGlkZXItdmFsdWUtZnJhY3Rpb24pXG4gICk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLCBoZWlnaHQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbiwgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0xeCkpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXNsaWRlci1rbm9iLWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItc2xpZGVyLWtub2ItYm9yZGVyLXNpemUpIHZhcigtLXNiYi1zbGlkZXIta25vYi1ib3JkZXItc3R5bGUpXG4gICAgdmFyKC0tc2JiLXNsaWRlci1rbm9iLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gICAgLS1zYmItc2xpZGVyLWtub2Itc2l6ZTogdmFyKC0tc2JiLXNsaWRlci1rbm9iLXNpemUtYWN0aXZlKTtcbiAgfVxuXG4gIC8vIHNsaWRlciBrbm9iIHJlc2l6ZSBvbiBjbGljayAoYWN0aXZlIC8gZm9jdXMpXG4gIDpob3N0KDpub3QoOmlzKDpkaXNhYmxlZCwgW3JlYWRvbmx5XSkpKSAuc2JiLXNsaWRlcl9fcmFuZ2UtaW5wdXQ6YWN0aXZlIH4gJiB7XG4gICAgLS1zYmItc2xpZGVyLWtub2Itc2l6ZTogdmFyKC0tc2JiLXNsaWRlci1rbm9iLXNpemUtYWN0aXZlKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGZvcmNlVHlwZSxcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBob3N0QXR0cmlidXRlcyxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRWxlbWVudCxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgU2JiUmVhZG9ubHlNaXhpbixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uRWxlbWVudCB9IGZyb20gJy4uL2ljb24ucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NsaWRlci5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gaW5wdXQga25vYiB0aGF0IGNhbiBiZSBtb3ZlZCBpbiBhIHJhbmdlLlxuICpcbiAqIEBzbG90IHByZWZpeCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGljb24gb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgaW5wdXQuXG4gKiBAc2xvdCBzdWZmaXggLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBpY29uIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBpbnB1dC5cbiAqIEBldmVudCB7SW5wdXRFdmVudH0gaW5wdXQgLSBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqL1xuZXhwb3J0XG5AaG9zdEF0dHJpYnV0ZXMoe1xuICB0YWJpbmRleDogJzAnLFxufSlcbmNsYXNzIFNiYlNsaWRlckVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZWFkb25seU1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCkpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2xpZGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1NiYkljb25FbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3NsaWRlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKlxuICAgKiBWYWx1ZSBvZiB0aGUgZm9ybSBlbGVtZW50LlxuICAgKiBJZiBubyB2YWx1ZSBpcyBwcm92aWRlZCwgZGVmYXVsdCBpcyB0aGUgbWlkZGxlIHBvaW50IGJldHdlZW4gbWluIGFuZCBtYXguXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2lzVmFsaWROdW1iZXIodmFsdWUpKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2JvdW5kQmV0d2Vlbk1pbk1heCh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVZhbHVlTm93ID0gdGhpcy52YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/IHRoaXMuX2RlZmF1bHRWYWx1ZSgpO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiogTnVtZXJpYyB2YWx1ZSBmb3IgdGhlIGlubmVyIEhUTUxJbnB1dEVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3ZhbHVlLWFzLW51bWJlcicsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IHZhbHVlQXNOdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU/LnRvU3RyaW5nKCkgPz8gbnVsbDtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlQXNOdW1iZXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIC8qKiBNaW5pbXVtIGFjY2VwdGFibGUgdmFsdWUgZm9yIHRoZSBpbm5lciBIVE1MSW5wdXRFbGVtZW50LiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IG1pbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkTnVtYmVyKHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX21pbiA9IHZhbHVlO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFWYWx1ZU1pbiA9IHRoaXMubWluO1xuICAgIGNvbnN0IGJvdW5kVmFsdWUgPSB0aGlzLl9ib3VuZEJldHdlZW5NaW5NYXgodGhpcy52YWx1ZSk7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09IGJvdW5kVmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBib3VuZFZhbHVlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IG1pbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9taW47XG4gIH1cbiAgcHJpdmF0ZSBfbWluOiBzdHJpbmcgPSAnMCc7XG5cbiAgLyoqIE1heGltdW0gYWNjZXB0YWJsZSB2YWx1ZSBmb3IgdGhlIGlubmVyIEhUTUxJbnB1dEVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgbWF4KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWROdW1iZXIodmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbWF4ID0gdmFsdWU7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVZhbHVlTWF4ID0gdGhpcy5tYXg7XG4gICAgY29uc3QgYm91bmRWYWx1ZSA9IHRoaXMuX2JvdW5kQmV0d2Vlbk1pbk1heCh0aGlzLnZhbHVlKTtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gYm91bmRWYWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGJvdW5kVmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgbWF4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX21heDtcbiAgfVxuICBwcml2YXRlIF9tYXg6IHN0cmluZyA9ICcxMDAnO1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBpY29uIGF0IGNvbXBvbmVudCdzIHN0YXJ0LCB3aGljaCB3aWxsIGJlIGZvcndhcmQgdG8gdGhlIG5lc3RlZCBgc2JiLWljb25gLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc3RhcnQtaWNvbicgfSlcbiAgcHVibGljIGFjY2Vzc29yIHN0YXJ0SWNvbjogc3RyaW5nID0gJyc7XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGljb24gYXQgY29tcG9uZW50J3MgZW5kLCB3aGljaCB3aWxsIGJlIGZvcndhcmQgdG8gdGhlIG5lc3RlZCBgc2JiLWljb25gLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZW5kLWljb24nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBlbmRJY29uOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAqIEBkZWZhdWx0ICdyYW5nZSdcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAncmFuZ2UnO1xuICB9XG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgaW5uZXIgSFRNTElucHV0RWxlbWVudCB3aXRoIHR5cGU9J3JhbmdlJy4gKi9cbiAgcHJpdmF0ZSBfcmFuZ2VJbnB1dCE6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5ZG93bihlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlYWRPbmx5JykpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IEJvb2xlYW4odGhpcy5yZWFkT25seSkudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tX3NiYi1zbGlkZXItdmFsdWUtZnJhY3Rpb24nLCB0aGlzLl92YWx1ZUZyYWN0aW9uKCkudG9TdHJpbmcoKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJlc2V0IHZhbHVlIGlzIHRoZSBhdHRyaWJ1dGUgdmFsdWUgKHRoZSBzZXR1cCB2YWx1ZSkuIElmIG5vdCBwcmVzZW50LCBjYWxjdWxhdGVzIHRoZSBkZWZhdWx0LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPz8gdGhpcy5fZGVmYXVsdFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHN0YXRlIGFzIHN0cmluZyB8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBkZWZhdWx0IGlzIHRoZSBtaWRkbGUgcG9pbnQgYmV0d2VlbiBtaW4gYW5kIG1heFxuICAgKiAgKHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvcmFuZ2UjdmFsdWUpXG4gICAqL1xuICBwcml2YXRlIF9kZWZhdWx0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKCt0aGlzLm1pbiArICgrdGhpcy5tYXggLSArdGhpcy5taW4pIC8gMikudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWROdW1iZXIodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2YWx1ZSBpcyBzdHJpbmcge1xuICAgIHJldHVybiAhIXZhbHVlICYmICFpc05hTihOdW1iZXIodmFsdWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0cmFpbnMgdGhlIHZhbHVlIGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4XG4gICAqL1xuICBwcml2YXRlIF9ib3VuZEJldHdlZW5NaW5NYXgodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE1hdGgubWF4KCt0aGlzLm1pbiwgTWF0aC5taW4oK3RoaXMubWF4LCArdmFsdWUpKS50b1N0cmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWVGcmFjdGlvbigpOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZUFzTnVtYmVyITtcbiAgICBjb25zdCBtaW4gPSArdGhpcy5taW47XG4gICAgY29uc3QgbWF4ID0gK3RoaXMubWF4O1xuXG4gICAgY29uc3QgbWF0aEZyYWN0aW9uOiBudW1iZXIgPSAodmFsdWUgLSBtaW4pIC8gKG1heCAtIG1pbik7XG4gICAgcmV0dXJuIGlzTmFOKG1hdGhGcmFjdGlvbikgPyAwIDogTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgbWF0aEZyYWN0aW9uKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQudmFsdWUgPSB0aGlzLm1pbjtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQudmFsdWUgPSB0aGlzLm1heDtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5fcmFuZ2VJbnB1dC5zdGVwRG93bigpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQuc3RlcFVwKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdQYWdlRG93bicpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQuc3RlcERvd24oKCt0aGlzLm1heCAtICt0aGlzLm1pbikgLyAxMCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdQYWdlVXAnKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnN0ZXBVcCgoK3RoaXMubWF4IC0gK3RoaXMubWluKSAvIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFdlIGhhdmUgdG8gbWFudWFsbHkgZmlyZSBldmVudHMgYmVjYXVzZSBwcm9ncmFtbWF0aWMgY2hhbmdlcyBkb24ndCB0cmlnZ2VyIHRoZW1cbiAgICB0aGlzLl9yYW5nZUlucHV0LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pLFxuICAgICk7XG4gICAgdGhpcy5fcmFuZ2VJbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyB0aGUgY2hhbmdlIGV2ZW50LiAqL1xuICBwcml2YXRlIF9kaXNwYXRjaENoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLlxuICAgICAqIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkXG4gICAgICogZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuXG4gICAgICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcblxuICAgIC8qKlxuICAgICAqIERlcHJlY2F0ZWQuIE1pcnJvcnMgY2hhbmdlIGV2ZW50IGZvciBSZWFjdC4gV2lsbCBiZSByZW1vdmVkIG9uY2UgUmVhY3QgcHJvcGVybHkgc3VwcG9ydHMgY2hhbmdlIGV2ZW50cy5cbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2RpZENoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19oZWlnaHQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX193cmFwcGVyXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInByZWZpeFwiPlxuICAgICAgICAgICAgJHt0aGlzLnN0YXJ0SWNvbiA/IGh0bWxgPHNiYi1pY29uIG5hbWU9XCIke3RoaXMuc3RhcnRJY29ufVwiPjwvc2JiLWljb24+YCA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9zbG90PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgbWluPSR7dGhpcy5taW59XG4gICAgICAgICAgICAgIG1heD0ke3RoaXMubWF4fVxuICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkIHx8IHRoaXMucmVhZE9ubHl9XG4gICAgICAgICAgICAgIHZhbHVlPSR7dGhpcy52YWx1ZSB8fCBub3RoaW5nfVxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1zbGlkZXJfX3JhbmdlLWlucHV0XCJcbiAgICAgICAgICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgICAgICAgICAgQGNoYW5nZT0keygpID0+IHRoaXMuX2Rpc3BhdGNoQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgQGlucHV0PSR7KCkgPT4gKHRoaXMudmFsdWUgPSB0aGlzLl9yYW5nZUlucHV0LnZhbHVlKX1cbiAgICAgICAgICAgICAgJHtyZWYoKGlucHV0PzogRWxlbWVudCkgPT4gKHRoaXMuX3JhbmdlSW5wdXQgPSBpbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50KSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zbGlkZXJfX2xpbmVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zbGlkZXJfX3NlbGVjdGVkLWxpbmVcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zbGlkZXJfX2tub2JcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3VmZml4XCI+XG4gICAgICAgICAgICAke3RoaXMuZW5kSWNvbiA/IGh0bWxgPHNiYi1pY29uIG5hbWU9XCIke3RoaXMuZW5kSWNvbn1cIj48L3NiYi1pY29uPmAgOiBub3RoaW5nfVxuICAgICAgICAgIDwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2xpZGVyJzogU2JiU2xpZGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztJQ3NDTSwwQkFBZ0I7eUJBSHJCLGVBQWUsRUFDZCxVQUFVLEtBQ1gsQ0FBQyxDQUFBOzs7O21CQUM2QixpQkFDN0IsaUJBQWlCLHVCQUF1QixXQUFXLENBQUMsQ0FDckQ7Ozs7Ozs7Ozs7OztzQ0FGOEIsWUFFOUI7Ozs7Ozs0QkFhRSxVQUFVLENBQUE7b0NBZVYsU0FBUztJQUFFLFdBQVc7SUFBbUIsTUFBTTtJQUFRLENBQUMsQ0FBQTswQkFTeEQsVUFBVSxDQUFB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
346
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC1DWHJHSXBraC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2xpZGVyL3NsaWRlci5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tX3NiYi1zbGlkZXItdmFsdWUtZnJhY3Rpb246IDA7XG5cbiAgLy8gVXNlICFpbXBvcnRhbnQgaGVyZSB0byBub3QgaW50ZXJmZXJlIHdpdGggRmlyZWZveCBmb2N1cyByaW5nIGRlZmluaXRpb25cbiAgLy8gd2hpY2ggYXBwZWFycyBpbiBub3JtYWxpemUgQ1NTIG9mIHNldmVyYWwgZnJhbWV3b3Jrcy5cbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXNsaWRlci1taW4td2lkdGgpO1xuICB3aWR0aDogbWluKHZhcigtLXNiYi1zbGlkZXItd2lkdGgpLCAxMDAlKTtcbn1cblxuOmhvc3QoOmRpc2FibGVkKSB7XG4gIC0tc2JiLXNsaWRlci1pY29uLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSksIHZhcigtLXNiYi1jb2xvci1zbW9rZSkpO1xuICAtLXNiYi1zbGlkZXIta25vYi1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1ib3JkZXItY29sb3ItNSk7XG4gIC0tc2JiLXNsaWRlci1rbm9iLWJvcmRlci1zaXplOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTJ4KTtcbiAgLS1zYmItc2xpZGVyLWtub2ItYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG59XG5cbjpob3N0KFtyZWFkb25seV0pIHtcbiAgLS1zYmItc2xpZGVyLWljb24tY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbiAgLS1zYmItc2xpZGVyLWtub2ItYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItc2xpZGVyLXNlbGVjdGVkLWxpbmUtZGlzYWJsZWQtY29sb3IpO1xufVxuXG46aG9zdCg6ZGlzYWJsZWQpLFxuOmhvc3QoW3JlYWRvbmx5XSkge1xuICAtLXNiYi1zbGlkZXItbGluZS1jb2xvcjogdmFyKC0tc2JiLXNsaWRlci1saW5lLWRpc2FibGVkLWNvbG9yKTtcbiAgLS1zYmItc2xpZGVyLXNlbGVjdGVkLWxpbmUtY29sb3I6IHZhcigtLXNiYi1zbGlkZXItc2VsZWN0ZWQtbGluZS1kaXNhYmxlZC1jb2xvcik7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXNsaWRlci1pY29uLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAtLXNiYi1zbGlkZXItc2VsZWN0ZWQtbGluZS1kaXNhYmxlZC1jb2xvcjogR3JheVRleHQ7XG4gICAgLS1zYmItc2xpZGVyLWxpbmUtZGlzYWJsZWQtY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbi5zYmItc2xpZGVyX19oZWlnaHQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICBAaW5jbHVkZSBzYmIuemVyby13aWR0aC1zcGFjZTtcbn1cblxuLnNiYi1zbGlkZXJfX3dyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLXNiYi1zbGlkZXItZ2FwKTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXNsaWRlci1wYWRkaW5nLWJsb2NrKTtcbiAgY29sb3I6IHZhcigtLXNiYi1zbGlkZXItaWNvbi1jb2xvcik7XG59XG5cbi5zYmItc2xpZGVyX19jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuICBmbGV4LWdyb3c6IDE7XG59XG5cbi5zYmItc2xpZGVyX19yYW5nZS1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGluc2V0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5zYmItc2xpZGVyX19saW5lIHtcbiAgQGluY2x1ZGUgc2JiLmFic29sdXRlLWNlbnRlci15O1xuXG4gIGhlaWdodDogdmFyKC0tc2JiLXNsaWRlci1saW5lLWhlaWdodCk7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2xpZGVyLWxpbmUtY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2xpZGVyLWxpbmUtaGVpZ2h0KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zYmItc2xpZGVyX19zZWxlY3RlZC1saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zbGlkZXItc2VsZWN0ZWQtbGluZS1jb2xvcik7XG4gIHdpZHRoOiBjYWxjKHZhcigtLV9zYmItc2xpZGVyLXZhbHVlLWZyYWN0aW9uKSAqIDEwMCUpO1xufVxuXG4uc2JiLXNsaWRlcl9fa25vYiB7XG4gIEBpbmNsdWRlIHNiYi5hYnNvbHV0ZS1jZW50ZXIteTtcblxuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LWhhcmQpO1xuICB3aWR0aDogdmFyKC0tc2JiLXNsaWRlci1rbm9iLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1zbGlkZXIta25vYi1zaXplKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgIGNhbGModmFyKC0tX3NiYi1zbGlkZXItdmFsdWUtZnJhY3Rpb24pICogMTAwJSkgLSB2YXIoLS1zYmItc2xpZGVyLWtub2Itc2l6ZSkgKlxuICAgICAgdmFyKC0tX3NiYi1zbGlkZXItdmFsdWUtZnJhY3Rpb24pXG4gICk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLCBoZWlnaHQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbiwgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0xeCkpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXNsaWRlci1rbm9iLWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItc2xpZGVyLWtub2ItYm9yZGVyLXNpemUpIHZhcigtLXNiYi1zbGlkZXIta25vYi1ib3JkZXItc3R5bGUpXG4gICAgdmFyKC0tc2JiLXNsaWRlci1rbm9iLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gICAgLS1zYmItc2xpZGVyLWtub2Itc2l6ZTogdmFyKC0tc2JiLXNsaWRlci1rbm9iLXNpemUtYWN0aXZlKTtcbiAgfVxuXG4gIC8vIHNsaWRlciBrbm9iIHJlc2l6ZSBvbiBjbGljayAoYWN0aXZlIC8gZm9jdXMpXG4gIDpob3N0KDpub3QoOmlzKDpkaXNhYmxlZCwgW3JlYWRvbmx5XSkpKSAuc2JiLXNsaWRlcl9fcmFuZ2UtaW5wdXQ6YWN0aXZlIH4gJiB7XG4gICAgLS1zYmItc2xpZGVyLWtub2Itc2l6ZTogdmFyKC0tc2JiLXNsaWRlci1rbm9iLXNpemUtYWN0aXZlKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGZvcmNlVHlwZSxcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBob3N0QXR0cmlidXRlcyxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRWxlbWVudCxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgU2JiUmVhZG9ubHlNaXhpbixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uRWxlbWVudCB9IGZyb20gJy4uL2ljb24ucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NsaWRlci5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gaW5wdXQga25vYiB0aGF0IGNhbiBiZSBtb3ZlZCBpbiBhIHJhbmdlLlxuICpcbiAqIEBzbG90IHByZWZpeCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGljb24gb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgaW5wdXQuXG4gKiBAc2xvdCBzdWZmaXggLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBpY29uIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBpbnB1dC5cbiAqIEBldmVudCB7SW5wdXRFdmVudH0gaW5wdXQgLSBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqL1xuZXhwb3J0XG5AaG9zdEF0dHJpYnV0ZXMoe1xuICB0YWJpbmRleDogJzAnLFxufSlcbmNsYXNzIFNiYlNsaWRlckVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZWFkb25seU1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCkpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2xpZGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1NiYkljb25FbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3NsaWRlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKlxuICAgKiBWYWx1ZSBvZiB0aGUgZm9ybSBlbGVtZW50LlxuICAgKiBJZiBubyB2YWx1ZSBpcyBwcm92aWRlZCwgZGVmYXVsdCBpcyB0aGUgbWlkZGxlIHBvaW50IGJldHdlZW4gbWluIGFuZCBtYXguXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2lzVmFsaWROdW1iZXIodmFsdWUpKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2JvdW5kQmV0d2Vlbk1pbk1heCh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVZhbHVlTm93ID0gdGhpcy52YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/IHRoaXMuX2RlZmF1bHRWYWx1ZSgpO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiogTnVtZXJpYyB2YWx1ZSBmb3IgdGhlIGlubmVyIEhUTUxJbnB1dEVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3ZhbHVlLWFzLW51bWJlcicsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IHZhbHVlQXNOdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU/LnRvU3RyaW5nKCkgPz8gbnVsbDtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlQXNOdW1iZXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIC8qKiBNaW5pbXVtIGFjY2VwdGFibGUgdmFsdWUgZm9yIHRoZSBpbm5lciBIVE1MSW5wdXRFbGVtZW50LiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IG1pbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkTnVtYmVyKHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX21pbiA9IHZhbHVlO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFWYWx1ZU1pbiA9IHRoaXMubWluO1xuICAgIGNvbnN0IGJvdW5kVmFsdWUgPSB0aGlzLl9ib3VuZEJldHdlZW5NaW5NYXgodGhpcy52YWx1ZSk7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09IGJvdW5kVmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBib3VuZFZhbHVlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IG1pbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9taW47XG4gIH1cbiAgcHJpdmF0ZSBfbWluOiBzdHJpbmcgPSAnMCc7XG5cbiAgLyoqIE1heGltdW0gYWNjZXB0YWJsZSB2YWx1ZSBmb3IgdGhlIGlubmVyIEhUTUxJbnB1dEVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgbWF4KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWROdW1iZXIodmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbWF4ID0gdmFsdWU7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVZhbHVlTWF4ID0gdGhpcy5tYXg7XG4gICAgY29uc3QgYm91bmRWYWx1ZSA9IHRoaXMuX2JvdW5kQmV0d2Vlbk1pbk1heCh0aGlzLnZhbHVlKTtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gYm91bmRWYWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGJvdW5kVmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgbWF4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX21heDtcbiAgfVxuICBwcml2YXRlIF9tYXg6IHN0cmluZyA9ICcxMDAnO1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBpY29uIGF0IGNvbXBvbmVudCdzIHN0YXJ0LCB3aGljaCB3aWxsIGJlIGZvcndhcmQgdG8gdGhlIG5lc3RlZCBgc2JiLWljb25gLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc3RhcnQtaWNvbicgfSlcbiAgcHVibGljIGFjY2Vzc29yIHN0YXJ0SWNvbjogc3RyaW5nID0gJyc7XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGljb24gYXQgY29tcG9uZW50J3MgZW5kLCB3aGljaCB3aWxsIGJlIGZvcndhcmQgdG8gdGhlIG5lc3RlZCBgc2JiLWljb25gLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZW5kLWljb24nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBlbmRJY29uOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAqIEBkZWZhdWx0ICdyYW5nZSdcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAncmFuZ2UnO1xuICB9XG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgaW5uZXIgSFRNTElucHV0RWxlbWVudCB3aXRoIHR5cGU9J3JhbmdlJy4gKi9cbiAgcHJpdmF0ZSBfcmFuZ2VJbnB1dCE6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5ZG93bihlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlYWRPbmx5JykpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IEJvb2xlYW4odGhpcy5yZWFkT25seSkudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tX3NiYi1zbGlkZXItdmFsdWUtZnJhY3Rpb24nLCB0aGlzLl92YWx1ZUZyYWN0aW9uKCkudG9TdHJpbmcoKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJlc2V0IHZhbHVlIGlzIHRoZSBhdHRyaWJ1dGUgdmFsdWUgKHRoZSBzZXR1cCB2YWx1ZSkuIElmIG5vdCBwcmVzZW50LCBjYWxjdWxhdGVzIHRoZSBkZWZhdWx0LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPz8gdGhpcy5fZGVmYXVsdFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHN0YXRlIGFzIHN0cmluZyB8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBkZWZhdWx0IGlzIHRoZSBtaWRkbGUgcG9pbnQgYmV0d2VlbiBtaW4gYW5kIG1heFxuICAgKiAgKHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvcmFuZ2UjdmFsdWUpXG4gICAqL1xuICBwcml2YXRlIF9kZWZhdWx0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKCt0aGlzLm1pbiArICgrdGhpcy5tYXggLSArdGhpcy5taW4pIC8gMikudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWROdW1iZXIodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2YWx1ZSBpcyBzdHJpbmcge1xuICAgIHJldHVybiAhIXZhbHVlICYmICFpc05hTihOdW1iZXIodmFsdWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0cmFpbnMgdGhlIHZhbHVlIGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4XG4gICAqL1xuICBwcml2YXRlIF9ib3VuZEJldHdlZW5NaW5NYXgodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE1hdGgubWF4KCt0aGlzLm1pbiwgTWF0aC5taW4oK3RoaXMubWF4LCArdmFsdWUpKS50b1N0cmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWVGcmFjdGlvbigpOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZUFzTnVtYmVyITtcbiAgICBjb25zdCBtaW4gPSArdGhpcy5taW47XG4gICAgY29uc3QgbWF4ID0gK3RoaXMubWF4O1xuXG4gICAgY29uc3QgbWF0aEZyYWN0aW9uOiBudW1iZXIgPSAodmFsdWUgLSBtaW4pIC8gKG1heCAtIG1pbik7XG4gICAgcmV0dXJuIGlzTmFOKG1hdGhGcmFjdGlvbikgPyAwIDogTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgbWF0aEZyYWN0aW9uKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQudmFsdWUgPSB0aGlzLm1pbjtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQudmFsdWUgPSB0aGlzLm1heDtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5fcmFuZ2VJbnB1dC5zdGVwRG93bigpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQuc3RlcFVwKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdQYWdlRG93bicpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQuc3RlcERvd24oKCt0aGlzLm1heCAtICt0aGlzLm1pbikgLyAxMCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdQYWdlVXAnKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnN0ZXBVcCgoK3RoaXMubWF4IC0gK3RoaXMubWluKSAvIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFdlIGhhdmUgdG8gbWFudWFsbHkgZmlyZSBldmVudHMgYmVjYXVzZSBwcm9ncmFtbWF0aWMgY2hhbmdlcyBkb24ndCB0cmlnZ2VyIHRoZW1cbiAgICB0aGlzLl9yYW5nZUlucHV0LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pLFxuICAgICk7XG4gICAgdGhpcy5fcmFuZ2VJbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyB0aGUgY2hhbmdlIGV2ZW50LiAqL1xuICBwcml2YXRlIF9kaXNwYXRjaENoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLlxuICAgICAqIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkXG4gICAgICogZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuXG4gICAgICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcblxuICAgIC8qKlxuICAgICAqIERlcHJlY2F0ZWQuIE1pcnJvcnMgY2hhbmdlIGV2ZW50IGZvciBSZWFjdC4gV2lsbCBiZSByZW1vdmVkIG9uY2UgUmVhY3QgcHJvcGVybHkgc3VwcG9ydHMgY2hhbmdlIGV2ZW50cy5cbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2RpZENoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19oZWlnaHQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX193cmFwcGVyXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInByZWZpeFwiPlxuICAgICAgICAgICAgJHt0aGlzLnN0YXJ0SWNvbiA/IGh0bWxgPHNiYi1pY29uIG5hbWU9XCIke3RoaXMuc3RhcnRJY29ufVwiPjwvc2JiLWljb24+YCA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9zbG90PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgbWluPSR7dGhpcy5taW59XG4gICAgICAgICAgICAgIG1heD0ke3RoaXMubWF4fVxuICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkIHx8IHRoaXMucmVhZE9ubHl9XG4gICAgICAgICAgICAgIHZhbHVlPSR7dGhpcy52YWx1ZSB8fCBub3RoaW5nfVxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1zbGlkZXJfX3JhbmdlLWlucHV0XCJcbiAgICAgICAgICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgICAgICAgICAgQGNoYW5nZT0keygpID0+IHRoaXMuX2Rpc3BhdGNoQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgQGlucHV0PSR7KCkgPT4gKHRoaXMudmFsdWUgPSB0aGlzLl9yYW5nZUlucHV0LnZhbHVlKX1cbiAgICAgICAgICAgICAgJHtyZWYoKGlucHV0PzogRWxlbWVudCkgPT4gKHRoaXMuX3JhbmdlSW5wdXQgPSBpbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50KSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zbGlkZXJfX2xpbmVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zbGlkZXJfX3NlbGVjdGVkLWxpbmVcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zbGlkZXJfX2tub2JcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3VmZml4XCI+XG4gICAgICAgICAgICAke3RoaXMuZW5kSWNvbiA/IGh0bWxgPHNiYi1pY29uIG5hbWU9XCIke3RoaXMuZW5kSWNvbn1cIj48L3NiYi1pY29uPmAgOiBub3RoaW5nfVxuICAgICAgICAgIDwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2xpZGVyJzogU2JiU2xpZGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztJQ3NDTSwwQkFBZ0I7eUJBSHJCLGVBQWUsRUFDZCxVQUFVLEtBQ1gsQ0FBQyxDQUFBOzs7O21CQUM2QixpQkFDN0IsaUJBQWlCLHVCQUF1QixXQUFXLENBQUMsQ0FDckQ7Ozs7Ozs7Ozs7OztzQ0FGOEIsWUFFOUI7Ozs7Ozs0QkFhRSxVQUFVLENBQUE7b0NBZVYsU0FBUztJQUFFLFdBQVc7SUFBbUIsTUFBTTtJQUFRLENBQUMsQ0FBQTswQkFTeEQsVUFBVSxDQUFB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
@@ -1,4 +1,4 @@
1
- import { t as SbbSliderElement } from "./slider.component-ZBdkbZei.js";
1
+ import { t as SbbSliderElement } from "./slider.component-CXrGIpkh.js";
2
2
  import "./slider.pure.js";
3
3
  //#region src/elements/slider.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbSliderElement } from "./slider.component-ZBdkbZei.js";
1
+ import { t as SbbSliderElement } from "./slider.component-CXrGIpkh.js";
2
2
  export { SbbSliderElement };
@@ -0,0 +1,126 @@
1
+ import { html, unsafeCSS } from "lit";
2
+ import { SbbButtonBaseElement, SbbDisabledMixin, SbbPropertyWatcherController, appendAriaElements, boxSizingStyles, removeAriaElements } from "./core.js";
3
+ import { SbbIconNameMixin } from "./icon.pure.js";
4
+ //#region src/elements/stepper/step-label/step-label.scss?inline
5
+ var step_label_default = ":host {\n --sbb-step-label-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n --_sbb-step-label-inset-block-start: var(--sbb-step-label-inset-block-start-size-m);\n --_sbb-step-label-inset-inline-start: calc(var(--sbb-step-label-prefix-size) / 2);\n --_sbb-step-label-translate-y: calc(\n -50% + var(--sbb-step-label-translate-y-content-hover, 0rem)\n );\n --_sbb-step-label-prefix-inset-block-start: calc(\n 1em * (var(--sbb-typo-line-height-text) / 2) + (var(--sbb-border-width-1x) / 2) -\n (var(--sbb-step-label-prefix-size) / 2)\n );\n position: relative;\n display: flex;\n min-width: 0;\n max-width: fit-content;\n gap: var(--sbb-step-label-gap);\n cursor: var(--sbb-step-label-cursor);\n color: var(--sbb-step-label-color);\n font-size: var(--sbb-step-label-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n}\n:host::before {\n position: absolute;\n top: 50%;\n left: 50%;\n translate: -50% -50%;\n font-size: var(--sbb-text-font-size-xxs);\n font-weight: var(--sbb-step-label-font-weight-selected, normal);\n inset-block-start: var(--_sbb-step-label-inset-block-start);\n inset-inline-start: var(--_sbb-step-label-inset-inline-start);\n line-height: 1;\n z-index: 1;\n translate: -50% var(--_sbb-step-label-translate-y);\n transition: translate var(--sbb-step-label-animation-duration) var(--sbb-animation-easing);\n}\n\n:host(:is(:state(selected),[state--selected])) {\n --sbb-step-label-color: var(--sbb-color-3);\n --sbb-step-label-font-weight-selected: bold;\n}\n@media (forced-colors: active) {\n :host(:is(:state(selected),[state--selected])) {\n --sbb-step-label-color: Highlight !important;\n }\n}\n\n:host(:is(:state(size-s),[state--size-s])) {\n --sbb-step-label-gap: var(--sbb-spacing-fixed-3x);\n --sbb-step-label-prefix-size: var(--sbb-size-element-xxxs);\n --sbb-step-label-font-size: var(--sbb-text-font-size-m);\n --_sbb-step-label-inset-block-start: var(--sbb-step-label-inset-block-start-size-s);\n}\n\n:host(:disabled) {\n --sbb-step-label-color: var(--sbb-color-granite);\n --sbb-step-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-graphite));\n --sbb-step-label-prefix-border-style: dashed;\n}\n@media (forced-colors: active) {\n :host(:disabled) {\n --sbb-step-label-color: GrayText !important;\n }\n}\n\n@media (any-hover: hover) {\n :host(:hover:not(:disabled)) {\n --sbb-step-label-cursor: var(--sbb-cursor-pointer);\n --sbb-step-label-prefix-background-color: var(--sbb-background-color-3);\n --sbb-step-label-translate-y-content-hover: -0.0625rem;\n --sbb-step-label-prefix-size-grow-hover: calc(var(--sbb-border-width-2x) * -1);\n }\n}\n\n:host(:focus-visible) {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n border-radius: var(--sbb-border-radius-1x);\n}\n\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) {\n transition: margin var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);\n}\n\n:host(:is(:state(orientation-vertical),[state--orientation-vertical]):not(:first-of-type)) {\n margin-block-start: var(--sbb-spacing-fixed-6x);\n}\n\n:host(:is(:state(selected),[state--selected]):is(:state(orientation-vertical),[state--orientation-vertical])) {\n margin-block-end: var(--sbb-spacing-fixed-8x);\n}\n\n.sbb-step-label__prefix {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--sbb-step-label-prefix-size);\n height: var(--sbb-step-label-prefix-size);\n inset-block-start: var(--_sbb-step-label-prefix-inset-block-start);\n}\n.sbb-step-label__prefix::before {\n content: \"\";\n position: absolute;\n inset: calc(var(--sbb-step-label-prefix-size-grow-hover, 0rem));\n border-radius: var(--sbb-border-radius-infinity);\n border: var(--sbb-border-width-1x) var(--sbb-step-label-prefix-border-style) var(--sbb-step-label-prefix-border-color);\n background-color: var(--sbb-step-label-prefix-background-color);\n transition-duration: var(--sbb-step-label-animation-duration);\n transition-timing-function: var(--sbb-animation-easing);\n transition-property: background-color, inset;\n}\n\n.sbb-step-label__text {\n font-weight: bold;\n}\n:host(:is(:state(orientation-horizontal),[state--orientation-horizontal])) .sbb-step-label__text {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n::slotted(sbb-icon),\nsbb-icon {\n z-index: 1;\n background-color: var(--sbb-step-label-prefix-background-color);\n border-radius: var(--sbb-border-radius-infinity);\n translate: 0 var(--sbb-step-label-translate-y-content-hover, 0rem);\n transition-duration: var(--sbb-step-label-animation-duration);\n transition-timing-function: var(--sbb-animation-easing);\n transition-property: background-color, translate;\n}";
6
+ //#endregion
7
+ //#region src/elements/stepper/step-label/step-label.component.ts
8
+ /**
9
+ * Combined with a `sbb-stepper`, it displays a step's label.
10
+ *
11
+ * @slot - Use the unnamed slot to provide a label.
12
+ * @slot icon - Use this to display an icon in the label bubble.
13
+ */
14
+ var SbbStepLabelElement = class extends SbbIconNameMixin(SbbDisabledMixin(SbbButtonBaseElement)) {
15
+ static {
16
+ this.elementName = "sbb-step-label";
17
+ }
18
+ static {
19
+ this.role = "tab";
20
+ }
21
+ static {
22
+ this.styles = [boxSizingStyles, unsafeCSS(step_label_default)];
23
+ }
24
+ /** The step controlled by the label. */
25
+ get step() {
26
+ return this._step;
27
+ }
28
+ get stepper() {
29
+ return this.closest("sbb-stepper");
30
+ }
31
+ set disabled(value) {
32
+ super.disabled = value;
33
+ this.toggleState("user-disabled", value);
34
+ }
35
+ get disabled() {
36
+ return super.disabled;
37
+ }
38
+ constructor() {
39
+ super();
40
+ this._step = null;
41
+ this.addEventListener?.("click", () => {
42
+ const stepper = this.stepper;
43
+ if (stepper && this.step && this._isNotDeactivatedByLinearMode(this.step)) stepper.selected = this.step;
44
+ });
45
+ this.addController(new SbbPropertyWatcherController(this, () => this.stepper, {
46
+ orientation: (s) => {
47
+ if (this._previousOrientation) this.internals.states.delete(`orientation-${this._previousOrientation}`);
48
+ this._previousOrientation = s.orientation;
49
+ if (this._previousOrientation) this.internals.states.add(`orientation-${this._previousOrientation}`);
50
+ },
51
+ size: (s) => {
52
+ if (this._previousSize) this.internals.states.delete(`size-${this._previousSize}`);
53
+ this._previousSize = s.size;
54
+ if (this._previousSize) this.internals.states.add(`size-${this._previousSize}`);
55
+ }
56
+ }));
57
+ }
58
+ _isNotDeactivatedByLinearMode(step) {
59
+ const stepper = this.stepper;
60
+ if (stepper?.linear && stepper.selectedIndex !== null) {
61
+ const index = stepper.steps.indexOf(step);
62
+ return index < stepper.selectedIndex || index === stepper.selectedIndex + 1;
63
+ }
64
+ return true;
65
+ }
66
+ connectedCallback() {
67
+ super.connectedCallback();
68
+ this.slot ||= "step-label";
69
+ this.internals.ariaSelected = "false";
70
+ this.tabIndex = -1;
71
+ this._assignStep();
72
+ }
73
+ /**
74
+ * Selects and configures the step label.
75
+ * @internal
76
+ */
77
+ select() {
78
+ this.tabIndex = 0;
79
+ this.internals.ariaSelected = "true";
80
+ this.internals.states.add("selected");
81
+ }
82
+ /**
83
+ * Deselects and configures the step label.
84
+ * @internal
85
+ */
86
+ deselect() {
87
+ this.tabIndex = -1;
88
+ this.internals.ariaSelected = "false";
89
+ this.internals.states.delete("selected");
90
+ }
91
+ /**
92
+ * Configures the step label.
93
+ * @internal
94
+ */
95
+ configure(posInSet, setSize, stepperLoaded) {
96
+ if (stepperLoaded) this._assignStep();
97
+ this.internals.ariaPosInSet = `${posInSet}`;
98
+ this.internals.ariaSetSize = `${setSize}`;
99
+ }
100
+ _assignStep() {
101
+ let nextSibling = this.nextElementSibling;
102
+ while (nextSibling && nextSibling.localName !== "sbb-step") nextSibling = nextSibling.nextElementSibling;
103
+ const value = nextSibling;
104
+ this.internals.ariaControlsElements = removeAriaElements(this.internals.ariaControlsElements, this._step);
105
+ this._step = value instanceof Element ? value : null;
106
+ this.internals.ariaControlsElements = appendAriaElements(this.internals.ariaControlsElements, this._step);
107
+ }
108
+ /**
109
+ * @internal
110
+ * Disables the step label and avoids setting the `disabled` state to preserve the initial
111
+ * disabled state in case of switching between linear and non-linear mode.
112
+ */
113
+ disable(value) {
114
+ super.disabled = value;
115
+ }
116
+ render() {
117
+ return html`
118
+ <span class="sbb-step-label__prefix">${this.renderIconSlot()}</span>
119
+ <span class="sbb-step-label__text"><slot></slot></span>
120
+ `;
121
+ }
122
+ };
123
+ //#endregion
124
+ export { SbbStepLabelElement as t };
125
+
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1sYWJlbC5jb21wb25lbnQtQlRYdWFPTnguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcC1sYWJlbC9zdGVwLWxhYmVsLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcC1sYWJlbC9zdGVwLWxhYmVsLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXN0ZXAtbGFiZWwtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0yeClcbiAgKTtcbiAgLS1fc2JiLXN0ZXAtbGFiZWwtaW5zZXQtYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zdGVwLWxhYmVsLWluc2V0LWJsb2NrLXN0YXJ0LXNpemUtbSk7XG4gIC0tX3NiYi1zdGVwLWxhYmVsLWluc2V0LWlubGluZS1zdGFydDogY2FsYyh2YXIoLS1zYmItc3RlcC1sYWJlbC1wcmVmaXgtc2l6ZSkgLyAyKTtcbiAgLS1fc2JiLXN0ZXAtbGFiZWwtdHJhbnNsYXRlLXk6IGNhbGMoXG4gICAgLTUwJSArIHZhcigtLXNiYi1zdGVwLWxhYmVsLXRyYW5zbGF0ZS15LWNvbnRlbnQtaG92ZXIsICN7c2JiLnB4LXRvLXJlbS1idWlsZCgwKX0pXG4gICk7XG4gIC0tX3NiYi1zdGVwLWxhYmVsLXByZWZpeC1pbnNldC1ibG9jay1zdGFydDogY2FsYyhcbiAgICAxZW0gKiAodmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkgLyAyKSArICh2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSAvIDIpIC1cbiAgICAgICh2YXIoLS1zYmItc3RlcC1sYWJlbC1wcmVmaXgtc2l6ZSkgLyAyKVxuICApO1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IGZpdC1jb250ZW50O1xuICBnYXA6IHZhcigtLXNiYi1zdGVwLWxhYmVsLWdhcCk7XG4gIGN1cnNvcjogdmFyKC0tc2JiLXN0ZXAtbGFiZWwtY3Vyc29yKTtcbiAgY29sb3I6IHZhcigtLXNiYi1zdGVwLWxhYmVsLWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItc3RlcC1sYWJlbC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBzYmIuYWJzb2x1dGUtY2VudGVyLXgteTtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXh4cyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXNiYi1zdGVwLWxhYmVsLWZvbnQtd2VpZ2h0LXNlbGVjdGVkLCBub3JtYWwpO1xuICAgIGluc2V0LWJsb2NrLXN0YXJ0OiB2YXIoLS1fc2JiLXN0ZXAtbGFiZWwtaW5zZXQtYmxvY2stc3RhcnQpO1xuICAgIGluc2V0LWlubGluZS1zdGFydDogdmFyKC0tX3NiYi1zdGVwLWxhYmVsLWluc2V0LWlubGluZS1zdGFydCk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2xhdGU6IC01MCUgdmFyKC0tX3NiYi1zdGVwLWxhYmVsLXRyYW5zbGF0ZS15KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2xhdGUgdmFyKC0tc2JiLXN0ZXAtbGFiZWwtYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHNlbGVjdGVkKSkge1xuICAtLXNiYi1zdGVwLWxhYmVsLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMyk7XG4gIC0tc2JiLXN0ZXAtbGFiZWwtZm9udC13ZWlnaHQtc2VsZWN0ZWQ6IGJvbGQ7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXN0ZXAtbGFiZWwtY29sb3I6IEhpZ2hsaWdodCAhaW1wb3J0YW50O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShzaXplLXMpKSB7XG4gIC0tc2JiLXN0ZXAtbGFiZWwtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG4gIC0tc2JiLXN0ZXAtbGFiZWwtcHJlZml4LXNpemU6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHh4cyk7XG4gIC0tc2JiLXN0ZXAtbGFiZWwtZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtbSk7XG4gIC0tX3NiYi1zdGVwLWxhYmVsLWluc2V0LWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3RlcC1sYWJlbC1pbnNldC1ibG9jay1zdGFydC1zaXplLXMpO1xufVxuXG46aG9zdCg6ZGlzYWJsZWQpIHtcbiAgLS1zYmItc3RlcC1sYWJlbC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSkpO1xuICAtLXNiYi1zdGVwLWxhYmVsLXByZWZpeC1ib3JkZXItc3R5bGU6IGRhc2hlZDtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItc3RlcC1sYWJlbC1jb2xvcjogR3JheVRleHQgIWltcG9ydGFudDtcbiAgfVxufVxuXG46aG9zdCg6aG92ZXI6bm90KDpkaXNhYmxlZCkpIHtcbiAgQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICAgIC0tc2JiLXN0ZXAtbGFiZWwtY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuICAgIC0tc2JiLXN0ZXAtbGFiZWwtcHJlZml4LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xuICAgIC0tc2JiLXN0ZXAtbGFiZWwtdHJhbnNsYXRlLXktY29udGVudC1ob3ZlcjogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKC0xKX07XG4gICAgLS1zYmItc3RlcC1sYWJlbC1wcmVmaXgtc2l6ZS1ncm93LWhvdmVyOiBjYWxjKHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMngpICogLTEpO1xuICB9XG59XG5cbjpob3N0KDpmb2N1cy12aXNpYmxlKSB7XG4gIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1ib3JkZXItcmFkaXVzLTF4KTtcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkge1xuICB0cmFuc2l0aW9uOiBtYXJnaW4gdmFyKC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG59XG5cbjpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCk6bm90KDpmaXJzdC1vZi10eXBlKSkge1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTZ4KTtcbn1cblxuOmhvc3QoOnN0YXRlKHNlbGVjdGVkKTpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpIHtcbiAgbWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtOHgpO1xufVxuXG4uc2JiLXN0ZXAtbGFiZWxfX3ByZWZpeCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogdmFyKC0tc2JiLXN0ZXAtbGFiZWwtcHJlZml4LXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1zdGVwLWxhYmVsLXByZWZpeC1zaXplKTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IHZhcigtLV9zYmItc3RlcC1sYWJlbC1wcmVmaXgtaW5zZXQtYmxvY2stc3RhcnQpO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiBjYWxjKHZhcigtLXNiYi1zdGVwLWxhYmVsLXByZWZpeC1zaXplLWdyb3ctaG92ZXIsICN7c2JiLnB4LXRvLXJlbS1idWlsZCgwKX0pKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy1pbmZpbml0eSk7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSB2YXIoLS1zYmItc3RlcC1sYWJlbC1wcmVmaXgtYm9yZGVyLXN0eWxlKVxuICAgICAgdmFyKC0tc2JiLXN0ZXAtbGFiZWwtcHJlZml4LWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXN0ZXAtbGFiZWwtcHJlZml4LWJhY2tncm91bmQtY29sb3IpO1xuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItc3RlcC1sYWJlbC1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgICBwcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgaW5zZXQ7XG4gICAgfVxuICB9XG59XG5cbi5zYmItc3RlcC1sYWJlbF9fdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi1ob3Jpem9udGFsKSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLmVsbGlwc2lzO1xuICB9XG59XG5cbjo6c2xvdHRlZChzYmItaWNvbiksXG5zYmItaWNvbiB7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zdGVwLWxhYmVsLXByZWZpeC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtaW5maW5pdHkpO1xuICB0cmFuc2xhdGU6IDAgdmFyKC0tc2JiLXN0ZXAtbGFiZWwtdHJhbnNsYXRlLXktY29udGVudC1ob3ZlciwgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDApfSk7XG4gIHRyYW5zaXRpb246IHtcbiAgICBkdXJhdGlvbjogdmFyKC0tc2JiLXN0ZXAtbGFiZWwtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICBwcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgdHJhbnNsYXRlO1xuICB9XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQge1xuICBhcHBlbmRBcmlhRWxlbWVudHMsXG4gIGJveFNpemluZ1N0eWxlcyxcbiAgcmVtb3ZlQXJpYUVsZW1lbnRzLFxuICBTYmJCdXR0b25CYXNlRWxlbWVudCxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiU3RlcEVsZW1lbnQgfSBmcm9tICcuLi9zdGVwL3N0ZXAuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiU3RlcHBlckVsZW1lbnQgfSBmcm9tICcuLi9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc3RlcC1sYWJlbC5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIGBzYmItc3RlcHBlcmAsIGl0IGRpc3BsYXlzIGEgc3RlcCdzIGxhYmVsLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gcHJvdmlkZSBhIGxhYmVsLlxuICogQHNsb3QgaWNvbiAtIFVzZSB0aGlzIHRvIGRpc3BsYXkgYW4gaWNvbiBpbiB0aGUgbGFiZWwgYnViYmxlLlxuICovXG5leHBvcnQgY2xhc3MgU2JiU3RlcExhYmVsRWxlbWVudCBleHRlbmRzIFNiYkljb25OYW1lTWl4aW4oU2JiRGlzYWJsZWRNaXhpbihTYmJCdXR0b25CYXNlRWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zdGVwLWxhYmVsJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3RhYic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKiBUaGUgc3RlcCBjb250cm9sbGVkIGJ5IHRoZSBsYWJlbC4gKi9cbiAgcHVibGljIGdldCBzdGVwKCk6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXA7XG4gIH1cbiAgcHJpdmF0ZSBfc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZ2V0IHN0ZXBwZXIoKTogU2JiU3RlcHBlckVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jbG9zZXN0KCdzYmItc3RlcHBlcicpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHN1cGVyLmRpc2FibGVkID0gdmFsdWU7XG5cbiAgICAvLyBXZSBhZGRpdGlvbmFsbHkga2VlcCB0cmFjayBvZiB0aGUgYGRpc2FibGVkYCBzdGF0ZSB0byBwcmVzZXJ2ZSB0aGUgdXNlciBjb25maWd1cmVkIGRpc2FibGVkIHN0YXRlXG4gICAgLy8gb2Ygc3RlcCBsYWJlbHMgaW4gY2FzZSBvZiBzd2l0Y2hpbmcgYmV0d2VlbiBsaW5lYXIgYW5kIG5vbi1saW5lYXIgbW9kZS5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCd1c2VyLWRpc2FibGVkJywgdmFsdWUpO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmRpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJldmlvdXNPcmllbnRhdGlvbj86IHN0cmluZztcbiAgcHJpdmF0ZSBfcHJldmlvdXNTaXplPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RlcHBlciA9IHRoaXMuc3RlcHBlcjtcbiAgICAgIGlmIChzdGVwcGVyICYmIHRoaXMuc3RlcCAmJiB0aGlzLl9pc05vdERlYWN0aXZhdGVkQnlMaW5lYXJNb2RlKHRoaXMuc3RlcCkpIHtcbiAgICAgICAgc3RlcHBlci5zZWxlY3RlZCA9IHRoaXMuc3RlcDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLnN0ZXBwZXIsIHtcbiAgICAgICAgb3JpZW50YXRpb246IChzKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzT3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYG9yaWVudGF0aW9uLSR7dGhpcy5fcHJldmlvdXNPcmllbnRhdGlvbn1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNPcmllbnRhdGlvbiA9IHMub3JpZW50YXRpb247XG4gICAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzT3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYG9yaWVudGF0aW9uLSR7dGhpcy5fcHJldmlvdXNPcmllbnRhdGlvbn1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNpemU6IChzKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNTaXplID0gcy5zaXplO1xuICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTm90RGVhY3RpdmF0ZWRCeUxpbmVhck1vZGUoc3RlcDogU2JiU3RlcEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdGVwcGVyID0gdGhpcy5zdGVwcGVyO1xuICAgIGlmIChzdGVwcGVyPy5saW5lYXIgJiYgc3RlcHBlci5zZWxlY3RlZEluZGV4ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHN0ZXBwZXIuc3RlcHMuaW5kZXhPZihzdGVwKTtcbiAgICAgIHJldHVybiBpbmRleCA8IHN0ZXBwZXIuc2VsZWN0ZWRJbmRleCB8fCBpbmRleCA9PT0gc3RlcHBlci5zZWxlY3RlZEluZGV4ICsgMTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNsb3QgfHw9ICdzdGVwLWxhYmVsJztcbiAgICB0aGlzLmludGVybmFscy5hcmlhU2VsZWN0ZWQgPSAnZmFsc2UnO1xuICAgIHRoaXMudGFiSW5kZXggPSAtMTtcbiAgICB0aGlzLl9hc3NpZ25TdGVwKCk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhbmQgY29uZmlndXJlcyB0aGUgc3RlcCBsYWJlbC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgIHRoaXMudGFiSW5kZXggPSAwO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFTZWxlY3RlZCA9ICd0cnVlJztcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdzZWxlY3RlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VsZWN0cyBhbmQgY29uZmlndXJlcyB0aGUgc3RlcCBsYWJlbC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy50YWJJbmRleCA9IC0xO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFTZWxlY3RlZCA9ICdmYWxzZSc7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnc2VsZWN0ZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBzdGVwIGxhYmVsLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBjb25maWd1cmUocG9zSW5TZXQ6IG51bWJlciwgc2V0U2l6ZTogbnVtYmVyLCBzdGVwcGVyTG9hZGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHN0ZXBwZXJMb2FkZWQpIHtcbiAgICAgIHRoaXMuX2Fzc2lnblN0ZXAoKTtcbiAgICB9XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVBvc0luU2V0ID0gYCR7cG9zSW5TZXR9YDtcbiAgICB0aGlzLmludGVybmFscy5hcmlhU2V0U2l6ZSA9IGAke3NldFNpemV9YDtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnblN0ZXAoKTogdm9pZCB7XG4gICAgbGV0IG5leHRTaWJsaW5nID0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgd2hpbGUgKG5leHRTaWJsaW5nICYmIG5leHRTaWJsaW5nLmxvY2FsTmFtZSAhPT0gJ3NiYi1zdGVwJykge1xuICAgICAgbmV4dFNpYmxpbmcgPSBuZXh0U2libGluZy5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBuZXh0U2libGluZyBhcyBTYmJTdGVwRWxlbWVudCB8IG51bGw7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYUNvbnRyb2xzRWxlbWVudHMgPSByZW1vdmVBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLmludGVybmFscy5hcmlhQ29udHJvbHNFbGVtZW50cyxcbiAgICAgIHRoaXMuX3N0ZXAsXG4gICAgKTtcbiAgICB0aGlzLl9zdGVwID0gdmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50ID8gdmFsdWUgOiBudWxsO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFDb250cm9sc0VsZW1lbnRzID0gYXBwZW5kQXJpYUVsZW1lbnRzKFxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUNvbnRyb2xzRWxlbWVudHMsXG4gICAgICB0aGlzLl9zdGVwLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIERpc2FibGVzIHRoZSBzdGVwIGxhYmVsIGFuZCBhdm9pZHMgc2V0dGluZyB0aGUgYGRpc2FibGVkYCBzdGF0ZSB0byBwcmVzZXJ2ZSB0aGUgaW5pdGlhbFxuICAgKiBkaXNhYmxlZCBzdGF0ZSBpbiBjYXNlIG9mIHN3aXRjaGluZyBiZXR3ZWVuIGxpbmVhciBhbmQgbm9uLWxpbmVhciBtb2RlLlxuICAgKi9cbiAgcHVibGljIGRpc2FibGUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBzdXBlci5kaXNhYmxlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1zdGVwLWxhYmVsX19wcmVmaXhcIj4ke3RoaXMucmVuZGVySWNvblNsb3QoKX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1zdGVwLWxhYmVsX190ZXh0XCI+PHNsb3Q+PC9zbG90Pjwvc3Bhbj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RlcC1sYWJlbCc6IFNiYlN0ZXBMYWJlbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQ3NCQSxJQUFhLHNCQUFiLGNBQXlDLGlCQUFpQixpQkFBaUIscUJBQXFCLENBQUMsQ0FBQTs7QUFDL0QsT0FBQSxjQUFzQjs7O0FBQ3RCLE9BQUEsT0FBTzs7O0FBQ2hCLE9BQUEsU0FBeUIsQ0FBQyxpQkFBaUIsVUFBVSxtQkFBTSxDQUFDOzs7Q0FHbkYsSUFBVyxPQUFJO0FBQ2IsU0FBTyxLQUFLOztDQUlkLElBQVcsVUFBTztBQUNoQixTQUFPLEtBQUssUUFBUSxjQUFjOztDQUdwQyxJQUFvQixTQUFTLE9BQWM7QUFDekMsUUFBTSxXQUFXO0FBSWpCLE9BQUssWUFBWSxpQkFBaUIsTUFBTTs7Q0FFMUMsSUFBb0IsV0FBUTtBQUMxQixTQUFPLE1BQU07O0NBTWYsY0FBQTtBQUNFLFNBQU87QUFyQkQsT0FBQSxRQUErQjtBQXVCckMsT0FBSyxtQkFBbUIsZUFBYztHQUNwQyxNQUFNLFVBQVUsS0FBSztBQUNyQixPQUFJLFdBQVcsS0FBSyxRQUFRLEtBQUssOEJBQThCLEtBQUssS0FBSyxDQUN2RSxTQUFRLFdBQVcsS0FBSztJQUUxQjtBQUNGLE9BQUssY0FDSCxJQUFJLDZCQUE2QixZQUFZLEtBQUssU0FBUztHQUN6RCxjQUFjLE1BQUs7QUFDakIsUUFBSSxLQUFLLHFCQUNQLE1BQUssVUFBVSxPQUFPLE9BQU8sZUFBZSxLQUFLLHVCQUF1QjtBQUUxRSxTQUFLLHVCQUF1QixFQUFFO0FBQzlCLFFBQUksS0FBSyxxQkFDUCxNQUFLLFVBQVUsT0FBTyxJQUFJLGVBQWUsS0FBSyx1QkFBdUI7O0dBR3pFLE9BQU8sTUFBSztBQUNWLFFBQUksS0FBSyxjQUNQLE1BQUssVUFBVSxPQUFPLE9BQU8sUUFBUSxLQUFLLGdCQUFnQjtBQUU1RCxTQUFLLGdCQUFnQixFQUFFO0FBQ3ZCLFFBQUksS0FBSyxjQUNQLE1BQUssVUFBVSxPQUFPLElBQUksUUFBUSxLQUFLLGdCQUFnQjs7R0FHNUQsQ0FBQyxDQUNIOztDQUdLLDhCQUE4QixNQUFvQjtFQUN4RCxNQUFNLFVBQVUsS0FBSztBQUNyQixNQUFJLFNBQVMsVUFBVSxRQUFRLGtCQUFrQixNQUFNO0dBQ3JELE1BQU0sUUFBUSxRQUFRLE1BQU0sUUFBUSxLQUFLO0FBQ3pDLFVBQU8sUUFBUSxRQUFRLGlCQUFpQixVQUFVLFFBQVEsZ0JBQWdCOztBQUU1RSxTQUFPOztDQUdPLG9CQUFpQjtBQUMvQixRQUFNLG1CQUFtQjtBQUN6QixPQUFLLFNBQVM7QUFDZCxPQUFLLFVBQVUsZUFBZTtBQUM5QixPQUFLLFdBQVc7QUFDaEIsT0FBSyxhQUFhOzs7Ozs7Q0FPYixTQUFNO0FBQ1gsT0FBSyxXQUFXO0FBQ2hCLE9BQUssVUFBVSxlQUFlO0FBQzlCLE9BQUssVUFBVSxPQUFPLElBQUksV0FBVzs7Ozs7O0NBT2hDLFdBQVE7QUFDYixPQUFLLFdBQVc7QUFDaEIsT0FBSyxVQUFVLGVBQWU7QUFDOUIsT0FBSyxVQUFVLE9BQU8sT0FBTyxXQUFXOzs7Ozs7Q0FPbkMsVUFBVSxVQUFrQixTQUFpQixlQUFzQjtBQUN4RSxNQUFJLGNBQ0YsTUFBSyxhQUFhO0FBRXBCLE9BQUssVUFBVSxlQUFlLEdBQUc7QUFDakMsT0FBSyxVQUFVLGNBQWMsR0FBRzs7Q0FHMUIsY0FBVztFQUNqQixJQUFJLGNBQWMsS0FBSztBQUN2QixTQUFPLGVBQWUsWUFBWSxjQUFjLFdBQzlDLGVBQWMsWUFBWTtFQUc1QixNQUFNLFFBQVE7QUFDZCxPQUFLLFVBQVUsdUJBQXVCLG1CQUNwQyxLQUFLLFVBQVUsc0JBQ2YsS0FBSyxNQUNOO0FBQ0QsT0FBSyxRQUFRLGlCQUFpQixVQUFVLFFBQVE7QUFDaEQsT0FBSyxVQUFVLHVCQUF1QixtQkFDcEMsS0FBSyxVQUFVLHNCQUNmLEtBQUssTUFDTjs7Ozs7OztDQVFJLFFBQVEsT0FBYztBQUMzQixRQUFNLFdBQVc7O0NBR0EsU0FBTTtBQUN2QixTQUFPLElBQUk7NkNBQzhCLEtBQUssZ0JBQWdCLENBQUEifQ==
@@ -1,2 +1,2 @@
1
- import { t as SbbStepLabelElement } from "../../step-label.component-B7M9Yqyz.js";
1
+ import { t as SbbStepLabelElement } from "../../step-label.component-BTXuaONx.js";
2
2
  export { SbbStepLabelElement };
@@ -1,4 +1,4 @@
1
- import { t as SbbStepLabelElement } from "./step-label.component-B7M9Yqyz.js";
1
+ import { t as SbbStepLabelElement } from "./step-label.component-BTXuaONx.js";
2
2
  import { t as SbbStepElement } from "./step.component-CVWxYkrv.js";
3
3
  import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-BTwJttZt.js";
4
4
  import "./stepper.pure.js";
@@ -1,4 +1,4 @@
1
- import { t as SbbStepLabelElement } from "./step-label.component-B7M9Yqyz.js";
1
+ import { t as SbbStepLabelElement } from "./step-label.component-BTXuaONx.js";
2
2
  import { t as SbbStepElement } from "./step.component-CVWxYkrv.js";
3
3
  import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-BTwJttZt.js";
4
4
  export { SbbStepChangeEvent, SbbStepElement, SbbStepLabelElement, SbbStepperElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbTeaserElement } from "../teaser.component-BJso_6lz.js";
1
+ import { t as SbbTeaserElement } from "../teaser.component-DwM26tMt.js";
2
2
  export { SbbTeaserElement };
@@ -1 +1 @@
1
- {"version":3,"file":"teaser-hero.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/teaser-hero/teaser-hero.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAI1E,OAAO,EAIL,KAAK,cAAc,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAKpB;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,gBAAgC,WAAW,EAAE,MAAM,CAAqB;IACxE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAA+B;IAC3F,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF,uBAAuB;IACvB,SAEgB,WAAW,EAAE,MAAM,CAAM;IAEzC,OAAO,CAAC,iBAAiB;cAIN,cAAc,IAAI,cAAc;CAmBpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
1
+ {"version":3,"file":"teaser-hero.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/teaser-hero/teaser-hero.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAI1E,OAAO,EAIL,KAAK,cAAc,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAMpB;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,gBAAgC,WAAW,EAAE,MAAM,CAAqB;IACxE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAG1D;IACF,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF,uBAAuB;IACvB,SAEgB,WAAW,EAAE,MAAM,CAAM;IAEzC,OAAO,CAAC,iBAAiB;cAIN,cAAc,IAAI,cAAc;CAiBpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbTeaserHeroElement } from "../teaser-hero.component-7KeR7bPf.js";
1
+ import { t as SbbTeaserHeroElement } from "../teaser-hero.component-De621iKn.js";
2
2
  export { SbbTeaserHeroElement };
@@ -0,0 +1,100 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbLinkBaseElement, boxSizingStyles, forceType, omitEmptyConverter } from "./core.js";
5
+ import { html as html$1 } from "lit/static-html.js";
6
+ import { SbbBlockLinkStaticElement } from "./link.pure.js";
7
+ import { SbbTeaserPanelElement } from "./teaser-panel.pure.js";
8
+ //#region src/elements/teaser-hero/teaser-hero.scss?inline
9
+ var teaser_hero_default = ":host {\n --sbb-teaser-hero-link-font-weight: 400;\n display: block;\n position: relative;\n outline: none !important;\n}\n\n:host(:not(:is(:state(slotted),[state--slotted]), :is(:state(slotted-link-content),[state--slotted-link-content]), [link-content])) sbb-teaser-panel {\n display: none;\n}\n\n::slotted([slot=image]) {\n width: 100%;\n}\n\n.sbb-teaser-hero {\n display: block;\n text-decoration: none;\n}\n.sbb-teaser-hero:focus-visible {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n}\n\nsbb-teaser-panel {\n position: absolute;\n}\n:host(:not(:is(:state(slotted-image),[state--slotted-image]))) sbb-teaser-panel {\n position: static;\n}\n\n.sbb-teaser-hero__panel-link {\n font-weight: var(--sbb-teaser-hero-link-font-weight);\n}\n:host(:not([href])) .sbb-teaser-hero__panel-link {\n display: none;\n}";
10
+ //#endregion
11
+ //#region src/elements/teaser-hero/teaser-hero.component.ts
12
+ /**
13
+ * It displays an image and an action call within a panel.
14
+ *
15
+ * @slot - Use the unnamed slot to add text content to the panel
16
+ * @slot link-content - Link content of the panel
17
+ * @slot image - The background image that can be a `sbb-image`
18
+ * @slot chip - The `sbb-chip-label` component that will be displayed on top-left corner
19
+ */
20
+ var SbbTeaserHeroElement = (() => {
21
+ let _classSuper = SbbLinkBaseElement;
22
+ let _linkContent_decorators;
23
+ let _linkContent_initializers = [];
24
+ let _linkContent_extraInitializers = [];
25
+ return class SbbTeaserHeroElement extends _classSuper {
26
+ static {
27
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
28
+ _linkContent_decorators = [forceType(), property({
29
+ attribute: "link-content",
30
+ reflect: true,
31
+ converter: omitEmptyConverter
32
+ })];
33
+ __esDecorate(this, null, _linkContent_decorators, {
34
+ kind: "accessor",
35
+ name: "linkContent",
36
+ static: false,
37
+ private: false,
38
+ access: {
39
+ has: (obj) => "linkContent" in obj,
40
+ get: (obj) => obj.linkContent,
41
+ set: (obj, value) => {
42
+ obj.linkContent = value;
43
+ }
44
+ },
45
+ metadata: _metadata
46
+ }, _linkContent_initializers, _linkContent_extraInitializers);
47
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
48
+ enumerable: true,
49
+ configurable: true,
50
+ writable: true,
51
+ value: _metadata
52
+ });
53
+ }
54
+ static {
55
+ this.elementName = "sbb-teaser-hero";
56
+ }
57
+ static {
58
+ this.elementDependencies = [SbbBlockLinkStaticElement, SbbTeaserPanelElement];
59
+ }
60
+ static {
61
+ this.styles = [boxSizingStyles, unsafeCSS(teaser_hero_default)];
62
+ }
63
+ #linkContent_accessor_storage = __runInitializers(this, _linkContent_initializers, "");
64
+ /** Panel link text. */
65
+ get linkContent() {
66
+ return this.#linkContent_accessor_storage;
67
+ }
68
+ set linkContent(value) {
69
+ this.#linkContent_accessor_storage = value;
70
+ }
71
+ _imageSlotChanged() {
72
+ Array.from(this.querySelectorAll("sbb-chip-label")).forEach((c) => c.color = "charcoal");
73
+ }
74
+ renderTemplate() {
75
+ return html$1`
76
+ <slot name="image" @slotchange=${this._imageSlotChanged}></slot>
77
+ <sbb-teaser-panel>
78
+ <slot></slot>
79
+ <sbb-block-link-static
80
+ class="sbb-teaser-hero__panel-link"
81
+ icon-name="chevron-small-right-small"
82
+ icon-placement="end"
83
+ size="m"
84
+ negative
85
+ >
86
+ <slot name="link-content">${this.linkContent}</slot>
87
+ </sbb-block-link-static>
88
+ </sbb-teaser-panel>
89
+ `;
90
+ }
91
+ constructor() {
92
+ super(...arguments);
93
+ __runInitializers(this, _linkContent_extraInitializers);
94
+ }
95
+ };
96
+ })();
97
+ //#endregion
98
+ export { SbbTeaserHeroElement as t };
99
+
100
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhc2VyLWhlcm8uY29tcG9uZW50LURlNjIxaUtuLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90ZWFzZXItaGVyby90ZWFzZXItaGVyby5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90ZWFzZXItaGVyby90ZWFzZXItaGVyby5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10ZWFzZXItaGVyby1saW5rLWZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEhpZGUgcGFuZWwgd2hlbiBubyBjb250ZW50IG9yIGxpbmstY29udGVudCBpcyBwcm92aWRlZC5cbjpob3N0KDpub3QoOnN0YXRlKHNsb3R0ZWQpLCA6c3RhdGUoc2xvdHRlZC1saW5rLWNvbnRlbnQpLCBbbGluay1jb250ZW50XSkpIHNiYi10ZWFzZXItcGFuZWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG46OnNsb3R0ZWQoW3Nsb3Q9J2ltYWdlJ10pIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zYmItdGVhc2VyLWhlcm8ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG4gIH1cbn1cblxuc2JiLXRlYXNlci1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAvLyBUbyBhdm9pZCBoYXZpbmcgYSAwIGhlaWdodCBpZiB5b3Ugb25seSBzbG90dGVkIHRoZSBwYW5lbCBjb250ZW50XG4gIDpob3N0KDpub3QoOnN0YXRlKHNsb3R0ZWQtaW1hZ2UpKSkgJiB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgfVxufVxuXG4uc2JiLXRlYXNlci1oZXJvX19wYW5lbC1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXNiYi10ZWFzZXItaGVyby1saW5rLWZvbnQtd2VpZ2h0KTtcblxuICA6aG9zdCg6bm90KFtocmVmXSkpICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGZvcmNlVHlwZSxcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJMaW5rQmFzZUVsZW1lbnQsXG59IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiQmxvY2tMaW5rU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2xpbmsucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJUZWFzZXJQYW5lbEVsZW1lbnQgfSBmcm9tICcuLi90ZWFzZXItcGFuZWwucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RlYXNlci1oZXJvLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBpbWFnZSBhbmQgYW4gYWN0aW9uIGNhbGwgd2l0aGluIGEgcGFuZWwuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgdGV4dCBjb250ZW50IHRvIHRoZSBwYW5lbFxuICogQHNsb3QgbGluay1jb250ZW50IC0gTGluayBjb250ZW50IG9mIHRoZSBwYW5lbFxuICogQHNsb3QgaW1hZ2UgLSBUaGUgYmFja2dyb3VuZCBpbWFnZSB0aGF0IGNhbiBiZSBhIGBzYmItaW1hZ2VgXG4gKiBAc2xvdCBjaGlwIC0gVGhlIGBzYmItY2hpcC1sYWJlbGAgY29tcG9uZW50IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgb24gdG9wLWxlZnQgY29ybmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUZWFzZXJIZXJvRWxlbWVudCBleHRlbmRzIFNiYkxpbmtCYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdGVhc2VyLWhlcm8nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbXG4gICAgU2JiQmxvY2tMaW5rU3RhdGljRWxlbWVudCxcbiAgICBTYmJUZWFzZXJQYW5lbEVsZW1lbnQsXG4gIF07XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKiBQYW5lbCBsaW5rIHRleHQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsaW5rLWNvbnRlbnQnLCByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbGlua0NvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgX2ltYWdlU2xvdENoYW5nZWQoKTogdm9pZCB7XG4gICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1jaGlwLWxhYmVsJykpLmZvckVhY2goKGMpID0+IChjLmNvbG9yID0gJ2NoYXJjb2FsJykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzbG90IG5hbWU9XCJpbWFnZVwiIEBzbG90Y2hhbmdlPSR7dGhpcy5faW1hZ2VTbG90Q2hhbmdlZH0+PC9zbG90PlxuICAgICAgPHNiYi10ZWFzZXItcGFuZWw+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPHNiYi1ibG9jay1saW5rLXN0YXRpY1xuICAgICAgICAgIGNsYXNzPVwic2JiLXRlYXNlci1oZXJvX19wYW5lbC1saW5rXCJcbiAgICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLXJpZ2h0LXNtYWxsXCJcbiAgICAgICAgICBpY29uLXBsYWNlbWVudD1cImVuZFwiXG4gICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgIG5lZ2F0aXZlXG4gICAgICAgID5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwibGluay1jb250ZW50XCI+JHt0aGlzLmxpbmtDb250ZW50fTwvc2xvdD5cbiAgICAgICAgPC9zYmItYmxvY2stbGluay1zdGF0aWM+XG4gICAgICA8L3NiYi10ZWFzZXItcGFuZWw+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRlYXNlci1oZXJvJzogU2JiVGVhc2VySGVyb0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ3dCYSw4QkFBb0I7bUJBQVM7Ozs7Y0FBN0IsNkJBQTZCLFlBQWtCOzs7OEJBU3pELFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUFnQixTQUFTO0lBQU0sV0FBVztJQUFvQixDQUFDLENBQUE7QUFDdEYsZ0JBQUEsTUFBQSxNQUFBLHlCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsaUJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBVyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVgsY0FBVzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDJCQUFBLCtCQUFBOzs7Ozs7Ozs7QUFWSyxRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxzQkFBd0MsQ0FDN0QsMkJBQ0Esc0JBQ0Q7OztBQUNzQixRQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsb0JBQU0sQ0FBQzs7RUFLbkYsZ0NBQUEsa0JBQUEsTUFBQSwyQkFBc0MsR0FBRTs7RUFBeEMsSUFBZ0IsY0FBVztBQUFBLFVBQUEsTUFBQTs7RUFBM0IsSUFBZ0IsWUFBVyxPQUFBO0FBQUEsU0FBQSwrQkFBQTs7RUFFbkIsb0JBQWlCO0FBQ3ZCLFNBQU0sS0FBSyxLQUFLLGlCQUFpQixpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsTUFBTyxFQUFFLFFBQVEsV0FBWTs7RUFHekUsaUJBQWM7QUFDL0IsVUFBTyxNQUFJO3VDQUN3QixLQUFLLGtCQUFpQjs7Ozs7Ozs7OztzQ0FVdkIsS0FBSyxZQUFXIn0=
@@ -1,4 +1,4 @@
1
- import { t as SbbTeaserHeroElement } from "./teaser-hero.component-7KeR7bPf.js";
1
+ import { t as SbbTeaserHeroElement } from "./teaser-hero.component-De621iKn.js";
2
2
  import "./teaser-hero.pure.js";
3
3
  //#region src/elements/teaser-hero.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbTeaserHeroElement } from "./teaser-hero.component-7KeR7bPf.js";
1
+ import { t as SbbTeaserHeroElement } from "./teaser-hero.component-De621iKn.js";
2
2
  export { SbbTeaserHeroElement };
@@ -0,0 +1,19 @@
1
+ import { CSSResultGroup, TemplateResult } from 'lit';
2
+ import { SbbElement } from '../core.ts';
3
+ /**
4
+ * It displays the content in a vertically centered trapezoidal shape.
5
+ * The component matches the parent element size and positions the panel accordingly.
6
+ *
7
+ * @slot - Use the unnamed slot to add text content to the panel
8
+ */
9
+ export declare class SbbTeaserPanelElement extends SbbElement {
10
+ static readonly elementName: string;
11
+ static styles: CSSResultGroup;
12
+ protected render(): TemplateResult;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'sbb-teaser-panel': SbbTeaserPanelElement;
17
+ }
18
+ }
19
+ //# sourceMappingURL=teaser-panel.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teaser-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/teaser-panel/teaser-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAG1E,OAAO,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAC;AAIzD;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IACnD,gBAAgC,WAAW,EAAE,MAAM,CAAsB;IACzE,OAAuB,MAAM,EAAE,cAAc,CAAuC;cAEjE,MAAM,IAAI,cAAc;CAO5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
@@ -0,0 +1,2 @@
1
+ import { t as SbbTeaserPanelElement } from "../teaser-panel.component-CjSrfJYG.js";
2
+ export { SbbTeaserPanelElement };
@@ -0,0 +1,32 @@
1
+ import { unsafeCSS } from "lit";
2
+ import { SbbElement, boxSizingStyles } from "./core.js";
3
+ import { html as html$1 } from "lit/static-html.js";
4
+ //#region src/elements/teaser-panel/teaser-panel.scss?inline
5
+ var teaser_panel_default = ":host {\n --sbb-panel-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-4x)\n );\n --_sbb-panel-height: calc(var(--sbb-panel-inner-height) + 2 * var(--sbb-panel-triangle-height));\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n inset: 0;\n min-height: var(--_sbb-panel-height);\n font-size: var(--sbb-panel-font-size);\n font-weight: var(--sbb-panel-font-weight);\n line-height: var(--sbb-panel-line-height);\n letter-spacing: var(--sbb-typo-letter-spacing-heading);\n color: var(--sbb-panel-color);\n hyphens: auto;\n}\n\n@media (any-hover: hover) {\n :host(:hover) {\n --sbb-panel-background-color: var(--sbb-panel-background-color-hover);\n }\n}\n.sbb-teaser-panel {\n position: absolute;\n top: 50%;\n translate: 0 -50%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: var(--sbb-panel-gap);\n width: var(--sbb-panel-width);\n height: var(--_sbb-panel-height);\n padding-block: var(--sbb-panel-triangle-height);\n padding-inline: var(--sbb-panel-padding-inline);\n clip-path: polygon(0 0, 100% var(--sbb-panel-triangle-height), 100% calc(100% - var(--sbb-panel-triangle-height)), 0% 100%);\n background-color: var(--sbb-panel-background-color);\n transition: background var(--sbb-panel-animation-duration) var(--sbb-panel-animation-easing);\n}";
6
+ //#endregion
7
+ //#region src/elements/teaser-panel/teaser-panel.component.ts
8
+ /**
9
+ * It displays the content in a vertically centered trapezoidal shape.
10
+ * The component matches the parent element size and positions the panel accordingly.
11
+ *
12
+ * @slot - Use the unnamed slot to add text content to the panel
13
+ */
14
+ var SbbTeaserPanelElement = class extends SbbElement {
15
+ static {
16
+ this.elementName = "sbb-teaser-panel";
17
+ }
18
+ static {
19
+ this.styles = [boxSizingStyles, unsafeCSS(teaser_panel_default)];
20
+ }
21
+ render() {
22
+ return html$1`
23
+ <span class="sbb-teaser-panel">
24
+ <slot></slot>
25
+ </span>
26
+ `;
27
+ }
28
+ };
29
+ //#endregion
30
+ export { SbbTeaserPanelElement as t };
31
+
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhc2VyLXBhbmVsLmNvbXBvbmVudC1DalNyZkpZRy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdGVhc2VyLXBhbmVsL3RlYXNlci1wYW5lbC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90ZWFzZXItcGFuZWwvdGVhc2VyLXBhbmVsLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNHgpXG4gICk7XG4gIC0tX3NiYi1wYW5lbC1oZWlnaHQ6IGNhbGModmFyKC0tc2JiLXBhbmVsLWlubmVyLWhlaWdodCkgKyAyICogdmFyKC0tc2JiLXBhbmVsLXRyaWFuZ2xlLWhlaWdodCkpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGluc2V0OiAwO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1fc2JiLXBhbmVsLWhlaWdodCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXBhbmVsLWZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1zYmItcGFuZWwtZm9udC13ZWlnaHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2JiLXBhbmVsLWxpbmUtaGVpZ2h0KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLWhlYWRpbmcpO1xuICBjb2xvcjogdmFyKC0tc2JiLXBhbmVsLWNvbG9yKTtcbiAgaHlwaGVuczogYXV0bztcbn1cblxuQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICA6aG9zdCg6aG92ZXIpIHtcbiAgICAtLXNiYi1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItcGFuZWwtYmFja2dyb3VuZC1jb2xvci1ob3Zlcik7XG4gIH1cbn1cblxuLnNiYi10ZWFzZXItcGFuZWwge1xuICBAaW5jbHVkZSBzYmIuYWJzb2x1dGUtY2VudGVyLXk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLXBhbmVsLWdhcCk7XG4gIHdpZHRoOiB2YXIoLS1zYmItcGFuZWwtd2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLV9zYmItcGFuZWwtaGVpZ2h0KTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXBhbmVsLXRyaWFuZ2xlLWhlaWdodCk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItcGFuZWwtcGFkZGluZy1pbmxpbmUpO1xuICBjbGlwLXBhdGg6IHBvbHlnb24oXG4gICAgMCAwLFxuICAgIDEwMCUgdmFyKC0tc2JiLXBhbmVsLXRyaWFuZ2xlLWhlaWdodCksXG4gICAgMTAwJSBjYWxjKDEwMCUgLSB2YXIoLS1zYmItcGFuZWwtdHJpYW5nbGUtaGVpZ2h0KSksXG4gICAgMCUgMTAwJVxuICApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItcGFuZWwtYmFja2dyb3VuZC1jb2xvcik7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tc2JiLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLXBhbmVsLWFuaW1hdGlvbi1lYXNpbmcpO1xufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMsIFNiYkVsZW1lbnQgfSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGVhc2VyLXBhbmVsLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyB0aGUgY29udGVudCBpbiBhIHZlcnRpY2FsbHkgY2VudGVyZWQgdHJhcGV6b2lkYWwgc2hhcGUuXG4gKiBUaGUgY29tcG9uZW50IG1hdGNoZXMgdGhlIHBhcmVudCBlbGVtZW50IHNpemUgYW5kIHBvc2l0aW9ucyB0aGUgcGFuZWwgYWNjb3JkaW5nbHkuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgdGV4dCBjb250ZW50IHRvIHRoZSBwYW5lbFxuICovXG5leHBvcnQgY2xhc3MgU2JiVGVhc2VyUGFuZWxFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdGVhc2VyLXBhbmVsJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi10ZWFzZXItcGFuZWxcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10ZWFzZXItcGFuZWwnOiBTYmJUZWFzZXJQYW5lbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQ2FBLElBQWEsd0JBQWIsY0FBMkMsV0FBVTs7QUFDbkIsT0FBQSxjQUFzQjs7O0FBQy9CLE9BQUEsU0FBeUIsQ0FBQyxpQkFBaUIsVUFBVSxxQkFBTSxDQUFDOztDQUVoRSxTQUFNO0FBQ3ZCLFNBQU8sTUFBSSJ9
@@ -0,0 +1,2 @@
1
+ export * from './teaser-panel.pure.ts';
2
+ //# sourceMappingURL=teaser-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teaser-panel.d.ts","sourceRoot":"","sources":["../../../src/elements/teaser-panel.ts"],"names":[],"mappings":"AAGA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { t as SbbTeaserPanelElement } from "./teaser-panel.component-CjSrfJYG.js";
2
+ import "./teaser-panel.pure.js";
3
+ //#region src/elements/teaser-panel.ts
4
+ /** @entrypoint */
5
+ SbbTeaserPanelElement.define();
6
+ //#endregion
7
+ export { SbbTeaserPanelElement };
8
+
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhc2VyLXBhbmVsLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90ZWFzZXItcGFuZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBlbnRyeXBvaW50ICovXG5pbXBvcnQgeyBTYmJUZWFzZXJQYW5lbEVsZW1lbnQgfSBmcm9tICcuL3RlYXNlci1wYW5lbC5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi90ZWFzZXItcGFuZWwucHVyZS50cyc7XG5cblNiYlRlYXNlclBhbmVsRWxlbWVudC5kZWZpbmUoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUtBLHNCQUFzQixRQUFRIn0=
@@ -0,0 +1,3 @@
1
+ /** @entrypoint */
2
+ export * from './teaser-panel/teaser-panel.component.ts';
3
+ //# sourceMappingURL=teaser-panel.pure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teaser-panel.pure.d.ts","sourceRoot":"","sources":["../../../src/elements/teaser-panel.pure.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,cAAc,0CAA0C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { t as SbbTeaserPanelElement } from "./teaser-panel.component-CjSrfJYG.js";
2
+ export { SbbTeaserPanelElement };
@@ -1,2 +1,2 @@
1
- import { n as teaserProductCommonStyle, t as SbbTeaserProductCommonElementMixin } from "../../teaser-product-common-DhbAGnQN.js";
1
+ import { n as teaserProductCommonStyle, t as SbbTeaserProductCommonElementMixin } from "../../teaser-product-common-DasV_SDa.js";
2
2
  export { SbbTeaserProductCommonElementMixin, teaserProductCommonStyle };
@@ -1,2 +1,2 @@
1
- import { t as SbbTeaserProductElement } from "../../teaser-product.component-C3PZbA5W.js";
1
+ import { t as SbbTeaserProductElement } from "../../teaser-product.component-CB6fOX7T.js";
2
2
  export { SbbTeaserProductElement };