@sbb-esta/lyne-elements 1.13.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (887) hide show
  1. package/accordion/accordion.d.ts +4 -8
  2. package/accordion/accordion.d.ts.map +1 -1
  3. package/accordion.js +90 -81
  4. package/action-group/action-group.d.ts +5 -5
  5. package/action-group/action-group.d.ts.map +1 -1
  6. package/action-group.js +100 -50
  7. package/alert/alert/alert.d.ts +11 -11
  8. package/alert/alert/alert.d.ts.map +1 -1
  9. package/alert/alert-group/alert-group.d.ts +4 -4
  10. package/alert/alert-group/alert-group.d.ts.map +1 -1
  11. package/alert/alert-group.js +101 -69
  12. package/alert/alert.js +191 -104
  13. package/autocomplete/autocomplete-base-element.d.ts +3 -7
  14. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  15. package/autocomplete/autocomplete.d.ts.map +1 -1
  16. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  17. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -0
  18. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  19. package/autocomplete-grid/autocomplete-grid-button.js +53 -60
  20. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -1
  21. package/autocomplete-grid/autocomplete-grid-cell.js +20 -22
  22. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  23. package/autocomplete-grid/autocomplete-grid-optgroup.js +31 -35
  24. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  25. package/autocomplete-grid/autocomplete-grid-option.js +45 -63
  26. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -1
  27. package/autocomplete-grid/autocomplete-grid-row.js +23 -25
  28. package/autocomplete-grid/autocomplete-grid.js +112 -133
  29. package/autocomplete.js +283 -295
  30. package/breadcrumb/breadcrumb/breadcrumb.d.ts +1 -1
  31. package/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
  32. package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  33. package/breadcrumb/breadcrumb-group.js +107 -114
  34. package/breadcrumb/breadcrumb.js +44 -35
  35. package/button/button/button.d.ts.map +1 -1
  36. package/button/button-link/button-link.d.ts.map +1 -1
  37. package/button/button-link.js +15 -18
  38. package/button/button-static/button-static.d.ts.map +1 -1
  39. package/button/button-static.js +15 -18
  40. package/button/button.js +15 -18
  41. package/button/common/button-common.d.ts +4 -4
  42. package/button/common/button-common.d.ts.map +1 -1
  43. package/button/common.js +41 -30
  44. package/button/mini-button/mini-button-base-element.d.ts.map +1 -1
  45. package/button/mini-button/mini-button.d.ts.map +1 -1
  46. package/button/mini-button-group/mini-button-group.d.ts +2 -2
  47. package/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  48. package/button/mini-button-group.js +55 -43
  49. package/button/mini-button.js +30 -34
  50. package/button/secondary-button/secondary-button.d.ts.map +1 -1
  51. package/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
  52. package/button/secondary-button-link.js +15 -18
  53. package/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
  54. package/button/secondary-button-static.js +15 -18
  55. package/button/secondary-button.js +15 -18
  56. package/button/tertiary-button/tertiary-button.d.ts.map +1 -1
  57. package/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
  58. package/button/tertiary-button-link.js +15 -18
  59. package/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
  60. package/button/tertiary-button-static.js +15 -18
  61. package/button/tertiary-button.js +15 -18
  62. package/button/transparent-button/transparent-button.d.ts.map +1 -1
  63. package/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
  64. package/button/transparent-button-link.js +15 -18
  65. package/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
  66. package/button/transparent-button-static.js +15 -18
  67. package/button/transparent-button.js +15 -18
  68. package/calendar/calendar.d.ts +7 -7
  69. package/calendar/calendar.d.ts.map +1 -1
  70. package/calendar.js +638 -692
  71. package/card/card/card.d.ts +2 -2
  72. package/card/card/card.d.ts.map +1 -1
  73. package/card/card-badge/card-badge.d.ts +1 -1
  74. package/card/card-badge/card-badge.d.ts.map +1 -1
  75. package/card/card-badge.js +45 -34
  76. package/card/card-button/card-button.d.ts.map +1 -1
  77. package/card/card-button.js +16 -16
  78. package/card/card-link/card-link.d.ts.map +1 -1
  79. package/card/card-link.js +17 -17
  80. package/card/card.js +55 -36
  81. package/card/common/card-action-common.d.ts +1 -1
  82. package/card/common/card-action-common.d.ts.map +1 -1
  83. package/card/common.js +27 -33
  84. package/checkbox/checkbox/checkbox.d.ts +3 -4
  85. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  86. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
  87. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  88. package/checkbox/checkbox-group.js +99 -76
  89. package/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
  90. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  91. package/checkbox/checkbox-panel.js +51 -50
  92. package/checkbox/checkbox.js +54 -43
  93. package/checkbox/common/checkbox-common.d.ts +1 -1
  94. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  95. package/checkbox/common.js +39 -24
  96. package/chip/chip.d.ts +2 -2
  97. package/chip/chip.d.ts.map +1 -1
  98. package/chip.js +45 -26
  99. package/clock/clock.d.ts +1 -1
  100. package/clock/clock.d.ts.map +1 -1
  101. package/clock.js +136 -144
  102. package/container/container/container.d.ts +3 -3
  103. package/container/container/container.d.ts.map +1 -1
  104. package/container/container.js +60 -35
  105. package/container/sticky-bar/sticky-bar.d.ts +1 -1
  106. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  107. package/container/sticky-bar.js +55 -47
  108. package/core/a11y.js +29 -51
  109. package/core/base-elements/action-base-element.d.ts.map +1 -1
  110. package/core/base-elements/button-base-element.d.ts +2 -2
  111. package/core/base-elements/button-base-element.d.ts.map +1 -1
  112. package/core/base-elements/link-base-element.d.ts +5 -5
  113. package/core/base-elements/link-base-element.d.ts.map +1 -1
  114. package/core/base-elements.js +243 -196
  115. package/core/controllers.js +8 -13
  116. package/core/decorators/base.d.ts +14 -0
  117. package/core/decorators/base.d.ts.map +1 -0
  118. package/core/decorators/force-type.d.ts +8 -0
  119. package/core/decorators/force-type.d.ts.map +1 -0
  120. package/core/decorators/get-override.d.ts +7 -0
  121. package/core/decorators/get-override.d.ts.map +1 -0
  122. package/core/decorators/handle-distinct-change.d.ts +8 -0
  123. package/core/decorators/handle-distinct-change.d.ts.map +1 -0
  124. package/core/decorators/omit-empty-converter.d.ts +8 -0
  125. package/core/decorators/omit-empty-converter.d.ts.map +1 -0
  126. package/core/decorators.d.ts +4 -0
  127. package/core/decorators.d.ts.map +1 -1
  128. package/core/decorators.js +59 -15
  129. package/core/dom.js +1 -5
  130. package/core/eventing.js +1 -4
  131. package/core/interfaces/paginator-page.d.ts +7 -0
  132. package/core/interfaces/paginator-page.d.ts.map +1 -0
  133. package/core/interfaces.d.ts +1 -0
  134. package/core/interfaces.d.ts.map +1 -1
  135. package/core/mixins/disabled-mixin.d.ts +2 -3
  136. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  137. package/core/mixins/named-slot-list-mixin.d.ts +1 -1
  138. package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  139. package/core/mixins/negative-mixin.d.ts +1 -1
  140. package/core/mixins/negative-mixin.d.ts.map +1 -1
  141. package/core/mixins/panel-mixin.d.ts +3 -3
  142. package/core/mixins/panel-mixin.d.ts.map +1 -1
  143. package/core/mixins/required-mixin.d.ts +1 -2
  144. package/core/mixins/required-mixin.d.ts.map +1 -1
  145. package/core/mixins.js +290 -237
  146. package/core/testing/private.d.ts +1 -0
  147. package/core/testing/private.d.ts.map +1 -1
  148. package/core/testing.js +7 -13
  149. package/custom-elements.json +26385 -25594
  150. package/datepicker/common/datepicker-button.d.ts +2 -2
  151. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  152. package/datepicker/common.js +110 -116
  153. package/datepicker/datepicker/datepicker.d.ts +6 -6
  154. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  155. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  156. package/datepicker/datepicker-next-day.js +24 -26
  157. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  158. package/datepicker/datepicker-previous-day.js +25 -27
  159. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
  160. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  161. package/datepicker/datepicker-toggle.js +154 -136
  162. package/datepicker/datepicker.js +248 -213
  163. package/development/accordion/accordion.d.ts +4 -8
  164. package/development/accordion/accordion.d.ts.map +1 -1
  165. package/development/accordion.js +118 -93
  166. package/development/action-group/action-group.d.ts +5 -5
  167. package/development/action-group/action-group.d.ts.map +1 -1
  168. package/development/action-group.js +138 -64
  169. package/development/alert/alert/alert.d.ts +11 -11
  170. package/development/alert/alert/alert.d.ts.map +1 -1
  171. package/development/alert/alert-group/alert-group.d.ts +4 -4
  172. package/development/alert/alert-group/alert-group.d.ts.map +1 -1
  173. package/development/alert/alert-group.js +135 -79
  174. package/development/alert/alert.js +259 -109
  175. package/development/autocomplete/autocomplete-base-element.d.ts +3 -7
  176. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  177. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  178. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  179. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -0
  180. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  181. package/development/autocomplete-grid/autocomplete-grid-button.js +74 -75
  182. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -1
  183. package/development/autocomplete-grid/autocomplete-grid-cell.js +24 -24
  184. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  185. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +38 -39
  186. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  187. package/development/autocomplete-grid/autocomplete-grid-option.js +57 -73
  188. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -1
  189. package/development/autocomplete-grid/autocomplete-grid-row.js +28 -28
  190. package/development/autocomplete-grid/autocomplete-grid.js +142 -160
  191. package/development/autocomplete.js +394 -393
  192. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts +1 -1
  193. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
  194. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  195. package/development/breadcrumb/breadcrumb-group.js +130 -130
  196. package/development/breadcrumb/breadcrumb.js +53 -36
  197. package/development/button/button/button.d.ts.map +1 -1
  198. package/development/button/button-link/button-link.d.ts.map +1 -1
  199. package/development/button/button-link.js +18 -19
  200. package/development/button/button-static/button-static.d.ts.map +1 -1
  201. package/development/button/button-static.js +18 -19
  202. package/development/button/button.js +18 -19
  203. package/development/button/common/button-common.d.ts +4 -4
  204. package/development/button/common/button-common.d.ts.map +1 -1
  205. package/development/button/common.js +50 -29
  206. package/development/button/mini-button/mini-button-base-element.d.ts.map +1 -1
  207. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  208. package/development/button/mini-button-group/mini-button-group.d.ts +2 -2
  209. package/development/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  210. package/development/button/mini-button-group.js +77 -50
  211. package/development/button/mini-button.js +38 -37
  212. package/development/button/secondary-button/secondary-button.d.ts.map +1 -1
  213. package/development/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
  214. package/development/button/secondary-button-link.js +18 -19
  215. package/development/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
  216. package/development/button/secondary-button-static.js +18 -19
  217. package/development/button/secondary-button.js +18 -19
  218. package/development/button/tertiary-button/tertiary-button.d.ts.map +1 -1
  219. package/development/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
  220. package/development/button/tertiary-button-link.js +18 -19
  221. package/development/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
  222. package/development/button/tertiary-button-static.js +18 -19
  223. package/development/button/tertiary-button.js +18 -19
  224. package/development/button/transparent-button/transparent-button.d.ts.map +1 -1
  225. package/development/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
  226. package/development/button/transparent-button-link.js +18 -19
  227. package/development/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
  228. package/development/button/transparent-button-static.js +18 -19
  229. package/development/button/transparent-button.js +18 -19
  230. package/development/calendar/calendar.d.ts +7 -7
  231. package/development/calendar/calendar.d.ts.map +1 -1
  232. package/development/calendar.js +768 -766
  233. package/development/card/card/card.d.ts +2 -2
  234. package/development/card/card/card.d.ts.map +1 -1
  235. package/development/card/card-badge/card-badge.d.ts +1 -1
  236. package/development/card/card-badge/card-badge.d.ts.map +1 -1
  237. package/development/card/card-badge.js +65 -45
  238. package/development/card/card-button/card-button.d.ts.map +1 -1
  239. package/development/card/card-button.js +23 -20
  240. package/development/card/card-link/card-link.d.ts.map +1 -1
  241. package/development/card/card-link.js +23 -20
  242. package/development/card/card.js +72 -41
  243. package/development/card/common/card-action-common.d.ts +1 -1
  244. package/development/card/common/card-action-common.d.ts.map +1 -1
  245. package/development/card/common.js +74 -73
  246. package/development/checkbox/checkbox/checkbox.d.ts +3 -4
  247. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  248. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
  249. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  250. package/development/checkbox/checkbox-group.js +139 -92
  251. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
  252. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  253. package/development/checkbox/checkbox-panel.js +68 -60
  254. package/development/checkbox/checkbox.js +69 -46
  255. package/development/checkbox/common/checkbox-common.d.ts +1 -1
  256. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  257. package/development/checkbox/common.js +65 -46
  258. package/development/chip/chip.d.ts +2 -2
  259. package/development/chip/chip.d.ts.map +1 -1
  260. package/development/chip.js +64 -33
  261. package/development/clock/clock.d.ts +1 -1
  262. package/development/clock/clock.d.ts.map +1 -1
  263. package/development/clock.js +203 -201
  264. package/development/container/container/container.d.ts +3 -3
  265. package/development/container/container/container.d.ts.map +1 -1
  266. package/development/container/container.js +86 -45
  267. package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
  268. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  269. package/development/container/sticky-bar.js +76 -58
  270. package/development/core/a11y.js +40 -62
  271. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  272. package/development/core/base-elements/button-base-element.d.ts +2 -2
  273. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  274. package/development/core/base-elements/link-base-element.d.ts +5 -5
  275. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  276. package/development/core/base-elements.js +329 -226
  277. package/development/core/config.js +1 -1
  278. package/development/core/controllers.js +13 -21
  279. package/development/core/datetime.js +1 -1
  280. package/development/core/decorators/base.d.ts +14 -0
  281. package/development/core/decorators/base.d.ts.map +1 -0
  282. package/development/core/decorators/force-type.d.ts +8 -0
  283. package/development/core/decorators/force-type.d.ts.map +1 -0
  284. package/development/core/decorators/get-override.d.ts +7 -0
  285. package/development/core/decorators/get-override.d.ts.map +1 -0
  286. package/development/core/decorators/handle-distinct-change.d.ts +8 -0
  287. package/development/core/decorators/handle-distinct-change.d.ts.map +1 -0
  288. package/development/core/decorators/omit-empty-converter.d.ts +8 -0
  289. package/development/core/decorators/omit-empty-converter.d.ts.map +1 -0
  290. package/development/core/decorators.d.ts +4 -0
  291. package/development/core/decorators.d.ts.map +1 -1
  292. package/development/core/decorators.js +69 -5
  293. package/development/core/dom.js +2 -6
  294. package/development/core/eventing.js +2 -5
  295. package/development/core/i18n.js +1 -1
  296. package/development/core/interfaces/paginator-page.d.ts +7 -0
  297. package/development/core/interfaces/paginator-page.d.ts.map +1 -0
  298. package/development/core/interfaces.d.ts +1 -0
  299. package/development/core/interfaces.d.ts.map +1 -1
  300. package/development/core/mixins/disabled-mixin.d.ts +2 -3
  301. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  302. package/development/core/mixins/named-slot-list-mixin.d.ts +1 -1
  303. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  304. package/development/core/mixins/negative-mixin.d.ts +1 -1
  305. package/development/core/mixins/negative-mixin.d.ts.map +1 -1
  306. package/development/core/mixins/panel-mixin.d.ts +3 -3
  307. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  308. package/development/core/mixins/required-mixin.d.ts +1 -2
  309. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  310. package/development/core/mixins.js +573 -475
  311. package/development/core/observers.js +1 -1
  312. package/development/core/overlay.js +1 -1
  313. package/development/core/testing/private.d.ts +1 -0
  314. package/development/core/testing/private.d.ts.map +1 -1
  315. package/development/core/testing.js +16 -22
  316. package/development/datepicker/common/datepicker-button.d.ts +2 -2
  317. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  318. package/development/datepicker/common.js +144 -142
  319. package/development/datepicker/datepicker/datepicker.d.ts +6 -6
  320. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  321. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  322. package/development/datepicker/datepicker-next-day.js +32 -32
  323. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  324. package/development/datepicker/datepicker-previous-day.js +32 -32
  325. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
  326. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  327. package/development/datepicker/datepicker-toggle.js +227 -174
  328. package/development/datepicker/datepicker.js +327 -249
  329. package/development/dialog/dialog/dialog.d.ts +1 -1
  330. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  331. package/development/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
  332. package/development/dialog/dialog-actions.js +21 -20
  333. package/development/dialog/dialog-content/dialog-content.d.ts.map +1 -1
  334. package/development/dialog/dialog-content.js +22 -21
  335. package/development/dialog/dialog-title/dialog-title.d.ts +3 -3
  336. package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  337. package/development/dialog/dialog-title.js +121 -66
  338. package/development/dialog/dialog.js +205 -191
  339. package/development/divider/divider.d.ts +1 -1
  340. package/development/divider/divider.d.ts.map +1 -1
  341. package/development/divider.js +55 -36
  342. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
  343. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  344. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
  345. package/development/expansion-panel/expansion-panel-content.js +25 -25
  346. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  347. package/development/expansion-panel/expansion-panel-header.js +56 -63
  348. package/development/expansion-panel/expansion-panel.js +227 -182
  349. package/development/file-selector/file-selector.d.ts +8 -7
  350. package/development/file-selector/file-selector.d.ts.map +1 -1
  351. package/development/file-selector.js +295 -198
  352. package/development/flip-card/flip-card/flip-card.d.ts +2 -2
  353. package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
  354. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  355. package/development/flip-card/flip-card-details.js +39 -39
  356. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  357. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  358. package/development/flip-card/flip-card-summary.js +57 -38
  359. package/development/flip-card/flip-card.js +110 -78
  360. package/development/footer/footer.d.ts +4 -4
  361. package/development/footer/footer.d.ts.map +1 -1
  362. package/development/footer.js +103 -41
  363. package/development/form-error/form-error.d.ts.map +1 -1
  364. package/development/form-error.js +29 -28
  365. package/development/form-field/form-field/form-field.d.ts +10 -10
  366. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  367. package/development/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  368. package/development/form-field/form-field-clear.js +50 -50
  369. package/development/form-field/form-field.js +439 -328
  370. package/development/header/common/header-action-common.d.ts +2 -2
  371. package/development/header/common/header-action-common.d.ts.map +1 -1
  372. package/development/header/common.js +44 -24
  373. package/development/header/header/header.d.ts +4 -4
  374. package/development/header/header/header.d.ts.map +1 -1
  375. package/development/header/header-button/header-button.d.ts.map +1 -1
  376. package/development/header/header-button.js +19 -18
  377. package/development/header/header-link/header-link.d.ts.map +1 -1
  378. package/development/header/header-link.js +19 -16
  379. package/development/header/header.js +198 -140
  380. package/development/icon/icon-base.d.ts +3 -4
  381. package/development/icon/icon-base.d.ts.map +1 -1
  382. package/development/icon/icon-name-mixin.d.ts +1 -1
  383. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  384. package/development/icon/icon.d.ts +2 -2
  385. package/development/icon/icon.d.ts.map +1 -1
  386. package/development/icon.js +258 -157
  387. package/development/image/image.d.ts +17 -17
  388. package/development/image/image.d.ts.map +1 -1
  389. package/development/image.js +584 -216
  390. package/development/journey-header/journey-header.d.ts +5 -5
  391. package/development/journey-header/journey-header.d.ts.map +1 -1
  392. package/development/journey-header.js +115 -43
  393. package/development/lead-container/lead-container.d.ts.map +1 -1
  394. package/development/lead-container.js +22 -21
  395. package/development/link/block-link/block-link.d.ts.map +1 -1
  396. package/development/link/block-link-button/block-link-button.d.ts.map +1 -1
  397. package/development/link/block-link-button.js +19 -18
  398. package/development/link/block-link-static/block-link-static.d.ts.map +1 -1
  399. package/development/link/block-link-static.js +19 -18
  400. package/development/link/block-link.js +19 -18
  401. package/development/link/common/block-link-common.d.ts +4 -3
  402. package/development/link/common/block-link-common.d.ts.map +1 -1
  403. package/development/link/common/link-common.d.ts +1 -1
  404. package/development/link/common/link-common.d.ts.map +1 -1
  405. package/development/link/common.js +81 -51
  406. package/development/link/link/link.d.ts.map +1 -1
  407. package/development/link/link-button/link-button.d.ts.map +1 -1
  408. package/development/link/link-button.js +19 -18
  409. package/development/link/link-static/link-static.d.ts.map +1 -1
  410. package/development/link/link-static.js +19 -18
  411. package/development/link/link.js +19 -18
  412. package/development/link-list/common/link-list-base.d.ts +3 -3
  413. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  414. package/development/link-list/common.js +97 -48
  415. package/development/link-list/link-list/link-list.d.ts +2 -2
  416. package/development/link-list/link-list/link-list.d.ts.map +1 -1
  417. package/development/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
  418. package/development/link-list/link-list-anchor.js +18 -17
  419. package/development/link-list/link-list.js +60 -28
  420. package/development/loading-indicator/loading-indicator.d.ts +3 -3
  421. package/development/loading-indicator/loading-indicator.d.ts.map +1 -1
  422. package/development/loading-indicator.js +82 -40
  423. package/development/logo/logo.d.ts +2 -2
  424. package/development/logo/logo.d.ts.map +1 -1
  425. package/development/logo.js +64 -32
  426. package/development/map-container/map-container.d.ts +2 -2
  427. package/development/map-container/map-container.d.ts.map +1 -1
  428. package/development/map-container.js +107 -75
  429. package/development/menu/common/menu-action-common.d.ts +2 -2
  430. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  431. package/development/menu/common.js +41 -20
  432. package/development/menu/menu/menu.d.ts +1 -1
  433. package/development/menu/menu/menu.d.ts.map +1 -1
  434. package/development/menu/menu-button/menu-button.d.ts.map +1 -1
  435. package/development/menu/menu-button.js +19 -18
  436. package/development/menu/menu-link/menu-link.d.ts.map +1 -1
  437. package/development/menu/menu-link.js +19 -18
  438. package/development/menu/menu.js +261 -241
  439. package/development/message/message.d.ts +2 -2
  440. package/development/message/message.d.ts.map +1 -1
  441. package/development/message.js +65 -32
  442. package/development/navigation/common/navigation-action-common.d.ts +1 -1
  443. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  444. package/development/navigation/common.js +63 -52
  445. package/development/navigation/navigation/navigation.d.ts +2 -2
  446. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  447. package/development/navigation/navigation-button/navigation-button.d.ts.map +1 -1
  448. package/development/navigation/navigation-button.js +19 -18
  449. package/development/navigation/navigation-link/navigation-link.d.ts.map +1 -1
  450. package/development/navigation/navigation-link.js +19 -18
  451. package/development/navigation/navigation-list/navigation-list.d.ts +1 -1
  452. package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  453. package/development/navigation/navigation-list.js +64 -41
  454. package/development/navigation/navigation-marker/navigation-marker.d.ts +1 -1
  455. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  456. package/development/navigation/navigation-marker.js +108 -91
  457. package/development/navigation/navigation-section/navigation-section.d.ts +3 -3
  458. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  459. package/development/navigation/navigation-section.js +282 -236
  460. package/development/navigation/navigation.js +278 -254
  461. package/development/notification/notification.d.ts +6 -6
  462. package/development/notification/notification.d.ts.map +1 -1
  463. package/development/notification.js +212 -146
  464. package/development/option/optgroup/optgroup-base-element.d.ts +3 -3
  465. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  466. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  467. package/development/option/optgroup.js +187 -142
  468. package/development/option/option/option-base-element.d.ts +7 -7
  469. package/development/option/option/option-base-element.d.ts.map +1 -1
  470. package/development/option/option/option.d.ts.map +1 -1
  471. package/development/option/option.js +392 -296
  472. package/development/overlay/overlay-base-element.d.ts +1 -1
  473. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  474. package/development/overlay/overlay.d.ts +4 -4
  475. package/development/overlay/overlay.d.ts.map +1 -1
  476. package/development/overlay.js +260 -207
  477. package/development/paginator/common/paginator-common.d.ts +26 -0
  478. package/development/paginator/common/paginator-common.d.ts.map +1 -0
  479. package/development/paginator/common.d.ts +2 -0
  480. package/development/paginator/common.d.ts.map +1 -0
  481. package/development/paginator/common.js +189 -0
  482. package/development/paginator/compact-paginator/compact-paginator.d.ts +20 -0
  483. package/development/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
  484. package/development/paginator/compact-paginator.d.ts +2 -0
  485. package/development/paginator/compact-paginator.d.ts.map +1 -0
  486. package/development/paginator/compact-paginator.js +96 -0
  487. package/development/paginator/paginator/paginator.d.ts +51 -0
  488. package/development/paginator/paginator/paginator.d.ts.map +1 -0
  489. package/development/paginator/paginator.d.ts +1 -90
  490. package/development/paginator/paginator.d.ts.map +1 -1
  491. package/development/paginator/paginator.js +449 -0
  492. package/development/paginator.d.ts +2 -0
  493. package/development/paginator.d.ts.map +1 -1
  494. package/development/paginator.js +4 -541
  495. package/development/popover/popover/popover.d.ts +6 -7
  496. package/development/popover/popover/popover.d.ts.map +1 -1
  497. package/development/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
  498. package/development/popover/popover-trigger.js +28 -29
  499. package/development/popover/popover.js +358 -303
  500. package/development/radio-button/common/radio-button-common.d.ts +1 -1
  501. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  502. package/development/radio-button/common.js +170 -127
  503. package/development/radio-button/radio-button/radio-button.d.ts +2 -6
  504. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  505. package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
  506. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  507. package/development/radio-button/radio-button-group.js +269 -199
  508. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
  509. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  510. package/development/radio-button/radio-button-panel.js +60 -48
  511. package/development/radio-button/radio-button.js +54 -40
  512. package/development/screen-reader-only/screen-reader-only.d.ts.map +1 -1
  513. package/development/screen-reader-only.js +22 -21
  514. package/development/select/select.d.ts +5 -4
  515. package/development/select/select.d.ts.map +1 -1
  516. package/development/select.js +555 -555
  517. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
  518. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  519. package/development/selection-expansion-panel.js +223 -193
  520. package/development/signet/signet.d.ts +2 -2
  521. package/development/signet/signet.d.ts.map +1 -1
  522. package/development/signet.js +65 -33
  523. package/development/skiplink-list/skiplink-list.d.ts +2 -2
  524. package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
  525. package/development/skiplink-list.js +74 -41
  526. package/development/slider/slider.d.ts +5 -4
  527. package/development/slider/slider.d.ts.map +1 -1
  528. package/development/slider.js +260 -184
  529. package/development/status/status.d.ts +3 -3
  530. package/development/status/status.d.ts.map +1 -1
  531. package/development/status.js +96 -51
  532. package/development/stepper/step/step.d.ts.map +1 -1
  533. package/development/stepper/step-label/step-label.d.ts.map +1 -1
  534. package/development/stepper/step-label.js +86 -90
  535. package/development/stepper/step.js +122 -126
  536. package/development/stepper/stepper/stepper.d.ts +3 -3
  537. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  538. package/development/stepper/stepper.js +291 -241
  539. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  540. package/development/table/table-wrapper.js +37 -39
  541. package/development/tabs/tab/tab.d.ts.map +1 -1
  542. package/development/tabs/tab-group/tab-group.d.ts +2 -2
  543. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  544. package/development/tabs/tab-group.js +296 -279
  545. package/development/tabs/tab-label/tab-label.d.ts +3 -3
  546. package/development/tabs/tab-label/tab-label.d.ts.map +1 -1
  547. package/development/tabs/tab-label.js +83 -37
  548. package/development/tabs/tab.js +40 -39
  549. package/development/tag/tag/tag.d.ts +3 -5
  550. package/development/tag/tag/tag.d.ts.map +1 -1
  551. package/development/tag/tag-group/tag-group.d.ts +3 -3
  552. package/development/tag/tag-group/tag-group.d.ts.map +1 -1
  553. package/development/tag/tag-group.js +143 -88
  554. package/development/tag/tag.js +126 -89
  555. package/development/teaser/teaser.d.ts +4 -4
  556. package/development/teaser/teaser.d.ts.map +1 -1
  557. package/development/teaser-hero/teaser-hero.d.ts +3 -3
  558. package/development/teaser-hero/teaser-hero.d.ts.map +1 -1
  559. package/development/teaser-hero.js +83 -36
  560. package/development/teaser-product/common/teaser-product-common.d.ts +1 -1
  561. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  562. package/development/teaser-product/common.js +51 -26
  563. package/development/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
  564. package/development/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
  565. package/development/teaser-product/teaser-product-static.js +18 -19
  566. package/development/teaser-product/teaser-product.js +18 -19
  567. package/development/teaser.js +94 -40
  568. package/development/time-input/time-input.d.ts +1 -1
  569. package/development/time-input/time-input.d.ts.map +1 -1
  570. package/development/time-input.js +225 -219
  571. package/development/timetable-occupancy/timetable-occupancy.d.ts +2 -2
  572. package/development/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
  573. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
  574. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  575. package/development/timetable-occupancy-icon.js +78 -57
  576. package/development/timetable-occupancy.js +67 -35
  577. package/development/title/title-base.d.ts +3 -3
  578. package/development/title/title-base.d.ts.map +1 -1
  579. package/development/title/title.d.ts.map +1 -1
  580. package/development/title.js +106 -58
  581. package/development/toast/toast.d.ts +4 -4
  582. package/development/toast/toast.d.ts.map +1 -1
  583. package/development/toast.js +204 -146
  584. package/development/toggle/toggle/toggle.d.ts +3 -5
  585. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  586. package/development/toggle/toggle-option/toggle-option.d.ts +2 -2
  587. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  588. package/development/toggle/toggle-option.js +127 -93
  589. package/development/toggle/toggle.js +200 -163
  590. package/development/toggle-check/toggle-check.d.ts +4 -3
  591. package/development/toggle-check/toggle-check.d.ts.map +1 -1
  592. package/development/toggle-check.js +87 -49
  593. package/development/train/train/train.d.ts +5 -5
  594. package/development/train/train/train.d.ts.map +1 -1
  595. package/development/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
  596. package/development/train/train-blocked-passage.js +22 -21
  597. package/development/train/train-formation/train-formation.d.ts +2 -2
  598. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  599. package/development/train/train-formation.js +113 -90
  600. package/development/train/train-wagon/train-wagon.d.ts +7 -9
  601. package/development/train/train-wagon/train-wagon.d.ts.map +1 -1
  602. package/development/train/train-wagon.js +166 -87
  603. package/development/train/train.js +142 -75
  604. package/development/visual-checkbox/visual-checkbox.d.ts +3 -3
  605. package/development/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  606. package/development/visual-checkbox.js +79 -36
  607. package/dialog/dialog/dialog.d.ts +1 -1
  608. package/dialog/dialog/dialog.d.ts.map +1 -1
  609. package/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
  610. package/dialog/dialog-actions.js +18 -19
  611. package/dialog/dialog-content/dialog-content.d.ts.map +1 -1
  612. package/dialog/dialog-content.js +17 -18
  613. package/dialog/dialog-title/dialog-title.d.ts +3 -3
  614. package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  615. package/dialog/dialog-title.js +98 -66
  616. package/dialog/dialog.js +120 -114
  617. package/divider/divider.d.ts +1 -1
  618. package/divider/divider.d.ts.map +1 -1
  619. package/divider.js +41 -30
  620. package/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
  621. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  622. package/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
  623. package/expansion-panel/expansion-panel-content.js +20 -22
  624. package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  625. package/expansion-panel/expansion-panel-header.js +53 -61
  626. package/expansion-panel/expansion-panel.js +145 -130
  627. package/file-selector/file-selector.d.ts +8 -7
  628. package/file-selector/file-selector.d.ts.map +1 -1
  629. package/file-selector.js +224 -174
  630. package/flip-card/flip-card/flip-card.d.ts +2 -2
  631. package/flip-card/flip-card/flip-card.d.ts.map +1 -1
  632. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  633. package/flip-card/flip-card-details.js +36 -38
  634. package/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  635. package/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  636. package/flip-card/flip-card-summary.js +42 -31
  637. package/flip-card/flip-card.js +88 -69
  638. package/footer/footer.d.ts +4 -4
  639. package/footer/footer.d.ts.map +1 -1
  640. package/footer.js +78 -37
  641. package/form-error/form-error.d.ts.map +1 -1
  642. package/form-error.js +24 -25
  643. package/form-field/form-field/form-field.d.ts +10 -10
  644. package/form-field/form-field/form-field.d.ts.map +1 -1
  645. package/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  646. package/form-field/form-field-clear.js +39 -41
  647. package/form-field/form-field.js +295 -239
  648. package/header/common/header-action-common.d.ts +2 -2
  649. package/header/common/header-action-common.d.ts.map +1 -1
  650. package/header/common.js +36 -21
  651. package/header/header/header.d.ts +4 -4
  652. package/header/header/header.d.ts.map +1 -1
  653. package/header/header-button/header-button.d.ts.map +1 -1
  654. package/header/header-button.js +14 -16
  655. package/header/header-link/header-link.d.ts.map +1 -1
  656. package/header/header-link.js +14 -14
  657. package/header/header.js +138 -109
  658. package/icon/icon-base.d.ts +3 -4
  659. package/icon/icon-base.d.ts.map +1 -1
  660. package/icon/icon-name-mixin.d.ts +1 -1
  661. package/icon/icon-name-mixin.d.ts.map +1 -1
  662. package/icon/icon.d.ts +2 -2
  663. package/icon/icon.d.ts.map +1 -1
  664. package/icon.js +230 -165
  665. package/image/image.d.ts +17 -17
  666. package/image/image.d.ts.map +1 -1
  667. package/image.js +465 -195
  668. package/index.d.ts +3 -1
  669. package/index.js +3 -1
  670. package/journey-header/journey-header.d.ts +5 -5
  671. package/journey-header/journey-header.d.ts.map +1 -1
  672. package/journey-header.js +89 -49
  673. package/lead-container/lead-container.d.ts.map +1 -1
  674. package/lead-container.js +17 -18
  675. package/link/block-link/block-link.d.ts.map +1 -1
  676. package/link/block-link-button/block-link-button.d.ts.map +1 -1
  677. package/link/block-link-button.js +15 -17
  678. package/link/block-link-static/block-link-static.d.ts.map +1 -1
  679. package/link/block-link-static.js +14 -16
  680. package/link/block-link.js +15 -17
  681. package/link/common/block-link-common.d.ts +4 -3
  682. package/link/common/block-link-common.d.ts.map +1 -1
  683. package/link/common/link-common.d.ts +1 -1
  684. package/link/common/link-common.d.ts.map +1 -1
  685. package/link/common.js +64 -46
  686. package/link/link/link.d.ts.map +1 -1
  687. package/link/link-button/link-button.d.ts.map +1 -1
  688. package/link/link-button.js +15 -17
  689. package/link/link-static/link-static.d.ts.map +1 -1
  690. package/link/link-static.js +15 -17
  691. package/link/link.js +15 -17
  692. package/link-list/common/link-list-base.d.ts +3 -3
  693. package/link-list/common/link-list-base.d.ts.map +1 -1
  694. package/link-list/common.js +72 -44
  695. package/link-list/link-list/link-list.d.ts +2 -2
  696. package/link-list/link-list/link-list.d.ts.map +1 -1
  697. package/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
  698. package/link-list/link-list-anchor.js +15 -16
  699. package/link-list/link-list.js +43 -24
  700. package/loading-indicator/loading-indicator.d.ts +3 -3
  701. package/loading-indicator/loading-indicator.d.ts.map +1 -1
  702. package/loading-indicator.js +61 -36
  703. package/logo/logo.d.ts +2 -2
  704. package/logo/logo.d.ts.map +1 -1
  705. package/logo.js +47 -27
  706. package/map-container/map-container.d.ts +2 -2
  707. package/map-container/map-container.d.ts.map +1 -1
  708. package/map-container.js +84 -65
  709. package/menu/common/menu-action-common.d.ts +2 -2
  710. package/menu/common/menu-action-common.d.ts.map +1 -1
  711. package/menu/common.js +37 -22
  712. package/menu/menu/menu.d.ts +1 -1
  713. package/menu/menu/menu.d.ts.map +1 -1
  714. package/menu/menu-button/menu-button.d.ts.map +1 -1
  715. package/menu/menu-button.js +14 -16
  716. package/menu/menu-link/menu-link.d.ts.map +1 -1
  717. package/menu/menu-link.js +15 -17
  718. package/menu/menu.js +175 -170
  719. package/message/message.d.ts +2 -2
  720. package/message/message.d.ts.map +1 -1
  721. package/message.js +47 -27
  722. package/navigation/common/navigation-action-common.d.ts +1 -1
  723. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  724. package/navigation/common.js +38 -33
  725. package/navigation/navigation/navigation.d.ts +2 -2
  726. package/navigation/navigation/navigation.d.ts.map +1 -1
  727. package/navigation/navigation-button/navigation-button.d.ts.map +1 -1
  728. package/navigation/navigation-button.js +14 -16
  729. package/navigation/navigation-link/navigation-link.d.ts.map +1 -1
  730. package/navigation/navigation-link.js +14 -16
  731. package/navigation/navigation-list/navigation-list.d.ts +1 -1
  732. package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  733. package/navigation/navigation-list.js +48 -35
  734. package/navigation/navigation-marker/navigation-marker.d.ts +1 -1
  735. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  736. package/navigation/navigation-marker.js +77 -69
  737. package/navigation/navigation-section/navigation-section.d.ts +3 -3
  738. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  739. package/navigation/navigation-section.js +192 -171
  740. package/navigation/navigation.js +185 -181
  741. package/notification/notification.d.ts +6 -6
  742. package/notification/notification.d.ts.map +1 -1
  743. package/notification.js +147 -116
  744. package/option/optgroup/optgroup-base-element.d.ts +3 -3
  745. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  746. package/option/optgroup/optgroup.d.ts.map +1 -1
  747. package/option/optgroup.js +131 -112
  748. package/option/option/option-base-element.d.ts +7 -7
  749. package/option/option/option-base-element.d.ts.map +1 -1
  750. package/option/option/option.d.ts.map +1 -1
  751. package/option/option.js +295 -252
  752. package/overlay/overlay-base-element.d.ts +1 -1
  753. package/overlay/overlay-base-element.d.ts.map +1 -1
  754. package/overlay/overlay.d.ts +4 -4
  755. package/overlay/overlay.d.ts.map +1 -1
  756. package/overlay.js +194 -165
  757. package/package.json +18 -2
  758. package/paginator/common/paginator-common.d.ts +26 -0
  759. package/paginator/common/paginator-common.d.ts.map +1 -0
  760. package/paginator/common.d.ts +2 -0
  761. package/paginator/common.d.ts.map +1 -0
  762. package/paginator/common.js +145 -0
  763. package/paginator/compact-paginator/compact-paginator.d.ts +20 -0
  764. package/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
  765. package/paginator/compact-paginator.d.ts +2 -0
  766. package/paginator/compact-paginator.d.ts.map +1 -0
  767. package/paginator/compact-paginator.js +40 -0
  768. package/paginator/paginator/paginator.d.ts +51 -0
  769. package/paginator/paginator/paginator.d.ts.map +1 -0
  770. package/paginator/paginator.d.ts +1 -90
  771. package/paginator/paginator.d.ts.map +1 -1
  772. package/paginator/paginator.js +171 -0
  773. package/paginator.d.ts +2 -0
  774. package/paginator.d.ts.map +1 -1
  775. package/paginator.js +3 -265
  776. package/popover/popover/popover.d.ts +6 -7
  777. package/popover/popover/popover.d.ts.map +1 -1
  778. package/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
  779. package/popover/popover-trigger.js +26 -29
  780. package/popover/popover.js +230 -208
  781. package/radio-button/common/radio-button-common.d.ts +1 -1
  782. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  783. package/radio-button/common.js +67 -43
  784. package/radio-button/radio-button/radio-button.d.ts +2 -6
  785. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  786. package/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
  787. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  788. package/radio-button/radio-button-group.js +192 -156
  789. package/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
  790. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  791. package/radio-button/radio-button-panel.js +49 -45
  792. package/radio-button/radio-button.js +43 -37
  793. package/screen-reader-only/screen-reader-only.d.ts.map +1 -1
  794. package/screen-reader-only.js +17 -18
  795. package/select/select.d.ts +5 -4
  796. package/select/select.d.ts.map +1 -1
  797. package/select.js +377 -401
  798. package/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
  799. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  800. package/selection-expansion-panel.js +157 -148
  801. package/signet/signet.d.ts +2 -2
  802. package/signet/signet.d.ts.map +1 -1
  803. package/signet.js +48 -28
  804. package/skiplink-list/skiplink-list.d.ts +2 -2
  805. package/skiplink-list/skiplink-list.d.ts.map +1 -1
  806. package/skiplink-list.js +54 -36
  807. package/slider/slider.d.ts +5 -4
  808. package/slider/slider.d.ts.map +1 -1
  809. package/slider.js +197 -158
  810. package/status/status.d.ts +3 -3
  811. package/status/status.d.ts.map +1 -1
  812. package/status.js +71 -46
  813. package/stepper/step/step.d.ts.map +1 -1
  814. package/stepper/step-label/step-label.d.ts.map +1 -1
  815. package/stepper/step-label.js +69 -75
  816. package/stepper/step.js +99 -104
  817. package/stepper/stepper/stepper.d.ts +3 -3
  818. package/stepper/stepper/stepper.d.ts.map +1 -1
  819. package/stepper/stepper.js +208 -188
  820. package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  821. package/table/table-wrapper.js +32 -36
  822. package/tabs/tab/tab.d.ts.map +1 -1
  823. package/tabs/tab-group/tab-group.d.ts +2 -2
  824. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  825. package/tabs/tab-group.js +200 -193
  826. package/tabs/tab-label/tab-label.d.ts +3 -3
  827. package/tabs/tab-label/tab-label.d.ts.map +1 -1
  828. package/tabs/tab-label.js +65 -37
  829. package/tabs/tab.js +34 -35
  830. package/tag/tag/tag.d.ts +3 -5
  831. package/tag/tag/tag.d.ts.map +1 -1
  832. package/tag/tag-group/tag-group.d.ts +3 -3
  833. package/tag/tag-group/tag-group.d.ts.map +1 -1
  834. package/tag/tag-group.js +107 -75
  835. package/tag/tag.js +92 -73
  836. package/teaser/teaser.d.ts +4 -4
  837. package/teaser/teaser.d.ts.map +1 -1
  838. package/teaser-hero/teaser-hero.d.ts +3 -3
  839. package/teaser-hero/teaser-hero.d.ts.map +1 -1
  840. package/teaser-hero.js +66 -38
  841. package/teaser-product/common/teaser-product-common.d.ts +1 -1
  842. package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  843. package/teaser-product/common.js +36 -21
  844. package/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
  845. package/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
  846. package/teaser-product/teaser-product-static.js +14 -17
  847. package/teaser-product/teaser-product.js +14 -17
  848. package/teaser.js +69 -37
  849. package/time-input/time-input.d.ts +1 -1
  850. package/time-input/time-input.d.ts.map +1 -1
  851. package/time-input.js +160 -166
  852. package/timetable-occupancy/timetable-occupancy.d.ts +2 -2
  853. package/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
  854. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
  855. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  856. package/timetable-occupancy-icon.js +60 -48
  857. package/timetable-occupancy.js +55 -38
  858. package/title/title-base.d.ts +3 -3
  859. package/title/title-base.d.ts.map +1 -1
  860. package/title/title.d.ts.map +1 -1
  861. package/title.js +81 -53
  862. package/toast/toast.d.ts +4 -4
  863. package/toast/toast.d.ts.map +1 -1
  864. package/toast.js +156 -123
  865. package/toggle/toggle/toggle.d.ts +3 -5
  866. package/toggle/toggle/toggle.d.ts.map +1 -1
  867. package/toggle/toggle-option/toggle-option.d.ts +2 -2
  868. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  869. package/toggle/toggle-option.js +89 -72
  870. package/toggle/toggle.js +139 -122
  871. package/toggle-check/toggle-check.d.ts +4 -3
  872. package/toggle-check/toggle-check.d.ts.map +1 -1
  873. package/toggle-check.js +63 -41
  874. package/train/train/train.d.ts +5 -5
  875. package/train/train/train.d.ts.map +1 -1
  876. package/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
  877. package/train/train-blocked-passage.js +17 -18
  878. package/train/train-formation/train-formation.d.ts +2 -2
  879. package/train/train-formation/train-formation.d.ts.map +1 -1
  880. package/train/train-formation.js +96 -87
  881. package/train/train-wagon/train-wagon.d.ts +7 -9
  882. package/train/train-wagon/train-wagon.d.ts.map +1 -1
  883. package/train/train-wagon.js +150 -110
  884. package/train/train.js +108 -71
  885. package/visual-checkbox/visual-checkbox.d.ts +3 -3
  886. package/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  887. package/visual-checkbox.js +59 -32
@@ -1,7 +1,16 @@
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
3
+ };
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
+ import { __runInitializers, __esDecorate } from "tslib";
1
9
  import { css, LitElement, html } from "lit";
2
- import { property, customElement } from "lit/decorators.js";
10
+ import { customElement, property } from "lit/decorators.js";
3
11
  import { isArrowKeyPressed, getNextElementIndex } from "../core/a11y.js";
4
12
  import { SbbConnectedAbortController } from "../core/controllers.js";
13
+ import { forceType } from "../core/decorators.js";
5
14
  import { breakpoints, isBreakpoint } from "../core/dom.js";
6
15
  import { SbbHydrationMixin } from "../core/mixins.js";
7
16
  const style = css`*,
@@ -90,242 +99,274 @@ const style = css`*,
90
99
  content: counter(step-label);
91
100
  counter-increment: step-label;
92
101
  }`;
93
- var __defProp = Object.defineProperty;
94
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
95
- var __decorateClass = (decorators, target, key, kind) => {
96
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
97
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
98
- if (decorator = decorators[i])
99
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
100
- if (kind && result) __defProp(target, key, result);
101
- return result;
102
- };
103
102
  const DEBOUNCE_TIME = 150;
104
- let SbbStepperElement = class extends SbbHydrationMixin(LitElement) {
105
- constructor() {
106
- super(...arguments);
107
- this.linear = false;
108
- this.orientation = "horizontal";
109
- this.size = "m";
110
- this._loaded = false;
111
- this._abort = new SbbConnectedAbortController(this);
112
- this._resizeObserverTimeout = null;
113
- }
114
- set horizontalFrom(value) {
115
- this._horizontalFrom = breakpoints.includes(value) ? value : void 0;
116
- if (this._horizontalFrom && this._loaded) {
117
- this._checkOrientation();
103
+ let SbbStepperElement = (() => {
104
+ var _linear_accessor_storage, _orientation_accessor_storage, _size_accessor_storage, _a;
105
+ let _classDecorators = [customElement("sbb-stepper")];
106
+ let _classDescriptor;
107
+ let _classExtraInitializers = [];
108
+ let _classThis;
109
+ let _classSuper = SbbHydrationMixin(LitElement);
110
+ let _instanceExtraInitializers = [];
111
+ let _linear_decorators;
112
+ let _linear_initializers = [];
113
+ let _linear_extraInitializers = [];
114
+ let _set_horizontalFrom_decorators;
115
+ let _orientation_decorators;
116
+ let _orientation_initializers = [];
117
+ let _orientation_extraInitializers = [];
118
+ let _size_decorators;
119
+ let _size_initializers = [];
120
+ let _size_extraInitializers = [];
121
+ let _set_selected_decorators;
122
+ let _set_selectedIndex_decorators;
123
+ _a = class extends _classSuper {
124
+ constructor() {
125
+ super(...arguments);
126
+ __privateAdd(this, _linear_accessor_storage);
127
+ __privateAdd(this, _orientation_accessor_storage);
128
+ __privateAdd(this, _size_accessor_storage);
129
+ __privateSet(this, _linear_accessor_storage, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _linear_initializers, false)));
130
+ this._horizontalFrom = __runInitializers(this, _linear_extraInitializers);
131
+ __privateSet(this, _orientation_accessor_storage, __runInitializers(this, _orientation_initializers, "horizontal"));
132
+ __privateSet(this, _size_accessor_storage, (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _size_initializers, "m")));
133
+ this._loaded = (__runInitializers(this, _size_extraInitializers), false);
134
+ this._abort = new SbbConnectedAbortController(this);
135
+ this._resizeObserverTimeout = null;
118
136
  }
119
- }
120
- get horizontalFrom() {
121
- return this._horizontalFrom;
122
- }
123
- set selected(step) {
124
- if (this._loaded) {
125
- this._select(step);
137
+ /** If set to true, only the current and previous labels can be clicked and selected. */
138
+ get linear() {
139
+ return __privateGet(this, _linear_accessor_storage);
126
140
  }
127
- }
128
- get selected() {
129
- var _a;
130
- return ((_a = this.querySelector) == null ? void 0 : _a.call(this, "sbb-step[data-selected]")) ?? void 0;
131
- }
132
- set selectedIndex(index) {
133
- if (this._loaded) {
134
- this._select(this.steps[index]);
141
+ set linear(value) {
142
+ __privateSet(this, _linear_accessor_storage, value);
135
143
  }
136
- }
137
- get selectedIndex() {
138
- return this.selected ? this.steps.indexOf(this.selected) : void 0;
139
- }
140
- /** The steps of the stepper. */
141
- get steps() {
142
- var _a;
143
- return Array.from(((_a = this.querySelectorAll) == null ? void 0 : _a.call(this, "sbb-step")) ?? []);
144
- }
145
- get _enabledSteps() {
146
- return this.steps.filter((s) => {
147
- var _a;
148
- return !((_a = s.label) == null ? void 0 : _a.hasAttribute("disabled"));
149
- });
150
- }
151
- /** Selects the next step. */
152
- next() {
153
- if (this.selectedIndex !== void 0) {
154
- this._select(this.steps[this.selectedIndex + 1]);
144
+ /** Overrides the behaviour of `orientation` property. */
145
+ set horizontalFrom(value) {
146
+ this._horizontalFrom = breakpoints.includes(value) ? value : void 0;
147
+ if (this._horizontalFrom && this._loaded) {
148
+ this._checkOrientation();
149
+ }
155
150
  }
156
- }
157
- /** Selects the previous step. */
158
- previous() {
159
- if (this.selectedIndex !== void 0) {
160
- this._select(this.steps[this.selectedIndex - 1]);
151
+ get horizontalFrom() {
152
+ return this._horizontalFrom;
161
153
  }
162
- }
163
- /** Resets the form in which the stepper is nested or every form of each step, if any. */
164
- reset() {
165
- var _a, _b, _c;
166
- const closestForm = this.closest("form");
167
- if (closestForm) {
168
- closestForm.reset();
169
- } else {
170
- this.querySelectorAll("form").forEach((form) => form.reset());
171
- }
172
- this.selectedIndex = 0;
173
- if (((_a = document.activeElement) == null ? void 0 : _a.closest("sbb-stepper")) === this) {
174
- (_c = (_b = this.selected) == null ? void 0 : _b.label) == null ? void 0 : _c.focus();
154
+ /** Steps orientation, either horizontal or vertical. */
155
+ get orientation() {
156
+ return __privateGet(this, _orientation_accessor_storage);
175
157
  }
176
- }
177
- _isValidStep(step) {
178
- var _a;
179
- if (!step || !this.linear && ((_a = step.label) == null ? void 0 : _a.hasAttribute("disabled"))) {
180
- return false;
158
+ set orientation(value) {
159
+ __privateSet(this, _orientation_accessor_storage, value);
181
160
  }
182
- if (this.linear && !this.selected) {
183
- return step === this.steps[0];
161
+ /** Size variant, either s or m. */
162
+ get size() {
163
+ return __privateGet(this, _size_accessor_storage);
184
164
  }
185
- if (this.linear && this.selectedIndex !== void 0) {
186
- const index = this.steps.indexOf(step);
187
- return index < this.selectedIndex || index === this.selectedIndex + 1;
165
+ set size(value) {
166
+ __privateSet(this, _size_accessor_storage, value);
188
167
  }
189
- return true;
190
- }
191
- _select(step) {
192
- var _a, _b, _c;
193
- if (!this._isValidStep(step)) {
194
- return;
195
- }
196
- const validatePayload = {
197
- currentIndex: this.selectedIndex,
198
- currentStep: this.selected,
199
- nextIndex: this.selectedIndex !== void 0 ? this.selectedIndex + 1 : void 0,
200
- nextStep: this.selectedIndex !== void 0 ? this.steps[this.selectedIndex + 1] : void 0
201
- };
202
- if (this.selected && !this.selected.validate(validatePayload)) {
203
- return;
204
- }
205
- const current = this.selected;
206
- current == null ? void 0 : current.deselect();
207
- step.select();
208
- this._setMarkerSize();
209
- this._configureLinearMode();
210
- if (((_a = document.activeElement) == null ? void 0 : _a.closest("sbb-stepper")) === this) {
211
- (_c = (_b = this.selected) == null ? void 0 : _b.label) == null ? void 0 : _c.focus();
168
+ /** The currently selected step. */
169
+ set selected(step) {
170
+ if (this._loaded) {
171
+ this._select(step);
172
+ }
212
173
  }
213
- }
214
- _setMarkerSize() {
215
- if (!this._loaded || !this.selected || this.selectedIndex === void 0 || !this.selected.label) {
216
- return;
174
+ get selected() {
175
+ var _a2;
176
+ return ((_a2 = this.querySelector) == null ? void 0 : _a2.call(this, "sbb-step[data-selected]")) ?? void 0;
217
177
  }
218
- const offset = this.orientation === "horizontal" ? this.selected.label.offsetLeft + this.selected.label.offsetWidth : this._calculateLabelOffsetTop();
219
- this.style.setProperty("--sbb-stepper-marker-size", `${offset}px`);
220
- }
221
- _calculateLabelOffsetTop() {
222
- if (this.selectedIndex === void 0) {
223
- return;
224
- }
225
- let offset = 0;
226
- for (const step of this.steps) {
227
- if (step === this.selected) {
228
- break;
178
+ /** The currently selected step index. */
179
+ set selectedIndex(index) {
180
+ if (this._loaded) {
181
+ this._select(this.steps[index]);
229
182
  }
230
- offset = step.label.offsetHeight + offset;
231
183
  }
232
- return offset + this.selected.label.offsetHeight + parseFloat(getComputedStyle(this).getPropertyValue("--sbb-spacing-fixed-6x")) * 16 * this.selectedIndex;
233
- }
234
- _configure() {
235
- const steps = this.steps;
236
- steps.forEach((s) => s.configure(this._loaded));
237
- steps.filter((s) => s.label).map((s) => s.label).forEach((label, i, array) => {
238
- label.configure(i + 1, array.length, this._loaded);
239
- });
240
- this._select(this.selected || this._enabledSteps[0]);
241
- this._proxySize();
242
- }
243
- _updateLabels() {
244
- this.steps.forEach((step) => {
245
- var _a;
246
- step.slot = this.orientation === "horizontal" ? "step" : "step-label";
247
- step.setAttribute("data-orientation", this.orientation);
248
- (_a = step.label) == null ? void 0 : _a.setAttribute("data-orientation", this.orientation);
249
- });
250
- }
251
- _checkOrientation() {
252
- if (this.horizontalFrom) {
253
- this.orientation = isBreakpoint(this.horizontalFrom) ? "horizontal" : "vertical";
254
- this._updateLabels();
184
+ get selectedIndex() {
185
+ return this.selected ? this.steps.indexOf(this.selected) : void 0;
255
186
  }
256
- setTimeout(() => this._setMarkerSize(), 0);
257
- }
258
- _onStepperResize() {
259
- this._checkOrientation();
260
- clearTimeout(this._resizeObserverTimeout);
261
- this.toggleAttribute("data-disable-animation", true);
262
- this._resizeObserverTimeout = setTimeout(
263
- () => this.toggleAttribute("data-disable-animation", false),
264
- DEBOUNCE_TIME
265
- );
266
- }
267
- _configureLinearMode() {
268
- this.steps.forEach((step, index) => {
269
- var _a;
270
- (_a = step.label) == null ? void 0 : _a.toggleAttribute(
271
- "disabled",
272
- this.linear && index > this.selectedIndex || !this.linear && step.label.hasAttribute("data-disabled")
273
- );
274
- });
275
- }
276
- connectedCallback() {
277
- super.connectedCallback();
278
- const signal = this._abort.signal;
279
- this.addEventListener("keydown", (e) => this._handleKeyDown(e), { signal });
280
- window.addEventListener("resize", () => this._onStepperResize(), {
281
- signal,
282
- passive: true
283
- });
284
- this.toggleAttribute("data-disable-animation", !this._loaded);
285
- }
286
- async firstUpdated(changedProperties) {
287
- super.firstUpdated(changedProperties);
288
- await this.updateComplete;
289
- this._loaded = true;
290
- this.selectedIndex = !this.linear ? Number(this.getAttribute("selected-index")) || 0 : 0;
291
- this._checkOrientation();
292
- setTimeout(() => this.toggleAttribute("data-disable-animation", false), DEBOUNCE_TIME);
293
- }
294
- willUpdate(changedProperties) {
295
- super.willUpdate(changedProperties);
296
- if (changedProperties.has("orientation") && !this.horizontalFrom) {
297
- this._updateLabels();
298
- this._setMarkerSize();
187
+ /** The steps of the stepper. */
188
+ get steps() {
189
+ var _a2;
190
+ return Array.from(((_a2 = this.querySelectorAll) == null ? void 0 : _a2.call(this, "sbb-step")) ?? []);
191
+ }
192
+ get _enabledSteps() {
193
+ return this.steps.filter((s) => {
194
+ var _a2;
195
+ return !((_a2 = s.label) == null ? void 0 : _a2.hasAttribute("disabled"));
196
+ });
197
+ }
198
+ /** Selects the next step. */
199
+ next() {
200
+ if (this.selectedIndex !== void 0) {
201
+ this._select(this.steps[this.selectedIndex + 1]);
202
+ }
203
+ }
204
+ /** Selects the previous step. */
205
+ previous() {
206
+ if (this.selectedIndex !== void 0) {
207
+ this._select(this.steps[this.selectedIndex - 1]);
208
+ }
209
+ }
210
+ /** Resets the form in which the stepper is nested or every form of each step, if any. */
211
+ reset() {
212
+ var _a2, _b, _c;
213
+ const closestForm = this.closest("form");
214
+ if (closestForm) {
215
+ closestForm.reset();
216
+ } else {
217
+ this.querySelectorAll("form").forEach((form) => form.reset());
218
+ }
219
+ this.selectedIndex = 0;
220
+ if (((_a2 = document.activeElement) == null ? void 0 : _a2.closest("sbb-stepper")) === this) {
221
+ (_c = (_b = this.selected) == null ? void 0 : _b.label) == null ? void 0 : _c.focus();
222
+ }
299
223
  }
300
- if (changedProperties.has("linear") && this._loaded) {
224
+ _isValidStep(step) {
225
+ var _a2;
226
+ if (!step || !this.linear && ((_a2 = step.label) == null ? void 0 : _a2.hasAttribute("disabled"))) {
227
+ return false;
228
+ }
229
+ if (this.linear && !this.selected) {
230
+ return step === this.steps[0];
231
+ }
232
+ if (this.linear && this.selectedIndex !== void 0) {
233
+ const index = this.steps.indexOf(step);
234
+ return index < this.selectedIndex || index === this.selectedIndex + 1;
235
+ }
236
+ return true;
237
+ }
238
+ _select(step) {
239
+ var _a2, _b, _c;
240
+ if (!this._isValidStep(step)) {
241
+ return;
242
+ }
243
+ const validatePayload = {
244
+ currentIndex: this.selectedIndex,
245
+ currentStep: this.selected,
246
+ nextIndex: this.selectedIndex !== void 0 ? this.selectedIndex + 1 : void 0,
247
+ nextStep: this.selectedIndex !== void 0 ? this.steps[this.selectedIndex + 1] : void 0
248
+ };
249
+ if (this.selected && !this.selected.validate(validatePayload)) {
250
+ return;
251
+ }
252
+ const current = this.selected;
253
+ current == null ? void 0 : current.deselect();
254
+ step.select();
255
+ this._setMarkerSize();
301
256
  this._configureLinearMode();
257
+ if (((_a2 = document.activeElement) == null ? void 0 : _a2.closest("sbb-stepper")) === this) {
258
+ (_c = (_b = this.selected) == null ? void 0 : _b.label) == null ? void 0 : _c.focus();
259
+ }
260
+ }
261
+ _setMarkerSize() {
262
+ if (!this._loaded || !this.selected || this.selectedIndex === void 0 || !this.selected.label) {
263
+ return;
264
+ }
265
+ const offset = this.orientation === "horizontal" ? this.selected.label.offsetLeft + this.selected.label.offsetWidth : this._calculateLabelOffsetTop();
266
+ this.style.setProperty("--sbb-stepper-marker-size", `${offset}px`);
302
267
  }
303
- if (changedProperties.has("size")) {
268
+ _calculateLabelOffsetTop() {
269
+ if (this.selectedIndex === void 0) {
270
+ return;
271
+ }
272
+ let offset = 0;
273
+ for (const step of this.steps) {
274
+ if (step === this.selected) {
275
+ break;
276
+ }
277
+ offset = step.label.offsetHeight + offset;
278
+ }
279
+ return offset + this.selected.label.offsetHeight + parseFloat(getComputedStyle(this).getPropertyValue("--sbb-spacing-fixed-6x")) * 16 * this.selectedIndex;
280
+ }
281
+ _configure() {
282
+ const steps = this.steps;
283
+ steps.forEach((s) => s.configure(this._loaded));
284
+ steps.filter((s) => s.label).map((s) => s.label).forEach((label, i, array) => {
285
+ label.configure(i + 1, array.length, this._loaded);
286
+ });
287
+ this._select(this.selected || this._enabledSteps[0]);
304
288
  this._proxySize();
305
- this._setMarkerSize();
306
289
  }
307
- }
308
- _proxySize() {
309
- this.steps.forEach((step) => {
310
- var _a;
311
- (_a = step.label) == null ? void 0 : _a.setAttribute("data-size", this.size);
312
- });
313
- }
314
- _handleKeyDown(evt) {
315
- const enabledSteps = this._enabledSteps;
316
- if (!enabledSteps || // don't trap nested handling
317
- evt.target !== this && evt.target.parentElement !== this) {
318
- return;
319
- }
320
- if (isArrowKeyPressed(evt)) {
321
- const current = enabledSteps.indexOf(this.selected);
322
- const nextIndex = getNextElementIndex(evt, current, enabledSteps.length);
323
- this._select(enabledSteps[nextIndex]);
324
- evt.preventDefault();
290
+ _updateLabels() {
291
+ this.steps.forEach((step) => {
292
+ var _a2;
293
+ step.slot = this.orientation === "horizontal" ? "step" : "step-label";
294
+ step.setAttribute("data-orientation", this.orientation);
295
+ (_a2 = step.label) == null ? void 0 : _a2.setAttribute("data-orientation", this.orientation);
296
+ });
325
297
  }
326
- }
327
- render() {
328
- return html`
298
+ _checkOrientation() {
299
+ if (this.horizontalFrom) {
300
+ this.orientation = isBreakpoint(this.horizontalFrom) ? "horizontal" : "vertical";
301
+ this._updateLabels();
302
+ }
303
+ setTimeout(() => this._setMarkerSize(), 0);
304
+ }
305
+ _onStepperResize() {
306
+ this._checkOrientation();
307
+ clearTimeout(this._resizeObserverTimeout);
308
+ this.toggleAttribute("data-disable-animation", true);
309
+ this._resizeObserverTimeout = setTimeout(() => this.toggleAttribute("data-disable-animation", false), DEBOUNCE_TIME);
310
+ }
311
+ _configureLinearMode() {
312
+ this.steps.forEach((step, index) => {
313
+ var _a2;
314
+ (_a2 = step.label) == null ? void 0 : _a2.toggleAttribute("disabled", this.linear && index > this.selectedIndex || !this.linear && step.label.hasAttribute("data-disabled"));
315
+ });
316
+ }
317
+ connectedCallback() {
318
+ super.connectedCallback();
319
+ const signal = this._abort.signal;
320
+ this.addEventListener("keydown", (e) => this._handleKeyDown(e), { signal });
321
+ window.addEventListener("resize", () => this._onStepperResize(), {
322
+ signal,
323
+ passive: true
324
+ });
325
+ this.toggleAttribute("data-disable-animation", !this._loaded);
326
+ }
327
+ async firstUpdated(changedProperties) {
328
+ super.firstUpdated(changedProperties);
329
+ await this.updateComplete;
330
+ this._loaded = true;
331
+ this.selectedIndex = !this.linear ? Number(this.getAttribute("selected-index")) || 0 : 0;
332
+ this._checkOrientation();
333
+ setTimeout(() => this.toggleAttribute("data-disable-animation", false), DEBOUNCE_TIME);
334
+ }
335
+ willUpdate(changedProperties) {
336
+ super.willUpdate(changedProperties);
337
+ if (changedProperties.has("orientation") && !this.horizontalFrom) {
338
+ this._updateLabels();
339
+ this._setMarkerSize();
340
+ }
341
+ if (changedProperties.has("linear") && this._loaded) {
342
+ this._configureLinearMode();
343
+ }
344
+ if (changedProperties.has("size")) {
345
+ this._proxySize();
346
+ this._setMarkerSize();
347
+ }
348
+ }
349
+ _proxySize() {
350
+ this.steps.forEach((step) => {
351
+ var _a2;
352
+ (_a2 = step.label) == null ? void 0 : _a2.setAttribute("data-size", this.size);
353
+ });
354
+ }
355
+ _handleKeyDown(evt) {
356
+ const enabledSteps = this._enabledSteps;
357
+ if (!enabledSteps || // don't trap nested handling
358
+ evt.target !== this && evt.target.parentElement !== this) {
359
+ return;
360
+ }
361
+ if (isArrowKeyPressed(evt)) {
362
+ const current = enabledSteps.indexOf(this.selected);
363
+ const nextIndex = getNextElementIndex(evt, current, enabledSteps.length);
364
+ this._select(enabledSteps[nextIndex]);
365
+ evt.preventDefault();
366
+ }
367
+ }
368
+ render() {
369
+ return html`
329
370
  <div class="sbb-stepper">
330
371
  <div class="sbb-stepper__labels" role="tablist">
331
372
  <slot name="step-label" @slotchange=${this._configure}></slot>
@@ -335,31 +376,40 @@ let SbbStepperElement = class extends SbbHydrationMixin(LitElement) {
335
376
  </div>
336
377
  </div>
337
378
  `;
338
- }
339
- };
340
- SbbStepperElement.styles = style;
341
- __decorateClass([
342
- property({ type: Boolean })
343
- ], SbbStepperElement.prototype, "linear", 2);
344
- __decorateClass([
345
- property({ attribute: "horizontal-from", reflect: true })
346
- ], SbbStepperElement.prototype, "horizontalFrom", 1);
347
- __decorateClass([
348
- property({ reflect: true })
349
- ], SbbStepperElement.prototype, "orientation", 2);
350
- __decorateClass([
351
- property({ reflect: true })
352
- ], SbbStepperElement.prototype, "size", 2);
353
- __decorateClass([
354
- property({ attribute: false })
355
- ], SbbStepperElement.prototype, "selected", 1);
356
- __decorateClass([
357
- property({ attribute: "selected-index", type: Number })
358
- ], SbbStepperElement.prototype, "selectedIndex", 1);
359
- SbbStepperElement = __decorateClass([
360
- customElement("sbb-stepper")
361
- ], SbbStepperElement);
379
+ }
380
+ }, _linear_accessor_storage = new WeakMap(), _orientation_accessor_storage = new WeakMap(), _size_accessor_storage = new WeakMap(), _classThis = _a, (() => {
381
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
382
+ _linear_decorators = [forceType(), property({ type: Boolean })];
383
+ _set_horizontalFrom_decorators = [property({ attribute: "horizontal-from", reflect: true })];
384
+ _orientation_decorators = [property({ reflect: true })];
385
+ _size_decorators = [property({ reflect: true })];
386
+ _set_selected_decorators = [property({ attribute: false })];
387
+ _set_selectedIndex_decorators = [property({ attribute: "selected-index", type: Number })];
388
+ __esDecorate(_a, null, _linear_decorators, { kind: "accessor", name: "linear", static: false, private: false, access: { has: (obj) => "linear" in obj, get: (obj) => obj.linear, set: (obj, value) => {
389
+ obj.linear = value;
390
+ } }, metadata: _metadata }, _linear_initializers, _linear_extraInitializers);
391
+ __esDecorate(_a, null, _set_horizontalFrom_decorators, { kind: "setter", name: "horizontalFrom", static: false, private: false, access: { has: (obj) => "horizontalFrom" in obj, set: (obj, value) => {
392
+ obj.horizontalFrom = value;
393
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
394
+ __esDecorate(_a, null, _orientation_decorators, { kind: "accessor", name: "orientation", static: false, private: false, access: { has: (obj) => "orientation" in obj, get: (obj) => obj.orientation, set: (obj, value) => {
395
+ obj.orientation = value;
396
+ } }, metadata: _metadata }, _orientation_initializers, _orientation_extraInitializers);
397
+ __esDecorate(_a, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: (obj) => "size" in obj, get: (obj) => obj.size, set: (obj, value) => {
398
+ obj.size = value;
399
+ } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
400
+ __esDecorate(_a, null, _set_selected_decorators, { kind: "setter", name: "selected", static: false, private: false, access: { has: (obj) => "selected" in obj, set: (obj, value) => {
401
+ obj.selected = value;
402
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
403
+ __esDecorate(_a, null, _set_selectedIndex_decorators, { kind: "setter", name: "selectedIndex", static: false, private: false, access: { has: (obj) => "selectedIndex" in obj, set: (obj, value) => {
404
+ obj.selectedIndex = value;
405
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
406
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
407
+ _classThis = _classDescriptor.value;
408
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
409
+ })(), _a.styles = style, __runInitializers(_classThis, _classExtraInitializers), _a;
410
+ return _classThis;
411
+ })();
362
412
  export {
363
413
  SbbStepperElement
364
414
  };
365
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci9zdGVwcGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZ2V0TmV4dEVsZW1lbnRJbmRleCwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBicmVha3BvaW50cywgaXNCcmVha3BvaW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJIb3Jpem9udGFsRnJvbSwgU2JiT3JpZW50YXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlN0ZXBFbGVtZW50LCBTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHMgfSBmcm9tICcuLi9zdGVwLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc3RlcHBlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5jb25zdCBERUJPVU5DRV9USU1FID0gMTUwO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgc3RydWN0dXJlZCwgc3RlcC1ieS1zdGVwIHdvcmtmbG93IGZvciB1c2VyIGludGVyYWN0aW9ucy5cbiAqIEBzbG90IC0gUHJvdmlkZSBhIGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcmAgYW5kIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtY29udGVudGAgdG8gdGhlIHN0ZXBwZXIuXG4gKiBAc2xvdCBzdGVwLWxhYmVsIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItc3RlcC1sYWJlbGAuXG4gKiBAc2xvdCBzdGVwIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItc3RlcGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItc3RlcHBlcicpXG5leHBvcnQgY2xhc3MgU2JiU3RlcHBlckVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgb25seSB0aGUgY3VycmVudCBhbmQgcHJldmlvdXMgbGFiZWxzIGNhbiBiZSBjbGlja2VkIGFuZCBzZWxlY3RlZC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgbGluZWFyID0gZmFsc2U7XG5cbiAgLyoqIE92ZXJyaWRlcyB0aGUgYmVoYXZpb3VyIG9mIGBvcmllbnRhdGlvbmAgcHJvcGVydHkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvcml6b250YWwtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIHNldCBob3Jpem9udGFsRnJvbSh2YWx1ZTogU2JiSG9yaXpvbnRhbEZyb20pIHtcbiAgICB0aGlzLl9ob3Jpem9udGFsRnJvbSA9IGJyZWFrcG9pbnRzLmluY2x1ZGVzKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLl9ob3Jpem9udGFsRnJvbSAmJiB0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBob3Jpem9udGFsRnJvbSgpOiBTYmJIb3Jpem9udGFsRnJvbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvcml6b250YWxGcm9tO1xuICB9XG4gIHByaXZhdGUgX2hvcml6b250YWxGcm9tPzogU2JiSG9yaXpvbnRhbEZyb20gfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFN0ZXBzIG9yaWVudGF0aW9uLCBlaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIG9yIG0uICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIHNpemU6ICdzJyB8ICdtJyA9ICdtJztcblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQoc3RlcDogU2JiU3RlcEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3Qoc3RlcCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogU2JiU3RlcEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3I/LjxTYmJTdGVwRWxlbWVudD4oJ3NiYi1zdGVwW2RhdGEtc2VsZWN0ZWRdJykgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc3RlcCBpbmRleC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc2VsZWN0ZWQtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZEluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1tpbmRleF0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZCA/IHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLnNlbGVjdGVkKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBUaGUgc3RlcHMgb2YgdGhlIHN0ZXBwZXIuICovXG4gIHB1YmxpYyBnZXQgc3RlcHMoKTogU2JiU3RlcEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1zdGVwJykgPz8gW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2VuYWJsZWRTdGVwcygpOiBTYmJTdGVwRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwcy5maWx0ZXIoKHMpID0+ICFzLmxhYmVsPy5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBTZWxlY3RzIHRoZSBuZXh0IHN0ZXAuICovXG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBwcmV2aW91cyBzdGVwLiAqL1xuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1t0aGlzLnNlbGVjdGVkSW5kZXggLSAxXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlc2V0cyB0aGUgZm9ybSBpbiB3aGljaCB0aGUgc3RlcHBlciBpcyBuZXN0ZWQgb3IgZXZlcnkgZm9ybSBvZiBlYWNoIHN0ZXAsIGlmIGFueS4gKi9cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNsb3Nlc3RGb3JtID0gdGhpcy5jbG9zZXN0KCdmb3JtJyk7XG4gICAgaWYgKGNsb3Nlc3RGb3JtKSB7XG4gICAgICBjbG9zZXN0Rm9ybS5yZXNldCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ2Zvcm0nKS5mb3JFYWNoKChmb3JtKSA9PiBmb3JtLnJlc2V0KCkpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSAwO1xuICAgIC8vIEluIGNhc2UgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBpbnNpZGUgdGhlIHN0ZXBwZXIsIHdlIHJlc2V0IHRoZSBmb2N1cyB0byB0aGUgZmlyc3Qvc2VsZWN0ZWQgc3RlcCBsYWJlbC5cbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnc2JiLXN0ZXBwZXInKSA9PT0gdGhpcykge1xuICAgICAgdGhpcy5zZWxlY3RlZD8ubGFiZWw/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZFN0ZXAoc3RlcDogU2JiU3RlcEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoIXN0ZXAgfHwgKCF0aGlzLmxpbmVhciAmJiBzdGVwLmxhYmVsPy5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGluZWFyICYmICF0aGlzLnNlbGVjdGVkKSB7XG4gICAgICByZXR1cm4gc3RlcCA9PT0gdGhpcy5zdGVwc1swXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW5lYXIgJiYgdGhpcy5zZWxlY3RlZEluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGVwcy5pbmRleE9mKHN0ZXApO1xuICAgICAgcmV0dXJuIGluZGV4IDwgdGhpcy5zZWxlY3RlZEluZGV4IHx8IGluZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXggKyAxO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0KHN0ZXA6IFNiYlN0ZXBFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkU3RlcChzdGVwKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2YWxpZGF0ZVBheWxvYWQ6IFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscyA9IHtcbiAgICAgIGN1cnJlbnRJbmRleDogdGhpcy5zZWxlY3RlZEluZGV4LFxuICAgICAgY3VycmVudFN0ZXA6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBuZXh0SW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gdW5kZWZpbmVkID8gdGhpcy5zZWxlY3RlZEluZGV4ICsgMSA6IHVuZGVmaW5lZCxcbiAgICAgIG5leHRTdGVwOiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IHVuZGVmaW5lZCA/IHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0gOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5zZWxlY3RlZC52YWxpZGF0ZSh2YWxpZGF0ZVBheWxvYWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnNlbGVjdGVkO1xuICAgIGN1cnJlbnQ/LmRlc2VsZWN0KCk7XG4gICAgc3RlcC5zZWxlY3QoKTtcbiAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgdGhpcy5fY29uZmlndXJlTGluZWFyTW9kZSgpO1xuICAgIC8vIEluIGNhc2UgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBpbnNpZGUgdGhlIHN0ZXBwZXIsIHdlIGZvY3VzIHRoZSBzZWxlY3RlZCBzdGVwIGxhYmVsLlxuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdzYmItc3RlcHBlcicpID09PSB0aGlzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkPy5sYWJlbD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRNYXJrZXJTaXplKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9sb2FkZWQgfHxcbiAgICAgICF0aGlzLnNlbGVjdGVkIHx8XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPT09IHVuZGVmaW5lZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQubGFiZWxcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgIHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJ1xuICAgICAgICA/IHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0TGVmdCArIHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0V2lkdGhcbiAgICAgICAgOiB0aGlzLl9jYWxjdWxhdGVMYWJlbE9mZnNldFRvcCgpO1xuXG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItc3RlcHBlci1tYXJrZXItc2l6ZScsIGAke29mZnNldH1weGApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTGFiZWxPZmZzZXRUb3AoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IG9mZnNldCA9IDA7XG4gICAgZm9yIChjb25zdCBzdGVwIG9mIHRoaXMuc3RlcHMpIHtcbiAgICAgIGlmIChzdGVwID09PSB0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgb2Zmc2V0ID0gc3RlcC5sYWJlbCEub2Zmc2V0SGVpZ2h0ICsgb2Zmc2V0O1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgb2Zmc2V0ICtcbiAgICAgIHRoaXMuc2VsZWN0ZWQhLmxhYmVsIS5vZmZzZXRIZWlnaHQhICtcbiAgICAgIHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1zcGFjaW5nLWZpeGVkLTZ4JykpICpcbiAgICAgICAgMTYgKlxuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXBzID0gdGhpcy5zdGVwcztcbiAgICBzdGVwcy5mb3JFYWNoKChzKSA9PiBzLmNvbmZpZ3VyZSh0aGlzLl9sb2FkZWQpKTtcbiAgICBzdGVwc1xuICAgICAgLmZpbHRlcigocykgPT4gcy5sYWJlbClcbiAgICAgIC5tYXAoKHMpID0+IHMubGFiZWwhKVxuICAgICAgLmZvckVhY2goKGxhYmVsLCBpLCBhcnJheSkgPT4ge1xuICAgICAgICBsYWJlbC5jb25maWd1cmUoaSArIDEsIGFycmF5Lmxlbmd0aCwgdGhpcy5fbG9hZGVkKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuX3NlbGVjdCh0aGlzLnNlbGVjdGVkIHx8IHRoaXMuX2VuYWJsZWRTdGVwc1swXSk7XG4gICAgdGhpcy5fcHJveHlTaXplKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVMYWJlbHMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwKSA9PiB7XG4gICAgICBzdGVwLnNsb3QgPSB0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAnc3RlcCcgOiAnc3RlcC1sYWJlbCc7XG4gICAgICBzdGVwLnNldEF0dHJpYnV0ZSgnZGF0YS1vcmllbnRhdGlvbicsIHRoaXMub3JpZW50YXRpb24pO1xuICAgICAgc3RlcC5sYWJlbD8uc2V0QXR0cmlidXRlKCdkYXRhLW9yaWVudGF0aW9uJywgdGhpcy5vcmllbnRhdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja09yaWVudGF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhvcml6b250YWxGcm9tKSB7XG4gICAgICB0aGlzLm9yaWVudGF0aW9uID0gaXNCcmVha3BvaW50KHRoaXMuaG9yaXpvbnRhbEZyb20pID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJztcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgIH1cbiAgICAvLyBUaGUgdGltZW91dCBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG1hcmtlciB0YWtlcyB0aGUgY29ycmVjdCBzdGVwLWxhYmVsIHNpemUuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRNYXJrZXJTaXplKCksIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25TdGVwcGVyUmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ISk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1hbmltYXRpb24nLCB0cnVlKTtcblxuICAgIC8vIERpc2FibGUgdGhlIGFuaW1hdGlvbiB3aGVuIHJlc2l6aW5nIHRvIGF2b2lkIHN0cmFuZ2UgdHJhbnNpdGlvbiBlZmZlY3RzLlxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAoKSA9PiB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlLWFuaW1hdGlvbicsIGZhbHNlKSxcbiAgICAgIERFQk9VTkNFX1RJTUUsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZUxpbmVhck1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgc3RlcC5sYWJlbD8udG9nZ2xlQXR0cmlidXRlKFxuICAgICAgICAnZGlzYWJsZWQnLFxuICAgICAgICAodGhpcy5saW5lYXIgJiYgaW5kZXggPiB0aGlzLnNlbGVjdGVkSW5kZXghKSB8fFxuICAgICAgICAgICghdGhpcy5saW5lYXIgJiYgc3RlcC5sYWJlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZWQnKSksXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpLCB7IHNpZ25hbCB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fb25TdGVwcGVyUmVzaXplKCksIHtcbiAgICAgIHNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1hbmltYXRpb24nLCAhdGhpcy5fbG9hZGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gIXRoaXMubGluZWFyID8gTnVtYmVyKHRoaXMuZ2V0QXR0cmlidXRlKCdzZWxlY3RlZC1pbmRleCcpKSB8fCAwIDogMDtcbiAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgLy8gUmVtb3ZlIFtkYXRhLWRpc2FibGUtYW5pbWF0aW9uXSBhZnRlciBjb21wb25lbnQgaW5pdFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1hbmltYXRpb24nLCBmYWxzZSksIERFQk9VTkNFX1RJTUUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnb3JpZW50YXRpb24nKSAmJiAhdGhpcy5ob3Jpem9udGFsRnJvbSkge1xuICAgICAgdGhpcy5fdXBkYXRlTGFiZWxzKCk7XG4gICAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpbmVhcicpICYmIHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlTGluZWFyTW9kZSgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NpemUnKSkge1xuICAgICAgdGhpcy5fcHJveHlTaXplKCk7XG4gICAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcHJveHlTaXplKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgc3RlcC5sYWJlbD8uc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCB0aGlzLnNpemUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkU3RlcHM6IFNiYlN0ZXBFbGVtZW50W10gPSB0aGlzLl9lbmFibGVkU3RlcHM7XG5cbiAgICBpZiAoXG4gICAgICAhZW5hYmxlZFN0ZXBzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFN0ZXBzLmluZGV4T2YodGhpcy5zZWxlY3RlZCEpO1xuICAgICAgY29uc3QgbmV4dEluZGV4OiBudW1iZXIgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2dCwgY3VycmVudCwgZW5hYmxlZFN0ZXBzLmxlbmd0aCk7XG4gICAgICB0aGlzLl9zZWxlY3QoZW5hYmxlZFN0ZXBzW25leHRJbmRleF0pO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zdGVwcGVyX19sYWJlbHNcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJzdGVwLWxhYmVsXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jb25maWd1cmV9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RlcHBlcl9fc3RlcHNcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3RlcFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fY29uZmlndXJlfT48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXN0ZXBwZXInOiBTYmJTdGVwcGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQSxNQUFNLGdCQUFnQjtBQVNmLElBQU0sb0JBQU4sY0FBZ0Msa0JBQWtCLFVBQVUsRUFBRTtBQUFBLEVBQTlELGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQUl3QixTQUFPLFNBQVM7QUFpQjdDLFNBQU8sY0FBOEI7QUFHUixTQUFPLE9BQWtCO0FBaUN0RCxTQUFRLFVBQW1CO0FBQ25CLFNBQUEsU0FBUyxJQUFJLDRCQUE0QixJQUFJO0FBQ3JELFNBQVEseUJBQStEO0FBQUEsRUFBQTtBQUFBLEVBbkR2RSxJQUFXLGVBQWUsT0FBMEI7QUFDbEQsU0FBSyxrQkFBa0IsWUFBWSxTQUFTLEtBQUssSUFBSSxRQUFRO0FBQ3pELFFBQUEsS0FBSyxtQkFBbUIsS0FBSyxTQUFTO0FBQ3hDLFdBQUssa0JBQWtCO0FBQUEsSUFDekI7QUFBQSxFQUNGO0FBQUEsRUFDQSxJQUFXLGlCQUFnRDtBQUN6RCxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFZQSxJQUFXLFNBQVMsTUFBc0I7QUFDeEMsUUFBSSxLQUFLLFNBQVM7QUFDaEIsV0FBSyxRQUFRLElBQUk7QUFB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
415
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci9zdGVwcGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZ2V0TmV4dEVsZW1lbnRJbmRleCwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgYnJlYWtwb2ludHMsIGlzQnJlYWtwb2ludCB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiSG9yaXpvbnRhbEZyb20sIFNiYk9yaWVudGF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTdGVwRWxlbWVudCwgU2JiU3RlcFZhbGlkYXRlRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vc3RlcC5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3N0ZXBwZXIuc2Nzcz9saXQmaW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuLyoqXG4gKiBQcm92aWRlcyBhIHN0cnVjdHVyZWQsIHN0ZXAtYnktc3RlcCB3b3JrZmxvdyBmb3IgdXNlciBpbnRlcmFjdGlvbnMuXG4gKiBAc2xvdCAtIFByb3ZpZGUgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGFuZCBhIGBzYmItZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRgIHRvIHRoZSBzdGVwcGVyLlxuICogQHNsb3Qgc3RlcC1sYWJlbCAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhbiBgc2JiLXN0ZXAtbGFiZWxgLlxuICogQHNsb3Qgc3RlcCAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhbiBgc2JiLXN0ZXBgLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc3RlcHBlcicpXG5jbGFzcyBTYmJTdGVwcGVyRWxlbWVudCBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqIElmIHNldCB0byB0cnVlLCBvbmx5IHRoZSBjdXJyZW50IGFuZCBwcmV2aW91cyBsYWJlbHMgY2FuIGJlIGNsaWNrZWQgYW5kIHNlbGVjdGVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbGluZWFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE92ZXJyaWRlcyB0aGUgYmVoYXZpb3VyIG9mIGBvcmllbnRhdGlvbmAgcHJvcGVydHkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvcml6b250YWwtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIHNldCBob3Jpem9udGFsRnJvbSh2YWx1ZTogU2JiSG9yaXpvbnRhbEZyb20pIHtcbiAgICB0aGlzLl9ob3Jpem9udGFsRnJvbSA9IGJyZWFrcG9pbnRzLmluY2x1ZGVzKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLl9ob3Jpem9udGFsRnJvbSAmJiB0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBob3Jpem9udGFsRnJvbSgpOiBTYmJIb3Jpem9udGFsRnJvbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvcml6b250YWxGcm9tO1xuICB9XG4gIHByaXZhdGUgX2hvcml6b250YWxGcm9tPzogU2JiSG9yaXpvbnRhbEZyb20gfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFN0ZXBzIG9yaWVudGF0aW9uLCBlaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIG9yIG0uICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdtJyA9ICdtJztcblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQoc3RlcDogU2JiU3RlcEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3Qoc3RlcCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogU2JiU3RlcEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3I/LjxTYmJTdGVwRWxlbWVudD4oJ3NiYi1zdGVwW2RhdGEtc2VsZWN0ZWRdJykgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc3RlcCBpbmRleC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc2VsZWN0ZWQtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZEluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1tpbmRleF0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZCA/IHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLnNlbGVjdGVkKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBUaGUgc3RlcHMgb2YgdGhlIHN0ZXBwZXIuICovXG4gIHB1YmxpYyBnZXQgc3RlcHMoKTogU2JiU3RlcEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1zdGVwJykgPz8gW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2VuYWJsZWRTdGVwcygpOiBTYmJTdGVwRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwcy5maWx0ZXIoKHMpID0+ICFzLmxhYmVsPy5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBTZWxlY3RzIHRoZSBuZXh0IHN0ZXAuICovXG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBwcmV2aW91cyBzdGVwLiAqL1xuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1t0aGlzLnNlbGVjdGVkSW5kZXggLSAxXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlc2V0cyB0aGUgZm9ybSBpbiB3aGljaCB0aGUgc3RlcHBlciBpcyBuZXN0ZWQgb3IgZXZlcnkgZm9ybSBvZiBlYWNoIHN0ZXAsIGlmIGFueS4gKi9cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNsb3Nlc3RGb3JtID0gdGhpcy5jbG9zZXN0KCdmb3JtJyk7XG4gICAgaWYgKGNsb3Nlc3RGb3JtKSB7XG4gICAgICBjbG9zZXN0Rm9ybS5yZXNldCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ2Zvcm0nKS5mb3JFYWNoKChmb3JtKSA9PiBmb3JtLnJlc2V0KCkpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSAwO1xuICAgIC8vIEluIGNhc2UgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBpbnNpZGUgdGhlIHN0ZXBwZXIsIHdlIHJlc2V0IHRoZSBmb2N1cyB0byB0aGUgZmlyc3Qvc2VsZWN0ZWQgc3RlcCBsYWJlbC5cbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnc2JiLXN0ZXBwZXInKSA9PT0gdGhpcykge1xuICAgICAgdGhpcy5zZWxlY3RlZD8ubGFiZWw/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZFN0ZXAoc3RlcDogU2JiU3RlcEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoIXN0ZXAgfHwgKCF0aGlzLmxpbmVhciAmJiBzdGVwLmxhYmVsPy5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGluZWFyICYmICF0aGlzLnNlbGVjdGVkKSB7XG4gICAgICByZXR1cm4gc3RlcCA9PT0gdGhpcy5zdGVwc1swXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW5lYXIgJiYgdGhpcy5zZWxlY3RlZEluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGVwcy5pbmRleE9mKHN0ZXApO1xuICAgICAgcmV0dXJuIGluZGV4IDwgdGhpcy5zZWxlY3RlZEluZGV4IHx8IGluZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXggKyAxO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0KHN0ZXA6IFNiYlN0ZXBFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkU3RlcChzdGVwKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2YWxpZGF0ZVBheWxvYWQ6IFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscyA9IHtcbiAgICAgIGN1cnJlbnRJbmRleDogdGhpcy5zZWxlY3RlZEluZGV4LFxuICAgICAgY3VycmVudFN0ZXA6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBuZXh0SW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gdW5kZWZpbmVkID8gdGhpcy5zZWxlY3RlZEluZGV4ICsgMSA6IHVuZGVmaW5lZCxcbiAgICAgIG5leHRTdGVwOiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IHVuZGVmaW5lZCA/IHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0gOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5zZWxlY3RlZC52YWxpZGF0ZSh2YWxpZGF0ZVBheWxvYWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnNlbGVjdGVkO1xuICAgIGN1cnJlbnQ/LmRlc2VsZWN0KCk7XG4gICAgc3RlcC5zZWxlY3QoKTtcbiAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgdGhpcy5fY29uZmlndXJlTGluZWFyTW9kZSgpO1xuICAgIC8vIEluIGNhc2UgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBpbnNpZGUgdGhlIHN0ZXBwZXIsIHdlIGZvY3VzIHRoZSBzZWxlY3RlZCBzdGVwIGxhYmVsLlxuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdzYmItc3RlcHBlcicpID09PSB0aGlzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkPy5sYWJlbD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRNYXJrZXJTaXplKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9sb2FkZWQgfHxcbiAgICAgICF0aGlzLnNlbGVjdGVkIHx8XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPT09IHVuZGVmaW5lZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQubGFiZWxcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgIHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJ1xuICAgICAgICA/IHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0TGVmdCArIHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0V2lkdGhcbiAgICAgICAgOiB0aGlzLl9jYWxjdWxhdGVMYWJlbE9mZnNldFRvcCgpO1xuXG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItc3RlcHBlci1tYXJrZXItc2l6ZScsIGAke29mZnNldH1weGApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTGFiZWxPZmZzZXRUb3AoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IG9mZnNldCA9IDA7XG4gICAgZm9yIChjb25zdCBzdGVwIG9mIHRoaXMuc3RlcHMpIHtcbiAgICAgIGlmIChzdGVwID09PSB0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgb2Zmc2V0ID0gc3RlcC5sYWJlbCEub2Zmc2V0SGVpZ2h0ICsgb2Zmc2V0O1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgb2Zmc2V0ICtcbiAgICAgIHRoaXMuc2VsZWN0ZWQhLmxhYmVsIS5vZmZzZXRIZWlnaHQhICtcbiAgICAgIHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1zcGFjaW5nLWZpeGVkLTZ4JykpICpcbiAgICAgICAgMTYgKlxuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXBzID0gdGhpcy5zdGVwcztcbiAgICBzdGVwcy5mb3JFYWNoKChzKSA9PiBzLmNvbmZpZ3VyZSh0aGlzLl9sb2FkZWQpKTtcbiAgICBzdGVwc1xuICAgICAgLmZpbHRlcigocykgPT4gcy5sYWJlbClcbiAgICAgIC5tYXAoKHMpID0+IHMubGFiZWwhKVxuICAgICAgLmZvckVhY2goKGxhYmVsLCBpLCBhcnJheSkgPT4ge1xuICAgICAgICBsYWJlbC5jb25maWd1cmUoaSArIDEsIGFycmF5Lmxlbmd0aCwgdGhpcy5fbG9hZGVkKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuX3NlbGVjdCh0aGlzLnNlbGVjdGVkIHx8IHRoaXMuX2VuYWJsZWRTdGVwc1swXSk7XG4gICAgdGhpcy5fcHJveHlTaXplKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVMYWJlbHMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwKSA9PiB7XG4gICAgICBzdGVwLnNsb3QgPSB0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAnc3RlcCcgOiAnc3RlcC1sYWJlbCc7XG4gICAgICBzdGVwLnNldEF0dHJpYnV0ZSgnZGF0YS1vcmllbnRhdGlvbicsIHRoaXMub3JpZW50YXRpb24pO1xuICAgICAgc3RlcC5sYWJlbD8uc2V0QXR0cmlidXRlKCdkYXRhLW9yaWVudGF0aW9uJywgdGhpcy5vcmllbnRhdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja09yaWVudGF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhvcml6b250YWxGcm9tKSB7XG4gICAgICB0aGlzLm9yaWVudGF0aW9uID0gaXNCcmVha3BvaW50KHRoaXMuaG9yaXpvbnRhbEZyb20pID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJztcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgIH1cbiAgICAvLyBUaGUgdGltZW91dCBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG1hcmtlciB0YWtlcyB0aGUgY29ycmVjdCBzdGVwLWxhYmVsIHNpemUuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRNYXJrZXJTaXplKCksIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25TdGVwcGVyUmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ISk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1hbmltYXRpb24nLCB0cnVlKTtcblxuICAgIC8vIERpc2FibGUgdGhlIGFuaW1hdGlvbiB3aGVuIHJlc2l6aW5nIHRvIGF2b2lkIHN0cmFuZ2UgdHJhbnNpdGlvbiBlZmZlY3RzLlxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAoKSA9PiB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlLWFuaW1hdGlvbicsIGZhbHNlKSxcbiAgICAgIERFQk9VTkNFX1RJTUUsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZUxpbmVhck1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgc3RlcC5sYWJlbD8udG9nZ2xlQXR0cmlidXRlKFxuICAgICAgICAnZGlzYWJsZWQnLFxuICAgICAgICAodGhpcy5saW5lYXIgJiYgaW5kZXggPiB0aGlzLnNlbGVjdGVkSW5kZXghKSB8fFxuICAgICAgICAgICghdGhpcy5saW5lYXIgJiYgc3RlcC5sYWJlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZWQnKSksXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpLCB7IHNpZ25hbCB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fb25TdGVwcGVyUmVzaXplKCksIHtcbiAgICAgIHNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1hbmltYXRpb24nLCAhdGhpcy5fbG9hZGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gIXRoaXMubGluZWFyID8gTnVtYmVyKHRoaXMuZ2V0QXR0cmlidXRlKCdzZWxlY3RlZC1pbmRleCcpKSB8fCAwIDogMDtcbiAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgLy8gUmVtb3ZlIFtkYXRhLWRpc2FibGUtYW5pbWF0aW9uXSBhZnRlciBjb21wb25lbnQgaW5pdFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1hbmltYXRpb24nLCBmYWxzZSksIERFQk9VTkNFX1RJTUUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnb3JpZW50YXRpb24nKSAmJiAhdGhpcy5ob3Jpem9udGFsRnJvbSkge1xuICAgICAgdGhpcy5fdXBkYXRlTGFiZWxzKCk7XG4gICAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpbmVhcicpICYmIHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlTGluZWFyTW9kZSgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NpemUnKSkge1xuICAgICAgdGhpcy5fcHJveHlTaXplKCk7XG4gICAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcHJveHlTaXplKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgc3RlcC5sYWJlbD8uc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCB0aGlzLnNpemUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkU3RlcHM6IFNiYlN0ZXBFbGVtZW50W10gPSB0aGlzLl9lbmFibGVkU3RlcHM7XG5cbiAgICBpZiAoXG4gICAgICAhZW5hYmxlZFN0ZXBzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFN0ZXBzLmluZGV4T2YodGhpcy5zZWxlY3RlZCEpO1xuICAgICAgY29uc3QgbmV4dEluZGV4OiBudW1iZXIgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2dCwgY3VycmVudCwgZW5hYmxlZFN0ZXBzLmxlbmd0aCk7XG4gICAgICB0aGlzLl9zZWxlY3QoZW5hYmxlZFN0ZXBzW25leHRJbmRleF0pO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zdGVwcGVyX19sYWJlbHNcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJzdGVwLWxhYmVsXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jb25maWd1cmV9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RlcHBlcl9fc3RlcHNcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3RlcFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fY29uZmlndXJlfT48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXN0ZXBwZXInOiBTYmJTdGVwcGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNLGdCQUFnQjtJQVVoQixxQkFBaUIsTUFBQTs7MEJBRHRCLGNBQWMsYUFBYSxDQUFDOzs7O29CQUNHLGtCQUFrQixVQUFVOzs7Ozs7Ozs7Ozs7OztBQUFwQyxFQUFBLG1CQUFRLFlBQTZCO0FBQUE7O0FBTTNEO0FBaUJBO0FBRzZCO0FBMUJ6Qix5QkFBQSwyQkFBQSxrQkFBQSxNQUFBLDBCQUFBLEdBTThCLGtCQUFBLE1BQUEsc0JBQUEsS0FBSztBQWEvQixXQUFBLGtCQUFnRCxrQkFBQSxNQUFBLHlCQUFBO0FBSXhDLHlCQUFBLCtCQUFBLGtCQUFBLE1BQUEsMkJBQThCLFlBQVk7QUFHYix5QkFBQSx5QkFBQSxrQkFBQSxNQUFBLDhCQUFBLEdBQUEsa0JBQUEsTUFBQSxvQkFBa0IsR0FBRztBQWlDMUQsV0FBTyxXQUFBLGtCQUFBLE1BQUEs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