@sbb-esta/lyne-elements 5.0.0-next.2 → 5.0.0-next.3

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 (919) hide show
  1. package/accordion/accordion.component.js +1 -1
  2. package/{accordion.component-DN0x35kD.js → accordion.component-DbuSYzV1.js} +20 -19
  3. package/accordion.js +1 -1
  4. package/accordion.pure.js +1 -1
  5. package/alert/alert/alert.component.js +1 -1
  6. package/{alert.component-D8NT9YJ-.js → alert.component-DN7sW2NC.js} +17 -17
  7. package/alert.js +1 -1
  8. package/alert.pure.js +1 -1
  9. package/autocomplete/autocomplete-base-element.js +1 -1
  10. package/autocomplete/autocomplete.component.js +1 -1
  11. package/{autocomplete-base-element-BuCAxBy3.js → autocomplete-base-element-DRGjFF9_.js} +25 -28
  12. package/autocomplete.js +1 -1
  13. package/autocomplete.pure.js +1 -1
  14. package/{block-link-common-aUfrxxDp.js → block-link-common-B1E38xKe.js} +14 -15
  15. package/button/common/button-common.js +1 -1
  16. package/button/mini-button-group/mini-button-group.component.js +1 -1
  17. package/{button-common-BMpS65Zf.js → button-common-BQdNXKwl.js} +18 -18
  18. package/button.js +2 -2
  19. package/button.pure.js +2 -2
  20. package/checkbox/checkbox.component.js +1 -1
  21. package/checkbox-panel/checkbox-panel.component.js +1 -1
  22. package/{checkbox.component-ChQmCxal.js → checkbox.component-DWmjiv_c.js} +8 -8
  23. package/checkbox.js +1 -1
  24. package/checkbox.pure.js +1 -1
  25. package/chip/chip-group/chip-group.component.js +1 -1
  26. package/{chip-group.component-BMpczIZH.js → chip-group.component-DJORKUef.js} +19 -19
  27. package/chip.js +1 -1
  28. package/chip.pure.js +1 -1
  29. package/{compact-paginator.component-sRHapku-.js → compact-paginator.component-BAuShgQE.js} +4 -6
  30. package/container/sticky-bar/sticky-bar.component.js +1 -1
  31. package/container.js +1 -1
  32. package/container.pure.js +1 -1
  33. package/core/base-elements/selection-group-base-element.js +1 -1
  34. package/core/mixins/panel-mixin.js +1 -1
  35. package/core/mixins/selection-panel-mixin.js +1 -1
  36. package/core/overlay/overlay-option-panel.js +6 -5
  37. package/core/styles/_index.scss +0 -1
  38. package/core/styles/core.scss +8 -2
  39. package/core/styles/lean-off-brand-theme.scss +3 -0
  40. package/core/styles/lean-safety-theme.scss +3 -0
  41. package/core/styles/option-panel-common.global.scss +11 -0
  42. package/core/styles/option-panel-common.scss +157 -0
  43. package/core/styles/styles.js +2 -2
  44. package/core.css +88 -71
  45. package/core.js +31 -33
  46. package/custom-elements.json +72135 -71892
  47. package/development/accordion/accordion.component.d.ts +5 -7
  48. package/development/accordion/accordion.component.d.ts.map +1 -1
  49. package/development/accordion/accordion.component.js +1 -1
  50. package/development/accordion.component-xx7XabDY.js +165 -0
  51. package/development/accordion.js +1 -1
  52. package/development/accordion.pure.js +1 -1
  53. package/development/action-group/action-group.component.d.ts +8 -6
  54. package/development/action-group/action-group.component.d.ts.map +1 -1
  55. package/development/action-group/action-group.component.js +1 -1
  56. package/development/{action-group.component-DZkXqIbQ.js → action-group.component-wgXPpkQe.js} +3 -1
  57. package/development/action-group.js +1 -1
  58. package/development/action-group.pure.js +1 -1
  59. package/development/alert/alert/alert.component.d.ts +2 -3
  60. package/development/alert/alert/alert.component.d.ts.map +1 -1
  61. package/development/alert/alert/alert.component.js +1 -1
  62. package/development/alert/alert-group/alert-group.component.d.ts +2 -3
  63. package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
  64. package/development/alert-group.component-w5PbU_4C.js +1 -1
  65. package/development/{alert.component-DxzF0FOi.js → alert.component-Dzm5z0jh.js} +5 -6
  66. package/development/alert.js +1 -1
  67. package/development/alert.pure.js +1 -1
  68. package/development/autocomplete/autocomplete-base-element.d.ts +3 -4
  69. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  70. package/development/autocomplete/autocomplete-base-element.js +1 -1
  71. package/development/autocomplete/autocomplete.component.js +2 -2
  72. package/development/autocomplete-base-element-DQiZ6hhk.js +683 -0
  73. package/development/autocomplete.js +1 -1
  74. package/development/autocomplete.pure.js +1 -1
  75. package/development/{block-link-common-CoZgcEBY.js → block-link-common-DNvRfeay.js} +3 -5
  76. package/development/breadcrumb-group.component-BUBfl6LV.js +1 -1
  77. package/development/breadcrumb.component-D6Cd2FPo.js +1 -1
  78. package/development/button/accent-button/accent-button.component.js +1 -1
  79. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  80. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  81. package/development/button/button/button.component.js +1 -1
  82. package/development/button/button-link/button-link.component.js +1 -1
  83. package/development/button/button-static/button-static.component.js +1 -1
  84. package/development/button/common/button-common.d.ts +1 -2
  85. package/development/button/common/button-common.d.ts.map +1 -1
  86. package/development/button/common/button-common.js +1 -1
  87. package/development/button/mini-button/mini-button.component.js +1 -1
  88. package/development/button/mini-button-group/mini-button-group.component.d.ts +2 -4
  89. package/development/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
  90. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  91. package/development/button/secondary-button/secondary-button.component.js +1 -1
  92. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  93. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  94. package/development/button/transparent-button/transparent-button.component.js +1 -1
  95. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  96. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  97. package/development/{button-common-DZUBRwwD.js → button-common-C-A7Dulr.js} +5 -6
  98. package/development/button.js +2 -2
  99. package/development/button.pure.js +2 -2
  100. package/development/calendar/calendar/calendar.component.d.ts +3 -4
  101. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  102. package/development/calendar/calendar-month/calendar-month.component.js +1 -1
  103. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  104. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  105. package/development/calendar/calendar-year/calendar-year.component.js +1 -1
  106. package/development/calendar/common/calendar-cell-base-element.d.ts.map +1 -1
  107. package/development/calendar-cell-base-element-mWRSDeWc.js +1 -1
  108. package/development/calendar-day.component-BHvdRxll.js +1 -1
  109. package/development/calendar.component-CjlcDyS5.js +1 -1
  110. package/development/card/card-button/card-button.component.js +1 -1
  111. package/development/card/card-link/card-link.component.js +1 -1
  112. package/development/card-action-common-zS5iNz23.js +1 -1
  113. package/development/card-badge.component-CEfJdJBs.js +1 -1
  114. package/development/card.component-CL2gHoyP.js +1 -1
  115. package/development/carousel-item.component-B_0wdIAu.js +1 -1
  116. package/development/carousel-list.component-DpDh5tqB.js +1 -1
  117. package/development/carousel.component-ClWvnZ8s.js +1 -1
  118. package/development/checkbox/checkbox.component.d.ts +4 -6
  119. package/development/checkbox/checkbox.component.d.ts.map +1 -1
  120. package/development/checkbox/checkbox.component.js +1 -1
  121. package/development/checkbox/common/checkbox-common.d.ts +0 -1
  122. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  123. package/development/checkbox-common-C3Ekixul.js +1 -1
  124. package/development/checkbox-group/checkbox-group.component.js +1 -1
  125. package/development/checkbox-panel/checkbox-panel.component.js +2 -2
  126. package/development/{checkbox.component-D6BR8e7w.js → checkbox.component-UbxCpZmi.js} +6 -7
  127. package/development/checkbox.js +1 -1
  128. package/development/checkbox.pure.js +1 -1
  129. package/development/chip/chip-group/chip-group.component.d.ts +1 -1
  130. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  131. package/development/chip/chip-group/chip-group.component.js +1 -1
  132. package/development/chip-group.component-Sgmi-kSy.js +403 -0
  133. package/development/chip-label.component-DHHNtvTt.js +1 -1
  134. package/development/chip.component-Uuf3tGFz.js +1 -1
  135. package/development/chip.js +1 -1
  136. package/development/chip.pure.js +1 -1
  137. package/development/clock/clock.component.d.ts +2 -2
  138. package/development/clock/clock.component.d.ts.map +1 -1
  139. package/development/clock.component-DcM1WFTN.js +1 -1
  140. package/development/compact-paginator.component-BgkpxaaD.js +49 -0
  141. package/development/container/sticky-bar/sticky-bar.component.d.ts +2 -3
  142. package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  143. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  144. package/development/container.component-D1Qgp4HW.js +1 -1
  145. package/development/container.js +1 -1
  146. package/development/container.pure.js +1 -1
  147. package/development/core/a11y/arrow-navigation.js +1 -1
  148. package/development/core/a11y/fake-event-detection.js +1 -1
  149. package/development/core/a11y/focus-trap-controller.js +1 -1
  150. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  151. package/development/core/a11y/input-modality-detector.js +1 -1
  152. package/development/core/a11y/interactivity-checker.js +1 -1
  153. package/development/core/a11y/live-announcer.js +1 -1
  154. package/development/core/base-elements/action-base-element.js +1 -1
  155. package/development/core/base-elements/button-base-element.d.ts +2 -4
  156. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  157. package/development/core/base-elements/button-base-element.js +1 -1
  158. package/development/core/base-elements/link-base-element.d.ts +1 -3
  159. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  160. package/development/core/base-elements/link-base-element.js +1 -1
  161. package/development/core/base-elements/open-close-base-element.d.ts +1 -1
  162. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  163. package/development/core/base-elements/open-close-base-element.js +1 -1
  164. package/development/core/base-elements/selection-group-base-element.d.ts +4 -5
  165. package/development/core/base-elements/selection-group-base-element.d.ts.map +1 -1
  166. package/development/core/base-elements/selection-group-base-element.js +1 -1
  167. package/development/core/config/config.js +1 -1
  168. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  169. package/development/core/controllers/id-reference-controller.js +1 -1
  170. package/development/core/controllers/inert-controller.js +1 -1
  171. package/development/core/controllers/language-controller.js +1 -1
  172. package/development/core/controllers/media-matchers-controller.js +1 -1
  173. package/development/core/controllers/overlay-position-controller.js +1 -1
  174. package/development/core/controllers/property-watcher-controller.js +1 -1
  175. package/development/core/datetime/date-adapter.js +1 -1
  176. package/development/core/datetime/native-date-adapter.js +1 -1
  177. package/development/core/datetime/temporal-date-adapter.js +1 -1
  178. package/development/core/decorators/force-type.js +1 -1
  179. package/development/core/decorators/get-override.js +1 -1
  180. package/development/core/decorators/handle-distinct-change.js +1 -1
  181. package/development/core/decorators/host-attributes.js +1 -1
  182. package/development/core/decorators/id-reference.js +1 -1
  183. package/development/core/decorators/omit-empty-converter.js +1 -1
  184. package/development/core/decorators/plain-date.js +1 -1
  185. package/development/core/dom/animation.js +1 -1
  186. package/development/core/dom/contains-pierce-shadow-dom.js +1 -1
  187. package/development/core/dom/platform.js +1 -1
  188. package/development/core/dom/queue-dom-content-loaded.js +1 -1
  189. package/development/core/dom/scroll.js +1 -1
  190. package/development/core/dom/set-or-remove-attribute.js +1 -1
  191. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  192. package/development/core/eventing/event-target.js +1 -1
  193. package/development/core/eventing/form-element-handlers.js +1 -1
  194. package/development/core/eventing/forward-event.js +1 -1
  195. package/development/core/eventing/is-event-prevented.js +1 -1
  196. package/development/core/eventing/throttle.js +1 -1
  197. package/development/core/i18n/i18n.d.ts +2 -2
  198. package/development/core/i18n/i18n.d.ts.map +1 -1
  199. package/development/core/i18n/i18n.js +1 -1
  200. package/development/core/interfaces/types.d.ts +1 -6
  201. package/development/core/interfaces/types.d.ts.map +1 -1
  202. package/development/core/mixins/animation-complete-mixin.js +1 -1
  203. package/development/core/mixins/disabled-mixin.js +1 -1
  204. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  205. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  206. package/development/core/mixins/form-associated-mixin.js +1 -1
  207. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  208. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  209. package/development/core/mixins/negative-mixin.js +1 -1
  210. package/development/core/mixins/panel-mixin.d.ts +3 -3
  211. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  212. package/development/core/mixins/panel-mixin.js +1 -1
  213. package/development/core/mixins/readonly-mixin.js +1 -1
  214. package/development/core/mixins/required-mixin.js +1 -1
  215. package/development/core/mixins/selection-panel-mixin.js +2 -1
  216. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  217. package/development/core/overlay/overlay-option-panel.d.ts +1 -1
  218. package/development/core/overlay/overlay-option-panel.d.ts.map +1 -1
  219. package/development/core/overlay/overlay-option-panel.js +5 -2
  220. package/development/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  221. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  222. package/development/core/overlay/position.js +1 -1
  223. package/development/core/styles/styles.d.ts +1 -0
  224. package/development/core/styles/styles.d.ts.map +1 -1
  225. package/development/core/styles/styles.js +2 -2
  226. package/development/core/testing/event-spy.js +1 -1
  227. package/development/core/testing/mocha-extensions.js +1 -1
  228. package/development/core/testing/wait-for-condition.js +1 -1
  229. package/development/core/testing/wait-for-image-ready.js +1 -1
  230. package/development/core/testing/wait-for-render.js +1 -1
  231. package/development/core.d.ts +0 -2
  232. package/development/core.d.ts.map +1 -1
  233. package/development/core.js +4 -6
  234. package/development/date-input.component-HxRyCudr.js +1 -1
  235. package/development/datepicker/datepicker/datepicker.component.d.ts +2 -2
  236. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  237. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  238. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  239. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  240. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  241. package/development/datepicker-button-BAT1ebzJ.js +1 -1
  242. package/development/dialog-actions.component-e0ZTTUin.js +1 -1
  243. package/development/dialog-close-button.component-Idc00dB9.js +1 -1
  244. package/development/dialog-content.component-CThU7Z8A.js +1 -1
  245. package/development/dialog-title.component-0uNsUR2C.js +1 -1
  246. package/development/dialog.component-AItB8ixG.js +1 -1
  247. package/development/divider/divider.component.d.ts +2 -2
  248. package/development/divider/divider.component.d.ts.map +1 -1
  249. package/development/divider.component-Ck_0vISe.js +1 -1
  250. package/development/element-BAsBayf5.js +1 -1
  251. package/development/error.component-WCkiwM7_.js +1 -1
  252. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts +4 -6
  253. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  254. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  255. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +1 -1
  256. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  257. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  258. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +1 -1
  259. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  260. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  261. package/development/{expansion-panel-content.component-BUbiseFP.js → expansion-panel-content.component-Bs0pYNJO.js} +2 -1
  262. package/development/{expansion-panel-header.component-CQFSwrqu.js → expansion-panel-header.component-gg5A_7Pz.js} +2 -1
  263. package/development/expansion-panel.component-DptYMbwV.js +317 -0
  264. package/development/expansion-panel.js +3 -3
  265. package/development/expansion-panel.pure.js +3 -3
  266. package/development/file-selector/common/file-selector-common.d.ts +1 -1
  267. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  268. package/development/file-selector/common/file-selector-common.js +1 -1
  269. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  270. package/development/file-selector/file-selector/file-selector.component.js +5 -4
  271. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  272. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  273. package/development/file-selector-common-CGL95Rnw.js +412 -0
  274. package/development/file-selector-dropzone.component-B84OL4Xd.js +106 -0
  275. package/development/file-selector.js +2 -2
  276. package/development/file-selector.pure.js +2 -2
  277. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts +1 -2
  278. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  279. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  280. package/development/flip-card-details.component-BYv_W66a.js +1 -1
  281. package/development/{flip-card-summary.component-C-US77Nw.js → flip-card-summary.component-jLNjJUNl.js} +2 -2
  282. package/development/flip-card.component-DujrPKzU.js +1 -1
  283. package/development/flip-card.js +1 -1
  284. package/development/flip-card.pure.js +1 -1
  285. package/development/footer/footer.component.d.ts +2 -3
  286. package/development/footer/footer.component.d.ts.map +1 -1
  287. package/development/footer.component-K2bWizjw.js +1 -1
  288. package/development/form-field/form-field/form-field.component.d.ts +2 -3
  289. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  290. package/development/form-field/form-field/form-field.component.js +1 -1
  291. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  292. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  293. package/development/form-field.component-CPWBCHer.js +702 -0
  294. package/development/form-field.js +1 -1
  295. package/development/form-field.pure.js +1 -1
  296. package/development/header/common/header-action-common.d.ts.map +1 -1
  297. package/development/header/common/header-action-common.js +1 -1
  298. package/development/header/header/header.component.d.ts +2 -3
  299. package/development/header/header/header.component.d.ts.map +1 -1
  300. package/development/header/header/header.component.js +1 -1
  301. package/development/header/header-button/header-button.component.js +1 -1
  302. package/development/header/header-link/header-link.component.js +1 -1
  303. package/development/header-action-common-Be0XQge2.js +86 -0
  304. package/development/header-environment.component-CIyxQwkQ.js +1 -1
  305. package/development/header.component-C4e7CNql.js +334 -0
  306. package/development/header.js +2 -2
  307. package/development/header.pure.js +2 -2
  308. package/development/hint.component-BB9QLGGx.js +1 -1
  309. package/development/icon/icon-name-mixin.js +1 -1
  310. package/development/icon/icon-request.js +1 -1
  311. package/development/icon/icon-validate.js +1 -1
  312. package/development/icon/icon.component.js +1 -1
  313. package/development/icon-base-DrBHy9BT.js +1 -1
  314. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  315. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  316. package/development/icon-sidebar-container.component-CM94Spwy.js +1 -1
  317. package/development/icon-sidebar-content.component-BP9W5ZxR.js +1 -1
  318. package/development/icon-sidebar.component-B68P2aNh.js +1 -1
  319. package/development/image.component-EfSMgHI_.js +1 -1
  320. package/development/inline-link-common-gmt6yz3v.js +1 -1
  321. package/development/journey-header.component-CA4juz9x.js +1 -1
  322. package/development/lead-container.component-C_mFeq1B.js +1 -1
  323. package/development/link/block-link/block-link.component.js +1 -1
  324. package/development/link/block-link-button/block-link-button.component.js +1 -1
  325. package/development/link/block-link-static/block-link-static.component.js +1 -1
  326. package/development/link/common/block-link-common.d.ts +3 -4
  327. package/development/link/common/block-link-common.d.ts.map +1 -1
  328. package/development/link/common/block-link-common.js +1 -1
  329. package/development/link/link/link.component.js +1 -1
  330. package/development/link/link-button/link-button.component.js +1 -1
  331. package/development/link/link-static/link-static.component.js +1 -1
  332. package/development/link-common-2RGn9Qz_.js +1 -1
  333. package/development/link-list/common/link-list-base.d.ts +5 -7
  334. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  335. package/development/link-list/common/link-list-base.js +1 -1
  336. package/development/link-list/link-list.component.d.ts +2 -2
  337. package/development/link-list/link-list.component.d.ts.map +1 -1
  338. package/development/link-list/link-list.component.js +1 -1
  339. package/development/link-list-anchor.component-Csb-FOQL.js +1 -1
  340. package/development/{link-list-base-QADBTZCN.js → link-list-base-CKT3c8yW.js} +4 -5
  341. package/development/{link-list.component-CKVU3Gsr.js → link-list.component-B90qHOUD.js} +2 -2
  342. package/development/link-list.js +2 -2
  343. package/development/link-list.pure.js +2 -2
  344. package/development/link.js +1 -1
  345. package/development/link.pure.js +1 -1
  346. package/development/loading-indicator-circle.component-Cfjw5vyz.js +1 -1
  347. package/development/loading-indicator.component-By2VaLCf.js +1 -1
  348. package/development/logo/logo.component.d.ts +2 -2
  349. package/development/logo/logo.component.d.ts.map +1 -1
  350. package/development/logo.component-DYKgAgq0.js +1 -1
  351. package/development/map-container.component-D0UVTolK.js +1 -1
  352. package/development/menu/menu-button/menu-button.component.js +1 -1
  353. package/development/menu/menu-link/menu-link.component.js +1 -1
  354. package/development/menu-action-common-DRXQc85Y.js +1 -1
  355. package/development/menu.component-Cv9wRj4H.js +1 -1
  356. package/development/message.component-CdO5GyE2.js +1 -1
  357. package/development/mini-button-group.component-VYKZf1rq.js +115 -0
  358. package/development/mini-button-link.component-kpRsi8I2.js +1 -1
  359. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts +2 -2
  360. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
  361. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts.map +1 -1
  362. package/development/mini-calendar-day.component-BLkJ12Bw.js +1 -1
  363. package/development/mini-calendar-month.component-D8XjjLmN.js +1 -1
  364. package/development/mini-calendar.component-BOk8JovO.js +1 -1
  365. package/development/navigation/common/navigation-action-common.d.ts +0 -2
  366. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  367. package/development/navigation/common/navigation-action-common.js +1 -1
  368. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  369. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  370. package/development/navigation/navigation-list/navigation-list.component.d.ts +2 -3
  371. package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
  372. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  373. package/development/navigation/navigation-marker/navigation-marker.component.d.ts +1 -1
  374. package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  375. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  376. package/development/navigation-action-common-fkYNyX19.js +56 -0
  377. package/development/{navigation-list.component-DrdbtDRs.js → navigation-list.component-Dvv-bZ2V.js} +1 -5
  378. package/development/{navigation-marker.component-fB05cjtE.js → navigation-marker.component-DMqe-VlY.js} +3 -4
  379. package/development/navigation-section.component-iaypc6yQ.js +1 -1
  380. package/development/navigation.component-CqNkBvEs.js +1 -1
  381. package/development/navigation.js +3 -3
  382. package/development/navigation.pure.js +3 -3
  383. package/development/notification/notification.component.d.ts +2 -5
  384. package/development/notification/notification.component.d.ts.map +1 -1
  385. package/development/notification/notification.component.js +1 -1
  386. package/development/notification.component-BiJSo7Pl.js +259 -0
  387. package/development/notification.js +1 -1
  388. package/development/notification.pure.js +1 -1
  389. package/development/optgroup-base-element-CLfE6pmz.js +147 -0
  390. package/development/option/optgroup/optgroup-base-element.d.ts +2 -1
  391. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  392. package/development/option/optgroup/optgroup-base-element.js +1 -1
  393. package/development/option/optgroup/optgroup.component.js +2 -2
  394. package/development/option/option/option-base-element.d.ts +2 -1
  395. package/development/option/option/option-base-element.d.ts.map +1 -1
  396. package/development/option/option/option-base-element.js +9 -3
  397. package/development/option/option/option.component.d.ts +0 -1
  398. package/development/option/option/option.component.d.ts.map +1 -1
  399. package/development/option/option/option.component.js +1 -1
  400. package/development/option/option-hint/option-hint.component.d.ts +2 -0
  401. package/development/option/option-hint/option-hint.component.d.ts.map +1 -1
  402. package/development/option/option-hint/option-hint.component.js +1 -1
  403. package/development/option-hint.component-DPfgcpVn.js +40 -0
  404. package/development/option.component-CV6cZnJe.js +131 -0
  405. package/development/option.js +3 -3
  406. package/development/option.pure.js +3 -3
  407. package/development/overlay/overlay-base-element.js +1 -1
  408. package/development/overlay.component-rFmitc_r.js +1 -1
  409. package/development/paginator/common/paginator-common.d.ts +1 -1
  410. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  411. package/development/paginator/common/paginator-common.js +1 -407
  412. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  413. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  414. package/development/paginator/paginator/paginator.component.js +1 -1
  415. package/development/paginator-common-BCeNUko_.js +410 -0
  416. package/development/paginator.component-BwLUSpDj.js +261 -0
  417. package/development/paginator.js +3 -3
  418. package/development/paginator.pure.js +3 -3
  419. package/development/{panel-mixin-CFz9-K_8.js → panel-mixin-DPybe45K.js} +3 -5
  420. package/development/popover/popover.component.d.ts.map +1 -1
  421. package/development/popover/popover.component.js +1 -1
  422. package/development/{popover.component-Bvbf4NyI.js → popover.component-BmTfHMFw.js} +1 -1
  423. package/development/popover.js +1 -1
  424. package/development/popover.pure.js +1 -1
  425. package/development/radio-button/common/radio-button-common.d.ts +0 -1
  426. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  427. package/development/radio-button/common/radio-button-common.js +1 -1
  428. package/development/radio-button/radio-button.component.d.ts +2 -3
  429. package/development/radio-button/radio-button.component.d.ts.map +1 -1
  430. package/development/radio-button/radio-button.component.js +1 -1
  431. package/development/{radio-button-common-tC_l-WdB.js → radio-button-common-G0jLFo41.js} +1 -1
  432. package/development/radio-button-group/radio-button-group.component.js +1 -1
  433. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  434. package/development/{radio-button.component-3BV31Fkc.js → radio-button.component-DnErH-1J.js} +5 -5
  435. package/development/radio-button.js +2 -2
  436. package/development/radio-button.pure.js +2 -2
  437. package/development/select/select.component.d.ts +4 -5
  438. package/development/select/select.component.d.ts.map +1 -1
  439. package/development/select/select.component.js +1 -1
  440. package/development/select.component-CUjF11sq.js +807 -0
  441. package/development/select.js +1 -1
  442. package/development/select.pure.js +1 -1
  443. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  444. package/development/{selection-action-panel.component-ClpKsc-Z.js → selection-action-panel.component-BT0HmTja.js} +1 -1
  445. package/development/selection-action-panel.js +1 -1
  446. package/development/selection-action-panel.pure.js +1 -1
  447. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  448. package/development/{selection-expansion-panel.component-CTCVJiug.js → selection-expansion-panel.component-BT78Qhbf.js} +1 -1
  449. package/development/selection-expansion-panel.js +1 -1
  450. package/development/selection-expansion-panel.pure.js +1 -1
  451. package/development/{selection-group-base-element-RafKyWXP.js → selection-group-base-element-DRT3Ctp2.js} +3 -5
  452. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  453. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  454. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  455. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  456. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts +3 -2
  457. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
  458. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  459. package/development/{sidebar-close-button.component-D_grme_h.js → sidebar-close-button.component-CXnf-P5H.js} +1 -1
  460. package/development/{sidebar-container.component-C_cu3Vfy.js → sidebar-container.component-CxwDKxv9.js} +1 -1
  461. package/development/{sidebar-content.component-CbYPeaaz.js → sidebar-content.component-DbcREBUa.js} +1 -1
  462. package/development/{sidebar-title.component-BFqfnG6B.js → sidebar-title.component-BW04otyD.js} +1 -1
  463. package/development/{sidebar.component-DcVKyd9R.js → sidebar.component-mfXnE6WQ.js} +1 -1
  464. package/development/sidebar.js +5 -5
  465. package/development/sidebar.pure.js +5 -5
  466. package/development/signet/signet.component.d.ts +2 -3
  467. package/development/signet/signet.component.d.ts.map +1 -1
  468. package/development/signet/signet.component.js +1 -1
  469. package/development/{signet.component-NdFqUZK9.js → signet.component-k14RJ8FA.js} +1 -1
  470. package/development/signet.js +1 -1
  471. package/development/signet.pure.js +1 -1
  472. package/development/skiplink-list/skiplink-list.component.d.ts +2 -3
  473. package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  474. package/development/skiplink-list/skiplink-list.component.js +1 -1
  475. package/development/{skiplink-list.component-ppyytKn2.js → skiplink-list.component-m7xm-pns.js} +3 -3
  476. package/development/skiplink-list.js +1 -1
  477. package/development/skiplink-list.pure.js +1 -1
  478. package/development/slider/slider.component.js +1 -1
  479. package/development/{slider.component-k8g6G0j9.js → slider.component-D_nLTlRF.js} +1 -1
  480. package/development/slider.js +1 -1
  481. package/development/slider.pure.js +1 -1
  482. package/development/status/status.component.d.ts +1 -2
  483. package/development/status/status.component.d.ts.map +1 -1
  484. package/development/status/status.component.js +1 -1
  485. package/development/{status.component-CtTNDvLl.js → status.component-B9en2l26.js} +1 -1
  486. package/development/status.js +1 -1
  487. package/development/status.pure.js +1 -1
  488. package/development/step-label.component-Bo7Z0w7N.js +127 -0
  489. package/development/{step.component-Di2fT-VG.js → step.component-CcjtUFyR.js} +11 -2
  490. package/development/stepper/step/step.component.d.ts +1 -0
  491. package/development/stepper/step/step.component.d.ts.map +1 -1
  492. package/development/stepper/step/step.component.js +1 -1
  493. package/development/stepper/step-label/step-label.component.d.ts +1 -1
  494. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  495. package/development/stepper/step-label/step-label.component.js +1 -1
  496. package/development/stepper/stepper/stepper.component.d.ts +4 -5
  497. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  498. package/development/stepper/stepper/stepper.component.js +1 -1
  499. package/development/stepper.component-80S-oXrH.js +422 -0
  500. package/development/stepper.js +3 -3
  501. package/development/stepper.pure.js +3 -3
  502. package/development/{sticky-bar.component-BrSBKlh-.js → sticky-bar.component-BJLtRvcd.js} +4 -5
  503. package/development/styles-Cctez2BS.js +22 -0
  504. package/development/{styles-Jlhoev1S.js → styles-WppEBrlW.js} +1 -1
  505. package/development/tab-group.component-D4fvd6Uu.js +265 -0
  506. package/development/{tab-label.component-CPaKKeox.js → tab-label.component-CNX8bsJL.js} +2 -2
  507. package/development/tab-nav-bar.component-B_mi8GGR.js +109 -0
  508. package/development/{tab.component-DxZtEaTP.js → tab.component-BVhYPy5Y.js} +1 -1
  509. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  510. package/development/{table-wrapper.component-Ba6NpQu1.js → table-wrapper.component-By59zmcU.js} +1 -1
  511. package/development/table.js +1 -1
  512. package/development/table.pure.js +1 -1
  513. package/development/tabs/common/styles.js +1 -1
  514. package/development/tabs/tab/tab.component.js +1 -1
  515. package/development/tabs/tab-group/tab-group.component.d.ts +2 -3
  516. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  517. package/development/tabs/tab-group/tab-group.component.js +1 -1
  518. package/development/tabs/tab-label/tab-label.component.d.ts +2 -3
  519. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  520. package/development/tabs/tab-label/tab-label.component.js +1 -1
  521. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts +2 -3
  522. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -1
  523. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  524. package/development/tabs.js +5 -5
  525. package/development/tabs.pure.js +5 -5
  526. package/development/tag/tag/tag.component.d.ts +4 -7
  527. package/development/tag/tag/tag.component.d.ts.map +1 -1
  528. package/development/tag/tag/tag.component.js +1 -1
  529. package/development/tag/tag-group/tag-group.component.d.ts +3 -4
  530. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  531. package/development/tag/tag-group/tag-group.component.js +1 -1
  532. package/development/{tag-group.component-CYL62Umh.js → tag-group.component-Db8prSBL.js} +5 -7
  533. package/development/tag.component-DG1uxD28.js +238 -0
  534. package/development/tag.js +2 -2
  535. package/development/tag.pure.js +2 -2
  536. package/development/teaser/teaser.component.d.ts.map +1 -1
  537. package/development/teaser/teaser.component.js +1 -1
  538. package/development/teaser-hero/teaser-hero.component.js +1 -1
  539. package/development/{teaser-hero.component-DrdkFx5X.js → teaser-hero.component-BHMcPmdh.js} +1 -1
  540. package/development/teaser-hero.js +1 -1
  541. package/development/teaser-hero.pure.js +1 -1
  542. package/development/teaser-panel/teaser-panel.component.js +1 -1
  543. package/development/{teaser-panel.component-WSXbBzCq.js → teaser-panel.component-BRfbvmkb.js} +1 -1
  544. package/development/teaser-panel.js +1 -1
  545. package/development/teaser-panel.pure.js +1 -1
  546. package/development/teaser-product/common/teaser-product-common.js +1 -1
  547. package/development/teaser-product/teaser-product/teaser-product.component.d.ts.map +1 -1
  548. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  549. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  550. package/development/{teaser-product-common-B8a-KHTi.js → teaser-product-common-DOyLdTks.js} +1 -1
  551. package/development/{teaser-product.component-gHjSaG6c.js → teaser-product.component-DMyuB-cH.js} +3 -3
  552. package/development/teaser-product.js +2 -2
  553. package/development/teaser-product.pure.js +2 -2
  554. package/development/{teaser.component-B8kQNF6g.js → teaser.component-CF_NUbwJ.js} +3 -3
  555. package/development/teaser.js +1 -1
  556. package/development/teaser.pure.js +1 -1
  557. package/development/time-input/time-input.component.js +1 -1
  558. package/development/{time-input.component-Bc4Sfu-1.js → time-input.component-XxzRoupm.js} +1 -1
  559. package/development/time-input.js +1 -1
  560. package/development/time-input.pure.js +1 -1
  561. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  562. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  563. package/development/timetable-form/timetable-form-field/timetable-form-field.component.d.ts.map +1 -1
  564. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  565. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  566. package/development/{timetable-form-details.component-DacESFsP.js → timetable-form-details.component-BeuAZUQe.js} +1 -1
  567. package/development/{timetable-form-field.component-DWCb4SY0.js → timetable-form-field.component-DC2z1Cwf.js} +4 -1
  568. package/development/{timetable-form-swap-button.component-DGCpV2_y.js → timetable-form-swap-button.component-CnbVc8Ok.js} +1 -1
  569. package/development/{timetable-form.component-CtRlKR7e.js → timetable-form.component-C8DfPePn.js} +1 -1
  570. package/development/timetable-form.js +4 -4
  571. package/development/timetable-form.pure.js +4 -4
  572. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  573. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  574. package/development/{timetable-occupancy-icon.component-uaabLEC5.js → timetable-occupancy-icon.component-UBmyZsTO.js} +1 -1
  575. package/development/timetable-occupancy-icon.js +1 -1
  576. package/development/timetable-occupancy-icon.pure.js +1 -1
  577. package/development/{timetable-occupancy.component-DKWki5pG.js → timetable-occupancy.component-DMm242Fr.js} +1 -1
  578. package/development/timetable-occupancy.js +1 -1
  579. package/development/timetable-occupancy.pure.js +1 -1
  580. package/development/title/title-base.d.ts +3 -4
  581. package/development/title/title-base.d.ts.map +1 -1
  582. package/development/title/title-base.js +1 -1
  583. package/development/title/title.component.d.ts +3 -2
  584. package/development/title/title.component.d.ts.map +1 -1
  585. package/development/title/title.component.js +1 -1
  586. package/development/{title-base-fg03gSOD.js → title-base-D_Rjyk_j.js} +1 -1
  587. package/development/{title.component-B1Uq-Ctr.js → title.component-CMxYhTfw.js} +2 -2
  588. package/development/title.js +2 -2
  589. package/development/title.pure.js +2 -2
  590. package/development/toast/toast.component.js +1 -1
  591. package/development/{toast.component-DeQSxWdf.js → toast.component-DonS3uQm.js} +1 -1
  592. package/development/toast.js +1 -1
  593. package/development/toast.pure.js +1 -1
  594. package/development/toggle/toggle/toggle.component.d.ts +2 -3
  595. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  596. package/development/toggle/toggle/toggle.component.js +1 -1
  597. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  598. package/development/toggle-check/toggle-check.component.d.ts +2 -3
  599. package/development/toggle-check/toggle-check.component.d.ts.map +1 -1
  600. package/development/toggle-check/toggle-check.component.js +1 -1
  601. package/development/{toggle-check.component-BUYj49gP.js → toggle-check.component-BIV7jFIc.js} +4 -5
  602. package/development/toggle-check.js +1 -1
  603. package/development/toggle-check.pure.js +1 -1
  604. package/development/{toggle-option.component-heU6pMCB.js → toggle-option.component-DRxwLSKU.js} +1 -1
  605. package/development/toggle.component-B03k5qc1.js +243 -0
  606. package/development/toggle.js +2 -2
  607. package/development/toggle.pure.js +2 -2
  608. package/development/tooltip/tooltip.component.js +1 -1
  609. package/development/{tooltip.component-BjOgv29e.js → tooltip.component-D8zik3p4.js} +1 -1
  610. package/development/tooltip.js +1 -1
  611. package/development/tooltip.pure.js +1 -1
  612. package/development/train/train/train.component.d.ts +2 -3
  613. package/development/train/train/train.component.d.ts.map +1 -1
  614. package/development/train/train/train.component.js +1 -1
  615. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  616. package/development/train/train-formation/train-formation.component.d.ts +2 -2
  617. package/development/train/train-formation/train-formation.component.d.ts.map +1 -1
  618. package/development/train/train-formation/train-formation.component.js +1 -1
  619. package/development/train/train-formation-orientation-mixin.d.ts +1 -2
  620. package/development/train/train-formation-orientation-mixin.d.ts.map +1 -1
  621. package/development/train/train-formation-orientation-mixin.js +1 -1
  622. package/development/train/train-wagon/train-wagon.component.js +1 -1
  623. package/development/train/train-wagon-button/train-wagon-button.component.js +1 -1
  624. package/development/train/train-wagon-common.js +1 -1
  625. package/development/train/train-wagon-link/train-wagon-link.component.js +1 -1
  626. package/development/{train-blocked-passage.component-2TuSqbDg.js → train-blocked-passage.component-Cxd7dBDC.js} +1 -1
  627. package/development/{train-formation.component-BYB03zX5.js → train-formation.component-BEg6OPib.js} +1 -1
  628. package/development/{train-wagon-common-C-0fI1r2.js → train-wagon-common-Dg-BjUtC.js} +1 -1
  629. package/development/{train.component-BDG8SlCc.js → train.component-dECIGw2x.js} +1 -1
  630. package/development/train.js +5 -5
  631. package/development/train.pure.js +4 -4
  632. package/development/visual-checkbox/visual-checkbox.component.d.ts +3 -4
  633. package/development/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  634. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  635. package/development/{visual-checkbox.component-Dzdm0TH-.js → visual-checkbox.component-Dm8DNhH2.js} +4 -5
  636. package/development/visual-checkbox.js +1 -1
  637. package/development/visual-checkbox.pure.js +1 -1
  638. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  639. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  640. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  641. package/{expansion-panel-content.component-Cf1CWu5_.js → expansion-panel-content.component-WG1cwhjd.js} +1 -1
  642. package/{expansion-panel-header.component-DloOF4eC.js → expansion-panel-header.component-CnUqRql_.js} +1 -1
  643. package/expansion-panel.component-DvZogUuX.js +222 -0
  644. package/expansion-panel.js +3 -3
  645. package/expansion-panel.pure.js +3 -3
  646. package/file-selector/common/file-selector-common.js +1 -1
  647. package/file-selector/file-selector/file-selector.component.js +14 -13
  648. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  649. package/{file-selector-common-CmbsJ64j.js → file-selector-common-BE780nIa.js} +34 -34
  650. package/{file-selector-dropzone.component-74fipV3m.js → file-selector-dropzone.component-CGo6odhC.js} +23 -23
  651. package/file-selector.js +2 -2
  652. package/file-selector.pure.js +2 -2
  653. package/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  654. package/{flip-card-summary.component-CuMMdJ-B.js → flip-card-summary.component-D5cKgj47.js} +1 -1
  655. package/flip-card.js +1 -1
  656. package/flip-card.pure.js +1 -1
  657. package/form-field/form-field/form-field.component.js +1 -1
  658. package/{form-field.component-Dg-a3lS5.js → form-field.component-BdfK6r2v.js} +13 -13
  659. package/form-field.js +1 -1
  660. package/form-field.pure.js +1 -1
  661. package/header/common/header-action-common.js +1 -1
  662. package/header/header/header.component.js +1 -1
  663. package/header-action-common-DuPx0U2o.js +64 -0
  664. package/{header.component-Bj7phY1B.js → header.component-TU3e89pY.js} +18 -18
  665. package/header.js +2 -2
  666. package/header.pure.js +2 -2
  667. package/lean-off-brand-theme.css +3755 -0
  668. package/lean-safety-theme.css +3755 -0
  669. package/lean-theme.css +3755 -0
  670. package/link/common/block-link-common.js +1 -1
  671. package/link-list/common/link-list-base.js +1 -1
  672. package/link-list/link-list.component.js +1 -1
  673. package/{link-list-base-CEEw1SMd.js → link-list-base-C12PTC8e.js} +16 -16
  674. package/{link-list.component-CS4KuMkQ.js → link-list.component-BNVd0a8U.js} +1 -1
  675. package/link-list.js +2 -2
  676. package/link-list.pure.js +2 -2
  677. package/link.js +1 -1
  678. package/link.pure.js +1 -1
  679. package/mini-button-group.component-DQBU0BDm.js +85 -0
  680. package/navigation/common/navigation-action-common.js +1 -1
  681. package/navigation/navigation-list/navigation-list.component.js +1 -1
  682. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  683. package/navigation-action-common-x7PMfho0.js +38 -0
  684. package/{navigation-list.component-NQZA2mui.js → navigation-list.component-Cezo1tC-.js} +0 -3
  685. package/{navigation-marker.component-D1p9TkWH.js → navigation-marker.component-CNsMaqpH.js} +2 -3
  686. package/navigation.js +3 -3
  687. package/navigation.pure.js +3 -3
  688. package/notification/notification.component.js +1 -1
  689. package/notification.component-CDGtGwRv.js +188 -0
  690. package/notification.js +1 -1
  691. package/notification.pure.js +1 -1
  692. package/off-brand-theme.css +100 -86
  693. package/optgroup-base-element-Cxe8SIQh.js +108 -0
  694. package/option/optgroup/optgroup-base-element.js +1 -1
  695. package/option/optgroup/optgroup.component.js +1 -1
  696. package/option/option/option-base-element.js +27 -25
  697. package/option/option/option.component.js +1 -1
  698. package/option/option-hint/option-hint.component.js +1 -1
  699. package/option-hint.component-NSxCKXEy.js +26 -0
  700. package/option.component-BeorlZT0.js +100 -0
  701. package/option.js +3 -3
  702. package/option.pure.js +3 -3
  703. package/package.json +13 -1
  704. package/paginator/common/paginator-common.js +2 -294
  705. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  706. package/paginator/paginator/paginator.component.js +1 -1
  707. package/paginator-common-uoCIcl4X.js +294 -0
  708. package/{paginator.component-3ra04AQU.js → paginator.component-DB8l-B6J.js} +1 -1
  709. package/paginator.js +3 -3
  710. package/paginator.pure.js +3 -3
  711. package/{panel-mixin-CcbyRemy.js → panel-mixin-XQXElTGt.js} +18 -19
  712. package/popover/popover.component.js +1 -1
  713. package/popover.js +1 -1
  714. package/popover.pure.js +1 -1
  715. package/radio-button/common/radio-button-common.js +1 -1
  716. package/radio-button/radio-button.component.js +1 -1
  717. package/{radio-button.component-DedTTka_.js → radio-button.component-CZ273yAb.js} +14 -14
  718. package/radio-button.js +2 -2
  719. package/radio-button.pure.js +2 -2
  720. package/safety-theme.css +100 -86
  721. package/select/select.component.js +1 -1
  722. package/{select.component-PLjAiAA3.js → select.component-CLPLpFDz.js} +36 -36
  723. package/select.js +1 -1
  724. package/select.pure.js +1 -1
  725. package/selection-action-panel/selection-action-panel.component.js +1 -1
  726. package/selection-action-panel.js +1 -1
  727. package/selection-action-panel.pure.js +1 -1
  728. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  729. package/selection-expansion-panel.js +1 -1
  730. package/selection-expansion-panel.pure.js +1 -1
  731. package/{selection-group-base-element-BCEzcnya.js → selection-group-base-element-COFsU6Ur.js} +17 -18
  732. package/sidebar/sidebar/sidebar.component.js +1 -1
  733. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  734. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  735. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  736. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  737. package/sidebar.js +5 -5
  738. package/sidebar.pure.js +5 -5
  739. package/signet/signet.component.js +1 -1
  740. package/signet.js +1 -1
  741. package/signet.pure.js +1 -1
  742. package/skiplink-list/skiplink-list.component.js +1 -1
  743. package/{skiplink-list.component-Dsg-qVWZ.js → skiplink-list.component-BXaqYpsI.js} +18 -18
  744. package/skiplink-list.js +1 -1
  745. package/skiplink-list.pure.js +1 -1
  746. package/slider/slider.component.js +1 -1
  747. package/slider.js +1 -1
  748. package/slider.pure.js +1 -1
  749. package/standard-theme.css +100 -86
  750. package/status/status.component.js +1 -1
  751. package/status.js +1 -1
  752. package/status.pure.js +1 -1
  753. package/step-label.component-BGSaHafq.js +77 -0
  754. package/{step.component-KiTfzfTj.js → step.component-BY6_2Wh2.js} +6 -2
  755. package/stepper/step/step.component.js +1 -1
  756. package/stepper/step-label/step-label.component.js +1 -1
  757. package/stepper/stepper/stepper.component.js +1 -1
  758. package/{stepper.component-BX3gSLpt.js → stepper.component-lh0YSbT1.js} +22 -22
  759. package/stepper.js +3 -3
  760. package/stepper.pure.js +3 -3
  761. package/{sticky-bar.component-CmB6U3iY.js → sticky-bar.component-dmlGAZLW.js} +13 -13
  762. package/styles-DAMaYe4p.js +5 -0
  763. package/{tab-group.component-BGDY-hvA.js → tab-group.component-t4eeCNf-.js} +20 -20
  764. package/{tab-label.component-CMbmEoNe.js → tab-label.component-DvvSohaG.js} +1 -1
  765. package/{tab-nav-bar.component-Cwrqhb-2.js → tab-nav-bar.component-FT2W0urU.js} +13 -13
  766. package/table/table-wrapper/table-wrapper.component.js +1 -1
  767. package/table.css +12 -15
  768. package/table.js +1 -1
  769. package/table.pure.js +1 -1
  770. package/tabs/common/styles.js +1 -1
  771. package/tabs/tab/tab.component.js +1 -1
  772. package/tabs/tab-group/tab-group.component.js +1 -1
  773. package/tabs/tab-label/tab-label.component.js +1 -1
  774. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  775. package/tabs.js +5 -5
  776. package/tabs.pure.js +5 -5
  777. package/tag/tag/tag.component.js +1 -1
  778. package/tag/tag-group/tag-group.component.js +1 -1
  779. package/{tag-group.component-DyXEgvbN.js → tag-group.component-9UfHHJ79.js} +14 -14
  780. package/{tag.component-C74wsPOB.js → tag.component-BKuxfdDi.js} +28 -26
  781. package/tag.js +2 -2
  782. package/tag.pure.js +2 -2
  783. package/teaser/teaser.component.js +1 -1
  784. package/teaser-hero/teaser-hero.component.js +1 -1
  785. package/teaser-hero.js +1 -1
  786. package/teaser-hero.pure.js +1 -1
  787. package/teaser-panel/teaser-panel.component.js +1 -1
  788. package/teaser-panel.js +1 -1
  789. package/teaser-panel.pure.js +1 -1
  790. package/teaser-product/common/teaser-product-common.js +1 -1
  791. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  792. package/{teaser-product.component-Dzclz3Sg.js → teaser-product.component-BcleFVcu.js} +8 -8
  793. package/teaser-product.js +2 -2
  794. package/teaser-product.pure.js +2 -2
  795. package/{teaser.component-BSpcEI3Z.js → teaser.component-BOqCERR7.js} +15 -15
  796. package/teaser.js +1 -1
  797. package/teaser.pure.js +1 -1
  798. package/time-input/time-input.component.js +1 -1
  799. package/time-input.js +1 -1
  800. package/time-input.pure.js +1 -1
  801. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  802. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  803. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  804. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  805. package/timetable-form.js +4 -4
  806. package/timetable-form.pure.js +4 -4
  807. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  808. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  809. package/timetable-occupancy-icon.js +1 -1
  810. package/timetable-occupancy-icon.pure.js +1 -1
  811. package/timetable-occupancy.js +1 -1
  812. package/timetable-occupancy.pure.js +1 -1
  813. package/title/title-base.js +1 -1
  814. package/title/title.component.js +1 -1
  815. package/{title.component-DO67K8g1.js → title.component-VnTeqomb.js} +1 -1
  816. package/title.js +2 -2
  817. package/title.pure.js +2 -2
  818. package/toast/toast.component.js +1 -1
  819. package/toast.js +1 -1
  820. package/toast.pure.js +1 -1
  821. package/toggle/toggle/toggle.component.js +1 -1
  822. package/toggle/toggle-option/toggle-option.component.js +1 -1
  823. package/toggle-check/toggle-check.component.js +1 -1
  824. package/{toggle-check.component-YWr3IHEL.js → toggle-check.component-BcQ5ht0O.js} +17 -17
  825. package/toggle-check.js +1 -1
  826. package/toggle-check.pure.js +1 -1
  827. package/{toggle.component-BFsrJ98d.js → toggle.component-DARkqJol.js} +13 -13
  828. package/toggle.js +2 -2
  829. package/toggle.pure.js +2 -2
  830. package/tooltip/tooltip.component.js +1 -1
  831. package/tooltip.js +1 -1
  832. package/tooltip.pure.js +1 -1
  833. package/train/train/train.component.js +1 -1
  834. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  835. package/train/train-formation/train-formation.component.js +1 -1
  836. package/train/train-wagon-common.js +1 -1
  837. package/train.js +4 -4
  838. package/train.pure.js +4 -4
  839. package/visual-checkbox/visual-checkbox.component.js +1 -1
  840. package/{visual-checkbox.component-R9bYxeNp.js → visual-checkbox.component-YhX5Qk3j.js} +17 -17
  841. package/visual-checkbox.js +1 -1
  842. package/visual-checkbox.pure.js +1 -1
  843. package/core/dom/lean-context.js +0 -7
  844. package/core/overlay/overlay.js +0 -14
  845. package/core/styles/mixins/overlay.scss +0 -175
  846. package/development/accordion.component-Bvx-b38W.js +0 -165
  847. package/development/autocomplete-base-element-CG5m0PpY.js +0 -686
  848. package/development/chip-group.component-DThvmmnh.js +0 -402
  849. package/development/compact-paginator.component-Dyj5CulS.js +0 -51
  850. package/development/core/dom/lean-context.d.ts +0 -5
  851. package/development/core/dom/lean-context.d.ts.map +0 -1
  852. package/development/core/dom/lean-context.js +0 -12
  853. package/development/core/overlay/overlay.d.ts +0 -7
  854. package/development/core/overlay/overlay.d.ts.map +0 -1
  855. package/development/core/overlay/overlay.js +0 -20
  856. package/development/expansion-panel.component-BVdylpqi.js +0 -318
  857. package/development/file-selector-common-Da0KNfDP.js +0 -413
  858. package/development/file-selector-dropzone.component-Bdcau18t.js +0 -106
  859. package/development/form-field.component-_lnIpJF5.js +0 -703
  860. package/development/header-action-common-CQ1CaaBd.js +0 -79
  861. package/development/header.component-BX1rKPa_.js +0 -335
  862. package/development/mini-button-group.component-Bg-etiu1.js +0 -116
  863. package/development/navigation-action-common-CGy4K8q-.js +0 -91
  864. package/development/notification.component-D0rkSF3p.js +0 -271
  865. package/development/optgroup-base-element-BEG1P4gK.js +0 -140
  866. package/development/option-hint.component-CcSUSwjN.js +0 -31
  867. package/development/option.component-BEbIEh5o.js +0 -132
  868. package/development/paginator.component-DIuiY7It.js +0 -261
  869. package/development/select.component-B8_tnz6D.js +0 -806
  870. package/development/step-label.component-BpuNDWKl.js +0 -126
  871. package/development/stepper.component-BnCUoYv6.js +0 -423
  872. package/development/styles-BzEbxmCd.js +0 -18
  873. package/development/tab-group.component-o1F-M_-2.js +0 -266
  874. package/development/tab-nav-bar.component-3uXgOman.js +0 -110
  875. package/development/tag.component-D5DYXQ3i.js +0 -241
  876. package/development/toggle.component-DndGyA1x.js +0 -244
  877. package/expansion-panel.component-5heRRQ0C.js +0 -222
  878. package/header-action-common-B1jGzY-U.js +0 -61
  879. package/mini-button-group.component-BOJNsLrh.js +0 -85
  880. package/navigation-action-common-HG5kdQJR.js +0 -65
  881. package/notification.component-DpC6ulTx.js +0 -195
  882. package/optgroup-base-element-C6KwbQ0N.js +0 -106
  883. package/option-hint.component-Bayihbh1.js +0 -21
  884. package/option.component-C-GGTcqF.js +0 -100
  885. package/step-label.component-BkiOyF7s.js +0 -77
  886. package/styles-OHFAsnJq.js +0 -5
  887. /package/{popover.component-C66BxhNQ.js → popover.component-DJruKzY-.js} +0 -0
  888. /package/{radio-button-common-BDGoskeZ.js → radio-button-common-CrIRn10q.js} +0 -0
  889. /package/{selection-action-panel.component-B7OtT_t2.js → selection-action-panel.component-DCGJQ3Mx.js} +0 -0
  890. /package/{selection-expansion-panel.component-NXfxG9uN.js → selection-expansion-panel.component-Cu1egfTY.js} +0 -0
  891. /package/{sidebar-close-button.component-D5gxiJ_e.js → sidebar-close-button.component-8owwjvk3.js} +0 -0
  892. /package/{sidebar-container.component-BI2Jm-cJ.js → sidebar-container.component-Dcke-Uhr.js} +0 -0
  893. /package/{sidebar-content.component-C44ixSgf.js → sidebar-content.component-CYupfsq_.js} +0 -0
  894. /package/{sidebar-title.component-ByroIWTZ.js → sidebar-title.component-Cf64lCJx.js} +0 -0
  895. /package/{sidebar.component-B2IfBEhW.js → sidebar.component-LaqQzMo2.js} +0 -0
  896. /package/{signet.component-xkCj9Bel.js → signet.component-3Xfke8uk.js} +0 -0
  897. /package/{slider.component-DX8K9GWl.js → slider.component-BlUWAWJU.js} +0 -0
  898. /package/{status.component-BkBUOZC5.js → status.component-mel7wA1j.js} +0 -0
  899. /package/{styles-BNu0Fjw5.js → styles-DisU4TWi.js} +0 -0
  900. /package/{tab.component-BtN993ye.js → tab.component-D6hfhlZw.js} +0 -0
  901. /package/{table-wrapper.component-CQ76PAQl.js → table-wrapper.component-C83EYuZP.js} +0 -0
  902. /package/{teaser-hero.component-mT8miROU.js → teaser-hero.component-mv6HL4vm.js} +0 -0
  903. /package/{teaser-panel.component-DWdMzyoI.js → teaser-panel.component-qRmy2lbz.js} +0 -0
  904. /package/{teaser-product-common-DOQ6f2B7.js → teaser-product-common-J1KZ2Hlw.js} +0 -0
  905. /package/{time-input.component-BRJerke6.js → time-input.component-Dw8pPYDK.js} +0 -0
  906. /package/{timetable-form-details.component-Wmad9usT.js → timetable-form-details.component-0c6h6shd.js} +0 -0
  907. /package/{timetable-form-field.component-D3P3lV86.js → timetable-form-field.component-Cya8n2Ms.js} +0 -0
  908. /package/{timetable-form-swap-button.component-B8yPDfMq.js → timetable-form-swap-button.component-rI_0UYJw.js} +0 -0
  909. /package/{timetable-form.component-CJKyHMZk.js → timetable-form.component-DVps6baq.js} +0 -0
  910. /package/{timetable-occupancy-icon.component-DA9NTQJn.js → timetable-occupancy-icon.component-ABh1bz-X.js} +0 -0
  911. /package/{timetable-occupancy.component-B0OJi-B1.js → timetable-occupancy.component-DGQ20zH1.js} +0 -0
  912. /package/{title-base-B70qaksx.js → title-base-JBhKD3ur.js} +0 -0
  913. /package/{toast.component-DVaz-D5o.js → toast.component-BMN90Ouu.js} +0 -0
  914. /package/{toggle-option.component-BP9QEwh9.js → toggle-option.component-DQcPDXyl.js} +0 -0
  915. /package/{tooltip.component-BrXCWlQB.js → tooltip.component-NfyDxfw7.js} +0 -0
  916. /package/{train-blocked-passage.component-DxqSh9I8.js → train-blocked-passage.component-B601YYJl.js} +0 -0
  917. /package/{train-formation.component-HM0M0FHW.js → train-formation.component-DVxNBPIB.js} +0 -0
  918. /package/{train-wagon-common-BH9bSebN.js → train-wagon-common-CDCsWVgi.js} +0 -0
  919. /package/{train.component-BZ3jtqQ4.js → train.component-DxadS7O8.js} +0 -0
@@ -0,0 +1,243 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, isServer, unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbDisabledMixin, SbbElement, SbbFormAssociatedMixin, forceType, interactivityChecker } from "./core.js";
5
+ //#region src/elements/toggle/toggle/toggle.scss?inline
6
+ var toggle_default = ":host {\n --_sbb-toggle-min-width: calc(\n var(--sbb-toggle-padding-inline) * 4 + var(--sbb-size-icon-ui-small)\n );\n --sbb-toggle-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n display: grid;\n grid-template-columns: var(--sbb-toggle-grid-template-columns);\n grid-template-areas: \"start end\";\n align-items: center;\n height: var(--sbb-toggle-height);\n width: var(--sbb-toggle-width, fit-content);\n min-width: var(--_sbb-toggle-min-width);\n max-width: 100%;\n border-radius: var(--sbb-toggle-border-radius);\n font-size: var(--sbb-toggle-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n line-height: var(--sbb-typo-line-height-text);\n}\n:host::before {\n content: \"\";\n display: block;\n grid-area: start/start/end/end;\n margin-inline: var(--sbb-toggle-option-left, 0) var(--sbb-toggle-option-right, 0);\n background-color: var(--sbb-toggle-selected-option-background-color);\n border-radius: var(--sbb-toggle-border-radius);\n max-width: 100%;\n height: 100%;\n border: var(--sbb-toggle-selected-option-border-width) var(--sbb-toggle-selected-option-border-style) var(--sbb-toggle-selected-option-border-color);\n transition-duration: var(--sbb-toggle-animation-duration);\n transition-timing-function: ease;\n transition-property: margin-inline-start, margin-inline-end;\n}\n:host::after {\n content: \"\";\n grid-area: start/start/end/end;\n order: -1;\n background: var(--sbb-toggle-background-color);\n margin-inline: var(--sbb-toggle-background-inset);\n height: calc(100% - 2 * var(--sbb-toggle-background-inset));\n border-radius: var(--sbb-toggle-border-radius);\n}\n@media (forced-colors: active) {\n :host::after {\n border: var(--sbb-border-width-1x) solid CanvasText;\n }\n}\n\n:host([even]) {\n --sbb-toggle-width: 100%;\n --sbb-toggle-grid-template-columns: 50% 50%;\n}\n\n:host(:disabled) {\n --sbb-toggle-selected-option-border-color: var(--sbb-color-graphite);\n --sbb-toggle-selected-option-border-color: light-dark(\n var(--sbb-color-graphite),\n var(--sbb-color-smoke)\n );\n --sbb-toggle-selected-option-border-style: dashed;\n}\n@media (forced-colors: active) {\n :host(:disabled) {\n --sbb-toggle-selected-option-border-style: solid;\n --sbb-toggle-selected-option-border-color: GrayText;\n }\n}\n\n:host([size=s]) {\n --sbb-toggle-padding-inline: var(--sbb-toggle-padding-inline-s);\n --sbb-toggle-height: var(--sbb-toggle-height-s);\n}\n\n:host([size=m]) {\n --sbb-toggle-padding-inline: var(--sbb-toggle-padding-inline-m);\n --sbb-toggle-height: var(--sbb-toggle-height-m);\n}\n\n:host(:is(:not(:is(:state(initialized),[state--initialized])), :is(:state(disable-animation-on-resizing),[state--disable-animation-on-resizing]))) {\n --sbb-disable-animation-duration: 0s;\n}\n\n::slotted(sbb-toggle-option:first-of-type) {\n grid-area: start;\n}\n\n::slotted(sbb-toggle-option:last-of-type) {\n grid-area: end;\n}";
7
+ //#endregion
8
+ //#region src/elements/toggle/toggle/toggle.component.ts
9
+ /**
10
+ * It can be used as a container for two `sbb-toggle-option`, acting as a toggle button.
11
+ *
12
+ * @slot - Use the unnamed slot to add `<sbb-toggle-option>` elements to the toggle.
13
+ * @overrideType value - (T = string) | null
14
+ */
15
+ var SbbToggleElement = (() => {
16
+ let _classSuper = SbbDisabledMixin(SbbFormAssociatedMixin(SbbElement));
17
+ let _instanceExtraInitializers = [];
18
+ let _even_decorators;
19
+ let _even_initializers = [];
20
+ let _even_extraInitializers = [];
21
+ let _size_decorators;
22
+ let _size_initializers = [];
23
+ let _size_extraInitializers = [];
24
+ let _set_value_decorators;
25
+ return class SbbToggleElement extends _classSuper {
26
+ static {
27
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
28
+ _even_decorators = [forceType(), property({
29
+ reflect: true,
30
+ type: Boolean
31
+ })];
32
+ _size_decorators = [property({ reflect: true })];
33
+ _set_value_decorators = [property()];
34
+ __esDecorate(this, null, _even_decorators, {
35
+ kind: "accessor",
36
+ name: "even",
37
+ static: false,
38
+ private: false,
39
+ access: {
40
+ has: (obj) => "even" in obj,
41
+ get: (obj) => obj.even,
42
+ set: (obj, value) => {
43
+ obj.even = value;
44
+ }
45
+ },
46
+ metadata: _metadata
47
+ }, _even_initializers, _even_extraInitializers);
48
+ __esDecorate(this, null, _size_decorators, {
49
+ kind: "accessor",
50
+ name: "size",
51
+ static: false,
52
+ private: false,
53
+ access: {
54
+ has: (obj) => "size" in obj,
55
+ get: (obj) => obj.size,
56
+ set: (obj, value) => {
57
+ obj.size = value;
58
+ }
59
+ },
60
+ metadata: _metadata
61
+ }, _size_initializers, _size_extraInitializers);
62
+ __esDecorate(this, null, _set_value_decorators, {
63
+ kind: "setter",
64
+ name: "value",
65
+ static: false,
66
+ private: false,
67
+ access: {
68
+ has: (obj) => "value" in obj,
69
+ set: (obj, value) => {
70
+ obj.value = value;
71
+ }
72
+ },
73
+ metadata: _metadata
74
+ }, null, _instanceExtraInitializers);
75
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
76
+ enumerable: true,
77
+ configurable: true,
78
+ writable: true,
79
+ value: _metadata
80
+ });
81
+ }
82
+ static {
83
+ this.elementName = "sbb-toggle";
84
+ }
85
+ static {
86
+ this.role = "radiogroup";
87
+ }
88
+ static {
89
+ this.styles = [unsafeCSS(toggle_default)];
90
+ }
91
+ static {
92
+ this.events = { change: "change" };
93
+ }
94
+ #even_accessor_storage;
95
+ /**
96
+ * If true, set the width of the component fixed; if false,
97
+ * the width is dynamic based on the label of the sbb-toggle-option.
98
+ */
99
+ get even() {
100
+ return this.#even_accessor_storage;
101
+ }
102
+ set even(value) {
103
+ this.#even_accessor_storage = value;
104
+ }
105
+ #size_accessor_storage;
106
+ /**
107
+ * Size variant, either s (lean theme default) or m (standard theme default).
108
+ */
109
+ get size() {
110
+ return this.#size_accessor_storage;
111
+ }
112
+ set size(value) {
113
+ this.#size_accessor_storage = value;
114
+ }
115
+ /**
116
+ * The value of the toggle. It needs to be mutable since it is updated whenever
117
+ * a new option is selected (see the `onToggleOptionSelect()` method).
118
+ */
119
+ set value(value) {
120
+ if (isServer || !this.hasUpdated) this._fallbackValue = value;
121
+ else this._valueChanged(value);
122
+ }
123
+ get value() {
124
+ return isServer ? this._fallbackValue ?? null : this.options.find((o) => o.checked)?.value ?? this.options[0]?.value ?? null;
125
+ }
126
+ /** The child instances of sbb-toggle-option as an array. */
127
+ get options() {
128
+ return Array.from(this.querySelectorAll?.("sbb-toggle-option") ?? []);
129
+ }
130
+ constructor() {
131
+ super();
132
+ this.#even_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _even_initializers, false));
133
+ this.#size_accessor_storage = (__runInitializers(this, _even_extraInitializers), __runInitializers(this, _size_initializers, null));
134
+ this._fallbackValue = (__runInitializers(this, _size_extraInitializers), null);
135
+ this.addEventListener?.("input", () => this._handleInput(), { passive: true });
136
+ this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
137
+ }
138
+ willUpdate(changedProperties) {
139
+ super.willUpdate(changedProperties);
140
+ if (changedProperties.has("disabled") || changedProperties.has("formDisabled")) this._updateDisabled();
141
+ if (!this.hasUpdated) this._valueChanged(this._fallbackValue);
142
+ }
143
+ /**
144
+ * Called whenever the value changes, both programmatically or by user interaction.
145
+ * @internal
146
+ */
147
+ statusChanged() {
148
+ this.updateFormValue();
149
+ this.updatePillPosition();
150
+ }
151
+ /**
152
+ * Reset to the init value if present. Select the first option, otherwise.
153
+ * @internal
154
+ */
155
+ formResetCallback() {
156
+ this.value = this.hasAttribute("value") ? this.getAttribute("value") : null;
157
+ }
158
+ /**
159
+ * @internal
160
+ */
161
+ formStateRestoreCallback(state, _reason) {
162
+ if (typeof state === "string" || state == null) this.value = state ?? null;
163
+ else if (state instanceof FormData) this._readFormData(state).then((data) => {
164
+ this.value = data;
165
+ });
166
+ }
167
+ async _readFormData(formData) {
168
+ const data = formData.get(this.name);
169
+ return data instanceof Blob ? JSON.parse(await data.text()) : data;
170
+ }
171
+ /** @internal */
172
+ updatePillPosition(resizing = false) {
173
+ const options = this.options;
174
+ if (options.length < 2 || options.every((o) => !o.checked) || options.every((o) => !o.clientWidth)) return;
175
+ this.toggleState("disable-animation-on-resizing", resizing);
176
+ const firstOption = options[0];
177
+ const isFirstChecked = firstOption.checked;
178
+ const pillLeft = isFirstChecked ? "0px" : `${firstOption.clientWidth}px`;
179
+ const pillRight = isFirstChecked ? `${this.clientWidth - firstOption.clientWidth}px` : "0px";
180
+ if (pillRight === "0px" && pillLeft === "0px") return;
181
+ this.style?.setProperty("--sbb-toggle-option-left", pillLeft);
182
+ this.style?.setProperty("--sbb-toggle-option-right", pillRight);
183
+ this.offsetWidth;
184
+ this.internals.states.add("initialized");
185
+ }
186
+ _updateToggle() {
187
+ this._valueChanged(this.value);
188
+ this._updateDisabled();
189
+ }
190
+ _valueChanged(value) {
191
+ const options = this.options;
192
+ const selectedOption = options.find((o) => value === o.value) ?? options.find((o) => o.checked) ?? options[0];
193
+ if (!selectedOption) return;
194
+ selectedOption.checked = true;
195
+ this.statusChanged();
196
+ }
197
+ _updateDisabled() {
198
+ for (const toggleOption of this.options) toggleOption.disabled = this.disabled || this.formDisabled;
199
+ }
200
+ /**
201
+ * Called on user interaction (click or keyboard)
202
+ */
203
+ _handleInput() {
204
+ this.statusChanged();
205
+ /**
206
+ * The change event is fired when the user modifies the element's value.
207
+ * Unlike the input event, the change event is not necessarily fired
208
+ * for each alteration to an element's value.
209
+ */
210
+ this.dispatchEvent(new Event("change", { bubbles: true }));
211
+ }
212
+ _handleKeyDown(evt) {
213
+ if (!this.options.filter((t) => !t.disabled && interactivityChecker.isVisible(t)) || evt.target !== this && evt.target.parentElement !== this) return;
214
+ const options = this.options;
215
+ const isRtl = this.matches(":dir(rtl)");
216
+ const currentIndex = options.findIndex((option) => option.checked) ?? options[0];
217
+ const availableOptions = options.slice(currentIndex + 1).concat(options.slice(0, currentIndex)).filter((o) => !o.disabled && interactivityChecker.isVisible(o));
218
+ if (!isRtl ? evt.key === " " || evt.key === "ArrowRight" : evt.key === "ArrowLeft") {
219
+ this._selectAndFocusOption(availableOptions[0]);
220
+ evt.preventDefault();
221
+ } else if (isRtl ? evt.key === " " || evt.key === "ArrowRight" : evt.key === "ArrowLeft") {
222
+ this._selectAndFocusOption(availableOptions.at(-1));
223
+ evt.preventDefault();
224
+ }
225
+ }
226
+ _selectAndFocusOption(option) {
227
+ if (!option || option.disabled || option.checked) return;
228
+ option.checked = true;
229
+ option.focus();
230
+ option.dispatchEvent(new InputEvent("input", {
231
+ bubbles: true,
232
+ composed: true
233
+ }));
234
+ }
235
+ render() {
236
+ return html` <slot @slotchange=${this._updateToggle}></slot> `;
237
+ }
238
+ };
239
+ })();
240
+ //#endregion
241
+ export { SbbToggleElement as t };
242
+
243
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC1CMDNrNXFjMS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1fc2JiLXRvZ2dsZS1taW4td2lkdGg6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXRvZ2dsZS1wYWRkaW5nLWlubGluZSkgKiA0ICsgdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbClcbiAgKTtcbiAgLS1zYmItdG9nZ2xlLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1zYmItdG9nZ2xlLWdyaWQtdGVtcGxhdGUtY29sdW1ucyk7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdzdGFydCBlbmQnO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0KTtcbiAgd2lkdGg6IHZhcigtLXNiYi10b2dnbGUtd2lkdGgsIGZpdC1jb250ZW50KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1fc2JiLXRvZ2dsZS1taW4td2lkdGgpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b2dnbGUtYm9yZGVyLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIC8vIFNldCB0aGUgbGluZS1oZWlnaHQgZm9yIGFkamFjZW50IGVsZW1lbnRzIGluIG9yZGVyIHRvIHByZXZlbnQgZnJvbSBpbmZsdWVuY2Ugb2YgYSBjb25zdW1lci1zZXQgbGluZS1oZWlnaHQuXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBXaGl0ZSBwaWxsIG9mIHNlbGVjdGVkIHRvZ2dsZSBvcHRpb25cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBncmlkLWFyZWE6IHN0YXJ0IC8gc3RhcnQgLyBlbmQgLyBlbmQ7XG4gICAgbWFyZ2luLWlubGluZTogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tbGVmdCwgMCkgdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tcmlnaHQsIDApO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b2dnbGUtYm9yZGVyLXJhZGl1cyk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci13aWR0aClcbiAgICAgIHZhcigtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1zdHlsZSkgdmFyKC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLWNvbG9yKTtcblxuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItdG9nZ2xlLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgICBwcm9wZXJ0eTogbWFyZ2luLWlubGluZS1zdGFydCwgbWFyZ2luLWlubGluZS1lbmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFja2dyb3VuZFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZ3JpZC1hcmVhOiBzdGFydCAvIHN0YXJ0IC8gZW5kIC8gZW5kO1xuICAgIG9yZGVyOiAtMTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zYmItdG9nZ2xlLWJhY2tncm91bmQtY29sb3IpO1xuICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLXNiYi10b2dnbGUtYmFja2dyb3VuZC1pbnNldCk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyICogdmFyKC0tc2JiLXRvZ2dsZS1iYWNrZ3JvdW5kLWluc2V0KSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRvZ2dsZS1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgICB9XG4gIH1cbn1cblxuOmhvc3QoW2V2ZW5dKSB7XG4gIC0tc2JiLXRvZ2dsZS13aWR0aDogMTAwJTtcbiAgLS1zYmItdG9nZ2xlLWdyaWQtdGVtcGxhdGUtY29sdW1uczogNTAlIDUwJTtcbn1cblxuOmhvc3QoOmRpc2FibGVkKSB7XG4gIC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXNtb2tlKVxuICApO1xuICAtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1zdHlsZTogZGFzaGVkO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgLS1zYmItdG9nZ2xlLXNlbGVjdGVkLW9wdGlvbi1ib3JkZXItY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItdG9nZ2xlLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9nZ2xlLXBhZGRpbmctaW5saW5lLXMpO1xuICAtLXNiYi10b2dnbGUtaGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLWhlaWdodC1zKTtcbn1cblxuOmhvc3QoW3NpemU9J20nXSkge1xuICAtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmUtbSk7XG4gIC0tc2JiLXRvZ2dsZS1oZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0LW0pO1xufVxuXG46aG9zdCg6aXMoOm5vdCg6c3RhdGUoaW5pdGlhbGl6ZWQpKSwgOnN0YXRlKGRpc2FibGUtYW5pbWF0aW9uLW9uLXJlc2l6aW5nKSkpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246Zmlyc3Qtb2YtdHlwZSkge1xuICBncmlkLWFyZWE6IHN0YXJ0O1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246bGFzdC1vZi10eXBlKSB7XG4gIGdyaWQtYXJlYTogZW5kO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgaW50ZXJhY3Rpdml0eUNoZWNrZXIsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnQsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUb2dnbGVPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vdG9nZ2xlLW9wdGlvbi90b2dnbGUtb3B0aW9uLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIHR3byBgc2JiLXRvZ2dsZS1vcHRpb25gLCBhY3RpbmcgYXMgYSB0b2dnbGUgYnV0dG9uLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGA8c2JiLXRvZ2dsZS1vcHRpb24+YCBlbGVtZW50cyB0byB0aGUgdG9nZ2xlLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nKSB8IG51bGxcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRvZ2dsZUVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9nZ2xlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3JhZGlvZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHNldCB0aGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudCBmaXhlZDsgaWYgZmFsc2UsXG4gICAqIHRoZSB3aWR0aCBpcyBkeW5hbWljIGJhc2VkIG9uIHRoZSBsYWJlbCBvZiB0aGUgc2JiLXRvZ2dsZS1vcHRpb24uXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXZlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIChsZWFuIHRoZW1lIGRlZmF1bHQpIG9yIG0gKHN0YW5kYXJkIHRoZW1lIGRlZmF1bHQpLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgdG9nZ2xlLiBJdCBuZWVkcyB0byBiZSBtdXRhYmxlIHNpbmNlIGl0IGlzIHVwZGF0ZWQgd2hlbmV2ZXJcbiAgICogYSBuZXcgb3B0aW9uIGlzIHNlbGVjdGVkIChzZWUgdGhlIGBvblRvZ2dsZU9wdGlvblNlbGVjdCgpYCBtZXRob2QpLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCB8IG51bGwpIHtcbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fZmFsbGJhY2tWYWx1ZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgID8gKHRoaXMuX2ZhbGxiYWNrVmFsdWUgPz8gbnVsbClcbiAgICAgIDogKHRoaXMub3B0aW9ucy5maW5kKChvKSA9PiBvLmNoZWNrZWQpPy52YWx1ZSA/PyB0aGlzLm9wdGlvbnNbMF0/LnZhbHVlID8/IG51bGwpO1xuICB9XG4gIHByaXZhdGUgX2ZhbGxiYWNrVmFsdWU6IFQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIGNoaWxkIGluc3RhbmNlcyBvZiBzYmItdG9nZ2xlLW9wdGlvbiBhcyBhbiBhcnJheS4gKi9cbiAgcHVibGljIGdldCBvcHRpb25zKCk6IFNiYlRvZ2dsZU9wdGlvbkVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQ+Pignc2JiLXRvZ2dsZS1vcHRpb24nKSA/PyBbXSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2lucHV0JywgKCkgPT4gdGhpcy5faGFuZGxlSW5wdXQoKSwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Zvcm1EaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLl91cGRhdGVEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIC8vIEJlZm9yZSB0aGUgZmlyc3QgdXBkYXRlLCBpbml0IHdpdGggdGhlIGZhbGxiYWNrIHZhbHVlLlxuICAgIC8vIFRoZSB3aWxsVXBkYXRlIGhvb2sgaXMgc2FmZXIgdGhhbiB0aGUgJ3ZhbHVlJyBzZXR0ZXIuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZCh0aGlzLl9mYWxsYmFja1ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzLCBib3RoIHByb2dyYW1tYXRpY2FsbHkgb3IgYnkgdXNlciBpbnRlcmFjdGlvbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdHVzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgIHRoaXMudXBkYXRlUGlsbFBvc2l0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdG8gdGhlIGluaXQgdmFsdWUgaWYgcHJlc2VudC4gU2VsZWN0IHRoZSBmaXJzdCBvcHRpb24sIG90aGVyd2lzZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICh0aGlzLmhhc0F0dHJpYnV0ZSgndmFsdWUnKSA/IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpIDogbnVsbCkgYXMgVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJyB8fCBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gKHN0YXRlIGFzIFQpID8/IG51bGw7XG4gICAgfSBlbHNlIGlmIChzdGF0ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICB0aGlzLl9yZWFkRm9ybURhdGEoc3RhdGUpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGE7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZWFkRm9ybURhdGEoZm9ybURhdGE6IEZvcm1EYXRhKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgZGF0YSA9IGZvcm1EYXRhLmdldCh0aGlzLm5hbWUpO1xuICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQmxvYiA/IEpTT04ucGFyc2UoYXdhaXQgZGF0YS50ZXh0KCkpIDogKGRhdGEgYXMgVCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyB1cGRhdGVQaWxsUG9zaXRpb24ocmVzaXppbmcgPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLmxlbmd0aCA8IDIgfHxcbiAgICAgIG9wdGlvbnMuZXZlcnkoKG8pID0+ICFvLmNoZWNrZWQpIHx8XG4gICAgICBvcHRpb25zLmV2ZXJ5KChvKSA9PiAhby5jbGllbnRXaWR0aClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlLWFuaW1hdGlvbi1vbi1yZXNpemluZycsIHJlc2l6aW5nKTtcblxuICAgIGNvbnN0IGZpcnN0T3B0aW9uID0gb3B0aW9uc1swXTtcbiAgICBjb25zdCBpc0ZpcnN0Q2hlY2tlZCA9IGZpcnN0T3B0aW9uLmNoZWNrZWQ7XG4gICAgY29uc3QgcGlsbExlZnQgPSBpc0ZpcnN0Q2hlY2tlZCA/ICcwcHgnIDogYCR7Zmlyc3RPcHRpb24uY2xpZW50V2lkdGh9cHhgO1xuICAgIGNvbnN0IHBpbGxSaWdodCA9IGlzRmlyc3RDaGVja2VkID8gYCR7dGhpcy5jbGllbnRXaWR0aCAtIGZpcnN0T3B0aW9uLmNsaWVudFdpZHRofXB4YCA6ICcwcHgnO1xuXG4gICAgaWYgKHBpbGxSaWdodCA9PT0gJzBweCcgJiYgcGlsbExlZnQgPT09ICcwcHgnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXRvZ2dsZS1vcHRpb24tbGVmdCcsIHBpbGxMZWZ0KTtcbiAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItdG9nZ2xlLW9wdGlvbi1yaWdodCcsIHBpbGxSaWdodCk7XG5cbiAgICAvLyBUcmlnZ2VycyBhIGxheW91dCByZWZsb3cgd2hpY2ggaXMgbmVlZGVkIHRvIGF2b2lkIGFuaW1hdGlvbiBnbGl0Y2hlcy5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xuICAgIHRoaXMub2Zmc2V0V2lkdGg7XG5cbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBhIHRyYW5zaXRpb24gZ2xpdGNoLCB3ZSBoYXZlIHRvIGtub3cgd2hlbiB0aGUgZmlyc3QgdmFsdWVzIHdlcmUgc2V0LlxuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2luaXRpYWxpemVkJyk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVUb2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX3VwZGF0ZURpc2FibGVkKCk7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZUNoYW5nZWQodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcblxuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID1cbiAgICAgIG9wdGlvbnMuZmluZCgobykgPT4gdmFsdWUgPT09IG8udmFsdWUpID8/IG9wdGlvbnMuZmluZCgobykgPT4gby5jaGVja2VkKSA/PyBvcHRpb25zWzBdO1xuXG4gICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgaWYgKGltcG9ydC5tZXRhLmVudi5ERVYgJiYgIWlzU2VydmVyKSB7XG4gICAgICAgIGNvbnNvbGUud2Fybihgc2JiLXRvZ2dsZTogTm8gYXZhaWxhYmxlIG9wdGlvbnMhICgke3RoaXMuaWQgfHwgJ05vIGlkJ30pYCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNlbGVjdGVkT3B0aW9uLmNoZWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuc3RhdHVzQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCB0b2dnbGVPcHRpb24gb2YgdGhpcy5vcHRpb25zKSB7XG4gICAgICB0b2dnbGVPcHRpb24uZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgb24gdXNlciBpbnRlcmFjdGlvbiAoY2xpY2sgb3Iga2V5Ym9hcmQpXG4gICAqL1xuICBwcml2YXRlIF9oYW5kbGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c0NoYW5nZWQoKTtcbiAgICAvKipcbiAgICAgKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZFxuICAgICAqIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLlxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRUb2dnbGVPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcihcbiAgICAgICh0KSA9PiAhdC5kaXNhYmxlZCAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUodCksXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgICFlbmFibGVkVG9nZ2xlT3B0aW9ucyB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBpc1J0bCA9IHRoaXMubWF0Y2hlcygnOmRpcihydGwpJyk7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLmNoZWNrZWQpID8/IG9wdGlvbnNbMF07XG4gICAgY29uc3QgYXZhaWxhYmxlT3B0aW9ucyA9IG9wdGlvbnNcbiAgICAgIC5zbGljZShjdXJyZW50SW5kZXggKyAxKVxuICAgICAgLmNvbmNhdChvcHRpb25zLnNsaWNlKDAsIGN1cnJlbnRJbmRleCkpXG4gICAgICAuZmlsdGVyKChvKSA9PiAhby5kaXNhYmxlZCAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUobykpO1xuICAgIGlmICghaXNSdGwgPyBldnQua2V5ID09PSAnICcgfHwgZXZ0LmtleSA9PT0gJ0Fycm93UmlnaHQnIDogZXZ0LmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgIHRoaXMuX3NlbGVjdEFuZEZvY3VzT3B0aW9uKGF2YWlsYWJsZU9wdGlvbnNbMF0pO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChpc1J0bCA/IGV2dC5rZXkgPT09ICcgJyB8fCBldnQua2V5ID09PSAnQXJyb3dSaWdodCcgOiBldnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgdGhpcy5fc2VsZWN0QW5kRm9jdXNPcHRpb24oYXZhaWxhYmxlT3B0aW9ucy5hdCgtMSkpO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0QW5kRm9jdXNPcHRpb24ob3B0aW9uOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQ+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb24gfHwgb3B0aW9uLmRpc2FibGVkIHx8IG9wdGlvbi5jaGVja2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG9wdGlvbi5jaGVja2VkID0gdHJ1ZTtcbiAgICBvcHRpb24uZm9jdXMoKTtcbiAgICBvcHRpb24uZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYCA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX3VwZGF0ZVRvZ2dsZX0+PC9zbG90PiBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdG9nZ2xlJzogU2JiVG9nZ2xlRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztJQzZCYSwwQkFBZ0I7bUJBQXFCLGlCQUNoRCx1QkFBdUIsV0FBVyxDQUNuQzs7Ozs7Ozs7O2NBRlkseUJBQXFDLFlBRWpEOzs7dUJBWUUsV0FBVyxFQUNYLFNBQVM7SUFBRSxTQUFTO0lBQU0sTUFBTTtJQUFTLENBQUMs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
@@ -1,5 +1,5 @@
1
- import { t as SbbToggleOptionElement } from "./toggle-option.component-heU6pMCB.js";
2
- import { t as SbbToggleElement } from "./toggle.component-DndGyA1x.js";
1
+ import { t as SbbToggleOptionElement } from "./toggle-option.component-DRxwLSKU.js";
2
+ import { t as SbbToggleElement } from "./toggle.component-B03k5qc1.js";
3
3
  import "./toggle.pure.js";
4
4
  //#region src/elements/toggle.ts
5
5
  /** @entrypoint */
@@ -1,3 +1,3 @@
1
- import { t as SbbToggleOptionElement } from "./toggle-option.component-heU6pMCB.js";
2
- import { t as SbbToggleElement } from "./toggle.component-DndGyA1x.js";
1
+ import { t as SbbToggleOptionElement } from "./toggle-option.component-DRxwLSKU.js";
2
+ import { t as SbbToggleElement } from "./toggle.component-B03k5qc1.js";
3
3
  export { SbbToggleElement, SbbToggleOptionElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbTooltipElement } from "../tooltip.component-BjOgv29e.js";
1
+ import { t as SbbTooltipElement } from "../tooltip.component-D8zik3p4.js";
2
2
  export { SbbTooltipElement };
@@ -366,4 +366,4 @@ var SbbTooltipElement = (() => {
366
366
  //#endregion
367
367
  export { SbbTooltipElement as t };
368
368
 
369
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtQmpPZ3YyOWUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzLCBhbGwpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItdG9vbHRpcC16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb24pO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZWFzaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdG9vbHRpcC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBSZXNldCBbcG9wb3Zlcl0gc3R5bGVzXG4gIGJvcmRlcjogbm9uZTtcbiAgaW5zZXQ6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tbmFtZTogb3BlbjtcblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWU6IGNsb3NlO1xuICAtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG46aG9zdCg6aXMoW2RhdGEtcG9zaXRpb25+PSdibG9jay1lbmQnXSwgW2RhdGEtcG9zaXRpb25+PSdib3R0b20nXSwgW2RhdGEtcG9zaXRpb25ePSdlbmQnXSkpIHtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoOmlzKFtkYXRhLXBvc2l0aW9ufj0nYmxvY2stc3RhcnQnXSwgW2RhdGEtcG9zaXRpb25+PSd0b3AnXSwgW2RhdGEtcG9zaXRpb25ePSdzdGFydCddKSkge1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoXG4gIDppcyhcbiAgICBbZGF0YS1wb3NpdGlvbn49J2lubGluZS1zdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0naW5saW5lLWVuZCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0nbGVmdCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0ncmlnaHQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbiQ9JyBzdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9uJD0nIGVuZCddXG4gIClcbikge1xuICAvLyBBZGQgYSBnYXAgb24gYm90aCBzaWRlcyB0byBkaXN0YW5jZSB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0cmlnZ2VyIGFuZCB0aGUgZWRnZSBvZiB0aGUgdmlld3BvcnQuXG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG4uc2JiLXRvb2x0aXAge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItdG9vbHRpcC1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10b29sdGlwLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvb2x0aXAtbWluLXdpZHRoKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1zYmItdG9vbHRpcC1tYXgtd2lkdGgpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLXRyYW5zbGF0ZSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tdHJhbnNsYXRlKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgaWRSZWZlcmVuY2UsXG4gIGlzQW5kcm9pZCxcbiAgaXNJT1MsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBxdWV1ZURvbUNvbnRlbnRMb2FkZWQsXG4gIHJlYWRDb25maWcsXG4gIHJlbW92ZUFyaWFFbGVtZW50cyxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLFxuICBTYmJPdmVybGF5UG9zaXRpb25Db250cm9sbGVyLFxufSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdG9vbHRpcC5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgdGhlIHRvb2x0aXAgaWYgdGhpcyBlbGVtZW50IGlzIHVzZWQgYXMgYSB0cmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zIHtcbiAgcmVhZG9ubHkgdG9vbHRpcFBvc2l0aW9uczogc3RyaW5nW107XG59XG5cbi8qKlxuICogVGltZSBiZXR3ZWVuIHRoZSB1c2VyIHB1dHRpbmcgdGhlIHBvaW50ZXIgb24gYSB0b29sdGlwXG4gKiB0cmlnZ2VyIGFuZCB0aGUgbG9uZyBwcmVzcyBldmVudCBiZWluZyBmaXJlZC5cbiAqL1xuY29uc3QgTE9OR1BSRVNTX0RFTEFZID0gNTAwO1xuXG5jb25zdCBpc01vYmlsZSA9IGlzQW5kcm9pZCB8fCBpc0lPUztcbmNvbnN0IHRvb2x0aXBUcmlnZ2VycyA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBTYmJUb29sdGlwRWxlbWVudD4oKTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyB0ZXh0IGNvbnRlbnQgd2l0aGluIGEgdG9vbHRpcC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCB0aGUgdGV4dCBpbnRvIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYT1ibG9jay1lbmRdIC0gVGhlIHByaW1hcnkgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcz1ibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kLCBibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQsIGJsb2NrLXN0YXJ0LCBibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQsIGJsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0XSAtXG4gKiBUaGUgbGlzdCBvZiBmYWxsYmFjayBwb3NpdGlvbnMsIHNlcGFyYXRlZCBieSAnLCcsIGZvciB0aGUgdG9vbHRpcFxuICogQGNzc3Byb3AgWy0tc2JiLXRvb2x0aXAtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVG9vbHRpcEVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9vbHRpcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0b29sdGlwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgc3RhdGljIF90b29sdGlwT3V0bGV0OiBFbGVtZW50O1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHRvb2x0aXAgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogT3BlbiB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdvcGVuLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgb3BlbkRlbGF5KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBvcGVuRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkRlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5vcGVuRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9vcGVuRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBjbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBpdCBoYXMgYmVlbiBvcGVuIGJ5IGxvbmcgcHJlc3MuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMTUwMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbG9uZy1wcmVzcy1jbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGxvbmdQcmVzc0Nsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBsb25nUHJlc3NDbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmxvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gMTUwMDtcbiAgfVxuICBwcml2YXRlIF9sb25nUHJlc3NDbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuU3RhdGVDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc09wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc0Nsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gVW50aWwgdGhlIG1vdXNlIGhvdmVycyB0aGUgdG9vbHRpcCwgaXQgc3RheXMgb3Blbi5cbiAgICAvLyBPbiAnbW91c2VsZWF2ZScgKGlmIHRoZSBtb3VzZSBpcyBub3QgbW92ZWQgb250byB0aGUgdHJpZ2dlciBhZ2FpbiksIGNsb3NlIGl0LlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykgJiZcbiAgICAgICAgICAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICAvLyBBbnkgdXNlciBpbnRlcmFjdGlvbiBvdXRzaWRlIHRoZSB0b29sdGlwIGNsb3NlcyBpdCBpbW1lZGlhdGVseVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3ZlcmxheU91dHNpZGVQb2ludGVyJywgKCkgPT4gdGhpcy5jbG9zZSgpLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIChlKSA9PiB0aGlzLl9vblRvb2x0aXBBbmltYXRpb25FbmQoZSksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpOiB2b2lkIHtcbiAgICB0aGlzLl90b29sdGlwT3V0bGV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fdG9vbHRpcE91dGxldC5jbGFzc0xpc3QuYWRkKCdzYmItb3ZlcmxheS1vdXRsZXQnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX3Rvb2x0aXBPdXRsZXQpO1xuXG4gICAgLy8gV2UgYXJlIHVzaW5nIE11dGF0aW9uT2JzZXJ2ZXIgZGlyZWN0bHkgaGVyZSwgYXMgaXQgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiBjbGllbnQgc2lkZSxcbiAgICAvLyBhbmQgd2UgZG8gbm90IG5lZWQgdG8gZGlzY29ubmVjdCBpdCwgYXMgd2Ugd2FudCBpdCB0byB3b3JrIGR1cmluZyB0aGUgZnVsbCBsaWZldGltZVxuICAgIC8vIG9mIHRoZSBwYWdlLlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdLmZpbHRlcihcbiAgICAgICAgICAgIChuKTogbiBpcyBIVE1MRWxlbWVudCA9PiBuLm5vZGVUeXBlID09PSBuLkVMRU1FTlRfTk9ERSxcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogW1xuICAgICAgICAnc2JiLXRvb2x0aXAnLFxuICAgICAgICAnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1wb3NpdGlvbicsXG4gICAgICBdLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMocm9vdDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByb290XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tzYmItdG9vbHRpcF0nKVxuICAgICAgLmZvckVhY2goKGUpID0+IHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVUb29sdGlwVHJpZ2dlcih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0b29sdGlwTWVzc2FnZSA9IHRyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAnKTtcbiAgICBsZXQgdG9vbHRpcCA9IHRvb2x0aXBUcmlnZ2Vycy5nZXQodHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKHRvb2x0aXBNZXNzYWdlICYmIHRyaWdnZXJFbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoIXRvb2x0aXApIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHNiYi10b29sdGlwIGluIHRoZSBvdXRsZXQgYW5kIGF0dGFjaCBpdCB0byB0aGUgdHJpZ2dlclxuICAgICAgICB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLXRvb2x0aXAnKTtcbiAgICAgICAgdG9vbHRpcFRyaWdnZXJzLnNldCh0cmlnZ2VyRWxlbWVudCwgdG9vbHRpcCk7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQuYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG4gICAgICAgIHRvb2x0aXAudHJpZ2dlciA9IHRyaWdnZXJFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdG9vbHRpcE1lc3NhZ2U7XG4gICAgICB0b29sdGlwLm9wZW5EZWxheSA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpXG4gICAgICAgID8gK3RyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG4gICAgICB0b29sdGlwLmNsb3NlRGVsYXkgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JylcbiAgICAgICAgPyArdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG5cbiAgICAgIC8vIFJlYWQgdGhlIHBvc2l0aW9ucyBmcm9tIHRoZSB0cmlnZ2VyIChlaXRoZXIgZnJvbSB0aGUgYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSlcbiAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtcG9zaXRpb24nKVxuICAgICAgICA/IHRyaWdnZXJFbGVtZW50XG4gICAgICAgICAgICAuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1wb3NpdGlvbicpIVxuICAgICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHAudHJpbSgpKVxuICAgICAgICA6ICh0cmlnZ2VyRWxlbWVudCBhcyB1bmtub3duIGFzIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zKS50b29sdGlwUG9zaXRpb25zO1xuXG4gICAgICBpZiAocG9zaXRpb25zICYmIHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYScsIHBvc2l0aW9uc1swXSk7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycsXG4gICAgICAgICAgcG9zaXRpb25zLnNsaWNlKDEpLmpvaW4oJywgJyksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b29sdGlwLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKTtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0b29sdGlwKSB7XG4gICAgICAvLyBUaGUgdHJpZ2dlciBvciB0aGUgYXR0cmlidXRlIGhhcyBiZWVuIGRlbGV0ZWQgPT4gZGVsZXRlIHRoZSBjb25uZWN0ZWQgdG9vbHRpcFxuICAgICAgdG9vbHRpcFRyaWdnZXJzLmRlbGV0ZSh0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBJZiBhIGNvbnN1bWVyIG92ZXJyaWRlcyB0aGUgYHNiYi10b29sdGlwYCwgdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCBub3QgYmVcbiAgICAgIC8vIGV4ZWN1dGVkIGFzIHdlIGNhbid0IGV4cGVjdCB0aGF0IHByaXZhdGUgbWV0aG9kcyBhcmUgbW9ja2VkLlxuICAgICAgdG9vbHRpcC5fZGVzdHJveT8uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHNiYk92ZXJsYXlPdXRzaWRlUG9pbnRlckV2ZW50TGlzdGVuZXIuY29ubmVjdCh0aGlzKTtcblxuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmRpc2Nvbm5lY3QodGhpcyk7XG4gICAgdGhpcy5fZGV0YWNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgIXRoaXMudHJpZ2dlciB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCh0aGlzLnRyaWdnZXIpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZE9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZENsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVG9vbHRpcEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2godHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAvLyBFdmVudHVhbGx5IGRldGFjaCBmcm9tIHRoZSBvbGQgdHJpZ2dlclxuICAgICAgdGhpcy5fZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIC8vIGNsZWFyIHRpbWVvdXRzXG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSByZW1vdmVBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmICghaXNNb2JpbGUpIHtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuXG4gICAgICAvLyAnYmx1cnMnIGltbWVkaWF0ZWx5IGNsb3NlIHRoZSB0b29sdGlwIGJlY2F1c2UgaXQgaXMgY29uc2lkZXJlZCBhbiAnaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBlbGVtZW50cydcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuY2xvc2UoKSwgb3B0aW9ucyk7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5fZGVsYXllZE9wZW4oKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gTG9uZy1wcmVzcyBldmVudCBoYW5kbGluZyAobWFpbmx5IGZvciBtb2JpbGUgdXNlcnMpXG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoc3RhcnQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCBMT05HUFJFU1NfREVMQVkpO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAndG91Y2hlbmQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICB0aGlzLl9sb25nUHJlc3NDbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5sb25nUHJlc3NDbG9zZURlbGF5KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoY2FuY2VsJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10b29sdGlwXCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10b29sdGlwJzogU2JiVG9vbHRpcEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDd0NBLElBQU0sa0JBQWtCO0FBRXhCLElBQU0sV0FBVyxhQUFhO0FBQzlCLElBQU0sa0NBQWtCLElBQUksU0FBeUM7Ozs7Ozs7Ozs7OztJQWF4RCwyQkFBaUI7bUJBQVMsaUJBQWlCLHdCQUF3Qjs7Ozs7Ozs7Y0FBbkUsMEJBQTBCLFlBQXlDOzs7MEJBb0I3RSxhQUFhLEVBQ2IsVUFBVSxDQUFBO2dDQVNWLFNBQVM7SUFBRSxXQUFXO0lBQWMsTUFBTTtJQUFRLENBQUMsQ0FBQTtpQ0FlbkQsU0FBUztJQUFFLFdBQVc7SUFBZSxNQUFNO0lBQVEsQ0FBQyxDQUFBOzBDQWVwRCxTQUFTO0lBQUUsV0FBVztJQUEwQixNQUFNO0lBQVEsQ0FBQyxDQUFBO0FBdENoRSxnQkFBQSxNQUFBLE1BQUEscUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFB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
369
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtRDh6aWszcDQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzLCBhbGwpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItdG9vbHRpcC16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb24pO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZWFzaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdG9vbHRpcC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBSZXNldCBbcG9wb3Zlcl0gc3R5bGVzXG4gIGJvcmRlcjogbm9uZTtcbiAgaW5zZXQ6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tbmFtZTogb3BlbjtcblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWU6IGNsb3NlO1xuICAtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG46aG9zdCg6aXMoW2RhdGEtcG9zaXRpb25+PSdibG9jay1lbmQnXSwgW2RhdGEtcG9zaXRpb25+PSdib3R0b20nXSwgW2RhdGEtcG9zaXRpb25ePSdlbmQnXSkpIHtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoOmlzKFtkYXRhLXBvc2l0aW9ufj0nYmxvY2stc3RhcnQnXSwgW2RhdGEtcG9zaXRpb25+PSd0b3AnXSwgW2RhdGEtcG9zaXRpb25ePSdzdGFydCddKSkge1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoXG4gIDppcyhcbiAgICBbZGF0YS1wb3NpdGlvbn49J2lubGluZS1zdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0naW5saW5lLWVuZCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0nbGVmdCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0ncmlnaHQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbiQ9JyBzdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9uJD0nIGVuZCddXG4gIClcbikge1xuICAvLyBBZGQgYSBnYXAgb24gYm90aCBzaWRlcyB0byBkaXN0YW5jZSB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0cmlnZ2VyIGFuZCB0aGUgZWRnZSBvZiB0aGUgdmlld3BvcnQuXG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG4uc2JiLXRvb2x0aXAge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItdG9vbHRpcC1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10b29sdGlwLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvb2x0aXAtbWluLXdpZHRoKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1zYmItdG9vbHRpcC1tYXgtd2lkdGgpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLXRyYW5zbGF0ZSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tdHJhbnNsYXRlKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgaWRSZWZlcmVuY2UsXG4gIGlzQW5kcm9pZCxcbiAgaXNJT1MsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBxdWV1ZURvbUNvbnRlbnRMb2FkZWQsXG4gIHJlYWRDb25maWcsXG4gIHJlbW92ZUFyaWFFbGVtZW50cyxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLFxuICBTYmJPdmVybGF5UG9zaXRpb25Db250cm9sbGVyLFxufSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdG9vbHRpcC5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgdGhlIHRvb2x0aXAgaWYgdGhpcyBlbGVtZW50IGlzIHVzZWQgYXMgYSB0cmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zIHtcbiAgcmVhZG9ubHkgdG9vbHRpcFBvc2l0aW9uczogc3RyaW5nW107XG59XG5cbi8qKlxuICogVGltZSBiZXR3ZWVuIHRoZSB1c2VyIHB1dHRpbmcgdGhlIHBvaW50ZXIgb24gYSB0b29sdGlwXG4gKiB0cmlnZ2VyIGFuZCB0aGUgbG9uZyBwcmVzcyBldmVudCBiZWluZyBmaXJlZC5cbiAqL1xuY29uc3QgTE9OR1BSRVNTX0RFTEFZID0gNTAwO1xuXG5jb25zdCBpc01vYmlsZSA9IGlzQW5kcm9pZCB8fCBpc0lPUztcbmNvbnN0IHRvb2x0aXBUcmlnZ2VycyA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBTYmJUb29sdGlwRWxlbWVudD4oKTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyB0ZXh0IGNvbnRlbnQgd2l0aGluIGEgdG9vbHRpcC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCB0aGUgdGV4dCBpbnRvIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYT1ibG9jay1lbmRdIC0gVGhlIHByaW1hcnkgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcz1ibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kLCBibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQsIGJsb2NrLXN0YXJ0LCBibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQsIGJsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0XSAtXG4gKiBUaGUgbGlzdCBvZiBmYWxsYmFjayBwb3NpdGlvbnMsIHNlcGFyYXRlZCBieSAnLCcsIGZvciB0aGUgdG9vbHRpcFxuICogQGNzc3Byb3AgWy0tc2JiLXRvb2x0aXAtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVG9vbHRpcEVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9vbHRpcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0b29sdGlwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgc3RhdGljIF90b29sdGlwT3V0bGV0OiBFbGVtZW50O1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHRvb2x0aXAgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogT3BlbiB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdvcGVuLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgb3BlbkRlbGF5KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBvcGVuRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkRlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5vcGVuRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9vcGVuRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBjbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBpdCBoYXMgYmVlbiBvcGVuIGJ5IGxvbmcgcHJlc3MuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMTUwMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbG9uZy1wcmVzcy1jbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGxvbmdQcmVzc0Nsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBsb25nUHJlc3NDbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmxvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gMTUwMDtcbiAgfVxuICBwcml2YXRlIF9sb25nUHJlc3NDbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuU3RhdGVDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc09wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc0Nsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gVW50aWwgdGhlIG1vdXNlIGhvdmVycyB0aGUgdG9vbHRpcCwgaXQgc3RheXMgb3Blbi5cbiAgICAvLyBPbiAnbW91c2VsZWF2ZScgKGlmIHRoZSBtb3VzZSBpcyBub3QgbW92ZWQgb250byB0aGUgdHJpZ2dlciBhZ2FpbiksIGNsb3NlIGl0LlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykgJiZcbiAgICAgICAgICAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICAvLyBBbnkgdXNlciBpbnRlcmFjdGlvbiBvdXRzaWRlIHRoZSB0b29sdGlwIGNsb3NlcyBpdCBpbW1lZGlhdGVseVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3ZlcmxheU91dHNpZGVQb2ludGVyJywgKCkgPT4gdGhpcy5jbG9zZSgpLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIChlKSA9PiB0aGlzLl9vblRvb2x0aXBBbmltYXRpb25FbmQoZSksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpOiB2b2lkIHtcbiAgICB0aGlzLl90b29sdGlwT3V0bGV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fdG9vbHRpcE91dGxldC5jbGFzc0xpc3QuYWRkKCdzYmItb3ZlcmxheS1vdXRsZXQnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX3Rvb2x0aXBPdXRsZXQpO1xuXG4gICAgLy8gV2UgYXJlIHVzaW5nIE11dGF0aW9uT2JzZXJ2ZXIgZGlyZWN0bHkgaGVyZSwgYXMgaXQgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiBjbGllbnQgc2lkZSxcbiAgICAvLyBhbmQgd2UgZG8gbm90IG5lZWQgdG8gZGlzY29ubmVjdCBpdCwgYXMgd2Ugd2FudCBpdCB0byB3b3JrIGR1cmluZyB0aGUgZnVsbCBsaWZldGltZVxuICAgIC8vIG9mIHRoZSBwYWdlLlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdLmZpbHRlcihcbiAgICAgICAgICAgIChuKTogbiBpcyBIVE1MRWxlbWVudCA9PiBuLm5vZGVUeXBlID09PSBuLkVMRU1FTlRfTk9ERSxcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogW1xuICAgICAgICAnc2JiLXRvb2x0aXAnLFxuICAgICAgICAnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1wb3NpdGlvbicsXG4gICAgICBdLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMocm9vdDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByb290XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tzYmItdG9vbHRpcF0nKVxuICAgICAgLmZvckVhY2goKGUpID0+IHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVUb29sdGlwVHJpZ2dlcih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0b29sdGlwTWVzc2FnZSA9IHRyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAnKTtcbiAgICBsZXQgdG9vbHRpcCA9IHRvb2x0aXBUcmlnZ2Vycy5nZXQodHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKHRvb2x0aXBNZXNzYWdlICYmIHRyaWdnZXJFbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoIXRvb2x0aXApIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHNiYi10b29sdGlwIGluIHRoZSBvdXRsZXQgYW5kIGF0dGFjaCBpdCB0byB0aGUgdHJpZ2dlclxuICAgICAgICB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLXRvb2x0aXAnKTtcbiAgICAgICAgdG9vbHRpcFRyaWdnZXJzLnNldCh0cmlnZ2VyRWxlbWVudCwgdG9vbHRpcCk7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQuYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG4gICAgICAgIHRvb2x0aXAudHJpZ2dlciA9IHRyaWdnZXJFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdG9vbHRpcE1lc3NhZ2U7XG4gICAgICB0b29sdGlwLm9wZW5EZWxheSA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpXG4gICAgICAgID8gK3RyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG4gICAgICB0b29sdGlwLmNsb3NlRGVsYXkgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JylcbiAgICAgICAgPyArdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG5cbiAgICAgIC8vIFJlYWQgdGhlIHBvc2l0aW9ucyBmcm9tIHRoZSB0cmlnZ2VyIChlaXRoZXIgZnJvbSB0aGUgYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSlcbiAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtcG9zaXRpb24nKVxuICAgICAgICA/IHRyaWdnZXJFbGVtZW50XG4gICAgICAgICAgICAuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1wb3NpdGlvbicpIVxuICAgICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHAudHJpbSgpKVxuICAgICAgICA6ICh0cmlnZ2VyRWxlbWVudCBhcyB1bmtub3duIGFzIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zKS50b29sdGlwUG9zaXRpb25zO1xuXG4gICAgICBpZiAocG9zaXRpb25zICYmIHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYScsIHBvc2l0aW9uc1swXSk7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycsXG4gICAgICAgICAgcG9zaXRpb25zLnNsaWNlKDEpLmpvaW4oJywgJyksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b29sdGlwLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKTtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0b29sdGlwKSB7XG4gICAgICAvLyBUaGUgdHJpZ2dlciBvciB0aGUgYXR0cmlidXRlIGhhcyBiZWVuIGRlbGV0ZWQgPT4gZGVsZXRlIHRoZSBjb25uZWN0ZWQgdG9vbHRpcFxuICAgICAgdG9vbHRpcFRyaWdnZXJzLmRlbGV0ZSh0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBJZiBhIGNvbnN1bWVyIG92ZXJyaWRlcyB0aGUgYHNiYi10b29sdGlwYCwgdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCBub3QgYmVcbiAgICAgIC8vIGV4ZWN1dGVkIGFzIHdlIGNhbid0IGV4cGVjdCB0aGF0IHByaXZhdGUgbWV0aG9kcyBhcmUgbW9ja2VkLlxuICAgICAgdG9vbHRpcC5fZGVzdHJveT8uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHNiYk92ZXJsYXlPdXRzaWRlUG9pbnRlckV2ZW50TGlzdGVuZXIuY29ubmVjdCh0aGlzKTtcblxuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmRpc2Nvbm5lY3QodGhpcyk7XG4gICAgdGhpcy5fZGV0YWNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgIXRoaXMudHJpZ2dlciB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCh0aGlzLnRyaWdnZXIpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZE9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZENsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVG9vbHRpcEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2godHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAvLyBFdmVudHVhbGx5IGRldGFjaCBmcm9tIHRoZSBvbGQgdHJpZ2dlclxuICAgICAgdGhpcy5fZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIC8vIGNsZWFyIHRpbWVvdXRzXG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSByZW1vdmVBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmICghaXNNb2JpbGUpIHtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuXG4gICAgICAvLyAnYmx1cnMnIGltbWVkaWF0ZWx5IGNsb3NlIHRoZSB0b29sdGlwIGJlY2F1c2UgaXQgaXMgY29uc2lkZXJlZCBhbiAnaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBlbGVtZW50cydcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuY2xvc2UoKSwgb3B0aW9ucyk7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5fZGVsYXllZE9wZW4oKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gTG9uZy1wcmVzcyBldmVudCBoYW5kbGluZyAobWFpbmx5IGZvciBtb2JpbGUgdXNlcnMpXG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoc3RhcnQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCBMT05HUFJFU1NfREVMQVkpO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAndG91Y2hlbmQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICB0aGlzLl9sb25nUHJlc3NDbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5sb25nUHJlc3NDbG9zZURlbGF5KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoY2FuY2VsJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10b29sdGlwXCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10b29sdGlwJzogU2JiVG9vbHRpcEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDd0NBLElBQU0sa0JBQWtCO0FBRXhCLElBQU0sV0FBVyxhQUFhO0FBQzlCLElBQU0sa0NBQWtCLElBQUksU0FBeUM7Ozs7Ozs7Ozs7OztJQWF4RCwyQkFBaUI7bUJBQVMsaUJBQWlCLHdCQUF3Qjs7Ozs7Ozs7Y0FBbkUsMEJBQTBCLFlBQXlDOzs7MEJBb0I3RSxhQUFhLEVBQ2IsVUFBVSxDQUFBO2dDQVNWLFNBQVM7SUFBRSxXQUFXO0lBQWMsTUFBTTtJQUFRLENBQUMsQ0FBQTtpQ0FlbkQsU0FBUztJQUFFLFdBQVc7SUFBZSxNQUFNO0lBQVEsQ0FBQyxDQUFBOzBDQWVwRCxTQUFTO0lBQUUsV0FBVztJQUEwQixNQUFNO0lBQVEsQ0FBQyxDQUFBO0dBdENoRSxhQUFBLE1BQUEsTUFBQSxxQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEs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
@@ -1,4 +1,4 @@
1
- import { t as SbbTooltipElement } from "./tooltip.component-BjOgv29e.js";
1
+ import { t as SbbTooltipElement } from "./tooltip.component-D8zik3p4.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-BjOgv29e.js";
1
+ import { t as SbbTooltipElement } from "./tooltip.component-D8zik3p4.js";
2
2
  export { SbbTooltipElement };
@@ -1,6 +1,5 @@
1
1
  import { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
2
- import { SbbElement, SbbElementType, WithListChildren } from '../../core.ts';
3
- import { SbbTitleLevel } from '../../title.pure.ts';
2
+ import { SbbElement, SbbElementType, SbbHeadingLevel, WithListChildren } from '../../core.ts';
4
3
  import { SbbTrainBlockedPassageElement } from '../train-blocked-passage/train-blocked-passage.component.ts';
5
4
  import { SbbTrainWagonMixinType } from '../train-wagon-common.ts';
6
5
  declare const SbbTrainElement_base: import('../../core.ts').AbstractConstructor<import('../train-formation-orientation-mixin.ts').SbbTrainFormationOrientationMixinType> & import('../../core.ts').AbstractConstructor<import('../../core.ts').SbbNamedSlotListMixinType<SbbTrainBlockedPassageElement | SbbTrainWagonMixinType>> & typeof SbbElement;
@@ -17,7 +16,7 @@ export declare class SbbTrainElement extends SbbTrainElement_base {
17
16
  /** General label for "driving direction". */
18
17
  accessor directionLabel: string;
19
18
  /** Heading level of the direction label, used for screen readers. */
20
- accessor directionLabelLevel: SbbTitleLevel;
19
+ accessor directionLabelLevel: SbbHeadingLevel;
21
20
  /** Label for the destination station of the train. */
22
21
  accessor station: string;
23
22
  /** Accessibility label for additional information regarding the leaving direction of the train. */
@@ -1 +1 @@
1
- {"version":3,"file":"train.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/train/train/train.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EAML,UAAU,EACV,KAAK,cAAc,EAGnB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6DAA6D,CAAC;AAEjH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;;AAIvE;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,oBAIpC;IACC,gBAAgC,WAAW,EAAE,MAAM,CAAe;IAClE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAAoB;IAChF,OAAuB,MAAM,EAAE,cAAc,CAAsB;IAEnE,mBAA4B,mBAAmB,WAK7C;IAEF,6CAA6C;IAC7C,SAQgB,cAAc,EAAE,MAAM,CAAM;IAE5C,qEAAqE;IACrE,SACgB,mBAAmB,EAAE,aAAa,CAAO;IAEzD,sDAAsD;IACtD,SAEgB,OAAO,EAAE,MAAM,CAAM;IAErC,mGAAmG;IACnG,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,0FAA0F;IAC1F,SAA6C,SAAS,EAAE,MAAM,GAAG,OAAO,CAAU;IAElF,OAAO,CAAC,SAAS,CAAmC;IAEpD;;OAEG;IACH,OAAO,CAAC,sBAAsB;cAcX,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;cAS3E,MAAM,IAAI,cAAc;CA0B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"train.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/train/train/train.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EAML,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,eAAe,EAGpB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6DAA6D,CAAC;AAEjH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;;AAIvE;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,oBAIpC;IACC,gBAAgC,WAAW,EAAE,MAAM,CAAe;IAClE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAAoB;IAChF,OAAuB,MAAM,EAAE,cAAc,CAAsB;IAEnE,mBAA4B,mBAAmB,WAK7C;IAEF,6CAA6C;IAC7C,SAQgB,cAAc,EAAE,MAAM,CAAM;IAE5C,qEAAqE;IACrE,SACgB,mBAAmB,EAAE,eAAe,CAAO;IAE3D,sDAAsD;IACtD,SAEgB,OAAO,EAAE,MAAM,CAAM;IAErC,mGAAmG;IACnG,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,0FAA0F;IAC1F,SAA6C,SAAS,EAAE,MAAM,GAAG,OAAO,CAAU;IAElF,OAAO,CAAC,SAAS,CAAmC;IAEpD;;OAEG;IACH,OAAO,CAAC,sBAAsB;cAcX,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;cAS3E,MAAM,IAAI,cAAc;CA0B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbTrainElement } from "../../train.component-BDG8SlCc.js";
1
+ import { t as SbbTrainElement } from "../../train.component-dECIGw2x.js";
2
2
  export { SbbTrainElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbTrainBlockedPassageElement } from "../../train-blocked-passage.component-2TuSqbDg.js";
1
+ import { t as SbbTrainBlockedPassageElement } from "../../train-blocked-passage.component-Cxd7dBDC.js";
2
2
  export { SbbTrainBlockedPassageElement };
@@ -1,5 +1,5 @@
1
1
  import { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
2
- import { SbbElement, SbbOrientation, WithListChildren } from '../../core.ts';
2
+ import { SbbElement, WithListChildren } from '../../core.ts';
3
3
  import { SbbTrainElement } from '../train/train.component.ts';
4
4
  declare const SbbTrainFormationElement_base: import('../../core.ts').AbstractConstructor<import('../../core.ts').SbbNamedSlotListMixinType<SbbTrainElement>> & typeof SbbElement;
5
5
  /**
@@ -15,7 +15,7 @@ export declare class SbbTrainFormationElement extends SbbTrainFormationElement_b
15
15
  /** Whether the view of the wagons is from side or top perspective. */
16
16
  accessor view: 'side' | 'top';
17
17
  /** Orientation, either horizontal or vertical. */
18
- accessor orientation: SbbOrientation;
18
+ accessor orientation: 'horizontal' | 'vertical';
19
19
  private accessor _sectors;
20
20
  private _language;
21
21
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"train-formation.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/train/train-formation/train-formation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EAKL,UAAU,EAGV,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;;AAYnE;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,6BAGjC;IACX,gBAAgC,WAAW,EAAE,MAAM,CAAyB;IAC5E,OAAuB,MAAM,EAAE,cAAc,CAA2C;IACxF,mBAA4B,mBAAmB,WAAiB;IAEhE,sEAAsE;IACtE,SAA6C,IAAI,EAAE,MAAM,GAAG,KAAK,CAAU;IAE3E,kDAAkD;IAClD,SAA6C,WAAW,EAAE,cAAc,CAAgB;IAE/E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAE5D,OAAO,CAAC,SAAS,CAAmC;;IAYpC,iBAAiB,IAAI,IAAI;IAUzC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,YAAY;cA+CD,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;cAS3E,MAAM,IAAI,cAAc;CAkC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,qBAAqB,EAAE,wBAAwB,CAAC;KACjD;CACF"}
1
+ {"version":3,"file":"train-formation.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/train/train-formation/train-formation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EAKL,UAAU,EAGV,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;;AAYnE;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,6BAGjC;IACX,gBAAgC,WAAW,EAAE,MAAM,CAAyB;IAC5E,OAAuB,MAAM,EAAE,cAAc,CAA2C;IACxF,mBAA4B,mBAAmB,WAAiB;IAEhE,sEAAsE;IACtE,SAA6C,IAAI,EAAE,MAAM,GAAG,KAAK,CAAU;IAE3E,kDAAkD;IAClD,SAA6C,WAAW,EAAE,YAAY,GAAG,UAAU,CACpE;IAEN,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAE5D,OAAO,CAAC,SAAS,CAAmC;;IAYpC,iBAAiB,IAAI,IAAI;IAUzC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,YAAY;cA+CD,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;cAS3E,MAAM,IAAI,cAAc;CAkC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,qBAAqB,EAAE,wBAAwB,CAAC;KACjD;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbTrainFormationElement } from "../../train-formation.component-BYB03zX5.js";
1
+ import { t as SbbTrainFormationElement } from "../../train-formation.component-BEg6OPib.js";
2
2
  export { SbbTrainFormationElement };
@@ -1,8 +1,7 @@
1
1
  import { SbbElement } from '../core/base-elements/element.ts';
2
2
  import { AbstractConstructor } from '../core/mixins/constructor.ts';
3
- import { SbbOrientation } from '../core.ts';
4
3
  export declare class SbbTrainFormationOrientationMixinType {
5
- protected readonly orientation: SbbOrientation | null;
4
+ protected readonly orientation: 'horizontal' | 'vertical' | null;
6
5
  }
7
6
  /**
8
7
  * Mixin that reads the `orientation` property from the closest `sbb-train-formation`
@@ -1 +1 @@
1
- {"version":3,"file":"train-formation-orientation-mixin.d.ts","sourceRoot":"","sources":["../../../../src/elements/train/train-formation-orientation-mixin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,KAAK,cAAc,EAAgC,MAAM,YAAY,CAAC;AAI/E,MAAM,CAAC,OAAO,OAAO,qCAAqC;IACxD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;CACvD;AAED;;;GAGG;AAEH,eAAO,MAAM,iCAAiC,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EACzF,YAAY,CAAC,KACZ,mBAAmB,CAAC,qCAAqC,CAAC,GAAG,CA2B/D,CAAC"}
1
+ {"version":3,"file":"train-formation-orientation-mixin.d.ts","sourceRoot":"","sources":["../../../../src/elements/train/train-formation-orientation-mixin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,MAAM,CAAC,OAAO,OAAO,qCAAqC;IACxD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,UAAU,GAAG,IAAI,CAAC;CAClE;AAED;;;GAGG;AAEH,eAAO,MAAM,iCAAiC,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EACzF,YAAY,CAAC,KACZ,mBAAmB,CAAC,qCAAqC,CAAC,GAAG,CA4B/D,CAAC"}
@@ -59,4 +59,4 @@ var SbbTrainFormationOrientationMixin = (superClass) => {
59
59
  //#endregion
60
60
  export { SbbTrainFormationOrientationMixin };
61
61
 
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLW9yaWVudGF0aW9uLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24tb3JpZW50YXRpb24tbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2NvcmUvbWl4aW5zL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IHR5cGUgU2JiT3JpZW50YXRpb24sIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQgfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi90cmFpbi1mb3JtYXRpb24uY29tcG9uZW50LnRzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gfCBudWxsO1xufVxuXG4vKipcbiAqIE1peGluIHRoYXQgcmVhZHMgdGhlIGBvcmllbnRhdGlvbmAgcHJvcGVydHkgZnJvbSB0aGUgY2xvc2VzdCBgc2JiLXRyYWluLWZvcm1hdGlvbmBcbiAqIGFuZCByZWZsZWN0cyBpdCBhcyBhIENTUyBjdXN0b20gc3RhdGUgKGBvcmllbnRhdGlvbi1ob3Jpem9udGFsYCAvIGBvcmllbnRhdGlvbi12ZXJ0aWNhbGApLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbkVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZT5cbiAge1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLXRyYWluLWZvcm1hdGlvbicpLCB7XG4gICAgICAgICAgb3JpZW50YXRpb246ICh0OiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYG9yaWVudGF0aW9uLSR7dGhpcy5vcmllbnRhdGlvbn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPSB0Lm9yaWVudGF0aW9uO1xuICAgICAgICAgICAgaWYgKHRoaXMub3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgb3JpZW50YXRpb24tJHt0aGlzLm9yaWVudGF0aW9ufWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFpQkEsSUFBYSxxQ0FDWCxlQUNrRTtBQXlCbEUsZUF4QmtEO29CQUN4Qzs7OztlQURLLDRDQUNMLFlBQVU7OzsrQkFHakIsT0FBTyxDQUFBO0FBQUMsaUJBQUEsTUFBQSxNQUFBLHlCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsaUJBQUE7TUFBQSxNQUFBLFFBQUEsSUFBbUI7TUFBVyxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQVgsY0FBVzs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLDJCQUFBLCtCQUFBOzs7Ozs7OztHQUE5QixnQ0FBQSxrQkFBQSxNQUFBLDJCQUF3RCxLQUFJO0dBQTVELElBQW1CLGNBQVc7QUFBQSxXQUFBLE1BQUE7O0dBQTlCLElBQW1CLFlBQVcsT0FBQTtBQUFBLFVBQUEsK0JBQUE7O0dBRXZDLFlBQXNCLEdBQUcsTUFBVztBQUNsQyxVQUFNLEdBQUcsS0FBSzs7QUFDZCxTQUFLLGNBQ0gsSUFBSSw2QkFBNkIsWUFBWSxLQUFLLFFBQVEsc0JBQXNCLEVBQUUsRUFDaEYsY0FBYyxNQUErQjtBQUMzQyxTQUFJLEtBQUssWUFDUCxNQUFLLFVBQVUsT0FBTyxPQUFPLGVBQWUsS0FBSyxjQUFjO0FBRWpFLFVBQUssY0FBYyxFQUFFO0FBQ3JCLFNBQUksS0FBSyxZQUNQLE1BQUssVUFBVSxPQUFPLElBQUksZUFBZSxLQUFLLGNBQWM7T0FHakUsQ0FBQyxDQUNIOzs7S0FJRSJ9
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLW9yaWVudGF0aW9uLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24tb3JpZW50YXRpb24tbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2NvcmUvbWl4aW5zL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQgfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi90cmFpbi1mb3JtYXRpb24uY29tcG9uZW50LnRzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyB8IG51bGw7XG59XG5cbi8qKlxuICogTWl4aW4gdGhhdCByZWFkcyB0aGUgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eSBmcm9tIHRoZSBjbG9zZXN0IGBzYmItdHJhaW4tZm9ybWF0aW9uYFxuICogYW5kIHJlZmxlY3RzIGl0IGFzIGEgQ1NTIGN1c3RvbSBzdGF0ZSAoYG9yaWVudGF0aW9uLWhvcml6b250YWxgIC8gYG9yaWVudGF0aW9uLXZlcnRpY2FsYCkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlPlxuICB7XG4gICAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIG9yaWVudGF0aW9uOiBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlWydvcmllbnRhdGlvbiddID1cbiAgICAgIG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi10cmFpbi1mb3JtYXRpb24nKSwge1xuICAgICAgICAgIG9yaWVudGF0aW9uOiAodDogU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBvcmllbnRhdGlvbi0ke3RoaXMub3JpZW50YXRpb259YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID0gdC5vcmllbnRhdGlvbjtcbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYG9yaWVudGF0aW9uLSR7dGhpcy5vcmllbnRhdGlvbn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBaUJBLElBQWEscUNBQ1gsZUFDa0U7Q0EwQmxFLGNBekJrRDtvQkFDeEM7Ozs7ZUFESyw0Q0FDTCxZQUFVOzs7K0JBR2pCLE9BQU8sQ0FBQTtJQUFDLGFBQUEsTUFBQSxNQUFBLHlCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsaUJBQUE7TUFBQSxNQUFBLFFBQUEsSUFBbUI7TUFBVyxNQUFBLEtBQUEsVUFBQTtPQUFBLElBQVgsY0FBVzs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLDJCQUFBLCtCQUFBOzs7Ozs7OztHQUE5QixnQ0FBQSxrQkFBQSxNQUFBLDJCQUNQLEtBQUk7R0FERyxJQUFtQixjQUFXO0lBQUEsT0FBQSxLQUFBOztHQUE5QixJQUFtQixZQUFXLE9BQUE7SUFBQSxLQUFBLGdDQUFBOztHQUd2QyxZQUFzQixHQUFHLE1BQVc7SUFDbEMsTUFBTSxHQUFHLEtBQUs7O0lBQ2QsS0FBSyxjQUNILElBQUksNkJBQTZCLFlBQVksS0FBSyxRQUFRLHNCQUFzQixFQUFFLEVBQ2hGLGNBQWMsTUFBK0I7S0FDM0MsSUFBSSxLQUFLLGFBQ1AsS0FBSyxVQUFVLE9BQU8sT0FBTyxlQUFlLEtBQUssY0FBYztLQUVqRSxLQUFLLGNBQWMsRUFBRTtLQUNyQixJQUFJLEtBQUssYUFDUCxLQUFLLFVBQVUsT0FBTyxJQUFJLGVBQWUsS0FBSyxjQUFjO09BR2pFLENBQUMsQ0FDSDs7O0tBSUUifQ==
@@ -17,4 +17,4 @@ var SbbTrainWagonElement = class extends SbbTrainWagonMixin(SbbElement) {
17
17
  //#endregion
18
18
  export { SbbTrainWagonElement };
19
19
 
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24uY29tcG9uZW50LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgb25lIG9yIG1vcmUgYHNiYi1pY29uYCBmb3IgbWV0YS1pbmZvcm1hdGlvbiBvZiB0aGUgd2Fnb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbldhZ29uRWxlbWVudCBleHRlbmRzIFNiYlRyYWluV2Fnb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24nO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlclRlbXBsYXRlKCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbic6IFNiYlRyYWluV2Fnb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBVUEsSUFBYSx1QkFBYixjQUEwQyxtQkFBbUIsV0FBVyxDQUFBOztBQUN0QyxPQUFBLGNBQXNCOztDQUV0QyxTQUFNO0FBQ3BCLFNBQU8sS0FBSyxnQkFBZ0IifQ==
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24uY29tcG9uZW50LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgb25lIG9yIG1vcmUgYHNiYi1pY29uYCBmb3IgbWV0YS1pbmZvcm1hdGlvbiBvZiB0aGUgd2Fnb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbldhZ29uRWxlbWVudCBleHRlbmRzIFNiYlRyYWluV2Fnb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24nO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlclRlbXBsYXRlKCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbic6IFNiYlRyYWluV2Fnb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBVUEsSUFBYSx1QkFBYixjQUEwQyxtQkFBbUIsV0FBVyxDQUFBOztFQUN0QyxLQUFBLGNBQXNCOztDQUV0QyxTQUFNO0VBQ3BCLE9BQU8sS0FBSyxnQkFBZ0IifQ==
@@ -15,4 +15,4 @@ var SbbTrainWagonButtonElement = class extends SbbTrainWagonMixin(SbbButtonBaseE
15
15
  //#endregion
16
16
  export { SbbTrainWagonButtonElement };
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tYnV0dG9uL3RyYWluLXdhZ29uLWJ1dHRvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQgYW5kIGJlaGF2ZXMgbGlrZSBhIGJ1dHRvbi5cbiAqIEl0IGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHRyYWluIGNvbXBhcnRtZW50IGFzIHdlbGwgYXMgdG8gdHJpZ2dlciBhbiBhY3Rpb24sIGUuZy4sIHRvIHNob3cgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSB0cmFpbiBjb21wYXJ0bWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBvbmUgb3IgbW9yZSBgc2JiLWljb25gIGZvciBtZXRhLWluZm9ybWF0aW9uIG9mIHRoZSB3YWdvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRyYWluV2Fnb25CdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24tYnV0dG9uJztcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbi1idXR0b24nOiBTYmJUcmFpbldhZ29uQnV0dG9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxJQUFhLDZCQUFiLGNBQWdELG1CQUFtQixxQkFBcUIsQ0FBQTs7QUFDdEQsT0FBQSxjQUFzQiJ9
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tYnV0dG9uL3RyYWluLXdhZ29uLWJ1dHRvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQgYW5kIGJlaGF2ZXMgbGlrZSBhIGJ1dHRvbi5cbiAqIEl0IGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHRyYWluIGNvbXBhcnRtZW50IGFzIHdlbGwgYXMgdG8gdHJpZ2dlciBhbiBhY3Rpb24sIGUuZy4sIHRvIHNob3cgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSB0cmFpbiBjb21wYXJ0bWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBvbmUgb3IgbW9yZSBgc2JiLWljb25gIGZvciBtZXRhLWluZm9ybWF0aW9uIG9mIHRoZSB3YWdvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRyYWluV2Fnb25CdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24tYnV0dG9uJztcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbi1idXR0b24nOiBTYmJUcmFpbldhZ29uQnV0dG9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxJQUFhLDZCQUFiLGNBQWdELG1CQUFtQixxQkFBcUIsQ0FBQTs7RUFDdEQsS0FBQSxjQUFzQiJ9