@sbb-esta/lyne-elements 4.3.0 → 4.4.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 (1057) hide show
  1. package/autocomplete/autocomplete-base-element.js +32 -21
  2. package/autocomplete/autocomplete.component.js +12 -12
  3. package/breadcrumb/breadcrumb/breadcrumb.component.js +11 -11
  4. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +26 -26
  5. package/button/common.js +1 -1
  6. package/button.js +1 -1
  7. package/carousel/carousel/carousel.component.js +15 -15
  8. package/carousel/carousel-item/carousel-item.component.js +1 -1
  9. package/checkbox/checkbox/checkbox.component.js +18 -20
  10. package/chip/chip/chip.component.js +36 -38
  11. package/chip/chip-group/chip-group.component.js +13 -17
  12. package/clock/clock.component.js +36 -38
  13. package/container/sticky-bar/sticky-bar.component.js +1 -1
  14. package/core/datetime/date-adapter.js +51 -17
  15. package/core/datetime/native-date-adapter.js +61 -86
  16. package/core/datetime/temporal-date-adapter.js +139 -0
  17. package/core/styles/core/mediaqueries.scss +1 -1
  18. package/core/styles/core.scss +28 -1
  19. package/core/styles/mixins/image.scss +7 -1
  20. package/core/styles/mixins/table.scss +24 -19
  21. package/core/testing/event-spy.js +4 -4
  22. package/core.css +53 -0
  23. package/custom-elements.json +1088 -111
  24. package/development/autocomplete/autocomplete-base-element.d.ts +11 -2
  25. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  26. package/development/autocomplete/autocomplete-base-element.js +30 -8
  27. package/development/autocomplete/autocomplete.component.d.ts +0 -1
  28. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  29. package/development/autocomplete/autocomplete.component.js +9 -7
  30. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +6 -19
  31. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +2 -15
  32. package/development/button/common.js +1 -1
  33. package/development/button.js +1 -1
  34. package/development/carousel/carousel/carousel.component.js +3 -5
  35. package/development/carousel/carousel-item/carousel-item.component.js +5 -1
  36. package/development/checkbox/checkbox/checkbox.component.d.ts.map +1 -1
  37. package/development/checkbox/checkbox/checkbox.component.js +5 -4
  38. package/development/chip/chip/chip.component.d.ts.map +1 -1
  39. package/development/chip/chip/chip.component.js +29 -48
  40. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  41. package/development/chip/chip-group/chip-group.component.js +22 -28
  42. package/development/clock/clock.component.d.ts.map +1 -1
  43. package/development/clock/clock.component.js +25 -40
  44. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  45. package/development/core/a11y/focus-trap-controller.js +1 -4
  46. package/development/core/base-elements/action-base-element.js +1 -4
  47. package/development/core/controllers/inert-controller.js +1 -3
  48. package/development/core/controllers/overlay-position-controller.js +1 -20
  49. package/development/core/datetime/date-adapter.d.ts +11 -3
  50. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  51. package/development/core/datetime/date-adapter.js +39 -1
  52. package/development/core/datetime/native-date-adapter.d.ts +1 -5
  53. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  54. package/development/core/datetime/native-date-adapter.js +8 -39
  55. package/{core/datetime/native-date-adapter.d.ts → development/core/datetime/temporal-date-adapter.d.ts} +23 -28
  56. package/development/core/datetime/temporal-date-adapter.d.ts.map +1 -0
  57. package/development/core/datetime/temporal-date-adapter.js +144 -0
  58. package/development/core/decorators/id-reference.js +1 -5
  59. package/development/core/testing/event-spy.d.ts.map +1 -1
  60. package/development/core/testing/event-spy.js +3 -3
  61. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -5
  62. package/development/form-field/form-field/form-field.component.js +2 -4
  63. package/development/image/image.component.d.ts +0 -1
  64. package/development/image/image.component.d.ts.map +1 -1
  65. package/development/image/image.component.js +1 -15
  66. package/development/{mini-button-label-common-DzMdb-kV.js → mini-button-label-common-0DeEC1qs.js} +5 -1
  67. package/development/radio-button/common.js +1 -1
  68. package/development/radio-button/radio-button/radio-button.component.js +4 -3
  69. package/development/{radio-button-common-B3kVD7QV.js → radio-button-common-4_yg7r8b.js} +3 -2
  70. package/development/radio-button.js +1 -1
  71. package/development/select/select.component.d.ts.map +1 -1
  72. package/development/select/select.component.js +2 -2
  73. package/development/selection-action-panel/selection-action-panel.component.d.ts +1 -0
  74. package/development/selection-action-panel/selection-action-panel.component.d.ts.map +1 -1
  75. package/development/selection-action-panel/selection-action-panel.component.js +27 -3
  76. package/development/stepper/step-label/step-label.component.d.ts +9 -0
  77. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  78. package/development/stepper/step-label/step-label.component.js +25 -3
  79. package/development/stepper/stepper/stepper.component.d.ts +5 -3
  80. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  81. package/development/stepper/stepper/stepper.component.js +48 -22
  82. package/development/tabs/common.js +3 -2
  83. package/development/tabs/tab-group/tab-group.component.d.ts +6 -0
  84. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  85. package/development/tabs/tab-group/tab-group.component.js +73 -5
  86. package/development/tabs/tab-label/tab-label.component.js +1 -7
  87. package/development/tag/tag-group/tag-group.component.js +1 -3
  88. package/development/toggle/toggle/toggle.component.d.ts +1 -0
  89. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  90. package/development/toggle/toggle/toggle.component.js +19 -13
  91. package/form-field/form-field/form-field.component.js +1 -1
  92. package/image/image.component.js +30 -36
  93. package/index.d.ts +155 -156
  94. package/index.js +155 -155
  95. package/{mini-button-label-common-ps7PVXtB.js → mini-button-label-common-BOB7JQKi.js} +1 -1
  96. package/off-brand-theme.css +87 -59
  97. package/package.json +19 -19
  98. package/radio-button/common.js +1 -1
  99. package/radio-button/radio-button/radio-button.component.js +10 -10
  100. package/{radio-button-common-1Yg7p8dc.js → radio-button-common-Bf2b18jm.js} +1 -1
  101. package/radio-button.js +1 -1
  102. package/safety-theme.css +87 -59
  103. package/select/select.component.js +1 -1
  104. package/selection-action-panel/selection-action-panel.component.js +25 -16
  105. package/standard-theme.css +87 -59
  106. package/stepper/step-label/step-label.component.js +38 -16
  107. package/stepper/stepper/stepper.component.js +62 -68
  108. package/table.css +26 -58
  109. package/tabs/common.js +1 -1
  110. package/tabs/tab-group/tab-group.component.js +61 -47
  111. package/toggle/toggle/toggle.component.js +46 -44
  112. package/accordion/accordion.component.d.ts +0 -38
  113. package/accordion/accordion.component.d.ts.map +0 -1
  114. package/accordion.d.ts +0 -5
  115. package/accordion.d.ts.map +0 -1
  116. package/action-group/action-group.component.d.ts +0 -46
  117. package/action-group/action-group.component.d.ts.map +0 -1
  118. package/action-group.d.ts +0 -5
  119. package/action-group.d.ts.map +0 -1
  120. package/alert/alert/alert.component.d.ts +0 -51
  121. package/alert/alert/alert.component.d.ts.map +0 -1
  122. package/alert/alert-group/alert-group.component.d.ts +0 -39
  123. package/alert/alert-group/alert-group.component.d.ts.map +0 -1
  124. package/alert/alert-group.d.ts +0 -5
  125. package/alert/alert-group.d.ts.map +0 -1
  126. package/alert/alert.d.ts +0 -5
  127. package/alert/alert.d.ts.map +0 -1
  128. package/alert.d.ts +0 -6
  129. package/alert.d.ts.map +0 -1
  130. package/autocomplete/autocomplete-base-element.d.ts +0 -123
  131. package/autocomplete/autocomplete-base-element.d.ts.map +0 -1
  132. package/autocomplete/autocomplete.component.d.ts +0 -31
  133. package/autocomplete/autocomplete.component.d.ts.map +0 -1
  134. package/autocomplete.d.ts +0 -6
  135. package/autocomplete.d.ts.map +0 -1
  136. package/breadcrumb/breadcrumb/breadcrumb.component.d.ts +0 -20
  137. package/breadcrumb/breadcrumb/breadcrumb.component.d.ts.map +0 -1
  138. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +0 -50
  139. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +0 -1
  140. package/breadcrumb/breadcrumb-group.d.ts +0 -5
  141. package/breadcrumb/breadcrumb-group.d.ts.map +0 -1
  142. package/breadcrumb/breadcrumb.d.ts +0 -5
  143. package/breadcrumb/breadcrumb.d.ts.map +0 -1
  144. package/breadcrumb.d.ts +0 -6
  145. package/breadcrumb.d.ts.map +0 -1
  146. package/button/accent-button/accent-button.component.d.ts +0 -20
  147. package/button/accent-button/accent-button.component.d.ts.map +0 -1
  148. package/button/accent-button-link/accent-button-link.component.d.ts +0 -20
  149. package/button/accent-button-link/accent-button-link.component.d.ts.map +0 -1
  150. package/button/accent-button-link.d.ts +0 -5
  151. package/button/accent-button-link.d.ts.map +0 -1
  152. package/button/accent-button-static/accent-button-static.component.d.ts +0 -20
  153. package/button/accent-button-static/accent-button-static.component.d.ts.map +0 -1
  154. package/button/accent-button-static.d.ts +0 -5
  155. package/button/accent-button-static.d.ts.map +0 -1
  156. package/button/accent-button.d.ts +0 -5
  157. package/button/accent-button.d.ts.map +0 -1
  158. package/button/button/button.component.d.ts +0 -20
  159. package/button/button/button.component.d.ts.map +0 -1
  160. package/button/button-link/button-link.component.d.ts +0 -20
  161. package/button/button-link/button-link.component.d.ts.map +0 -1
  162. package/button/button-link.d.ts +0 -5
  163. package/button/button-link.d.ts.map +0 -1
  164. package/button/button-static/button-static.component.d.ts +0 -20
  165. package/button/button-static/button-static.component.d.ts.map +0 -1
  166. package/button/button-static.d.ts +0 -5
  167. package/button/button-static.d.ts.map +0 -1
  168. package/button/button.d.ts +0 -5
  169. package/button/button.d.ts.map +0 -1
  170. package/button/common/button-common.d.ts +0 -11
  171. package/button/common/button-common.d.ts.map +0 -1
  172. package/button/common.d.ts +0 -5
  173. package/button/common.d.ts.map +0 -1
  174. package/button/mini-button/mini-button.component.d.ts +0 -21
  175. package/button/mini-button/mini-button.component.d.ts.map +0 -1
  176. package/button/mini-button-group/mini-button-group.component.d.ts +0 -31
  177. package/button/mini-button-group/mini-button-group.component.d.ts.map +0 -1
  178. package/button/mini-button-group.d.ts +0 -5
  179. package/button/mini-button-group.d.ts.map +0 -1
  180. package/button/mini-button-link/mini-button-link.component.d.ts +0 -21
  181. package/button/mini-button-link/mini-button-link.component.d.ts.map +0 -1
  182. package/button/mini-button-link.d.ts +0 -5
  183. package/button/mini-button-link.d.ts.map +0 -1
  184. package/button/mini-button.d.ts +0 -5
  185. package/button/mini-button.d.ts.map +0 -1
  186. package/button/secondary-button/secondary-button.component.d.ts +0 -20
  187. package/button/secondary-button/secondary-button.component.d.ts.map +0 -1
  188. package/button/secondary-button-link/secondary-button-link.component.d.ts +0 -20
  189. package/button/secondary-button-link/secondary-button-link.component.d.ts.map +0 -1
  190. package/button/secondary-button-link.d.ts +0 -5
  191. package/button/secondary-button-link.d.ts.map +0 -1
  192. package/button/secondary-button-static/secondary-button-static.component.d.ts +0 -20
  193. package/button/secondary-button-static/secondary-button-static.component.d.ts.map +0 -1
  194. package/button/secondary-button-static.d.ts +0 -5
  195. package/button/secondary-button-static.d.ts.map +0 -1
  196. package/button/secondary-button.d.ts +0 -5
  197. package/button/secondary-button.d.ts.map +0 -1
  198. package/button/transparent-button/transparent-button.component.d.ts +0 -20
  199. package/button/transparent-button/transparent-button.component.d.ts.map +0 -1
  200. package/button/transparent-button-link/transparent-button-link.component.d.ts +0 -20
  201. package/button/transparent-button-link/transparent-button-link.component.d.ts.map +0 -1
  202. package/button/transparent-button-link.d.ts +0 -5
  203. package/button/transparent-button-link.d.ts.map +0 -1
  204. package/button/transparent-button-static/transparent-button-static.component.d.ts +0 -20
  205. package/button/transparent-button-static/transparent-button-static.component.d.ts.map +0 -1
  206. package/button/transparent-button-static.d.ts +0 -5
  207. package/button/transparent-button-static.d.ts.map +0 -1
  208. package/button/transparent-button.d.ts +0 -5
  209. package/button/transparent-button.d.ts.map +0 -1
  210. package/button.d.ts +0 -20
  211. package/button.d.ts.map +0 -1
  212. package/calendar/calendar.component.d.ts +0 -310
  213. package/calendar/calendar.component.d.ts.map +0 -1
  214. package/calendar.d.ts +0 -5
  215. package/calendar.d.ts.map +0 -1
  216. package/card/card/card.component.d.ts +0 -22
  217. package/card/card/card.component.d.ts.map +0 -1
  218. package/card/card-badge/card-badge.component.d.ts +0 -23
  219. package/card/card-badge/card-badge.component.d.ts.map +0 -1
  220. package/card/card-badge.d.ts +0 -5
  221. package/card/card-badge.d.ts.map +0 -1
  222. package/card/card-button/card-button.component.d.ts +0 -18
  223. package/card/card-button/card-button.component.d.ts.map +0 -1
  224. package/card/card-button.d.ts +0 -5
  225. package/card/card-button.d.ts.map +0 -1
  226. package/card/card-link/card-link.component.d.ts +0 -18
  227. package/card/card-link/card-link.component.d.ts.map +0 -1
  228. package/card/card-link.d.ts +0 -5
  229. package/card/card-link.d.ts.map +0 -1
  230. package/card/card.d.ts +0 -5
  231. package/card/card.d.ts.map +0 -1
  232. package/card/common/card-action-common.d.ts +0 -8
  233. package/card/common/card-action-common.d.ts.map +0 -1
  234. package/card/common.d.ts +0 -5
  235. package/card/common.d.ts.map +0 -1
  236. package/card.d.ts +0 -9
  237. package/card.d.ts.map +0 -1
  238. package/carousel/carousel/carousel.component.d.ts +0 -34
  239. package/carousel/carousel/carousel.component.d.ts.map +0 -1
  240. package/carousel/carousel-item/carousel-item.component.d.ts +0 -29
  241. package/carousel/carousel-item/carousel-item.component.d.ts.map +0 -1
  242. package/carousel/carousel-item.d.ts +0 -5
  243. package/carousel/carousel-item.d.ts.map +0 -1
  244. package/carousel/carousel-list/carousel-list.component.d.ts +0 -35
  245. package/carousel/carousel-list/carousel-list.component.d.ts.map +0 -1
  246. package/carousel/carousel-list.d.ts +0 -5
  247. package/carousel/carousel-list.d.ts.map +0 -1
  248. package/carousel/carousel.d.ts +0 -5
  249. package/carousel/carousel.d.ts.map +0 -1
  250. package/carousel.d.ts +0 -7
  251. package/carousel.d.ts.map +0 -1
  252. package/checkbox/checkbox/checkbox.component.d.ts +0 -33
  253. package/checkbox/checkbox/checkbox.component.d.ts.map +0 -1
  254. package/checkbox/checkbox-group/checkbox-group.component.d.ts +0 -39
  255. package/checkbox/checkbox-group/checkbox-group.component.d.ts.map +0 -1
  256. package/checkbox/checkbox-group.d.ts +0 -5
  257. package/checkbox/checkbox-group.d.ts.map +0 -1
  258. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts +0 -27
  259. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +0 -1
  260. package/checkbox/checkbox-panel.d.ts +0 -5
  261. package/checkbox/checkbox-panel.d.ts.map +0 -1
  262. package/checkbox/checkbox.d.ts +0 -5
  263. package/checkbox/checkbox.d.ts.map +0 -1
  264. package/checkbox/common/checkbox-common.d.ts +0 -12
  265. package/checkbox/common/checkbox-common.d.ts.map +0 -1
  266. package/checkbox/common.d.ts +0 -5
  267. package/checkbox/common.d.ts.map +0 -1
  268. package/checkbox.d.ts +0 -8
  269. package/checkbox.d.ts.map +0 -1
  270. package/chip/chip/chip.component.d.ts +0 -30
  271. package/chip/chip/chip.component.d.ts.map +0 -1
  272. package/chip/chip-group/chip-group.component.d.ts +0 -102
  273. package/chip/chip-group/chip-group.component.d.ts.map +0 -1
  274. package/chip/chip-group.d.ts +0 -5
  275. package/chip/chip-group.d.ts.map +0 -1
  276. package/chip/chip.d.ts +0 -5
  277. package/chip/chip.d.ts.map +0 -1
  278. package/chip-label/chip-label.component.d.ts +0 -20
  279. package/chip-label/chip-label.component.d.ts.map +0 -1
  280. package/chip-label.d.ts +0 -5
  281. package/chip-label.d.ts.map +0 -1
  282. package/chip.d.ts +0 -6
  283. package/chip.d.ts.map +0 -1
  284. package/clock/clock.component.d.ts +0 -77
  285. package/clock/clock.component.d.ts.map +0 -1
  286. package/clock.d.ts +0 -5
  287. package/clock.d.ts.map +0 -1
  288. package/container/container/container.component.d.ts +0 -27
  289. package/container/container/container.component.d.ts.map +0 -1
  290. package/container/container.d.ts +0 -5
  291. package/container/container.d.ts.map +0 -1
  292. package/container/sticky-bar/sticky-bar.component.d.ts +0 -58
  293. package/container/sticky-bar/sticky-bar.component.d.ts.map +0 -1
  294. package/container/sticky-bar.d.ts +0 -5
  295. package/container/sticky-bar.d.ts.map +0 -1
  296. package/container.d.ts +0 -6
  297. package/container.d.ts.map +0 -1
  298. package/core/a11y/arrow-navigation.d.ts +0 -32
  299. package/core/a11y/arrow-navigation.d.ts.map +0 -1
  300. package/core/a11y/fake-event-detection.d.ts +0 -5
  301. package/core/a11y/fake-event-detection.d.ts.map +0 -1
  302. package/core/a11y/focus-trap-controller.d.ts +0 -35
  303. package/core/a11y/focus-trap-controller.d.ts.map +0 -1
  304. package/core/a11y/focus-visible-within-controller.d.ts +0 -11
  305. package/core/a11y/focus-visible-within-controller.d.ts.map +0 -1
  306. package/core/a11y/focus.d.ts +0 -2
  307. package/core/a11y/focus.d.ts.map +0 -1
  308. package/core/a11y/input-modality-detector.d.ts +0 -58
  309. package/core/a11y/input-modality-detector.d.ts.map +0 -1
  310. package/core/a11y/interactivity-checker.d.ts +0 -52
  311. package/core/a11y/interactivity-checker.d.ts.map +0 -1
  312. package/core/a11y/live-announcer.d.ts +0 -62
  313. package/core/a11y/live-announcer.d.ts.map +0 -1
  314. package/core/a11y.d.ts +0 -12
  315. package/core/a11y.d.ts.map +0 -1
  316. package/core/base-elements/action-base-element.d.ts +0 -15
  317. package/core/base-elements/action-base-element.d.ts.map +0 -1
  318. package/core/base-elements/button-base-element.d.ts +0 -66
  319. package/core/base-elements/button-base-element.d.ts.map +0 -1
  320. package/core/base-elements/link-base-element.d.ts +0 -34
  321. package/core/base-elements/link-base-element.d.ts.map +0 -1
  322. package/core/base-elements/open-close-base-element.d.ts +0 -41
  323. package/core/base-elements/open-close-base-element.d.ts.map +0 -1
  324. package/core/base-elements.d.ts +0 -8
  325. package/core/base-elements.d.ts.map +0 -1
  326. package/core/config/config.d.ts +0 -40
  327. package/core/config/config.d.ts.map +0 -1
  328. package/core/config.d.ts +0 -5
  329. package/core/config.d.ts.map +0 -1
  330. package/core/controllers/escapable-overlay-controller.d.ts +0 -14
  331. package/core/controllers/escapable-overlay-controller.d.ts.map +0 -1
  332. package/core/controllers/id-reference-controller.d.ts +0 -21
  333. package/core/controllers/id-reference-controller.d.ts.map +0 -1
  334. package/core/controllers/inert-controller.d.ts +0 -27
  335. package/core/controllers/inert-controller.d.ts.map +0 -1
  336. package/core/controllers/language-controller.d.ts +0 -32
  337. package/core/controllers/language-controller.d.ts.map +0 -1
  338. package/core/controllers/media-matchers-controller.d.ts +0 -65
  339. package/core/controllers/media-matchers-controller.d.ts.map +0 -1
  340. package/core/controllers/overlay-position-controller.d.ts +0 -61
  341. package/core/controllers/overlay-position-controller.d.ts.map +0 -1
  342. package/core/controllers/property-watcher-controller.d.ts +0 -16
  343. package/core/controllers/property-watcher-controller.d.ts.map +0 -1
  344. package/core/controllers/slot-state-controller.d.ts +0 -45
  345. package/core/controllers/slot-state-controller.d.ts.map +0 -1
  346. package/core/controllers.d.ts +0 -12
  347. package/core/controllers.d.ts.map +0 -1
  348. package/core/datetime/date-adapter.d.ts +0 -173
  349. package/core/datetime/date-adapter.d.ts.map +0 -1
  350. package/core/datetime/native-date-adapter.d.ts.map +0 -1
  351. package/core/datetime.d.ts +0 -6
  352. package/core/datetime.d.ts.map +0 -1
  353. package/core/decorators/base.d.ts +0 -14
  354. package/core/decorators/base.d.ts.map +0 -1
  355. package/core/decorators/force-type.d.ts +0 -8
  356. package/core/decorators/force-type.d.ts.map +0 -1
  357. package/core/decorators/get-override.d.ts +0 -7
  358. package/core/decorators/get-override.d.ts.map +0 -1
  359. package/core/decorators/handle-distinct-change.d.ts +0 -8
  360. package/core/decorators/handle-distinct-change.d.ts.map +0 -1
  361. package/core/decorators/host-attributes.d.ts +0 -21
  362. package/core/decorators/host-attributes.d.ts.map +0 -1
  363. package/core/decorators/id-reference.d.ts +0 -11
  364. package/core/decorators/id-reference.d.ts.map +0 -1
  365. package/core/decorators/omit-empty-converter.d.ts +0 -8
  366. package/core/decorators/omit-empty-converter.d.ts.map +0 -1
  367. package/core/decorators/plain-date.d.ts +0 -23
  368. package/core/decorators/plain-date.d.ts.map +0 -1
  369. package/core/decorators.d.ts +0 -11
  370. package/core/decorators.d.ts.map +0 -1
  371. package/core/dom/animation.d.ts +0 -2
  372. package/core/dom/animation.d.ts.map +0 -1
  373. package/core/dom/contains-pierce-shadow-dom.d.ts +0 -3
  374. package/core/dom/contains-pierce-shadow-dom.d.ts.map +0 -1
  375. package/core/dom/lean-context.d.ts +0 -5
  376. package/core/dom/lean-context.d.ts.map +0 -1
  377. package/core/dom/platform.d.ts +0 -28
  378. package/core/dom/platform.d.ts.map +0 -1
  379. package/core/dom/queue-dom-content-loaded.d.ts +0 -5
  380. package/core/dom/queue-dom-content-loaded.d.ts.map +0 -1
  381. package/core/dom/scroll.d.ts +0 -14
  382. package/core/dom/scroll.d.ts.map +0 -1
  383. package/core/dom/set-or-remove-attribute.d.ts +0 -8
  384. package/core/dom/set-or-remove-attribute.d.ts.map +0 -1
  385. package/core/dom.d.ts +0 -11
  386. package/core/dom.d.ts.map +0 -1
  387. package/core/eventing/composed-path-has-attribute.d.ts +0 -10
  388. package/core/eventing/composed-path-has-attribute.d.ts.map +0 -1
  389. package/core/eventing/event-target.d.ts +0 -3
  390. package/core/eventing/event-target.d.ts.map +0 -1
  391. package/core/eventing/form-element-handlers.d.ts +0 -6
  392. package/core/eventing/form-element-handlers.d.ts.map +0 -1
  393. package/core/eventing/forward-event.d.ts +0 -6
  394. package/core/eventing/forward-event.d.ts.map +0 -1
  395. package/core/eventing/is-event-prevented.d.ts +0 -3
  396. package/core/eventing/is-event-prevented.d.ts.map +0 -1
  397. package/core/eventing/throttle.d.ts +0 -2
  398. package/core/eventing/throttle.d.ts.map +0 -1
  399. package/core/eventing.d.ts +0 -10
  400. package/core/eventing.d.ts.map +0 -1
  401. package/core/i18n/i18n.d.ts +0 -103
  402. package/core/i18n/i18n.d.ts.map +0 -1
  403. package/core/i18n.d.ts +0 -5
  404. package/core/i18n.d.ts.map +0 -1
  405. package/core/images.d.ts +0 -7
  406. package/core/images.d.ts.map +0 -1
  407. package/core/interfaces/overlay-close-details.d.ts +0 -6
  408. package/core/interfaces/overlay-close-details.d.ts.map +0 -1
  409. package/core/interfaces/paginator-page.d.ts +0 -7
  410. package/core/interfaces/paginator-page.d.ts.map +0 -1
  411. package/core/interfaces/types.d.ts +0 -9
  412. package/core/interfaces/types.d.ts.map +0 -1
  413. package/core/interfaces.d.ts +0 -7
  414. package/core/interfaces.d.ts.map +0 -1
  415. package/core/mixins/animation-complete-mixin.d.ts +0 -13
  416. package/core/mixins/animation-complete-mixin.d.ts.map +0 -1
  417. package/core/mixins/constructor.d.ts +0 -8
  418. package/core/mixins/constructor.d.ts.map +0 -1
  419. package/core/mixins/disabled-mixin.d.ts +0 -20
  420. package/core/mixins/disabled-mixin.d.ts.map +0 -1
  421. package/core/mixins/element-internals-mixin.d.ts +0 -49
  422. package/core/mixins/element-internals-mixin.d.ts.map +0 -1
  423. package/core/mixins/form-associated-checkbox-mixin.d.ts +0 -20
  424. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +0 -1
  425. package/core/mixins/form-associated-input-mixin.d.ts +0 -32
  426. package/core/mixins/form-associated-input-mixin.d.ts.map +0 -1
  427. package/core/mixins/form-associated-mixin.d.ts +0 -53
  428. package/core/mixins/form-associated-mixin.d.ts.map +0 -1
  429. package/core/mixins/form-associated-radio-button-mixin.d.ts +0 -28
  430. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +0 -1
  431. package/core/mixins/hydration-mixin.d.ts +0 -23
  432. package/core/mixins/hydration-mixin.d.ts.map +0 -1
  433. package/core/mixins/named-slot-list-mixin.d.ts +0 -36
  434. package/core/mixins/named-slot-list-mixin.d.ts.map +0 -1
  435. package/core/mixins/negative-mixin.d.ts +0 -10
  436. package/core/mixins/negative-mixin.d.ts.map +0 -1
  437. package/core/mixins/panel-mixin.d.ts +0 -21
  438. package/core/mixins/panel-mixin.d.ts.map +0 -1
  439. package/core/mixins/readonly-mixin.d.ts +0 -10
  440. package/core/mixins/readonly-mixin.d.ts.map +0 -1
  441. package/core/mixins/required-mixin.d.ts +0 -12
  442. package/core/mixins/required-mixin.d.ts.map +0 -1
  443. package/core/mixins/selection-panel-mixin.d.ts +0 -17
  444. package/core/mixins/selection-panel-mixin.d.ts.map +0 -1
  445. package/core/mixins/update-scheduler-mixin.d.ts +0 -13
  446. package/core/mixins/update-scheduler-mixin.d.ts.map +0 -1
  447. package/core/mixins.d.ts +0 -20
  448. package/core/mixins.d.ts.map +0 -1
  449. package/core/overlay/overlay-option-panel.d.ts +0 -12
  450. package/core/overlay/overlay-option-panel.d.ts.map +0 -1
  451. package/core/overlay/overlay-outside-pointer-event-listener.d.ts +0 -26
  452. package/core/overlay/overlay-outside-pointer-event-listener.d.ts.map +0 -1
  453. package/core/overlay/overlay-trigger-attributes.d.ts +0 -18
  454. package/core/overlay/overlay-trigger-attributes.d.ts.map +0 -1
  455. package/core/overlay/overlay.d.ts +0 -7
  456. package/core/overlay/overlay.d.ts.map +0 -1
  457. package/core/overlay/position.d.ts +0 -63
  458. package/core/overlay/position.d.ts.map +0 -1
  459. package/core/overlay.d.ts +0 -9
  460. package/core/overlay.d.ts.map +0 -1
  461. package/core/styles.d.ts +0 -4
  462. package/core/styles.d.ts.map +0 -1
  463. package/core/testing/event-spy.d.ts +0 -22
  464. package/core/testing/event-spy.d.ts.map +0 -1
  465. package/core/testing/mocha-extensions.d.ts +0 -10
  466. package/core/testing/mocha-extensions.d.ts.map +0 -1
  467. package/core/testing/wait-for-condition.d.ts +0 -2
  468. package/core/testing/wait-for-condition.d.ts.map +0 -1
  469. package/core/testing/wait-for-image-ready.d.ts +0 -3
  470. package/core/testing/wait-for-image-ready.d.ts.map +0 -1
  471. package/core/testing/wait-for-render.d.ts +0 -17
  472. package/core/testing/wait-for-render.d.ts.map +0 -1
  473. package/core/testing.d.ts +0 -9
  474. package/core/testing.d.ts.map +0 -1
  475. package/date-input/date-input.component.d.ts +0 -88
  476. package/date-input/date-input.component.d.ts.map +0 -1
  477. package/date-input.d.ts +0 -5
  478. package/date-input.d.ts.map +0 -1
  479. package/datepicker/common/datepicker-button.d.ts +0 -42
  480. package/datepicker/common/datepicker-button.d.ts.map +0 -1
  481. package/datepicker/common.d.ts +0 -5
  482. package/datepicker/common.d.ts.map +0 -1
  483. package/datepicker/datepicker/datepicker.component.d.ts +0 -41
  484. package/datepicker/datepicker/datepicker.component.d.ts.map +0 -1
  485. package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +0 -19
  486. package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +0 -1
  487. package/datepicker/datepicker-next-day.d.ts +0 -5
  488. package/datepicker/datepicker-next-day.d.ts.map +0 -1
  489. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +0 -19
  490. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +0 -1
  491. package/datepicker/datepicker-previous-day.d.ts +0 -5
  492. package/datepicker/datepicker-previous-day.d.ts.map +0 -1
  493. package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +0 -21
  494. package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +0 -1
  495. package/datepicker/datepicker-toggle.d.ts +0 -5
  496. package/datepicker/datepicker-toggle.d.ts.map +0 -1
  497. package/datepicker/datepicker.d.ts +0 -5
  498. package/datepicker/datepicker.d.ts.map +0 -1
  499. package/datepicker.d.ts +0 -9
  500. package/datepicker.d.ts.map +0 -1
  501. package/dialog/dialog/dialog.component.d.ts +0 -51
  502. package/dialog/dialog/dialog.component.d.ts.map +0 -1
  503. package/dialog/dialog-actions/dialog-actions.component.d.ts +0 -17
  504. package/dialog/dialog-actions/dialog-actions.component.d.ts.map +0 -1
  505. package/dialog/dialog-actions.d.ts +0 -5
  506. package/dialog/dialog-actions.d.ts.map +0 -1
  507. package/dialog/dialog-close-button/dialog-close-button.component.d.ts +0 -22
  508. package/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +0 -1
  509. package/dialog/dialog-close-button.d.ts +0 -5
  510. package/dialog/dialog-close-button.d.ts.map +0 -1
  511. package/dialog/dialog-content/dialog-content.component.d.ts +0 -17
  512. package/dialog/dialog-content/dialog-content.component.d.ts.map +0 -1
  513. package/dialog/dialog-content.d.ts +0 -5
  514. package/dialog/dialog-content.d.ts.map +0 -1
  515. package/dialog/dialog-title/dialog-title.component.d.ts +0 -19
  516. package/dialog/dialog-title/dialog-title.component.d.ts.map +0 -1
  517. package/dialog/dialog-title.d.ts +0 -5
  518. package/dialog/dialog-title.d.ts.map +0 -1
  519. package/dialog/dialog.d.ts +0 -5
  520. package/dialog/dialog.d.ts.map +0 -1
  521. package/dialog.d.ts +0 -9
  522. package/dialog.d.ts.map +0 -1
  523. package/divider/divider.component.d.ts +0 -21
  524. package/divider/divider.component.d.ts.map +0 -1
  525. package/divider.d.ts +0 -5
  526. package/divider.d.ts.map +0 -1
  527. package/expansion-panel/expansion-panel/expansion-panel.component.d.ts +0 -64
  528. package/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +0 -1
  529. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +0 -22
  530. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +0 -1
  531. package/expansion-panel/expansion-panel-content.d.ts +0 -5
  532. package/expansion-panel/expansion-panel-content.d.ts.map +0 -1
  533. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +0 -36
  534. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +0 -1
  535. package/expansion-panel/expansion-panel-header.d.ts +0 -5
  536. package/expansion-panel/expansion-panel-header.d.ts.map +0 -1
  537. package/expansion-panel/expansion-panel.d.ts +0 -5
  538. package/expansion-panel/expansion-panel.d.ts.map +0 -1
  539. package/expansion-panel.d.ts +0 -7
  540. package/expansion-panel.d.ts.map +0 -1
  541. package/file-selector/common/file-selector-common.d.ts +0 -25
  542. package/file-selector/common/file-selector-common.d.ts.map +0 -1
  543. package/file-selector/common.d.ts +0 -5
  544. package/file-selector/common.d.ts.map +0 -1
  545. package/file-selector/file-selector/file-selector.component.d.ts +0 -21
  546. package/file-selector/file-selector/file-selector.component.d.ts.map +0 -1
  547. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +0 -23
  548. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +0 -1
  549. package/file-selector/file-selector-dropzone.d.ts +0 -5
  550. package/file-selector/file-selector-dropzone.d.ts.map +0 -1
  551. package/file-selector/file-selector.d.ts +0 -5
  552. package/file-selector/file-selector.d.ts.map +0 -1
  553. package/file-selector.d.ts +0 -7
  554. package/file-selector.d.ts.map +0 -1
  555. package/flip-card/flip-card/flip-card.component.d.ts +0 -47
  556. package/flip-card/flip-card/flip-card.component.d.ts.map +0 -1
  557. package/flip-card/flip-card-details/flip-card-details.component.d.ts +0 -21
  558. package/flip-card/flip-card-details/flip-card-details.component.d.ts.map +0 -1
  559. package/flip-card/flip-card-details.d.ts +0 -5
  560. package/flip-card/flip-card-details.d.ts.map +0 -1
  561. package/flip-card/flip-card-summary/flip-card-summary.component.d.ts +0 -21
  562. package/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +0 -1
  563. package/flip-card/flip-card-summary.d.ts +0 -5
  564. package/flip-card/flip-card-summary.d.ts.map +0 -1
  565. package/flip-card/flip-card.d.ts +0 -5
  566. package/flip-card/flip-card.d.ts.map +0 -1
  567. package/flip-card.d.ts +0 -7
  568. package/flip-card.d.ts.map +0 -1
  569. package/footer/footer.component.d.ts +0 -34
  570. package/footer/footer.component.d.ts.map +0 -1
  571. package/footer.d.ts +0 -5
  572. package/footer.d.ts.map +0 -1
  573. package/form-field/error/error.component.d.ts +0 -20
  574. package/form-field/error/error.component.d.ts.map +0 -1
  575. package/form-field/error.d.ts +0 -5
  576. package/form-field/error.d.ts.map +0 -1
  577. package/form-field/form-field/form-field.component.d.ts +0 -125
  578. package/form-field/form-field/form-field.component.d.ts.map +0 -1
  579. package/form-field/form-field-clear/form-field-clear.component.d.ts +0 -23
  580. package/form-field/form-field-clear/form-field-clear.component.d.ts.map +0 -1
  581. package/form-field/form-field-clear.d.ts +0 -5
  582. package/form-field/form-field-clear.d.ts.map +0 -1
  583. package/form-field/form-field.d.ts +0 -5
  584. package/form-field/form-field.d.ts.map +0 -1
  585. package/form-field.d.ts +0 -7
  586. package/form-field.d.ts.map +0 -1
  587. package/header/common/header-action-common.d.ts +0 -10
  588. package/header/common/header-action-common.d.ts.map +0 -1
  589. package/header/common.d.ts +0 -5
  590. package/header/common.d.ts.map +0 -1
  591. package/header/header/header.component.d.ts +0 -65
  592. package/header/header/header.component.d.ts.map +0 -1
  593. package/header/header-button/header-button.component.d.ts +0 -17
  594. package/header/header-button/header-button.component.d.ts.map +0 -1
  595. package/header/header-button.d.ts +0 -5
  596. package/header/header-button.d.ts.map +0 -1
  597. package/header/header-environment/header-environment.component.d.ts +0 -24
  598. package/header/header-environment/header-environment.component.d.ts.map +0 -1
  599. package/header/header-environment.d.ts +0 -5
  600. package/header/header-environment.d.ts.map +0 -1
  601. package/header/header-link/header-link.component.d.ts +0 -17
  602. package/header/header-link/header-link.component.d.ts.map +0 -1
  603. package/header/header-link.d.ts +0 -5
  604. package/header/header-link.d.ts.map +0 -1
  605. package/header/header.d.ts +0 -5
  606. package/header/header.d.ts.map +0 -1
  607. package/header.d.ts +0 -8
  608. package/header.d.ts.map +0 -1
  609. package/icon/icon-base.d.ts +0 -29
  610. package/icon/icon-base.d.ts.map +0 -1
  611. package/icon/icon-name-mixin.d.ts +0 -12
  612. package/icon/icon-name-mixin.d.ts.map +0 -1
  613. package/icon/icon-request.d.ts +0 -3
  614. package/icon/icon-request.d.ts.map +0 -1
  615. package/icon/icon-validate.d.ts +0 -12
  616. package/icon/icon-validate.d.ts.map +0 -1
  617. package/icon/icon.component.d.ts +0 -36
  618. package/icon/icon.component.d.ts.map +0 -1
  619. package/icon-sidebar/icon-sidebar/icon-sidebar.component.d.ts +0 -25
  620. package/icon-sidebar/icon-sidebar/icon-sidebar.component.d.ts.map +0 -1
  621. package/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts +0 -22
  622. package/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +0 -1
  623. package/icon-sidebar/icon-sidebar-button.d.ts +0 -5
  624. package/icon-sidebar/icon-sidebar-button.d.ts.map +0 -1
  625. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.d.ts +0 -23
  626. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.d.ts.map +0 -1
  627. package/icon-sidebar/icon-sidebar-container.d.ts +0 -5
  628. package/icon-sidebar/icon-sidebar-container.d.ts.map +0 -1
  629. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.d.ts +0 -17
  630. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.d.ts.map +0 -1
  631. package/icon-sidebar/icon-sidebar-content.d.ts +0 -5
  632. package/icon-sidebar/icon-sidebar-content.d.ts.map +0 -1
  633. package/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts +0 -22
  634. package/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +0 -1
  635. package/icon-sidebar/icon-sidebar-link.d.ts +0 -5
  636. package/icon-sidebar/icon-sidebar-link.d.ts.map +0 -1
  637. package/icon-sidebar/icon-sidebar.d.ts +0 -5
  638. package/icon-sidebar/icon-sidebar.d.ts.map +0 -1
  639. package/icon-sidebar.d.ts +0 -9
  640. package/icon-sidebar.d.ts.map +0 -1
  641. package/icon.d.ts +0 -9
  642. package/icon.d.ts.map +0 -1
  643. package/image/image.component.d.ts +0 -215
  644. package/image/image.component.d.ts.map +0 -1
  645. package/image.d.ts +0 -5
  646. package/image.d.ts.map +0 -1
  647. package/journey-header/journey-header.component.d.ts +0 -32
  648. package/journey-header/journey-header.component.d.ts.map +0 -1
  649. package/journey-header.d.ts +0 -5
  650. package/journey-header.d.ts.map +0 -1
  651. package/lead-container/lead-container.component.d.ts +0 -21
  652. package/lead-container/lead-container.component.d.ts.map +0 -1
  653. package/lead-container.d.ts +0 -5
  654. package/lead-container.d.ts.map +0 -1
  655. package/link/block-link/block-link.component.d.ts +0 -17
  656. package/link/block-link/block-link.component.d.ts.map +0 -1
  657. package/link/block-link-button/block-link-button.component.d.ts +0 -17
  658. package/link/block-link-button/block-link-button.component.d.ts.map +0 -1
  659. package/link/block-link-button.d.ts +0 -5
  660. package/link/block-link-button.d.ts.map +0 -1
  661. package/link/block-link-static/block-link-static.component.d.ts +0 -17
  662. package/link/block-link-static/block-link-static.component.d.ts.map +0 -1
  663. package/link/block-link-static.d.ts +0 -5
  664. package/link/block-link-static.d.ts.map +0 -1
  665. package/link/block-link.d.ts +0 -5
  666. package/link/block-link.d.ts.map +0 -1
  667. package/link/common/block-link-common.d.ts +0 -10
  668. package/link/common/block-link-common.d.ts.map +0 -1
  669. package/link/common/inline-link-common.d.ts +0 -8
  670. package/link/common/inline-link-common.d.ts.map +0 -1
  671. package/link/common/link-common.d.ts +0 -10
  672. package/link/common/link-common.d.ts.map +0 -1
  673. package/link/common.d.ts +0 -7
  674. package/link/common.d.ts.map +0 -1
  675. package/link/link/link.component.d.ts +0 -16
  676. package/link/link/link.component.d.ts.map +0 -1
  677. package/link/link-button/link-button.component.d.ts +0 -16
  678. package/link/link-button/link-button.component.d.ts.map +0 -1
  679. package/link/link-button.d.ts +0 -5
  680. package/link/link-button.d.ts.map +0 -1
  681. package/link/link-static/link-static.component.d.ts +0 -16
  682. package/link/link-static/link-static.component.d.ts.map +0 -1
  683. package/link/link-static.d.ts +0 -5
  684. package/link/link-static.d.ts.map +0 -1
  685. package/link/link.d.ts +0 -5
  686. package/link/link.d.ts.map +0 -1
  687. package/link-list/common/link-list-base.d.ts +0 -28
  688. package/link-list/common/link-list-base.d.ts.map +0 -1
  689. package/link-list/common.d.ts +0 -5
  690. package/link-list/common.d.ts.map +0 -1
  691. package/link-list/link-list/link-list.component.d.ts +0 -22
  692. package/link-list/link-list/link-list.component.d.ts.map +0 -1
  693. package/link-list/link-list-anchor/link-list-anchor.component.d.ts +0 -17
  694. package/link-list/link-list-anchor/link-list-anchor.component.d.ts.map +0 -1
  695. package/link-list/link-list-anchor.d.ts +0 -5
  696. package/link-list/link-list-anchor.d.ts.map +0 -1
  697. package/link-list/link-list.d.ts +0 -5
  698. package/link-list/link-list.d.ts.map +0 -1
  699. package/link-list.d.ts +0 -7
  700. package/link-list.d.ts.map +0 -1
  701. package/link.d.ts +0 -11
  702. package/link.d.ts.map +0 -1
  703. package/loading-indicator/loading-indicator.component.d.ts +0 -22
  704. package/loading-indicator/loading-indicator.component.d.ts.map +0 -1
  705. package/loading-indicator-circle/loading-indicator-circle.component.d.ts +0 -20
  706. package/loading-indicator-circle/loading-indicator-circle.component.d.ts.map +0 -1
  707. package/loading-indicator-circle.d.ts +0 -5
  708. package/loading-indicator-circle.d.ts.map +0 -1
  709. package/loading-indicator.d.ts +0 -5
  710. package/loading-indicator.d.ts.map +0 -1
  711. package/logo/logo.component.d.ts +0 -23
  712. package/logo/logo.component.d.ts.map +0 -1
  713. package/logo.d.ts +0 -5
  714. package/logo.d.ts.map +0 -1
  715. package/map-container/map-container.component.d.ts +0 -47
  716. package/map-container/map-container.component.d.ts.map +0 -1
  717. package/map-container.d.ts +0 -5
  718. package/map-container.d.ts.map +0 -1
  719. package/menu/common/menu-action-common.d.ts +0 -8
  720. package/menu/common/menu-action-common.d.ts.map +0 -1
  721. package/menu/common.d.ts +0 -5
  722. package/menu/common.d.ts.map +0 -1
  723. package/menu/menu/menu.component.d.ts +0 -79
  724. package/menu/menu/menu.component.d.ts.map +0 -1
  725. package/menu/menu-button/menu-button.component.d.ts +0 -20
  726. package/menu/menu-button/menu-button.component.d.ts.map +0 -1
  727. package/menu/menu-button.d.ts +0 -5
  728. package/menu/menu-button.d.ts.map +0 -1
  729. package/menu/menu-link/menu-link.component.d.ts +0 -20
  730. package/menu/menu-link/menu-link.component.d.ts.map +0 -1
  731. package/menu/menu-link.d.ts +0 -5
  732. package/menu/menu-link.d.ts.map +0 -1
  733. package/menu/menu.d.ts +0 -5
  734. package/menu/menu.d.ts.map +0 -1
  735. package/menu.d.ts +0 -8
  736. package/menu.d.ts.map +0 -1
  737. package/message/message.component.d.ts +0 -21
  738. package/message/message.component.d.ts.map +0 -1
  739. package/message.d.ts +0 -5
  740. package/message.d.ts.map +0 -1
  741. package/mini-calendar/mini-calendar/mini-calendar.component.d.ts +0 -35
  742. package/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +0 -1
  743. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.d.ts +0 -23
  744. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.d.ts.map +0 -1
  745. package/mini-calendar/mini-calendar-day.d.ts +0 -5
  746. package/mini-calendar/mini-calendar-day.d.ts.map +0 -1
  747. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts +0 -25
  748. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts.map +0 -1
  749. package/mini-calendar/mini-calendar-month.d.ts +0 -5
  750. package/mini-calendar/mini-calendar-month.d.ts.map +0 -1
  751. package/mini-calendar/mini-calendar.d.ts +0 -5
  752. package/mini-calendar/mini-calendar.d.ts.map +0 -1
  753. package/mini-calendar.d.ts +0 -7
  754. package/mini-calendar.d.ts.map +0 -1
  755. package/navigation/common/navigation-action-common.d.ts +0 -13
  756. package/navigation/common/navigation-action-common.d.ts.map +0 -1
  757. package/navigation/common.d.ts +0 -5
  758. package/navigation/common.d.ts.map +0 -1
  759. package/navigation/navigation/navigation.component.d.ts +0 -73
  760. package/navigation/navigation/navigation.component.d.ts.map +0 -1
  761. package/navigation/navigation-button/navigation-button.component.d.ts +0 -16
  762. package/navigation/navigation-button/navigation-button.component.d.ts.map +0 -1
  763. package/navigation/navigation-button.d.ts +0 -5
  764. package/navigation/navigation-button.d.ts.map +0 -1
  765. package/navigation/navigation-link/navigation-link.component.d.ts +0 -16
  766. package/navigation/navigation-link/navigation-link.component.d.ts.map +0 -1
  767. package/navigation/navigation-link.d.ts +0 -5
  768. package/navigation/navigation-link.d.ts.map +0 -1
  769. package/navigation/navigation-list/navigation-list.component.d.ts +0 -28
  770. package/navigation/navigation-list/navigation-list.component.d.ts.map +0 -1
  771. package/navigation/navigation-list.d.ts +0 -5
  772. package/navigation/navigation-list.d.ts.map +0 -1
  773. package/navigation/navigation-marker/navigation-marker.component.d.ts +0 -37
  774. package/navigation/navigation-marker/navigation-marker.component.d.ts.map +0 -1
  775. package/navigation/navigation-marker.d.ts +0 -5
  776. package/navigation/navigation-marker.d.ts.map +0 -1
  777. package/navigation/navigation-section/navigation-section.component.d.ts +0 -77
  778. package/navigation/navigation-section/navigation-section.component.d.ts.map +0 -1
  779. package/navigation/navigation-section.d.ts +0 -5
  780. package/navigation/navigation-section.d.ts.map +0 -1
  781. package/navigation/navigation.d.ts +0 -5
  782. package/navigation/navigation.d.ts.map +0 -1
  783. package/navigation.d.ts +0 -11
  784. package/navigation.d.ts.map +0 -1
  785. package/notification/notification.component.d.ts +0 -60
  786. package/notification/notification.component.d.ts.map +0 -1
  787. package/notification.d.ts +0 -5
  788. package/notification.d.ts.map +0 -1
  789. package/option/optgroup/optgroup-base-element.d.ts +0 -22
  790. package/option/optgroup/optgroup-base-element.d.ts.map +0 -1
  791. package/option/optgroup/optgroup.component.d.ts +0 -21
  792. package/option/optgroup/optgroup.component.d.ts.map +0 -1
  793. package/option/optgroup.d.ts +0 -6
  794. package/option/optgroup.d.ts.map +0 -1
  795. package/option/option/option-base-element.d.ts +0 -63
  796. package/option/option/option-base-element.d.ts.map +0 -1
  797. package/option/option/option.component.d.ts +0 -45
  798. package/option/option/option.component.d.ts.map +0 -1
  799. package/option/option-hint/option-hint.component.d.ts +0 -18
  800. package/option/option-hint/option-hint.component.d.ts.map +0 -1
  801. package/option/option-hint.d.ts +0 -5
  802. package/option/option-hint.d.ts.map +0 -1
  803. package/option/option.d.ts +0 -6
  804. package/option/option.d.ts.map +0 -1
  805. package/option.d.ts +0 -7
  806. package/option.d.ts.map +0 -1
  807. package/overlay/overlay-base-element.d.ts +0 -93
  808. package/overlay/overlay-base-element.d.ts.map +0 -1
  809. package/overlay/overlay.component.d.ts +0 -43
  810. package/overlay/overlay.component.d.ts.map +0 -1
  811. package/overlay.d.ts +0 -6
  812. package/overlay.d.ts.map +0 -1
  813. package/paginator/common/paginator-common.d.ts +0 -35
  814. package/paginator/common/paginator-common.d.ts.map +0 -1
  815. package/paginator/common.d.ts +0 -5
  816. package/paginator/common.d.ts.map +0 -1
  817. package/paginator/compact-paginator/compact-paginator.component.d.ts +0 -18
  818. package/paginator/compact-paginator/compact-paginator.component.d.ts.map +0 -1
  819. package/paginator/compact-paginator.d.ts +0 -5
  820. package/paginator/compact-paginator.d.ts.map +0 -1
  821. package/paginator/paginator/paginator.component.d.ts +0 -45
  822. package/paginator/paginator/paginator.component.d.ts.map +0 -1
  823. package/paginator/paginator.d.ts +0 -5
  824. package/paginator/paginator.d.ts.map +0 -1
  825. package/paginator.d.ts +0 -7
  826. package/paginator.d.ts.map +0 -1
  827. package/popover/popover.component.d.ts +0 -109
  828. package/popover/popover.component.d.ts.map +0 -1
  829. package/popover.d.ts +0 -5
  830. package/popover.d.ts.map +0 -1
  831. package/radio-button/common/radio-button-common.d.ts +0 -14
  832. package/radio-button/common/radio-button-common.d.ts.map +0 -1
  833. package/radio-button/common.d.ts +0 -5
  834. package/radio-button/common.d.ts.map +0 -1
  835. package/radio-button/radio-button/radio-button.component.d.ts +0 -35
  836. package/radio-button/radio-button/radio-button.component.d.ts.map +0 -1
  837. package/radio-button/radio-button-group/radio-button-group.component.d.ts +0 -78
  838. package/radio-button/radio-button-group/radio-button-group.component.d.ts.map +0 -1
  839. package/radio-button/radio-button-group.d.ts +0 -5
  840. package/radio-button/radio-button-group.d.ts.map +0 -1
  841. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts +0 -44
  842. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +0 -1
  843. package/radio-button/radio-button-panel.d.ts +0 -5
  844. package/radio-button/radio-button-panel.d.ts.map +0 -1
  845. package/radio-button/radio-button.d.ts +0 -5
  846. package/radio-button/radio-button.d.ts.map +0 -1
  847. package/radio-button.d.ts +0 -8
  848. package/radio-button.d.ts.map +0 -1
  849. package/screen-reader-only/screen-reader-only.component.d.ts +0 -16
  850. package/screen-reader-only/screen-reader-only.component.d.ts.map +0 -1
  851. package/screen-reader-only.d.ts +0 -5
  852. package/screen-reader-only.d.ts.map +0 -1
  853. package/select/select.component.d.ts +0 -171
  854. package/select/select.component.d.ts.map +0 -1
  855. package/select.d.ts +0 -5
  856. package/select.d.ts.map +0 -1
  857. package/selection-action-panel/selection-action-panel.component.d.ts +0 -21
  858. package/selection-action-panel/selection-action-panel.component.d.ts.map +0 -1
  859. package/selection-action-panel.d.ts +0 -5
  860. package/selection-action-panel.d.ts.map +0 -1
  861. package/selection-expansion-panel/selection-expansion-panel.component.d.ts +0 -45
  862. package/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +0 -1
  863. package/selection-expansion-panel.d.ts +0 -5
  864. package/selection-expansion-panel.d.ts.map +0 -1
  865. package/sidebar/common.d.ts +0 -4
  866. package/sidebar/common.d.ts.map +0 -1
  867. package/sidebar/sidebar/sidebar.component.d.ts +0 -66
  868. package/sidebar/sidebar/sidebar.component.d.ts.map +0 -1
  869. package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +0 -23
  870. package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +0 -1
  871. package/sidebar/sidebar-close-button.d.ts +0 -5
  872. package/sidebar/sidebar-close-button.d.ts.map +0 -1
  873. package/sidebar/sidebar-container/sidebar-container.component.d.ts +0 -34
  874. package/sidebar/sidebar-container/sidebar-container.component.d.ts.map +0 -1
  875. package/sidebar/sidebar-container.d.ts +0 -5
  876. package/sidebar/sidebar-container.d.ts.map +0 -1
  877. package/sidebar/sidebar-content/sidebar-content.component.d.ts +0 -18
  878. package/sidebar/sidebar-content/sidebar-content.component.d.ts.map +0 -1
  879. package/sidebar/sidebar-content.d.ts +0 -5
  880. package/sidebar/sidebar-content.d.ts.map +0 -1
  881. package/sidebar/sidebar-title/sidebar-title.component.d.ts +0 -20
  882. package/sidebar/sidebar-title/sidebar-title.component.d.ts.map +0 -1
  883. package/sidebar/sidebar-title.d.ts +0 -5
  884. package/sidebar/sidebar-title.d.ts.map +0 -1
  885. package/sidebar/sidebar.d.ts +0 -5
  886. package/sidebar/sidebar.d.ts.map +0 -1
  887. package/sidebar.d.ts +0 -10
  888. package/sidebar.d.ts.map +0 -1
  889. package/signet/signet.component.d.ts +0 -22
  890. package/signet/signet.component.d.ts.map +0 -1
  891. package/signet.d.ts +0 -5
  892. package/signet.d.ts.map +0 -1
  893. package/skiplink-list/skiplink-list.component.d.ts +0 -33
  894. package/skiplink-list/skiplink-list.component.d.ts.map +0 -1
  895. package/skiplink-list.d.ts +0 -5
  896. package/skiplink-list.d.ts.map +0 -1
  897. package/slider/slider.component.d.ts +0 -79
  898. package/slider/slider.component.d.ts.map +0 -1
  899. package/slider.d.ts +0 -5
  900. package/slider.d.ts.map +0 -1
  901. package/status/status.component.d.ts +0 -31
  902. package/status/status.component.d.ts.map +0 -1
  903. package/status.d.ts +0 -5
  904. package/status.d.ts.map +0 -1
  905. package/stepper/step/step.component.d.ts +0 -75
  906. package/stepper/step/step.component.d.ts.map +0 -1
  907. package/stepper/step-label/step-label.component.d.ts +0 -47
  908. package/stepper/step-label/step-label.component.d.ts.map +0 -1
  909. package/stepper/step-label.d.ts +0 -5
  910. package/stepper/step-label.d.ts.map +0 -1
  911. package/stepper/step.d.ts +0 -5
  912. package/stepper/step.d.ts.map +0 -1
  913. package/stepper/stepper/stepper.component.d.ts +0 -94
  914. package/stepper/stepper/stepper.component.d.ts.map +0 -1
  915. package/stepper/stepper.d.ts +0 -5
  916. package/stepper/stepper.d.ts.map +0 -1
  917. package/stepper.d.ts +0 -7
  918. package/stepper.d.ts.map +0 -1
  919. package/table/table-wrapper/table-wrapper.component.d.ts +0 -31
  920. package/table/table-wrapper/table-wrapper.component.d.ts.map +0 -1
  921. package/table/table-wrapper.d.ts +0 -5
  922. package/table/table-wrapper.d.ts.map +0 -1
  923. package/table.d.ts +0 -5
  924. package/table.d.ts.map +0 -1
  925. package/tabs/common.d.ts +0 -4
  926. package/tabs/common.d.ts.map +0 -1
  927. package/tabs/tab/tab.component.d.ts +0 -36
  928. package/tabs/tab/tab.component.d.ts.map +0 -1
  929. package/tabs/tab-group/tab-group.component.d.ts +0 -76
  930. package/tabs/tab-group/tab-group.component.d.ts.map +0 -1
  931. package/tabs/tab-group.d.ts +0 -5
  932. package/tabs/tab-group.d.ts.map +0 -1
  933. package/tabs/tab-label/tab-label.component.d.ts +0 -51
  934. package/tabs/tab-label/tab-label.component.d.ts.map +0 -1
  935. package/tabs/tab-label.d.ts +0 -5
  936. package/tabs/tab-label.d.ts.map +0 -1
  937. package/tabs/tab-nav-bar/tab-nav-bar.component.d.ts +0 -30
  938. package/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +0 -1
  939. package/tabs/tab-nav-bar.d.ts +0 -5
  940. package/tabs/tab-nav-bar.d.ts.map +0 -1
  941. package/tabs/tab.d.ts +0 -5
  942. package/tabs/tab.d.ts.map +0 -1
  943. package/tabs.d.ts +0 -8
  944. package/tabs.d.ts.map +0 -1
  945. package/tag/tag/tag.component.d.ts +0 -58
  946. package/tag/tag/tag.component.d.ts.map +0 -1
  947. package/tag/tag-group/tag-group.component.d.ts +0 -50
  948. package/tag/tag-group/tag-group.component.d.ts.map +0 -1
  949. package/tag/tag-group.d.ts +0 -5
  950. package/tag/tag-group.d.ts.map +0 -1
  951. package/tag/tag.d.ts +0 -5
  952. package/tag/tag.d.ts.map +0 -1
  953. package/tag.d.ts +0 -6
  954. package/tag.d.ts.map +0 -1
  955. package/teaser/teaser.component.d.ts +0 -26
  956. package/teaser/teaser.component.d.ts.map +0 -1
  957. package/teaser-hero/teaser-hero.component.d.ts +0 -23
  958. package/teaser-hero/teaser-hero.component.d.ts.map +0 -1
  959. package/teaser-hero.d.ts +0 -5
  960. package/teaser-hero.d.ts.map +0 -1
  961. package/teaser-product/common/teaser-product-common.d.ts +0 -9
  962. package/teaser-product/common/teaser-product-common.d.ts.map +0 -1
  963. package/teaser-product/common.d.ts +0 -5
  964. package/teaser-product/common.d.ts.map +0 -1
  965. package/teaser-product/teaser-product/teaser-product.component.d.ts +0 -23
  966. package/teaser-product/teaser-product/teaser-product.component.d.ts.map +0 -1
  967. package/teaser-product/teaser-product-static/teaser-product-static.component.d.ts +0 -22
  968. package/teaser-product/teaser-product-static/teaser-product-static.component.d.ts.map +0 -1
  969. package/teaser-product/teaser-product-static.d.ts +0 -5
  970. package/teaser-product/teaser-product-static.d.ts.map +0 -1
  971. package/teaser-product/teaser-product.d.ts +0 -5
  972. package/teaser-product/teaser-product.d.ts.map +0 -1
  973. package/teaser-product.d.ts +0 -7
  974. package/teaser-product.d.ts.map +0 -1
  975. package/teaser.d.ts +0 -5
  976. package/teaser.d.ts.map +0 -1
  977. package/time-input/time-input.component.d.ts +0 -49
  978. package/time-input/time-input.component.d.ts.map +0 -1
  979. package/time-input.d.ts +0 -5
  980. package/time-input.d.ts.map +0 -1
  981. package/timetable-form/timetable-form/timetable-form.component.d.ts +0 -17
  982. package/timetable-form/timetable-form/timetable-form.component.d.ts.map +0 -1
  983. package/timetable-form/timetable-form-details/timetable-form-details.component.d.ts +0 -16
  984. package/timetable-form/timetable-form-details/timetable-form-details.component.d.ts.map +0 -1
  985. package/timetable-form/timetable-form-details.d.ts +0 -5
  986. package/timetable-form/timetable-form-details.d.ts.map +0 -1
  987. package/timetable-form/timetable-form-field/timetable-form-field.component.d.ts +0 -18
  988. package/timetable-form/timetable-form-field/timetable-form-field.component.d.ts.map +0 -1
  989. package/timetable-form/timetable-form-field.d.ts +0 -5
  990. package/timetable-form/timetable-form-field.d.ts.map +0 -1
  991. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +0 -24
  992. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +0 -1
  993. package/timetable-form/timetable-form-swap-button.d.ts +0 -5
  994. package/timetable-form/timetable-form-swap-button.d.ts.map +0 -1
  995. package/timetable-form/timetable-form.d.ts +0 -5
  996. package/timetable-form/timetable-form.d.ts.map +0 -1
  997. package/timetable-form.d.ts +0 -8
  998. package/timetable-form.d.ts.map +0 -1
  999. package/timetable-occupancy/timetable-occupancy.component.d.ts +0 -22
  1000. package/timetable-occupancy/timetable-occupancy.component.d.ts.map +0 -1
  1001. package/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts +0 -28
  1002. package/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +0 -1
  1003. package/timetable-occupancy-icon.d.ts +0 -5
  1004. package/timetable-occupancy-icon.d.ts.map +0 -1
  1005. package/timetable-occupancy.d.ts +0 -5
  1006. package/timetable-occupancy.d.ts.map +0 -1
  1007. package/title/title-base.d.ts +0 -18
  1008. package/title/title-base.d.ts.map +0 -1
  1009. package/title/title.component.d.ts +0 -20
  1010. package/title/title.component.d.ts.map +0 -1
  1011. package/title.d.ts +0 -6
  1012. package/title.d.ts.map +0 -1
  1013. package/toast/toast.component.d.ts +0 -73
  1014. package/toast/toast.component.d.ts.map +0 -1
  1015. package/toast.d.ts +0 -5
  1016. package/toast.d.ts.map +0 -1
  1017. package/toggle/toggle/toggle.component.d.ts +0 -71
  1018. package/toggle/toggle/toggle.component.d.ts.map +0 -1
  1019. package/toggle/toggle-option/toggle-option.component.d.ts +0 -35
  1020. package/toggle/toggle-option/toggle-option.component.d.ts.map +0 -1
  1021. package/toggle/toggle-option.d.ts +0 -5
  1022. package/toggle/toggle-option.d.ts.map +0 -1
  1023. package/toggle/toggle.d.ts +0 -5
  1024. package/toggle/toggle.d.ts.map +0 -1
  1025. package/toggle-check/toggle-check.component.d.ts +0 -33
  1026. package/toggle-check/toggle-check.component.d.ts.map +0 -1
  1027. package/toggle-check.d.ts +0 -5
  1028. package/toggle-check.d.ts.map +0 -1
  1029. package/toggle.d.ts +0 -6
  1030. package/toggle.d.ts.map +0 -1
  1031. package/tooltip/tooltip.component.d.ts +0 -96
  1032. package/tooltip/tooltip.component.d.ts.map +0 -1
  1033. package/tooltip.d.ts +0 -5
  1034. package/tooltip.d.ts.map +0 -1
  1035. package/train/train/train.component.d.ts +0 -42
  1036. package/train/train/train.component.d.ts.map +0 -1
  1037. package/train/train-blocked-passage/train-blocked-passage.component.d.ts +0 -14
  1038. package/train/train-blocked-passage/train-blocked-passage.component.d.ts.map +0 -1
  1039. package/train/train-blocked-passage.d.ts +0 -5
  1040. package/train/train-blocked-passage.d.ts.map +0 -1
  1041. package/train/train-formation/train-formation.component.d.ts +0 -29
  1042. package/train/train-formation/train-formation.component.d.ts.map +0 -1
  1043. package/train/train-formation.d.ts +0 -5
  1044. package/train/train-formation.d.ts.map +0 -1
  1045. package/train/train-wagon/train-wagon.component.d.ts +0 -44
  1046. package/train/train-wagon/train-wagon.component.d.ts.map +0 -1
  1047. package/train/train-wagon.d.ts +0 -5
  1048. package/train/train-wagon.d.ts.map +0 -1
  1049. package/train/train.d.ts +0 -5
  1050. package/train/train.d.ts.map +0 -1
  1051. package/train.d.ts +0 -8
  1052. package/train.d.ts.map +0 -1
  1053. package/visual-checkbox/visual-checkbox.component.d.ts +0 -26
  1054. package/visual-checkbox/visual-checkbox.component.d.ts.map +0 -1
  1055. package/visual-checkbox.d.ts +0 -5
  1056. package/visual-checkbox.d.ts.map +0 -1
  1057. /package/core/styles/{node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss → core/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss} +0 -0
@@ -1,4 +1,4 @@
1
- import { CSSResultGroup, LitElement, TemplateResult, PropertyValues } from 'lit';
1
+ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
2
  import { SbbHorizontalFrom, SbbOrientation } from '../../core/interfaces.ts';
3
3
  import { SbbStepElement } from '../step.ts';
4
4
  export declare class SbbStepChangeEvent extends Event {
@@ -34,7 +34,7 @@ export declare class SbbStepperElement extends SbbStepperElement_base {
34
34
  private _observer;
35
35
  /** If set to true, only the current and previous labels can be clicked and selected. */
36
36
  accessor linear: boolean;
37
- /** Overrides the behaviour of `orientation` property. */
37
+ /** Overrides the behavior of `orientation` property. */
38
38
  set horizontalFrom(value: SbbHorizontalFrom | null);
39
39
  get horizontalFrom(): SbbHorizontalFrom | null;
40
40
  private _horizontalFrom;
@@ -48,9 +48,11 @@ export declare class SbbStepperElement extends SbbStepperElement_base {
48
48
  /** The currently selected step. */
49
49
  set selected(step: SbbStepElement | null);
50
50
  get selected(): SbbStepElement | null;
51
+ private _requestedSelected;
51
52
  /** The currently selected step index. */
52
53
  set selectedIndex(index: number | null);
53
54
  get selectedIndex(): number | null;
55
+ private _requestedSelectedIndex;
54
56
  /** The steps of the stepper. */
55
57
  get steps(): SbbStepElement[];
56
58
  private get _enabledSteps();
@@ -64,7 +66,7 @@ export declare class SbbStepperElement extends SbbStepperElement_base {
64
66
  previous(): void;
65
67
  /** Resets the form in which the stepper is nested or every form of each step, if any. */
66
68
  reset(): void;
67
- private _isValidStep;
69
+ private _isSelectable;
68
70
  private _select;
69
71
  private _setMarkerSize;
70
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stepper.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/stepper/stepper/stepper.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stepper.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/stepper/stepper/stepper.component.ts"],"names":[],"mappings":"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"}
@@ -151,7 +151,9 @@ let SbbStepperElement = (() => {
151
151
  this._horizontalFrom = (__runInitializers(this, _linear_extraInitializers), null);
152
152
  __privateSet(this, _orientation_accessor_storage, __runInitializers(this, _orientation_initializers, "horizontal"));
153
153
  __privateSet(this, _size_accessor_storage, (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _size_initializers, isLean() ? "s" : "m")));
154
- this._loaded = (__runInitializers(this, _size_extraInitializers), false);
154
+ this._requestedSelected = (__runInitializers(this, _size_extraInitializers), null);
155
+ this._requestedSelectedIndex = null;
156
+ this._loaded = false;
155
157
  this._resizeObserverTimeout = null;
156
158
  this._mediaMatcher = new SbbMediaMatcherController(this, {});
157
159
  this._onStepperResize = () => {
@@ -171,7 +173,7 @@ let SbbStepperElement = (() => {
171
173
  set linear(value) {
172
174
  __privateSet(this, _linear_accessor_storage, value);
173
175
  }
174
- /** Overrides the behaviour of `orientation` property. */
176
+ /** Overrides the behavior of `orientation` property. */
175
177
  set horizontalFrom(value) {
176
178
  this._horizontalFrom = value && breakpointMap[value] ? value : null;
177
179
  if (this._horizontalFrom && this._loaded) {
@@ -203,6 +205,7 @@ let SbbStepperElement = (() => {
203
205
  if (this._loaded) {
204
206
  this._select(step);
205
207
  }
208
+ this._requestedSelected = step;
206
209
  }
207
210
  get selected() {
208
211
  return this.querySelector?.("sbb-step:is(:state(selected),[state--selected])") ?? null;
@@ -212,16 +215,28 @@ let SbbStepperElement = (() => {
212
215
  if (this._loaded && index !== null) {
213
216
  this._select(this.steps[index]);
214
217
  }
218
+ this._requestedSelectedIndex = index;
215
219
  }
216
220
  get selectedIndex() {
217
221
  return this.selected ? this.steps.indexOf(this.selected) : null;
218
222
  }
219
223
  /** The steps of the stepper. */
220
224
  get steps() {
221
- return Array.from(this.querySelectorAll?.("sbb-step") ?? []);
225
+ const steps = [];
226
+ this.querySelectorAll?.("sbb-step").forEach((step) => {
227
+ customElements.upgrade(step);
228
+ steps.push(step);
229
+ });
230
+ return steps;
222
231
  }
223
232
  get _enabledSteps() {
224
- return this.steps.filter((s) => !s.label?.hasAttribute("disabled"));
233
+ return this.steps.filter((s) => {
234
+ if (s.label) {
235
+ customElements.upgrade(s.label);
236
+ return !s.label.disabled;
237
+ }
238
+ return false;
239
+ });
225
240
  }
226
241
  /** Selects the next step. */
227
242
  next() {
@@ -248,21 +263,22 @@ let SbbStepperElement = (() => {
248
263
  this.selected?.label?.focus();
249
264
  }
250
265
  }
251
- _isValidStep(step) {
252
- if (!step || !this.linear && step.label?.hasAttribute("disabled")) {
266
+ _isSelectable(step) {
267
+ if (step) {
268
+ customElements.upgrade(step);
269
+ if (step.label) {
270
+ customElements.upgrade(step.label);
271
+ if (!this.linear && step.label.disabled) {
272
+ return false;
273
+ }
274
+ }
275
+ return true;
276
+ } else {
253
277
  return false;
254
278
  }
255
- if (this.linear && !this.selected) {
256
- return step === this.steps[0];
257
- }
258
- if (this.linear && this.selectedIndex !== null) {
259
- const index = this.steps.indexOf(step);
260
- return index < this.selectedIndex || index === this.selectedIndex + 1;
261
- }
262
- return true;
263
279
  }
264
280
  _select(step) {
265
- if (!this._isValidStep(step)) {
281
+ if (!this._isSelectable(step) || step === this.selected) {
266
282
  return;
267
283
  }
268
284
  const currentIndex = this.selectedIndex;
@@ -322,10 +338,9 @@ let SbbStepperElement = (() => {
322
338
  this._setStepperHeight(e.target);
323
339
  }
324
340
  _configure() {
325
- const steps = this.steps;
326
- steps.forEach((s) => s.configure(this._loaded));
327
- steps.filter((s) => s.label).map((s) => s.label).forEach((label, i, array) => {
328
- label.configure(i + 1, array.length, this._loaded);
341
+ this.steps.forEach((step, i, array) => {
342
+ step.configure(this._loaded);
343
+ step.label?.configure(i + 1, array.length, this._loaded);
329
344
  });
330
345
  this._select(this.selected || this._enabledSteps[0]);
331
346
  }
@@ -343,7 +358,11 @@ let SbbStepperElement = (() => {
343
358
  }
344
359
  _configureLinearMode() {
345
360
  this.steps.forEach((step, index) => {
346
- step.label?.toggleAttribute("disabled", this.linear && index > this.selectedIndex || !this.linear && step.label.matches(":is(:state(disabled),[state--disabled])"));
361
+ if (!step.label) {
362
+ return;
363
+ }
364
+ customElements.upgrade(step.label);
365
+ step.label.disable(this.linear && index > this.selectedIndex || !this.linear && step.label.matches(":is(:state(user-disabled),[state--user-disabled])"));
347
366
  });
348
367
  }
349
368
  connectedCallback() {
@@ -361,7 +380,14 @@ let SbbStepperElement = (() => {
361
380
  super.firstUpdated(changedProperties);
362
381
  this.updateComplete.then(() => {
363
382
  this._loaded = true;
364
- this.selectedIndex = this.linear ? 0 : Number(this.getAttribute("selected-index")) || 0;
383
+ this._configure();
384
+ if (this._requestedSelected && this.steps.indexOf(this._requestedSelected) !== -1) {
385
+ this.selectedIndex = this.steps.indexOf(this._requestedSelected);
386
+ } else if (this._requestedSelectedIndex) {
387
+ this.selectedIndex = this._requestedSelectedIndex;
388
+ } else {
389
+ this.selectedIndex = 0;
390
+ }
365
391
  this._observer.observe(this);
366
392
  this._checkOrientation();
367
393
  setTimeout(() => this.internals.states.delete("disable-animation"), DEBOUNCE_TIME);
@@ -443,4 +469,4 @@ export {
443
469
  SbbStepChangeEvent,
444
470
  SbbStepperElement
445
471
  };
446
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zdGVwcGVyL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJzZWN0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvaW50ZXJzZWN0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgTGl0RWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4LCBpc0Fycm93S2V5UHJlc3NlZCB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS50cyc7XG5pbXBvcnQge1xuICBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludExhcmdlQW5kQWJvdmUsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRBYm92ZSxcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRVbHRyYUFuZEFib3ZlLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFplcm9BbmRBYm92ZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy50cyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tLCBTYmJPcmllbnRhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy50cyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sIFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTdGVwRWxlbWVudCwgU2JiU3RlcFZhbGlkYXRlRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vc3RlcC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3N0ZXBwZXIuc2Nzcz9saXQmaW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuY29uc3QgYnJlYWtwb2ludE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgemVybzogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRaZXJvQW5kQWJvdmUsXG4gIHNtYWxsOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQWJvdmUsXG4gIGxhcmdlOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludExhcmdlQW5kQWJvdmUsXG4gIHVsdHJhOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFVsdHJhQW5kQWJvdmUsXG59O1xuXG5leHBvcnQgY2xhc3MgU2JiU3RlcENoYW5nZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICAvKiogVGhlIGluZGV4IG9mIHRoZSBuZXdseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbDtcblxuICAvKiogVGhlIGluZGV4IG9mIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHN0ZXAuICovXG4gIHB1YmxpYyByZWFkb25seSBwcmV2aW91c0luZGV4OiBudW1iZXIgfCBudWxsO1xuXG4gIC8qKiBUaGUgbmV3bHkgc2VsZWN0ZWQgc3RlcCBlbGVtZW50LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqIFRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHN0ZXAgZWxlbWVudC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHByZXZpb3VzU3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzZWxlY3RlZEluZGV4OiBudW1iZXIgfCBudWxsLFxuICAgIHByZXZpb3VzSW5kZXg6IG51bWJlciB8IG51bGwsXG4gICAgc2VsZWN0ZWRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwsXG4gICAgcHJldmlvdXNTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwsXG4gICkge1xuICAgIHN1cGVyKCdzdGVwY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgIHRoaXMucHJldmlvdXNJbmRleCA9IHByZXZpb3VzSW5kZXg7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBzZWxlY3RlZFN0ZXA7XG4gICAgdGhpcy5wcmV2aW91c1N0ZXAgPSBwcmV2aW91c1N0ZXA7XG4gIH1cbn1cbi8qKlxuICogUHJvdmlkZXMgYSBzdHJ1Y3R1cmVkLCBzdGVwLWJ5LXN0ZXAgd29ya2Zsb3cgZm9yIHVzZXIgaW50ZXJhY3Rpb25zLlxuICogQHNsb3QgLSBQcm92aWRlIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYCBhbmQgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50YCB0byB0aGUgc3RlcHBlci5cbiAqIEBzbG90IHN0ZXAtbGFiZWwgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gYHNiYi1zdGVwLWxhYmVsYC5cbiAqIEBzbG90IHN0ZXAgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gYHNiYi1zdGVwYC5cbiAqIEBldmVudCB7U2JiU3RlcENoYW5nZUV2ZW50fSBzdGVwY2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgYSBzdGVwIHdhcyBjaGFuZ2VkLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc3RlcHBlcicpXG5jbGFzcyBTYmJTdGVwcGVyRWxlbWVudCBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHN0ZXBjaGFuZ2U6ICdzdGVwY2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogSWYgdGhlIHNiYi1zdGVwcGVyIGlzIHVzZWQgaW4gYSBzYmItZGlhbG9nLCB0aGUgbWFya2VyIG9uIHRoZSBzZWxlY3RlZCBlbGVtZW50IHdpbGwgbm90IGFwcGVhcixcbiAgICogYmVjYXVzZSB0aGUgY2FsY3VsYXRpb25zIGFyZSBkb25lIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBtYXJrZXIgaGFzIGEgd2lkdGggb2YgMDtcbiAgICogdGhlIHNhbWUgaGFwcGVucyBmb3IgdGhlIHN0ZXBwZXIgaGVpZ2h0LlxuICAgKiBXZSBuZWVkIHRvIHJlY2FsY3VsYXRlIGl0IHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyB2aXNpYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4ge1xuICAgICAgZW50cmllcy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGlmIChlLmludGVyc2VjdGlvblJhdGlvID4gMCkge1xuICAgICAgICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICAvKiogSWYgc2V0IHRvIHRydWUsIG9ubHkgdGhlIGN1cnJlbnQgYW5kIHByZXZpb3VzIGxhYmVscyBjYW4gYmUgY2xpY2tlZCBhbmQgc2VsZWN0ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsaW5lYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvdXIgb2YgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaG9yaXpvbnRhbC1mcm9tJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgc2V0IGhvcml6b250YWxGcm9tKHZhbHVlOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwpIHtcbiAgICB0aGlzLl9ob3Jpem9udGFsRnJvbSA9IHZhbHVlICYmIGJyZWFrcG9pbnRNYXBbdmFsdWVdID8gdmFsdWUgOiBudWxsO1xuICAgIGlmICh0aGlzLl9ob3Jpem9udGFsRnJvbSAmJiB0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBob3Jpem9udGFsRnJvbSgpOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9ob3Jpem9udGFsRnJvbTtcbiAgfVxuICBwcml2YXRlIF9ob3Jpem9udGFsRnJvbTogU2JiSG9yaXpvbnRhbEZyb20gfCBudWxsID0gbnVsbDtcblxuICAvKiogU3RlcHMgb3JpZW50YXRpb24sIGVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gPSAnaG9yaXpvbnRhbCc7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgb3IgbS5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc3RlcC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdChzdGVwKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBTYmJTdGVwRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3I/LjxTYmJTdGVwRWxlbWVudD4oJ3NiYi1zdGVwOnN0YXRlKHNlbGVjdGVkKScpID8/IG51bGw7XG4gIH1cblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzdGVwIGluZGV4LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzZWxlY3RlZC1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkICYmIGluZGV4ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1tpbmRleF0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQgPyB0aGlzLnN0ZXBzLmluZGV4T2YodGhpcy5zZWxlY3RlZCkgOiBudWxsO1xuICB9XG5cbiAgLyoqIFRoZSBzdGVwcyBvZiB0aGUgc3RlcHBlci4gKi9cbiAgcHVibGljIGdldCBzdGVwcygpOiBTYmJTdGVwRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXN0ZXAnKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZW5hYmxlZFN0ZXBzKCk6IFNiYlN0ZXBFbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzLmZpbHRlcigocykgPT4gIXMubGFiZWw/Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7fSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5RG93bihlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3Jlc2l6ZWNoYW5nZScsIChlOiBFdmVudCkgPT4gdGhpcy5fb25TZWxlY3RlZFN0ZXBSZXNpemUoZSkpO1xuICB9XG5cbiAgLyoqIFNlbGVjdHMgdGhlIG5leHQgc3RlcC4gKi9cbiAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBwcmV2aW91cyBzdGVwLiAqL1xuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4IC0gMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNldHMgdGhlIGZvcm0gaW4gd2hpY2ggdGhlIHN0ZXBwZXIgaXMgbmVzdGVkIG9yIGV2ZXJ5IGZvcm0gb2YgZWFjaCBzdGVwLCBpZiBhbnkuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZXN0Rm9ybSA9IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmIChjbG9zZXN0Rm9ybSkge1xuICAgICAgY2xvc2VzdEZvcm0ucmVzZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdmb3JtJykuZm9yRWFjaCgoZm9ybSkgPT4gZm9ybS5yZXNldCgpKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gMDtcbiAgICAvLyBJbiBjYXNlIHRoZSBmb2N1cyBpcyBjdXJyZW50bHkgaW5zaWRlIHRoZSBzdGVwcGVyLCB3ZSByZXNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0L3NlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWRTdGVwKHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghc3RlcCB8fCAoIXRoaXMubGluZWFyICYmIHN0ZXAubGFiZWw/Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW5lYXIgJiYgIXRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybiBzdGVwID09PSB0aGlzLnN0ZXBzWzBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpbmVhciAmJiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGVwcy5pbmRleE9mKHN0ZXApO1xuICAgICAgcmV0dXJuIGluZGV4IDwgdGhpcy5zZWxlY3RlZEluZGV4IHx8IGluZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXggKyAxO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0KHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNWYWxpZFN0ZXAoc3RlcCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5zZWxlY3RlZEluZGV4O1xuICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5zZWxlY3RlZDtcbiAgICBjb25zdCB2YWxpZGF0ZVBheWxvYWQ6IFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscyA9IHtcbiAgICAgIGN1cnJlbnRJbmRleCxcbiAgICAgIGN1cnJlbnRTdGVwLFxuICAgICAgbmV4dEluZGV4OiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgPyB0aGlzLnNlbGVjdGVkSW5kZXggKyAxIDogbnVsbCxcbiAgICAgIG5leHRTdGVwOiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgPyB0aGlzLnN0ZXBzW3RoaXMuc2VsZWN0ZWRJbmRleCArIDFdIDogbnVsbCxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQgJiYgIXRoaXMuc2VsZWN0ZWQudmFsaWRhdGUodmFsaWRhdGVQYXlsb2FkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnNlbGVjdGVkO1xuICAgIGN1cnJlbnQ/LmRlc2VsZWN0KCk7XG4gICAgc3RlcCEuc2VsZWN0KCk7XG5cbiAgICAvKiogQGludGVybmFsIG9ubHkgdG8gcHJvdmlkZSBkb3VibGUgZW50cnkgaW4gZG9jcy4gSXQgaXMgYSBwdWJsaWMgZXZlbnQhICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IFNiYlN0ZXBDaGFuZ2VFdmVudCh0aGlzLnNlbGVjdGVkSW5kZXgsIGN1cnJlbnRJbmRleCwgdGhpcy5zZWxlY3RlZCwgY3VycmVudFN0ZXApLFxuICAgICk7XG5cbiAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChzdGVwKTtcbiAgICB0aGlzLl9jb25maWd1cmVMaW5lYXJNb2RlKCk7XG4gICAgLy8gSW4gY2FzZSB0aGUgZm9jdXMgaXMgY3VycmVudGx5IGluc2lkZSB0aGUgc3RlcHBlciwgd2UgZm9jdXMgdGhlIHNlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE1hcmtlclNpemUoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2xvYWRlZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQgfHxcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAhdGhpcy5zZWxlY3RlZC5sYWJlbFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvZmZzZXQgPVxuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRMZWZ0ICsgdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRXaWR0aFxuICAgICAgICA6IHRoaXMuX2NhbGN1bGF0ZUxhYmVsT2Zmc2V0VG9wKCk7XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1zdGVwcGVyLW1hcmtlci1zaXplJywgYCR7b2Zmc2V0fXB4YCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3RlcHBlciBoZWlnaHQgYmFzZWQgb24gdGhlIGhlaWdodCBvZiB0aGUgcHJvdmlkZWQgc3RlcC5cbiAgICovXG4gIHByaXZhdGUgX3NldFN0ZXBwZXJIZWlnaHQoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHN0ZXAgJiYgc3RlcC5zaGFkb3dSb290KSB7XG4gICAgICBjb25zdCBpbm5lckVsZW1lbnQ6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCA9IHN0ZXAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0ZXAnKTtcbiAgICAgIGlmIChpbm5lckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXN0ZXBwZXItY29udGVudC1oZWlnaHQnLCBgJHtpbm5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0fXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTGFiZWxPZmZzZXRUb3AoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGZvciAoY29uc3Qgc3RlcCBvZiB0aGlzLnN0ZXBzKSB7XG4gICAgICBpZiAoc3RlcCA9PT0gdGhpcy5zZWxlY3RlZCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG9mZnNldCA9IHN0ZXAubGFiZWwhLm9mZnNldEhlaWdodCArIG9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIG9mZnNldCArXG4gICAgICB0aGlzLnNlbGVjdGVkIS5sYWJlbCEub2Zmc2V0SGVpZ2h0ISArXG4gICAgICBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcykuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zYmItc3BhY2luZy1maXhlZC02eCcpKSAqXG4gICAgICAgIDE2ICpcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uU2VsZWN0ZWRTdGVwUmVzaXplKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChlLnRhcmdldCBhcyBTYmJTdGVwRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmUoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RlcHMgPSB0aGlzLnN0ZXBzO1xuICAgIHN0ZXBzLmZvckVhY2goKHMpID0+IHMuY29uZmlndXJlKHRoaXMuX2xvYWRlZCkpO1xuICAgIHN0ZXBzXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLmxhYmVsKVxuICAgICAgLm1hcCgocykgPT4gcy5sYWJlbCEpXG4gICAgICAuZm9yRWFjaCgobGFiZWwsIGksIGFycmF5KSA9PiB7XG4gICAgICAgIGxhYmVsLmNvbmZpZ3VyZShpICsgMSwgYXJyYXkubGVuZ3RoLCB0aGlzLl9sb2FkZWQpO1xuICAgICAgfSk7XG4gICAgdGhpcy5fc2VsZWN0KHRoaXMuc2VsZWN0ZWQgfHwgdGhpcy5fZW5hYmxlZFN0ZXBzWzBdKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUxhYmVscygpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIHN0ZXAuc2xvdCA9IHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJyA/ICdzdGVwJyA6ICdzdGVwLWxhYmVsJztcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrT3JpZW50YXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG9yaXpvbnRhbEZyb20pIHtcbiAgICAgIHRoaXMub3JpZW50YXRpb24gPSB0aGlzLl9tZWRpYU1hdGNoZXIubWF0Y2hlcyhicmVha3BvaW50TWFwW3RoaXMuaG9yaXpvbnRhbEZyb21dKVxuICAgICAgICA/ICdob3Jpem9udGFsJ1xuICAgICAgICA6ICd2ZXJ0aWNhbCc7XG4gICAgICB0aGlzLl91cGRhdGVMYWJlbHMoKTtcbiAgICB9XG4gICAgLy8gVGhlIHRpbWVvdXQgaXMgbmVlZGVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBtYXJrZXIgdGFrZXMgdGhlIGNvcnJlY3Qgc3RlcC1sYWJlbCBzaXplLlxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fc2V0TWFya2VyU2l6ZSgpLCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uU3RlcHBlclJlc2l6ZSA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodCh0aGlzLnNlbGVjdGVkKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ISk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnZGlzYWJsZS1hbmltYXRpb24nKTtcblxuICAgIC8vIERpc2FibGUgdGhlIGFuaW1hdGlvbiB3aGVuIHJlc2l6aW5nIHRvIGF2b2lkIHN0cmFuZ2UgdHJhbnNpdGlvbiBlZmZlY3RzLlxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAoKSA9PiB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdkaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZUxpbmVhck1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgc3RlcC5sYWJlbD8udG9nZ2xlQXR0cmlidXRlKFxuICAgICAgICAnZGlzYWJsZWQnLFxuICAgICAgICAodGhpcy5saW5lYXIgJiYgaW5kZXggPiB0aGlzLnNlbGVjdGVkSW5kZXghKSB8fFxuICAgICAgICAgICghdGhpcy5saW5lYXIgJiYgc3RlcC5sYWJlbC5tYXRjaGVzKCc6c3RhdGUoZGlzYWJsZWQpJykpLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLl9vblN0ZXBwZXJSZXNpemUsIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnZGlzYWJsZS1hbmltYXRpb24nLCAhdGhpcy5fbG9hZGVkKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLl9vblN0ZXBwZXJSZXNpemUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLl9sb2FkZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5saW5lYXIgPyAwIDogTnVtYmVyKHRoaXMuZ2V0QXR0cmlidXRlKCdzZWxlY3RlZC1pbmRleCcpKSB8fCAwO1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKTtcbiAgICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICAgIC8vIFJlbW92ZSBkaXNhYmxlLWFuaW1hdGlvbiBzdGF0ZSBhZnRlciBjb21wb25lbnQgaW5pdFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdkaXNhYmxlLWFuaW1hdGlvbicpLCBERUJPVU5DRV9USU1FKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29yaWVudGF0aW9uJykgJiYgIXRoaXMuaG9yaXpvbnRhbEZyb20pIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaW5lYXInKSAmJiB0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZUxpbmVhck1vZGUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX3NldE1hcmtlclNpemUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRTdGVwczogU2JiU3RlcEVsZW1lbnRbXSA9IHRoaXMuX2VuYWJsZWRTdGVwcztcblxuICAgIGlmIChcbiAgICAgICFlbmFibGVkU3RlcHMgfHxcbiAgICAgIC8vIGRvbid0IHRyYXAgbmVzdGVkIGhhbmRsaW5nXG4gICAgICAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpICE9PSB0aGlzICYmIChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50ICE9PSB0aGlzKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0Fycm93S2V5UHJlc3NlZChldnQpKSB7XG4gICAgICBjb25zdCBjdXJyZW50OiBudW1iZXIgPSBlbmFibGVkU3RlcHMuaW5kZXhPZih0aGlzLnNlbGVjdGVkISk7XG4gICAgICBjb25zdCBuZXh0SW5kZXg6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkU3RlcHMubGVuZ3RoKTtcbiAgICAgIHRoaXMuX3NlbGVjdChlbmFibGVkU3RlcHNbbmV4dEluZGV4XSk7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RlcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJfX2xhYmVsc1wiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInN0ZXAtbGFiZWxcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZX0+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zdGVwcGVyX19zdGVwc1wiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJzdGVwXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jb25maWd1cmV9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RlcHBlcic6IFNiYlN0ZXBwZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkJBLE1BQU0sZ0JBQWdCO0FBRXRCLE1BQU0sZ0JBQXdDO0FBQUEsRUFDNUMsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTzs7QUFHSCxNQUFPLDJCQUEyQixNQUFLO0FBQUEsRUFhM0MsWUFDRSxlQUNBLGVBQ0EsY0FDQSxjQUFtQztBQUVuQyxVQUFNLGNBQWMsRUFBRSxTQUFTLE1BQU0sVUFBVSxNQUFNO0FBQ3JELFNBQUssZ0JBQWdCO0FBQ3JCLFNBQUssZ0JBQWdCO0FBQ3JCLFNBQUssZUFBZTtBQUNwQixTQUFLLGVBQWU7QUFBQSxFQUN0QjtBQUNEO0lBVUsscUJBQWlCLE1BQUE7OzBCQUR0QixjQUFjLGFBQWEsQ0FBQzs7OztBQUNHLE1BQUEsY0FBQSxrQkFBa0IseUJBQXlCLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFBOUQsRUFBQSxtQkFBUSxZQUF1RDtBQUFBLElBdUZyRixjQUFBO0FBQ0UsWUFBQTtBQTdERjtBQWlCQTtBQU02QjtBQXRDckIsV0FBQSxhQVpKLGtCQUFBLE1BQUEsMEJBQUEsR0FZZ0IsSUFBSSx1QkFBdUIsTUFBTTtBQUFBLFFBQ25ELFFBQVE7QUFBQSxRQUNSLFVBQVUsQ0FBQyxZQUFXO0FBQ3BCLGtCQUFRLFFBQVEsQ0FBQyxNQUFLO0FBQ3BCLGdCQUFJLEVBQUUsb0JBQW9CLEdBQUc7QUFDM0IsbUJBQUssa0JBQWtCLEtBQUssUUFBUTtBQUNwQyxtQkFBSyxlQUFBO0FBQUEsWUFDUDtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0g7QUFBQSxNQUFBLENBQ0Q7QUFLZSx5QkFBQSwwQkFBQSxrQkFBQSxNQUFBLHNCQUFrQixLQUFL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
472
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zdGVwcGVyL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJzZWN0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvaW50ZXJzZWN0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4LCBpc0Fycm93S2V5UHJlc3NlZCB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS50cyc7XG5pbXBvcnQge1xuICBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludExhcmdlQW5kQWJvdmUsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRBYm92ZSxcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRVbHRyYUFuZEFib3ZlLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFplcm9BbmRBYm92ZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy50cyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tLCBTYmJPcmllbnRhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy50cyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sIFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTdGVwRWxlbWVudCwgU2JiU3RlcFZhbGlkYXRlRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vc3RlcC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3N0ZXBwZXIuc2Nzcz9saXQmaW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuY29uc3QgYnJlYWtwb2ludE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgemVybzogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRaZXJvQW5kQWJvdmUsXG4gIHNtYWxsOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQWJvdmUsXG4gIGxhcmdlOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludExhcmdlQW5kQWJvdmUsXG4gIHVsdHJhOiBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFVsdHJhQW5kQWJvdmUsXG59O1xuXG5leHBvcnQgY2xhc3MgU2JiU3RlcENoYW5nZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICAvKiogVGhlIGluZGV4IG9mIHRoZSBuZXdseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbDtcblxuICAvKiogVGhlIGluZGV4IG9mIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHN0ZXAuICovXG4gIHB1YmxpYyByZWFkb25seSBwcmV2aW91c0luZGV4OiBudW1iZXIgfCBudWxsO1xuXG4gIC8qKiBUaGUgbmV3bHkgc2VsZWN0ZWQgc3RlcCBlbGVtZW50LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqIFRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHN0ZXAgZWxlbWVudC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHByZXZpb3VzU3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzZWxlY3RlZEluZGV4OiBudW1iZXIgfCBudWxsLFxuICAgIHByZXZpb3VzSW5kZXg6IG51bWJlciB8IG51bGwsXG4gICAgc2VsZWN0ZWRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwsXG4gICAgcHJldmlvdXNTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwsXG4gICkge1xuICAgIHN1cGVyKCdzdGVwY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgIHRoaXMucHJldmlvdXNJbmRleCA9IHByZXZpb3VzSW5kZXg7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBzZWxlY3RlZFN0ZXA7XG4gICAgdGhpcy5wcmV2aW91c1N0ZXAgPSBwcmV2aW91c1N0ZXA7XG4gIH1cbn1cbi8qKlxuICogUHJvdmlkZXMgYSBzdHJ1Y3R1cmVkLCBzdGVwLWJ5LXN0ZXAgd29ya2Zsb3cgZm9yIHVzZXIgaW50ZXJhY3Rpb25zLlxuICogQHNsb3QgLSBQcm92aWRlIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYCBhbmQgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50YCB0byB0aGUgc3RlcHBlci5cbiAqIEBzbG90IHN0ZXAtbGFiZWwgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gYHNiYi1zdGVwLWxhYmVsYC5cbiAqIEBzbG90IHN0ZXAgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gYHNiYi1zdGVwYC5cbiAqIEBldmVudCB7U2JiU3RlcENoYW5nZUV2ZW50fSBzdGVwY2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgYSBzdGVwIHdhcyBjaGFuZ2VkLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc3RlcHBlcicpXG5jbGFzcyBTYmJTdGVwcGVyRWxlbWVudCBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHN0ZXBjaGFuZ2U6ICdzdGVwY2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogSWYgdGhlIHNiYi1zdGVwcGVyIGlzIHVzZWQgaW4gYSBzYmItZGlhbG9nLCB0aGUgbWFya2VyIG9uIHRoZSBzZWxlY3RlZCBlbGVtZW50IHdpbGwgbm90IGFwcGVhcixcbiAgICogYmVjYXVzZSB0aGUgY2FsY3VsYXRpb25zIGFyZSBkb25lIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBtYXJrZXIgaGFzIGEgd2lkdGggb2YgMDtcbiAgICogdGhlIHNhbWUgaGFwcGVucyBmb3IgdGhlIHN0ZXBwZXIgaGVpZ2h0LlxuICAgKiBXZSBuZWVkIHRvIHJlY2FsY3VsYXRlIGl0IHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyB2aXNpYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4ge1xuICAgICAgZW50cmllcy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGlmIChlLmludGVyc2VjdGlvblJhdGlvID4gMCkge1xuICAgICAgICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICAvKiogSWYgc2V0IHRvIHRydWUsIG9ubHkgdGhlIGN1cnJlbnQgYW5kIHByZXZpb3VzIGxhYmVscyBjYW4gYmUgY2xpY2tlZCBhbmQgc2VsZWN0ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsaW5lYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvciBvZiBgb3JpZW50YXRpb25gIHByb3BlcnR5LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Jpem9udGFsLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBzZXQgaG9yaXpvbnRhbEZyb20odmFsdWU6IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCkge1xuICAgIHRoaXMuX2hvcml6b250YWxGcm9tID0gdmFsdWUgJiYgYnJlYWtwb2ludE1hcFt2YWx1ZV0gPyB2YWx1ZSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2hvcml6b250YWxGcm9tICYmIHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5fY2hlY2tPcmllbnRhdGlvbigpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGhvcml6b250YWxGcm9tKCk6IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvcml6b250YWxGcm9tO1xuICB9XG4gIHByaXZhdGUgX2hvcml6b250YWxGcm9tOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBTdGVwcyBvcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiBTYmJPcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcyBvciBtLlxuICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAncycgfCAnbScgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHN0ZXApO1xuICAgIH1cbiAgICB0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZCA9IHN0ZXA7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBTYmJTdGVwRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3I/LjxTYmJTdGVwRWxlbWVudD4oJ3NiYi1zdGVwOnN0YXRlKHNlbGVjdGVkKScpID8/IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWVzdGVkU2VsZWN0ZWQ6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc3RlcCBpbmRleC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc2VsZWN0ZWQtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZEluZGV4KGluZGV4OiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2xvYWRlZCAmJiBpbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbaW5kZXhdKTtcbiAgICB9XG4gICAgdGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZCA/IHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLnNlbGVjdGVkKSA6IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWVzdGVkU2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBzdGVwcyBvZiB0aGUgc3RlcHBlci4gKi9cbiAgcHVibGljIGdldCBzdGVwcygpOiBTYmJTdGVwRWxlbWVudFtdIHtcbiAgICBjb25zdCBzdGVwczogU2JiU3RlcEVsZW1lbnRbXSA9IFtdO1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItc3RlcCcpLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc3RlcCk7XG4gICAgICBzdGVwcy5wdXNoKHN0ZXApO1xuICAgIH0pO1xuICAgIHJldHVybiBzdGVwcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9lbmFibGVkU3RlcHMoKTogU2JiU3RlcEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcHMuZmlsdGVyKChzKSA9PiB7XG4gICAgICBpZiAocy5sYWJlbCkge1xuICAgICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHMubGFiZWwpO1xuICAgICAgICByZXR1cm4gIXMubGFiZWwuZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7fSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5RG93bihlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3Jlc2l6ZWNoYW5nZScsIChlOiBFdmVudCkgPT4gdGhpcy5fb25TZWxlY3RlZFN0ZXBSZXNpemUoZSkpO1xuICB9XG5cbiAgLyoqIFNlbGVjdHMgdGhlIG5leHQgc3RlcC4gKi9cbiAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBwcmV2aW91cyBzdGVwLiAqL1xuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4IC0gMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNldHMgdGhlIGZvcm0gaW4gd2hpY2ggdGhlIHN0ZXBwZXIgaXMgbmVzdGVkIG9yIGV2ZXJ5IGZvcm0gb2YgZWFjaCBzdGVwLCBpZiBhbnkuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZXN0Rm9ybSA9IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmIChjbG9zZXN0Rm9ybSkge1xuICAgICAgY2xvc2VzdEZvcm0ucmVzZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdmb3JtJykuZm9yRWFjaCgoZm9ybSkgPT4gZm9ybS5yZXNldCgpKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gMDtcbiAgICAvLyBJbiBjYXNlIHRoZSBmb2N1cyBpcyBjdXJyZW50bHkgaW5zaWRlIHRoZSBzdGVwcGVyLCB3ZSByZXNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0L3NlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzU2VsZWN0YWJsZShzdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwpOiBzdGVwIGlzIFNiYlN0ZXBFbGVtZW50IHtcbiAgICBpZiAoc3RlcCkge1xuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZShzdGVwKTtcbiAgICAgIGlmIChzdGVwLmxhYmVsKSB7XG4gICAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc3RlcC5sYWJlbCk7XG4gICAgICAgIGlmICghdGhpcy5saW5lYXIgJiYgc3RlcC5sYWJlbC5kaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3Qoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc1NlbGVjdGFibGUoc3RlcCkgfHwgc3RlcCA9PT0gdGhpcy5zZWxlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gICAgY29uc3QgY3VycmVudFN0ZXAgPSB0aGlzLnNlbGVjdGVkO1xuICAgIGNvbnN0IHZhbGlkYXRlUGF5bG9hZDogU2JiU3RlcFZhbGlkYXRlRXZlbnREZXRhaWxzID0ge1xuICAgICAgY3VycmVudEluZGV4LFxuICAgICAgY3VycmVudFN0ZXAsXG4gICAgICBuZXh0SW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCA/IHRoaXMuc2VsZWN0ZWRJbmRleCArIDEgOiBudWxsLFxuICAgICAgbmV4dFN0ZXA6IHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCA/IHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0gOiBudWxsLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5zZWxlY3RlZC52YWxpZGF0ZSh2YWxpZGF0ZVBheWxvYWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgY3VycmVudD8uZGVzZWxlY3QoKTtcbiAgICBzdGVwLnNlbGVjdCgpO1xuXG4gICAgLyoqIEBpbnRlcm5hbCBvbmx5IHRvIHByb3ZpZGUgZG91YmxlIGVudHJ5IGluIGRvY3MuIEl0IGlzIGEgcHVibGljIGV2ZW50ISAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJTdGVwQ2hhbmdlRXZlbnQodGhpcy5zZWxlY3RlZEluZGV4LCBjdXJyZW50SW5kZXgsIHRoaXMuc2VsZWN0ZWQsIGN1cnJlbnRTdGVwKSxcbiAgICApO1xuXG4gICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQoc3RlcCk7XG4gICAgdGhpcy5fY29uZmlndXJlTGluZWFyTW9kZSgpO1xuICAgIC8vIEluIGNhc2UgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBpbnNpZGUgdGhlIHN0ZXBwZXIsIHdlIGZvY3VzIHRoZSBzZWxlY3RlZCBzdGVwIGxhYmVsLlxuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdzYmItc3RlcHBlcicpID09PSB0aGlzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkPy5sYWJlbD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRNYXJrZXJTaXplKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9sb2FkZWQgfHxcbiAgICAgICF0aGlzLnNlbGVjdGVkIHx8XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPT09IHVuZGVmaW5lZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQubGFiZWxcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgIHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJ1xuICAgICAgICA/IHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0TGVmdCArIHRoaXMuc2VsZWN0ZWQubGFiZWwub2Zmc2V0V2lkdGhcbiAgICAgICAgOiB0aGlzLl9jYWxjdWxhdGVMYWJlbE9mZnNldFRvcCgpO1xuXG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItc3RlcHBlci1tYXJrZXItc2l6ZScsIGAke29mZnNldH1weGApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHN0ZXBwZXIgaGVpZ2h0IGJhc2VkIG9uIHRoZSBoZWlnaHQgb2YgdGhlIHByb3ZpZGVkIHN0ZXAuXG4gICAqL1xuICBwcml2YXRlIF9zZXRTdGVwcGVySGVpZ2h0KHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChzdGVwICYmIHN0ZXAuc2hhZG93Um9vdCkge1xuICAgICAgY29uc3QgaW5uZXJFbGVtZW50OiBTYmJTdGVwRWxlbWVudCB8IG51bGwgPSBzdGVwLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnNiYi1zdGVwJyk7XG4gICAgICBpZiAoaW5uZXJFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi1zdGVwcGVyLWNvbnRlbnQtaGVpZ2h0JywgYCR7aW5uZXJFbGVtZW50Lm9mZnNldEhlaWdodH1weGApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZUxhYmVsT2Zmc2V0VG9wKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICBmb3IgKGNvbnN0IHN0ZXAgb2YgdGhpcy5zdGVwcykge1xuICAgICAgaWYgKHN0ZXAgPT09IHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBvZmZzZXQgPSBzdGVwLmxhYmVsIS5vZmZzZXRIZWlnaHQgKyBvZmZzZXQ7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBvZmZzZXQgK1xuICAgICAgdGhpcy5zZWxlY3RlZCEubGFiZWwhLm9mZnNldEhlaWdodCEgK1xuICAgICAgcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRoaXMpLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNwYWNpbmctZml4ZWQtNngnKSkgKlxuICAgICAgICAxNiAqXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9vblNlbGVjdGVkU3RlcFJlc2l6ZShlOiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQoZS50YXJnZXQgYXMgU2JiU3RlcEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaSwgYXJyYXkpID0+IHtcbiAgICAgIHN0ZXAuY29uZmlndXJlKHRoaXMuX2xvYWRlZCk7XG4gICAgICBzdGVwLmxhYmVsPy5jb25maWd1cmUoaSArIDEsIGFycmF5Lmxlbmd0aCwgdGhpcy5fbG9hZGVkKTtcbiAgICB9KTtcbiAgICB0aGlzLl9zZWxlY3QodGhpcy5zZWxlY3RlZCB8fCB0aGlzLl9lbmFibGVkU3RlcHNbMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTGFiZWxzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgc3RlcC5zbG90ID0gdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ3N0ZXAnIDogJ3N0ZXAtbGFiZWwnO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tPcmllbnRhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsRnJvbSkge1xuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9IHRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaGVzKGJyZWFrcG9pbnRNYXBbdGhpcy5ob3Jpem9udGFsRnJvbV0pXG4gICAgICAgID8gJ2hvcml6b250YWwnXG4gICAgICAgIDogJ3ZlcnRpY2FsJztcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgIH1cbiAgICAvLyBUaGUgdGltZW91dCBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG1hcmtlciB0YWtlcyB0aGUgY29ycmVjdCBzdGVwLWxhYmVsIHNpemUuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRNYXJrZXJTaXplKCksIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25TdGVwcGVyUmVzaXplID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICB0aGlzLl9zZXRTdGVwcGVySGVpZ2h0KHRoaXMuc2VsZWN0ZWQpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQhKTtcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdkaXNhYmxlLWFuaW1hdGlvbicpO1xuXG4gICAgLy8gRGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdoZW4gcmVzaXppbmcgdG8gYXZvaWQgc3RyYW5nZSB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2Rpc2FibGUtYW5pbWF0aW9uJyksXG4gICAgICBERUJPVU5DRV9USU1FLFxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlTGluZWFyTW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoIXN0ZXAubGFiZWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZShzdGVwLmxhYmVsKTtcblxuICAgICAgc3RlcC5sYWJlbC5kaXNhYmxlKFxuICAgICAgICAodGhpcy5saW5lYXIgJiYgaW5kZXggPiB0aGlzLnNlbGVjdGVkSW5kZXghKSB8fFxuICAgICAgICAgICghdGhpcy5saW5lYXIgJiYgc3RlcC5sYWJlbC5tYXRjaGVzKCc6c3RhdGUodXNlci1kaXNhYmxlZCknKSksXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuX29uU3RlcHBlclJlc2l6ZSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlLWFuaW1hdGlvbicsICF0aGlzLl9sb2FkZWQpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuX29uU3RlcHBlclJlc2l6ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XG4gICAgICB0aGlzLl9jb25maWd1cmUoKTtcblxuICAgICAgaWYgKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkICYmIHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZCkgIT09IC0xKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuc3RlcHMuaW5kZXhPZih0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkSW5kZXgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWRJbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgICAvLyBSZW1vdmUgZGlzYWJsZS1hbmltYXRpb24gc3RhdGUgYWZ0ZXIgY29tcG9uZW50IGluaXRcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnZGlzYWJsZS1hbmltYXRpb24nKSwgREVCT1VOQ0VfVElNRSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdvcmllbnRhdGlvbicpICYmICF0aGlzLmhvcml6b250YWxGcm9tKSB7XG4gICAgICB0aGlzLl91cGRhdGVMYWJlbHMoKTtcbiAgICAgIHRoaXMuX3NldE1hcmtlclNpemUoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGluZWFyJykgJiYgdGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVMaW5lYXJNb2RlKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkU3RlcHM6IFNiYlN0ZXBFbGVtZW50W10gPSB0aGlzLl9lbmFibGVkU3RlcHM7XG5cbiAgICBpZiAoXG4gICAgICAhZW5hYmxlZFN0ZXBzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFN0ZXBzLmluZGV4T2YodGhpcy5zZWxlY3RlZCEpO1xuICAgICAgY29uc3QgbmV4dEluZGV4OiBudW1iZXIgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2dCwgY3VycmVudCwgZW5hYmxlZFN0ZXBzLmxlbmd0aCk7XG4gICAgICB0aGlzLl9zZWxlY3QoZW5hYmxlZFN0ZXBzW25leHRJbmRleF0pO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zdGVwcGVyX19sYWJlbHNcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJzdGVwLWxhYmVsXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jb25maWd1cmV9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RlcHBlcl9fc3RlcHNcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3RlcFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fY29uZmlndXJlfT48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXN0ZXBwZXInOiBTYmJTdGVwcGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJCQSxNQUFNLGdCQUFnQjtBQUV0QixNQUFNLGdCQUF3QztBQUFBLEVBQzVDLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87O0FBR0gsTUFBTywyQkFBMkIsTUFBSztBQUFBLEVBYTNDLFlBQ0UsZUFDQSxlQUNBLGNBQ0EsY0FB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
@@ -1,6 +1,7 @@
1
1
  import { css } from "lit";
2
2
  const tabGroupCommon = css`:host {
3
- display: block;
3
+ display: flex;
4
+ flex-direction: column;
4
5
  }
5
6
 
6
7
  :host(:not([size])) {
@@ -167,4 +168,4 @@ export {
167
168
  tabGroupCommon as tabGroupCommonStyles,
168
169
  tabLabelCommon as tabLabelCommonStyles
169
170
  };
170
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
171
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
@@ -34,6 +34,12 @@ export declare class SbbTabGroupElement extends SbbTabGroupElement_base {
34
34
  * the tab group, the first enabled tab will be selected.
35
35
  */
36
36
  accessor initialSelectedIndex: number;
37
+ /**
38
+ * If set to true, the `sbb-tab` elements take 100% height of the `sbb-tab-group`.
39
+ * It enables controlling the height on the `sbb-tab-group` element.
40
+ * The content becomes scrollable on overflow.
41
+ */
42
+ accessor fixedHeight: boolean;
37
43
  /** Gets the slotted `sbb-tab-label`s. */
38
44
  get labels(): SbbTabLabelElement[];
39
45
  /** Gets the slotted `sbb-tab`s. */
@@ -1 +1 @@
1
- {"version":3,"file":"tab-group.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/tabs/tab-group/tab-group.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAevC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/C,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,kBAAkB,CAAC;IACnC,SAAS,EAAE,aAAa,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACjD,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;CACxC,CAAC;;AAEF;;;;;GAKG;AACH,qBAEM,kBAAmB,SAAQ,uBAAuD;IACtF,OAAuB,MAAM,EAAE,cAAc,CAAkD;IAC/F,gBAAuB,MAAM;;MAElB;IAEX,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,uBAAuB,CAI5B;IAEH;;;OAGG;IACH,SACgB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAwB;IAE9D;;;OAGG;IACH,SAEgB,oBAAoB,EAAE,MAAM,CAAK;IAEjD,yCAAyC;IACzC,IAAW,MAAM,IAAI,kBAAkB,EAAE,CAQxC;IAED,mCAAmC;IACnC,IAAW,IAAI,IAAI,aAAa,EAAE,CAQjC;;cAOkB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW9E;;;OAGG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMzC;;;OAGG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMxC;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI1C,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;cAIvC,MAAM,IAAI,cAAc;CAiB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,kBAAkB,CAAC;KACrC;CACF"}
1
+ {"version":3,"file":"tab-group.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/tabs/tab-group/tab-group.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAevC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/C,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,kBAAkB,CAAC;IACnC,SAAS,EAAE,aAAa,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACjD,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;CACxC,CAAC;;AAEF;;;;;GAKG;AACH,qBAEM,kBAAmB,SAAQ,uBAAuD;IACtF,OAAuB,MAAM,EAAE,cAAc,CAAkD;IAC/F,gBAAuB,MAAM;;MAElB;IAEX,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,uBAAuB,CAI5B;IAEH;;;OAGG;IACH,SACgB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAwB;IAE9D;;;OAGG;IACH,SAEgB,oBAAoB,EAAE,MAAM,CAAK;IAEjD;;;;OAIG;IACH,SAEgB,WAAW,EAAE,OAAO,CAAS;IAE7C,yCAAyC;IACzC,IAAW,MAAM,IAAI,kBAAkB,EAAE,CAQxC;IAED,mCAAmC;IACnC,IAAW,IAAI,IAAI,aAAa,EAAE,CAQjC;;cAOkB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW9E;;;OAGG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMzC;;;OAGG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMxC;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI1C,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;cAIvC,MAAM,IAAI,cAAc;CAiB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,kBAAkB,CAAC;KACrC;CACF"}
@@ -19,6 +19,7 @@ import { boxSizingStyles } from "../../core/styles.js";
19
19
  import { tabGroupCommonStyles } from "../common.js";
20
20
  const style = css`:host {
21
21
  --sbb-tab-group-animation-duration: 0s;
22
+ gap: var(--sbb-tab-group-content-gap);
22
23
  }
23
24
 
24
25
  :host(:is(:state(initialized),[state--initialized])) {
@@ -28,12 +29,59 @@ const style = css`:host {
28
29
  );
29
30
  }
30
31
 
32
+ :host([fixed-height]) .sbb-tab-group-content {
33
+ --sbb-scrollbar-thumb-width: 0.125rem;
34
+ --sbb-scrollbar-thumb-width-hover: 0.25rem;
35
+ --sbb-scrollbar-width-firefox: thin;
36
+ --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);
37
+ --sbb-scrollbar-color: light-dark(
38
+ color-mix(in srgb, var(--sbb-color-black) 30%, transparent),
39
+ color-mix(in srgb, var(--sbb-color-white) 30%, transparent)
40
+ );
41
+ --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);
42
+ --sbb-scrollbar-color-hover: light-dark(
43
+ color-mix(in srgb, var(--sbb-color-black) 60%, transparent),
44
+ color-mix(in srgb, var(--sbb-color-white) 60%, transparent)
45
+ );
46
+ --sbb-scrollbar-track-color: transparent;
47
+ --sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);
48
+ }
49
+ :host([fixed-height]) .sbb-tab-group-content::-webkit-scrollbar {
50
+ width: var(--sbb-scrollbar-width);
51
+ height: var(--sbb-scrollbar-width);
52
+ background-color: var(--sbb-scrollbar-track-color, transparent);
53
+ }
54
+ :host([fixed-height]) .sbb-tab-group-content::-webkit-scrollbar-corner {
55
+ background-color: var(--sbb-scrollbar-track-color, transparent);
56
+ }
57
+ :host([fixed-height]) .sbb-tab-group-content::-webkit-scrollbar-thumb {
58
+ background-color: var(--sbb-scrollbar-color, currentcolor);
59
+ border: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;
60
+ border-radius: var(--sbb-border-radius-4x);
61
+ background-clip: padding-box;
62
+ }
63
+ :host([fixed-height]) .sbb-tab-group-content::-webkit-scrollbar-thumb:hover {
64
+ background-color: var(--sbb-scrollbar-color-hover, currentcolor);
65
+ border-width: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)));
66
+ }
67
+ :host([fixed-height]) .sbb-tab-group-content::-webkit-scrollbar-button, :host([fixed-height]) .sbb-tab-group-content::-webkit-scrollbar-corner {
68
+ display: none;
69
+ }
70
+ @supports not selector(::-webkit-scrollbar) {
71
+ :host([fixed-height]) .sbb-tab-group-content {
72
+ scrollbar-width: var(--sbb-scrollbar-width-firefox);
73
+ scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);
74
+ }
75
+ }
76
+ :host([fixed-height]) .sbb-tab-group-content {
77
+ height: 100%;
78
+ overflow: auto;
79
+ }
31
80
  .sbb-tab-group-content {
32
- margin-block-start: var(--sbb-tab-group-content-gap);
33
81
  transition: height var(--sbb-tab-group-animation-duration) var(--sbb-animation-easing);
34
82
  }`;
35
83
  let SbbTabGroupElement = (() => {
36
- var _size_accessor_storage, _initialSelectedIndex_accessor_storage, _a;
84
+ var _size_accessor_storage, _initialSelectedIndex_accessor_storage, _fixedHeight_accessor_storage, _a;
37
85
  let _classDecorators = [customElement("sbb-tab-group")];
38
86
  let _classDescriptor;
39
87
  let _classExtraInitializers = [];
@@ -45,11 +93,15 @@ let SbbTabGroupElement = (() => {
45
93
  let _initialSelectedIndex_decorators;
46
94
  let _initialSelectedIndex_initializers = [];
47
95
  let _initialSelectedIndex_extraInitializers = [];
96
+ let _fixedHeight_decorators;
97
+ let _fixedHeight_initializers = [];
98
+ let _fixedHeight_extraInitializers = [];
48
99
  _a = class extends _classSuper {
49
100
  constructor() {
50
101
  super();
51
102
  __privateAdd(this, _size_accessor_storage);
52
103
  __privateAdd(this, _initialSelectedIndex_accessor_storage);
104
+ __privateAdd(this, _fixedHeight_accessor_storage);
53
105
  this._tabGroupResizeObserver = new ResizeController(this, {
54
106
  target: null,
55
107
  skipInitial: true,
@@ -57,7 +109,8 @@ let SbbTabGroupElement = (() => {
57
109
  });
58
110
  __privateSet(this, _size_accessor_storage, __runInitializers(this, _size_initializers, isLean() ? "s" : "l"));
59
111
  __privateSet(this, _initialSelectedIndex_accessor_storage, (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _initialSelectedIndex_initializers, 0)));
60
- this._onContentSlotChange = (__runInitializers(this, _initialSelectedIndex_extraInitializers), () => {
112
+ __privateSet(this, _fixedHeight_accessor_storage, (__runInitializers(this, _initialSelectedIndex_extraInitializers), __runInitializers(this, _fixedHeight_initializers, false)));
113
+ this._onContentSlotChange = (__runInitializers(this, _fixedHeight_extraInitializers), () => {
61
114
  this.labels.forEach((tabLabel) => tabLabel["linkToTab"]());
62
115
  this.labels.find((tabLabel) => tabLabel.active)?.activate();
63
116
  });
@@ -86,6 +139,17 @@ let SbbTabGroupElement = (() => {
86
139
  set initialSelectedIndex(value) {
87
140
  __privateSet(this, _initialSelectedIndex_accessor_storage, value);
88
141
  }
142
+ /**
143
+ * If set to true, the `sbb-tab` elements take 100% height of the `sbb-tab-group`.
144
+ * It enables controlling the height on the `sbb-tab-group` element.
145
+ * The content becomes scrollable on overflow.
146
+ */
147
+ get fixedHeight() {
148
+ return __privateGet(this, _fixedHeight_accessor_storage);
149
+ }
150
+ set fixedHeight(value) {
151
+ __privateSet(this, _fixedHeight_accessor_storage, value);
152
+ }
89
153
  /** Gets the slotted `sbb-tab-label`s. */
90
154
  get labels() {
91
155
  return Array.from(this.children ?? []).filter((child) => /^sbb-tab-label$/u.test(child.localName));
@@ -187,16 +251,20 @@ let SbbTabGroupElement = (() => {
187
251
  </div>
188
252
  `;
189
253
  }
190
- }, _size_accessor_storage = new WeakMap(), _initialSelectedIndex_accessor_storage = new WeakMap(), _classThis = _a, (() => {
254
+ }, _size_accessor_storage = new WeakMap(), _initialSelectedIndex_accessor_storage = new WeakMap(), _fixedHeight_accessor_storage = new WeakMap(), _classThis = _a, (() => {
191
255
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
192
256
  _size_decorators = [property()];
193
257
  _initialSelectedIndex_decorators = [forceType(), property({ attribute: "initial-selected-index", type: Number })];
258
+ _fixedHeight_decorators = [forceType(), property({ attribute: "fixed-height", type: Boolean, reflect: true })];
194
259
  __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) => {
195
260
  obj.size = value;
196
261
  } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
197
262
  __esDecorate(_a, null, _initialSelectedIndex_decorators, { kind: "accessor", name: "initialSelectedIndex", static: false, private: false, access: { has: (obj) => "initialSelectedIndex" in obj, get: (obj) => obj.initialSelectedIndex, set: (obj, value) => {
198
263
  obj.initialSelectedIndex = value;
199
264
  } }, metadata: _metadata }, _initialSelectedIndex_initializers, _initialSelectedIndex_extraInitializers);
265
+ __esDecorate(_a, null, _fixedHeight_decorators, { kind: "accessor", name: "fixedHeight", static: false, private: false, access: { has: (obj) => "fixedHeight" in obj, get: (obj) => obj.fixedHeight, set: (obj, value) => {
266
+ obj.fixedHeight = value;
267
+ } }, metadata: _metadata }, _fixedHeight_initializers, _fixedHeight_extraInitializers);
200
268
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
201
269
  _classThis = _classDescriptor.value;
202
270
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -208,4 +276,4 @@ let SbbTabGroupElement = (() => {
208
276
  export {
209
277
  SbbTabGroupElement
210
278
  };
211
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4LCBpc0Fycm93S2V5UHJlc3NlZCB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgdGhyb3R0bGUgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLnRzJztcbmltcG9ydCB7XG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiSHlkcmF0aW9uTWl4aW4sXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3N0eWxlcy50cyc7XG5pbXBvcnQgeyB0YWJHcm91cENvbW1vblN0eWxlcyB9IGZyb20gJy4uL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkxhYmVsRWxlbWVudCB9IGZyb20gJy4uL3RhYi1sYWJlbC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkVsZW1lbnQgfSBmcm9tICcuLi90YWIudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90YWItZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IHR5cGUgU2JiVGFiQ2hhbmdlZEV2ZW50RGV0YWlscyA9IHtcbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgYWN0aXZlVGFiTGFiZWw6IFNiYlRhYkxhYmVsRWxlbWVudDtcbiAgYWN0aXZlVGFiOiBTYmJUYWJFbGVtZW50O1xuICBwcmV2aW91c0luZGV4OiBudW1iZXI7XG4gIHByZXZpb3VzVGFiTGFiZWw6IFNiYlRhYkxhYmVsRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgcHJldmlvdXNUYWI6IFNiYlRhYkVsZW1lbnQgfCB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIG9uZSBvciBtb3JlIHRhYnMsIGVhY2ggb25lIHdpdGggYSBsYWJlbCBhbmQgc29tZSBjb250ZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItdGFiLWdyb3VwYCB2aWEgYHNiYi10YWItbGFiZWxgIGFuZCBgc2JiLXRhYmAgaW5zdGFuY2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzPn0gdGFiY2hhbmdlIC0gVGhlIHRhYmNoYW5nZSBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYSB0YWIgaXMgc2VsZWN0ZWQuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi10YWItZ3JvdXAnKVxuY2xhc3MgU2JiVGFiR3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudEludGVybmFsc01peGluKFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHRhYkdyb3VwQ29tbW9uU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHRhYmNoYW5nZTogJ3RhYmNoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBfdGFiR3JvdXBFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhYkNvbnRlbnRFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhYkdyb3VwUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9vblRhYkdyb3VwRWxlbWVudFJlc2l6ZSgpLFxuICB9KTtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcywgbCBvciB4bC5cbiAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdsJyB8ICd4bCcgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAvKipcbiAgICogU2V0cyB0aGUgaW5pdGlhbCB0YWIuIElmIGl0IG1hdGNoZXMgYSBkaXNhYmxlZCB0YWIgb3IgZXhjZWVkcyB0aGUgbGVuZ3RoIG9mXG4gICAqIHRoZSB0YWIgZ3JvdXAsIHRoZSBmaXJzdCBlbmFibGVkIHRhYiB3aWxsIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2luaXRpYWwtc2VsZWN0ZWQtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluaXRpYWxTZWxlY3RlZEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIC8qKiBHZXRzIHRoZSBzbG90dGVkIGBzYmItdGFiLWxhYmVsYHMuICovXG4gIHB1YmxpYyBnZXQgbGFiZWxzKCk6IFNiYlRhYkxhYmVsRWxlbWVudFtdIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcXVlcnlTZWxlY3RvciBBUEkgaXMgbm90IHVzZWQgYmVjYXVzZSB3aGVuIG5lc3RlZCB0YWJzIGFyZSB1c2VkLFxuICAgICAqIHRoZSByZXR1cm5lZCBhcnJheSBjb250YWlucyB0aGUgaW5uZXIgdGFicyB0b28sIGFuZCB0aGlzIGJyZWFrcyB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAgICAgKi9cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuID8/IFtdKS5maWx0ZXIoKGNoaWxkKSA9PlxuICAgICAgL15zYmItdGFiLWxhYmVsJC91LnRlc3QoY2hpbGQubG9jYWxOYW1lKSxcbiAgICApIGFzIFNiYlRhYkxhYmVsRWxlbWVudFtdO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIHNsb3R0ZWQgYHNiYi10YWJgcy4gKi9cbiAgcHVibGljIGdldCB0YWJzKCk6IFNiYlRhYkVsZW1lbnRbXSB7XG4gICAgLyoqXG4gICAgICogVGhlIHF1ZXJ5U2VsZWN0b3IgQVBJIGlzIG5vdCB1c2VkIGJlY2F1c2Ugd2hlbiBuZXN0ZWQgdGFicyBhcmUgdXNlZCxcbiAgICAgKiB0aGUgcmV0dXJuZWQgYXJyYXkgY29udGFpbnMgdGhlIGlubmVyIHRhYnMgdG9vLCBhbmQgdGhpcyBicmVha3MgdGhlIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAgICovXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChjaGlsZCkgPT5cbiAgICAgIC9ec2JiLXRhYiQvdS50ZXN0KGNoaWxkLmxvY2FsTmFtZSksXG4gICAgKSBhcyBTYmJUYWJFbGVtZW50W107XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMubGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB0YWJMYWJlbFsnbGlua1RvVGFiJ10oKSk7XG4gICAgdGhpcy5faW5pdFNlbGVjdGlvbigpO1xuXG4gICAgLy8gVG8gYXZvaWQgYW5pbWF0aW9ucyBvbiBpbml0aWFsaXphdGlvbiwgd2UgaGF2ZSB0byBtYXJrIHRoZSBjb21wb25lbnQgYXMgaW5pdGlhbGl6ZWQgYW5kIHdhaXQgYSB0aWNrLlxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW5pdGlhbGl6ZWQnKSk7XG4gICAgdGhpcy5fdGFiR3JvdXBSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX3RhYkdyb3VwRWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSB0YWJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBkaXNhYmxlLlxuICAgKi9cbiAgcHVibGljIGRpc2FibGVUYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhYmVsc1t0YWJJbmRleF0pIHtcbiAgICAgIHRoaXMubGFiZWxzW3RhYkluZGV4XS5kaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSB0YWJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBlbmFibGUuXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYWJlbHNbdGFiSW5kZXhdKSB7XG4gICAgICB0aGlzLmxhYmVsc1t0YWJJbmRleF0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIGEgdGFiIGJ5IGluZGV4LlxuICAgKiBAcGFyYW0gdGFiSW5kZXggVGhlIGluZGV4IG9mIHRoZSB0YWIgeW91IHdhbnQgdG8gYWN0aXZhdGUuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVUYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubGFiZWxzW3RhYkluZGV4XT8uYWN0aXZhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VuYWJsZWRUYWJzKCk6IFNiYlRhYkxhYmVsRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHMuZmlsdGVyKCh0KSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHQpO1xuICAgICAgcmV0dXJuICF0LmRpc2FibGVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25Db250ZW50U2xvdENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLmxhYmVscy5mb3JFYWNoKCh0YWJMYWJlbCkgPT4gdGFiTGFiZWxbJ2xpbmtUb1RhYiddKCkpO1xuICAgIHRoaXMubGFiZWxzLmZpbmQoKHRhYkxhYmVsKSA9PiB0YWJMYWJlbC5hY3RpdmUpPy5hY3RpdmF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgX29uTGFiZWxTbG90Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB0YWJMYWJlbFsnbGlua1RvVGFiJ10oKSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfaW5pdFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFRhYkxhYmVsID0gdGhpcy5sYWJlbHNbdGhpcy5pbml0aWFsU2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKHNlbGVjdGVkVGFiTGFiZWwpIHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc2VsZWN0ZWRUYWJMYWJlbCk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaW5pdGlhbFNlbGVjdGVkSW5kZXggPj0gMCAmJlxuICAgICAgICB0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4IDwgdGhpcy5sYWJlbHMubGVuZ3RoICYmXG4gICAgICAgICFzZWxlY3RlZFRhYkxhYmVsLmRpc2FibGVkXG4gICAgICApIHtcbiAgICAgICAgc2VsZWN0ZWRUYWJMYWJlbC5hY3RpdmF0ZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2VuYWJsZWRUYWJzKClbMF0/LmFjdGl2YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vblRhYkdyb3VwRWxlbWVudFJlc2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB0YWJMYWJlbHMgPSB0aGlzLmxhYmVscztcbiAgICB0YWJMYWJlbHMuZm9yRWFjaCgodGFiTGFiZWwpID0+IHtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRhYkxhYmVsKT8udG9nZ2xlKFxuICAgICAgICAnaGFzLWRpdmlkZXInLFxuICAgICAgICB0YWJMYWJlbCA9PT0gdGFiTGFiZWxzWzBdIHx8IHRhYkxhYmVsLm9mZnNldExlZnQgPT09IHRhYkxhYmVsc1swXS5vZmZzZXRMZWZ0LFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXRhYi1ncm91cC13aWR0aCcsIGAke3RoaXMuX3RhYkdyb3VwRWxlbWVudC5jbGllbnRXaWR0aH1weGApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkVGFiczogU2JiVGFiTGFiZWxFbGVtZW50W10gPSB0aGlzLl9lbmFibGVkVGFicygpO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRUYWJzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmFjdGl2ZSk7XG4gICAgICBjb25zdCBuZXh0SW5kZXg6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkVGFicy5sZW5ndGgpO1xuICAgICAgZW5hYmxlZFRhYnNbbmV4dEluZGV4XT8uYWN0aXZhdGUoKTtcbiAgICAgIGVuYWJsZWRUYWJzW25leHRJbmRleF0/LmZvY3VzKCk7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0VGFiQ29udGVudEhlaWdodChjb250ZW50SGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJDb250ZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtjb250ZW50SGVpZ2h0fXB4YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNiYi10YWItZ3JvdXBcIlxuICAgICAgICByb2xlPVwidGFibGlzdFwiXG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl90YWJHcm91cEVsZW1lbnQgPSBlbCBhcyBIVE1MRWxlbWVudCkpfVxuICAgICAgPlxuICAgICAgICA8c2xvdCBuYW1lPVwidGFiLWJhclwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fb25MYWJlbFNsb3RDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNiYi10YWItZ3JvdXAtY29udGVudFwiXG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl90YWJDb250ZW50RWxlbWVudCA9IGVsIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICA+XG4gICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhyb3R0bGUodGhpcy5fb25Db250ZW50U2xvdENoYW5nZSwgMTUwKX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRhYi1ncm91cCc6IFNiYlRhYkdyb3VwRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIsm1c3RhdGVDb250cm9sbGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBdUNNLHNCQUFrQixNQUFBOzswQkFEdkIsY0FBYyxlQUFlLENBQUM7Ozs7QUFDRSxNQUFBLGNBQUEseUJBQXlCLGtCQUFrQixVQUFVLENBQUM7Ozs7Ozs7QUFBOUQsRUFBQSxtQkFBUSxZQUF1RDtBQUFBLElBbUR0RixjQUFBO0FBQ0UsWUFBQTtBQWpDRjtBQVFBO0FBbkJRLFdBQUEsMEJBQTBCLElBQUksaUJBQWlCLE1BQU07QUFBQSxRQUMzRCxRQUFRO0FBQUEsUUFDUixhQUFhO0FBQUEsUUFDYixVQUFVLE1BQU0sS0FBSyx5QkFBQTtBQUFBLE1BQXdCLENBQzlDO0FBT2UseUJBQUEs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
279
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4LCBpc0Fycm93S2V5UHJlc3NlZCB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgdGhyb3R0bGUgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLnRzJztcbmltcG9ydCB7XG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiSHlkcmF0aW9uTWl4aW4sXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3N0eWxlcy50cyc7XG5pbXBvcnQgeyB0YWJHcm91cENvbW1vblN0eWxlcyB9IGZyb20gJy4uL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkxhYmVsRWxlbWVudCB9IGZyb20gJy4uL3RhYi1sYWJlbC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkVsZW1lbnQgfSBmcm9tICcuLi90YWIudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90YWItZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IHR5cGUgU2JiVGFiQ2hhbmdlZEV2ZW50RGV0YWlscyA9IHtcbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgYWN0aXZlVGFiTGFiZWw6IFNiYlRhYkxhYmVsRWxlbWVudDtcbiAgYWN0aXZlVGFiOiBTYmJUYWJFbGVtZW50O1xuICBwcmV2aW91c0luZGV4OiBudW1iZXI7XG4gIHByZXZpb3VzVGFiTGFiZWw6IFNiYlRhYkxhYmVsRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgcHJldmlvdXNUYWI6IFNiYlRhYkVsZW1lbnQgfCB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIG9uZSBvciBtb3JlIHRhYnMsIGVhY2ggb25lIHdpdGggYSBsYWJlbCBhbmQgc29tZSBjb250ZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItdGFiLWdyb3VwYCB2aWEgYHNiYi10YWItbGFiZWxgIGFuZCBgc2JiLXRhYmAgaW5zdGFuY2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzPn0gdGFiY2hhbmdlIC0gVGhlIHRhYmNoYW5nZSBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYSB0YWIgaXMgc2VsZWN0ZWQuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi10YWItZ3JvdXAnKVxuY2xhc3MgU2JiVGFiR3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudEludGVybmFsc01peGluKFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHRhYkdyb3VwQ29tbW9uU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHRhYmNoYW5nZTogJ3RhYmNoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBfdGFiR3JvdXBFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhYkNvbnRlbnRFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhYkdyb3VwUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9vblRhYkdyb3VwRWxlbWVudFJlc2l6ZSgpLFxuICB9KTtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcywgbCBvciB4bC5cbiAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdsJyB8ICd4bCcgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAvKipcbiAgICogU2V0cyB0aGUgaW5pdGlhbCB0YWIuIElmIGl0IG1hdGNoZXMgYSBkaXNhYmxlZCB0YWIgb3IgZXhjZWVkcyB0aGUgbGVuZ3RoIG9mXG4gICAqIHRoZSB0YWIgZ3JvdXAsIHRoZSBmaXJzdCBlbmFibGVkIHRhYiB3aWxsIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2luaXRpYWwtc2VsZWN0ZWQtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluaXRpYWxTZWxlY3RlZEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGBzYmItdGFiYCBlbGVtZW50cyB0YWtlIDEwMCUgaGVpZ2h0IG9mIHRoZSBgc2JiLXRhYi1ncm91cGAuXG4gICAqIEl0IGVuYWJsZXMgY29udHJvbGxpbmcgdGhlIGhlaWdodCBvbiB0aGUgYHNiYi10YWItZ3JvdXBgIGVsZW1lbnQuXG4gICAqIFRoZSBjb250ZW50IGJlY29tZXMgc2Nyb2xsYWJsZSBvbiBvdmVyZmxvdy5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmaXhlZC1oZWlnaHQnLCB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmaXhlZEhlaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBHZXRzIHRoZSBzbG90dGVkIGBzYmItdGFiLWxhYmVsYHMuICovXG4gIHB1YmxpYyBnZXQgbGFiZWxzKCk6IFNiYlRhYkxhYmVsRWxlbWVudFtdIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcXVlcnlTZWxlY3RvciBBUEkgaXMgbm90IHVzZWQgYmVjYXVzZSB3aGVuIG5lc3RlZCB0YWJzIGFyZSB1c2VkLFxuICAgICAqIHRoZSByZXR1cm5lZCBhcnJheSBjb250YWlucyB0aGUgaW5uZXIgdGFicyB0b28sIGFuZCB0aGlzIGJyZWFrcyB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAgICAgKi9cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuID8/IFtdKS5maWx0ZXIoKGNoaWxkKSA9PlxuICAgICAgL15zYmItdGFiLWxhYmVsJC91LnRlc3QoY2hpbGQubG9jYWxOYW1lKSxcbiAgICApIGFzIFNiYlRhYkxhYmVsRWxlbWVudFtdO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIHNsb3R0ZWQgYHNiYi10YWJgcy4gKi9cbiAgcHVibGljIGdldCB0YWJzKCk6IFNiYlRhYkVsZW1lbnRbXSB7XG4gICAgLyoqXG4gICAgICogVGhlIHF1ZXJ5U2VsZWN0b3IgQVBJIGlzIG5vdCB1c2VkIGJlY2F1c2Ugd2hlbiBuZXN0ZWQgdGFicyBhcmUgdXNlZCxcbiAgICAgKiB0aGUgcmV0dXJuZWQgYXJyYXkgY29udGFpbnMgdGhlIGlubmVyIHRhYnMgdG9vLCBhbmQgdGhpcyBicmVha3MgdGhlIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAgICovXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChjaGlsZCkgPT5cbiAgICAgIC9ec2JiLXRhYiQvdS50ZXN0KGNoaWxkLmxvY2FsTmFtZSksXG4gICAgKSBhcyBTYmJUYWJFbGVtZW50W107XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMubGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB0YWJMYWJlbFsnbGlua1RvVGFiJ10oKSk7XG4gICAgdGhpcy5faW5pdFNlbGVjdGlvbigpO1xuXG4gICAgLy8gVG8gYXZvaWQgYW5pbWF0aW9ucyBvbiBpbml0aWFsaXphdGlvbiwgd2UgaGF2ZSB0byBtYXJrIHRoZSBjb21wb25lbnQgYXMgaW5pdGlhbGl6ZWQgYW5kIHdhaXQgYSB0aWNrLlxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW5pdGlhbGl6ZWQnKSk7XG4gICAgdGhpcy5fdGFiR3JvdXBSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX3RhYkdyb3VwRWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSB0YWJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBkaXNhYmxlLlxuICAgKi9cbiAgcHVibGljIGRpc2FibGVUYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhYmVsc1t0YWJJbmRleF0pIHtcbiAgICAgIHRoaXMubGFiZWxzW3RhYkluZGV4XS5kaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSB0YWJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBlbmFibGUuXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYWJlbHNbdGFiSW5kZXhdKSB7XG4gICAgICB0aGlzLmxhYmVsc1t0YWJJbmRleF0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIGEgdGFiIGJ5IGluZGV4LlxuICAgKiBAcGFyYW0gdGFiSW5kZXggVGhlIGluZGV4IG9mIHRoZSB0YWIgeW91IHdhbnQgdG8gYWN0aXZhdGUuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVUYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubGFiZWxzW3RhYkluZGV4XT8uYWN0aXZhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VuYWJsZWRUYWJzKCk6IFNiYlRhYkxhYmVsRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHMuZmlsdGVyKCh0KSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHQpO1xuICAgICAgcmV0dXJuICF0LmRpc2FibGVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25Db250ZW50U2xvdENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLmxhYmVscy5mb3JFYWNoKCh0YWJMYWJlbCkgPT4gdGFiTGFiZWxbJ2xpbmtUb1RhYiddKCkpO1xuICAgIHRoaXMubGFiZWxzLmZpbmQoKHRhYkxhYmVsKSA9PiB0YWJMYWJlbC5hY3RpdmUpPy5hY3RpdmF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgX29uTGFiZWxTbG90Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB0YWJMYWJlbFsnbGlua1RvVGFiJ10oKSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfaW5pdFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFRhYkxhYmVsID0gdGhpcy5sYWJlbHNbdGhpcy5pbml0aWFsU2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKHNlbGVjdGVkVGFiTGFiZWwpIHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc2VsZWN0ZWRUYWJMYWJlbCk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaW5pdGlhbFNlbGVjdGVkSW5kZXggPj0gMCAmJlxuICAgICAgICB0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4IDwgdGhpcy5sYWJlbHMubGVuZ3RoICYmXG4gICAgICAgICFzZWxlY3RlZFRhYkxhYmVsLmRpc2FibGVkXG4gICAgICApIHtcbiAgICAgICAgc2VsZWN0ZWRUYWJMYWJlbC5hY3RpdmF0ZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2VuYWJsZWRUYWJzKClbMF0/LmFjdGl2YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vblRhYkdyb3VwRWxlbWVudFJlc2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB0YWJMYWJlbHMgPSB0aGlzLmxhYmVscztcbiAgICB0YWJMYWJlbHMuZm9yRWFjaCgodGFiTGFiZWwpID0+IHtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRhYkxhYmVsKT8udG9nZ2xlKFxuICAgICAgICAnaGFzLWRpdmlkZXInLFxuICAgICAgICB0YWJMYWJlbCA9PT0gdGFiTGFiZWxzWzBdIHx8IHRhYkxhYmVsLm9mZnNldExlZnQgPT09IHRhYkxhYmVsc1swXS5vZmZzZXRMZWZ0LFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXRhYi1ncm91cC13aWR0aCcsIGAke3RoaXMuX3RhYkdyb3VwRWxlbWVudC5jbGllbnRXaWR0aH1weGApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkVGFiczogU2JiVGFiTGFiZWxFbGVtZW50W10gPSB0aGlzLl9lbmFibGVkVGFicygpO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRUYWJzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmFjdGl2ZSk7XG4gICAgICBjb25zdCBuZXh0SW5kZXg6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkVGFicy5sZW5ndGgpO1xuICAgICAgZW5hYmxlZFRhYnNbbmV4dEluZGV4XT8uYWN0aXZhdGUoKTtcbiAgICAgIGVuYWJsZWRUYWJzW25leHRJbmRleF0/LmZvY3VzKCk7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0VGFiQ29udGVudEhlaWdodChjb250ZW50SGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJDb250ZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtjb250ZW50SGVpZ2h0fXB4YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNiYi10YWItZ3JvdXBcIlxuICAgICAgICByb2xlPVwidGFibGlzdFwiXG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl90YWJHcm91cEVsZW1lbnQgPSBlbCBhcyBIVE1MRWxlbWVudCkpfVxuICAgICAgPlxuICAgICAgICA8c2xvdCBuYW1lPVwidGFiLWJhclwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fb25MYWJlbFNsb3RDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNiYi10YWItZ3JvdXAtY29udGVudFwiXG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl90YWJDb250ZW50RWxlbWVudCA9IGVsIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICA+XG4gICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhyb3R0bGUodGhpcy5fb25Db250ZW50U2xvdENoYW5nZSwgMTUwKX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRhYi1ncm91cCc6IFNiYlRhYkdyb3VwRWxlbWVudDtc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