@sbb-esta/lyne-elements 2.10.1 → 3.0.0-next.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 (804) hide show
  1. package/_index.scss +1 -1
  2. package/action-group/action-group.component.d.ts.map +1 -1
  3. package/alert/alert/alert.component.d.ts +2 -7
  4. package/alert/alert/alert.component.d.ts.map +1 -1
  5. package/alert/alert/alert.component.js +55 -67
  6. package/autocomplete/autocomplete-base-element.d.ts +26 -17
  7. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  8. package/autocomplete/autocomplete-base-element.js +98 -70
  9. package/autocomplete/autocomplete.component.d.ts +3 -2
  10. package/autocomplete/autocomplete.component.d.ts.map +1 -1
  11. package/autocomplete/autocomplete.component.js +16 -19
  12. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +3 -2
  13. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  14. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +22 -25
  15. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +1 -0
  16. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
  17. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +6 -7
  18. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +4 -1
  19. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -1
  20. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +11 -13
  21. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +4 -6
  22. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
  23. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +25 -29
  24. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +4 -1
  25. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -1
  26. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +10 -12
  27. package/autocomplete.js +4 -5
  28. package/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  29. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +1 -0
  30. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  31. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +9 -12
  32. package/button/accent-button/accent-button.component.d.ts +1 -0
  33. package/button/accent-button/accent-button.component.d.ts.map +1 -1
  34. package/button/button/button.component.d.ts +1 -0
  35. package/button/button/button.component.d.ts.map +1 -1
  36. package/button/common/button-common.d.ts +4 -6
  37. package/button/common/button-common.d.ts.map +1 -1
  38. package/button/mini-button/mini-button.component.d.ts +1 -0
  39. package/button/mini-button/mini-button.component.d.ts.map +1 -1
  40. package/button/secondary-button/secondary-button.component.d.ts +1 -0
  41. package/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  42. package/button/transparent-button/transparent-button.component.d.ts +1 -0
  43. package/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  44. package/calendar/calendar.component.d.ts +18 -14
  45. package/calendar/calendar.component.d.ts.map +1 -1
  46. package/calendar/calendar.component.js +137 -123
  47. package/card/card/card.component.d.ts +0 -6
  48. package/card/card/card.component.d.ts.map +1 -1
  49. package/card/card/card.component.js +11 -19
  50. package/card/card-badge/card-badge.component.d.ts +4 -1
  51. package/card/card-badge/card-badge.component.d.ts.map +1 -1
  52. package/card/card-badge/card-badge.component.js +8 -11
  53. package/card/card-button/card-button.component.d.ts +1 -0
  54. package/card/card-button/card-button.component.d.ts.map +1 -1
  55. package/card/common/card-action-common.d.ts.map +1 -1
  56. package/card/common/card-action-common.js +21 -24
  57. package/checkbox/checkbox/checkbox.component.d.ts +4 -1
  58. package/checkbox/checkbox/checkbox.component.d.ts.map +1 -1
  59. package/checkbox/checkbox/checkbox.component.js +48 -38
  60. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts +4 -1
  61. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  62. package/checkbox/checkbox-panel/checkbox-panel.component.js +46 -36
  63. package/checkbox/common/checkbox-common.d.ts +4 -2
  64. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  65. package/chip/chip/chip.component.d.ts +5 -6
  66. package/chip/chip/chip.component.d.ts.map +1 -1
  67. package/chip/chip/chip.component.js +37 -50
  68. package/chip/chip-group/chip-group.component.d.ts +22 -10
  69. package/chip/chip-group/chip-group.component.d.ts.map +1 -1
  70. package/chip/chip-group/chip-group.component.js +131 -116
  71. package/clock/clock.component.d.ts +1 -1
  72. package/clock/clock.component.d.ts.map +1 -1
  73. package/clock/clock.component.js +2 -2
  74. package/container/sticky-bar/sticky-bar.component.d.ts +5 -0
  75. package/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  76. package/container/sticky-bar/sticky-bar.component.js +48 -38
  77. package/core/a11y/focus.d.ts +0 -32
  78. package/core/a11y/focus.d.ts.map +1 -1
  79. package/core/a11y/focus.js +3 -65
  80. package/core/a11y/input-modality-detector.d.ts +0 -5
  81. package/core/a11y/input-modality-detector.d.ts.map +1 -1
  82. package/core/a11y/input-modality-detector.js +16 -27
  83. package/core/a11y/interactivity-checker.d.ts +0 -11
  84. package/core/a11y/interactivity-checker.d.ts.map +1 -1
  85. package/core/a11y/interactivity-checker.js +0 -1
  86. package/core/a11y/live-announcer.d.ts +62 -0
  87. package/core/a11y/live-announcer.d.ts.map +1 -0
  88. package/core/a11y/live-announcer.js +47 -0
  89. package/core/a11y.d.ts +1 -0
  90. package/core/a11y.d.ts.map +1 -1
  91. package/core/a11y.js +19 -21
  92. package/core/base-elements/action-base-element.d.ts +3 -1
  93. package/core/base-elements/action-base-element.d.ts.map +1 -1
  94. package/core/base-elements/action-base-element.js +12 -11
  95. package/core/base-elements/button-base-element.d.ts +25 -18
  96. package/core/base-elements/button-base-element.d.ts.map +1 -1
  97. package/core/base-elements/button-base-element.js +97 -65
  98. package/core/base-elements/open-close-base-element.d.ts +3 -1
  99. package/core/base-elements/open-close-base-element.d.ts.map +1 -1
  100. package/core/base-elements/open-close-base-element.js +2 -1
  101. package/core/base-elements.js +9 -8
  102. package/core/controllers/inert-controller.d.ts.map +1 -1
  103. package/core/controllers/inert-controller.js +3 -3
  104. package/core/controllers.d.ts +0 -1
  105. package/core/controllers.d.ts.map +1 -1
  106. package/core/controllers.js +17 -19
  107. package/core/datetime/date-adapter.d.ts +2 -2
  108. package/core/datetime/date-adapter.d.ts.map +1 -1
  109. package/core/datetime/date-adapter.js +1 -1
  110. package/core/datetime/native-date-adapter.d.ts +2 -3
  111. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  112. package/core/datetime/native-date-adapter.js +71 -75
  113. package/core/decorators/id-reference.d.ts +11 -0
  114. package/core/decorators/id-reference.d.ts.map +1 -0
  115. package/core/decorators/id-reference.js +79 -0
  116. package/core/decorators/plain-date.d.ts +23 -0
  117. package/core/decorators/plain-date.d.ts.map +1 -0
  118. package/core/decorators/plain-date.js +29 -0
  119. package/core/decorators.d.ts +2 -2
  120. package/core/decorators.d.ts.map +1 -1
  121. package/core/decorators.js +17 -16
  122. package/core/dom.d.ts +0 -2
  123. package/core/dom.d.ts.map +1 -1
  124. package/core/dom.js +22 -26
  125. package/core/eventing/forward-event.d.ts +0 -6
  126. package/core/eventing/forward-event.d.ts.map +1 -1
  127. package/core/eventing/forward-event.js +4 -6
  128. package/core/eventing.js +12 -13
  129. package/core/i18n/i18n.d.ts +4 -1
  130. package/core/i18n/i18n.d.ts.map +1 -1
  131. package/core/i18n/i18n.js +106 -88
  132. package/core/i18n.js +42 -39
  133. package/core/interfaces/types.d.ts +0 -1
  134. package/core/interfaces/types.d.ts.map +1 -1
  135. package/core/mixins/animation-complete-mixin.d.ts +1 -1
  136. package/core/mixins/animation-complete-mixin.d.ts.map +1 -1
  137. package/core/mixins/disabled-mixin.d.ts +2 -2
  138. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  139. package/core/mixins/element-internals-mixin.d.ts +15 -0
  140. package/core/mixins/element-internals-mixin.d.ts.map +1 -0
  141. package/core/mixins/element-internals-mixin.js +41 -0
  142. package/core/mixins/form-associated-checkbox-mixin.d.ts +7 -13
  143. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  144. package/core/mixins/form-associated-checkbox-mixin.js +30 -26
  145. package/core/mixins/form-associated-input-mixin.d.ts +15 -9
  146. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  147. package/core/mixins/form-associated-input-mixin.js +65 -49
  148. package/core/mixins/form-associated-mixin.d.ts +8 -7
  149. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  150. package/core/mixins/form-associated-mixin.js +49 -41
  151. package/core/mixins/form-associated-radio-button-mixin.d.ts +6 -14
  152. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  153. package/core/mixins/form-associated-radio-button-mixin.js +32 -23
  154. package/core/mixins/readonly-mixin.d.ts +10 -0
  155. package/core/mixins/readonly-mixin.d.ts.map +1 -0
  156. package/core/mixins/readonly-mixin.js +30 -0
  157. package/core/mixins/required-mixin.d.ts +2 -2
  158. package/core/mixins/required-mixin.d.ts.map +1 -1
  159. package/core/mixins.d.ts +2 -0
  160. package/core/mixins.d.ts.map +1 -1
  161. package/core/mixins.js +25 -21
  162. package/core/styles/core.scss +38 -14
  163. package/core/styles/mixins/font-face.scss +6 -18
  164. package/core/styles/mixins/link.scss +3 -7
  165. package/core/styles/mixins/lists.scss +0 -63
  166. package/core/styles/mixins/overlay.scss +7 -1
  167. package/core/styles/mixins/table.scss +0 -7
  168. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +2 -0
  169. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +7 -1
  170. package/core/styles/table.scss +0 -4
  171. package/core/testing.d.ts +0 -1
  172. package/core/testing.d.ts.map +1 -1
  173. package/core/testing.js +8 -10
  174. package/core.css +48 -18
  175. package/custom-elements.json +13214 -6131
  176. package/date-input/date-input.component.d.ts +12 -14
  177. package/date-input/date-input.component.d.ts.map +1 -1
  178. package/date-input/date-input.component.js +53 -57
  179. package/datepicker/common/datepicker-association-controllers.d.ts.map +1 -1
  180. package/datepicker/common/datepicker-association-controllers.js +7 -7
  181. package/datepicker/common/datepicker-button.d.ts +0 -12
  182. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  183. package/datepicker/common/datepicker-button.js +45 -59
  184. package/datepicker/datepicker/datepicker.component.d.ts +3 -20
  185. package/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  186. package/datepicker/datepicker/datepicker.component.js +85 -95
  187. package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +2 -0
  188. package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +1 -1
  189. package/datepicker/datepicker-next-day/datepicker-next-day.component.js +12 -12
  190. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +2 -0
  191. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +1 -1
  192. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +13 -13
  193. package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +0 -8
  194. package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +1 -1
  195. package/datepicker/datepicker-toggle/datepicker-toggle.component.js +51 -65
  196. package/datepicker/datepicker.js +2 -4
  197. package/datepicker.js +10 -12
  198. package/development/action-group/action-group.component.d.ts.map +1 -1
  199. package/development/action-group/action-group.component.js +1 -1
  200. package/development/alert/alert/alert.component.d.ts +2 -7
  201. package/development/alert/alert/alert.component.d.ts.map +1 -1
  202. package/development/alert/alert/alert.component.js +8 -26
  203. package/development/autocomplete/autocomplete-base-element.d.ts +26 -17
  204. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  205. package/development/autocomplete/autocomplete-base-element.js +69 -39
  206. package/development/autocomplete/autocomplete.component.d.ts +3 -2
  207. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  208. package/development/autocomplete/autocomplete.component.js +5 -9
  209. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +3 -2
  210. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  211. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +5 -9
  212. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +1 -0
  213. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
  214. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +2 -3
  215. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +4 -1
  216. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -1
  217. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +5 -7
  218. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +4 -6
  219. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
  220. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +20 -19
  221. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +4 -1
  222. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -1
  223. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +5 -7
  224. package/development/autocomplete.js +2 -3
  225. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +2 -2
  226. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +1 -0
  227. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  228. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +5 -8
  229. package/development/button/accent-button/accent-button.component.d.ts +1 -0
  230. package/development/button/accent-button/accent-button.component.d.ts.map +1 -1
  231. package/development/button/accent-button/accent-button.component.js +1 -1
  232. package/development/button/button/button.component.d.ts +1 -0
  233. package/development/button/button/button.component.d.ts.map +1 -1
  234. package/development/button/button/button.component.js +1 -1
  235. package/development/button/common/button-common.d.ts +4 -6
  236. package/development/button/common/button-common.d.ts.map +1 -1
  237. package/development/button/common/button-common.js +1 -1
  238. package/development/button/mini-button/mini-button.component.d.ts +1 -0
  239. package/development/button/mini-button/mini-button.component.d.ts.map +1 -1
  240. package/development/button/mini-button/mini-button.component.js +1 -1
  241. package/development/button/secondary-button/secondary-button.component.d.ts +1 -0
  242. package/development/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  243. package/development/button/secondary-button/secondary-button.component.js +1 -1
  244. package/development/button/transparent-button/transparent-button.component.d.ts +1 -0
  245. package/development/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  246. package/development/button/transparent-button/transparent-button.component.js +1 -1
  247. package/development/calendar/calendar.component.d.ts +18 -14
  248. package/development/calendar/calendar.component.d.ts.map +1 -1
  249. package/development/calendar/calendar.component.js +57 -36
  250. package/development/card/card/card.component.d.ts +0 -6
  251. package/development/card/card/card.component.d.ts.map +1 -1
  252. package/development/card/card/card.component.js +5 -13
  253. package/development/card/card-badge/card-badge.component.d.ts +4 -1
  254. package/development/card/card-badge/card-badge.component.d.ts.map +1 -1
  255. package/development/card/card-badge/card-badge.component.js +6 -8
  256. package/development/card/card-button/card-button.component.d.ts +1 -0
  257. package/development/card/card-button/card-button.component.d.ts.map +1 -1
  258. package/development/card/card-button/card-button.component.js +1 -1
  259. package/development/card/common/card-action-common.d.ts.map +1 -1
  260. package/development/card/common/card-action-common.js +6 -15
  261. package/development/checkbox/checkbox/checkbox.component.d.ts +4 -1
  262. package/development/checkbox/checkbox/checkbox.component.d.ts.map +1 -1
  263. package/development/checkbox/checkbox/checkbox.component.js +19 -4
  264. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts +4 -1
  265. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  266. package/development/checkbox/checkbox-panel/checkbox-panel.component.js +20 -4
  267. package/development/checkbox/common/checkbox-common.d.ts +4 -2
  268. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  269. package/development/checkbox/common/checkbox-common.js +1 -1
  270. package/development/chip/chip/chip.component.d.ts +5 -6
  271. package/development/chip/chip/chip.component.d.ts.map +1 -1
  272. package/development/chip/chip/chip.component.js +12 -31
  273. package/development/chip/chip-group/chip-group.component.d.ts +22 -10
  274. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  275. package/development/chip/chip-group/chip-group.component.js +52 -27
  276. package/development/clock/clock.component.d.ts +1 -1
  277. package/development/clock/clock.component.d.ts.map +1 -1
  278. package/development/clock/clock.component.js +3 -3
  279. package/development/container/sticky-bar/sticky-bar.component.d.ts +5 -0
  280. package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  281. package/development/container/sticky-bar/sticky-bar.component.js +30 -9
  282. package/development/core/a11y/focus.d.ts +0 -32
  283. package/development/core/a11y/focus.d.ts.map +1 -1
  284. package/development/core/a11y/focus.js +2 -82
  285. package/development/core/a11y/input-modality-detector.d.ts +0 -5
  286. package/development/core/a11y/input-modality-detector.d.ts.map +1 -1
  287. package/development/core/a11y/input-modality-detector.js +2 -18
  288. package/development/core/a11y/interactivity-checker.d.ts +0 -11
  289. package/development/core/a11y/interactivity-checker.d.ts.map +1 -1
  290. package/development/core/a11y/interactivity-checker.js +1 -2
  291. package/development/core/a11y/live-announcer.d.ts +62 -0
  292. package/development/core/a11y/live-announcer.d.ts.map +1 -0
  293. package/development/core/a11y/live-announcer.js +87 -0
  294. package/development/core/a11y.d.ts +1 -0
  295. package/development/core/a11y.d.ts.map +1 -1
  296. package/development/core/a11y.js +7 -9
  297. package/development/core/base-elements/action-base-element.d.ts +3 -1
  298. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  299. package/development/core/base-elements/action-base-element.js +3 -2
  300. package/development/core/base-elements/button-base-element.d.ts +25 -18
  301. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  302. package/development/core/base-elements/button-base-element.js +105 -67
  303. package/development/core/base-elements/open-close-base-element.d.ts +3 -1
  304. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  305. package/development/core/base-elements/open-close-base-element.js +3 -2
  306. package/development/core/base-elements.js +2 -1
  307. package/development/core/controllers/inert-controller.d.ts.map +1 -1
  308. package/development/core/controllers/inert-controller.js +2 -2
  309. package/development/core/controllers.d.ts +0 -1
  310. package/development/core/controllers.d.ts.map +1 -1
  311. package/development/core/controllers.js +1 -3
  312. package/development/core/datetime/date-adapter.d.ts +2 -2
  313. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  314. package/development/core/datetime/date-adapter.js +2 -2
  315. package/development/core/datetime/native-date-adapter.d.ts +2 -3
  316. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  317. package/development/core/datetime/native-date-adapter.js +2 -6
  318. package/development/core/decorators/id-reference.d.ts +11 -0
  319. package/development/core/decorators/id-reference.d.ts.map +1 -0
  320. package/development/core/decorators/id-reference.js +123 -0
  321. package/development/core/decorators/plain-date.d.ts +23 -0
  322. package/development/core/decorators/plain-date.d.ts.map +1 -0
  323. package/development/core/decorators/plain-date.js +37 -0
  324. package/development/core/decorators.d.ts +2 -2
  325. package/development/core/decorators.d.ts.map +1 -1
  326. package/development/core/decorators.js +5 -4
  327. package/development/core/dom.d.ts +0 -2
  328. package/development/core/dom.d.ts.map +1 -1
  329. package/development/core/dom.js +1 -5
  330. package/development/core/eventing/forward-event.d.ts +0 -6
  331. package/development/core/eventing/forward-event.d.ts.map +1 -1
  332. package/development/core/eventing/forward-event.js +2 -4
  333. package/development/core/eventing.js +1 -2
  334. package/development/core/i18n/i18n.d.ts +4 -1
  335. package/development/core/i18n/i18n.d.ts.map +1 -1
  336. package/development/core/i18n/i18n.js +43 -22
  337. package/development/core/i18n.js +4 -1
  338. package/development/core/interfaces/types.d.ts +0 -1
  339. package/development/core/interfaces/types.d.ts.map +1 -1
  340. package/development/core/mixins/animation-complete-mixin.d.ts +1 -1
  341. package/development/core/mixins/animation-complete-mixin.d.ts.map +1 -1
  342. package/development/core/mixins/animation-complete-mixin.js +1 -1
  343. package/development/core/mixins/disabled-mixin.d.ts +2 -2
  344. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  345. package/development/core/mixins/disabled-mixin.js +1 -1
  346. package/development/core/mixins/element-internals-mixin.d.ts +15 -0
  347. package/development/core/mixins/element-internals-mixin.d.ts.map +1 -0
  348. package/development/core/mixins/element-internals-mixin.js +59 -0
  349. package/development/core/mixins/form-associated-checkbox-mixin.d.ts +7 -13
  350. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  351. package/development/core/mixins/form-associated-checkbox-mixin.js +8 -6
  352. package/development/core/mixins/form-associated-input-mixin.d.ts +15 -9
  353. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  354. package/development/core/mixins/form-associated-input-mixin.js +39 -20
  355. package/development/core/mixins/form-associated-mixin.d.ts +8 -7
  356. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  357. package/development/core/mixins/form-associated-mixin.js +31 -17
  358. package/development/core/mixins/form-associated-radio-button-mixin.d.ts +6 -14
  359. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  360. package/development/core/mixins/form-associated-radio-button-mixin.js +20 -8
  361. package/development/core/mixins/readonly-mixin.d.ts +10 -0
  362. package/development/core/mixins/readonly-mixin.d.ts.map +1 -0
  363. package/development/core/mixins/readonly-mixin.js +40 -0
  364. package/development/core/mixins/required-mixin.d.ts +2 -2
  365. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  366. package/development/core/mixins/required-mixin.js +1 -1
  367. package/development/core/mixins.d.ts +2 -0
  368. package/development/core/mixins.d.ts.map +1 -1
  369. package/development/core/mixins.js +5 -1
  370. package/development/core/testing.d.ts +0 -1
  371. package/development/core/testing.d.ts.map +1 -1
  372. package/development/core/testing.js +1 -3
  373. package/development/date-input/date-input.component.d.ts +12 -14
  374. package/development/date-input/date-input.component.d.ts.map +1 -1
  375. package/development/date-input/date-input.component.js +17 -22
  376. package/development/datepicker/common/datepicker-association-controllers.d.ts.map +1 -1
  377. package/development/datepicker/common/datepicker-association-controllers.js +3 -3
  378. package/development/datepicker/common/datepicker-button.d.ts +0 -12
  379. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  380. package/development/datepicker/common/datepicker-button.js +1 -23
  381. package/development/datepicker/datepicker/datepicker.component.d.ts +3 -20
  382. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  383. package/development/datepicker/datepicker/datepicker.component.js +24 -33
  384. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +2 -0
  385. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +1 -1
  386. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +7 -6
  387. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +2 -0
  388. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +1 -1
  389. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +7 -6
  390. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +0 -8
  391. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +1 -1
  392. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -21
  393. package/development/datepicker/datepicker.js +2 -4
  394. package/development/datepicker.js +2 -4
  395. package/development/divider/divider.component.d.ts +2 -1
  396. package/development/divider/divider.component.d.ts.map +1 -1
  397. package/development/divider/divider.component.js +5 -8
  398. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +5 -1
  399. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  400. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +9 -8
  401. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +2 -0
  402. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  403. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +6 -5
  404. package/development/file-selector/common/file-selector-common.d.ts +6 -5
  405. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  406. package/development/file-selector/common/file-selector-common.js +4 -4
  407. package/development/file-selector/file-selector/file-selector.component.d.ts +1 -0
  408. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  409. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  410. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +1 -0
  411. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  412. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  413. package/development/flip-card/flip-card-details/flip-card-details.component.d.ts +1 -0
  414. package/development/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
  415. package/development/flip-card/flip-card-details/flip-card-details.component.js +6 -5
  416. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts +1 -0
  417. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  418. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +6 -5
  419. package/development/footer/footer.component.js +1 -1
  420. package/development/form-field/form-field/form-field.component.d.ts +9 -10
  421. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  422. package/development/form-field/form-field/form-field.component.js +169 -180
  423. package/development/form-field/form-field-clear/form-field-clear.component.d.ts +1 -0
  424. package/development/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
  425. package/development/form-field/form-field-clear/form-field-clear.component.js +3 -5
  426. package/development/header/common/header-action-common.d.ts +3 -3
  427. package/development/header/common/header-action-common.d.ts.map +1 -1
  428. package/development/header/common/header-action-common.js +1 -1
  429. package/development/header/header/header.component.d.ts +8 -4
  430. package/development/header/header/header.component.d.ts.map +1 -1
  431. package/development/header/header/header.component.js +17 -10
  432. package/development/header/header-button/header-button.component.d.ts +1 -0
  433. package/development/header/header-button/header-button.component.d.ts.map +1 -1
  434. package/development/header/header-button/header-button.component.js +1 -1
  435. package/development/image/image.component.d.ts +1 -1
  436. package/development/image/image.component.d.ts.map +1 -1
  437. package/development/image/image.component.js +7 -6
  438. package/development/link/block-link-button/block-link-button.component.d.ts +1 -0
  439. package/development/link/block-link-button/block-link-button.component.d.ts.map +1 -1
  440. package/development/link/block-link-button/block-link-button.component.js +1 -1
  441. package/development/link/common/block-link-common.d.ts +3 -4
  442. package/development/link/common/block-link-common.d.ts.map +1 -1
  443. package/development/link/common/block-link-common.js +4 -4
  444. package/development/link/common/inline-link-common.d.ts +3 -2
  445. package/development/link/common/inline-link-common.d.ts.map +1 -1
  446. package/development/link/common/inline-link-common.js +2 -2
  447. package/development/link/common/link-common.d.ts +4 -2
  448. package/development/link/common/link-common.d.ts.map +1 -1
  449. package/development/link/common/link-common.js +1 -1
  450. package/development/link/common.js +1 -1
  451. package/development/link/link-button/link-button.component.d.ts +1 -0
  452. package/development/link/link-button/link-button.component.d.ts.map +1 -1
  453. package/development/link/link-button/link-button.component.js +1 -1
  454. package/development/{link-common-CJEWffDZ.js → link-common-DPLJx5Uo.js} +2 -2
  455. package/development/link-list/link-list-anchor/link-list-anchor.component.js +1 -1
  456. package/development/link.js +1 -1
  457. package/development/loading-indicator/loading-indicator.component.d.ts +5 -1
  458. package/development/loading-indicator/loading-indicator.component.d.ts.map +1 -1
  459. package/development/loading-indicator/loading-indicator.component.js +9 -8
  460. package/development/loading-indicator-circle/loading-indicator-circle.component.d.ts +5 -1
  461. package/development/loading-indicator-circle/loading-indicator-circle.component.d.ts.map +1 -1
  462. package/development/loading-indicator-circle/loading-indicator-circle.component.js +9 -8
  463. package/development/menu/common/menu-action-common.d.ts +4 -8
  464. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  465. package/development/menu/common/menu-action-common.js +5 -63
  466. package/development/menu/menu/menu.component.d.ts +5 -4
  467. package/development/menu/menu/menu.component.d.ts.map +1 -1
  468. package/development/menu/menu/menu.component.js +17 -13
  469. package/development/menu/menu-button/menu-button.component.d.ts +1 -0
  470. package/development/menu/menu-button/menu-button.component.d.ts.map +1 -1
  471. package/development/menu/menu-button/menu-button.component.js +1 -1
  472. package/development/navigation/navigation/navigation.component.d.ts +6 -4
  473. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  474. package/development/navigation/navigation/navigation.component.js +18 -15
  475. package/development/navigation/navigation-button/navigation-button.component.d.ts +1 -0
  476. package/development/navigation/navigation-button/navigation-button.component.d.ts.map +1 -1
  477. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  478. package/development/navigation/navigation-section/navigation-section.component.d.ts +5 -4
  479. package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  480. package/development/navigation/navigation-section/navigation-section.component.js +19 -16
  481. package/development/notification/notification.component.d.ts +4 -7
  482. package/development/notification/notification.component.d.ts.map +1 -1
  483. package/development/notification/notification.component.js +12 -29
  484. package/development/option/optgroup/optgroup-base-element.d.ts +2 -1
  485. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  486. package/development/option/optgroup/optgroup-base-element.js +16 -37
  487. package/development/option/option/option-base-element.d.ts +6 -12
  488. package/development/option/option/option-base-element.d.ts.map +1 -1
  489. package/development/option/option/option-base-element.js +25 -21
  490. package/development/option/option/option.component.d.ts +5 -2
  491. package/development/option/option/option.component.d.ts.map +1 -1
  492. package/development/option/option/option.component.js +24 -21
  493. package/development/overlay/overlay-base-element.d.ts +1 -8
  494. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  495. package/development/overlay/overlay-base-element.js +10 -30
  496. package/development/paginator/common/paginator-common.d.ts +3 -7
  497. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  498. package/development/paginator/common/paginator-common.js +16 -29
  499. package/development/paginator/paginator/paginator.component.d.ts +0 -5
  500. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  501. package/development/paginator/paginator/paginator.component.js +2 -14
  502. package/development/popover/popover/popover.component.d.ts +3 -3
  503. package/development/popover/popover/popover.component.d.ts.map +1 -1
  504. package/development/popover/popover/popover.component.js +18 -13
  505. package/development/popover/popover-trigger/popover-trigger.component.d.ts +1 -0
  506. package/development/popover/popover-trigger/popover-trigger.component.d.ts.map +1 -1
  507. package/development/popover/popover-trigger/popover-trigger.component.js +1 -1
  508. package/development/radio-button/common/radio-button-common.d.ts +4 -2
  509. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  510. package/development/radio-button/common/radio-button-common.js +1 -1
  511. package/development/radio-button/radio-button/radio-button.component.d.ts +6 -2
  512. package/development/radio-button/radio-button/radio-button.component.d.ts.map +1 -1
  513. package/development/radio-button/radio-button/radio-button.component.js +21 -4
  514. package/development/radio-button/radio-button-group/radio-button-group.component.d.ts +8 -6
  515. package/development/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
  516. package/development/radio-button/radio-button-group/radio-button-group.component.js +8 -11
  517. package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts +6 -2
  518. package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  519. package/development/radio-button/radio-button-panel/radio-button-panel.component.js +22 -4
  520. package/development/sbb-tokens-CVLcOi-S.js +1 -1
  521. package/development/select/select.component.d.ts +18 -12
  522. package/development/select/select.component.d.ts.map +1 -1
  523. package/development/select/select.component.js +122 -69
  524. package/development/sidebar/icon-sidebar/icon-sidebar.component.d.ts +4 -2
  525. package/development/sidebar/icon-sidebar/icon-sidebar.component.d.ts.map +1 -1
  526. package/development/sidebar/icon-sidebar/icon-sidebar.component.js +5 -6
  527. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts +1 -0
  528. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +1 -1
  529. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  530. package/development/sidebar/sidebar/sidebar.component.js +2 -2
  531. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +2 -0
  532. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
  533. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +6 -3
  534. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts +1 -0
  535. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
  536. package/development/sidebar/sidebar-title/sidebar-title.component.js +6 -3
  537. package/development/slider/slider.component.d.ts +6 -15
  538. package/development/slider/slider.component.d.ts.map +1 -1
  539. package/development/slider/slider.component.js +37 -85
  540. package/development/stepper/step/step.component.d.ts +4 -1
  541. package/development/stepper/step/step.component.d.ts.map +1 -1
  542. package/development/stepper/step/step.component.js +6 -8
  543. package/development/stepper/step-label/step-label.component.d.ts +2 -0
  544. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  545. package/development/stepper/step-label/step-label.component.js +5 -8
  546. package/development/stepper/stepper/stepper.component.d.ts +1 -1
  547. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  548. package/development/stepper/stepper/stepper.component.js +9 -8
  549. package/development/table/table-wrapper/table-wrapper.component.d.ts +2 -1
  550. package/development/table/table-wrapper/table-wrapper.component.d.ts.map +1 -1
  551. package/development/table/table-wrapper/table-wrapper.component.js +4 -6
  552. package/development/tabs/tab/tab.component.d.ts +4 -1
  553. package/development/tabs/tab/tab.component.d.ts.map +1 -1
  554. package/development/tabs/tab/tab.component.js +4 -3
  555. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  556. package/development/tabs/tab-group/tab-group.component.js +2 -4
  557. package/development/tabs/tab-label/tab-label.component.d.ts +2 -1
  558. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  559. package/development/tabs/tab-label/tab-label.component.js +8 -5
  560. package/development/tag/tag/tag.component.d.ts +7 -3
  561. package/development/tag/tag/tag.component.d.ts.map +1 -1
  562. package/development/tag/tag/tag.component.js +26 -7
  563. package/development/tag/tag-group/tag-group.component.d.ts +7 -5
  564. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  565. package/development/tag/tag-group/tag-group.component.js +29 -21
  566. package/development/teaser-product/common/teaser-product-common.d.ts +4 -2
  567. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  568. package/development/teaser-product/common/teaser-product-common.js +1 -1
  569. package/development/time-input/time-input.component.d.ts +29 -42
  570. package/development/time-input/time-input.component.d.ts.map +1 -1
  571. package/development/time-input/time-input.component.js +158 -205
  572. package/development/title/title-base.d.ts +4 -1
  573. package/development/title/title-base.d.ts.map +1 -1
  574. package/development/title/title-base.js +9 -17
  575. package/development/toast/toast.component.d.ts +3 -4
  576. package/development/toast/toast.component.d.ts.map +1 -1
  577. package/development/toast/toast.component.js +53 -73
  578. package/development/toggle/toggle/toggle.component.d.ts +13 -9
  579. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  580. package/development/toggle/toggle/toggle.component.js +29 -29
  581. package/development/toggle/toggle-option/toggle-option.component.d.ts +5 -3
  582. package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  583. package/development/toggle/toggle-option/toggle-option.component.js +6 -8
  584. package/development/toggle-check/toggle-check.component.d.ts +5 -2
  585. package/development/toggle-check/toggle-check.component.d.ts.map +1 -1
  586. package/development/toggle-check/toggle-check.component.js +19 -4
  587. package/divider/divider.component.d.ts +2 -1
  588. package/divider/divider.component.d.ts.map +1 -1
  589. package/divider/divider.component.js +26 -29
  590. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +5 -1
  591. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  592. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +14 -14
  593. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +2 -0
  594. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  595. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +20 -20
  596. package/file-selector/common/file-selector-common.d.ts +6 -5
  597. package/file-selector/common/file-selector-common.d.ts.map +1 -1
  598. package/file-selector/common/file-selector-common.js +35 -35
  599. package/file-selector/file-selector/file-selector.component.d.ts +1 -0
  600. package/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  601. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +1 -0
  602. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  603. package/flip-card/flip-card-details/flip-card-details.component.d.ts +1 -0
  604. package/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
  605. package/flip-card/flip-card-details/flip-card-details.component.js +16 -16
  606. package/flip-card/flip-card-summary/flip-card-summary.component.d.ts +1 -0
  607. package/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  608. package/flip-card/flip-card-summary/flip-card-summary.component.js +13 -13
  609. package/font-characters-extension.css +3 -3
  610. package/footer/footer.component.js +1 -1
  611. package/form-field/form-field/form-field.component.d.ts +9 -10
  612. package/form-field/form-field/form-field.component.d.ts.map +1 -1
  613. package/form-field/form-field/form-field.component.js +194 -209
  614. package/form-field/form-field-clear/form-field-clear.component.d.ts +1 -0
  615. package/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
  616. package/form-field/form-field-clear/form-field-clear.component.js +9 -12
  617. package/header/common/header-action-common.d.ts +3 -3
  618. package/header/common/header-action-common.d.ts.map +1 -1
  619. package/header/header/header.component.d.ts +8 -4
  620. package/header/header/header.component.d.ts.map +1 -1
  621. package/header/header/header.component.js +51 -46
  622. package/header/header-button/header-button.component.d.ts +1 -0
  623. package/header/header-button/header-button.component.d.ts.map +1 -1
  624. package/image/image.component.d.ts +1 -1
  625. package/image/image.component.d.ts.map +1 -1
  626. package/image/image.component.js +4 -2
  627. package/link/block-link-button/block-link-button.component.d.ts +1 -0
  628. package/link/block-link-button/block-link-button.component.d.ts.map +1 -1
  629. package/link/common/block-link-common.d.ts +3 -4
  630. package/link/common/block-link-common.d.ts.map +1 -1
  631. package/link/common/block-link-common.js +6 -6
  632. package/link/common/inline-link-common.d.ts +3 -2
  633. package/link/common/inline-link-common.d.ts.map +1 -1
  634. package/link/common/inline-link-common.js +1 -1
  635. package/link/common/link-common.d.ts +4 -2
  636. package/link/common/link-common.d.ts.map +1 -1
  637. package/link/common/link-common.js +1 -1
  638. package/link/common.js +1 -1
  639. package/link/link-button/link-button.component.d.ts +1 -0
  640. package/link/link-button/link-button.component.d.ts.map +1 -1
  641. package/{link-common-DZrQ-32d.js → link-common-BBKGg9HN.js} +1 -1
  642. package/link-list/link-list-anchor/link-list-anchor.component.js +4 -4
  643. package/link.js +1 -1
  644. package/loading-indicator/loading-indicator.component.d.ts +5 -1
  645. package/loading-indicator/loading-indicator.component.d.ts.map +1 -1
  646. package/loading-indicator/loading-indicator.component.js +9 -9
  647. package/loading-indicator-circle/loading-indicator-circle.component.d.ts +5 -1
  648. package/loading-indicator-circle/loading-indicator-circle.component.d.ts.map +1 -1
  649. package/loading-indicator-circle/loading-indicator-circle.component.js +14 -14
  650. package/menu/common/menu-action-common.d.ts +4 -8
  651. package/menu/common/menu-action-common.d.ts.map +1 -1
  652. package/menu/common/menu-action-common.js +16 -41
  653. package/menu/menu/menu.component.d.ts +5 -4
  654. package/menu/menu/menu.component.d.ts.map +1 -1
  655. package/menu/menu/menu.component.js +35 -34
  656. package/menu/menu-button/menu-button.component.d.ts +1 -0
  657. package/menu/menu-button/menu-button.component.d.ts.map +1 -1
  658. package/navigation/navigation/navigation.component.d.ts +6 -4
  659. package/navigation/navigation/navigation.component.d.ts.map +1 -1
  660. package/navigation/navigation/navigation.component.js +43 -43
  661. package/navigation/navigation-button/navigation-button.component.d.ts +1 -0
  662. package/navigation/navigation-button/navigation-button.component.d.ts.map +1 -1
  663. package/navigation/navigation-section/navigation-section.component.d.ts +5 -4
  664. package/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  665. package/navigation/navigation-section/navigation-section.component.js +47 -47
  666. package/notification/notification.component.d.ts +4 -7
  667. package/notification/notification.component.d.ts.map +1 -1
  668. package/notification/notification.component.js +63 -73
  669. package/option/optgroup/optgroup-base-element.d.ts +2 -1
  670. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  671. package/option/optgroup/optgroup-base-element.js +43 -43
  672. package/option/option/option-base-element.d.ts +6 -12
  673. package/option/option/option-base-element.d.ts.map +1 -1
  674. package/option/option/option-base-element.js +57 -64
  675. package/option/option/option.component.d.ts +5 -2
  676. package/option/option/option.component.d.ts.map +1 -1
  677. package/option/option/option.component.js +18 -21
  678. package/overlay/overlay-base-element.d.ts +1 -8
  679. package/overlay/overlay-base-element.d.ts.map +1 -1
  680. package/overlay/overlay-base-element.js +44 -55
  681. package/package.json +1 -1
  682. package/paginator/common/paginator-common.d.ts +3 -7
  683. package/paginator/common/paginator-common.d.ts.map +1 -1
  684. package/paginator/common/paginator-common.js +49 -58
  685. package/paginator/paginator/paginator.component.d.ts +0 -5
  686. package/paginator/paginator/paginator.component.d.ts.map +1 -1
  687. package/paginator/paginator/paginator.component.js +40 -48
  688. package/popover/popover/popover.component.d.ts +3 -3
  689. package/popover/popover/popover.component.d.ts.map +1 -1
  690. package/popover/popover/popover.component.js +50 -47
  691. package/popover/popover-trigger/popover-trigger.component.d.ts +1 -0
  692. package/popover/popover-trigger/popover-trigger.component.d.ts.map +1 -1
  693. package/radio-button/common/radio-button-common.d.ts +4 -2
  694. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  695. package/radio-button/radio-button/radio-button.component.d.ts +6 -2
  696. package/radio-button/radio-button/radio-button.component.d.ts.map +1 -1
  697. package/radio-button/radio-button/radio-button.component.js +43 -31
  698. package/radio-button/radio-button-group/radio-button-group.component.d.ts +8 -6
  699. package/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
  700. package/radio-button/radio-button-group/radio-button-group.component.js +24 -26
  701. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts +6 -2
  702. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  703. package/radio-button/radio-button-panel/radio-button-panel.component.js +46 -34
  704. package/select/select.component.d.ts +18 -12
  705. package/select/select.component.d.ts.map +1 -1
  706. package/select/select.component.js +140 -113
  707. package/sidebar/icon-sidebar/icon-sidebar.component.d.ts +4 -2
  708. package/sidebar/icon-sidebar/icon-sidebar.component.d.ts.map +1 -1
  709. package/sidebar/icon-sidebar/icon-sidebar.component.js +19 -20
  710. package/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts +1 -0
  711. package/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +1 -1
  712. package/sidebar/sidebar/sidebar.component.js +1 -1
  713. package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +2 -0
  714. package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
  715. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +11 -9
  716. package/sidebar/sidebar-title/sidebar-title.component.d.ts +1 -0
  717. package/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
  718. package/sidebar/sidebar-title/sidebar-title.component.js +17 -15
  719. package/slider/slider.component.d.ts +6 -15
  720. package/slider/slider.component.d.ts.map +1 -1
  721. package/slider/slider.component.js +71 -98
  722. package/standard-theme.css +48 -18
  723. package/stepper/step/step.component.d.ts +4 -1
  724. package/stepper/step/step.component.d.ts.map +1 -1
  725. package/stepper/step/step.component.js +5 -8
  726. package/stepper/step-label/step-label.component.d.ts +2 -0
  727. package/stepper/step-label/step-label.component.d.ts.map +1 -1
  728. package/stepper/step-label/step-label.component.js +12 -17
  729. package/stepper/stepper/stepper.component.d.ts +1 -1
  730. package/stepper/stepper/stepper.component.d.ts.map +1 -1
  731. package/stepper/stepper/stepper.component.js +8 -6
  732. package/table/table-wrapper/table-wrapper.component.d.ts +2 -1
  733. package/table/table-wrapper/table-wrapper.component.d.ts.map +1 -1
  734. package/table/table-wrapper/table-wrapper.component.js +19 -21
  735. package/tabs/tab/tab.component.d.ts +4 -1
  736. package/tabs/tab/tab.component.d.ts.map +1 -1
  737. package/tabs/tab/tab.component.js +10 -9
  738. package/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  739. package/tabs/tab-group/tab-group.component.js +8 -8
  740. package/tabs/tab-label/tab-label.component.d.ts +2 -1
  741. package/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  742. package/tabs/tab-label/tab-label.component.js +18 -18
  743. package/tag/tag/tag.component.d.ts +7 -3
  744. package/tag/tag/tag.component.d.ts.map +1 -1
  745. package/tag/tag/tag.component.js +75 -62
  746. package/tag/tag-group/tag-group.component.d.ts +7 -5
  747. package/tag/tag-group/tag-group.component.d.ts.map +1 -1
  748. package/tag/tag-group/tag-group.component.js +69 -64
  749. package/teaser-product/common/teaser-product-common.d.ts +4 -2
  750. package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  751. package/time-input/time-input.component.d.ts +29 -42
  752. package/time-input/time-input.component.d.ts.map +1 -1
  753. package/time-input/time-input.component.js +100 -143
  754. package/title/title-base.d.ts +4 -1
  755. package/title/title-base.d.ts.map +1 -1
  756. package/title/title-base.js +33 -34
  757. package/toast/toast.component.d.ts +3 -4
  758. package/toast/toast.component.d.ts.map +1 -1
  759. package/toast/toast.component.js +64 -70
  760. package/toggle/toggle/toggle.component.d.ts +13 -9
  761. package/toggle/toggle/toggle.component.d.ts.map +1 -1
  762. package/toggle/toggle/toggle.component.js +48 -49
  763. package/toggle/toggle-option/toggle-option.component.d.ts +5 -3
  764. package/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  765. package/toggle/toggle-option/toggle-option.component.js +37 -39
  766. package/toggle-check/toggle-check.component.d.ts +5 -2
  767. package/toggle-check/toggle-check.component.d.ts.map +1 -1
  768. package/toggle-check/toggle-check.component.js +53 -43
  769. package/core/controllers/connected-abort-controller.d.ts +0 -14
  770. package/core/controllers/connected-abort-controller.d.ts.map +0 -1
  771. package/core/controllers/connected-abort-controller.js +0 -19
  772. package/core/decorators/date-converter.d.ts +0 -8
  773. package/core/decorators/date-converter.d.ts.map +0 -1
  774. package/core/decorators/date-converter.js +0 -17
  775. package/core/decorators/date-only-type.d.ts +0 -8
  776. package/core/decorators/date-only-type.d.ts.map +0 -1
  777. package/core/decorators/date-only-type.js +0 -10
  778. package/core/dom/find-referenced-element.d.ts +0 -8
  779. package/core/dom/find-referenced-element.d.ts.map +0 -1
  780. package/core/dom/find-referenced-element.js +0 -7
  781. package/core/dom/input-element.d.ts +0 -12
  782. package/core/dom/input-element.d.ts.map +0 -1
  783. package/core/dom/input-element.js +0 -12
  784. package/core/testing/scroll.d.ts +0 -7
  785. package/core/testing/scroll.d.ts.map +0 -1
  786. package/core/testing/scroll.js +0 -6
  787. package/development/core/controllers/connected-abort-controller.d.ts +0 -14
  788. package/development/core/controllers/connected-abort-controller.d.ts.map +0 -1
  789. package/development/core/controllers/connected-abort-controller.js +0 -25
  790. package/development/core/decorators/date-converter.d.ts +0 -8
  791. package/development/core/decorators/date-converter.d.ts.map +0 -1
  792. package/development/core/decorators/date-converter.js +0 -18
  793. package/development/core/decorators/date-only-type.d.ts +0 -8
  794. package/development/core/decorators/date-only-type.d.ts.map +0 -1
  795. package/development/core/decorators/date-only-type.js +0 -11
  796. package/development/core/dom/find-referenced-element.d.ts +0 -8
  797. package/development/core/dom/find-referenced-element.d.ts.map +0 -1
  798. package/development/core/dom/find-referenced-element.js +0 -15
  799. package/development/core/dom/input-element.d.ts +0 -12
  800. package/development/core/dom/input-element.d.ts.map +0 -1
  801. package/development/core/dom/input-element.js +0 -13
  802. package/development/core/testing/scroll.d.ts +0 -7
  803. package/development/core/testing/scroll.d.ts.map +0 -1
  804. package/development/core/testing/scroll.js +0 -8
@@ -357,14 +357,15 @@ let SbbStepperElement = (() => {
357
357
  super.disconnectedCallback();
358
358
  window.removeEventListener("resize", this._onStepperResize);
359
359
  }
360
- async firstUpdated(changedProperties) {
360
+ firstUpdated(changedProperties) {
361
361
  super.firstUpdated(changedProperties);
362
- await this.updateComplete;
363
- this._loaded = true;
364
- this.selectedIndex = this.linear ? 0 : Number(this.getAttribute("selected-index")) || 0;
365
- this._observer.observe(this);
366
- this._checkOrientation();
367
- setTimeout(() => this.toggleAttribute("data-disable-animation", false), DEBOUNCE_TIME);
362
+ this.updateComplete.then(() => {
363
+ this._loaded = true;
364
+ this.selectedIndex = this.linear ? 0 : Number(this.getAttribute("selected-index")) || 0;
365
+ this._observer.observe(this);
366
+ this._checkOrientation();
367
+ setTimeout(() => this.toggleAttribute("data-disable-animation", false), DEBOUNCE_TIME);
368
+ });
368
369
  }
369
370
  willUpdate(changedProperties) {
370
371
  super.willUpdate(changedProperties);
@@ -446,4 +447,4 @@ let SbbStepperElement = (() => {
446
447
  export {
447
448
  SbbStepperElement
448
449
  };
449
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zdGVwcGVyL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJzZWN0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvaW50ZXJzZWN0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgTGl0RWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4LCBpc0Fycm93S2V5UHJlc3NlZCB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgYnJlYWtwb2ludHMsIGlzQnJlYWtwb2ludCwgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJIb3Jpem9udGFsRnJvbSwgU2JiT3JpZW50YXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlN0ZXBFbGVtZW50LCBTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHMgfSBmcm9tICcuLi9zdGVwLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc3RlcHBlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5jb25zdCBERUJPVU5DRV9USU1FID0gMTUwO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgc3RydWN0dXJlZCwgc3RlcC1ieS1zdGVwIHdvcmtmbG93IGZvciB1c2VyIGludGVyYWN0aW9ucy5cbiAqIEBzbG90IC0gUHJvdmlkZSBhIGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcmAgYW5kIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtY29udGVudGAgdG8gdGhlIHN0ZXBwZXIuXG4gKiBAc2xvdCBzdGVwLWxhYmVsIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItc3RlcC1sYWJlbGAuXG4gKiBAc2xvdCBzdGVwIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItc3RlcGAuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1zdGVwcGVyJylcbmNsYXNzIFNiYlN0ZXBwZXJFbGVtZW50IGV4dGVuZHMgU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogSWYgdGhlIHNiYi1zdGVwcGVyIGlzIHVzZWQgaW4gYSBzYmItZGlhbG9nLCB0aGUgbWFya2VyIG9uIHRoZSBzZWxlY3RlZCBlbGVtZW50IHdpbGwgbm90IGFwcGVhcixcbiAgICogYmVjYXVzZSB0aGUgY2FsY3VsYXRpb25zIGFyZSBkb25lIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBtYXJrZXIgaGFzIGEgd2lkdGggb2YgMDtcbiAgICogdGhlIHNhbWUgaGFwcGVucyBmb3IgdGhlIHN0ZXBwZXIgaGVpZ2h0LlxuICAgKiBXZSBuZWVkIHRvIHJlY2FsY3VsYXRlIGl0IHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyB2aXNpYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4ge1xuICAgICAgZW50cmllcy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGlmIChlLmludGVyc2VjdGlvblJhdGlvID4gMCkge1xuICAgICAgICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICAvKiogSWYgc2V0IHRvIHRydWUsIG9ubHkgdGhlIGN1cnJlbnQgYW5kIHByZXZpb3VzIGxhYmVscyBjYW4gYmUgY2xpY2tlZCBhbmQgc2VsZWN0ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsaW5lYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvdXIgb2YgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaG9yaXpvbnRhbC1mcm9tJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgc2V0IGhvcml6b250YWxGcm9tKHZhbHVlOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwpIHtcbiAgICB0aGlzLl9ob3Jpem9udGFsRnJvbSA9IHZhbHVlICYmIGJyZWFrcG9pbnRzLmluY2x1ZGVzKHZhbHVlKSA/IHZhbHVlIDogbnVsbDtcbiAgICBpZiAodGhpcy5faG9yaXpvbnRhbEZyb20gJiYgdGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgaG9yaXpvbnRhbEZyb20oKTogU2JiSG9yaXpvbnRhbEZyb20gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faG9yaXpvbnRhbEZyb207XG4gIH1cbiAgcHJpdmF0ZSBfaG9yaXpvbnRhbEZyb206IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFN0ZXBzIG9yaWVudGF0aW9uLCBlaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIG9yIG0uXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdtJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHN0ZXAuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZChzdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3Qoc3RlcCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogU2JiU3RlcEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yPy48U2JiU3RlcEVsZW1lbnQ+KCdzYmItc3RlcFtkYXRhLXNlbGVjdGVkXScpID8/IG51bGw7XG4gIH1cblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzdGVwIGluZGV4LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzZWxlY3RlZC1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkICYmIGluZGV4ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1tpbmRleF0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQgPyB0aGlzLnN0ZXBzLmluZGV4T2YodGhpcy5zZWxlY3RlZCkgOiBudWxsO1xuICB9XG5cbiAgLyoqIFRoZSBzdGVwcyBvZiB0aGUgc3RlcHBlci4gKi9cbiAgcHVibGljIGdldCBzdGVwcygpOiBTYmJTdGVwRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXN0ZXAnKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZW5hYmxlZFN0ZXBzKCk6IFNiYlN0ZXBFbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzLmZpbHRlcigocykgPT4gIXMubGFiZWw/Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdyZXNpemVDaGFuZ2UnLCAoZTogQ3VzdG9tRXZlbnQ8dm9pZD4pID0+XG4gICAgICB0aGlzLl9vblNlbGVjdGVkU3RlcFJlc2l6ZShlKSxcbiAgICApO1xuICB9XG5cbiAgLyoqIFNlbGVjdHMgdGhlIG5leHQgc3RlcC4gKi9cbiAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBwcmV2aW91cyBzdGVwLiAqL1xuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4IC0gMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNldHMgdGhlIGZvcm0gaW4gd2hpY2ggdGhlIHN0ZXBwZXIgaXMgbmVzdGVkIG9yIGV2ZXJ5IGZvcm0gb2YgZWFjaCBzdGVwLCBpZiBhbnkuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZXN0Rm9ybSA9IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmIChjbG9zZXN0Rm9ybSkge1xuICAgICAgY2xvc2VzdEZvcm0ucmVzZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdmb3JtJykuZm9yRWFjaCgoZm9ybSkgPT4gZm9ybS5yZXNldCgpKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gMDtcbiAgICAvLyBJbiBjYXNlIHRoZSBmb2N1cyBpcyBjdXJyZW50bHkgaW5zaWRlIHRoZSBzdGVwcGVyLCB3ZSByZXNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0L3NlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWRTdGVwKHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghc3RlcCB8fCAoIXRoaXMubGluZWFyICYmIHN0ZXAubGFiZWw/Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW5lYXIgJiYgIXRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybiBzdGVwID09PSB0aGlzLnN0ZXBzWzBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpbmVhciAmJiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGVwcy5pbmRleE9mKHN0ZXApO1xuICAgICAgcmV0dXJuIGluZGV4IDwgdGhpcy5zZWxlY3RlZEluZGV4IHx8IGluZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXggKyAxO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0KHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNWYWxpZFN0ZXAoc3RlcCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmFsaWRhdGVQYXlsb2FkOiBTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHMgPSB7XG4gICAgICBjdXJyZW50SW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCxcbiAgICAgIGN1cnJlbnRTdGVwOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgbmV4dEluZGV4OiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgPyB0aGlzLnNlbGVjdGVkSW5kZXggKyAxIDogbnVsbCxcbiAgICAgIG5leHRTdGVwOiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgPyB0aGlzLnN0ZXBzW3RoaXMuc2VsZWN0ZWRJbmRleCArIDFdIDogbnVsbCxcbiAgICB9O1xuICAgIGlmICh0aGlzLnNlbGVjdGVkICYmICF0aGlzLnNlbGVjdGVkLnZhbGlkYXRlKHZhbGlkYXRlUGF5bG9hZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgY3VycmVudD8uZGVzZWxlY3QoKTtcbiAgICBzdGVwIS5zZWxlY3QoKTtcbiAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChzdGVwKTtcbiAgICB0aGlzLl9jb25maWd1cmVMaW5lYXJNb2RlKCk7XG4gICAgLy8gSW4gY2FzZSB0aGUgZm9jdXMgaXMgY3VycmVudGx5IGluc2lkZSB0aGUgc3RlcHBlciwgd2UgZm9jdXMgdGhlIHNlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE1hcmtlclNpemUoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2xvYWRlZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQgfHxcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAhdGhpcy5zZWxlY3RlZC5sYWJlbFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvZmZzZXQgPVxuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRMZWZ0ICsgdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRXaWR0aFxuICAgICAgICA6IHRoaXMuX2NhbGN1bGF0ZUxhYmVsT2Zmc2V0VG9wKCk7XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1zdGVwcGVyLW1hcmtlci1zaXplJywgYCR7b2Zmc2V0fXB4YCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3RlcHBlciBoZWlnaHQgYmFzZWQgb24gdGhlIGhlaWdodCBvZiB0aGUgcHJvdmlkZWQgc3RlcC5cbiAgICovXG4gIHByaXZhdGUgX3NldFN0ZXBwZXJIZWlnaHQoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHN0ZXAgJiYgc3RlcC5zaGFkb3dSb290KSB7XG4gICAgICBjb25zdCBpbm5lckVsZW1lbnQ6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCA9IHN0ZXAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0ZXAnKTtcbiAgICAgIGlmIChpbm5lckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXN0ZXBwZXItY29udGVudC1oZWlnaHQnLCBgJHtpbm5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0fXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTGFiZWxPZmZzZXRUb3AoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGZvciAoY29uc3Qgc3RlcCBvZiB0aGlzLnN0ZXBzKSB7XG4gICAgICBpZiAoc3RlcCA9PT0gdGhpcy5zZWxlY3RlZCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG9mZnNldCA9IHN0ZXAubGFiZWwhLm9mZnNldEhlaWdodCArIG9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIG9mZnNldCArXG4gICAgICB0aGlzLnNlbGVjdGVkIS5sYWJlbCEub2Zmc2V0SGVpZ2h0ISArXG4gICAgICBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcykuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zYmItc3BhY2luZy1maXhlZC02eCcpKSAqXG4gICAgICAgIDE2ICpcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uU2VsZWN0ZWRTdGVwUmVzaXplKGU6IEN1c3RvbUV2ZW50PHZvaWQ+KTogdm9pZCB7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChlLnRhcmdldCBhcyBTYmJTdGVwRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmUoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RlcHMgPSB0aGlzLnN0ZXBzO1xuICAgIHN0ZXBzLmZvckVhY2goKHMpID0+IHMuY29uZmlndXJlKHRoaXMuX2xvYWRlZCkpO1xuICAgIHN0ZXBzXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLmxhYmVsKVxuICAgICAgLm1hcCgocykgPT4gcy5sYWJlbCEpXG4gICAgICAuZm9yRWFjaCgobGFiZWwsIGksIGFycmF5KSA9PiB7XG4gICAgICAgIGxhYmVsLmNvbmZpZ3VyZShpICsgMSwgYXJyYXkubGVuZ3RoLCB0aGlzLl9sb2FkZWQpO1xuICAgICAgfSk7XG4gICAgdGhpcy5fc2VsZWN0KHRoaXMuc2VsZWN0ZWQgfHwgdGhpcy5fZW5hYmxlZFN0ZXBzWzBdKTtcbiAgICB0aGlzLl9wcm94eVNpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUxhYmVscygpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIHN0ZXAuc2xvdCA9IHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJyA/ICdzdGVwJyA6ICdzdGVwLWxhYmVsJztcbiAgICAgIHN0ZXAuc2V0QXR0cmlidXRlKCdkYXRhLW9yaWVudGF0aW9uJywgdGhpcy5vcmllbnRhdGlvbik7XG4gICAgICBzdGVwLmxhYmVsPy5zZXRBdHRyaWJ1dGUoJ2RhdGEtb3JpZW50YXRpb24nLCB0aGlzLm9yaWVudGF0aW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrT3JpZW50YXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG9yaXpvbnRhbEZyb20pIHtcbiAgICAgIHRoaXMub3JpZW50YXRpb24gPSBpc0JyZWFrcG9pbnQodGhpcy5ob3Jpem9udGFsRnJvbSkgPyAnaG9yaXpvbnRhbCcgOiAndmVydGljYWwnO1xuICAgICAgdGhpcy5fdXBkYXRlTGFiZWxzKCk7XG4gICAgfVxuICAgIC8vIFRoZSB0aW1lb3V0IGlzIG5lZWRlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgbWFya2VyIHRha2VzIHRoZSBjb3JyZWN0IHN0ZXAtbGFiZWwgc2l6ZS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3NldE1hcmtlclNpemUoKSwgMCk7XG4gIH1cblxuICBwcml2YXRlIF9vblN0ZXBwZXJSZXNpemUgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5fY2hlY2tPcmllbnRhdGlvbigpO1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCEpO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGUtYW5pbWF0aW9uJywgdHJ1ZSk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0byBhdm9pZCBzdHJhbmdlIHRyYW5zaXRpb24gZWZmZWN0cy5cbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1hbmltYXRpb24nLCBmYWxzZSksXG4gICAgICBERUJPVU5DRV9USU1FLFxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlTGluZWFyTW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICBzdGVwLmxhYmVsPy50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAgICdkaXNhYmxlZCcsXG4gICAgICAgICh0aGlzLmxpbmVhciAmJiBpbmRleCA+IHRoaXMuc2VsZWN0ZWRJbmRleCEpIHx8XG4gICAgICAgICAgKCF0aGlzLmxpbmVhciAmJiBzdGVwLmxhYmVsLmhhc0F0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlZCcpKSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fb25TdGVwcGVyUmVzaXplLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGUtYW5pbWF0aW9uJywgIXRoaXMuX2xvYWRlZCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fb25TdGVwcGVyUmVzaXplKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5saW5lYXIgPyAwIDogTnVtYmVyKHRoaXMuZ2V0QXR0cmlidXRlKCdzZWxlY3RlZC1pbmRleCcpKSB8fCAwO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgdGhpcy5fY2hlY2tPcmllbnRhdGlvbigpO1xuICAgIC8vIFJlbW92ZSBbZGF0YS1kaXNhYmxlLWFuaW1hdGlvbl0gYWZ0ZXIgY29tcG9uZW50IGluaXRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGUtYW5pbWF0aW9uJywgZmFsc2UpLCBERUJPVU5DRV9USU1FKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29yaWVudGF0aW9uJykgJiYgIXRoaXMuaG9yaXpvbnRhbEZyb20pIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaW5lYXInKSAmJiB0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZUxpbmVhck1vZGUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX3Byb3h5U2l6ZSgpO1xuICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Byb3h5U2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIHN0ZXAubGFiZWw/LnNldEF0dHJpYnV0ZSgnZGF0YS1zaXplJywgdGhpcy5zaXplKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZFN0ZXBzOiBTYmJTdGVwRWxlbWVudFtdID0gdGhpcy5fZW5hYmxlZFN0ZXBzO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRTdGVwcyB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRTdGVwcy5pbmRleE9mKHRoaXMuc2VsZWN0ZWQhKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRTdGVwcy5sZW5ndGgpO1xuICAgICAgdGhpcy5fc2VsZWN0KGVuYWJsZWRTdGVwc1tuZXh0SW5kZXhdKTtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zdGVwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RlcHBlcl9fbGFiZWxzXCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3RlcC1sYWJlbFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fY29uZmlndXJlfT48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJfX3N0ZXBzXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInN0ZXBcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZX0+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zdGVwcGVyJzogU2JiU3RlcHBlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNLGdCQUFnQjtJQVVoQixxQkFBaUIsTUFBQTs7MEJBRHRCLGNBQWMsYUFBYSxDQUFDOzs7O29CQUNHLGtCQUFrQixVQUFVOzs7Ozs7Ozs7Ozs7OztBQUFwQyxFQUFBLG1CQUFRLFlBQTZCO0FBQUEsSUFtRjNELGNBQUE7OztBQTNEQTtBQWlCQTtBQU02QjtBQXRDckIsV0FBQSxhQVRKLGtCQUFpQixNQUFBLDBCQUFBLEdBU0QsSUFBSSx1QkFBdUIsTUFBTTtBQUFBLFFBQ25ELFFBQVE7QUFBQSxRQUNSLFVBQVUsQ0FBQyxZQUFXO0FBQ1osa0JBQUEsUUFBUSxDQUFDLE1BQUs7QUFDaEIsZ0JBQUEsRUFBRSxvQkFBb0IsR0FBRztBQUN0QixtQkFBQSxrQkFBa0IsS0FBSyxRQUFRO0FBQ3BDLG1CQUFLLGVBQWM7QUFBQSxZQUFBO0FBQUEsVUFDckIsQ0FDRDtBQUFBLFFBQUE7QUFBQSxNQUNILENBQ0Q7QUFLZSx5QkFBQSwwQkFBQSxrQkFBQSxNQUFBLHNCQUFrQixLQUFLO0FBYS9CLFdBQWUsbUJBQUEsa0JBQUEsTUFBQSx5QkFBQSxHQUE2QjtBQUlwQyx5QkFBQSwrQkFBQSxrQkFBQSxNQUFBLDJCQUE4QixZQUFZO0FBTUsseUJBQUEseUJBQUEsa0JBQUEsTUFBQSw4QkFBQSxHQUFBLGtCQUFBLE1B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
450
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zdGVwcGVyL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJzZWN0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvaW50ZXJzZWN0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgTGl0RWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4LCBpc0Fycm93S2V5UHJlc3NlZCB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgYnJlYWtwb2ludHMsIGlzQnJlYWtwb2ludCwgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJIb3Jpem9udGFsRnJvbSwgU2JiT3JpZW50YXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlN0ZXBFbGVtZW50LCBTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHMgfSBmcm9tICcuLi9zdGVwLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc3RlcHBlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5jb25zdCBERUJPVU5DRV9USU1FID0gMTUwO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgc3RydWN0dXJlZCwgc3RlcC1ieS1zdGVwIHdvcmtmbG93IGZvciB1c2VyIGludGVyYWN0aW9ucy5cbiAqIEBzbG90IC0gUHJvdmlkZSBhIGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcmAgYW5kIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtY29udGVudGAgdG8gdGhlIHN0ZXBwZXIuXG4gKiBAc2xvdCBzdGVwLWxhYmVsIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItc3RlcC1sYWJlbGAuXG4gKiBAc2xvdCBzdGVwIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItc3RlcGAuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1zdGVwcGVyJylcbmNsYXNzIFNiYlN0ZXBwZXJFbGVtZW50IGV4dGVuZHMgU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogSWYgdGhlIHNiYi1zdGVwcGVyIGlzIHVzZWQgaW4gYSBzYmItZGlhbG9nLCB0aGUgbWFya2VyIG9uIHRoZSBzZWxlY3RlZCBlbGVtZW50IHdpbGwgbm90IGFwcGVhcixcbiAgICogYmVjYXVzZSB0aGUgY2FsY3VsYXRpb25zIGFyZSBkb25lIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBtYXJrZXIgaGFzIGEgd2lkdGggb2YgMDtcbiAgICogdGhlIHNhbWUgaGFwcGVucyBmb3IgdGhlIHN0ZXBwZXIgaGVpZ2h0LlxuICAgKiBXZSBuZWVkIHRvIHJlY2FsY3VsYXRlIGl0IHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyB2aXNpYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4ge1xuICAgICAgZW50cmllcy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGlmIChlLmludGVyc2VjdGlvblJhdGlvID4gMCkge1xuICAgICAgICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICAvKiogSWYgc2V0IHRvIHRydWUsIG9ubHkgdGhlIGN1cnJlbnQgYW5kIHByZXZpb3VzIGxhYmVscyBjYW4gYmUgY2xpY2tlZCBhbmQgc2VsZWN0ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsaW5lYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvdXIgb2YgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaG9yaXpvbnRhbC1mcm9tJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgc2V0IGhvcml6b250YWxGcm9tKHZhbHVlOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwpIHtcbiAgICB0aGlzLl9ob3Jpem9udGFsRnJvbSA9IHZhbHVlICYmIGJyZWFrcG9pbnRzLmluY2x1ZGVzKHZhbHVlKSA/IHZhbHVlIDogbnVsbDtcbiAgICBpZiAodGhpcy5faG9yaXpvbnRhbEZyb20gJiYgdGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgaG9yaXpvbnRhbEZyb20oKTogU2JiSG9yaXpvbnRhbEZyb20gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faG9yaXpvbnRhbEZyb207XG4gIH1cbiAgcHJpdmF0ZSBfaG9yaXpvbnRhbEZyb206IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFN0ZXBzIG9yaWVudGF0aW9uLCBlaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIG9yIG0uXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdtJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHN0ZXAuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZChzdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3Qoc3RlcCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogU2JiU3RlcEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yPy48U2JiU3RlcEVsZW1lbnQ+KCdzYmItc3RlcFtkYXRhLXNlbGVjdGVkXScpID8/IG51bGw7XG4gIH1cblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzdGVwIGluZGV4LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzZWxlY3RlZC1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkICYmIGluZGV4ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1tpbmRleF0pO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQgPyB0aGlzLnN0ZXBzLmluZGV4T2YodGhpcy5zZWxlY3RlZCkgOiBudWxsO1xuICB9XG5cbiAgLyoqIFRoZSBzdGVwcyBvZiB0aGUgc3RlcHBlci4gKi9cbiAgcHVibGljIGdldCBzdGVwcygpOiBTYmJTdGVwRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXN0ZXAnKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZW5hYmxlZFN0ZXBzKCk6IFNiYlN0ZXBFbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzLmZpbHRlcigocykgPT4gIXMubGFiZWw/Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdyZXNpemVDaGFuZ2UnLCAoZTogQ3VzdG9tRXZlbnQ8dm9pZD4pID0+XG4gICAgICB0aGlzLl9vblNlbGVjdGVkU3RlcFJlc2l6ZShlKSxcbiAgICApO1xuICB9XG5cbiAgLyoqIFNlbGVjdHMgdGhlIG5leHQgc3RlcC4gKi9cbiAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4ICsgMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBwcmV2aW91cyBzdGVwLiAqL1xuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2VsZWN0KHRoaXMuc3RlcHNbdGhpcy5zZWxlY3RlZEluZGV4IC0gMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNldHMgdGhlIGZvcm0gaW4gd2hpY2ggdGhlIHN0ZXBwZXIgaXMgbmVzdGVkIG9yIGV2ZXJ5IGZvcm0gb2YgZWFjaCBzdGVwLCBpZiBhbnkuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZXN0Rm9ybSA9IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmIChjbG9zZXN0Rm9ybSkge1xuICAgICAgY2xvc2VzdEZvcm0ucmVzZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdmb3JtJykuZm9yRWFjaCgoZm9ybSkgPT4gZm9ybS5yZXNldCgpKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gMDtcbiAgICAvLyBJbiBjYXNlIHRoZSBmb2N1cyBpcyBjdXJyZW50bHkgaW5zaWRlIHRoZSBzdGVwcGVyLCB3ZSByZXNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0L3NlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWRTdGVwKHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghc3RlcCB8fCAoIXRoaXMubGluZWFyICYmIHN0ZXAubGFiZWw/Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW5lYXIgJiYgIXRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybiBzdGVwID09PSB0aGlzLnN0ZXBzWzBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpbmVhciAmJiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGVwcy5pbmRleE9mKHN0ZXApO1xuICAgICAgcmV0dXJuIGluZGV4IDwgdGhpcy5zZWxlY3RlZEluZGV4IHx8IGluZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXggKyAxO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0KHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNWYWxpZFN0ZXAoc3RlcCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmFsaWRhdGVQYXlsb2FkOiBTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHMgPSB7XG4gICAgICBjdXJyZW50SW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCxcbiAgICAgIGN1cnJlbnRTdGVwOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgbmV4dEluZGV4OiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgPyB0aGlzLnNlbGVjdGVkSW5kZXggKyAxIDogbnVsbCxcbiAgICAgIG5leHRTdGVwOiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgPyB0aGlzLnN0ZXBzW3RoaXMuc2VsZWN0ZWRJbmRleCArIDFdIDogbnVsbCxcbiAgICB9O1xuICAgIGlmICh0aGlzLnNlbGVjdGVkICYmICF0aGlzLnNlbGVjdGVkLnZhbGlkYXRlKHZhbGlkYXRlUGF5bG9hZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgY3VycmVudD8uZGVzZWxlY3QoKTtcbiAgICBzdGVwIS5zZWxlY3QoKTtcbiAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChzdGVwKTtcbiAgICB0aGlzLl9jb25maWd1cmVMaW5lYXJNb2RlKCk7XG4gICAgLy8gSW4gY2FzZSB0aGUgZm9jdXMgaXMgY3VycmVudGx5IGluc2lkZSB0aGUgc3RlcHBlciwgd2UgZm9jdXMgdGhlIHNlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE1hcmtlclNpemUoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2xvYWRlZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQgfHxcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAhdGhpcy5zZWxlY3RlZC5sYWJlbFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvZmZzZXQgPVxuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRMZWZ0ICsgdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRXaWR0aFxuICAgICAgICA6IHRoaXMuX2NhbGN1bGF0ZUxhYmVsT2Zmc2V0VG9wKCk7XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1zdGVwcGVyLW1hcmtlci1zaXplJywgYCR7b2Zmc2V0fXB4YCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3RlcHBlciBoZWlnaHQgYmFzZWQgb24gdGhlIGhlaWdodCBvZiB0aGUgcHJvdmlkZWQgc3RlcC5cbiAgICovXG4gIHByaXZhdGUgX3NldFN0ZXBwZXJIZWlnaHQoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHN0ZXAgJiYgc3RlcC5zaGFkb3dSb290KSB7XG4gICAgICBjb25zdCBpbm5lckVsZW1lbnQ6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCA9IHN0ZXAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0ZXAnKTtcbiAgICAgIGlmIChpbm5lckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXN0ZXBwZXItY29udGVudC1oZWlnaHQnLCBgJHtpbm5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0fXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTGFiZWxPZmZzZXRUb3AoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGZvciAoY29uc3Qgc3RlcCBvZiB0aGlzLnN0ZXBzKSB7XG4gICAgICBpZiAoc3RlcCA9PT0gdGhpcy5zZWxlY3RlZCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG9mZnNldCA9IHN0ZXAubGFiZWwhLm9mZnNldEhlaWdodCArIG9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIG9mZnNldCArXG4gICAgICB0aGlzLnNlbGVjdGVkIS5sYWJlbCEub2Zmc2V0SGVpZ2h0ISArXG4gICAgICBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcykuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zYmItc3BhY2luZy1maXhlZC02eCcpKSAqXG4gICAgICAgIDE2ICpcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uU2VsZWN0ZWRTdGVwUmVzaXplKGU6IEN1c3RvbUV2ZW50PHZvaWQ+KTogdm9pZCB7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChlLnRhcmdldCBhcyBTYmJTdGVwRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmUoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RlcHMgPSB0aGlzLnN0ZXBzO1xuICAgIHN0ZXBzLmZvckVhY2goKHMpID0+IHMuY29uZmlndXJlKHRoaXMuX2xvYWRlZCkpO1xuICAgIHN0ZXBzXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLmxhYmVsKVxuICAgICAgLm1hcCgocykgPT4gcy5sYWJlbCEpXG4gICAgICAuZm9yRWFjaCgobGFiZWwsIGksIGFycmF5KSA9PiB7XG4gICAgICAgIGxhYmVsLmNvbmZpZ3VyZShpICsgMSwgYXJyYXkubGVuZ3RoLCB0aGlzLl9sb2FkZWQpO1xuICAgICAgfSk7XG4gICAgdGhpcy5fc2VsZWN0KHRoaXMuc2VsZWN0ZWQgfHwgdGhpcy5fZW5hYmxlZFN0ZXBzWzBdKTtcbiAgICB0aGlzLl9wcm94eVNpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUxhYmVscygpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIHN0ZXAuc2xvdCA9IHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJyA/ICdzdGVwJyA6ICdzdGVwLWxhYmVsJztcbiAgICAgIHN0ZXAuc2V0QXR0cmlidXRlKCdkYXRhLW9yaWVudGF0aW9uJywgdGhpcy5vcmllbnRhdGlvbik7XG4gICAgICBzdGVwLmxhYmVsPy5zZXRBdHRyaWJ1dGUoJ2RhdGEtb3JpZW50YXRpb24nLCB0aGlzLm9yaWVudGF0aW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrT3JpZW50YXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG9yaXpvbnRhbEZyb20pIHtcbiAgICAgIHRoaXMub3JpZW50YXRpb24gPSBpc0JyZWFrcG9pbnQodGhpcy5ob3Jpem9udGFsRnJvbSkgPyAnaG9yaXpvbnRhbCcgOiAndmVydGljYWwnO1xuICAgICAgdGhpcy5fdXBkYXRlTGFiZWxzKCk7XG4gICAgfVxuICAgIC8vIFRoZSB0aW1lb3V0IGlzIG5lZWRlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgbWFya2VyIHRha2VzIHRoZSBjb3JyZWN0IHN0ZXAtbGFiZWwgc2l6ZS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3NldE1hcmtlclNpemUoKSwgMCk7XG4gIH1cblxuICBwcml2YXRlIF9vblN0ZXBwZXJSZXNpemUgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5fY2hlY2tPcmllbnRhdGlvbigpO1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCEpO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGUtYW5pbWF0aW9uJywgdHJ1ZSk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0byBhdm9pZCBzdHJhbmdlIHRyYW5zaXRpb24gZWZmZWN0cy5cbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1hbmltYXRpb24nLCBmYWxzZSksXG4gICAgICBERUJPVU5DRV9USU1FLFxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlTGluZWFyTW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICBzdGVwLmxhYmVsPy50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAgICdkaXNhYmxlZCcsXG4gICAgICAgICh0aGlzLmxpbmVhciAmJiBpbmRleCA+IHRoaXMuc2VsZWN0ZWRJbmRleCEpIHx8XG4gICAgICAgICAgKCF0aGlzLmxpbmVhciAmJiBzdGVwLmxhYmVsLmhhc0F0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlZCcpKSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fb25TdGVwcGVyUmVzaXplLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGUtYW5pbWF0aW9uJywgIXRoaXMuX2xvYWRlZCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fb25TdGVwcGVyUmVzaXplKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMubGluZWFyID8gMCA6IE51bWJlcih0aGlzLmdldEF0dHJpYnV0ZSgnc2VsZWN0ZWQtaW5kZXgnKSkgfHwgMDtcbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgICAvLyBSZW1vdmUgW2RhdGEtZGlzYWJsZS1hbmltYXRpb25dIGFmdGVyIGNvbXBvbmVudCBpbml0XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGUtYW5pbWF0aW9uJywgZmFsc2UpLCBERUJPVU5DRV9USU1FKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29yaWVudGF0aW9uJykgJiYgIXRoaXMuaG9yaXpvbnRhbEZyb20pIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaW5lYXInKSAmJiB0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZUxpbmVhck1vZGUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX3Byb3h5U2l6ZSgpO1xuICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Byb3h5U2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIHN0ZXAubGFiZWw/LnNldEF0dHJpYnV0ZSgnZGF0YS1zaXplJywgdGhpcy5zaXplKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZFN0ZXBzOiBTYmJTdGVwRWxlbWVudFtdID0gdGhpcy5fZW5hYmxlZFN0ZXBzO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRTdGVwcyB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRTdGVwcy5pbmRleE9mKHRoaXMuc2VsZWN0ZWQhKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRTdGVwcy5sZW5ndGgpO1xuICAgICAgdGhpcy5fc2VsZWN0KGVuYWJsZWRTdGVwc1tuZXh0SW5kZXhdKTtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zdGVwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RlcHBlcl9fbGFiZWxzXCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3RlcC1sYWJlbFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fY29uZmlndXJlfT48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJfX3N0ZXBzXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInN0ZXBcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZX0+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zdGVwcGVyJzogU2JiU3RlcHBlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNLGdCQUFnQjtJQVVoQixxQkFBaUIsTUFBQTs7MEJBRHRCLGNBQWMsYUFBYSxDQUFDOzs7O29CQUNHLGtCQUFrQixVQUFVOzs7Ozs7Ozs7Ozs7OztBQUFwQyxFQUFBLG1CQUFRLFlBQTZCO0FBQUEsSUFtRjNELGNBQUE7OztBQTNEQTtBQWlCQTtBQU02QjtBQXRDckIsV0FBQSxhQVRKLGtCQUFpQixNQUFBLDBCQUFBLEdBU0QsSUFBSSx1QkFBdUIsTUFBTTtBQUFBLFFBQ25ELFFBQVE7QUFBQSxRQUNSLFVBQVUsQ0FBQyxZQUFXO0FBQ1osa0JBQUEsUUFBUSxDQUFDLE1BQUs7QUFDaEIsZ0JBQUEsRUFBRSxvQkFBb0IsR0FBRztBQUN0QixtQkFBQSxrQkFBa0IsS0FBSyxRQUFRO0FBQ3BDLG1CQUFLLGVBQWM7QUFBQSxZQUFBO0FBQUEsVUFDckIsQ0FDRDtBQUFBLFFBQUE7QUFBQSxNQUNILENBQ0Q7QUFLZSx5QkFBQSwwQkFBQSxrQkFBQSxNQUFBLHNCQUFrQixLQUFLO0FBYS9CLFdBQWUsbUJBQUEsa0JBQUEsTUFBQSx5QkFBQSxHQUE2QjtBQUlwQyx5QkFBQSwrQkFBQSxrQkFBQSxNQUFBLDJCQUE4QixZQUFZO0FBTUsseUJBQUEseUJBQUEsa0JBQUEsTUFBQSw4QkFBQSxH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
@@ -1,11 +1,12 @@
1
1
  import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
- declare const SbbTableWrapperElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNegativeMixinType> & typeof LitElement;
2
+ declare const SbbTableWrapperElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNegativeMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbElementInternalsMixinType> & typeof LitElement & import('../../core/mixins.js').SbbElementInternalsConstructor;
3
3
  /**
4
4
  * Wraps a table to enhance its functionality.
5
5
  *
6
6
  * @slot - Use the unnamed slot to add the table.
7
7
  */
8
8
  export declare class SbbTableWrapperElement extends SbbTableWrapperElement_base {
9
+ static readonly role = "section";
9
10
  static styles: CSSResultGroup;
10
11
  /** Whether the table wrapper is focusable. */
11
12
  accessor focusable: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"table-wrapper.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/table/table-wrapper/table-wrapper.component.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAGnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;;AAQb;;;;GAIG;AACH,qBAEM,sBAAuB,SAAQ,2BAA4B;IAC/D,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,8CAA8C;IAC9C,SAEgB,SAAS,EAAE,OAAO,CAAS;;IAqB3B,iBAAiB,IAAI,IAAI;cAStB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAkB5E,OAAO,CAAC,qBAAqB;IAa7B;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,sBAAsB;cAeX,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
1
+ {"version":3,"file":"table-wrapper.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/table/table-wrapper/table-wrapper.component.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAGnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;;AAQb;;;;GAIG;AACH,qBAEM,sBAAuB,SAAQ,2BAAsD;IACzF,gBAAgC,IAAI,aAAa;IACjD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,8CAA8C;IAC9C,SAEgB,SAAS,EAAE,OAAO,CAAS;;IAgB3B,iBAAiB,IAAI,IAAI;cAStB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAkB5E,OAAO,CAAC,qBAAqB;IAa7B;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,sBAAsB;cAeX,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
@@ -10,7 +10,7 @@ import { ResizeController } from "@lit-labs/observers/resize-controller.js";
10
10
  import { css, LitElement, isServer, html } from "lit";
11
11
  import { customElement, property } from "lit/decorators.js";
12
12
  import { forceType } from "../../core/decorators.js";
13
- import { SbbNegativeMixin } from "../../core/mixins.js";
13
+ import { SbbNegativeMixin, SbbElementInternalsMixin } from "../../core/mixins.js";
14
14
  const style = css`*,
15
15
  ::before,
16
16
  ::after {
@@ -40,7 +40,7 @@ let SbbTableWrapperElement = (() => {
40
40
  let _classDescriptor;
41
41
  let _classExtraInitializers = [];
42
42
  let _classThis;
43
- let _classSuper = SbbNegativeMixin(LitElement);
43
+ let _classSuper = SbbNegativeMixin(SbbElementInternalsMixin(LitElement));
44
44
  let _focusable_decorators;
45
45
  let _focusable_initializers = [];
46
46
  let _focusable_extraInitializers = [];
@@ -50,8 +50,6 @@ let SbbTableWrapperElement = (() => {
50
50
  super();
51
51
  __privateAdd(this, _focusable_accessor_storage, __runInitializers(this, _focusable_initializers, false));
52
52
  __runInitializers(this, _focusable_extraInitializers);
53
- const internals = this.attachInternals();
54
- internals.role = "section";
55
53
  this.addController(new ResizeController(this, {
56
54
  skipInitial: true,
57
55
  callback: () => this._checkHorizontalScrollbarOffset()
@@ -130,10 +128,10 @@ let SbbTableWrapperElement = (() => {
130
128
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
131
129
  _classThis = _classDescriptor.value;
132
130
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
133
- })(), _a.styles = style, __runInitializers(_classThis, _classExtraInitializers), _a;
131
+ })(), _a.role = "section", _a.styles = style, __runInitializers(_classThis, _classExtraInitializers), _a;
134
132
  return _classThis;
135
133
  })();
136
134
  export {
137
135
  SbbTableWrapperElement
138
136
  };
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtd3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90YWJsZS90YWJsZS13cmFwcGVyL3RhYmxlLXdyYXBwZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90YWJsZS13cmFwcGVyLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogV3JhcHMgYSB0YWJsZSB0byBlbmhhbmNlIGl0cyBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIHRoZSB0YWJsZS5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRhYmxlLXdyYXBwZXInKVxuY2xhc3MgU2JiVGFibGVXcmFwcGVyRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogV2hldGhlciB0aGUgdGFibGUgd3JhcHBlciBpcyBmb2N1c2FibGUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmb2N1c2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIGludGVybmFscy5yb2xlID0gJ3NlY3Rpb24nO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX2NoZWNrSG9yaXpvbnRhbFNjcm9sbGJhck9mZnNldCgpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9jaGVja0hvcml6b250YWxTY3JvbGxiYXJPZmZzZXQoKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gQXMgd2UgY2FuJ3QgaW5jbHVkZSB0aGUgc2Nyb2xsYmFyIG1peGluIG9uIHRoZSBob3N0IGFuZCB0byBtaW5pbWl6ZVxuICAgIC8vIHBheWxvYWQsIHdlIGRlY2lkZWQgdG8gYWRkIHRoZSBzY3JvbGxiYXIgY2xhc3MgaGVyZS5cbiAgICAvLyBUaGlzIGlzIGFuIGV4Y2VwdGlvbiBhcyB3ZSBub3JtYWxseSBkb24ndCBhbHRlciB0aGUgY2xhc3NMaXN0IG9mIHRoZSBob3N0LlxuICAgIHRoaXMuX3VwZGF0ZVNjcm9sbGJhckNsYXNzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2ZvY3VzYWJsZScpKSB7XG4gICAgICBpZiAodGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVNjcm9sbGJhckNsYXNzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2Nyb2xsYmFyQ2xhc3MoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm5lZ2F0aXZlKSB7XG4gICAgICB0aGlzLmNsYXNzTGlzdC5yZW1vdmUoJ3NiYi1zY3JvbGxiYXItdGhpY2stdHJhY2stdmlzaWJsZScpO1xuICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdzYmItc2Nyb2xsYmFyLXRoaWNrLW5lZ2F0aXZlLXRyYWNrLXZpc2libGUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCdzYmItc2Nyb2xsYmFyLXRoaWNrLW5lZ2F0aXZlLXRyYWNrLXZpc2libGUnKTtcbiAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnc2JiLXNjcm9sbGJhci10aGljay10cmFjay12aXNpYmxlJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBDYWxjdWxhdGVzIHdoZXRoZXIgdGhlIHRhYmxlIGlzIGhvcml6b250YWxseSBzY3JvbGxlZCBhbmQgYWRkcyB0aGVcbiAgICogIGNvcnJlc3BvbmRpbmcgY2xhc3MgYHNiYi10YWJsZS13cmFwcGVyLW9mZnNldC0ke25vbmUgfCBsZWZ0IHwgcmlnaHQgfCBib3RofWBcbiAgICovXG4gIHByaXZhdGUgX2NoZWNrSG9yaXpvbnRhbFNjcm9sbGJhck9mZnNldCgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2NhbGN1bGF0ZVNjcm9sbE9mZnNldCgpO1xuICAgIHRoaXMuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgIGBzYmItdGFibGUtd3JhcHBlci1vZmZzZXQtbm9uZWAsXG4gICAgICBgc2JiLXRhYmxlLXdyYXBwZXItb2Zmc2V0LWxlZnRgLFxuICAgICAgYHNiYi10YWJsZS13cmFwcGVyLW9mZnNldC1yaWdodGAsXG4gICAgICBgc2JiLXRhYmxlLXdyYXBwZXItb2Zmc2V0LWJvdGhgLFxuICAgICk7XG4gICAgdGhpcy5jbGFzc0xpc3QuYWRkKGBzYmItdGFibGUtd3JhcHBlci1vZmZzZXQtJHtzdGF0ZX1gKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZVNjcm9sbE9mZnNldCgpOiAnbm9uZScgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdGgnIHtcbiAgICBpZiAodGhpcy5zY3JvbGxXaWR0aCA9PT0gdGhpcy5vZmZzZXRXaWR0aCkge1xuICAgICAgcmV0dXJuICdub25lJztcbiAgICB9XG4gICAgY29uc3QgaXNBdFN0YXJ0ID0gdGhpcy5zY3JvbGxMZWZ0ID09PSAwO1xuICAgIC8vIEluIHNvbWUgY2FzZXMgdGhlIGNvbWJpbmVkIHZhbHVlIG9mIHNjcm9sbExlZnQgYW5kIG9mZnNldFdpZHRoIGlzIG9mZiBieVxuICAgIC8vIDEgcGl4ZWwgZnJvbSB0aGUgc2Nyb2xsV2lkdGguXG4gICAgY29uc3QgaXNBdEVuZCA9IHRoaXMuc2Nyb2xsV2lkdGggLSB0aGlzLnNjcm9sbExlZnQgLSB0aGlzLm9mZnNldFdpZHRoIDw9IDE7XG5cbiAgICBpZiAoaXNBdFN0YXJ0KSB7XG4gICAgICByZXR1cm4gaXNBdEVuZCA/ICdub25lJyA6ICdyaWdodCc7XG4gICAgfVxuICAgIHJldHVybiBpc0F0RW5kID8gJ2xlZnQnIDogJ2JvdGgnO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNsb3Q+PC9zbG90PmA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10YWJsZS13cmFwcGVyJzogU2JiVGFibGVXcmFwcGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUF1Qk0sMEJBQXNCLE1BQUE7OzBCQUQzQixjQUFjLG1CQUFtQixDQUFDOzs7O29CQUNFLGlCQUFpQixVQUFVOzs7O0FBQW5DLEVBQUEsbUJBQVEsWUFBNEI7QUFBQSxJQVEvRCxjQUFBOzs7QUFGQSxzREFBQSxrQkFBQSxNQUFBLHlCQUFxQyxLQUFLOztBQUtsQyxZQUFBLFlBQThCLEtBQUs7QUFFekMsZ0JBQVUsT0FBTztBQUVaLFdBQUEsY0FDSCxJQUFJLGlCQUFpQixNQUFNO0FBQUEsUUFDekIsYUFBYTtBQUFBLFFBQ2IsVUFBVSxNQUFNLEtBQUssZ0NBQWlDO0FBQUEsTUFBQSxDQUN2RCxDQUFDO0FBR0osT0FBQUEsTUFBQSxLQUFLLHFCQUFMLGdCQUFBQSxJQUFBLFdBQXdCLFVBQVUsTUFBTSxL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
137
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtd3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90YWJsZS90YWJsZS13cmFwcGVyL3RhYmxlLXdyYXBwZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sIFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RhYmxlLXdyYXBwZXIuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBXcmFwcyBhIHRhYmxlIHRvIGVuaGFuY2UgaXRzIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgdGhlIHRhYmxlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItdGFibGUtd3JhcHBlcicpXG5jbGFzcyBTYmJUYWJsZVdyYXBwZXJFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3NlY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogV2hldGhlciB0aGUgdGFibGUgd3JhcHBlciBpcyBmb2N1c2FibGUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmb2N1c2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgICAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fY2hlY2tIb3Jpem9udGFsU2Nyb2xsYmFyT2Zmc2V0KCksXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3Njcm9sbCcsICgpID0+IHRoaXMuX2NoZWNrSG9yaXpvbnRhbFNjcm9sbGJhck9mZnNldCgpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAvLyBBcyB3ZSBjYW4ndCBpbmNsdWRlIHRoZSBzY3JvbGxiYXIgbWl4aW4gb24gdGhlIGhvc3QgYW5kIHRvIG1pbmltaXplXG4gICAgLy8gcGF5bG9hZCwgd2UgZGVjaWRlZCB0byBhZGQgdGhlIHNjcm9sbGJhciBjbGFzcyBoZXJlLlxuICAgIC8vIFRoaXMgaXMgYW4gZXhjZXB0aW9uIGFzIHdlIG5vcm1hbGx5IGRvbid0IGFsdGVyIHRoZSBjbGFzc0xpc3Qgb2YgdGhlIGhvc3QuXG4gICAgdGhpcy5fdXBkYXRlU2Nyb2xsYmFyQ2xhc3MoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9jdXNhYmxlJykpIHtcbiAgICAgIGlmICh0aGlzLmZvY3VzYWJsZSkge1xuICAgICAgICBpZiAoIXRoaXMuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpKSB7XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5fdXBkYXRlU2Nyb2xsYmFyQ2xhc3MoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTY3JvbGxiYXJDbGFzcygpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubmVnYXRpdmUpIHtcbiAgICAgIHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgnc2JiLXNjcm9sbGJhci10aGljay10cmFjay12aXNpYmxlJyk7XG4gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3NiYi1zY3JvbGxiYXItdGhpY2stbmVnYXRpdmUtdHJhY2stdmlzaWJsZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsYXNzTGlzdC5yZW1vdmUoJ3NiYi1zY3JvbGxiYXItdGhpY2stbmVnYXRpdmUtdHJhY2stdmlzaWJsZScpO1xuICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdzYmItc2Nyb2xsYmFyLXRoaWNrLXRyYWNrLXZpc2libGUnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIENhbGN1bGF0ZXMgd2hldGhlciB0aGUgdGFibGUgaXMgaG9yaXpvbnRhbGx5IHNjcm9sbGVkIGFuZCBhZGRzIHRoZVxuICAgKiAgY29ycmVzcG9uZGluZyBjbGFzcyBgc2JiLXRhYmxlLXdyYXBwZXItb2Zmc2V0LSR7bm9uZSB8IGxlZnQgfCByaWdodCB8IGJvdGh9YFxuICAgKi9cbiAgcHJpdmF0ZSBfY2hlY2tIb3Jpem9udGFsU2Nyb2xsYmFyT2Zmc2V0KCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fY2FsY3VsYXRlU2Nyb2xsT2Zmc2V0KCk7XG4gICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKFxuICAgICAgYHNiYi10YWJsZS13cmFwcGVyLW9mZnNldC1ub25lYCxcbiAgICAgIGBzYmItdGFibGUtd3JhcHBlci1vZmZzZXQtbGVmdGAsXG4gICAgICBgc2JiLXRhYmxlLXdyYXBwZXItb2Zmc2V0LXJpZ2h0YCxcbiAgICAgIGBzYmItdGFibGUtd3JhcHBlci1vZmZzZXQtYm90aGAsXG4gICAgKTtcbiAgICB0aGlzLmNsYXNzTGlzdC5hZGQoYHNiYi10YWJsZS13cmFwcGVyLW9mZnNldC0ke3N0YXRlfWApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlU2Nyb2xsT2Zmc2V0KCk6ICdub25lJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAnYm90aCcge1xuICAgIGlmICh0aGlzLnNjcm9sbFdpZHRoID09PSB0aGlzLm9mZnNldFdpZHRoKSB7XG4gICAgICByZXR1cm4gJ25vbmUnO1xuICAgIH1cbiAgICBjb25zdCBpc0F0U3RhcnQgPSB0aGlzLnNjcm9sbExlZnQgPT09IDA7XG4gICAgLy8gSW4gc29tZSBjYXNlcyB0aGUgY29tYmluZWQgdmFsdWUgb2Ygc2Nyb2xsTGVmdCBhbmQgb2Zmc2V0V2lkdGggaXMgb2ZmIGJ5XG4gICAgLy8gMSBwaXhlbCBmcm9tIHRoZSBzY3JvbGxXaWR0aC5cbiAgICBjb25zdCBpc0F0RW5kID0gdGhpcy5zY3JvbGxXaWR0aCAtIHRoaXMuc2Nyb2xsTGVmdCAtIHRoaXMub2Zmc2V0V2lkdGggPD0gMTtcblxuICAgIGlmIChpc0F0U3RhcnQpIHtcbiAgICAgIHJldHVybiBpc0F0RW5kID8gJ25vbmUnIDogJ3JpZ2h0JztcbiAgICB9XG4gICAgcmV0dXJuIGlzQXRFbmQgPyAnbGVmdCcgOiAnYm90aCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdD48L3Nsb3Q+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRhYmxlLXdyYXBwZXInOiBTYmJUYWJsZVdyYXBwZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQXVCTSwwQkFBc0IsTUFBQTs7MEJBRDNCLGNBQWMsbUJBQW1CLENBQUM7Ozs7QUFDRSxNQUFBLGNBQUEsaUJBQWlCLHlCQUF5QixVQUFVLENBQUM7Ozs7QUFBN0QsRUFBQSxtQkFBUSxZQUFzRDtBQUFBLElBU3pGLGNBQUE7OztBQUZBLHNEQUFBLGtCQUFBLE1BQUEseUJBQXFDLEtBQUs7O0FBSW5DLFdBQUEsY0FDSCxJQUFJLGlCQUFpQixNQUFNO0FBQUEsUUFDekIsYUFBYTtBQUFBLFFBQ2IsVUFBVSxNQUFNLEtBQUssZ0NBQWlDO0FBQUEsTUFBQSxDQUN2RCxDQUFDO0FBR0osT0FBQUEsTUFBQSxLQUFLLHFCQUFMLGdCQUFBQSxJQUFBLFdBQXdCLFVBQVUsTUFBTSxLQUFLLG1DQUFtQztBQUFBLFFBQzlFLFNBQVM7QUFBQSxNQUFB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
@@ -1,11 +1,13 @@
1
1
  import { CSSResultGroup, TemplateResult, LitElement } from 'lit';
2
2
  import { SbbTabLabelElement } from '../tab-label.js';
3
+ declare const SbbTabElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbElementInternalsMixinType> & typeof LitElement & import('../../core/mixins.js').SbbElementInternalsConstructor;
3
4
  /**
4
5
  * Combined with a `sbb-tab-group`, it displays a tab's content.
5
6
  *
6
7
  * @slot - Use the unnamed slot to provide content.
7
8
  */
8
- export declare class SbbTabElement extends LitElement {
9
+ export declare class SbbTabElement extends SbbTabElement_base {
10
+ static role: string;
9
11
  static styles: CSSResultGroup;
10
12
  /** The `sbb-tab-label` associated with the tab. */
11
13
  get label(): SbbTabLabelElement | null;
@@ -20,4 +22,5 @@ declare global {
20
22
  'sbb-tab': SbbTabElement;
21
23
  }
22
24
  }
25
+ export {};
23
26
  //# sourceMappingURL=tab.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/tabs/tab/tab.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAGvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAI1D;;;;GAIG;AACH,qBAEM,aAAc,SAAQ,UAAU;IACpC,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,mDAAmD;IACnD,IAAW,KAAK,IAAI,kBAAkB,GAAG,IAAI,CAE5C;IACD,OAAO,CAAC,MAAM,CAAmC;IAEjD,OAAO,CAAC,YAAY;IAQpB,gBAAgB;IACT,SAAS,IAAI,IAAI;cAIL,MAAM,IAAI,cAAc;CAO5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,SAAS,EAAE,aAAa,CAAC;KAC1B;CACF"}
1
+ {"version":3,"file":"tab.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/tabs/tab/tab.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAIvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;;AAI1D;;;;GAIG;AACH,qBAEM,aAAc,SAAQ,kBAAoC;IAC9D,OAAuB,IAAI,SAAc;IACzC,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,mDAAmD;IACnD,IAAW,KAAK,IAAI,kBAAkB,GAAG,IAAI,CAE5C;IACD,OAAO,CAAC,MAAM,CAAmC;IAEjD,OAAO,CAAC,YAAY;IAQpB,gBAAgB;IACT,SAAS,IAAI,IAAI;cAIL,MAAM,IAAI,cAAc;CAO5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,SAAS,EAAE,aAAa,CAAC;KAC1B;CACF"}
@@ -1,6 +1,7 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { css, LitElement, html } from "lit";
3
3
  import { customElement } from "lit/decorators.js";
4
+ import { SbbElementInternalsMixin } from "../../core/mixins.js";
4
5
  const style = css`@charset "UTF-8";
5
6
  *,
6
7
  ::before,
@@ -24,7 +25,7 @@ let SbbTabElement = (() => {
24
25
  let _classDescriptor;
25
26
  let _classExtraInitializers = [];
26
27
  let _classThis;
27
- let _classSuper = LitElement;
28
+ let _classSuper = SbbElementInternalsMixin(LitElement);
28
29
  _a = class extends _classSuper {
29
30
  constructor() {
30
31
  super(...arguments);
@@ -57,10 +58,10 @@ let SbbTabElement = (() => {
57
58
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
58
59
  _classThis = _classDescriptor.value;
59
60
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
60
- })(), _a.styles = style, __runInitializers(_classThis, _classExtraInitializers), _a;
61
+ })(), _a.role = "tabpanel", _a.styles = style, __runInitializers(_classThis, _classExtraInitializers), _a;
61
62
  return _classThis;
62
63
  })();
63
64
  export {
64
65
  SbbTabElement
65
66
  };
66
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiL3RhYi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYlRhYkxhYmVsRWxlbWVudCB9IGZyb20gJy4uL3RhYi1sYWJlbC5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RhYi5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLXRhYi1ncm91cGAsIGl0IGRpc3BsYXlzIGEgdGFiJ3MgY29udGVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIHByb3ZpZGUgY29udGVudC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRhYicpXG5jbGFzcyBTYmJUYWJFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBUaGUgYHNiYi10YWItbGFiZWxgIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFiLiAqL1xuICBwdWJsaWMgZ2V0IGxhYmVsKCk6IFNiYlRhYkxhYmVsRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbDtcbiAgfVxuICBwcml2YXRlIF9sYWJlbDogU2JiVGFiTGFiZWxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfZ2V0VGFiTGFiZWwoKTogU2JiVGFiTGFiZWxFbGVtZW50IHwgbnVsbCB7XG4gICAgbGV0IHByZXZpb3VzU2libGluZyA9IHRoaXMucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICB3aGlsZSAocHJldmlvdXNTaWJsaW5nICYmIHByZXZpb3VzU2libGluZy5sb2NhbE5hbWUgIT09ICdzYmItdGFiLWxhYmVsJykge1xuICAgICAgcHJldmlvdXNTaWJsaW5nID0gcHJldmlvdXNTaWJsaW5nLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgfVxuICAgIHJldHVybiBwcmV2aW91c1NpYmxpbmcgYXMgU2JiVGFiTGFiZWxFbGVtZW50O1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgY29uZmlndXJlKCk6IHZvaWQge1xuICAgIHRoaXMuX2xhYmVsID0gdGhpcy5fZ2V0VGFiTGFiZWwoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10YWJcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRhYic6IFNiYlRhYkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWVNLGlCQUFhLE1BQUE7OzBCQURsQixjQUFjLFNBQVMsQ0FBQzs7OztvQkFDRztBQUFSLEVBQUEsbUJBQVEsWUFBVTtBQUFBOztBQU81QixXQUFNLFNBQThCO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFINUMsSUFBVyxRQUFLO0FBQ2QsYUFBTyxLQUFLO0FBQUEsSUFBQTtBQUFBLElBSU4sZUFBWTtBQUNsQixVQUFJLGtCQUFrQixLQUFLO0FBQ3BCLGFBQUEsbUJBQW1CLGdCQUFnQixjQUFjLGlCQUFpQjtBQUN2RSwwQkFBa0IsZ0JBQWdCO0FBQUEsTUFBQTtBQUU3QixhQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFJRixZQUFTO0FBQ1QsV0FBQSxTQUFTLEtBQUs7O0lBR0YsU0FBTTtBQUNoQixhQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBO0FBQUE7O0FBdkJYLGlCQTZCQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBNUJ3QixHQUFNLFNBQW1CLE9BRDVDLGtCQUFhLFlBQUEsdUJBQUEsR0FBQzs7OyJ9
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiL3RhYi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkxhYmVsRWxlbWVudCB9IGZyb20gJy4uL3RhYi1sYWJlbC5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RhYi5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLXRhYi1ncm91cGAsIGl0IGRpc3BsYXlzIGEgdGFiJ3MgY29udGVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIHByb3ZpZGUgY29udGVudC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRhYicpXG5jbGFzcyBTYmJUYWJFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByb2xlID0gJ3RhYnBhbmVsJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqIFRoZSBgc2JiLXRhYi1sYWJlbGAgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWIuICovXG4gIHB1YmxpYyBnZXQgbGFiZWwoKTogU2JiVGFiTGFiZWxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICB9XG4gIHByaXZhdGUgX2xhYmVsOiBTYmJUYWJMYWJlbEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9nZXRUYWJMYWJlbCgpOiBTYmJUYWJMYWJlbEVsZW1lbnQgfCBudWxsIHtcbiAgICBsZXQgcHJldmlvdXNTaWJsaW5nID0gdGhpcy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgIHdoaWxlIChwcmV2aW91c1NpYmxpbmcgJiYgcHJldmlvdXNTaWJsaW5nLmxvY2FsTmFtZSAhPT0gJ3NiYi10YWItbGFiZWwnKSB7XG4gICAgICBwcmV2aW91c1NpYmxpbmcgPSBwcmV2aW91c1NpYmxpbmcucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICB9XG4gICAgcmV0dXJuIHByZXZpb3VzU2libGluZyBhcyBTYmJUYWJMYWJlbEVsZW1lbnQ7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBjb25maWd1cmUoKTogdm9pZCB7XG4gICAgdGhpcy5fbGFiZWwgPSB0aGlzLl9nZXRUYWJMYWJlbCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXRhYlwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdGFiJzogU2JiVGFiRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWdCTSxpQkFBYSxNQUFBOzswQkFEbEIsY0FBYyxTQUFTLENBQUM7Ozs7b0JBQ0cseUJBQXlCLFVBQVU7QUFBM0MsRUFBQSxtQkFBUSxZQUFvQztBQUFBOztBQVF0RCxXQUFNLFNBQThCO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFINUMsSUFBVyxRQUFLO0FBQ2QsYUFBTyxLQUFLO0FBQUEsSUFBQTtBQUFBLElBSU4sZUFBWTtBQUNsQixVQUFJLGtCQUFrQixLQUFLO0FBQ3BCLGFBQUEsbUJBQW1CLGdCQUFnQixjQUFjLGlCQUFpQjtBQUN2RSwwQkFBa0IsZ0JBQWdCO0FBQUEsTUFBQTtBQUU3QixhQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFJRixZQUFTO0FBQ1QsV0FBQSxTQUFTLEtBQUs7O0lBR0YsU0FBTTtBQUNoQixhQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBO0FBQUE7O0FBeEJYLGlCQThCQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBN0J3QixHQUFJLE9BQUcsWUFDUCxHQUFNLFNBQW1CLE9BRjVDLGtCQUFhLFlBQUEsdUJBQUEsR0FBQzs7OyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"tab-group.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/tabs/tab-group/tab-group.component.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AASvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1C,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,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,IAAI,IAAI,CAAC;IACjB,UAAU,IAAI,IAAI,CAAC;IACnB,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,2BAA2B,CAAC;IAC9C,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;CACxB;;AAQD;;;;;;GAMG;AACH,qBAEM,kBAAmB,SAAQ,uBAA6B;IAC5D,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,YAAY,CAAC,CAA0B;IAC/C,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,qBAAqB,CAI1B;IACH,OAAO,CAAC,uBAAuB,CAI5B;IACH,OAAO,CAAC,yBAAyB,CAI9B;IAEH;;;OAGG;IACH,IACW,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAGrD;IACD,IAAW,IAAI,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAEjD;IACD,OAAO,CAAC,KAAK,CAAyD;IAEtE;;;OAGG;IACH,SAEgB,oBAAoB,EAAE,MAAM,CAAK;IAEjD,6CAA6C;IAC7C,OAAO,CAAC,mBAAmB,CAGzB;;cAOiB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAS9E;;;OAGG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIzC;;;OAGG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxC;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI1C,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,oBAAoB,CAY1B;IAEF,OAAO,CAAC,iBAAiB,CAavB;IAEF,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,UAAU;IAmGlB,OAAO,CAAC,cAAc;cAoBH,MAAM,IAAI,cAAc;CAe5C;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":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AASvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1C,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,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,IAAI,IAAI,CAAC;IACjB,UAAU,IAAI,IAAI,CAAC;IACnB,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,2BAA2B,CAAC;IAC9C,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;CACxB;;AAQD;;;;;;GAMG;AACH,qBAEM,kBAAmB,SAAQ,uBAA6B;IAC5D,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,YAAY,CAAC,CAA0B;IAC/C,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,qBAAqB,CAI1B;IACH,OAAO,CAAC,uBAAuB,CAI5B;IACH,OAAO,CAAC,yBAAyB,CAI9B;IAEH;;;OAGG;IACH,IACW,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAGrD;IACD,IAAW,IAAI,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAEjD;IACD,OAAO,CAAC,KAAK,CAAyD;IAEtE;;;OAGG;IACH,SAEgB,oBAAoB,EAAE,MAAM,CAAK;IAGjD,6CAA6C;IAC7C,OAAO,CAAC,mBAAmB,CAGzB;;cAOiB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAS9E;;;OAGG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIzC;;;OAGG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxC;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI1C,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,oBAAoB,CAY1B;IAEF,OAAO,CAAC,iBAAiB,CAavB;IAEF,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,UAAU;IAiGlB,OAAO,CAAC,cAAc;cAoBH,MAAM,IAAI,cAAc;CAe5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,kBAAkB,CAAC;KACrC;CACF"}
@@ -57,7 +57,7 @@ const style = css`*,
57
57
  transition-timing-function: var(--sbb-animation-easing);
58
58
  transition-property: opacity, visibility;
59
59
  }
60
- .tab-content ::slotted([role=tabpanel]:focus-visible) {
60
+ .tab-content ::slotted(sbb-tab:focus-visible) {
61
61
  outline-offset: var(--sbb-focus-outline-offset);
62
62
  outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
63
63
  }`;
@@ -323,7 +323,6 @@ let SbbTabGroupElement = (() => {
323
323
  tabLabel.tabIndex = -1;
324
324
  tabLabel.disabled = tabLabel.hasAttribute("disabled");
325
325
  tabLabel.active = tabLabel.hasAttribute("active") && !tabLabel.disabled;
326
- tabLabel.setAttribute("role", "tab");
327
326
  tabLabel.setAttribute("aria-selected", String(tabLabel.active));
328
327
  tabLabel.addEventListener("click", () => {
329
328
  var _a3;
@@ -331,7 +330,6 @@ let SbbTabGroupElement = (() => {
331
330
  });
332
331
  if (tabLabel.tab) {
333
332
  tabLabel.setAttribute("aria-controls", tabLabel.tab.id);
334
- tabLabel.tab.setAttribute("role", "tabpanel");
335
333
  tabLabel.tab.toggleAttribute("active", tabLabel.active);
336
334
  }
337
335
  this._tabAttributeObserver.observe(tabLabel);
@@ -388,4 +386,4 @@ let SbbTabGroupElement = (() => {
388
386
  export {
389
387
  SbbTabGroupElement
390
388
  };
391
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXV0YXRpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9tdXRhdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgZ2V0TmV4dEVsZW1lbnRJbmRleCwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgdGhyb3R0bGUgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUYWJMYWJlbEVsZW1lbnQgfSBmcm9tICcuLi90YWItbGFiZWwuanMnO1xuaW1wb3J0IHsgU2JiVGFiRWxlbWVudCB9IGZyb20gJy4uL3RhYi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RhYi1ncm91cC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5leHBvcnQgdHlwZSBTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzID0ge1xuICBhY3RpdmVJbmRleDogbnVtYmVyO1xuICBhY3RpdmVUYWJMYWJlbDogU2JiVGFiTGFiZWxFbGVtZW50O1xuICBhY3RpdmVUYWI6IFNiYlRhYkVsZW1lbnQ7XG4gIHByZXZpb3VzSW5kZXg6IG51bWJlcjtcbiAgcHJldmlvdXNUYWJMYWJlbDogU2JiVGFiTGFiZWxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBwcmV2aW91c1RhYjogU2JiVGFiRWxlbWVudCB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlU2JiVGFiR3JvdXBBY3Rpb25zIHtcbiAgYWN0aXZhdGUoKTogdm9pZDtcbiAgZGVhY3RpdmF0ZSgpOiB2b2lkO1xuICBlbmFibGUoKTogdm9pZDtcbiAgZGlzYWJsZSgpOiB2b2lkO1xuICBzZWxlY3QoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYiBleHRlbmRzIFNiYlRhYkxhYmVsRWxlbWVudCB7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHRhYj86IFNiYlRhYkVsZW1lbnQ7XG4gIGluZGV4PzogbnVtYmVyO1xuICB0YWJHcm91cEFjdGlvbnM/OiBJbnRlcmZhY2VTYmJUYWJHcm91cEFjdGlvbnM7XG4gIHNpemU6ICdzJyB8ICdsJyB8ICd4bCc7XG59XG5cbmNvbnN0IHRhYk9ic2VydmVyQ29uZmlnOiBNdXRhdGlvbk9ic2VydmVySW5pdCA9IHtcbiAgYXR0cmlidXRlRmlsdGVyOiBbJ2FjdGl2ZScsICdkaXNhYmxlZCddLFxufTtcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgb25lIG9yIG1vcmUgdGFicywgZWFjaCBvbmUgd2l0aCBhIGxhYmVsIGFuZCBhIGNvbnRlbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi10YWItZ3JvdXBgIHZpYVxuICogYHNiYi10YWItbGFiZWxgIGFuZCBgc2JiLXRhYmAgaW5zdGFuY2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzPn0gZGlkQ2hhbmdlIC0gRW1pdHMgYW4gZXZlbnQgb24gc2VsZWN0ZWQgdGFiIGNoYW5nZS5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRhYi1ncm91cCcpXG5jbGFzcyBTYmJUYWJHcm91cEVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIHByaXZhdGUgX3RhYnM6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiW10gPSBbXTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRUYWI/OiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYjtcbiAgcHJpdmF0ZSBfdGFiR3JvdXBFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhYkNvbnRlbnRFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhYkF0dHJpYnV0ZU9ic2VydmVyID0gbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNvbmZpZzogdGFiT2JzZXJ2ZXJDb25maWcsXG4gICAgY2FsbGJhY2s6IChtdXRhdGlvbnNMaXN0KSA9PiB0aGlzLl9vblRhYkF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdCksXG4gIH0pO1xuICBwcml2YXRlIF90YWJHcm91cFJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKGVudHJpZXMpID0+IHRoaXMuX29uVGFiR3JvdXBFbGVtZW50UmVzaXplKGVudHJpZXMpLFxuICB9KTtcbiAgcHJpdmF0ZSBfdGFiQ29udGVudFJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKGVudHJpZXMpID0+IHRoaXMuX29uVGFiQ29udGVudEVsZW1lbnRSZXNpemUoZW50cmllcyksXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzLCBsIG9yIHhsLlxuICAgKiBAZGVmYXVsdCAnbCcgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHNpemUodmFsdWU6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiWydzaXplJ10pIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5fdXBkYXRlU2l6ZSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYlsnc2l6ZSddIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgfVxuICBwcml2YXRlIF9zaXplOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYlsnc2l6ZSddID0gaXNMZWFuKCkgPyAncycgOiAnbCc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGluaXRpYWwgdGFiLiBJZiBpdCBtYXRjaGVzIGEgZGlzYWJsZWQgdGFiIG9yIGV4Y2VlZHMgdGhlIGxlbmd0aCBvZlxuICAgKiB0aGUgdGFiIGdyb3VwLCB0aGUgZmlyc3QgZW5hYmxlZCB0YWIgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdpbml0aWFsLXNlbGVjdGVkLWluZGV4JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBpbml0aWFsU2VsZWN0ZWRJbmRleDogbnVtYmVyID0gMDtcblxuICAvKiogRW1pdHMgYW4gZXZlbnQgb24gc2VsZWN0ZWQgdGFiIGNoYW5nZS4gKi9cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRUYWJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2JiVGFiQ2hhbmdlZEV2ZW50RGV0YWlscz4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiVGFiR3JvdXBFbGVtZW50LmV2ZW50cy5kaWRDaGFuZ2UsXG4gICk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5RG93bihlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl90YWJzID0gdGhpcy5fZ2V0VGFicygpO1xuICAgIHRoaXMuX3RhYnMuZm9yRWFjaCgodGFiKSA9PiB0aGlzLl9jb25maWd1cmUodGFiKSk7XG4gICAgdGhpcy5faW5pdFNlbGVjdGlvbigpO1xuICAgIHRoaXMuX3RhYkdyb3VwUmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl90YWJHcm91cEVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIGEgdGFiIGJ5IGluZGV4LlxuICAgKiBAcGFyYW0gdGFiSW5kZXggVGhlIGluZGV4IG9mIHRoZSB0YWIgeW91IHdhbnQgdG8gZGlzYWJsZS5cbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJzW3RhYkluZGV4XT8udGFiR3JvdXBBY3Rpb25zPy5kaXNhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBhIHRhYiBieSBpbmRleC5cbiAgICogQHBhcmFtIHRhYkluZGV4IFRoZSBpbmRleCBvZiB0aGUgdGFiIHlvdSB3YW50IHRvIGVuYWJsZS5cbiAgICovXG4gIHB1YmxpYyBlbmFibGVUYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX3RhYnNbdGFiSW5kZXhdPy50YWJHcm91cEFjdGlvbnM/LmVuYWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyBhIHRhYiBieSBpbmRleC5cbiAgICogQHBhcmFtIHRhYkluZGV4IFRoZSBpbmRleCBvZiB0aGUgdGFiIHlvdSB3YW50IHRvIGFjdGl2YXRlLlxuICAgKi9cbiAgcHVibGljIGFjdGl2YXRlVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJzW3RhYkluZGV4XT8udGFiR3JvdXBBY3Rpb25zPy5zZWxlY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRhYnMoKTogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChjaGlsZCkgPT5cbiAgICAgIC9ec2JiLXRhYi1sYWJlbCQvdS50ZXN0KGNoaWxkLmxvY2FsTmFtZSksXG4gICAgKSBhcyBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYltdO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW5hYmxlZFRhYnMoKTogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYnMuZmlsdGVyKCh0KSA9PiAhdC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2l6ZSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHRhYiBvZiB0aGlzLl90YWJzKSB7XG4gICAgICB0YWIuc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCB0aGlzLnNpemUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uQ29udGVudFNsb3RDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5fdGFiQ29udGVudEVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ2Rpdi50YWItY29udGVudCcpITtcbiAgICBjb25zdCBsb2FkZWRUYWJzID0gdGhpcy5fZ2V0VGFicygpLmZpbHRlcigodGFiKSA9PiAhdGhpcy5fdGFicy5pbmNsdWRlcyh0YWIpKTtcblxuICAgIC8vIGlmIGEgbmV3IHRhYi9jb250ZW50IGlzIGFkZGVkIHRvIHRoZSB0YWIgZ3JvdXBcbiAgICBpZiAobG9hZGVkVGFicy5sZW5ndGgpIHtcbiAgICAgIGxvYWRlZFRhYnMuZm9yRWFjaCgodGFiKSA9PiB0aGlzLl9jb25maWd1cmUodGFiKSk7XG4gICAgICB0aGlzLl90YWJzID0gdGhpcy5fdGFicy5jb25jYXQobG9hZGVkVGFicyk7XG5cbiAgICAgIC8vIElmIHRoZXJlIGlzIGFuIGFjdGl2ZSB0YWIgaW4gdGhlIG5ldyBiYXRjaCwgaXQgYmVjb21lcyB0aGUgbmV3IHNlbGVjdGVkXG4gICAgICBsb2FkZWRUYWJzLmZpbmQoKHRhYikgPT4gdGFiLmFjdGl2ZSk/LnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uVGFic1Nsb3RDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGFicyA9IHRoaXMuX2dldFRhYnMoKTtcblxuICAgIC8vIGlmIGEgdGFiIGlzIHJlbW92ZWQgZnJvbSB0aGUgdGFiIGdyb3VwXG4gICAgaWYgKHRhYnMubGVuZ3RoIDwgdGhpcy5fdGFicy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHJlbW92ZWRUYWJzID0gdGhpcy5fdGFicy5maWx0ZXIoKHRhYikgPT4gIXRhYnMuaW5jbHVkZXModGFiKSk7XG5cbiAgICAgIHJlbW92ZWRUYWJzLmZvckVhY2goKHJlbW92ZWRUYWIpID0+IHtcbiAgICAgICAgcmVtb3ZlZFRhYi50YWI/LnJlbW92ZSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl90YWJzID0gdGFicztcbiAgICB9XG4gICAgdGhpcy5fdGFicy5mb3JFYWNoKCh0YWI6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiKSA9PiB0YWIuc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCB0aGlzLnNpemUpKTtcbiAgfTtcblxuICBwcml2YXRlIF9hc3NpZ25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgc2JiLXRhYi1wYW5lbC0keysrbmV4dElkfWA7XG4gIH1cblxuICBwcml2YXRlIF9pbml0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuaW5pdGlhbFNlbGVjdGVkSW5kZXggPj0gMCAmJlxuICAgICAgdGhpcy5pbml0aWFsU2VsZWN0ZWRJbmRleCA8IHRoaXMuX3RhYnMubGVuZ3RoICYmXG4gICAgICAhdGhpcy5fdGFic1t0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4XS5kaXNhYmxlZFxuICAgICkge1xuICAgICAgdGhpcy5fdGFic1t0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4XS50YWJHcm91cEFjdGlvbnM/LnNlbGVjdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lbmFibGVkVGFicygpWzBdPy50YWJHcm91cEFjdGlvbnM/LnNlbGVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uVGFiQXR0cmlidXRlc0NoYW5nZShtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XG4gICAgICBpZiAobXV0YXRpb24udHlwZSAhPT0gJ2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhYiA9IG11dGF0aW9uLnRhcmdldCBhcyBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYjtcblxuICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdkaXNhYmxlZCcpIHtcbiAgICAgICAgaWYgKHRhYi5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgJiYgdGFiICE9PSB0aGlzLl9zZWxlY3RlZFRhYikge1xuICAgICAgICAgIHRhYi50YWJHcm91cEFjdGlvbnM/LmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0YWIuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0YWIudGFiR3JvdXBBY3Rpb25zPy5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdhY3RpdmUnKSB7XG4gICAgICAgIGlmICh0YWIuaGFzQXR0cmlidXRlKCdhY3RpdmUnKSAmJiAhdGFiLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGFiLnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGFiID09PSB0aGlzLl9zZWxlY3RlZFRhYikge1xuICAgICAgICAgIHRhYi50b2dnbGVBdHRyaWJ1dGUoJ2FjdGl2ZScsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25UYWJHcm91cEVsZW1lbnRSZXNpemUoZW50cmllczogUmVzaXplT2JzZXJ2ZXJFbnRyeVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBjb25zdCB0YWJUaXRsZXMgPSAoXG4gICAgICAgIGVudHJ5LnRhcmdldC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MU2xvdEVsZW1lbnRcbiAgICAgICkuYXNzaWduZWRFbGVtZW50cygpIGFzIFNiYlRhYkxhYmVsRWxlbWVudFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IHRhYiBvZiB0YWJUaXRsZXMpIHtcbiAgICAgICAgdGFiLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICAgICAnZGF0YS1oYXMtZGl2aWRlcicsXG4gICAgICAgICAgdGFiID09PSB0YWJUaXRsZXNbMF0gfHwgdGFiLm9mZnNldExlZnQgPT09IHRhYlRpdGxlc1swXS5vZmZzZXRMZWZ0LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi10YWItZ3JvdXAtd2lkdGgnLCBgJHt0aGlzLl90YWJHcm91cEVsZW1lbnQuY2xpZW50V2lkdGh9cHhgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblRhYkNvbnRlbnRFbGVtZW50UmVzaXplKGVudHJpZXM6IFJlc2l6ZU9ic2VydmVyRW50cnlbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdGFiQ29udGVudEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBjb25zdCBjb250ZW50SGVpZ2h0ID0gTWF0aC5mbG9vcihlbnRyeS5jb250ZW50UmVjdC5oZWlnaHQpO1xuXG4gICAgICB0aGlzLl90YWJDb250ZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtjb250ZW50SGVpZ2h0fXB4YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmUodGFiTGFiZWw6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiKTogdm9pZCB7XG4gICAgdGFiTGFiZWwudGFiR3JvdXBBY3Rpb25zID0ge1xuICAgICAgYWN0aXZhdGU6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGFiTGFiZWwudG9nZ2xlQXR0cmlidXRlKCdhY3RpdmUnLCB0cnVlKTtcbiAgICAgICAgdGFiTGFiZWwuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGFiTGFiZWwudGFiSW5kZXggPSAwO1xuICAgICAgICB0YWJMYWJlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAndHJ1ZScpO1xuICAgICAgICB0YWJMYWJlbC50YWI/LnRvZ2dsZUF0dHJpYnV0ZSgnYWN0aXZlJywgdHJ1ZSk7XG4gICAgICB9LFxuICAgICAgZGVhY3RpdmF0ZTogKCk6IHZvaWQgPT4ge1xuICAgICAgICB0YWJMYWJlbC5yZW1vdmVBdHRyaWJ1dGUoJ2FjdGl2ZScpO1xuICAgICAgICB0YWJMYWJlbC5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGFiTGFiZWwudGFiSW5kZXggPSAtMTtcbiAgICAgICAgdGFiTGFiZWwuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgIHRhYkxhYmVsLnRhYj8ucmVtb3ZlQXR0cmlidXRlKCdhY3RpdmUnKTtcbiAgICAgIH0sXG4gICAgICBkaXNhYmxlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0YWJMYWJlbC5kaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRhYkxhYmVsLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xuICAgICAgICAgIHRhYkxhYmVsLnRvZ2dsZUF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0YWJMYWJlbC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIHRhYkxhYmVsLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIHRhYkxhYmVsLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsICdmYWxzZScpO1xuICAgICAgICB0YWJMYWJlbC50YWI/LnJlbW92ZUF0dHJpYnV0ZSgnYWN0aXZlJyk7XG4gICAgICAgIGlmICh0YWJMYWJlbC5hY3RpdmUpIHtcbiAgICAgICAgICB0YWJMYWJlbC5yZW1vdmVBdHRyaWJ1dGUoJ2FjdGl2ZScpO1xuICAgICAgICAgIHRhYkxhYmVsLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2VuYWJsZWRUYWJzKClbMF0/LnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlbmFibGU6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRhYkxhYmVsLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGFiTGFiZWwucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgICAgICAgIHRhYkxhYmVsLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZWxlY3Q6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRhYkxhYmVsICE9PSB0aGlzLl9zZWxlY3RlZFRhYiAmJiAhdGFiTGFiZWwuZGlzYWJsZWQpIHtcbiAgICAgICAgICBjb25zdCBwcmV2VGFiID0gdGhpcy5fc2VsZWN0ZWRUYWI7XG5cbiAgICAgICAgICBpZiAocHJldlRhYikge1xuICAgICAgICAgICAgcHJldlRhYi50YWJHcm91cEFjdGlvbnM/LmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX3RhYkNvbnRlbnRSZXNpemVPYnNlcnZlci51bm9ic2VydmUocHJldlRhYi50YWIhKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0YWJMYWJlbC50YWJHcm91cEFjdGlvbnM/LmFjdGl2YXRlKCk7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWRUYWIgPSB0YWJMYWJlbDtcblxuICAgICAgICAgIHRoaXMuX3RhYkNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhYkxhYmVsLnRhYiEpO1xuICAgICAgICAgIGNvbnN0IHRhYnMgPSB0aGlzLl90YWJzO1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIGFjdGl2ZUluZGV4OiB0YWJzLmZpbmRJbmRleCgoZSkgPT4gZSA9PT0gdGFiTGFiZWwpLFxuICAgICAgICAgICAgYWN0aXZlVGFiTGFiZWw6IHRhYkxhYmVsLFxuICAgICAgICAgICAgYWN0aXZlVGFiOiB0YWJMYWJlbC50YWIgYXMgU2JiVGFiRWxlbWVudCxcbiAgICAgICAgICAgIHByZXZpb3VzSW5kZXg6IHRhYnMuZmluZEluZGV4KChlKSA9PiBlID09PSBwcmV2VGFiKSxcbiAgICAgICAgICAgIHByZXZpb3VzVGFiTGFiZWw6IHByZXZUYWIsXG4gICAgICAgICAgICBwcmV2aW91c1RhYjogcHJldlRhYj8udGFiIGFzIFNiYlRhYkVsZW1lbnQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiB0YWJMYWJlbC5kaXNhYmxlZCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybignWW91IGNhbm5vdCBhY3RpdmF0ZSBhIGRpc2FibGVkIHRhYicpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAodGFiTGFiZWwubmV4dEVsZW1lbnRTaWJsaW5nPy5sb2NhbE5hbWUgPT09ICdzYmItdGFiJykge1xuICAgICAgdGFiTGFiZWwudGFiID0gdGFiTGFiZWwubmV4dEVsZW1lbnRTaWJsaW5nIGFzIFNiYlRhYkVsZW1lbnQ7XG4gICAgICB0YWJMYWJlbC50YWIuaWQgPSB0aGlzLl9hc3NpZ25JZCgpO1xuICAgICAgaWYgKHRhYkxhYmVsLnRhYiBpbnN0YW5jZW9mIFNiYlRhYkVsZW1lbnQpIHtcbiAgICAgICAgdGFiTGFiZWwudGFiLnRhYkluZGV4ID0gMDtcbiAgICAgICAgdGFiTGFiZWwudGFiLmNvbmZpZ3VyZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFVikge1xuICAgICAgdGFiTGFiZWwuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsICc8c2JiLXRhYj5ObyBjb250ZW50Ljwvc2JiLXRhYj4nKTtcbiAgICAgIHRhYkxhYmVsLnRhYiA9IHRhYkxhYmVsLm5leHRFbGVtZW50U2libGluZyBhcyBTYmJUYWJFbGVtZW50O1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTWlzc2luZyBjb250ZW50OiB5b3Ugc2hvdWxkIHByb3ZpZGUgYSByZWxhdGVkIGNvbnRlbnQgZm9yIHRoZSB0YWIgJHt0YWJMYWJlbC5vdXRlckhUTUx9LmAsXG4gICAgICApO1xuICAgIH1cbiAgICB0YWJMYWJlbC50YWJJbmRleCA9IC0xO1xuICAgIHRhYkxhYmVsLmRpc2FibGVkID0gdGFiTGFiZWwuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIHRhYkxhYmVsLmFjdGl2ZSA9IHRhYkxhYmVsLmhhc0F0dHJpYnV0ZSgnYWN0aXZlJykgJiYgIXRhYkxhYmVsLmRpc2FibGVkO1xuICAgIHRhYkxhYmVsLnNldEF0dHJpYnV0ZSgncm9sZScsICd0YWInKTtcbiAgICB0YWJMYWJlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCBTdHJpbmcodGFiTGFiZWwuYWN0aXZlKSk7XG4gICAgdGFiTGFiZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICB0YWJMYWJlbC50YWJHcm91cEFjdGlvbnM/LnNlbGVjdCgpO1xuICAgIH0pO1xuICAgIGlmICh0YWJMYWJlbC50YWIpIHtcbiAgICAgIHRhYkxhYmVsLnNldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycsIHRhYkxhYmVsLnRhYi5pZCk7XG4gICAgICB0YWJMYWJlbC50YWIuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3RhYnBhbmVsJyk7XG4gICAgICB0YWJMYWJlbC50YWIudG9nZ2xlQXR0cmlidXRlKCdhY3RpdmUnLCB0YWJMYWJlbC5hY3RpdmUpO1xuICAgIH1cblxuICAgIHRoaXMuX3RhYkF0dHJpYnV0ZU9ic2VydmVyLm9ic2VydmUodGFiTGFiZWwpO1xuICAgIHRhYkxhYmVsLnNsb3QgPSAndGFiLWJhcic7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRUYWJzOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYltdID0gdGhpcy5fZW5hYmxlZFRhYnMoKTtcblxuICAgIGlmIChcbiAgICAgICFlbmFibGVkVGFicyB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRUYWJzLmZpbmRJbmRleCgodDogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWIpID0+IHQuYWN0aXZlKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRUYWJzLmxlbmd0aCk7XG4gICAgICBlbmFibGVkVGFic1tuZXh0SW5kZXhdPy50YWJHcm91cEFjdGlvbnM/LnNlbGVjdCgpO1xuICAgICAgZW5hYmxlZFRhYnNbbmV4dEluZGV4XT8uZm9jdXMoKTtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYi1ncm91cFwiXG4gICAgICAgIHJvbGU9XCJ0YWJsaXN0XCJcbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX3RhYkdyb3VwRWxlbWVudCA9IGVsIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICA+XG4gICAgICAgIDxzbG90IG5hbWU9XCJ0YWItYmFyXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9vblRhYnNTbG90Q2hhbmdlfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XG4gICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhyb3R0bGUodGhpcy5fb25Db250ZW50U2xvdENoYW5nZSwgMTUwKX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRhYi1ncm91cCc6IFNiYlRhYkdyb3VwRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNiYlRhYkdyb3VwRWxlbWVudCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQ0EsTUFBTSxvQkFBMEM7QUFBQSxFQUM5QyxpQkFBaUIsQ0FBQyxVQUFVLFVBQVU7O0FBR3hDLElBQUksU0FBUztJQVdQLHNCQUFrQixNQUFBOzswQkFEdkIsY0FBYyxlQUFlLENBQUM7Ozs7b0JBQ0Usa0JBQWtCLFVBQVU7Ozs7OztBQUFwQ0EsTUFBQUEsdUJBQUEsbUJBQVEsWUFBNkI7QUFBQSxJQXNENUQsY0FBQTs7O0FBUkE7QUF4Q1EsV0FBQSxTQU5KLGtCQUFBLE1BQUEsMEJBQUEsR0FNdUMsQ0FBQTtBQUluQyxXQUFBLHdCQUF3QixJQUFJLG1CQUFtQixNQUFNO0FBQUEsUUFDM0QsUUFBUTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsVUFBVSxDQUFDLGtCQUFrQixLQUFLLHVCQUF1QixhQUFhO0FBQUEsTUFBQSxDQUN2RTtBQUNPLFdBQUEsMEJBQTBCLElBQUksaUJBQWlCLE1BQU07QUFBQSxRQUMzRCxRQUFRO0FBQUEsUUFDUixhQUFhO0FBQUEsUUFDYixVQUFVLENBQUMsWUFBWSxLQUFLLHlCQUF5QixPQUFPO0FBQUEsTUFB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
389
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXV0YXRpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9tdXRhdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgZ2V0TmV4dEVsZW1lbnRJbmRleCwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgdGhyb3R0bGUgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUYWJMYWJlbEVsZW1lbnQgfSBmcm9tICcuLi90YWItbGFiZWwuanMnO1xuaW1wb3J0IHsgU2JiVGFiRWxlbWVudCB9IGZyb20gJy4uL3RhYi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RhYi1ncm91cC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5leHBvcnQgdHlwZSBTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzID0ge1xuICBhY3RpdmVJbmRleDogbnVtYmVyO1xuICBhY3RpdmVUYWJMYWJlbDogU2JiVGFiTGFiZWxFbGVtZW50O1xuICBhY3RpdmVUYWI6IFNiYlRhYkVsZW1lbnQ7XG4gIHByZXZpb3VzSW5kZXg6IG51bWJlcjtcbiAgcHJldmlvdXNUYWJMYWJlbDogU2JiVGFiTGFiZWxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBwcmV2aW91c1RhYjogU2JiVGFiRWxlbWVudCB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlU2JiVGFiR3JvdXBBY3Rpb25zIHtcbiAgYWN0aXZhdGUoKTogdm9pZDtcbiAgZGVhY3RpdmF0ZSgpOiB2b2lkO1xuICBlbmFibGUoKTogdm9pZDtcbiAgZGlzYWJsZSgpOiB2b2lkO1xuICBzZWxlY3QoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYiBleHRlbmRzIFNiYlRhYkxhYmVsRWxlbWVudCB7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHRhYj86IFNiYlRhYkVsZW1lbnQ7XG4gIGluZGV4PzogbnVtYmVyO1xuICB0YWJHcm91cEFjdGlvbnM/OiBJbnRlcmZhY2VTYmJUYWJHcm91cEFjdGlvbnM7XG4gIHNpemU6ICdzJyB8ICdsJyB8ICd4bCc7XG59XG5cbmNvbnN0IHRhYk9ic2VydmVyQ29uZmlnOiBNdXRhdGlvbk9ic2VydmVySW5pdCA9IHtcbiAgYXR0cmlidXRlRmlsdGVyOiBbJ2FjdGl2ZScsICdkaXNhYmxlZCddLFxufTtcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgb25lIG9yIG1vcmUgdGFicywgZWFjaCBvbmUgd2l0aCBhIGxhYmVsIGFuZCBhIGNvbnRlbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi10YWItZ3JvdXBgIHZpYVxuICogYHNiYi10YWItbGFiZWxgIGFuZCBgc2JiLXRhYmAgaW5zdGFuY2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzPn0gZGlkQ2hhbmdlIC0gRW1pdHMgYW4gZXZlbnQgb24gc2VsZWN0ZWQgdGFiIGNoYW5nZS5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRhYi1ncm91cCcpXG5jbGFzcyBTYmJUYWJHcm91cEVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIHByaXZhdGUgX3RhYnM6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiW10gPSBbXTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRUYWI/OiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYjtcbiAgcHJpdmF0ZSBfdGFiR3JvdXBFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhYkNvbnRlbnRFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhYkF0dHJpYnV0ZU9ic2VydmVyID0gbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNvbmZpZzogdGFiT2JzZXJ2ZXJDb25maWcsXG4gICAgY2FsbGJhY2s6IChtdXRhdGlvbnNMaXN0KSA9PiB0aGlzLl9vblRhYkF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdCksXG4gIH0pO1xuICBwcml2YXRlIF90YWJHcm91cFJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKGVudHJpZXMpID0+IHRoaXMuX29uVGFiR3JvdXBFbGVtZW50UmVzaXplKGVudHJpZXMpLFxuICB9KTtcbiAgcHJpdmF0ZSBfdGFiQ29udGVudFJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKGVudHJpZXMpID0+IHRoaXMuX29uVGFiQ29udGVudEVsZW1lbnRSZXNpemUoZW50cmllcyksXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzLCBsIG9yIHhsLlxuICAgKiBAZGVmYXVsdCAnbCcgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHNpemUodmFsdWU6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiWydzaXplJ10pIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5fdXBkYXRlU2l6ZSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYlsnc2l6ZSddIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgfVxuICBwcml2YXRlIF9zaXplOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYlsnc2l6ZSddID0gaXNMZWFuKCkgPyAncycgOiAnbCc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGluaXRpYWwgdGFiLiBJZiBpdCBtYXRjaGVzIGEgZGlzYWJsZWQgdGFiIG9yIGV4Y2VlZHMgdGhlIGxlbmd0aCBvZlxuICAgKiB0aGUgdGFiIGdyb3VwLCB0aGUgZmlyc3QgZW5hYmxlZCB0YWIgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdpbml0aWFsLXNlbGVjdGVkLWluZGV4JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBpbml0aWFsU2VsZWN0ZWRJbmRleDogbnVtYmVyID0gMDtcblxuICAvLyBUT0RPOiBjaGVjayByZW5hbWluZyBldmVudCB0byBgc2VsZWN0ZWRUYWJDaGFuZ2VkYCBvciBzaW1pbGFyLlxuICAvKiogRW1pdHMgYW4gZXZlbnQgb24gc2VsZWN0ZWQgdGFiIGNoYW5nZS4gKi9cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRUYWJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2JiVGFiQ2hhbmdlZEV2ZW50RGV0YWlscz4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiVGFiR3JvdXBFbGVtZW50LmV2ZW50cy5kaWRDaGFuZ2UsXG4gICk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5RG93bihlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl90YWJzID0gdGhpcy5fZ2V0VGFicygpO1xuICAgIHRoaXMuX3RhYnMuZm9yRWFjaCgodGFiKSA9PiB0aGlzLl9jb25maWd1cmUodGFiKSk7XG4gICAgdGhpcy5faW5pdFNlbGVjdGlvbigpO1xuICAgIHRoaXMuX3RhYkdyb3VwUmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl90YWJHcm91cEVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIGEgdGFiIGJ5IGluZGV4LlxuICAgKiBAcGFyYW0gdGFiSW5kZXggVGhlIGluZGV4IG9mIHRoZSB0YWIgeW91IHdhbnQgdG8gZGlzYWJsZS5cbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJzW3RhYkluZGV4XT8udGFiR3JvdXBBY3Rpb25zPy5kaXNhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBhIHRhYiBieSBpbmRleC5cbiAgICogQHBhcmFtIHRhYkluZGV4IFRoZSBpbmRleCBvZiB0aGUgdGFiIHlvdSB3YW50IHRvIGVuYWJsZS5cbiAgICovXG4gIHB1YmxpYyBlbmFibGVUYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX3RhYnNbdGFiSW5kZXhdPy50YWJHcm91cEFjdGlvbnM/LmVuYWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyBhIHRhYiBieSBpbmRleC5cbiAgICogQHBhcmFtIHRhYkluZGV4IFRoZSBpbmRleCBvZiB0aGUgdGFiIHlvdSB3YW50IHRvIGFjdGl2YXRlLlxuICAgKi9cbiAgcHVibGljIGFjdGl2YXRlVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJzW3RhYkluZGV4XT8udGFiR3JvdXBBY3Rpb25zPy5zZWxlY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRhYnMoKTogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChjaGlsZCkgPT5cbiAgICAgIC9ec2JiLXRhYi1sYWJlbCQvdS50ZXN0KGNoaWxkLmxvY2FsTmFtZSksXG4gICAgKSBhcyBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYltdO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW5hYmxlZFRhYnMoKTogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYnMuZmlsdGVyKCh0KSA9PiAhdC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2l6ZSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHRhYiBvZiB0aGlzLl90YWJzKSB7XG4gICAgICB0YWIuc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCB0aGlzLnNpemUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uQ29udGVudFNsb3RDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5fdGFiQ29udGVudEVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ2Rpdi50YWItY29udGVudCcpITtcbiAgICBjb25zdCBsb2FkZWRUYWJzID0gdGhpcy5fZ2V0VGFicygpLmZpbHRlcigodGFiKSA9PiAhdGhpcy5fdGFicy5pbmNsdWRlcyh0YWIpKTtcblxuICAgIC8vIGlmIGEgbmV3IHRhYi9jb250ZW50IGlzIGFkZGVkIHRvIHRoZSB0YWIgZ3JvdXBcbiAgICBpZiAobG9hZGVkVGFicy5sZW5ndGgpIHtcbiAgICAgIGxvYWRlZFRhYnMuZm9yRWFjaCgodGFiKSA9PiB0aGlzLl9jb25maWd1cmUodGFiKSk7XG4gICAgICB0aGlzLl90YWJzID0gdGhpcy5fdGFicy5jb25jYXQobG9hZGVkVGFicyk7XG5cbiAgICAgIC8vIElmIHRoZXJlIGlzIGFuIGFjdGl2ZSB0YWIgaW4gdGhlIG5ldyBiYXRjaCwgaXQgYmVjb21lcyB0aGUgbmV3IHNlbGVjdGVkXG4gICAgICBsb2FkZWRUYWJzLmZpbmQoKHRhYikgPT4gdGFiLmFjdGl2ZSk/LnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uVGFic1Nsb3RDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGFicyA9IHRoaXMuX2dldFRhYnMoKTtcblxuICAgIC8vIGlmIGEgdGFiIGlzIHJlbW92ZWQgZnJvbSB0aGUgdGFiIGdyb3VwXG4gICAgaWYgKHRhYnMubGVuZ3RoIDwgdGhpcy5fdGFicy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHJlbW92ZWRUYWJzID0gdGhpcy5fdGFicy5maWx0ZXIoKHRhYikgPT4gIXRhYnMuaW5jbHVkZXModGFiKSk7XG5cbiAgICAgIHJlbW92ZWRUYWJzLmZvckVhY2goKHJlbW92ZWRUYWIpID0+IHtcbiAgICAgICAgcmVtb3ZlZFRhYi50YWI/LnJlbW92ZSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl90YWJzID0gdGFicztcbiAgICB9XG4gICAgdGhpcy5fdGFicy5mb3JFYWNoKCh0YWI6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiKSA9PiB0YWIuc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCB0aGlzLnNpemUpKTtcbiAgfTtcblxuICBwcml2YXRlIF9hc3NpZ25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgc2JiLXRhYi1wYW5lbC0keysrbmV4dElkfWA7XG4gIH1cblxuICBwcml2YXRlIF9pbml0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuaW5pdGlhbFNlbGVjdGVkSW5kZXggPj0gMCAmJlxuICAgICAgdGhpcy5pbml0aWFsU2VsZWN0ZWRJbmRleCA8IHRoaXMuX3RhYnMubGVuZ3RoICYmXG4gICAgICAhdGhpcy5fdGFic1t0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4XS5kaXNhYmxlZFxuICAgICkge1xuICAgICAgdGhpcy5fdGFic1t0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4XS50YWJHcm91cEFjdGlvbnM/LnNlbGVjdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lbmFibGVkVGFicygpWzBdPy50YWJHcm91cEFjdGlvbnM/LnNlbGVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uVGFiQXR0cmlidXRlc0NoYW5nZShtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XG4gICAgICBpZiAobXV0YXRpb24udHlwZSAhPT0gJ2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhYiA9IG11dGF0aW9uLnRhcmdldCBhcyBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYjtcblxuICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdkaXNhYmxlZCcpIHtcbiAgICAgICAgaWYgKHRhYi5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgJiYgdGFiICE9PSB0aGlzLl9zZWxlY3RlZFRhYikge1xuICAgICAgICAgIHRhYi50YWJHcm91cEFjdGlvbnM/LmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0YWIuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0YWIudGFiR3JvdXBBY3Rpb25zPy5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdhY3RpdmUnKSB7XG4gICAgICAgIGlmICh0YWIuaGFzQXR0cmlidXRlKCdhY3RpdmUnKSAmJiAhdGFiLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGFiLnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGFiID09PSB0aGlzLl9zZWxlY3RlZFRhYikge1xuICAgICAgICAgIHRhYi50b2dnbGVBdHRyaWJ1dGUoJ2FjdGl2ZScsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25UYWJHcm91cEVsZW1lbnRSZXNpemUoZW50cmllczogUmVzaXplT2JzZXJ2ZXJFbnRyeVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBjb25zdCB0YWJUaXRsZXMgPSAoXG4gICAgICAgIGVudHJ5LnRhcmdldC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MU2xvdEVsZW1lbnRcbiAgICAgICkuYXNzaWduZWRFbGVtZW50cygpIGFzIFNiYlRhYkxhYmVsRWxlbWVudFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IHRhYiBvZiB0YWJUaXRsZXMpIHtcbiAgICAgICAgdGFiLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICAgICAnZGF0YS1oYXMtZGl2aWRlcicsXG4gICAgICAgICAgdGFiID09PSB0YWJUaXRsZXNbMF0gfHwgdGFiLm9mZnNldExlZnQgPT09IHRhYlRpdGxlc1swXS5vZmZzZXRMZWZ0LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi10YWItZ3JvdXAtd2lkdGgnLCBgJHt0aGlzLl90YWJHcm91cEVsZW1lbnQuY2xpZW50V2lkdGh9cHhgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblRhYkNvbnRlbnRFbGVtZW50UmVzaXplKGVudHJpZXM6IFJlc2l6ZU9ic2VydmVyRW50cnlbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdGFiQ29udGVudEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBjb25zdCBjb250ZW50SGVpZ2h0ID0gTWF0aC5mbG9vcihlbnRyeS5jb250ZW50UmVjdC5oZWlnaHQpO1xuXG4gICAgICB0aGlzLl90YWJDb250ZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtjb250ZW50SGVpZ2h0fXB4YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmUodGFiTGFiZWw6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiKTogdm9pZCB7XG4gICAgdGFiTGFiZWwudGFiR3JvdXBBY3Rpb25zID0ge1xuICAgICAgYWN0aXZhdGU6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGFiTGFiZWwudG9nZ2xlQXR0cmlidXRlKCdhY3RpdmUnLCB0cnVlKTtcbiAgICAgICAgdGFiTGFiZWwuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGFiTGFiZWwudGFiSW5kZXggPSAwO1xuICAgICAgICB0YWJMYWJlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAndHJ1ZScpO1xuICAgICAgICB0YWJMYWJlbC50YWI/LnRvZ2dsZUF0dHJpYnV0ZSgnYWN0aXZlJywgdHJ1ZSk7XG4gICAgICB9LFxuICAgICAgZGVhY3RpdmF0ZTogKCk6IHZvaWQgPT4ge1xuICAgICAgICB0YWJMYWJlbC5yZW1vdmVBdHRyaWJ1dGUoJ2FjdGl2ZScpO1xuICAgICAgICB0YWJMYWJlbC5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGFiTGFiZWwudGFiSW5kZXggPSAtMTtcbiAgICAgICAgdGFiTGFiZWwuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgIHRhYkxhYmVsLnRhYj8ucmVtb3ZlQXR0cmlidXRlKCdhY3RpdmUnKTtcbiAgICAgIH0sXG4gICAgICBkaXNhYmxlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0YWJMYWJlbC5kaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRhYkxhYmVsLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xuICAgICAgICAgIHRhYkxhYmVsLnRvZ2dsZUF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0YWJMYWJlbC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIHRhYkxhYmVsLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIHRhYkxhYmVsLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsICdmYWxzZScpO1xuICAgICAgICB0YWJMYWJlbC50YWI/LnJlbW92ZUF0dHJpYnV0ZSgnYWN0aXZlJyk7XG4gICAgICAgIGlmICh0YWJMYWJlbC5hY3RpdmUpIHtcbiAgICAgICAgICB0YWJMYWJlbC5yZW1vdmVBdHRyaWJ1dGUoJ2FjdGl2ZScpO1xuICAgICAgICAgIHRhYkxhYmVsLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2VuYWJsZWRUYWJzKClbMF0/LnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlbmFibGU6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRhYkxhYmVsLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGFiTGFiZWwucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgICAgICAgIHRhYkxhYmVsLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZWxlY3Q6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRhYkxhYmVsICE9PSB0aGlzLl9zZWxlY3RlZFRhYiAmJiAhdGFiTGFiZWwuZGlzYWJsZWQpIHtcbiAgICAgICAgICBjb25zdCBwcmV2VGFiID0gdGhpcy5fc2VsZWN0ZWRUYWI7XG5cbiAgICAgICAgICBpZiAocHJldlRhYikge1xuICAgICAgICAgICAgcHJldlRhYi50YWJHcm91cEFjdGlvbnM/LmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX3RhYkNvbnRlbnRSZXNpemVPYnNlcnZlci51bm9ic2VydmUocHJldlRhYi50YWIhKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0YWJMYWJlbC50YWJHcm91cEFjdGlvbnM/LmFjdGl2YXRlKCk7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWRUYWIgPSB0YWJMYWJlbDtcblxuICAgICAgICAgIHRoaXMuX3RhYkNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhYkxhYmVsLnRhYiEpO1xuICAgICAgICAgIGNvbnN0IHRhYnMgPSB0aGlzLl90YWJzO1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVGFiQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIGFjdGl2ZUluZGV4OiB0YWJzLmZpbmRJbmRleCgoZSkgPT4gZSA9PT0gdGFiTGFiZWwpLFxuICAgICAgICAgICAgYWN0aXZlVGFiTGFiZWw6IHRhYkxhYmVsLFxuICAgICAgICAgICAgYWN0aXZlVGFiOiB0YWJMYWJlbC50YWIgYXMgU2JiVGFiRWxlbWVudCxcbiAgICAgICAgICAgIHByZXZpb3VzSW5kZXg6IHRhYnMuZmluZEluZGV4KChlKSA9PiBlID09PSBwcmV2VGFiKSxcbiAgICAgICAgICAgIHByZXZpb3VzVGFiTGFiZWw6IHByZXZUYWIsXG4gICAgICAgICAgICBwcmV2aW91c1RhYjogcHJldlRhYj8udGFiIGFzIFNiYlRhYkVsZW1lbnQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiB0YWJMYWJlbC5kaXNhYmxlZCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybignWW91IGNhbm5vdCBhY3RpdmF0ZSBhIGRpc2FibGVkIHRhYicpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAodGFiTGFiZWwubmV4dEVsZW1lbnRTaWJsaW5nPy5sb2NhbE5hbWUgPT09ICdzYmItdGFiJykge1xuICAgICAgdGFiTGFiZWwudGFiID0gdGFiTGFiZWwubmV4dEVsZW1lbnRTaWJsaW5nIGFzIFNiYlRhYkVsZW1lbnQ7XG4gICAgICB0YWJMYWJlbC50YWIuaWQgPSB0aGlzLl9hc3NpZ25JZCgpO1xuICAgICAgaWYgKHRhYkxhYmVsLnRhYiBpbnN0YW5jZW9mIFNiYlRhYkVsZW1lbnQpIHtcbiAgICAgICAgdGFiTGFiZWwudGFiLnRhYkluZGV4ID0gMDtcbiAgICAgICAgdGFiTGFiZWwudGFiLmNvbmZpZ3VyZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFVikge1xuICAgICAgdGFiTGFiZWwuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsICc8c2JiLXRhYj5ObyBjb250ZW50Ljwvc2JiLXRhYj4nKTtcbiAgICAgIHRhYkxhYmVsLnRhYiA9IHRhYkxhYmVsLm5leHRFbGVtZW50U2libGluZyBhcyBTYmJUYWJFbGVtZW50O1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTWlzc2luZyBjb250ZW50OiB5b3Ugc2hvdWxkIHByb3ZpZGUgYSByZWxhdGVkIGNvbnRlbnQgZm9yIHRoZSB0YWIgJHt0YWJMYWJlbC5vdXRlckhUTUx9LmAsXG4gICAgICApO1xuICAgIH1cbiAgICB0YWJMYWJlbC50YWJJbmRleCA9IC0xO1xuICAgIHRhYkxhYmVsLmRpc2FibGVkID0gdGFiTGFiZWwuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIHRhYkxhYmVsLmFjdGl2ZSA9IHRhYkxhYmVsLmhhc0F0dHJpYnV0ZSgnYWN0aXZlJykgJiYgIXRhYkxhYmVsLmRpc2FibGVkO1xuICAgIHRhYkxhYmVsLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIFN0cmluZyh0YWJMYWJlbC5hY3RpdmUpKTtcbiAgICB0YWJMYWJlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIHRhYkxhYmVsLnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgfSk7XG4gICAgaWYgKHRhYkxhYmVsLnRhYikge1xuICAgICAgdGFiTGFiZWwuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgdGFiTGFiZWwudGFiLmlkKTtcbiAgICAgIHRhYkxhYmVsLnRhYi50b2dnbGVBdHRyaWJ1dGUoJ2FjdGl2ZScsIHRhYkxhYmVsLmFjdGl2ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdGFiQXR0cmlidXRlT2JzZXJ2ZXIub2JzZXJ2ZSh0YWJMYWJlbCk7XG4gICAgdGFiTGFiZWwuc2xvdCA9ICd0YWItYmFyJztcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZFRhYnM6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiW10gPSB0aGlzLl9lbmFibGVkVGFicygpO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRUYWJzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFRhYnMuZmluZEluZGV4KCh0OiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYikgPT4gdC5hY3RpdmUpO1xuICAgICAgY29uc3QgbmV4dEluZGV4OiBudW1iZXIgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2dCwgY3VycmVudCwgZW5hYmxlZFRhYnMubGVuZ3RoKTtcbiAgICAgIGVuYWJsZWRUYWJzW25leHRJbmRleF0/LnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgICBlbmFibGVkVGFic1tuZXh0SW5kZXhdPy5mb2N1cygpO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFiLWdyb3VwXCJcbiAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fdGFiR3JvdXBFbGVtZW50ID0gZWwgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgID5cbiAgICAgICAgPHNsb3QgbmFtZT1cInRhYi1iYXJcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX29uVGFic1Nsb3RDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aHJvdHRsZSh0aGlzLl9vbkNvbnRlbnRTbG90Q2hhbmdlLCAxNTApfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdGFiLWdyb3VwJzogU2JiVGFiR3JvdXBFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2JiVGFiR3JvdXBFbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJDQSxNQUFNLG9CQUEwQztBQUFBLEVBQzlDLGlCQUFpQixDQUFDLFVBQVUsVUFBVTs7QUFHeEMsSUFBSSxTQUFTO0lBV1Asc0JBQWtCLE1BQUE7OzBCQUR2QixjQUFjLGVBQWUsQ0FBQzs7OztvQkFDRSxrQkFBa0IsVUFBVTs7Ozs7O0FBQXBDQSxNQUFBQSx1QkFBQSxtQkFBUSxZQUE2QjtBQUFBLElBdUQ1RCxjQUFBOzs7QUFUQTtBQXhDUSxXQUFBLFNBTkosa0JBQUEsTUFBQSwwQkFBQSxHQU11QyxDQUFBO0FBSW5DLFdBQUEsd0JBQXdCLElBQUksbUJBQW1CLE1BQU07QUFBQSxRQUMzRCxRQUFRO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixVQUFVLENBQUMsa0JBQWtCLEtBQUssdUJBQXVCLGFBQWE7QUFBQSxNQUFBLENBQ3ZFO0FBQ08sV0FBQSwwQkFBMEIsSUFBSSxpQkFBaUIsTUFBTTtBQUFBLFFBQzNELFFBQVE7QUFBQSxRQUNSLGFBQWE7QUFBQSxRQUNiLFVBQVUsQ0FBQyxZQUFZLEtBQUsseUJBQXlCLE9BQU87QUFBQSxNQUFBLENBQzdEO0FBQ08sV0FBQSw0QkFBNEIsSUFB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
@@ -1,6 +1,6 @@
1
1
  import { CSSResultGroup, TemplateResult, LitElement } from 'lit';
2
2
  import { SbbTitleLevel } from '../../title.js';
3
- declare const SbbTabLabelElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../icon.js').SbbIconNameMixinType> & typeof LitElement;
3
+ declare const SbbTabLabelElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../icon.js').SbbIconNameMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbElementInternalsMixinType> & typeof LitElement & import('../../core/mixins.js').SbbElementInternalsConstructor;
4
4
  /**
5
5
  * Combined with a `sbb-tab-group`, it displays a tab's title.
6
6
  *
@@ -9,6 +9,7 @@ declare const SbbTabLabelElement_base: import('../../core/mixins.js').AbstractCo
9
9
  * @slot amount - Provide a number to show an amount to the right of the title.
10
10
  */
11
11
  export declare class SbbTabLabelElement extends SbbTabLabelElement_base {
12
+ static role: string;
12
13
  static styles: CSSResultGroup;
13
14
  /**
14
15
  * The level will correspond to the heading tag generated in the title.
@@ -1 +1 @@
1
- {"version":3,"file":"tab-label.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/tabs/tab-label/tab-label.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAOjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;;AAIpD;;;;;;GAMG;AACH,qBAGM,kBAAmB,SAAQ,uBAA8C;IAC7E,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;OAGG;IACH,SAA4B,KAAK,EAAE,aAAa,CAAO;IAEvD,uBAAuB;IACvB,SAEgB,MAAM,EAAE,OAAO,CAAS;IAExC,uCAAuC;IACvC,SAEgB,MAAM,EAAE,MAAM,CAAM;cAEjB,MAAM,IAAI,cAAc;CAoB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,kBAAkB,CAAC;KACrC;CACF"}
1
+ {"version":3,"file":"tab-label.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/tabs/tab-label/tab-label.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAOjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;;AAIpD;;;;;;GAMG;AACH,qBAGM,kBAAmB,SAAQ,uBAEhC;IACC,OAAuB,IAAI,SAAS;IACpC,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;OAGG;IACH,SAA4B,KAAK,EAAE,aAAa,CAAO;IAEvD,uBAAuB;IACvB,SAEgB,MAAM,EAAE,OAAO,CAAS;IAExC,uCAAuC;IACvC,SAEgB,MAAM,EAAE,MAAM,CAAM;cAEjB,MAAM,IAAI,cAAc;CAoB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,kBAAkB,CAAC;KACrC;CACF"}
@@ -10,7 +10,7 @@ import { css, LitElement } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { unsafeStatic, html } from "lit/static-html.js";
12
12
  import { slotState, forceType, omitEmptyConverter } from "../../core/decorators.js";
13
- import { SbbDisabledMixin } from "../../core/mixins.js";
13
+ import { SbbDisabledMixin, SbbElementInternalsMixin } from "../../core/mixins.js";
14
14
  import { SbbIconNameMixin } from "../../icon.js";
15
15
  const style = css`*,
16
16
  ::before,
@@ -136,7 +136,7 @@ const style = css`*,
136
136
  content: "";
137
137
  inset-inline: 0;
138
138
  inset-block-end: 0;
139
- height: 0.1875rem;
139
+ height: var(--sbb-border-width-3x);
140
140
  background-color: var(--sbb-tab-label-color);
141
141
  transform: var(--sbb-tab-label-marker-transform);
142
142
  transition-duration: var(--sbb-tab-label-animation-duration);
@@ -193,6 +193,9 @@ const style = css`*,
193
193
  font-size: var(--sbb-text-font-size);
194
194
  font-weight: bold;
195
195
  }
196
+ :host(:not([data-slot-names~=unnamed])) .sbb-tab-label__text {
197
+ display: none;
198
+ }
196
199
 
197
200
  .sbb-tab-label__amount {
198
201
  display: flex;
@@ -230,7 +233,7 @@ let SbbTabLabelElement = (() => {
230
233
  let _classDescriptor;
231
234
  let _classExtraInitializers = [];
232
235
  let _classThis;
233
- let _classSuper = SbbDisabledMixin(SbbIconNameMixin(LitElement));
236
+ let _classSuper = SbbDisabledMixin(SbbIconNameMixin(SbbElementInternalsMixin(LitElement)));
234
237
  let _level_decorators;
235
238
  let _level_initializers = [];
236
239
  let _level_extraInitializers = [];
@@ -307,10 +310,10 @@ let SbbTabLabelElement = (() => {
307
310
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
308
311
  _classThis = _classDescriptor.value;
309
312
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
310
- })(), _a.styles = style, __runInitializers(_classThis, _classExtraInitializers), _a;
313
+ })(), _a.role = "tab", _a.styles = style, __runInitializers(_classThis, _classExtraInitializers), _a;
311
314
  return _classThis;
312
315
  })();
313
316
  export {
314
317
  SbbTabLabelElement
315
318
  };
316
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiLWxhYmVsL3RhYi1sYWJlbC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGZvcmNlVHlwZSwgb21pdEVtcHR5Q29udmVydGVyLCBzbG90U3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uLy4uL3RpdGxlLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGFiLWxhYmVsLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIGBzYmItdGFiLWdyb3VwYCwgaXQgZGlzcGxheXMgYSB0YWIncyB0aXRsZS5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSB0YWIgdGl0bGUuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgc2xvdCB0byBkaXNwbGF5IGFuIGljb24gdG8gdGhlIGxlZnQgb2YgdGhlIHRpdGxlLCBieSBwcm92aWRpbmcgdGhlIGBzYmItaWNvbmAgY29tcG9uZW50LlxuICogQHNsb3QgYW1vdW50IC0gUHJvdmlkZSBhIG51bWJlciB0byBzaG93IGFuIGFtb3VudCB0byB0aGUgcmlnaHQgb2YgdGhlIHRpdGxlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItdGFiLWxhYmVsJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiVGFiTGFiZWxFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihTYmJJY29uTmFtZU1peGluKExpdEVsZW1lbnQpKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgbGV2ZWwgd2lsbCBjb3JyZXNwb25kIHRvIHRoZSBoZWFkaW5nIHRhZyBnZW5lcmF0ZWQgaW4gdGhlIHRpdGxlLlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBnZW5lcmF0ZSB0aGUgYXBwcm9wcmlhdGUgaGVhZGVyIHRhZywgdGFraW5nIFNFTyBpbnRvIGNvbnNpZGVyYXRpb24uXG4gICAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgbGV2ZWw6IFNiYlRpdGxlTGV2ZWwgPSAnMSc7XG5cbiAgLyoqIEFjdGl2ZSB0YWIgc3RhdGUgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBBbW91bnQgZGlzcGxheWVkIGluc2lkZSB0aGUgdGFiLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgY29udmVydGVyOiBvbWl0RW1wdHlDb252ZXJ0ZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFtb3VudDogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgVEFHTkFNRSA9IGBoJHtOdW1iZXIodGhpcy5sZXZlbCkgPCA3ID8gdGhpcy5sZXZlbCA6ICcxJ31gO1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXRhYi1sYWJlbF9fd3JhcHBlclwiPlxuICAgICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHTkFNRSl9IGNsYXNzPVwic2JiLXRhYi1sYWJlbFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRhYi1sYWJlbF9faWNvblwiPlxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRhYi1sYWJlbF9fdGV4dFwiPlxuICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi10YWItbGFiZWxfX2Ftb3VudFwiPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImFtb3VudFwiPiR7dGhpcy5hbW91bnR9PC9zbG90PlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdOQU1FKX0+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdGFiLWxhYmVsJzogU2JiVGFiTGFiZWxFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
319
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYnMvdGFiLWxhYmVsL3RhYi1sYWJlbC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGZvcmNlVHlwZSwgb21pdEVtcHR5Q29udmVydGVyLCBzbG90U3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiwgU2JiRWxlbWVudEludGVybmFsc01peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUaXRsZUxldmVsIH0gZnJvbSAnLi4vLi4vdGl0bGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90YWItbGFiZWwuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgYHNiYi10YWItZ3JvdXBgLCBpdCBkaXNwbGF5cyBhIHRhYidzIHRpdGxlLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIHRhYiB0aXRsZS5cbiAqIEBzbG90IGljb24gLSBVc2UgdGhpcyBzbG90IHRvIGRpc3BsYXkgYW4gaWNvbiB0byB0aGUgbGVmdCBvZiB0aGUgdGl0bGUsIGJ5IHByb3ZpZGluZyB0aGUgYHNiYi1pY29uYCBjb21wb25lbnQuXG4gKiBAc2xvdCBhbW91bnQgLSBQcm92aWRlIGEgbnVtYmVyIHRvIHNob3cgYW4gYW1vdW50IHRvIHRoZSByaWdodCBvZiB0aGUgdGl0bGUuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi10YWItbGFiZWwnKVxuQHNsb3RTdGF0ZSgpXG5jbGFzcyBTYmJUYWJMYWJlbEVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJJY29uTmFtZU1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByb2xlID0gJ3RhYic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgbGV2ZWwgd2lsbCBjb3JyZXNwb25kIHRvIHRoZSBoZWFkaW5nIHRhZyBnZW5lcmF0ZWQgaW4gdGhlIHRpdGxlLlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBnZW5lcmF0ZSB0aGUgYXBwcm9wcmlhdGUgaGVhZGVyIHRhZywgdGFraW5nIFNFTyBpbnRvIGNvbnNpZGVyYXRpb24uXG4gICAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgbGV2ZWw6IFNiYlRpdGxlTGV2ZWwgPSAnMSc7XG5cbiAgLyoqIEFjdGl2ZSB0YWIgc3RhdGUgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBBbW91bnQgZGlzcGxheWVkIGluc2lkZSB0aGUgdGFiLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgY29udmVydGVyOiBvbWl0RW1wdHlDb252ZXJ0ZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFtb3VudDogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgVEFHTkFNRSA9IGBoJHtOdW1iZXIodGhpcy5sZXZlbCkgPCA3ID8gdGhpcy5sZXZlbCA6ICcxJ31gO1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXRhYi1sYWJlbF9fd3JhcHBlclwiPlxuICAgICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHTkFNRSl9IGNsYXNzPVwic2JiLXRhYi1sYWJlbFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRhYi1sYWJlbF9faWNvblwiPlxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRhYi1sYWJlbF9fdGV4dFwiPlxuICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi10YWItbGFiZWxfX2Ftb3VudFwiPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImFtb3VudFwiPiR7dGhpcy5hbW91bnR9PC9zbG90PlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdOQU1FKX0+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdGFiLWxhYmVsJzogU2JiVGFiTGFiZWxFbGVtZW50O1xu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