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

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 (315) hide show
  1. package/autocomplete/autocomplete-base-element.js +1 -1
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/{autocomplete-base-element-gPLexIVc.js → autocomplete-base-element-BmiLbRHZ.js} +1 -1
  4. package/autocomplete.js +1 -1
  5. package/autocomplete.pure.js +1 -1
  6. package/{block-link-common-CiqQc2Rs.js → block-link-common-BiM6tnUZ.js} +1 -1
  7. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  8. package/{breadcrumb-group.component-Bfm4RZu7.js → breadcrumb-group.component-De3Lu3lx.js} +1 -1
  9. package/breadcrumb.js +1 -1
  10. package/breadcrumb.pure.js +1 -1
  11. package/button/common/button-common.js +1 -1
  12. package/button-common-Cu47yCSS.js +85 -0
  13. package/button.js +1 -1
  14. package/button.pure.js +1 -1
  15. package/calendar/calendar/calendar.component.js +1 -1
  16. package/{calendar.component-ZyfTrKs_.js → calendar.component-nWdtZYqg.js} +1 -1
  17. package/calendar.js +1 -1
  18. package/calendar.pure.js +1 -1
  19. package/card/card-badge/card-badge.component.js +1 -1
  20. package/{card-badge.component-CsEpGTHm.js → card-badge.component-CEqox6TU.js} +1 -1
  21. package/card.js +1 -1
  22. package/card.pure.js +1 -1
  23. package/checkbox/checkbox.component.js +1 -1
  24. package/checkbox/common/checkbox-common.js +1 -1
  25. package/{checkbox-common-Bo4u1RXX.js → checkbox-common-DSmxKbmR.js} +1 -1
  26. package/{checkbox.component-vjqZh2aC.js → checkbox.component-CR2aIgjA.js} +1 -1
  27. package/checkbox.js +2 -2
  28. package/checkbox.pure.js +2 -2
  29. package/chip/chip-group/chip-group.component.js +1 -1
  30. package/{chip-group.component-DPzfaV_H.js → chip-group.component-DbNctvjy.js} +1 -1
  31. package/chip.js +1 -1
  32. package/chip.pure.js +1 -1
  33. package/{compact-paginator.component-DEEhXiMm.js → compact-paginator.component-Dyu9bezr.js} +1 -1
  34. package/core/styles/core.scss +17 -73
  35. package/core/styles/mixins/typo.scss +2 -2
  36. package/core.css +67 -65
  37. package/custom-elements.json +3179 -3179
  38. package/development/autocomplete/autocomplete-base-element.js +1 -1
  39. package/development/autocomplete/autocomplete.component.js +1 -1
  40. package/development/autocomplete-base-element-BC3IUhrb.js +686 -0
  41. package/development/autocomplete.js +1 -1
  42. package/development/autocomplete.pure.js +1 -1
  43. package/development/{block-link-common-B9Vx8CTp.js → block-link-common-qMULXu4g.js} +2 -2
  44. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  45. package/development/breadcrumb-group.component-BC1mWiQE.js +193 -0
  46. package/development/breadcrumb.js +1 -1
  47. package/development/breadcrumb.pure.js +1 -1
  48. package/development/button/common/button-common.js +1 -1
  49. package/development/{button-common-jaQVRdwS.js → button-common-ChY47M8t.js} +3 -3
  50. package/development/button.js +1 -1
  51. package/development/button.pure.js +1 -1
  52. package/development/calendar/calendar/calendar.component.js +1 -1
  53. package/development/calendar.component-B5dz7mau.js +1451 -0
  54. package/development/calendar.js +1 -1
  55. package/development/calendar.pure.js +1 -1
  56. package/development/card/card-badge/card-badge.component.js +1 -1
  57. package/development/card-badge.component-CQBLpmpo.js +83 -0
  58. package/development/card.js +1 -1
  59. package/development/card.pure.js +1 -1
  60. package/development/checkbox/checkbox.component.js +1 -1
  61. package/development/checkbox/common/checkbox-common.js +1 -1
  62. package/development/checkbox-common-DOoEKgML.js +84 -0
  63. package/development/{checkbox.component-DgrfkdyZ.js → checkbox.component-DZjhQhbB.js} +2 -2
  64. package/development/checkbox.js +2 -2
  65. package/development/checkbox.pure.js +2 -2
  66. package/development/chip/chip-group/chip-group.component.js +1 -1
  67. package/development/chip-group.component-B4Mjcep2.js +402 -0
  68. package/development/chip.js +1 -1
  69. package/development/chip.pure.js +1 -1
  70. package/development/compact-paginator.component-CRojCci5.js +51 -0
  71. package/development/error.component-TvgLhaZh.js +53 -0
  72. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  73. package/development/expansion-panel-header.component-Ok8Qmq5K.js +82 -0
  74. package/development/expansion-panel.js +1 -1
  75. package/development/expansion-panel.pure.js +1 -1
  76. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  77. package/development/{file-selector-dropzone.component-dyv_u-Ga.js → file-selector-dropzone.component-B1Y5qOjb.js} +2 -2
  78. package/development/file-selector.js +1 -1
  79. package/development/file-selector.pure.js +1 -1
  80. package/development/footer/footer.component.js +1 -1
  81. package/development/footer.component-kFeZqO-Q.js +169 -0
  82. package/development/footer.js +1 -1
  83. package/development/footer.pure.js +1 -1
  84. package/development/form-field/error/error.component.js +1 -1
  85. package/development/form-field/form-field/form-field.component.js +1 -1
  86. package/development/form-field/hint/hint.component.js +1 -1
  87. package/development/form-field.component-CdTnOAi2.js +703 -0
  88. package/development/form-field.js +3 -3
  89. package/development/form-field.pure.js +3 -3
  90. package/development/header/header/header.component.js +1 -1
  91. package/development/header.component-BmZkCs9m.js +335 -0
  92. package/development/header.js +1 -1
  93. package/development/header.pure.js +1 -1
  94. package/development/hint.component-D5rTFJ-O.js +36 -0
  95. package/development/link/common/block-link-common.js +1 -1
  96. package/development/link.js +1 -1
  97. package/development/link.pure.js +1 -1
  98. package/development/message/message.component.js +1 -1
  99. package/development/message.component-Dzah9lXK.js +43 -0
  100. package/development/message.js +1 -1
  101. package/development/message.pure.js +1 -1
  102. package/development/navigation/common/navigation-action-common.js +1 -1
  103. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  104. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  105. package/development/{navigation-action-common-ZBiv0Xiw.js → navigation-action-common-B2soWZWW.js} +2 -2
  106. package/development/{navigation-marker.component-BsfPR_uk.js → navigation-marker.component-BRdbbjF5.js} +2 -2
  107. package/development/{navigation-section.component-BSvxMUxM.js → navigation-section.component-VwCJlOfE.js} +2 -2
  108. package/development/navigation.js +3 -3
  109. package/development/navigation.pure.js +3 -3
  110. package/development/notification/notification.component.js +1 -1
  111. package/development/notification.component-BgF5aGrn.js +271 -0
  112. package/development/notification.js +1 -1
  113. package/development/notification.pure.js +1 -1
  114. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  115. package/development/paginator/paginator/paginator.component.js +1 -1
  116. package/development/paginator.component-BlyTYIs0.js +261 -0
  117. package/development/paginator.js +2 -2
  118. package/development/paginator.pure.js +2 -2
  119. package/development/radio-button/common/radio-button-common.js +1 -1
  120. package/development/radio-button/radio-button.component.js +1 -1
  121. package/development/radio-button-common-ZMs5IFm2.js +125 -0
  122. package/development/{radio-button.component-DAgH41z0.js → radio-button.component-DggZ7RZD.js} +2 -2
  123. package/development/radio-button.js +2 -2
  124. package/development/radio-button.pure.js +2 -2
  125. package/development/select/select.component.js +1 -1
  126. package/development/select.component-CZI19HAK.js +804 -0
  127. package/development/select.js +1 -1
  128. package/development/select.pure.js +1 -1
  129. package/development/status/status.component.js +1 -1
  130. package/development/status.component-BtJ8ri61.js +110 -0
  131. package/development/status.js +1 -1
  132. package/development/status.pure.js +1 -1
  133. package/development/step-label.component-Dfx9rLcN.js +126 -0
  134. package/development/stepper/step-label/step-label.component.js +1 -1
  135. package/development/stepper.js +1 -1
  136. package/development/stepper.pure.js +1 -1
  137. package/development/styles-WppEBrlW.js +14 -0
  138. package/development/{tab-label.component-Du1W0dxN.js → tab-label.component-Ggx6qaIk.js} +2 -2
  139. package/development/tabs/common/styles.js +1 -1
  140. package/development/tabs/tab-label/tab-label.component.js +1 -1
  141. package/development/tabs.js +2 -2
  142. package/development/tabs.pure.js +2 -2
  143. package/development/tag/tag/tag.component.js +1 -1
  144. package/development/tag.component-Davxisfj.js +241 -0
  145. package/development/tag.js +1 -1
  146. package/development/tag.pure.js +1 -1
  147. package/development/teaser-hero/teaser-hero.component.js +1 -1
  148. package/development/teaser-hero.component-bp9IsVmY.js +100 -0
  149. package/development/teaser-hero.js +1 -1
  150. package/development/teaser-hero.pure.js +1 -1
  151. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  152. package/development/{timetable-occupancy.component-D6BIvkpY.js → timetable-occupancy.component-B-uVA9KC.js} +2 -2
  153. package/development/timetable-occupancy.js +1 -1
  154. package/development/timetable-occupancy.pure.js +1 -1
  155. package/development/title/title-base.js +1 -1
  156. package/development/title/title.component.js +1 -1
  157. package/development/{title-base-CWLTIRh_.js → title-base-DKVyL7TQ.js} +2 -2
  158. package/development/{title.component-TCKohHBO.js → title.component-BEEzA9cF.js} +2 -2
  159. package/development/title.js +2 -2
  160. package/development/title.pure.js +2 -2
  161. package/development/toast/toast.component.js +1 -1
  162. package/development/{toast.component-CZL72aVO.js → toast.component-1YR4wmm9.js} +2 -2
  163. package/development/toast.js +1 -1
  164. package/development/toast.pure.js +1 -1
  165. package/development/toggle/toggle/toggle.component.js +1 -1
  166. package/development/toggle.component-CQYpVyvs.js +244 -0
  167. package/development/toggle.js +1 -1
  168. package/development/toggle.pure.js +1 -1
  169. package/development/tooltip/tooltip.component.js +1 -1
  170. package/development/tooltip.component-Br7aDPFn.js +369 -0
  171. package/development/tooltip.js +1 -1
  172. package/development/tooltip.pure.js +1 -1
  173. package/development/train/train-wagon/train-wagon.component.js +1 -1
  174. package/development/{train-wagon.component-X0XSMLK_.js → train-wagon.component-B6V4dPKn.js} +2 -2
  175. package/development/train.js +1 -1
  176. package/development/train.pure.js +1 -1
  177. package/{error.component-BLChP2fE.js → error.component-D3JgDJfN.js} +1 -1
  178. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  179. package/{expansion-panel-header.component-DdRIlyms.js → expansion-panel-header.component-DYvq-uUi.js} +1 -1
  180. package/expansion-panel.js +1 -1
  181. package/expansion-panel.pure.js +1 -1
  182. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  183. package/{file-selector-dropzone.component-Bz3Wpl0X.js → file-selector-dropzone.component-BSF-kegh.js} +1 -1
  184. package/file-selector.js +1 -1
  185. package/file-selector.pure.js +1 -1
  186. package/footer/footer.component.js +1 -1
  187. package/{footer.component-Don15vOd.js → footer.component-CdTEaV6u.js} +1 -1
  188. package/footer.js +1 -1
  189. package/footer.pure.js +1 -1
  190. package/form-field/error/error.component.js +1 -1
  191. package/form-field/form-field/form-field.component.js +1 -1
  192. package/form-field/hint/hint.component.js +1 -1
  193. package/{form-field.component-DbV7fMoe.js → form-field.component-Dtzbp6-e.js} +1 -1
  194. package/form-field.js +3 -3
  195. package/form-field.pure.js +3 -3
  196. package/header/header/header.component.js +1 -1
  197. package/{header.component-D-WVEMFn.js → header.component-DoAFSXgO.js} +1 -1
  198. package/header.js +1 -1
  199. package/header.pure.js +1 -1
  200. package/{hint.component-CaF6CBCN.js → hint.component-BB_h0G6v.js} +1 -1
  201. package/link/common/block-link-common.js +1 -1
  202. package/link.js +1 -1
  203. package/link.pure.js +1 -1
  204. package/message/message.component.js +1 -1
  205. package/message.component-CF-_MD7m.js +26 -0
  206. package/message.js +1 -1
  207. package/message.pure.js +1 -1
  208. package/navigation/common/navigation-action-common.js +1 -1
  209. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  210. package/navigation/navigation-section/navigation-section.component.js +1 -1
  211. package/{navigation-action-common-Dm47M2BG.js → navigation-action-common-D2vwX-oy.js} +1 -1
  212. package/{navigation-marker.component-1VHe19c9.js → navigation-marker.component-BQzC4gn_.js} +1 -1
  213. package/{navigation-section.component-DrnbQAZX.js → navigation-section.component-CR-FanCa.js} +1 -1
  214. package/navigation.js +3 -3
  215. package/navigation.pure.js +3 -3
  216. package/notification/notification.component.js +1 -1
  217. package/{notification.component-IsSZe3Ul.js → notification.component-D9oxjMJs.js} +1 -1
  218. package/notification.js +1 -1
  219. package/notification.pure.js +1 -1
  220. package/off-brand-theme.css +67 -65
  221. package/package.json +2 -2
  222. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  223. package/paginator/paginator/paginator.component.js +1 -1
  224. package/{paginator.component-BkECB-iV.js → paginator.component-DA_wUypF.js} +1 -1
  225. package/paginator.js +2 -2
  226. package/paginator.pure.js +2 -2
  227. package/radio-button/common/radio-button-common.js +1 -1
  228. package/radio-button/radio-button.component.js +1 -1
  229. package/{radio-button-common-CQyKqDLJ.js → radio-button-common-iNYco_B8.js} +1 -1
  230. package/{radio-button.component-Cenb6FL5.js → radio-button.component-v5czJYC3.js} +1 -1
  231. package/radio-button.js +2 -2
  232. package/radio-button.pure.js +2 -2
  233. package/safety-theme.css +67 -65
  234. package/select/select.component.js +1 -1
  235. package/{select.component-BcDZm7EM.js → select.component-CCFfP21g.js} +1 -1
  236. package/select.js +1 -1
  237. package/select.pure.js +1 -1
  238. package/standard-theme.css +67 -65
  239. package/status/status.component.js +1 -1
  240. package/{status.component-CgMvY4Pe.js → status.component-5SKEusnj.js} +1 -1
  241. package/status.js +1 -1
  242. package/status.pure.js +1 -1
  243. package/step-label.component-DM7lQw8b.js +77 -0
  244. package/stepper/step-label/step-label.component.js +1 -1
  245. package/stepper.js +1 -1
  246. package/stepper.pure.js +1 -1
  247. package/styles-DisU4TWi.js +5 -0
  248. package/{tab-label.component-CH24fqmB.js → tab-label.component-JjktN30A.js} +1 -1
  249. package/tabs/common/styles.js +1 -1
  250. package/tabs/tab-label/tab-label.component.js +1 -1
  251. package/tabs.js +2 -2
  252. package/tabs.pure.js +2 -2
  253. package/tag/tag/tag.component.js +1 -1
  254. package/{tag.component-B7YExnbA.js → tag.component-BGYVbfUx.js} +1 -1
  255. package/tag.js +1 -1
  256. package/tag.pure.js +1 -1
  257. package/teaser-hero/teaser-hero.component.js +1 -1
  258. package/{teaser-hero.component-BUhWjc2i.js → teaser-hero.component-By1HInfz.js} +1 -1
  259. package/teaser-hero.js +1 -1
  260. package/teaser-hero.pure.js +1 -1
  261. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  262. package/{timetable-occupancy.component-CLpJ-rjI.js → timetable-occupancy.component-Dq9RM6qS.js} +1 -1
  263. package/timetable-occupancy.js +1 -1
  264. package/timetable-occupancy.pure.js +1 -1
  265. package/title/title-base.js +1 -1
  266. package/title/title.component.js +1 -1
  267. package/{title-base-HD0z6npS.js → title-base-B43-Q_7r.js} +1 -1
  268. package/{title.component-CjDkG7gT.js → title.component-DXJHJ6p6.js} +1 -1
  269. package/title.js +2 -2
  270. package/title.pure.js +2 -2
  271. package/toast/toast.component.js +1 -1
  272. package/{toast.component-DzsaWxPV.js → toast.component-D53COYeM.js} +1 -1
  273. package/toast.js +1 -1
  274. package/toast.pure.js +1 -1
  275. package/toggle/toggle/toggle.component.js +1 -1
  276. package/{toggle.component-D7X0E_hM.js → toggle.component-BGgAnHau.js} +1 -1
  277. package/toggle.js +1 -1
  278. package/toggle.pure.js +1 -1
  279. package/tooltip/tooltip.component.js +1 -1
  280. package/{tooltip.component-BCRFxBuV.js → tooltip.component-Bp-8vRoA.js} +1 -1
  281. package/tooltip.js +1 -1
  282. package/tooltip.pure.js +1 -1
  283. package/train/train-wagon/train-wagon.component.js +1 -1
  284. package/{train-wagon.component-CZiVPOaZ.js → train-wagon.component-LwKwwuta.js} +1 -1
  285. package/train.js +1 -1
  286. package/train.pure.js +1 -1
  287. package/button-common-C3wYY-UK.js +0 -85
  288. package/development/autocomplete-base-element-8hV4-ys6.js +0 -686
  289. package/development/breadcrumb-group.component-DP9X9qV1.js +0 -193
  290. package/development/calendar.component-C2WJuFrr.js +0 -1451
  291. package/development/card-badge.component-Be4gXazr.js +0 -83
  292. package/development/checkbox-common-DpE48IrV.js +0 -84
  293. package/development/chip-group.component-CxM8l839.js +0 -402
  294. package/development/compact-paginator.component-DiMeNNTc.js +0 -51
  295. package/development/error.component-C8JQQqSB.js +0 -53
  296. package/development/expansion-panel-header.component-CWojFAB-.js +0 -82
  297. package/development/footer.component-Dbc5xFqr.js +0 -169
  298. package/development/form-field.component-M0wf8ZR8.js +0 -703
  299. package/development/header.component-B2T2pmHs.js +0 -335
  300. package/development/hint.component-hKw1TLvO.js +0 -36
  301. package/development/message.component-CrXtMprr.js +0 -43
  302. package/development/notification.component-CKyNdgbx.js +0 -271
  303. package/development/paginator.component-Cqm7MuRD.js +0 -261
  304. package/development/radio-button-common-u7NYOI2p.js +0 -125
  305. package/development/select.component-Ibby7Q-L.js +0 -804
  306. package/development/status.component-p-egQ_U4.js +0 -110
  307. package/development/step-label.component-BTXuaONx.js +0 -126
  308. package/development/styles-D_8dMc_0.js +0 -14
  309. package/development/tag.component-CWL9jJTW.js +0 -241
  310. package/development/teaser-hero.component-De621iKn.js +0 -100
  311. package/development/toggle.component-BeHHTgRh.js +0 -244
  312. package/development/tooltip.component-BV0yBh9f.js +0 -369
  313. package/message.component-DgTPvDym.js +0 -26
  314. package/step-label.component-CbtQ7MvH.js +0 -77
  315. package/styles-DMLyYaea.js +0 -5
@@ -0,0 +1,369 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, isServer, unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbDisabledMixin, SbbEscapableOverlayController, SbbOpenCloseBaseElement, SbbOverlayPositionController, appendAriaElements, boxSizingStyles, idReference, isAndroid, isIOS, isZeroAnimationDuration, queueDomContentLoaded, readConfig, removeAriaElements, sbbOverlayOutsidePointerEventListener } from "./core.js";
5
+ //#region src/elements/tooltip/tooltip.scss?inline
6
+ var tooltip_default = ":host {\n --sbb-tooltip-max-width: min(\n 25rem,\n calc(100vw - var(--sbb-spacing-fixed-2x))\n );\n --sbb-tooltip-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-4x)\n );\n position-area: var(--sbb-overlay-position-area);\n position-try-fallbacks: var(--sbb-overlay-position-try-fallbacks);\n display: none;\n position: fixed;\n background-color: transparent;\n pointer-events: var(--sbb-tooltip-pointer-events, all);\n z-index: var(--sbb-tooltip-z-index, var(--sbb-overlay-default-z-index));\n animation-name: var(--sbb-tooltip-animation-name);\n animation-duration: var(--sbb-tooltip-animation-duration);\n animation-timing-function: var(--sbb-tooltip-animation-easing);\n font-size: var(--sbb-tooltip-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n line-height: var(--sbb-typo-line-height-text);\n border: none;\n inset: initial;\n padding: 0;\n margin: 0;\n}\n\n:host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) {\n --sbb-tooltip-animation-name: open;\n display: block;\n}\n\n:host(:is(:state(state-closing),[state--state-closing])) {\n --sbb-tooltip-animation-name: close;\n --sbb-tooltip-pointer-events: none;\n}\n\n:host(:is([data-position~=block-end], [data-position~=bottom], [data-position^=end])) {\n padding-block-start: var(--sbb-tooltip-gap);\n}\n\n:host(:is([data-position~=block-start], [data-position~=top], [data-position^=start])) {\n padding-block-end: var(--sbb-tooltip-gap);\n}\n\n:host(:is([data-position~=inline-start],\n[data-position~=inline-end],\n[data-position~=left],\n[data-position~=right],\n[data-position$=\" start\"],\n[data-position$=\" end\"])) {\n padding-inline: var(--sbb-tooltip-gap);\n}\n\n.sbb-tooltip {\n box-shadow: var(--sbb-box-shadow-level-5-soft);\n border: var(--sbb-border-width-1x) solid var(--sbb-tooltip-border-color);\n border-radius: var(--sbb-tooltip-border-radius);\n padding: var(--sbb-tooltip-padding);\n color: var(--sbb-tooltip-color);\n background-color: var(--sbb-tooltip-background-color);\n min-width: var(--sbb-tooltip-min-width);\n max-width: var(--sbb-tooltip-max-width);\n}\n\n@keyframes open {\n from {\n opacity: 0;\n translate: var(--sbb-tooltip-animation-translate);\n }\n to {\n opacity: 1;\n translate: 0;\n }\n}\n@keyframes close {\n from {\n opacity: 1;\n translate: 0;\n }\n to {\n opacity: 0;\n translate: var(--sbb-tooltip-animation-translate);\n }\n}";
7
+ //#endregion
8
+ //#region src/elements/tooltip/tooltip.component.ts
9
+ /**
10
+ * Time between the user putting the pointer on a tooltip
11
+ * trigger and the long press event being fired.
12
+ */
13
+ var LONGPRESS_DELAY = 500;
14
+ var isMobile = isAndroid || isIOS;
15
+ var tooltipTriggers = /* @__PURE__ */ new WeakMap();
16
+ /**
17
+ * It displays text content within a tooltip.
18
+ *
19
+ * @slot - Use the unnamed slot to add the text into the tooltip.
20
+ * @cssprop [--sbb-overlay-position-area=block-end] - The primary position for the tooltip.
21
+ * @cssprop [--sbb-overlay-position-try-fallbacks=block-end span-inline-end, block-end span-inline-start, block-start, block-start span-inline-end, block-start span-inline-start] -
22
+ * The list of fallback positions, separated by ',', for the tooltip
23
+ * @cssprop [--sbb-tooltip-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
24
+ * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
25
+ * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
26
+ */
27
+ var SbbTooltipElement = (() => {
28
+ let _classSuper = SbbDisabledMixin(SbbOpenCloseBaseElement);
29
+ let _instanceExtraInitializers = [];
30
+ let _trigger_decorators;
31
+ let _trigger_initializers = [];
32
+ let _trigger_extraInitializers = [];
33
+ let _set_openDelay_decorators;
34
+ let _set_closeDelay_decorators;
35
+ let _set_longPressCloseDelay_decorators;
36
+ return class SbbTooltipElement extends _classSuper {
37
+ static {
38
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
39
+ _trigger_decorators = [idReference(), property()];
40
+ _set_openDelay_decorators = [property({
41
+ attribute: "open-delay",
42
+ type: Number
43
+ })];
44
+ _set_closeDelay_decorators = [property({
45
+ attribute: "close-delay",
46
+ type: Number
47
+ })];
48
+ _set_longPressCloseDelay_decorators = [property({
49
+ attribute: "long-press-close-delay",
50
+ type: Number
51
+ })];
52
+ __esDecorate(this, null, _trigger_decorators, {
53
+ kind: "accessor",
54
+ name: "trigger",
55
+ static: false,
56
+ private: false,
57
+ access: {
58
+ has: (obj) => "trigger" in obj,
59
+ get: (obj) => obj.trigger,
60
+ set: (obj, value) => {
61
+ obj.trigger = value;
62
+ }
63
+ },
64
+ metadata: _metadata
65
+ }, _trigger_initializers, _trigger_extraInitializers);
66
+ __esDecorate(this, null, _set_openDelay_decorators, {
67
+ kind: "setter",
68
+ name: "openDelay",
69
+ static: false,
70
+ private: false,
71
+ access: {
72
+ has: (obj) => "openDelay" in obj,
73
+ set: (obj, value) => {
74
+ obj.openDelay = value;
75
+ }
76
+ },
77
+ metadata: _metadata
78
+ }, null, _instanceExtraInitializers);
79
+ __esDecorate(this, null, _set_closeDelay_decorators, {
80
+ kind: "setter",
81
+ name: "closeDelay",
82
+ static: false,
83
+ private: false,
84
+ access: {
85
+ has: (obj) => "closeDelay" in obj,
86
+ set: (obj, value) => {
87
+ obj.closeDelay = value;
88
+ }
89
+ },
90
+ metadata: _metadata
91
+ }, null, _instanceExtraInitializers);
92
+ __esDecorate(this, null, _set_longPressCloseDelay_decorators, {
93
+ kind: "setter",
94
+ name: "longPressCloseDelay",
95
+ static: false,
96
+ private: false,
97
+ access: {
98
+ has: (obj) => "longPressCloseDelay" in obj,
99
+ set: (obj, value) => {
100
+ obj.longPressCloseDelay = value;
101
+ }
102
+ },
103
+ metadata: _metadata
104
+ }, null, _instanceExtraInitializers);
105
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
106
+ enumerable: true,
107
+ configurable: true,
108
+ writable: true,
109
+ value: _metadata
110
+ });
111
+ }
112
+ static {
113
+ this.elementName = "sbb-tooltip";
114
+ }
115
+ static {
116
+ this.role = "tooltip";
117
+ }
118
+ static {
119
+ this.styles = [boxSizingStyles, unsafeCSS(tooltip_default)];
120
+ }
121
+ static {
122
+ if (!isServer) queueDomContentLoaded(() => this._initializeTooltipOutlet());
123
+ }
124
+ #trigger_accessor_storage;
125
+ /**
126
+ * The element that will trigger the tooltip overlay.
127
+ *
128
+ * For attribute usage, provide an id reference.
129
+ */
130
+ get trigger() {
131
+ return this.#trigger_accessor_storage;
132
+ }
133
+ set trigger(value) {
134
+ this.#trigger_accessor_storage = value;
135
+ }
136
+ /**
137
+ * Open the tooltip after a given delay in milliseconds.
138
+ * Global configuration is used as default, if not set.
139
+ *
140
+ * @default null
141
+ */
142
+ set openDelay(value) {
143
+ this._openDelay = value;
144
+ }
145
+ get openDelay() {
146
+ return this._openDelay ?? readConfig().tooltip?.openDelay ?? 0;
147
+ }
148
+ /**
149
+ * Close the tooltip after a given delay in milliseconds.
150
+ * Global configuration is used as default, if not set.
151
+ *
152
+ * @default null
153
+ */
154
+ set closeDelay(value) {
155
+ this._closeDelay = value;
156
+ }
157
+ get closeDelay() {
158
+ return this._closeDelay ?? readConfig().tooltip?.closeDelay ?? 0;
159
+ }
160
+ /**
161
+ * Automatically close the tooltip after it has been open by long press.
162
+ * Global configuration is used as default, if not set.
163
+ *
164
+ * @default 1500
165
+ */
166
+ set longPressCloseDelay(value) {
167
+ this._longPressCloseDelay = +value;
168
+ }
169
+ get longPressCloseDelay() {
170
+ return this._longPressCloseDelay ?? readConfig().tooltip?.longPressCloseDelay ?? 1500;
171
+ }
172
+ constructor() {
173
+ super();
174
+ this.#trigger_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _trigger_initializers, null));
175
+ this._openDelay = (__runInitializers(this, _trigger_extraInitializers), null);
176
+ this._closeDelay = null;
177
+ this._triggerElement = null;
178
+ this._escapableOverlayController = new SbbEscapableOverlayController(this);
179
+ this._overlayController = new SbbOverlayPositionController(this);
180
+ this.addEventListener("mouseleave", (event) => {
181
+ if ((this.state === "opened" || this.state === "opening") && (!event.relatedTarget || !this._triggerElement?.contains(event.relatedTarget))) this._delayedClose();
182
+ }, { passive: true });
183
+ this.addEventListener("overlayOutsidePointer", () => this.close(), { passive: true });
184
+ this.addEventListener("animationend", (e) => this._onTooltipAnimationEnd(e), { passive: true });
185
+ }
186
+ static _initializeTooltipOutlet() {
187
+ this._tooltipOutlet = document.createElement("div");
188
+ this._tooltipOutlet.classList.add("sbb-overlay-outlet");
189
+ document.body.appendChild(this._tooltipOutlet);
190
+ new MutationObserver((mutations) => {
191
+ for (const mutation of mutations) if (mutation.type === "attributes") this._handleTooltipTrigger(mutation.target);
192
+ else if (mutation.type === "childList") for (const node of [...mutation.addedNodes, ...mutation.removedNodes].filter((n) => n.nodeType === n.ELEMENT_NODE)) {
193
+ this._handleTooltipTrigger(node);
194
+ this._findAndHandleTooltipTriggers(node);
195
+ }
196
+ }).observe(document.documentElement, {
197
+ attributeFilter: [
198
+ "sbb-tooltip",
199
+ "sbb-tooltip-open-delay",
200
+ "sbb-tooltip-close-delay",
201
+ "sbb-tooltip-position"
202
+ ],
203
+ childList: true,
204
+ subtree: true
205
+ });
206
+ this._findAndHandleTooltipTriggers(document.body);
207
+ }
208
+ static _findAndHandleTooltipTriggers(root) {
209
+ root.querySelectorAll("[sbb-tooltip]").forEach((e) => this._handleTooltipTrigger(e));
210
+ }
211
+ static _handleTooltipTrigger(triggerElement) {
212
+ const tooltipMessage = triggerElement.getAttribute("sbb-tooltip");
213
+ let tooltip = tooltipTriggers.get(triggerElement);
214
+ if (tooltipMessage && triggerElement.isConnected) {
215
+ if (!tooltip) {
216
+ tooltip = document.createElement("sbb-tooltip");
217
+ tooltipTriggers.set(triggerElement, tooltip);
218
+ this._tooltipOutlet.appendChild(tooltip);
219
+ tooltip.trigger = triggerElement;
220
+ }
221
+ tooltip.textContent = tooltipMessage;
222
+ tooltip.openDelay = triggerElement.hasAttribute("sbb-tooltip-open-delay") ? +triggerElement.getAttribute("sbb-tooltip-open-delay") : null;
223
+ tooltip.closeDelay = triggerElement.hasAttribute("sbb-tooltip-close-delay") ? +triggerElement.getAttribute("sbb-tooltip-close-delay") : null;
224
+ const positions = triggerElement.hasAttribute("sbb-tooltip-position") ? triggerElement.getAttribute("sbb-tooltip-position").split(",").map((p) => p.trim()) : triggerElement.tooltipPositions;
225
+ if (positions && positions.length > 0) {
226
+ tooltip.style.setProperty("--sbb-overlay-position-area", positions[0]);
227
+ tooltip.style.setProperty("--sbb-overlay-position-try-fallbacks", positions.slice(1).join(", "));
228
+ } else {
229
+ tooltip.style.removeProperty("--sbb-overlay-position-area");
230
+ tooltip.style.removeProperty("--sbb-overlay-position-try-fallbacks");
231
+ }
232
+ } else if (tooltip) {
233
+ tooltipTriggers.delete(triggerElement);
234
+ tooltip._destroy?.();
235
+ }
236
+ }
237
+ connectedCallback() {
238
+ super.connectedCallback();
239
+ this.popover = "manual";
240
+ this.state = "closed";
241
+ sbbOverlayOutsidePointerEventListener.connect(this);
242
+ if (this.hasUpdated && this.trigger) this._attach(this.trigger);
243
+ }
244
+ disconnectedCallback() {
245
+ super.disconnectedCallback();
246
+ sbbOverlayOutsidePointerEventListener.disconnect(this);
247
+ this._detach();
248
+ }
249
+ requestUpdate(name, oldValue, options) {
250
+ super.requestUpdate(name, oldValue, options);
251
+ if (isServer) return;
252
+ if ((!name || name === "trigger") && this.hasUpdated) this._attach(this.trigger);
253
+ }
254
+ firstUpdated(changedProperties) {
255
+ super.firstUpdated(changedProperties);
256
+ this._attach(this.trigger);
257
+ }
258
+ open() {
259
+ this._resetOpenCloseTimeout();
260
+ if (this.state !== "closed" && this.state !== "closing" || this.disabled || !this.trigger || !this.dispatchBeforeOpenEvent()) return;
261
+ this.showPopover?.();
262
+ this.state = "opening";
263
+ this._overlayController.connect(this.trigger);
264
+ if (this._isZeroAnimationDuration()) this._handleOpening();
265
+ }
266
+ close() {
267
+ this._resetOpenCloseTimeout();
268
+ if (this.state !== "opened" && this.state !== "opening") return;
269
+ this.dispatchBeforeCloseEvent();
270
+ this.state = "closing";
271
+ if (this._isZeroAnimationDuration()) this._handleClosing();
272
+ }
273
+ _delayedOpen() {
274
+ this._resetOpenCloseTimeout();
275
+ this._openTimeout = setTimeout(() => this.open(), this.openDelay);
276
+ }
277
+ _handleOpening() {
278
+ this.state = "opened";
279
+ this._escapableOverlayController.connect();
280
+ this.dispatchOpenEvent();
281
+ }
282
+ _delayedClose() {
283
+ this._resetOpenCloseTimeout();
284
+ this._closeTimeout = setTimeout(() => this.close(), this.closeDelay);
285
+ }
286
+ _handleClosing() {
287
+ this.state = "closed";
288
+ this.hidePopover?.();
289
+ this._overlayController.disconnect();
290
+ this._escapableOverlayController.disconnect();
291
+ this.dispatchCloseEvent();
292
+ this._openStateController?.abort();
293
+ }
294
+ _onTooltipAnimationEnd(event) {
295
+ if (event.animationName === "open" && this.state === "opening") this._handleOpening();
296
+ else if (event.animationName === "close" && this.state === "closing") this._handleClosing();
297
+ }
298
+ _attach(trigger) {
299
+ if (this._triggerElement) this._detach();
300
+ this._triggerElement = trigger;
301
+ if (!this._triggerElement) return;
302
+ this._triggerElement.ariaDescribedByElements = appendAriaElements(this._triggerElement.ariaDescribedByElements, this);
303
+ this._addTriggerEventHandlers();
304
+ }
305
+ _detach() {
306
+ this._triggerAbortController?.abort();
307
+ this._openStateController?.abort();
308
+ this._resetOpenCloseTimeout();
309
+ clearTimeout(this._longPressOpenTimeout);
310
+ clearTimeout(this._longPressCloseTimeout);
311
+ if (!this._triggerElement) return;
312
+ this._triggerElement.ariaDescribedByElements = removeAriaElements(this._triggerElement.ariaDescribedByElements, this);
313
+ this._triggerElement = null;
314
+ }
315
+ _destroy() {
316
+ this._detach();
317
+ this.remove();
318
+ }
319
+ _addTriggerEventHandlers() {
320
+ const trigger = this._triggerElement;
321
+ if (!trigger) return;
322
+ this._triggerAbortController?.abort();
323
+ this._triggerAbortController = new AbortController();
324
+ const options = {
325
+ signal: this._triggerAbortController.signal,
326
+ passive: true
327
+ };
328
+ if (!isMobile) {
329
+ trigger.addEventListener("mouseenter", () => this._delayedOpen(), options);
330
+ trigger.addEventListener("mouseleave", (event) => {
331
+ const newTarget = event.relatedTarget;
332
+ if (!newTarget || newTarget !== this) this._delayedClose();
333
+ }, options);
334
+ trigger.addEventListener("blur", () => this.close(), options);
335
+ trigger.addEventListener("focus", () => this._delayedOpen(), options);
336
+ }
337
+ trigger.addEventListener("touchstart", () => {
338
+ clearTimeout(this._longPressOpenTimeout);
339
+ clearTimeout(this._longPressCloseTimeout);
340
+ this._longPressOpenTimeout = setTimeout(() => this.open(), LONGPRESS_DELAY);
341
+ }, options);
342
+ trigger.addEventListener("touchend", () => {
343
+ clearTimeout(this._longPressOpenTimeout);
344
+ this._longPressCloseTimeout = setTimeout(() => this.close(), this.longPressCloseDelay);
345
+ }, options);
346
+ trigger.addEventListener("touchcancel", () => {
347
+ clearTimeout(this._longPressOpenTimeout);
348
+ }, options);
349
+ }
350
+ _isZeroAnimationDuration() {
351
+ return isZeroAnimationDuration(this, "--sbb-tooltip-animation-duration");
352
+ }
353
+ _resetOpenCloseTimeout() {
354
+ clearTimeout(this._openTimeout);
355
+ clearTimeout(this._closeTimeout);
356
+ }
357
+ render() {
358
+ return html`
359
+ <div class="sbb-tooltip">
360
+ <slot></slot>
361
+ </div>
362
+ `;
363
+ }
364
+ };
365
+ })();
366
+ //#endregion
367
+ export { SbbTooltipElement as t };
368
+
369
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtQnI3YURQRm4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzLCBhbGwpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItdG9vbHRpcC16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb24pO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZWFzaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdG9vbHRpcC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBSZXNldCBbcG9wb3Zlcl0gc3R5bGVzXG4gIGJvcmRlcjogbm9uZTtcbiAgaW5zZXQ6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tbmFtZTogb3BlbjtcblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWU6IGNsb3NlO1xuICAtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG46aG9zdCg6aXMoW2RhdGEtcG9zaXRpb25+PSdibG9jay1lbmQnXSwgW2RhdGEtcG9zaXRpb25+PSdib3R0b20nXSwgW2RhdGEtcG9zaXRpb25ePSdlbmQnXSkpIHtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoOmlzKFtkYXRhLXBvc2l0aW9ufj0nYmxvY2stc3RhcnQnXSwgW2RhdGEtcG9zaXRpb25+PSd0b3AnXSwgW2RhdGEtcG9zaXRpb25ePSdzdGFydCddKSkge1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoXG4gIDppcyhcbiAgICBbZGF0YS1wb3NpdGlvbn49J2lubGluZS1zdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0naW5saW5lLWVuZCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0nbGVmdCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0ncmlnaHQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbiQ9JyBzdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9uJD0nIGVuZCddXG4gIClcbikge1xuICAvLyBBZGQgYSBnYXAgb24gYm90aCBzaWRlcyB0byBkaXN0YW5jZSB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0cmlnZ2VyIGFuZCB0aGUgZWRnZSBvZiB0aGUgdmlld3BvcnQuXG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG4uc2JiLXRvb2x0aXAge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItdG9vbHRpcC1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10b29sdGlwLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvb2x0aXAtbWluLXdpZHRoKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1zYmItdG9vbHRpcC1tYXgtd2lkdGgpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLXRyYW5zbGF0ZSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tdHJhbnNsYXRlKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBpZFJlZmVyZW5jZSxcbiAgaXNBbmRyb2lkLFxuICBpc0lPUyxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIHF1ZXVlRG9tQ29udGVudExvYWRlZCxcbiAgcmVhZENvbmZpZyxcbiAgcmVtb3ZlQXJpYUVsZW1lbnRzLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQsXG4gIHNiYk92ZXJsYXlPdXRzaWRlUG9pbnRlckV2ZW50TGlzdGVuZXIsXG4gIFNiYk92ZXJsYXlQb3NpdGlvbkNvbnRyb2xsZXIsXG59IGZyb20gJy4uL2NvcmUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90b29sdGlwLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBkZWZhdWx0IHBvc2l0aW9uIGZvciB0aGUgdG9vbHRpcCBpZiB0aGlzIGVsZW1lbnQgaXMgdXNlZCBhcyBhIHRyaWdnZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2JiVG9vbHRpcERlZmF1bHRQb3NpdGlvbnMge1xuICByZWFkb25seSB0b29sdGlwUG9zaXRpb25zOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUaW1lIGJldHdlZW4gdGhlIHVzZXIgcHV0dGluZyB0aGUgcG9pbnRlciBvbiBhIHRvb2x0aXBcbiAqIHRyaWdnZXIgYW5kIHRoZSBsb25nIHByZXNzIGV2ZW50IGJlaW5nIGZpcmVkLlxuICovXG5jb25zdCBMT05HUFJFU1NfREVMQVkgPSA1MDA7XG5cbmNvbnN0IGlzTW9iaWxlID0gaXNBbmRyb2lkIHx8IGlzSU9TO1xuY29uc3QgdG9vbHRpcFRyaWdnZXJzID0gbmV3IFdlYWtNYXA8SFRNTEVsZW1lbnQsIFNiYlRvb2x0aXBFbGVtZW50PigpO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIHRleHQgY29udGVudCB3aXRoaW4gYSB0b29sdGlwLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIHRoZSB0ZXh0IGludG8gdGhlIHRvb2x0aXAuXG4gKiBAY3NzcHJvcCBbLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhPWJsb2NrLWVuZF0gLSBUaGUgcHJpbWFyeSBwb3NpdGlvbiBmb3IgdGhlIHRvb2x0aXAuXG4gKiBAY3NzcHJvcCBbLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzPWJsb2NrLWVuZCBzcGFuLWlubGluZS1lbmQsIGJsb2NrLWVuZCBzcGFuLWlubGluZS1zdGFydCwgYmxvY2stc3RhcnQsIGJsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCwgYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnRdIC1cbiAqIFRoZSBsaXN0IG9mIGZhbGxiYWNrIHBvc2l0aW9ucywgc2VwYXJhdGVkIGJ5ICcsJywgZm9yIHRoZSB0b29sdGlwXG4gKiBAY3NzcHJvcCBbLS1zYmItdG9vbHRpcC16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUb29sdGlwRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10b29sdGlwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3Rvb2x0aXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICBwcml2YXRlIHN0YXRpYyBfdG9vbHRpcE91dGxldDogRWxlbWVudDtcblxuICBzdGF0aWMge1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gYmxvY2sgZXhlY3V0aW9uIGZvciBpbml0aWFsaXphdGlvbixcbiAgICAgIC8vIHNvIHdlIGRlZmVyIGl0IHVudGlsIHRoZSBET00gY29udGVudCBpcyBsb2FkZWQuXG4gICAgICBxdWV1ZURvbUNvbnRlbnRMb2FkZWQoKCkgPT4gdGhpcy5faW5pdGlhbGl6ZVRvb2x0aXBPdXRsZXQoKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSB0b29sdGlwIG92ZXJsYXkuXG4gICAqXG4gICAqIEZvciBhdHRyaWJ1dGUgdXNhZ2UsIHByb3ZpZGUgYW4gaWQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQGlkUmVmZXJlbmNlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIHRvb2x0aXAgYWZ0ZXIgYSBnaXZlbiBkZWxheSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnb3Blbi1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IG9wZW5EZWxheSh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIHRoaXMuX29wZW5EZWxheSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgb3BlbkRlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5EZWxheSA/PyByZWFkQ29uZmlnKCkudG9vbHRpcD8ub3BlbkRlbGF5ID8/IDA7XG4gIH1cbiAgcHJpdmF0ZSBfb3BlbkRlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQ2xvc2UgdGhlIHRvb2x0aXAgYWZ0ZXIgYSBnaXZlbiBkZWxheSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY2xvc2UtZGVsYXknLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBjbG9zZURlbGF5KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fY2xvc2VEZWxheSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgY2xvc2VEZWxheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZURlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5jbG9zZURlbGF5ID8/IDA7XG4gIH1cbiAgcHJpdmF0ZSBfY2xvc2VEZWxheTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIHRvb2x0aXAgYWZ0ZXIgaXQgaGFzIGJlZW4gb3BlbiBieSBsb25nIHByZXNzLlxuICAgKiBHbG9iYWwgY29uZmlndXJhdGlvbiBpcyB1c2VkIGFzIGRlZmF1bHQsIGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IDE1MDBcbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2xvbmctcHJlc3MtY2xvc2UtZGVsYXknLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBsb25nUHJlc3NDbG9zZURlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9sb25nUHJlc3NDbG9zZURlbGF5ID0gK3ZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgbG9uZ1ByZXNzQ2xvc2VEZWxheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9sb25nUHJlc3NDbG9zZURlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5sb25nUHJlc3NDbG9zZURlbGF5ID8/IDE1MDA7XG4gIH1cbiAgcHJpdmF0ZSBfbG9uZ1ByZXNzQ2xvc2VEZWxheT86IG51bWJlcjtcblxuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblN0YXRlQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX292ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYk92ZXJsYXlQb3NpdGlvbkNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX29wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2Nsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBwcml2YXRlIF9sb25nUHJlc3NPcGVuVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBwcml2YXRlIF9sb25nUHJlc3NDbG9zZVRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8vIFVudGlsIHRoZSBtb3VzZSBob3ZlcnMgdGhlIHRvb2x0aXAsIGl0IHN0YXlzIG9wZW4uXG4gICAgLy8gT24gJ21vdXNlbGVhdmUnIChpZiB0aGUgbW91c2UgaXMgbm90IG1vdmVkIG9udG8gdGhlIHRyaWdnZXIgYWdhaW4pLCBjbG9zZSBpdC5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpICYmXG4gICAgICAgICAgKCFldmVudC5yZWxhdGVkVGFyZ2V0IHx8ICF0aGlzLl90cmlnZ2VyRWxlbWVudD8uY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5fZGVsYXllZENsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHBhc3NpdmU6IHRydWUgfSxcbiAgICApO1xuXG4gICAgLy8gQW55IHVzZXIgaW50ZXJhY3Rpb24gb3V0c2lkZSB0aGUgdG9vbHRpcCBjbG9zZXMgaXQgaW1tZWRpYXRlbHlcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ292ZXJsYXlPdXRzaWRlUG9pbnRlcicsICgpID0+IHRoaXMuY2xvc2UoKSwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCAoZSkgPT4gdGhpcy5fb25Ub29sdGlwQW5pbWF0aW9uRW5kKGUpLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfaW5pdGlhbGl6ZVRvb2x0aXBPdXRsZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdG9vbHRpcE91dGxldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQuY2xhc3NMaXN0LmFkZCgnc2JiLW92ZXJsYXktb3V0bGV0Jyk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLl90b29sdGlwT3V0bGV0KTtcblxuICAgIC8vIFdlIGFyZSB1c2luZyBNdXRhdGlvbk9ic2VydmVyIGRpcmVjdGx5IGhlcmUsIGFzIGl0IHdpbGwgb25seSBiZSBjYWxsZWQgb24gY2xpZW50IHNpZGUsXG4gICAgLy8gYW5kIHdlIGRvIG5vdCBuZWVkIHRvIGRpc2Nvbm5lY3QgaXQsIGFzIHdlIHdhbnQgaXQgdG8gd29yayBkdXJpbmcgdGhlIGZ1bGwgbGlmZXRpbWVcbiAgICAvLyBvZiB0aGUgcGFnZS5cbiAgICBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgICAgdGhpcy5faGFuZGxlVG9vbHRpcFRyaWdnZXIobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0Jykge1xuICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBbLi4ubXV0YXRpb24uYWRkZWROb2RlcywgLi4ubXV0YXRpb24ucmVtb3ZlZE5vZGVzXS5maWx0ZXIoXG4gICAgICAgICAgICAobik6IG4gaXMgSFRNTEVsZW1lbnQgPT4gbi5ub2RlVHlwZSA9PT0gbi5FTEVNRU5UX05PREUsXG4gICAgICAgICAgKSkge1xuICAgICAgICAgICAgdGhpcy5faGFuZGxlVG9vbHRpcFRyaWdnZXIobm9kZSk7XG4gICAgICAgICAgICB0aGlzLl9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKG5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB7XG4gICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFtcbiAgICAgICAgJ3NiYi10b29sdGlwJyxcbiAgICAgICAgJ3NiYi10b29sdGlwLW9wZW4tZGVsYXknLFxuICAgICAgICAnc2JiLXRvb2x0aXAtY2xvc2UtZGVsYXknLFxuICAgICAgICAnc2JiLXRvb2x0aXAtcG9zaXRpb24nLFxuICAgICAgXSxcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5fZmluZEFuZEhhbmRsZVRvb2x0aXBUcmlnZ2Vycyhkb2N1bWVudC5ib2R5KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKHJvb3Q6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgcm9vdFxuICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCdbc2JiLXRvb2x0aXBdJylcbiAgICAgIC5mb3JFYWNoKChlKSA9PiB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihlKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfaGFuZGxlVG9vbHRpcFRyaWdnZXIodHJpZ2dlckVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgdG9vbHRpcE1lc3NhZ2UgPSB0cmlnZ2VyRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3NiYi10b29sdGlwJyk7XG4gICAgbGV0IHRvb2x0aXAgPSB0b29sdGlwVHJpZ2dlcnMuZ2V0KHRyaWdnZXJFbGVtZW50KTtcblxuICAgIGlmICh0b29sdGlwTWVzc2FnZSAmJiB0cmlnZ2VyRWxlbWVudC5pc0Nvbm5lY3RlZCkge1xuICAgICAgaWYgKCF0b29sdGlwKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBzYmItdG9vbHRpcCBpbiB0aGUgb3V0bGV0IGFuZCBhdHRhY2ggaXQgdG8gdGhlIHRyaWdnZXJcbiAgICAgICAgdG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NiYi10b29sdGlwJyk7XG4gICAgICAgIHRvb2x0aXBUcmlnZ2Vycy5zZXQodHJpZ2dlckVsZW1lbnQsIHRvb2x0aXApO1xuICAgICAgICB0aGlzLl90b29sdGlwT3V0bGV0LmFwcGVuZENoaWxkKHRvb2x0aXApO1xuICAgICAgICB0b29sdGlwLnRyaWdnZXIgPSB0cmlnZ2VyRWxlbWVudDtcbiAgICAgIH1cblxuICAgICAgdG9vbHRpcC50ZXh0Q29udGVudCA9IHRvb2x0aXBNZXNzYWdlO1xuICAgICAgdG9vbHRpcC5vcGVuRGVsYXkgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLW9wZW4tZGVsYXknKVxuICAgICAgICA/ICt0cmlnZ2VyRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLW9wZW4tZGVsYXknKSFcbiAgICAgICAgOiBudWxsO1xuICAgICAgdG9vbHRpcC5jbG9zZURlbGF5ID0gdHJpZ2dlckVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScpXG4gICAgICAgID8gK3RyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtY2xvc2UtZGVsYXknKSFcbiAgICAgICAgOiBudWxsO1xuXG4gICAgICAvLyBSZWFkIHRoZSBwb3NpdGlvbnMgZnJvbSB0aGUgdHJpZ2dlciAoZWl0aGVyIGZyb20gdGhlIGF0dHJpYnV0ZSBvciB0aGUgcHJvcGVydHkpXG4gICAgICBjb25zdCBwb3NpdGlvbnMgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLXBvc2l0aW9uJylcbiAgICAgICAgPyB0cmlnZ2VyRWxlbWVudFxuICAgICAgICAgICAgLmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtcG9zaXRpb24nKSFcbiAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAubWFwKChwKSA9PiBwLnRyaW0oKSlcbiAgICAgICAgOiAodHJpZ2dlckVsZW1lbnQgYXMgdW5rbm93biBhcyBTYmJUb29sdGlwRGVmYXVsdFBvc2l0aW9ucykudG9vbHRpcFBvc2l0aW9ucztcblxuICAgICAgaWYgKHBvc2l0aW9ucyAmJiBwb3NpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0b29sdGlwLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnLCBwb3NpdGlvbnNbMF0pO1xuICAgICAgICB0b29sdGlwLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICctLXNiYi1vdmVybGF5LXBvc2l0aW9uLXRyeS1mYWxsYmFja3MnLFxuICAgICAgICAgIHBvc2l0aW9ucy5zbGljZSgxKS5qb2luKCcsICcpLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhJyk7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodG9vbHRpcCkge1xuICAgICAgLy8gVGhlIHRyaWdnZXIgb3IgdGhlIGF0dHJpYnV0ZSBoYXMgYmVlbiBkZWxldGVkID0+IGRlbGV0ZSB0aGUgY29ubmVjdGVkIHRvb2x0aXBcbiAgICAgIHRvb2x0aXBUcmlnZ2Vycy5kZWxldGUodHJpZ2dlckVsZW1lbnQpO1xuICAgICAgLy8gSWYgYSBjb25zdW1lciBvdmVycmlkZXMgdGhlIGBzYmItdG9vbHRpcGAsIHRoZSBmb2xsb3dpbmcgY29kZSBzaG91bGQgbm90IGJlXG4gICAgICAvLyBleGVjdXRlZCBhcyB3ZSBjYW4ndCBleHBlY3QgdGhhdCBwcml2YXRlIG1ldGhvZHMgYXJlIG1vY2tlZC5cbiAgICAgIHRvb2x0aXAuX2Rlc3Ryb3k/LigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMucG9wb3ZlciA9ICdtYW51YWwnO1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmNvbm5lY3QodGhpcyk7XG5cbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmIHRoaXMudHJpZ2dlcikge1xuICAgICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgc2JiT3ZlcmxheU91dHNpZGVQb2ludGVyRXZlbnRMaXN0ZW5lci5kaXNjb25uZWN0KHRoaXMpO1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCghbmFtZSB8fCBuYW1lID09PSAndHJpZ2dlcicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2F0dGFjaCh0aGlzLnRyaWdnZXIpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKFxuICAgICAgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuc3RhdGUgIT09ICdjbG9zaW5nJykgfHxcbiAgICAgIHRoaXMuZGlzYWJsZWQgfHxcbiAgICAgICF0aGlzLnRyaWdnZXIgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dQb3BvdmVyPy4oKTtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuICAgIHRoaXMuX292ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QodGhpcy50cmlnZ2VyKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyAmJiB0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpO1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RlbGF5ZWRPcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX29wZW5UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLm9wZW4oKSwgdGhpcy5vcGVuRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlbGF5ZWRDbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICB0aGlzLl9jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5jbG9zZURlbGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMuX292ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcblxuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcml2YXRlIF9vblRvb2x0aXBBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoKHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgLy8gRXZlbnR1YWxseSBkZXRhY2ggZnJvbSB0aGUgb2xkIHRyaWdnZXJcbiAgICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdHJpZ2dlcjtcbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzID0gYXBwZW5kQXJpYUVsZW1lbnRzKFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMsXG4gICAgICB0aGlzLFxuICAgICk7XG4gICAgdGhpcy5fYWRkVHJpZ2dlckV2ZW50SGFuZGxlcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGFjaCgpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXI/LmFib3J0KCk7XG5cbiAgICAvLyBjbGVhciB0aW1lb3V0c1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl9sb25nUHJlc3NPcGVuVGltZW91dCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc0Nsb3NlVGltZW91dCk7XG5cbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzID0gcmVtb3ZlQXJpYUVsZW1lbnRzKFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMsXG4gICAgICB0aGlzLFxuICAgICk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXRhY2goKTtcbiAgICB0aGlzLnJlbW92ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkVHJpZ2dlckV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgdHJpZ2dlciA9IHRoaXMuX3RyaWdnZXJFbGVtZW50O1xuICAgIGlmICghdHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCBvcHRpb25zOiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyA9IHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgIH07XG5cbiAgICBpZiAoIWlzTW9iaWxlKSB7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB0aGlzLl9kZWxheWVkT3BlbigpLCBvcHRpb25zKTtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ21vdXNlbGVhdmUnLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUgfCBudWxsO1xuICAgICAgICAgIGlmICghbmV3VGFyZ2V0IHx8IG5ld1RhcmdldCAhPT0gdGhpcykge1xuICAgICAgICAgICAgdGhpcy5fZGVsYXllZENsb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKTtcblxuICAgICAgLy8gJ2JsdXJzJyBpbW1lZGlhdGVseSBjbG9zZSB0aGUgdG9vbHRpcCBiZWNhdXNlIGl0IGlzIGNvbnNpZGVyZWQgYW4gJ2ludGVyYWN0aW9uIHdpdGggb3RoZXIgZWxlbWVudHMnXG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB0aGlzLmNsb3NlKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8vIExvbmctcHJlc3MgZXZlbnQgaGFuZGxpbmcgKG1haW5seSBmb3IgbW9iaWxlIHVzZXJzKVxuICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICd0b3VjaHN0YXJ0JyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc0Nsb3NlVGltZW91dCk7XG4gICAgICAgIHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLm9wZW4oKSwgTE9OR1BSRVNTX0RFTEFZKTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoZW5kJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMubG9uZ1ByZXNzQ2xvc2VEZWxheSk7XG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICd0b3VjaGNhbmNlbCcsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9sb25nUHJlc3NPcGVuVGltZW91dCk7XG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi10b29sdGlwLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl9vcGVuVGltZW91dCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZW91dCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItdG9vbHRpcFwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdG9vbHRpcCc6IFNiYlRvb2x0aXBFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQ3lDQSxJQUFNLGtCQUFrQjtBQUV4QixJQUFNLFdBQVcsYUFBYTtBQUM5QixJQUFNLGtDQUFrQixJQUFJLFNBQXlDOzs7Ozs7Ozs7Ozs7SUFheEQsMkJBQWlCO21CQUFTLGlCQUFpQix3QkFBd0I7Ozs7Ozs7O2NBQW5FLDBCQUEwQixZQUF5Qzs7OzBCQW9CN0UsYUFBYSxFQUNiLFVBQVUsQ0FBQTtnQ0FTVixTQUFTO0lBQUUsV0FBVztJQUFjLE1BQU07SUFBUSxDQUFDLENBQUE7aUNBZW5ELFNBQVM7SUFBRSxXQUFXO0lBQWUsTUFBTTtJQUFRLENBQUMsQ0FBQTswQ0FlcEQsU0FBUztJQUFFLFdBQVc7SUFBMEIsTUFBTTtJQUFRLENBQUMsQ0FBQTtBQXRDaEUsZ0JBQUEsTUFB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
@@ -1,4 +1,4 @@
1
- import { t as SbbTooltipElement } from "./tooltip.component-BV0yBh9f.js";
1
+ import { t as SbbTooltipElement } from "./tooltip.component-Br7aDPFn.js";
2
2
  import "./tooltip.pure.js";
3
3
  //#region src/elements/tooltip.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbTooltipElement } from "./tooltip.component-BV0yBh9f.js";
1
+ import { t as SbbTooltipElement } from "./tooltip.component-Br7aDPFn.js";
2
2
  export { SbbTooltipElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbTrainWagonElement } from "../../train-wagon.component-X0XSMLK_.js";
1
+ import { t as SbbTrainWagonElement } from "../../train-wagon.component-B6V4dPKn.js";
2
2
  export { SbbTrainWagonElement };
@@ -7,7 +7,7 @@ import { SbbIconElement } from "./icon.pure.js";
7
7
  import { SbbTimetableOccupancyIconElement } from "./timetable-occupancy-icon.pure.js";
8
8
  import { when } from "lit/directives/when.js";
9
9
  //#region src/elements/train/train-wagon/train-wagon.scss?inline
10
- var train_wagon_default = ":host {\n display: block;\n --sbb-train-wagon-width: var(--sbb-train-formation-wagon-width);\n --sbb-train-wagon-height: var(--sbb-train-formation-wagon-height);\n --sbb-train-wagon-shape-color: var(--sbb-color-3);\n --sbb-train-wagon-main-icon-height: 1.25rem;\n --sbb-train-wagon-main-icon-margin-block-start: 0.625rem;\n --sbb-train-wagon-attribute-icon-gap: var(--sbb-spacing-fixed-1x);\n --sbb-train-wagon-attribute-icon-height: 0.875rem;\n --sbb-train-wagon-attribute-icon-color: var(--sbb-color-1);\n --sbb-train-wagon-occupancy-height: 0.75rem;\n}\n@media (forced-colors: active) {\n :host {\n --sbb-train-wagon-shape-color: CanvasText;\n }\n}\n\n@media (forced-colors: active) {\n :host([type=closed]) {\n --sbb-train-wagon-shape-color: GrayText;\n }\n}\n\n:host(:is([type=sleeping], [type=couchette])) {\n --sbb-train-wagon-main-icon-margin-block-start: 0.390625rem;\n}\n\n:host(:is([type=wagon], [type=restaurant], [type=sleeping], [type=couchette])) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-wagon-shape);\n}\n\n:host([type=closed]) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-wagon-closed-shape);\n}\n\n:host([type=locomotive]) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-locomotive-shape);\n}\n\n:host([type=wagon-end-left]) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-wagon-end-left-shape);\n}\n\n:host([type=wagon-end-right]) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-wagon-end-right-shape);\n}\n\n.sbb-train-wagon {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: var(--sbb-train-wagon-width);\n gap: var(--sbb-train-formation-vertical-gap);\n}\n\n.sbb-train-wagon__compartment {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n display: grid;\n grid-template: \"label label\" auto \"occupancy class\" 1fr/1fr 1fr;\n}\n.sbb-train-wagon__compartment::before {\n content: \"\";\n grid-column: occupancy/class;\n grid-row: occupancy;\n pointer-events: none;\n width: var(--sbb-train-wagon-width);\n height: var(--sbb-train-wagon-height);\n background-color: var(--sbb-train-wagon-shape-color);\n mask-image: var(--sbb-train-wagon-shape);\n}\n\n.sbb-train-wagon__main-icon {\n --sbb-icon-svg-height: var(--sbb-train-wagon-main-icon-height);\n grid-column: occupancy/class;\n grid-row: occupancy;\n margin-block-start: var(--sbb-train-wagon-main-icon-margin-block-start);\n justify-self: center;\n}\n\n.sbb-train-wagon__label {\n --sbb-text-font-size: var(--sbb-text-font-size-xxs);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n grid-area: label;\n text-align: center;\n display: var(--sbb-train-formation-wagon-label-display, inline-block);\n min-height: calc(1em * var(--sbb-typo-line-height-text));\n}\n\n.sbb-train-wagon__occupancy,\n.sbb-train-wagon__class {\n height: var(--sbb-train-wagon-height);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.sbb-train-wagon__occupancy {\n --sbb-icon-svg-height: var(--sbb-train-wagon-occupancy-height);\n grid-area: occupancy;\n}\n\n.sbb-train-wagon__class {\n --sbb-title-font-size: var(--sbb-title-font-size-level-6-lean, var(--sbb-heading-font-size-6));\n --sbb-title-line-height: var(--sbb-typo-line-height-text);\n margin-block: var(--sbb-title-margin-block, 0);\n margin-inline: 0;\n font-family: var(--sbb-typo-font-family);\n font-weight: bold;\n line-height: var(--sbb-title-line-height, var(--sbb-typo-line-height-heading));\n letter-spacing: var(--sbb-typo-letter-spacing-heading);\n font-size: var(--sbb-title-font-size);\n grid-area: class;\n}\n\n.sbb-train-wagon__attribute-icon-list {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n --sbb-icon-svg-height: var(--sbb-train-wagon-attribute-icon-height);\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--sbb-train-wagon-attribute-icon-gap);\n color: var(--sbb-train-wagon-attribute-icon-color);\n}\n\n.sbb-train-wagon__attribute-icon-list > :is(li, span) {\n display: inline-flex;\n}\n\n.sbb-screen-reader-only {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}";
10
+ var train_wagon_default = ":host {\n display: block;\n --sbb-train-wagon-width: var(--sbb-train-formation-wagon-width);\n --sbb-train-wagon-height: var(--sbb-train-formation-wagon-height);\n --sbb-train-wagon-shape-color: var(--sbb-color-3);\n --sbb-train-wagon-main-icon-height: 1.25rem;\n --sbb-train-wagon-main-icon-margin-block-start: 0.625rem;\n --sbb-train-wagon-attribute-icon-gap: var(--sbb-spacing-fixed-1x);\n --sbb-train-wagon-attribute-icon-height: 0.875rem;\n --sbb-train-wagon-attribute-icon-color: var(--sbb-color-1);\n --sbb-train-wagon-occupancy-height: 0.75rem;\n}\n@media (forced-colors: active) {\n :host {\n --sbb-train-wagon-shape-color: CanvasText;\n }\n}\n\n@media (forced-colors: active) {\n :host([type=closed]) {\n --sbb-train-wagon-shape-color: GrayText;\n }\n}\n\n:host(:is([type=sleeping], [type=couchette])) {\n --sbb-train-wagon-main-icon-margin-block-start: 0.390625rem;\n}\n\n:host(:is([type=wagon], [type=restaurant], [type=sleeping], [type=couchette])) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-wagon-shape);\n}\n\n:host([type=closed]) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-wagon-closed-shape);\n}\n\n:host([type=locomotive]) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-locomotive-shape);\n}\n\n:host([type=wagon-end-left]) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-wagon-end-left-shape);\n}\n\n:host([type=wagon-end-right]) {\n --sbb-train-wagon-shape: var(--sbb-train-wagon-wagon-end-right-shape);\n}\n\n.sbb-train-wagon {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: var(--sbb-train-wagon-width);\n gap: var(--sbb-train-formation-vertical-gap);\n}\n\n.sbb-train-wagon__compartment {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n display: grid;\n grid-template: \"label label\" auto \"occupancy class\" 1fr/1fr 1fr;\n}\n.sbb-train-wagon__compartment::before {\n content: \"\";\n grid-column: occupancy/class;\n grid-row: occupancy;\n pointer-events: none;\n width: var(--sbb-train-wagon-width);\n height: var(--sbb-train-wagon-height);\n background-color: var(--sbb-train-wagon-shape-color);\n mask-image: var(--sbb-train-wagon-shape);\n}\n\n.sbb-train-wagon__main-icon {\n --sbb-icon-svg-height: var(--sbb-train-wagon-main-icon-height);\n grid-column: occupancy/class;\n grid-row: occupancy;\n margin-block-start: var(--sbb-train-wagon-main-icon-margin-block-start);\n justify-self: center;\n}\n\n.sbb-train-wagon__label {\n --sbb-text-font-size: var(--sbb-text-font-size-xxs);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n grid-area: label;\n text-align: center;\n display: var(--sbb-train-formation-wagon-label-display, inline-block);\n min-height: calc(1em * var(--sbb-typo-line-height-text));\n}\n\n.sbb-train-wagon__occupancy,\n.sbb-train-wagon__class {\n height: var(--sbb-train-wagon-height);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.sbb-train-wagon__occupancy {\n --sbb-icon-svg-height: var(--sbb-train-wagon-occupancy-height);\n grid-area: occupancy;\n}\n\n.sbb-train-wagon__class {\n --sbb-title-font-size: var(--sbb-title-font-size-level-6-lean, var(--sbb-heading-font-size-6));\n --sbb-title-line-height: var(--sbb-typo-line-height-text);\n margin-block: var(--sbb-title-margin-block, 0);\n margin-inline: 0;\n font-family: var(--sbb-typo-font-family);\n font-weight: bold;\n font-size: var(--sbb-title-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-heading);\n line-height: var(--sbb-title-line-height, var(--sbb-typo-line-height-heading));\n grid-area: class;\n}\n\n.sbb-train-wagon__attribute-icon-list {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n --sbb-icon-svg-height: var(--sbb-train-wagon-attribute-icon-height);\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--sbb-train-wagon-attribute-icon-gap);\n color: var(--sbb-train-wagon-attribute-icon-color);\n}\n\n.sbb-train-wagon__attribute-icon-list > :is(li, span) {\n display: inline-flex;\n}\n\n.sbb-screen-reader-only {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}";
11
11
  //#endregion
12
12
  //#region src/elements/train/train-wagon/train-wagon.component.ts
13
13
  var typeToIconMap = {
@@ -331,4 +331,4 @@ var SbbTrainWagonElement = (() => {
331
331
  //#endregion
332
332
  export { SbbTrainWagonElement as t };
333
333
 
334
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24uY29tcG9uZW50LVgwWFNNTEtfLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAtLXNiYi10cmFpbi13YWdvbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aCk7XG4gIC0tc2JiLXRyYWluLXdhZ29uLWhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xuICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMpO1xuICAtLXNiYi10cmFpbi13YWdvbi1tYWluLWljb24taGVpZ2h0OiAje3NiYi5weC10by1yZW0tYnVpbGQoMjApfTtcbiAgLS1zYmItdHJhaW4td2Fnb24tbWFpbi1pY29uLW1hcmdpbi1ibG9jay1zdGFydDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEwKX07XG4gIC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICAtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1oZWlnaHQ6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxNCl9O1xuICAtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTEpO1xuICAtLXNiYi10cmFpbi13YWdvbi1vY2N1cGFuY3ktaGVpZ2h0OiAje3NiYi5weC10by1yZW0tYnVpbGQoMTIpfTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItdHJhaW4td2Fnb24tc2hhcGUtY29sb3I6IENhbnZhc1RleHQ7XG4gIH1cbn1cblxuLy8gOmhvc3QoOmlzKFt0eXBlPSdjbG9zZWQnXSwgW3R5cGU9J2xvY29tb3RpdmUnXSkpIHtcbi8vICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLW1ldGFsKTtcbi8vXG4vLyAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuLy8gICAgLS1zYmItdHJhaW4td2Fnb24tc2hhcGUtY29sb3I6IENhbnZhc1RleHQ7XG4vLyAgfVxuLy8gfVxuXG46aG9zdChbdHlwZT0nY2xvc2VkJ10pIHtcbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yOiBHcmF5VGV4dDtcbiAgfVxufVxuXG46aG9zdCg6aXMoW3R5cGU9J3NsZWVwaW5nJ10sIFt0eXBlPSdjb3VjaGV0dGUnXSkpIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tbWFpbi1pY29uLW1hcmdpbi1ibG9jay1zdGFydDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDYuMjUpfTtcbn1cblxuOmhvc3QoOmlzKFt0eXBlPSd3YWdvbiddLCBbdHlwZT0ncmVzdGF1cmFudCddLCBbdHlwZT0nc2xlZXBpbmcnXSwgW3R5cGU9J2NvdWNoZXR0ZSddKSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXdhZ29uLXNoYXBlKTtcbn1cblxuOmhvc3QoW3R5cGU9J2Nsb3NlZCddKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlOiB2YXIoLS1zYmItdHJhaW4td2Fnb24td2Fnb24tY2xvc2VkLXNoYXBlKTtcbn1cblxuOmhvc3QoW3R5cGU9J2xvY29tb3RpdmUnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWxvY29tb3RpdmUtc2hhcGUpO1xufVxuXG46aG9zdChbdHlwZT0nd2Fnb24tZW5kLWxlZnQnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXdhZ29uLWVuZC1sZWZ0LXNoYXBlKTtcbn1cblxuOmhvc3QoW3R5cGU9J3dhZ29uLWVuZC1yaWdodCddKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlOiB2YXIoLS1zYmItdHJhaW4td2Fnb24td2Fnb24tZW5kLXJpZ2h0LXNoYXBlKTtcbn1cblxuLnNiYi10cmFpbi13YWdvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24td2lkdGgpO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tdmVydGljYWwtZ2FwKTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnQge1xuICBAaW5jbHVkZSBzYmIubGlzdC1yZXNldDtcblxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlOlxuICAgICdsYWJlbCBsYWJlbCcgYXV0b1xuICAgICdvY2N1cGFuY3kgY2xhc3MnIDFmciAvIDFmciAxZnI7XG5cbiAgLy8gVHlwZSBzaGFwZVxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGdyaWQtY29sdW1uOiBvY2N1cGFuY3kgLyBjbGFzcztcbiAgICBncmlkLXJvdzogb2NjdXBhbmN5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24td2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWhlaWdodCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yKTtcblxuICAgIC8vIFVzaW5nIG1hc2staW1hZ2UgdGFrZXMgdGhlIGJhY2tncm91bmQtY29sb3IgYXMgc3Ryb2tlIGNvbG9yXG4gICAgbWFzay1pbWFnZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlKTtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19tYWluLWljb24ge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1tYWluLWljb24taGVpZ2h0KTtcblxuICBncmlkLWNvbHVtbjogb2NjdXBhbmN5IC8gY2xhc3M7XG4gIGdyaWQtcm93OiBvY2N1cGFuY3k7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLW1haW4taWNvbi1tYXJnaW4tYmxvY2stc3RhcnQpO1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fbGFiZWwge1xuICBAaW5jbHVkZSBzYmIudGV4dC14eHMtLXJlZ3VsYXI7XG5cbiAgZ3JpZC1hcmVhOiBsYWJlbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWxhYmVsLWRpc3BsYXksIGlubGluZS1ibG9jayk7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMWVtICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkpO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3ksXG4uc2JiLXRyYWluLXdhZ29uX19jbGFzcyB7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWhlaWdodCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3kge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1vY2N1cGFuY3ktaGVpZ2h0KTtcblxuICBncmlkLWFyZWE6IG9jY3VwYW5jeTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fY2xhc3Mge1xuICBAaW5jbHVkZSBzYmIudGl0bGUtNigkZXhjbHVkZS1zcGFjaW5nOiB0cnVlKTtcblxuICBncmlkLWFyZWE6IGNsYXNzO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19hdHRyaWJ1dGUtaWNvbi1saXN0IHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24taGVpZ2h0KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1nYXApO1xuICBjb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWNvbG9yKTtcbn1cblxuLy8gVXNpbmcgLi4uIGxpIHNlbGVjdG9yLCBiZWNhdXNlIHRoZSBsaSBnZW5lcmF0aW9uXG4vLyBpcyBoYW5kbGVkIGluIHRoZSBjb21wb25lbnQgYmFzZSBjbGFzcy5cbi5zYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5zYmItc2NyZWVuLXJlYWRlci1vbmx5IHtcbiAgQGluY2x1ZGUgc2JiLnNjcmVlbi1yZWFkZXItb25seTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHdoZW4gfSBmcm9tICdsaXQvZGlyZWN0aXZlcy93aGVuLmpzJztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgeyB0eXBlIFNiYk9jY3VwYW5jeSwgU2JiRWxlbWVudCwgdHlwZSBTYmJFbGVtZW50VHlwZSB9IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHtcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBmb3JjZVR5cGUsXG4gIGhhbmRsZURpc3RpbmN0Q2hhbmdlLFxuICBvbWl0RW1wdHlDb252ZXJ0ZXIsXG4gIGkxOG5BZGRpdGlvbmFsV2Fnb25JbmZvcm1hdGlvbkhlYWRpbmcsXG4gIGkxOG5CbG9ja2VkUGFzc2FnZSxcbiAgaTE4bkNsYXNzLFxuICBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbCxcbiAgaTE4bkNvdWNoZXR0ZVdhZ29uTGFiZWwsXG4gIGkxOG5Mb2NvbW90aXZlTGFiZWwsXG4gIGkxOG5SZXN0YXVyYW50V2Fnb25MYWJlbCxcbiAgaTE4blNlY3RvcixcbiAgaTE4blNsZWVwaW5nV2Fnb25MYWJlbCxcbiAgaTE4bldhZ29uTGFiZWwsXG4gIGkxOG5XYWdvbkxhYmVsTnVtYmVyLFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIGJveFNpemluZ1N0eWxlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uRWxlbWVudCB9IGZyb20gJy4uLy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCB9IGZyb20gJy4uLy4uL3RpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbi5wdXJlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4td2Fnb24uc2Nzcz9pbmxpbmUnO1xuXG5jb25zdCB0eXBlVG9JY29uTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBjb3VjaGV0dGU6ICdzYS1jYycsXG4gIHNsZWVwaW5nOiAnc2Etd2wnLFxuICByZXN0YXVyYW50OiAnc2Etd3InLFxufTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRyYWluIGNvbXBhcnRtZW50IHdpdGhpbiBhIGBzYmItdHJhaW5gIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBvbmUgb3IgbW9yZSBgc2JiLWljb25gIGZvciBtZXRhLWluZm9ybWF0aW9uIG9mIHRoZSBgc2JiLXRyYWluLXdhZ29uYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRyYWluV2Fnb25FbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFNiYkljb25FbGVtZW50LCB0eXBlb2YgU2JiRWxlbWVudD4oXG4gIFNiYkVsZW1lbnQsXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10cmFpbi13YWdvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJJY29uRWxlbWVudCxcbiAgICBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlY3RvcmNoYW5nZTogJ3NlY3RvcmNoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFdhZ29uIHR5cGUuXG4gICAqIEZvciBgd2Fnb24tZW5kLWxlZnRgIGFuZCBgd2Fnb24tZW5kLXJpZ2h0YCwgcGxlYXNlIHNldCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBvZiB0aGUgYGJsb2NrZWRQYXNzYWdlYCBwcm9wZXJ0eS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHR5cGU6XG4gICAgfCAnd2Fnb24nXG4gICAgfCAnd2Fnb24tZW5kLWxlZnQnXG4gICAgfCAnd2Fnb24tZW5kLXJpZ2h0J1xuICAgIHwgJ2NvdWNoZXR0ZSdcbiAgICB8ICdzbGVlcGluZydcbiAgICB8ICdyZXN0YXVyYW50J1xuICAgIHwgJ2xvY29tb3RpdmUnXG4gICAgfCAnY2xvc2VkJyA9ICd3YWdvbic7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxpc3RDaGlsZExvY2FsTmFtZXMgPSBbJ3NiYi1pY29uJ107XG5cbiAgLyoqIE9jY3VwYW5jeSBvZiBhIHdhZ29uLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3Igb2NjdXBhbmN5OiBTYmJPY2N1cGFuY3kgfCBudWxsID0gbnVsbDtcblxuICAvKiogU2VjdG9yIGluIHdoaWNoIHRoZSB3YWdvbiBzdG9wcy4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBoYW5kbGVEaXN0aW5jdENoYW5nZSgoZTogU2JiVHJhaW5XYWdvbkVsZW1lbnQpID0+IGUuX3NlY3RvckNoYW5nZWQoKSlcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgY29udmVydGVyOiBvbWl0RW1wdHlDb252ZXJ0ZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIHNlY3Rvcjogc3RyaW5nID0gJyc7XG5cbiAgLyoqIEFjY2Vzc2liaWxpdHkgdGV4dCBmb3IgYmxvY2tlZCBwYXNzYWdlcyBvZiB0aGUgd2Fnb24uICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Jsb2NrZWQtcGFzc2FnZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIGJsb2NrZWRQYXNzYWdlOiAncHJldmlvdXMnIHwgJ25leHQnIHwgJ2JvdGgnIHwgJ25vbmUnID0gJ25vbmUnO1xuXG4gIC8qKiBDbGFzcyBsYWJlbCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd3YWdvbi1jbGFzcycgfSkgcHVibGljIGFjY2Vzc29yIHdhZ29uQ2xhc3M6ICcxJyB8ICcyJyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXYWdvbiBudW1iZXIgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIEFkZGl0aW9uYWwgYWNjZXNzaWJpbGl0eSB0ZXh0IHdoaWNoIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIGVuZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FkZGl0aW9uYWwtYWNjZXNzaWJpbGl0eS10ZXh0JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0OiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfc2VjdG9yQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnc2VjdG9yY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF90eXBlTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnY2xvc2VkJykge1xuICAgICAgcmV0dXJuIGkxOG5DbG9zZWRDb21wYXJ0bWVudExhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnbG9jb21vdGl2ZScpIHtcbiAgICAgIHJldHVybiBpMThuTG9jb21vdGl2ZUxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnY291Y2hldHRlJykge1xuICAgICAgcmV0dXJuIGkxOG5Db3VjaGV0dGVXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnc2xlZXBpbmcnKSB7XG4gICAgICByZXR1cm4gaTE4blNsZWVwaW5nV2Fnb25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Jlc3RhdXJhbnQnKSB7XG4gICAgICByZXR1cm4gaTE4blJlc3RhdXJhbnRXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH1cbiAgICByZXR1cm4gaTE4bldhZ29uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBibG9ja2VkUGFzc2FnZSA9XG4gICAgICB0aGlzLnR5cGUgPT09ICd3YWdvbi1lbmQtbGVmdCcgJiYgdGhpcy5ibG9ja2VkUGFzc2FnZSA9PT0gJ25vbmUnXG4gICAgICAgID8gJ3ByZXZpb3VzJ1xuICAgICAgICA6IHRoaXMudHlwZSA9PT0gJ3dhZ29uLWVuZC1yaWdodCcgJiYgdGhpcy5ibG9ja2VkUGFzc2FnZSA9PT0gJ25vbmUnXG4gICAgICAgICAgPyAnbmV4dCdcbiAgICAgICAgICA6ICh0aGlzLmJsb2NrZWRQYXNzYWdlID8/ICdub25lJyk7XG5cbiAgICBjb25zdCBoYXNCbG9ja2VkUGFzc2FnZUVudHJ5ID0gYmxvY2tlZFBhc3NhZ2UgIT09ICdub25lJztcblxuICAgIC8vIEZyb20gYWNjZXNzaWJpbGl0eSBwZXJzcGVjdGl2ZSB3ZSBjYW5ub3QgY3JlYXRlIGEgbGlzdCB3aXRoIG9ubHkgb25lIGVudHJ5LlxuICAgIC8vIFdlIG5lZWQgdG8ga25vdyB3aGF0IHdpbGwgYmUgcHJlc2VudGVkIGFuZCBzd2l0Y2ggc2VtYW50aWNzIGJhc2VkIG9uIGNvdW50LlxuICAgIGNvbnN0IGxpc3RFbnRyaWVzQ291bnQgPVxuICAgICAgKyEhdGhpcy5zZWN0b3IgK1xuICAgICAgKyEhdGhpcy5sYWJlbCArXG4gICAgICArKCEhdGhpcy53YWdvbkNsYXNzICYmIHRoaXMudHlwZSAhPT0gJ2Nsb3NlZCcpICtcbiAgICAgICsoISF0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLnR5cGUgIT09ICdjbG9zZWQnKSArXG4gICAgICAraGFzQmxvY2tlZFBhc3NhZ2VFbnRyeTtcblxuICAgIGNvbnN0IHNlY3RvclN0cmluZyA9IGAke2kxOG5TZWN0b3JbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19LCAke3RoaXMuc2VjdG9yfWA7XG5cbiAgICBjb25zdCBsYWJlbENvbnRlbnQgPSB0aGlzLmxhYmVsXG4gICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAke2Ake2kxOG5XYWdvbkxhYmVsTnVtYmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSwgJHt0aGlzLmxhYmVsfWB9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YFxuICAgICAgOiBub3RoaW5nO1xuXG4gICAgY29uc3Qgd2Fnb25DbGFzc0NvbnRlbnQgPSBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAke3RoaXMud2Fnb25DbGFzcyA9PT0gJzEnXG4gICAgICAgICAgPyBpMThuQ2xhc3NbJ2ZpcnN0J11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgICA6IGkxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4ke3RoaXMud2Fnb25DbGFzc308L3NwYW4+YDtcblxuICAgIGNvbnN0IG1haW5JY29uID0gdHlwZVRvSWNvbk1hcFt0aGlzLnR5cGVdXG4gICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgbmFtZT0ke3R5cGVUb0ljb25NYXBbdGhpcy50eXBlXX1cbiAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fbWFpbi1pY29uXCJcbiAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgOiBub3RoaW5nO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXRyYWluLXdhZ29uXCI+XG4gICAgICAgICR7d2hlbihcbiAgICAgICAgICBsaXN0RW50cmllc0NvdW50ID4gMSxcbiAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgaHRtbGA8dWwgYXJpYS1sYWJlbD0ke3RoaXMuX3R5cGVMYWJlbCgpfSBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnRcIj5cbiAgICAgICAgICAgICAgJHt0aGlzLnNlY3RvclxuICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtzZWN0b3JTdHJpbmd9PC9saT5gXG4gICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2xhYmVsXCIgYXJpYS1oaWRkZW49JHtgJHshdGhpcy5sYWJlbH1gfT5cbiAgICAgICAgICAgICAgICAke2xhYmVsQ29udGVudH1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy50eXBlICE9PSAnY2xvc2VkJ1xuICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzXCI+JHt3YWdvbkNsYXNzQ29udGVudH08L2xpPmBcbiAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICR7dGhpcy5vY2N1cGFuY3kgJiYgdGhpcy50eXBlICE9PSAnY2xvc2VkJ1xuICAgICAgICAgICAgICAgID8gaHRtbGA8c2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5XCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgb2NjdXBhbmN5PSR7dGhpcy5vY2N1cGFuY3l9XG4gICAgICAgICAgICAgICAgICA+PC9zYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uPmBcbiAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICR7aGFzQmxvY2tlZFBhc3NhZ2VFbnRyeVxuICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICR7aTE4bkJsb2NrZWRQYXNzYWdlW2Jsb2NrZWRQYXNzYWdlXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgIDwvbGk+YFxuICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgJHttYWluSWNvbn1cbiAgICAgICAgICAgIDwvdWw+YCxcbiAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19jb21wYXJ0bWVudFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAke2Ake3RoaXMuX3R5cGVMYWJlbCgpfSR7dGhpcy5zZWN0b3IgPyBgLCAke3NlY3RvclN0cmluZ31gIDogJyd9YH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fbGFiZWxcIiBhcmlhLWhpZGRlbj0ke2AkeyF0aGlzLmxhYmVsfWB9PlxuICAgICAgICAgICAgICAgICR7bGFiZWxDb250ZW50fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy50eXBlICE9PSAnY2xvc2VkJ1xuICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY2xhc3NcIj4ke3dhZ29uQ2xhc3NDb250ZW50fTwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAke3RoaXMub2NjdXBhbmN5ICYmIHRoaXMudHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICA/IGh0bWxgPHNiYi10aW1ldGFibGUtb2NjdXBhbmN5LWljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeVwiXG4gICAgICAgICAgICAgICAgICAgIG9jY3VwYW5jeT0ke3RoaXMub2NjdXBhbmN5fVxuICAgICAgICAgICAgICAgICAgPjwvc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbj5gXG4gICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAke2hhc0Jsb2NrZWRQYXNzYWdlRW50cnlcbiAgICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICR7aTE4bkJsb2NrZWRQYXNzYWdlW2Jsb2NrZWRQYXNzYWdlXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAke21haW5JY29ufVxuICAgICAgICAgICAgPC9kaXY+IGAsXG4gICAgICAgICl9XG4gICAgICAgICR7dGhpcy5hZGRpdGlvbmFsQWNjZXNzaWJpbGl0eVRleHRcbiAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+LCAke3RoaXMuYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0fTwvc3Bhbj5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAke3RoaXMucmVuZGVyTGlzdCh7XG4gICAgICAgICAgY2xhc3M6ICdzYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3QnLFxuICAgICAgICAgIGFyaWFMYWJlbDogaTE4bkFkZGl0aW9uYWxXYWdvbkluZm9ybWF0aW9uSGVhZGluZ1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XSxcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdHJhaW4td2Fnb24nOiBTYmJUcmFpbldhZ29uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUM4QkEsSUFBTSxnQkFBd0M7Q0FDNUMsV0FBVztDQUNYLFVBQVU7Q0FDVixZQUFZO0NBQ2I7Ozs7OztJQU9ZLDhCQUFvQjttQkFBUyxzQkFDeEMsV0FDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUZZLDZCQUE2QixZQUV6Qzs7O0FBZThDLFNBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFROUIsUUFBTztBQUVNLFFBQUEsdUJBQW1CLGtCQUFBLE1BQUEsd0JBQUEsRUFBRyxDQUFDLFdBQVc7QUFHbEMsU0FBQSw2QkFBQSxrQkFBQSxNQUFBLHlCQUFpQyxLQUFJO0FBTWpELFNBQUEsMkJBQUEsa0JBQUEsTUFBQSw2QkFBQSxFQUFBLGtCQUFBLE1BQUEsc0JBQWlCLEdBQUU7QUFJbkIsU0FBQSxtQ0FBQSxrQkFBQSxNQUFBLDBCQUFBLEVBQUEsa0JBQUEsTUFBQSw4QkFBd0QsT0FBTTtBQUd0QixTQUFBLCtCQUFB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
334
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24uY29tcG9uZW50LUI2VjRkUEtuLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAtLXNiYi10cmFpbi13YWdvbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aCk7XG4gIC0tc2JiLXRyYWluLXdhZ29uLWhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xuICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMpO1xuICAtLXNiYi10cmFpbi13YWdvbi1tYWluLWljb24taGVpZ2h0OiAje3NiYi5weC10by1yZW0tYnVpbGQoMjApfTtcbiAgLS1zYmItdHJhaW4td2Fnb24tbWFpbi1pY29uLW1hcmdpbi1ibG9jay1zdGFydDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEwKX07XG4gIC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICAtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1oZWlnaHQ6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxNCl9O1xuICAtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTEpO1xuICAtLXNiYi10cmFpbi13YWdvbi1vY2N1cGFuY3ktaGVpZ2h0OiAje3NiYi5weC10by1yZW0tYnVpbGQoMTIpfTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItdHJhaW4td2Fnb24tc2hhcGUtY29sb3I6IENhbnZhc1RleHQ7XG4gIH1cbn1cblxuLy8gOmhvc3QoOmlzKFt0eXBlPSdjbG9zZWQnXSwgW3R5cGU9J2xvY29tb3RpdmUnXSkpIHtcbi8vICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLW1ldGFsKTtcbi8vXG4vLyAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuLy8gICAgLS1zYmItdHJhaW4td2Fnb24tc2hhcGUtY29sb3I6IENhbnZhc1RleHQ7XG4vLyAgfVxuLy8gfVxuXG46aG9zdChbdHlwZT0nY2xvc2VkJ10pIHtcbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yOiBHcmF5VGV4dDtcbiAgfVxufVxuXG46aG9zdCg6aXMoW3R5cGU9J3NsZWVwaW5nJ10sIFt0eXBlPSdjb3VjaGV0dGUnXSkpIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tbWFpbi1pY29uLW1hcmdpbi1ibG9jay1zdGFydDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDYuMjUpfTtcbn1cblxuOmhvc3QoOmlzKFt0eXBlPSd3YWdvbiddLCBbdHlwZT0ncmVzdGF1cmFudCddLCBbdHlwZT0nc2xlZXBpbmcnXSwgW3R5cGU9J2NvdWNoZXR0ZSddKSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXdhZ29uLXNoYXBlKTtcbn1cblxuOmhvc3QoW3R5cGU9J2Nsb3NlZCddKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlOiB2YXIoLS1zYmItdHJhaW4td2Fnb24td2Fnb24tY2xvc2VkLXNoYXBlKTtcbn1cblxuOmhvc3QoW3R5cGU9J2xvY29tb3RpdmUnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWxvY29tb3RpdmUtc2hhcGUpO1xufVxuXG46aG9zdChbdHlwZT0nd2Fnb24tZW5kLWxlZnQnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXdhZ29uLWVuZC1sZWZ0LXNoYXBlKTtcbn1cblxuOmhvc3QoW3R5cGU9J3dhZ29uLWVuZC1yaWdodCddKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlOiB2YXIoLS1zYmItdHJhaW4td2Fnb24td2Fnb24tZW5kLXJpZ2h0LXNoYXBlKTtcbn1cblxuLnNiYi10cmFpbi13YWdvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24td2lkdGgpO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tdmVydGljYWwtZ2FwKTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnQge1xuICBAaW5jbHVkZSBzYmIubGlzdC1yZXNldDtcblxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlOlxuICAgICdsYWJlbCBsYWJlbCcgYXV0b1xuICAgICdvY2N1cGFuY3kgY2xhc3MnIDFmciAvIDFmciAxZnI7XG5cbiAgLy8gVHlwZSBzaGFwZVxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGdyaWQtY29sdW1uOiBvY2N1cGFuY3kgLyBjbGFzcztcbiAgICBncmlkLXJvdzogb2NjdXBhbmN5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24td2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWhlaWdodCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yKTtcblxuICAgIC8vIFVzaW5nIG1hc2staW1hZ2UgdGFrZXMgdGhlIGJhY2tncm91bmQtY29sb3IgYXMgc3Ryb2tlIGNvbG9yXG4gICAgbWFzay1pbWFnZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlKTtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19tYWluLWljb24ge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1tYWluLWljb24taGVpZ2h0KTtcblxuICBncmlkLWNvbHVtbjogb2NjdXBhbmN5IC8gY2xhc3M7XG4gIGdyaWQtcm93OiBvY2N1cGFuY3k7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLW1haW4taWNvbi1tYXJnaW4tYmxvY2stc3RhcnQpO1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fbGFiZWwge1xuICBAaW5jbHVkZSBzYmIudGV4dC14eHMtLXJlZ3VsYXI7XG5cbiAgZ3JpZC1hcmVhOiBsYWJlbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWxhYmVsLWRpc3BsYXksIGlubGluZS1ibG9jayk7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMWVtICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkpO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3ksXG4uc2JiLXRyYWluLXdhZ29uX19jbGFzcyB7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWhlaWdodCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3kge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1vY2N1cGFuY3ktaGVpZ2h0KTtcblxuICBncmlkLWFyZWE6IG9jY3VwYW5jeTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fY2xhc3Mge1xuICBAaW5jbHVkZSBzYmIudGl0bGUtNigkZXhjbHVkZS1zcGFjaW5nOiB0cnVlKTtcblxuICBncmlkLWFyZWE6IGNsYXNzO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19hdHRyaWJ1dGUtaWNvbi1saXN0IHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24taGVpZ2h0KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1nYXApO1xuICBjb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWNvbG9yKTtcbn1cblxuLy8gVXNpbmcgLi4uIGxpIHNlbGVjdG9yLCBiZWNhdXNlIHRoZSBsaSBnZW5lcmF0aW9uXG4vLyBpcyBoYW5kbGVkIGluIHRoZSBjb21wb25lbnQgYmFzZSBjbGFzcy5cbi5zYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5zYmItc2NyZWVuLXJlYWRlci1vbmx5IHtcbiAgQGluY2x1ZGUgc2JiLnNjcmVlbi1yZWFkZXItb25seTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHdoZW4gfSBmcm9tICdsaXQvZGlyZWN0aXZlcy93aGVuLmpzJztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgeyB0eXBlIFNiYk9jY3VwYW5jeSwgU2JiRWxlbWVudCwgdHlwZSBTYmJFbGVtZW50VHlwZSB9IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHtcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBmb3JjZVR5cGUsXG4gIGhhbmRsZURpc3RpbmN0Q2hhbmdlLFxuICBvbWl0RW1wdHlDb252ZXJ0ZXIsXG4gIGkxOG5BZGRpdGlvbmFsV2Fnb25JbmZvcm1hdGlvbkhlYWRpbmcsXG4gIGkxOG5CbG9ja2VkUGFzc2FnZSxcbiAgaTE4bkNsYXNzLFxuICBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbCxcbiAgaTE4bkNvdWNoZXR0ZVdhZ29uTGFiZWwsXG4gIGkxOG5Mb2NvbW90aXZlTGFiZWwsXG4gIGkxOG5SZXN0YXVyYW50V2Fnb25MYWJlbCxcbiAgaTE4blNlY3RvcixcbiAgaTE4blNsZWVwaW5nV2Fnb25MYWJlbCxcbiAgaTE4bldhZ29uTGFiZWwsXG4gIGkxOG5XYWdvbkxhYmVsTnVtYmVyLFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIGJveFNpemluZ1N0eWxlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uRWxlbWVudCB9IGZyb20gJy4uLy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCB9IGZyb20gJy4uLy4uL3RpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbi5wdXJlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4td2Fnb24uc2Nzcz9pbmxpbmUnO1xuXG5jb25zdCB0eXBlVG9JY29uTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBjb3VjaGV0dGU6ICdzYS1jYycsXG4gIHNsZWVwaW5nOiAnc2Etd2wnLFxuICByZXN0YXVyYW50OiAnc2Etd3InLFxufTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRyYWluIGNvbXBhcnRtZW50IHdpdGhpbiBhIGBzYmItdHJhaW5gIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBvbmUgb3IgbW9yZSBgc2JiLWljb25gIGZvciBtZXRhLWluZm9ybWF0aW9uIG9mIHRoZSBgc2JiLXRyYWluLXdhZ29uYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRyYWluV2Fnb25FbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFNiYkljb25FbGVtZW50LCB0eXBlb2YgU2JiRWxlbWVudD4oXG4gIFNiYkVsZW1lbnQsXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10cmFpbi13YWdvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJJY29uRWxlbWVudCxcbiAgICBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlY3RvcmNoYW5nZTogJ3NlY3RvcmNoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFdhZ29uIHR5cGUuXG4gICAqIEZvciBgd2Fnb24tZW5kLWxlZnRgIGFuZCBgd2Fnb24tZW5kLXJpZ2h0YCwgcGxlYXNlIHNldCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBvZiB0aGUgYGJsb2NrZWRQYXNzYWdlYCBwcm9wZXJ0eS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHR5cGU6XG4gICAgfCAnd2Fnb24nXG4gICAgfCAnd2Fnb24tZW5kLWxlZnQnXG4gICAgfCAnd2Fnb24tZW5kLXJpZ2h0J1xuICAgIHwgJ2NvdWNoZXR0ZSdcbiAgICB8ICdzbGVlcGluZydcbiAgICB8ICdyZXN0YXVyYW50J1xuICAgIHwgJ2xvY29tb3RpdmUnXG4gICAgfCAnY2xvc2VkJyA9ICd3YWdvbic7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxpc3RDaGlsZExvY2FsTmFtZXMgPSBbJ3NiYi1pY29uJ107XG5cbiAgLyoqIE9jY3VwYW5jeSBvZiBhIHdhZ29uLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3Igb2NjdXBhbmN5OiBTYmJPY2N1cGFuY3kgfCBudWxsID0gbnVsbDtcblxuICAvKiogU2VjdG9yIGluIHdoaWNoIHRoZSB3YWdvbiBzdG9wcy4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBoYW5kbGVEaXN0aW5jdENoYW5nZSgoZTogU2JiVHJhaW5XYWdvbkVsZW1lbnQpID0+IGUuX3NlY3RvckNoYW5nZWQoKSlcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgY29udmVydGVyOiBvbWl0RW1wdHlDb252ZXJ0ZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIHNlY3Rvcjogc3RyaW5nID0gJyc7XG5cbiAgLyoqIEFjY2Vzc2liaWxpdHkgdGV4dCBmb3IgYmxvY2tlZCBwYXNzYWdlcyBvZiB0aGUgd2Fnb24uICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Jsb2NrZWQtcGFzc2FnZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIGJsb2NrZWRQYXNzYWdlOiAncHJldmlvdXMnIHwgJ25leHQnIHwgJ2JvdGgnIHwgJ25vbmUnID0gJ25vbmUnO1xuXG4gIC8qKiBDbGFzcyBsYWJlbCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd3YWdvbi1jbGFzcycgfSkgcHVibGljIGFjY2Vzc29yIHdhZ29uQ2xhc3M6ICcxJyB8ICcyJyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXYWdvbiBudW1iZXIgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIEFkZGl0aW9uYWwgYWNjZXNzaWJpbGl0eSB0ZXh0IHdoaWNoIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIGVuZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FkZGl0aW9uYWwtYWNjZXNzaWJpbGl0eS10ZXh0JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0OiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfc2VjdG9yQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnc2VjdG9yY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF90eXBlTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnY2xvc2VkJykge1xuICAgICAgcmV0dXJuIGkxOG5DbG9zZWRDb21wYXJ0bWVudExhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnbG9jb21vdGl2ZScpIHtcbiAgICAgIHJldHVybiBpMThuTG9jb21vdGl2ZUxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnY291Y2hldHRlJykge1xuICAgICAgcmV0dXJuIGkxOG5Db3VjaGV0dGVXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnc2xlZXBpbmcnKSB7XG4gICAgICByZXR1cm4gaTE4blNsZWVwaW5nV2Fnb25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Jlc3RhdXJhbnQnKSB7XG4gICAgICByZXR1cm4gaTE4blJlc3RhdXJhbnRXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH1cbiAgICByZXR1cm4gaTE4bldhZ29uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBibG9ja2VkUGFzc2FnZSA9XG4gICAgICB0aGlzLnR5cGUgPT09ICd3YWdvbi1lbmQtbGVmdCcgJiYgdGhpcy5ibG9ja2VkUGFzc2FnZSA9PT0gJ25vbmUnXG4gICAgICAgID8gJ3ByZXZpb3VzJ1xuICAgICAgICA6IHRoaXMudHlwZSA9PT0gJ3dhZ29uLWVuZC1yaWdodCcgJiYgdGhpcy5ibG9ja2VkUGFzc2FnZSA9PT0gJ25vbmUnXG4gICAgICAgICAgPyAnbmV4dCdcbiAgICAgICAgICA6ICh0aGlzLmJsb2NrZWRQYXNzYWdlID8/ICdub25lJyk7XG5cbiAgICBjb25zdCBoYXNCbG9ja2VkUGFzc2FnZUVudHJ5ID0gYmxvY2tlZFBhc3NhZ2UgIT09ICdub25lJztcblxuICAgIC8vIEZyb20gYWNjZXNzaWJpbGl0eSBwZXJzcGVjdGl2ZSB3ZSBjYW5ub3QgY3JlYXRlIGEgbGlzdCB3aXRoIG9ubHkgb25lIGVudHJ5LlxuICAgIC8vIFdlIG5lZWQgdG8ga25vdyB3aGF0IHdpbGwgYmUgcHJlc2VudGVkIGFuZCBzd2l0Y2ggc2VtYW50aWNzIGJhc2VkIG9uIGNvdW50LlxuICAgIGNvbnN0IGxpc3RFbnRyaWVzQ291bnQgPVxuICAgICAgKyEhdGhpcy5zZWN0b3IgK1xuICAgICAgKyEhdGhpcy5sYWJlbCArXG4gICAgICArKCEhdGhpcy53YWdvbkNsYXNzICYmIHRoaXMudHlwZSAhPT0gJ2Nsb3NlZCcpICtcbiAgICAgICsoISF0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLnR5cGUgIT09ICdjbG9zZWQnKSArXG4gICAgICAraGFzQmxvY2tlZFBhc3NhZ2VFbnRyeTtcblxuICAgIGNvbnN0IHNlY3RvclN0cmluZyA9IGAke2kxOG5TZWN0b3JbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19LCAke3RoaXMuc2VjdG9yfWA7XG5cbiAgICBjb25zdCBsYWJlbENvbnRlbnQgPSB0aGlzLmxhYmVsXG4gICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAke2Ake2kxOG5XYWdvbkxhYmVsTnVtYmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSwgJHt0aGlzLmxhYmVsfWB9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YFxuICAgICAgOiBub3RoaW5nO1xuXG4gICAgY29uc3Qgd2Fnb25DbGFzc0NvbnRlbnQgPSBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAke3RoaXMud2Fnb25DbGFzcyA9PT0gJzEnXG4gICAgICAgICAgPyBpMThuQ2xhc3NbJ2ZpcnN0J11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgICA6IGkxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4ke3RoaXMud2Fnb25DbGFzc308L3NwYW4+YDtcblxuICAgIGNvbnN0IG1haW5JY29uID0gdHlwZVRvSWNvbk1hcFt0aGlzLnR5cGVdXG4gICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgbmFtZT0ke3R5cGVUb0ljb25NYXBbdGhpcy50eXBlXX1cbiAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fbWFpbi1pY29uXCJcbiAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgOiBub3RoaW5nO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXRyYWluLXdhZ29uXCI+XG4gICAgICAgICR7d2hlbihcbiAgICAgICAgICBsaXN0RW50cmllc0NvdW50ID4gMSxcbiAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgaHRtbGA8dWwgYXJpYS1sYWJlbD0ke3RoaXMuX3R5cGVMYWJlbCgpfSBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnRcIj5cbiAgICAgICAgICAgICAgJHt0aGlzLnNlY3RvclxuICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtzZWN0b3JTdHJpbmd9PC9saT5gXG4gICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2xhYmVsXCIgYXJpYS1oaWRkZW49JHtgJHshdGhpcy5sYWJlbH1gfT5cbiAgICAgICAgICAgICAgICAke2xhYmVsQ29udGVudH1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy50eXBlICE9PSAnY2xvc2VkJ1xuICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzXCI+JHt3YWdvbkNsYXNzQ29udGVudH08L2xpPmBcbiAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICR7dGhpcy5vY2N1cGFuY3kgJiYgdGhpcy50eXBlICE9PSAnY2xvc2VkJ1xuICAgICAgICAgICAgICAgID8gaHRtbGA8c2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5XCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgb2NjdXBhbmN5PSR7dGhpcy5vY2N1cGFuY3l9XG4gICAgICAgICAgICAgICAgICA+PC9zYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uPmBcbiAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICR7aGFzQmxvY2tlZFBhc3NhZ2VFbnRyeVxuICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICR7aTE4bkJsb2NrZWRQYXNzYWdlW2Jsb2NrZWRQYXNzYWdlXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgIDwvbGk+YFxuICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgJHttYWluSWNvbn1cbiAgICAgICAgICAgIDwvdWw+YCxcbiAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19jb21wYXJ0bWVudFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAke2Ake3RoaXMuX3R5cGVMYWJlbCgpfSR7dGhpcy5zZWN0b3IgPyBgLCAke3NlY3RvclN0cmluZ31gIDogJyd9YH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fbGFiZWxcIiBhcmlhLWhpZGRlbj0ke2AkeyF0aGlzLmxhYmVsfWB9PlxuICAgICAgICAgICAgICAgICR7bGFiZWxDb250ZW50fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy50eXBlICE9PSAnY2xvc2VkJ1xuICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY2xhc3NcIj4ke3dhZ29uQ2xhc3NDb250ZW50fTwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAke3RoaXMub2NjdXBhbmN5ICYmIHRoaXMudHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICA/IGh0bWxgPHNiYi10aW1ldGFibGUtb2NjdXBhbmN5LWljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeVwiXG4gICAgICAgICAgICAgICAgICAgIG9jY3VwYW5jeT0ke3RoaXMub2NjdXBhbmN5fVxuICAgICAgICAgICAgICAgICAgPjwvc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbj5gXG4gICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAke2hhc0Jsb2NrZWRQYXNzYWdlRW50cnlcbiAgICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICR7aTE4bkJsb2NrZWRQYXNzYWdlW2Jsb2NrZWRQYXNzYWdlXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAke21haW5JY29ufVxuICAgICAgICAgICAgPC9kaXY+IGAsXG4gICAgICAgICl9XG4gICAgICAgICR7dGhpcy5hZGRpdGlvbmFsQWNjZXNzaWJpbGl0eVRleHRcbiAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+LCAke3RoaXMuYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0fTwvc3Bhbj5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAke3RoaXMucmVuZGVyTGlzdCh7XG4gICAgICAgICAgY2xhc3M6ICdzYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3QnLFxuICAgICAgICAgIGFyaWFMYWJlbDogaTE4bkFkZGl0aW9uYWxXYWdvbkluZm9ybWF0aW9uSGVhZGluZ1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XSxcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdHJhaW4td2Fnb24nOiBTYmJUcmFpbldhZ29uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUM4QkEsSUFBTSxnQkFBd0M7Q0FDNUMsV0FBVztDQUNYLFVBQVU7Q0FDVixZQUFZO0NBQ2I7Ozs7OztJQU9ZLDhCQUFvQjttQkFBUyxzQkFDeEMsV0FDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUZZLDZCQUE2QixZQUV6Qzs7O0FBZThDLFNBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFROUIsUUFBTztBQUVNLFFBQUEsdUJBQW1CLGtCQUFBLE1BQUEsd0JBQUEsRUFBRyxDQUFDLFdBQVc7QUFHbEMsU0FBQSw2QkFBQSxrQkFBQSxNQUFBLHlCQUFpQyxLQUFJO0FBTWpELFNBQUEsMkJBQUEsa0JBQUEsTUFBQSw2QkFBQSxFQUFBLGtCQUFBLE1BQUEsc0JBQWlCLEdBQUU7QUFJbkIsU0FBQSxtQ0FBQSxrQkFBQSxNQUFBLDBCQUFBLEVBQUEsa0JBQUEsTUFBQSw4QkFBd0QsT0FBTTtBQUd0QixTQUFBLCtCQUFB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
@@ -1,6 +1,6 @@
1
1
  import { t as SbbTrainBlockedPassageElement } from "./train-blocked-passage.component-Bh2dR1gn.js";
2
2
  import { t as SbbTrainFormationElement } from "./train-formation.component-Dm0t9N_h.js";
3
- import { t as SbbTrainWagonElement } from "./train-wagon.component-X0XSMLK_.js";
3
+ import { t as SbbTrainWagonElement } from "./train-wagon.component-B6V4dPKn.js";
4
4
  import { t as SbbTrainElement } from "./train.component-BvbNBkZF.js";
5
5
  import "./train.pure.js";
6
6
  //#region src/elements/train.ts
@@ -1,5 +1,5 @@
1
1
  import { t as SbbTrainBlockedPassageElement } from "./train-blocked-passage.component-Bh2dR1gn.js";
2
2
  import { t as SbbTrainFormationElement } from "./train-formation.component-Dm0t9N_h.js";
3
- import { t as SbbTrainWagonElement } from "./train-wagon.component-X0XSMLK_.js";
3
+ import { t as SbbTrainWagonElement } from "./train-wagon.component-B6V4dPKn.js";
4
4
  import { t as SbbTrainElement } from "./train.component-BvbNBkZF.js";
5
5
  export { SbbTrainBlockedPassageElement, SbbTrainElement, SbbTrainFormationElement, SbbTrainWagonElement };
@@ -1,7 +1,7 @@
1
1
  import { html as e, unsafeCSS as t } from "lit";
2
2
  import { SbbElement as n, SbbNegativeMixin as r, boxSizingStyles as i } from "./core.js";
3
3
  //#region src/elements/form-field/error/error.scss?inline
4
- var a = ":host{--_sbb-error-height: calc(var(--sbb-typo-line-height-text) * 1em);--sbb-icon-svg-width: var(--sbb-error-icon-size);--sbb-icon-svg-height: var(--sbb-error-icon-size);display:flex;align-items:flex-start;color:var(--sbb-error-color);min-height:var(--_sbb-error-height);font-size:var(--sbb-error-font-size);letter-spacing:var(--sbb-typo-letter-spacing-text)}@media(forced-colors:active){:host{--sbb-error-color: LinkText !important}}:host([negative]){--sbb-error-color: var(--sbb-color-red85)}.error__icon{display:flex;align-items:center;height:var(--_sbb-error-height);margin-inline-end:var(--sbb-spacing-fixed-1x)}.error-content{line-height:var(--sbb-typo-line-height-text);vertical-align:text-top}.error__icon-svg{stroke:currentcolor;height:var(--_sbb-error-height)}", o = class extends r(n) {
4
+ var a = ":host{--_sbb-error-height: calc(var(--sbb-typo-line-height-text) * 1em);--sbb-icon-svg-width: var(--sbb-error-icon-size);--sbb-icon-svg-height: var(--sbb-error-icon-size);display:flex;align-items:flex-start;color:var(--sbb-error-color);min-height:var(--_sbb-error-height);font-size:var(--sbb-error-font-size);line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text)}@media(forced-colors:active){:host{--sbb-error-color: LinkText !important}}:host([negative]){--sbb-error-color: var(--sbb-color-red85)}.error__icon{display:flex;align-items:center;height:var(--_sbb-error-height);margin-inline-end:var(--sbb-spacing-fixed-1x)}.error-content{line-height:var(--sbb-typo-line-height-text);vertical-align:text-top}.error__icon-svg{stroke:currentcolor;height:var(--_sbb-error-height)}", o = class extends r(n) {
5
5
  static {
6
6
  this.elementName = "sbb-error";
7
7
  }
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../expansion-panel-header.component-DdRIlyms.js";
1
+ import { t as e } from "../../expansion-panel-header.component-DYvq-uUi.js";
2
2
  export { e as SbbExpansionPanelHeaderElement };