@sbb-esta/lyne-elements 1.13.0 → 1.14.1

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 (889) hide show
  1. package/accordion/accordion.d.ts +4 -8
  2. package/accordion/accordion.d.ts.map +1 -1
  3. package/accordion.js +90 -81
  4. package/action-group/action-group.d.ts +5 -5
  5. package/action-group/action-group.d.ts.map +1 -1
  6. package/action-group.js +100 -50
  7. package/alert/alert/alert.d.ts +11 -11
  8. package/alert/alert/alert.d.ts.map +1 -1
  9. package/alert/alert-group/alert-group.d.ts +4 -4
  10. package/alert/alert-group/alert-group.d.ts.map +1 -1
  11. package/alert/alert-group.js +101 -69
  12. package/alert/alert.js +191 -104
  13. package/autocomplete/autocomplete-base-element.d.ts +3 -7
  14. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  15. package/autocomplete/autocomplete.d.ts.map +1 -1
  16. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  17. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -0
  18. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  19. package/autocomplete-grid/autocomplete-grid-button.js +53 -60
  20. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -1
  21. package/autocomplete-grid/autocomplete-grid-cell.js +20 -22
  22. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  23. package/autocomplete-grid/autocomplete-grid-optgroup.js +31 -35
  24. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  25. package/autocomplete-grid/autocomplete-grid-option.js +45 -63
  26. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -1
  27. package/autocomplete-grid/autocomplete-grid-row.js +23 -25
  28. package/autocomplete-grid/autocomplete-grid.js +112 -133
  29. package/autocomplete.js +283 -295
  30. package/breadcrumb/breadcrumb/breadcrumb.d.ts +1 -1
  31. package/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
  32. package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  33. package/breadcrumb/breadcrumb-group.js +107 -114
  34. package/breadcrumb/breadcrumb.js +44 -35
  35. package/button/button/button.d.ts.map +1 -1
  36. package/button/button-link/button-link.d.ts.map +1 -1
  37. package/button/button-link.js +15 -18
  38. package/button/button-static/button-static.d.ts.map +1 -1
  39. package/button/button-static.js +15 -18
  40. package/button/button.js +15 -18
  41. package/button/common/button-common.d.ts +4 -4
  42. package/button/common/button-common.d.ts.map +1 -1
  43. package/button/common.js +41 -30
  44. package/button/mini-button/mini-button-base-element.d.ts.map +1 -1
  45. package/button/mini-button/mini-button.d.ts.map +1 -1
  46. package/button/mini-button-group/mini-button-group.d.ts +2 -2
  47. package/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  48. package/button/mini-button-group.js +55 -43
  49. package/button/mini-button.js +30 -34
  50. package/button/secondary-button/secondary-button.d.ts.map +1 -1
  51. package/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
  52. package/button/secondary-button-link.js +15 -18
  53. package/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
  54. package/button/secondary-button-static.js +15 -18
  55. package/button/secondary-button.js +15 -18
  56. package/button/tertiary-button/tertiary-button.d.ts.map +1 -1
  57. package/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
  58. package/button/tertiary-button-link.js +15 -18
  59. package/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
  60. package/button/tertiary-button-static.js +15 -18
  61. package/button/tertiary-button.js +15 -18
  62. package/button/transparent-button/transparent-button.d.ts.map +1 -1
  63. package/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
  64. package/button/transparent-button-link.js +15 -18
  65. package/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
  66. package/button/transparent-button-static.js +15 -18
  67. package/button/transparent-button.js +15 -18
  68. package/calendar/calendar.d.ts +7 -7
  69. package/calendar/calendar.d.ts.map +1 -1
  70. package/calendar.js +644 -699
  71. package/card/card/card.d.ts +2 -2
  72. package/card/card/card.d.ts.map +1 -1
  73. package/card/card-badge/card-badge.d.ts +1 -1
  74. package/card/card-badge/card-badge.d.ts.map +1 -1
  75. package/card/card-badge.js +45 -34
  76. package/card/card-button/card-button.d.ts.map +1 -1
  77. package/card/card-button.js +16 -16
  78. package/card/card-link/card-link.d.ts.map +1 -1
  79. package/card/card-link.js +17 -17
  80. package/card/card.js +55 -36
  81. package/card/common/card-action-common.d.ts +1 -1
  82. package/card/common/card-action-common.d.ts.map +1 -1
  83. package/card/common.js +27 -33
  84. package/checkbox/checkbox/checkbox.d.ts +3 -4
  85. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  86. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
  87. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  88. package/checkbox/checkbox-group.js +99 -76
  89. package/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
  90. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  91. package/checkbox/checkbox-panel.js +51 -50
  92. package/checkbox/checkbox.js +54 -43
  93. package/checkbox/common/checkbox-common.d.ts +1 -1
  94. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  95. package/checkbox/common.js +39 -24
  96. package/chip/chip.d.ts +2 -2
  97. package/chip/chip.d.ts.map +1 -1
  98. package/chip.js +45 -26
  99. package/clock/clock.d.ts +1 -1
  100. package/clock/clock.d.ts.map +1 -1
  101. package/clock.js +136 -144
  102. package/container/container/container.d.ts +3 -3
  103. package/container/container/container.d.ts.map +1 -1
  104. package/container/container.js +60 -35
  105. package/container/sticky-bar/sticky-bar.d.ts +1 -1
  106. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  107. package/container/sticky-bar.js +55 -47
  108. package/core/a11y.js +29 -51
  109. package/core/base-elements/action-base-element.d.ts.map +1 -1
  110. package/core/base-elements/button-base-element.d.ts +2 -2
  111. package/core/base-elements/button-base-element.d.ts.map +1 -1
  112. package/core/base-elements/link-base-element.d.ts +5 -5
  113. package/core/base-elements/link-base-element.d.ts.map +1 -1
  114. package/core/base-elements.js +243 -196
  115. package/core/controllers.js +8 -13
  116. package/core/decorators/base.d.ts +14 -0
  117. package/core/decorators/base.d.ts.map +1 -0
  118. package/core/decorators/force-type.d.ts +8 -0
  119. package/core/decorators/force-type.d.ts.map +1 -0
  120. package/core/decorators/get-override.d.ts +7 -0
  121. package/core/decorators/get-override.d.ts.map +1 -0
  122. package/core/decorators/handle-distinct-change.d.ts +8 -0
  123. package/core/decorators/handle-distinct-change.d.ts.map +1 -0
  124. package/core/decorators/omit-empty-converter.d.ts +8 -0
  125. package/core/decorators/omit-empty-converter.d.ts.map +1 -0
  126. package/core/decorators.d.ts +4 -0
  127. package/core/decorators.d.ts.map +1 -1
  128. package/core/decorators.js +59 -15
  129. package/core/dom.js +1 -5
  130. package/core/eventing.js +1 -4
  131. package/core/interfaces/paginator-page.d.ts +7 -0
  132. package/core/interfaces/paginator-page.d.ts.map +1 -0
  133. package/core/interfaces.d.ts +1 -0
  134. package/core/interfaces.d.ts.map +1 -1
  135. package/core/mixins/disabled-mixin.d.ts +2 -3
  136. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  137. package/core/mixins/named-slot-list-mixin.d.ts +1 -1
  138. package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  139. package/core/mixins/negative-mixin.d.ts +1 -1
  140. package/core/mixins/negative-mixin.d.ts.map +1 -1
  141. package/core/mixins/panel-mixin.d.ts +3 -3
  142. package/core/mixins/panel-mixin.d.ts.map +1 -1
  143. package/core/mixins/required-mixin.d.ts +1 -2
  144. package/core/mixins/required-mixin.d.ts.map +1 -1
  145. package/core/mixins.js +290 -237
  146. package/core/testing/private.d.ts +1 -0
  147. package/core/testing/private.d.ts.map +1 -1
  148. package/core/testing.js +7 -13
  149. package/custom-elements.json +15974 -15154
  150. package/datepicker/common/datepicker-button.d.ts +2 -2
  151. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  152. package/datepicker/common.js +110 -116
  153. package/datepicker/datepicker/datepicker.d.ts +6 -6
  154. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  155. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  156. package/datepicker/datepicker-next-day.js +24 -26
  157. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  158. package/datepicker/datepicker-previous-day.js +25 -27
  159. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
  160. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  161. package/datepicker/datepicker-toggle.js +154 -136
  162. package/datepicker/datepicker.js +248 -213
  163. package/development/accordion/accordion.d.ts +4 -8
  164. package/development/accordion/accordion.d.ts.map +1 -1
  165. package/development/accordion.js +118 -93
  166. package/development/action-group/action-group.d.ts +5 -5
  167. package/development/action-group/action-group.d.ts.map +1 -1
  168. package/development/action-group.js +138 -64
  169. package/development/alert/alert/alert.d.ts +11 -11
  170. package/development/alert/alert/alert.d.ts.map +1 -1
  171. package/development/alert/alert-group/alert-group.d.ts +4 -4
  172. package/development/alert/alert-group/alert-group.d.ts.map +1 -1
  173. package/development/alert/alert-group.js +135 -79
  174. package/development/alert/alert.js +259 -109
  175. package/development/autocomplete/autocomplete-base-element.d.ts +3 -7
  176. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  177. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  178. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  179. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -0
  180. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  181. package/development/autocomplete-grid/autocomplete-grid-button.js +74 -75
  182. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -1
  183. package/development/autocomplete-grid/autocomplete-grid-cell.js +24 -24
  184. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  185. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +38 -39
  186. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  187. package/development/autocomplete-grid/autocomplete-grid-option.js +57 -73
  188. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -1
  189. package/development/autocomplete-grid/autocomplete-grid-row.js +28 -28
  190. package/development/autocomplete-grid/autocomplete-grid.js +142 -160
  191. package/development/autocomplete.js +394 -393
  192. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts +1 -1
  193. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
  194. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  195. package/development/breadcrumb/breadcrumb-group.js +130 -130
  196. package/development/breadcrumb/breadcrumb.js +53 -36
  197. package/development/button/button/button.d.ts.map +1 -1
  198. package/development/button/button-link/button-link.d.ts.map +1 -1
  199. package/development/button/button-link.js +18 -19
  200. package/development/button/button-static/button-static.d.ts.map +1 -1
  201. package/development/button/button-static.js +18 -19
  202. package/development/button/button.js +18 -19
  203. package/development/button/common/button-common.d.ts +4 -4
  204. package/development/button/common/button-common.d.ts.map +1 -1
  205. package/development/button/common.js +50 -29
  206. package/development/button/mini-button/mini-button-base-element.d.ts.map +1 -1
  207. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  208. package/development/button/mini-button-group/mini-button-group.d.ts +2 -2
  209. package/development/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  210. package/development/button/mini-button-group.js +77 -50
  211. package/development/button/mini-button.js +38 -37
  212. package/development/button/secondary-button/secondary-button.d.ts.map +1 -1
  213. package/development/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
  214. package/development/button/secondary-button-link.js +18 -19
  215. package/development/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
  216. package/development/button/secondary-button-static.js +18 -19
  217. package/development/button/secondary-button.js +18 -19
  218. package/development/button/tertiary-button/tertiary-button.d.ts.map +1 -1
  219. package/development/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
  220. package/development/button/tertiary-button-link.js +18 -19
  221. package/development/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
  222. package/development/button/tertiary-button-static.js +18 -19
  223. package/development/button/tertiary-button.js +18 -19
  224. package/development/button/transparent-button/transparent-button.d.ts.map +1 -1
  225. package/development/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
  226. package/development/button/transparent-button-link.js +18 -19
  227. package/development/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
  228. package/development/button/transparent-button-static.js +18 -19
  229. package/development/button/transparent-button.js +18 -19
  230. package/development/calendar/calendar.d.ts +7 -7
  231. package/development/calendar/calendar.d.ts.map +1 -1
  232. package/development/calendar.js +774 -773
  233. package/development/card/card/card.d.ts +2 -2
  234. package/development/card/card/card.d.ts.map +1 -1
  235. package/development/card/card-badge/card-badge.d.ts +1 -1
  236. package/development/card/card-badge/card-badge.d.ts.map +1 -1
  237. package/development/card/card-badge.js +65 -45
  238. package/development/card/card-button/card-button.d.ts.map +1 -1
  239. package/development/card/card-button.js +23 -20
  240. package/development/card/card-link/card-link.d.ts.map +1 -1
  241. package/development/card/card-link.js +23 -20
  242. package/development/card/card.js +72 -41
  243. package/development/card/common/card-action-common.d.ts +1 -1
  244. package/development/card/common/card-action-common.d.ts.map +1 -1
  245. package/development/card/common.js +74 -73
  246. package/development/checkbox/checkbox/checkbox.d.ts +3 -4
  247. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  248. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
  249. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  250. package/development/checkbox/checkbox-group.js +139 -92
  251. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
  252. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  253. package/development/checkbox/checkbox-panel.js +68 -60
  254. package/development/checkbox/checkbox.js +69 -46
  255. package/development/checkbox/common/checkbox-common.d.ts +1 -1
  256. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  257. package/development/checkbox/common.js +65 -46
  258. package/development/chip/chip.d.ts +2 -2
  259. package/development/chip/chip.d.ts.map +1 -1
  260. package/development/chip.js +64 -33
  261. package/development/clock/clock.d.ts +1 -1
  262. package/development/clock/clock.d.ts.map +1 -1
  263. package/development/clock.js +203 -201
  264. package/development/container/container/container.d.ts +3 -3
  265. package/development/container/container/container.d.ts.map +1 -1
  266. package/development/container/container.js +86 -45
  267. package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
  268. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  269. package/development/container/sticky-bar.js +76 -58
  270. package/development/core/a11y.js +40 -62
  271. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  272. package/development/core/base-elements/button-base-element.d.ts +2 -2
  273. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  274. package/development/core/base-elements/link-base-element.d.ts +5 -5
  275. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  276. package/development/core/base-elements.js +329 -226
  277. package/development/core/config.js +1 -1
  278. package/development/core/controllers.js +13 -21
  279. package/development/core/datetime.js +1 -1
  280. package/development/core/decorators/base.d.ts +14 -0
  281. package/development/core/decorators/base.d.ts.map +1 -0
  282. package/development/core/decorators/force-type.d.ts +8 -0
  283. package/development/core/decorators/force-type.d.ts.map +1 -0
  284. package/development/core/decorators/get-override.d.ts +7 -0
  285. package/development/core/decorators/get-override.d.ts.map +1 -0
  286. package/development/core/decorators/handle-distinct-change.d.ts +8 -0
  287. package/development/core/decorators/handle-distinct-change.d.ts.map +1 -0
  288. package/development/core/decorators/omit-empty-converter.d.ts +8 -0
  289. package/development/core/decorators/omit-empty-converter.d.ts.map +1 -0
  290. package/development/core/decorators.d.ts +4 -0
  291. package/development/core/decorators.d.ts.map +1 -1
  292. package/development/core/decorators.js +69 -5
  293. package/development/core/dom.js +2 -6
  294. package/development/core/eventing.js +2 -5
  295. package/development/core/i18n.js +1 -1
  296. package/development/core/interfaces/paginator-page.d.ts +7 -0
  297. package/development/core/interfaces/paginator-page.d.ts.map +1 -0
  298. package/development/core/interfaces.d.ts +1 -0
  299. package/development/core/interfaces.d.ts.map +1 -1
  300. package/development/core/mixins/disabled-mixin.d.ts +2 -3
  301. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  302. package/development/core/mixins/named-slot-list-mixin.d.ts +1 -1
  303. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  304. package/development/core/mixins/negative-mixin.d.ts +1 -1
  305. package/development/core/mixins/negative-mixin.d.ts.map +1 -1
  306. package/development/core/mixins/panel-mixin.d.ts +3 -3
  307. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  308. package/development/core/mixins/required-mixin.d.ts +1 -2
  309. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  310. package/development/core/mixins.js +573 -475
  311. package/development/core/observers.js +1 -1
  312. package/development/core/overlay.js +1 -1
  313. package/development/core/testing/private.d.ts +1 -0
  314. package/development/core/testing/private.d.ts.map +1 -1
  315. package/development/core/testing.js +16 -22
  316. package/development/datepicker/common/datepicker-button.d.ts +2 -2
  317. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  318. package/development/datepicker/common.js +144 -142
  319. package/development/datepicker/datepicker/datepicker.d.ts +6 -6
  320. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  321. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  322. package/development/datepicker/datepicker-next-day.js +32 -32
  323. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  324. package/development/datepicker/datepicker-previous-day.js +32 -32
  325. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
  326. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  327. package/development/datepicker/datepicker-toggle.js +227 -174
  328. package/development/datepicker/datepicker.js +327 -249
  329. package/development/dialog/dialog/dialog.d.ts +1 -1
  330. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  331. package/development/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
  332. package/development/dialog/dialog-actions.js +21 -20
  333. package/development/dialog/dialog-content/dialog-content.d.ts.map +1 -1
  334. package/development/dialog/dialog-content.js +22 -21
  335. package/development/dialog/dialog-title/dialog-title.d.ts +3 -3
  336. package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  337. package/development/dialog/dialog-title.js +121 -66
  338. package/development/dialog/dialog.js +205 -191
  339. package/development/divider/divider.d.ts +1 -1
  340. package/development/divider/divider.d.ts.map +1 -1
  341. package/development/divider.js +55 -36
  342. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
  343. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  344. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
  345. package/development/expansion-panel/expansion-panel-content.js +25 -25
  346. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +1 -1
  347. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  348. package/development/expansion-panel/expansion-panel-header.js +56 -63
  349. package/development/expansion-panel/expansion-panel.js +227 -182
  350. package/development/file-selector/file-selector.d.ts +8 -7
  351. package/development/file-selector/file-selector.d.ts.map +1 -1
  352. package/development/file-selector.js +295 -198
  353. package/development/flip-card/flip-card/flip-card.d.ts +2 -2
  354. package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
  355. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  356. package/development/flip-card/flip-card-details.js +39 -39
  357. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  358. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  359. package/development/flip-card/flip-card-summary.js +57 -38
  360. package/development/flip-card/flip-card.js +110 -78
  361. package/development/footer/footer.d.ts +4 -4
  362. package/development/footer/footer.d.ts.map +1 -1
  363. package/development/footer.js +103 -41
  364. package/development/form-error/form-error.d.ts.map +1 -1
  365. package/development/form-error.js +29 -28
  366. package/development/form-field/form-field/form-field.d.ts +10 -10
  367. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  368. package/development/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  369. package/development/form-field/form-field-clear.js +50 -50
  370. package/development/form-field/form-field.js +439 -328
  371. package/development/header/common/header-action-common.d.ts +2 -2
  372. package/development/header/common/header-action-common.d.ts.map +1 -1
  373. package/development/header/common.js +44 -24
  374. package/development/header/header/header.d.ts +4 -4
  375. package/development/header/header/header.d.ts.map +1 -1
  376. package/development/header/header-button/header-button.d.ts.map +1 -1
  377. package/development/header/header-button.js +19 -18
  378. package/development/header/header-link/header-link.d.ts.map +1 -1
  379. package/development/header/header-link.js +19 -16
  380. package/development/header/header.js +198 -140
  381. package/development/icon/icon-base.d.ts +3 -4
  382. package/development/icon/icon-base.d.ts.map +1 -1
  383. package/development/icon/icon-name-mixin.d.ts +1 -1
  384. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  385. package/development/icon/icon.d.ts +2 -2
  386. package/development/icon/icon.d.ts.map +1 -1
  387. package/development/icon.js +258 -157
  388. package/development/image/image.d.ts +17 -17
  389. package/development/image/image.d.ts.map +1 -1
  390. package/development/image.js +584 -216
  391. package/development/journey-header/journey-header.d.ts +5 -5
  392. package/development/journey-header/journey-header.d.ts.map +1 -1
  393. package/development/journey-header.js +115 -43
  394. package/development/lead-container/lead-container.d.ts.map +1 -1
  395. package/development/lead-container.js +22 -21
  396. package/development/link/block-link/block-link.d.ts.map +1 -1
  397. package/development/link/block-link-button/block-link-button.d.ts.map +1 -1
  398. package/development/link/block-link-button.js +19 -18
  399. package/development/link/block-link-static/block-link-static.d.ts.map +1 -1
  400. package/development/link/block-link-static.js +19 -18
  401. package/development/link/block-link.js +19 -18
  402. package/development/link/common/block-link-common.d.ts +4 -3
  403. package/development/link/common/block-link-common.d.ts.map +1 -1
  404. package/development/link/common/link-common.d.ts +1 -1
  405. package/development/link/common/link-common.d.ts.map +1 -1
  406. package/development/link/common.js +81 -51
  407. package/development/link/link/link.d.ts.map +1 -1
  408. package/development/link/link-button/link-button.d.ts.map +1 -1
  409. package/development/link/link-button.js +19 -18
  410. package/development/link/link-static/link-static.d.ts.map +1 -1
  411. package/development/link/link-static.js +19 -18
  412. package/development/link/link.js +19 -18
  413. package/development/link-list/common/link-list-base.d.ts +3 -3
  414. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  415. package/development/link-list/common.js +97 -48
  416. package/development/link-list/link-list/link-list.d.ts +2 -2
  417. package/development/link-list/link-list/link-list.d.ts.map +1 -1
  418. package/development/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
  419. package/development/link-list/link-list-anchor.js +18 -17
  420. package/development/link-list/link-list.js +60 -28
  421. package/development/loading-indicator/loading-indicator.d.ts +3 -3
  422. package/development/loading-indicator/loading-indicator.d.ts.map +1 -1
  423. package/development/loading-indicator.js +82 -40
  424. package/development/logo/logo.d.ts +2 -2
  425. package/development/logo/logo.d.ts.map +1 -1
  426. package/development/logo.js +64 -32
  427. package/development/map-container/map-container.d.ts +2 -2
  428. package/development/map-container/map-container.d.ts.map +1 -1
  429. package/development/map-container.js +107 -75
  430. package/development/menu/common/menu-action-common.d.ts +2 -2
  431. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  432. package/development/menu/common.js +41 -20
  433. package/development/menu/menu/menu.d.ts +1 -1
  434. package/development/menu/menu/menu.d.ts.map +1 -1
  435. package/development/menu/menu-button/menu-button.d.ts.map +1 -1
  436. package/development/menu/menu-button.js +19 -18
  437. package/development/menu/menu-link/menu-link.d.ts.map +1 -1
  438. package/development/menu/menu-link.js +19 -18
  439. package/development/menu/menu.js +261 -241
  440. package/development/message/message.d.ts +2 -2
  441. package/development/message/message.d.ts.map +1 -1
  442. package/development/message.js +65 -32
  443. package/development/navigation/common/navigation-action-common.d.ts +1 -1
  444. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  445. package/development/navigation/common.js +63 -52
  446. package/development/navigation/navigation/navigation.d.ts +2 -2
  447. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  448. package/development/navigation/navigation-button/navigation-button.d.ts.map +1 -1
  449. package/development/navigation/navigation-button.js +19 -18
  450. package/development/navigation/navigation-link/navigation-link.d.ts.map +1 -1
  451. package/development/navigation/navigation-link.js +19 -18
  452. package/development/navigation/navigation-list/navigation-list.d.ts +1 -1
  453. package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  454. package/development/navigation/navigation-list.js +64 -41
  455. package/development/navigation/navigation-marker/navigation-marker.d.ts +1 -1
  456. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  457. package/development/navigation/navigation-marker.js +108 -91
  458. package/development/navigation/navigation-section/navigation-section.d.ts +3 -3
  459. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  460. package/development/navigation/navigation-section.js +282 -236
  461. package/development/navigation/navigation.js +278 -254
  462. package/development/notification/notification.d.ts +6 -6
  463. package/development/notification/notification.d.ts.map +1 -1
  464. package/development/notification.js +212 -146
  465. package/development/option/optgroup/optgroup-base-element.d.ts +3 -3
  466. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  467. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  468. package/development/option/optgroup.js +187 -142
  469. package/development/option/option/option-base-element.d.ts +7 -7
  470. package/development/option/option/option-base-element.d.ts.map +1 -1
  471. package/development/option/option/option.d.ts.map +1 -1
  472. package/development/option/option.js +392 -296
  473. package/development/overlay/overlay-base-element.d.ts +1 -1
  474. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  475. package/development/overlay/overlay.d.ts +4 -4
  476. package/development/overlay/overlay.d.ts.map +1 -1
  477. package/development/overlay.js +260 -207
  478. package/development/paginator/common/paginator-common.d.ts +26 -0
  479. package/development/paginator/common/paginator-common.d.ts.map +1 -0
  480. package/development/paginator/common.d.ts +2 -0
  481. package/development/paginator/common.d.ts.map +1 -0
  482. package/development/paginator/common.js +189 -0
  483. package/development/paginator/compact-paginator/compact-paginator.d.ts +20 -0
  484. package/development/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
  485. package/development/paginator/compact-paginator.d.ts +2 -0
  486. package/development/paginator/compact-paginator.d.ts.map +1 -0
  487. package/development/paginator/compact-paginator.js +96 -0
  488. package/development/paginator/paginator/paginator.d.ts +51 -0
  489. package/development/paginator/paginator/paginator.d.ts.map +1 -0
  490. package/development/paginator/paginator.d.ts +1 -90
  491. package/development/paginator/paginator.d.ts.map +1 -1
  492. package/development/paginator/paginator.js +449 -0
  493. package/development/paginator.d.ts +2 -0
  494. package/development/paginator.d.ts.map +1 -1
  495. package/development/paginator.js +4 -541
  496. package/development/popover/popover/popover.d.ts +6 -7
  497. package/development/popover/popover/popover.d.ts.map +1 -1
  498. package/development/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
  499. package/development/popover/popover-trigger.js +28 -29
  500. package/development/popover/popover.js +358 -303
  501. package/development/radio-button/common/radio-button-common.d.ts +1 -1
  502. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  503. package/development/radio-button/common.js +170 -127
  504. package/development/radio-button/radio-button/radio-button.d.ts +2 -6
  505. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  506. package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
  507. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  508. package/development/radio-button/radio-button-group.js +269 -199
  509. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
  510. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  511. package/development/radio-button/radio-button-panel.js +60 -48
  512. package/development/radio-button/radio-button.js +54 -40
  513. package/development/screen-reader-only/screen-reader-only.d.ts.map +1 -1
  514. package/development/screen-reader-only.js +22 -21
  515. package/development/select/select.d.ts +5 -4
  516. package/development/select/select.d.ts.map +1 -1
  517. package/development/select.js +555 -555
  518. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
  519. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  520. package/development/selection-expansion-panel.js +223 -193
  521. package/development/signet/signet.d.ts +2 -2
  522. package/development/signet/signet.d.ts.map +1 -1
  523. package/development/signet.js +65 -33
  524. package/development/skiplink-list/skiplink-list.d.ts +2 -2
  525. package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
  526. package/development/skiplink-list.js +74 -41
  527. package/development/slider/slider.d.ts +5 -4
  528. package/development/slider/slider.d.ts.map +1 -1
  529. package/development/slider.js +260 -184
  530. package/development/status/status.d.ts +3 -3
  531. package/development/status/status.d.ts.map +1 -1
  532. package/development/status.js +96 -51
  533. package/development/stepper/step/step.d.ts.map +1 -1
  534. package/development/stepper/step-label/step-label.d.ts.map +1 -1
  535. package/development/stepper/step-label.js +86 -90
  536. package/development/stepper/step.js +122 -126
  537. package/development/stepper/stepper/stepper.d.ts +3 -3
  538. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  539. package/development/stepper/stepper.js +291 -241
  540. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  541. package/development/table/table-wrapper.js +37 -39
  542. package/development/tabs/tab/tab.d.ts.map +1 -1
  543. package/development/tabs/tab-group/tab-group.d.ts +2 -2
  544. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  545. package/development/tabs/tab-group.js +296 -279
  546. package/development/tabs/tab-label/tab-label.d.ts +3 -3
  547. package/development/tabs/tab-label/tab-label.d.ts.map +1 -1
  548. package/development/tabs/tab-label.js +83 -37
  549. package/development/tabs/tab.js +40 -39
  550. package/development/tag/tag/tag.d.ts +3 -5
  551. package/development/tag/tag/tag.d.ts.map +1 -1
  552. package/development/tag/tag-group/tag-group.d.ts +3 -3
  553. package/development/tag/tag-group/tag-group.d.ts.map +1 -1
  554. package/development/tag/tag-group.js +143 -88
  555. package/development/tag/tag.js +126 -89
  556. package/development/teaser/teaser.d.ts +4 -4
  557. package/development/teaser/teaser.d.ts.map +1 -1
  558. package/development/teaser-hero/teaser-hero.d.ts +3 -3
  559. package/development/teaser-hero/teaser-hero.d.ts.map +1 -1
  560. package/development/teaser-hero.js +83 -36
  561. package/development/teaser-product/common/teaser-product-common.d.ts +1 -1
  562. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  563. package/development/teaser-product/common.js +51 -26
  564. package/development/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
  565. package/development/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
  566. package/development/teaser-product/teaser-product-static.js +18 -19
  567. package/development/teaser-product/teaser-product.js +18 -19
  568. package/development/teaser.js +94 -40
  569. package/development/time-input/time-input.d.ts +1 -1
  570. package/development/time-input/time-input.d.ts.map +1 -1
  571. package/development/time-input.js +225 -219
  572. package/development/timetable-occupancy/timetable-occupancy.d.ts +2 -2
  573. package/development/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
  574. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
  575. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  576. package/development/timetable-occupancy-icon.js +78 -57
  577. package/development/timetable-occupancy.js +67 -35
  578. package/development/title/title-base.d.ts +3 -3
  579. package/development/title/title-base.d.ts.map +1 -1
  580. package/development/title/title.d.ts.map +1 -1
  581. package/development/title.js +106 -58
  582. package/development/toast/toast.d.ts +4 -4
  583. package/development/toast/toast.d.ts.map +1 -1
  584. package/development/toast.js +204 -146
  585. package/development/toggle/toggle/toggle.d.ts +3 -5
  586. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  587. package/development/toggle/toggle-option/toggle-option.d.ts +2 -2
  588. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  589. package/development/toggle/toggle-option.js +127 -93
  590. package/development/toggle/toggle.js +200 -163
  591. package/development/toggle-check/toggle-check.d.ts +4 -3
  592. package/development/toggle-check/toggle-check.d.ts.map +1 -1
  593. package/development/toggle-check.js +87 -49
  594. package/development/train/train/train.d.ts +5 -5
  595. package/development/train/train/train.d.ts.map +1 -1
  596. package/development/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
  597. package/development/train/train-blocked-passage.js +22 -21
  598. package/development/train/train-formation/train-formation.d.ts +2 -2
  599. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  600. package/development/train/train-formation.js +113 -90
  601. package/development/train/train-wagon/train-wagon.d.ts +7 -9
  602. package/development/train/train-wagon/train-wagon.d.ts.map +1 -1
  603. package/development/train/train-wagon.js +166 -87
  604. package/development/train/train.js +142 -75
  605. package/development/visual-checkbox/visual-checkbox.d.ts +3 -3
  606. package/development/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  607. package/development/visual-checkbox.js +79 -36
  608. package/dialog/dialog/dialog.d.ts +1 -1
  609. package/dialog/dialog/dialog.d.ts.map +1 -1
  610. package/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
  611. package/dialog/dialog-actions.js +18 -19
  612. package/dialog/dialog-content/dialog-content.d.ts.map +1 -1
  613. package/dialog/dialog-content.js +17 -18
  614. package/dialog/dialog-title/dialog-title.d.ts +3 -3
  615. package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  616. package/dialog/dialog-title.js +98 -66
  617. package/dialog/dialog.js +120 -114
  618. package/divider/divider.d.ts +1 -1
  619. package/divider/divider.d.ts.map +1 -1
  620. package/divider.js +41 -30
  621. package/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
  622. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  623. package/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
  624. package/expansion-panel/expansion-panel-content.js +20 -22
  625. package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +1 -1
  626. package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  627. package/expansion-panel/expansion-panel-header.js +53 -61
  628. package/expansion-panel/expansion-panel.js +145 -130
  629. package/file-selector/file-selector.d.ts +8 -7
  630. package/file-selector/file-selector.d.ts.map +1 -1
  631. package/file-selector.js +224 -174
  632. package/flip-card/flip-card/flip-card.d.ts +2 -2
  633. package/flip-card/flip-card/flip-card.d.ts.map +1 -1
  634. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  635. package/flip-card/flip-card-details.js +36 -38
  636. package/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  637. package/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  638. package/flip-card/flip-card-summary.js +42 -31
  639. package/flip-card/flip-card.js +88 -69
  640. package/footer/footer.d.ts +4 -4
  641. package/footer/footer.d.ts.map +1 -1
  642. package/footer.js +78 -37
  643. package/form-error/form-error.d.ts.map +1 -1
  644. package/form-error.js +24 -25
  645. package/form-field/form-field/form-field.d.ts +10 -10
  646. package/form-field/form-field/form-field.d.ts.map +1 -1
  647. package/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  648. package/form-field/form-field-clear.js +39 -41
  649. package/form-field/form-field.js +295 -239
  650. package/header/common/header-action-common.d.ts +2 -2
  651. package/header/common/header-action-common.d.ts.map +1 -1
  652. package/header/common.js +36 -21
  653. package/header/header/header.d.ts +4 -4
  654. package/header/header/header.d.ts.map +1 -1
  655. package/header/header-button/header-button.d.ts.map +1 -1
  656. package/header/header-button.js +14 -16
  657. package/header/header-link/header-link.d.ts.map +1 -1
  658. package/header/header-link.js +14 -14
  659. package/header/header.js +138 -109
  660. package/icon/icon-base.d.ts +3 -4
  661. package/icon/icon-base.d.ts.map +1 -1
  662. package/icon/icon-name-mixin.d.ts +1 -1
  663. package/icon/icon-name-mixin.d.ts.map +1 -1
  664. package/icon/icon.d.ts +2 -2
  665. package/icon/icon.d.ts.map +1 -1
  666. package/icon.js +230 -165
  667. package/image/image.d.ts +17 -17
  668. package/image/image.d.ts.map +1 -1
  669. package/image.js +465 -195
  670. package/index.d.ts +3 -1
  671. package/index.js +3 -1
  672. package/journey-header/journey-header.d.ts +5 -5
  673. package/journey-header/journey-header.d.ts.map +1 -1
  674. package/journey-header.js +89 -49
  675. package/lead-container/lead-container.d.ts.map +1 -1
  676. package/lead-container.js +17 -18
  677. package/link/block-link/block-link.d.ts.map +1 -1
  678. package/link/block-link-button/block-link-button.d.ts.map +1 -1
  679. package/link/block-link-button.js +15 -17
  680. package/link/block-link-static/block-link-static.d.ts.map +1 -1
  681. package/link/block-link-static.js +14 -16
  682. package/link/block-link.js +15 -17
  683. package/link/common/block-link-common.d.ts +4 -3
  684. package/link/common/block-link-common.d.ts.map +1 -1
  685. package/link/common/link-common.d.ts +1 -1
  686. package/link/common/link-common.d.ts.map +1 -1
  687. package/link/common.js +64 -46
  688. package/link/link/link.d.ts.map +1 -1
  689. package/link/link-button/link-button.d.ts.map +1 -1
  690. package/link/link-button.js +15 -17
  691. package/link/link-static/link-static.d.ts.map +1 -1
  692. package/link/link-static.js +15 -17
  693. package/link/link.js +15 -17
  694. package/link-list/common/link-list-base.d.ts +3 -3
  695. package/link-list/common/link-list-base.d.ts.map +1 -1
  696. package/link-list/common.js +72 -44
  697. package/link-list/link-list/link-list.d.ts +2 -2
  698. package/link-list/link-list/link-list.d.ts.map +1 -1
  699. package/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
  700. package/link-list/link-list-anchor.js +15 -16
  701. package/link-list/link-list.js +43 -24
  702. package/loading-indicator/loading-indicator.d.ts +3 -3
  703. package/loading-indicator/loading-indicator.d.ts.map +1 -1
  704. package/loading-indicator.js +61 -36
  705. package/logo/logo.d.ts +2 -2
  706. package/logo/logo.d.ts.map +1 -1
  707. package/logo.js +47 -27
  708. package/map-container/map-container.d.ts +2 -2
  709. package/map-container/map-container.d.ts.map +1 -1
  710. package/map-container.js +84 -65
  711. package/menu/common/menu-action-common.d.ts +2 -2
  712. package/menu/common/menu-action-common.d.ts.map +1 -1
  713. package/menu/common.js +37 -22
  714. package/menu/menu/menu.d.ts +1 -1
  715. package/menu/menu/menu.d.ts.map +1 -1
  716. package/menu/menu-button/menu-button.d.ts.map +1 -1
  717. package/menu/menu-button.js +14 -16
  718. package/menu/menu-link/menu-link.d.ts.map +1 -1
  719. package/menu/menu-link.js +15 -17
  720. package/menu/menu.js +175 -170
  721. package/message/message.d.ts +2 -2
  722. package/message/message.d.ts.map +1 -1
  723. package/message.js +47 -27
  724. package/navigation/common/navigation-action-common.d.ts +1 -1
  725. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  726. package/navigation/common.js +38 -33
  727. package/navigation/navigation/navigation.d.ts +2 -2
  728. package/navigation/navigation/navigation.d.ts.map +1 -1
  729. package/navigation/navigation-button/navigation-button.d.ts.map +1 -1
  730. package/navigation/navigation-button.js +14 -16
  731. package/navigation/navigation-link/navigation-link.d.ts.map +1 -1
  732. package/navigation/navigation-link.js +14 -16
  733. package/navigation/navigation-list/navigation-list.d.ts +1 -1
  734. package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  735. package/navigation/navigation-list.js +48 -35
  736. package/navigation/navigation-marker/navigation-marker.d.ts +1 -1
  737. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  738. package/navigation/navigation-marker.js +77 -69
  739. package/navigation/navigation-section/navigation-section.d.ts +3 -3
  740. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  741. package/navigation/navigation-section.js +192 -171
  742. package/navigation/navigation.js +185 -181
  743. package/notification/notification.d.ts +6 -6
  744. package/notification/notification.d.ts.map +1 -1
  745. package/notification.js +147 -116
  746. package/option/optgroup/optgroup-base-element.d.ts +3 -3
  747. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  748. package/option/optgroup/optgroup.d.ts.map +1 -1
  749. package/option/optgroup.js +131 -112
  750. package/option/option/option-base-element.d.ts +7 -7
  751. package/option/option/option-base-element.d.ts.map +1 -1
  752. package/option/option/option.d.ts.map +1 -1
  753. package/option/option.js +295 -252
  754. package/overlay/overlay-base-element.d.ts +1 -1
  755. package/overlay/overlay-base-element.d.ts.map +1 -1
  756. package/overlay/overlay.d.ts +4 -4
  757. package/overlay/overlay.d.ts.map +1 -1
  758. package/overlay.js +194 -165
  759. package/package.json +18 -2
  760. package/paginator/common/paginator-common.d.ts +26 -0
  761. package/paginator/common/paginator-common.d.ts.map +1 -0
  762. package/paginator/common.d.ts +2 -0
  763. package/paginator/common.d.ts.map +1 -0
  764. package/paginator/common.js +145 -0
  765. package/paginator/compact-paginator/compact-paginator.d.ts +20 -0
  766. package/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
  767. package/paginator/compact-paginator.d.ts +2 -0
  768. package/paginator/compact-paginator.d.ts.map +1 -0
  769. package/paginator/compact-paginator.js +40 -0
  770. package/paginator/paginator/paginator.d.ts +51 -0
  771. package/paginator/paginator/paginator.d.ts.map +1 -0
  772. package/paginator/paginator.d.ts +1 -90
  773. package/paginator/paginator.d.ts.map +1 -1
  774. package/paginator/paginator.js +171 -0
  775. package/paginator.d.ts +2 -0
  776. package/paginator.d.ts.map +1 -1
  777. package/paginator.js +3 -265
  778. package/popover/popover/popover.d.ts +6 -7
  779. package/popover/popover/popover.d.ts.map +1 -1
  780. package/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
  781. package/popover/popover-trigger.js +26 -29
  782. package/popover/popover.js +230 -208
  783. package/radio-button/common/radio-button-common.d.ts +1 -1
  784. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  785. package/radio-button/common.js +67 -43
  786. package/radio-button/radio-button/radio-button.d.ts +2 -6
  787. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  788. package/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
  789. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  790. package/radio-button/radio-button-group.js +192 -156
  791. package/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
  792. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  793. package/radio-button/radio-button-panel.js +49 -45
  794. package/radio-button/radio-button.js +43 -37
  795. package/screen-reader-only/screen-reader-only.d.ts.map +1 -1
  796. package/screen-reader-only.js +17 -18
  797. package/select/select.d.ts +5 -4
  798. package/select/select.d.ts.map +1 -1
  799. package/select.js +377 -401
  800. package/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
  801. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  802. package/selection-expansion-panel.js +157 -148
  803. package/signet/signet.d.ts +2 -2
  804. package/signet/signet.d.ts.map +1 -1
  805. package/signet.js +48 -28
  806. package/skiplink-list/skiplink-list.d.ts +2 -2
  807. package/skiplink-list/skiplink-list.d.ts.map +1 -1
  808. package/skiplink-list.js +54 -36
  809. package/slider/slider.d.ts +5 -4
  810. package/slider/slider.d.ts.map +1 -1
  811. package/slider.js +197 -158
  812. package/status/status.d.ts +3 -3
  813. package/status/status.d.ts.map +1 -1
  814. package/status.js +71 -46
  815. package/stepper/step/step.d.ts.map +1 -1
  816. package/stepper/step-label/step-label.d.ts.map +1 -1
  817. package/stepper/step-label.js +69 -75
  818. package/stepper/step.js +99 -104
  819. package/stepper/stepper/stepper.d.ts +3 -3
  820. package/stepper/stepper/stepper.d.ts.map +1 -1
  821. package/stepper/stepper.js +208 -188
  822. package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  823. package/table/table-wrapper.js +32 -36
  824. package/tabs/tab/tab.d.ts.map +1 -1
  825. package/tabs/tab-group/tab-group.d.ts +2 -2
  826. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  827. package/tabs/tab-group.js +200 -193
  828. package/tabs/tab-label/tab-label.d.ts +3 -3
  829. package/tabs/tab-label/tab-label.d.ts.map +1 -1
  830. package/tabs/tab-label.js +65 -37
  831. package/tabs/tab.js +34 -35
  832. package/tag/tag/tag.d.ts +3 -5
  833. package/tag/tag/tag.d.ts.map +1 -1
  834. package/tag/tag-group/tag-group.d.ts +3 -3
  835. package/tag/tag-group/tag-group.d.ts.map +1 -1
  836. package/tag/tag-group.js +107 -75
  837. package/tag/tag.js +92 -73
  838. package/teaser/teaser.d.ts +4 -4
  839. package/teaser/teaser.d.ts.map +1 -1
  840. package/teaser-hero/teaser-hero.d.ts +3 -3
  841. package/teaser-hero/teaser-hero.d.ts.map +1 -1
  842. package/teaser-hero.js +66 -38
  843. package/teaser-product/common/teaser-product-common.d.ts +1 -1
  844. package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  845. package/teaser-product/common.js +36 -21
  846. package/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
  847. package/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
  848. package/teaser-product/teaser-product-static.js +14 -17
  849. package/teaser-product/teaser-product.js +14 -17
  850. package/teaser.js +69 -37
  851. package/time-input/time-input.d.ts +1 -1
  852. package/time-input/time-input.d.ts.map +1 -1
  853. package/time-input.js +160 -166
  854. package/timetable-occupancy/timetable-occupancy.d.ts +2 -2
  855. package/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
  856. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
  857. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  858. package/timetable-occupancy-icon.js +60 -48
  859. package/timetable-occupancy.js +55 -38
  860. package/title/title-base.d.ts +3 -3
  861. package/title/title-base.d.ts.map +1 -1
  862. package/title/title.d.ts.map +1 -1
  863. package/title.js +81 -53
  864. package/toast/toast.d.ts +4 -4
  865. package/toast/toast.d.ts.map +1 -1
  866. package/toast.js +156 -123
  867. package/toggle/toggle/toggle.d.ts +3 -5
  868. package/toggle/toggle/toggle.d.ts.map +1 -1
  869. package/toggle/toggle-option/toggle-option.d.ts +2 -2
  870. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  871. package/toggle/toggle-option.js +89 -72
  872. package/toggle/toggle.js +139 -122
  873. package/toggle-check/toggle-check.d.ts +4 -3
  874. package/toggle-check/toggle-check.d.ts.map +1 -1
  875. package/toggle-check.js +63 -41
  876. package/train/train/train.d.ts +5 -5
  877. package/train/train/train.d.ts.map +1 -1
  878. package/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
  879. package/train/train-blocked-passage.js +17 -18
  880. package/train/train-formation/train-formation.d.ts +2 -2
  881. package/train/train-formation/train-formation.d.ts.map +1 -1
  882. package/train/train-formation.js +96 -87
  883. package/train/train-wagon/train-wagon.d.ts +7 -9
  884. package/train/train-wagon/train-wagon.d.ts.map +1 -1
  885. package/train/train-wagon.js +150 -110
  886. package/train/train.js +108 -71
  887. package/visual-checkbox/visual-checkbox.d.ts +3 -3
  888. package/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  889. package/visual-checkbox.js +59 -32
@@ -56,6 +56,17 @@ const modalityEventListenerOptions = {
56
56
  capture: true
57
57
  };
58
58
  class SbbInputModalityDetector {
59
+ /** The most recently detected input modality. */
60
+ get mostRecentModality() {
61
+ return this._mostRecentModality;
62
+ }
63
+ /**
64
+ * The most recently detected input modality event target. Is null if no input modality has been
65
+ * detected or if the associated event target is null for some unknown reason.
66
+ */
67
+ get mostRecentTarget() {
68
+ return this._mostRecentTarget;
69
+ }
59
70
  constructor() {
60
71
  this._mostRecentModality = "mouse";
61
72
  this._mostRecentTarget = null;
@@ -94,17 +105,6 @@ class SbbInputModalityDetector {
94
105
  document.addEventListener("touchstart", this._onTouchstart, modalityEventListenerOptions);
95
106
  }
96
107
  }
97
- /** The most recently detected input modality. */
98
- get mostRecentModality() {
99
- return this._mostRecentModality;
100
- }
101
- /**
102
- * The most recently detected input modality event target. Is null if no input modality has been
103
- * detected or if the associated event target is null for some unknown reason.
104
- */
105
- get mostRecentTarget() {
106
- return this._mostRecentTarget;
107
- }
108
108
  reset() {
109
109
  this._mostRecentModality = "mouse";
110
110
  this._mostRecentTarget = null;
@@ -120,29 +120,18 @@ function setModalityOnNextFocus(elementToFocus) {
120
120
  if (!(elementToFocus && mostRecentModality !== null)) {
121
121
  return;
122
122
  }
123
- elementToFocus.addEventListener(
124
- "focus",
125
- () => {
126
- elementToFocus.setAttribute("data-focus-origin", mostRecentModality);
127
- elementToFocus.addEventListener(
128
- "blur",
129
- () => elementToFocus.removeAttribute("data-focus-origin"),
130
- {
131
- once: true
132
- }
133
- );
134
- },
135
- { once: true }
136
- );
123
+ elementToFocus.addEventListener("focus", () => {
124
+ elementToFocus.setAttribute("data-focus-origin", mostRecentModality);
125
+ elementToFocus.addEventListener("blur", () => elementToFocus.removeAttribute("data-focus-origin"), {
126
+ once: true
127
+ });
128
+ }, { once: true });
137
129
  }
138
130
  class SbbFocusVisibleWithinController {
139
131
  constructor(_host) {
140
132
  this._host = _host;
141
133
  this._focusinHandler = () => {
142
- this._host.toggleAttribute(
143
- "data-has-visible-focus-within",
144
- sbbInputModalityDetector.mostRecentModality === "keyboard"
145
- );
134
+ this._host.toggleAttribute("data-has-visible-focus-within", sbbInputModalityDetector.mostRecentModality === "keyboard");
146
135
  };
147
136
  this._focusoutHandler = () => {
148
137
  this._host.removeAttribute("data-has-visible-focus-within");
@@ -199,10 +188,7 @@ function getFocusableElements(elements, properties) {
199
188
  continue;
200
189
  }
201
190
  if (el.nodeName === "SLOT") {
202
- getFocusables(
203
- Array.from(el.assignedElements()),
204
- filter
205
- );
191
+ getFocusables(Array.from(el.assignedElements()), filter);
206
192
  continue;
207
193
  }
208
194
  if (el.matches(IS_FOCUSABLE_QUERY) && ((properties == null ? void 0 : properties.includeInvisibleElements) ?? interactivityChecker.isVisible(el))) {
@@ -238,34 +224,26 @@ class SbbFocusHandler {
238
224
  * @param options.postFilter filter function which is applied after collecting focusable elements.
239
225
  */
240
226
  trap(element, options) {
241
- element.addEventListener(
242
- "keydown",
243
- (event) => {
244
- if (event.key !== "Tab") {
245
- return;
246
- }
247
- const elementChildren = Array.from(
248
- element.shadowRoot.children || []
249
- );
250
- const focusableElements = getFocusableElements(elementChildren, {
251
- filter: options == null ? void 0 : options.filter
252
- });
253
- const filteredFocusableElements = focusableElements.filter(
254
- (options == null ? void 0 : options.postFilter) ?? (() => true)
255
- );
256
- if (!filteredFocusableElements.length) {
257
- return;
258
- }
259
- const firstFocusable = filteredFocusableElements[0];
260
- const lastFocusable = filteredFocusableElements[filteredFocusableElements.length - 1];
261
- const [pivot, next] = event.shiftKey ? [firstFocusable, lastFocusable] : [lastFocusable, firstFocusable];
262
- if (firstFocusable.getRootNode().activeElement === pivot || lastFocusable.getRootNode().activeElement === pivot) {
263
- next.focus();
264
- event.preventDefault();
265
- }
266
- },
267
- { signal: this._controller.signal }
268
- );
227
+ element.addEventListener("keydown", (event) => {
228
+ if (event.key !== "Tab") {
229
+ return;
230
+ }
231
+ const elementChildren = Array.from(element.shadowRoot.children || []);
232
+ const focusableElements = getFocusableElements(elementChildren, {
233
+ filter: options == null ? void 0 : options.filter
234
+ });
235
+ const filteredFocusableElements = focusableElements.filter((options == null ? void 0 : options.postFilter) ?? (() => true));
236
+ if (!filteredFocusableElements.length) {
237
+ return;
238
+ }
239
+ const firstFocusable = filteredFocusableElements[0];
240
+ const lastFocusable = filteredFocusableElements[filteredFocusableElements.length - 1];
241
+ const [pivot, next] = event.shiftKey ? [firstFocusable, lastFocusable] : [lastFocusable, firstFocusable];
242
+ if (firstFocusable.getRootNode().activeElement === pivot || lastFocusable.getRootNode().activeElement === pivot) {
243
+ next.focus();
244
+ event.preventDefault();
245
+ }
246
+ }, { signal: this._controller.signal });
269
247
  }
270
248
  disconnect() {
271
249
  this._controller.abort();
@@ -291,4 +269,4 @@ export {
291
269
  sbbInputModalityDetector,
292
270
  setModalityOnNextFocus
293
271
  };
294
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYTExeS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9hcnJvdy1uYXZpZ2F0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvaW5wdXQtbW9kYWxpdHktZGV0ZWN0b3IudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ZvY3VzLXZpc2libGUtd2l0aGluLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvZm9jdXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIFByZXZBbmROZXh0S2V5cyB7XG4gIHByZXZLZXk6IHN0cmluZztcbiAgbmV4dEtleTogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRQcmV2QW5kTmV4dEtleXMoKTogUHJldkFuZE5leHRLZXlzIHtcbiAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5tYXRjaGVzKCc6ZGlyKHJ0bCknKSkge1xuICAgIHJldHVybiB7IHByZXZLZXk6ICdBcnJvd1JpZ2h0JywgbmV4dEtleTogJ0Fycm93TGVmdCcgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBwcmV2S2V5OiAnQXJyb3dMZWZ0JywgbmV4dEtleTogJ0Fycm93UmlnaHQnIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUga2V5IHByZXNzZWQgaXMgYW1vbmcgdGhvc2UgYWxsb3dlZCBmb3IgbmF2aWdhdGlvbi5cbiAqIEBwYXJhbSBldmVudCBUaGUga2V5Ym9hcmQgZXZlbnQgdG8gY2hlY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gWydBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIHNob3VsZCBtb3ZlIHRoZSBuYXZpZ2F0aW9uIHRvIHRoZSBuZXh0IGVsZW1lbnQuXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcmV2aW91c0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSBnZXRQcmV2QW5kTmV4dEtleXMoKS5wcmV2S2V5O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBrZXkgcHJlc3NlZCBzaG91bGQgbW92ZSB0aGUgbmF2aWdhdGlvbiB0byB0aGUgbmV4dCBlbGVtZW50LlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dEFycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09IGdldFByZXZBbmROZXh0S2V5cygpLm5leHRLZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIGlzIGFtb25nIHRob3NlIGFsbG93ZWQgZm9yIG5hdmlnYXRpb24uXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0Fycm93S2V5UHJlc3NlZChldmVudCkgfHwgWydQYWdlVXAnLCAnUGFnZURvd24nLCAnSG9tZScsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgaW5kZXggb2YgdGhlIG5leHQgZWxlbWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gb2Zmc2V0LlxuICogQHBhcmFtIGN1cnJlbnRJbmRleCBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAqIEBwYXJhbSBtYXhJbmRleCBUaGUgbWF4aW11bSBwZXJtaXR0ZWQgdmFsdWUgKGUuZy4gYXJyYXkgc2l6ZSkuXG4gKiBAcGFyYW0gb2Zmc2V0IFRoZSBhbW91bnQgdG8gbW92ZSBieS5cbiAqL1xuZnVuY3Rpb24gY2FsY05leHRJbmRleEluUmFuZ2UoY3VycmVudEluZGV4OiBudW1iZXIsIG1heEluZGV4OiBudW1iZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIChjdXJyZW50SW5kZXggKyBvZmZzZXQgKyBtYXhJbmRleCkgJSBtYXhJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdEluZGV4KHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplIC0gMTtcbn1cblxuY29uc3QgZmlyc3RJbmRleCA9IDA7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gbW92ZSB0bywgYmFzZWQgb24gdGhlIGtleWJvYXJkIGlucHV0LCB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0IGFuZCB0aGUgbGlzdCBzaXplLlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqIEBwYXJhbSBjdXJyZW50IFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0LlxuICogQHBhcmFtIHNpemUgVGhlIHNpemUgb2YgdGhlIGxpc3QuXG4gKiBAcmV0dXJucyBpZiBpdCBpcyBhICdwcmV2aW91cycgZXZlbnQsIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBwcmV2aW91cyBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9uZSBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHRoZSBmaXJzdCBpbiB0aGUgbGlzdDtcbiAqIGlmIGl0IGlzIGEgJ25leHQnIGV2ZW50LCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvbmUsIGlmIHRoZSBjdXJyZW50IGlzIHRoZSBsYXN0IGluIHRoZSBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dEVsZW1lbnRJbmRleChldmVudDogS2V5Ym9hcmRFdmVudCwgY3VycmVudDogbnVtYmVyLCBzaXplOiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCB7IHByZXZLZXksIG5leHRLZXkgfSA9IGdldFByZXZBbmROZXh0S2V5cygpO1xuXG4gIGlmIChldmVudC5rZXkgPT09IHByZXZLZXkgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICByZXR1cm4gY3VycmVudCA8IGZpcnN0SW5kZXggPyBnZXRMYXN0SW5kZXgoc2l6ZSkgOiBjYWxjTmV4dEluZGV4SW5SYW5nZShjdXJyZW50LCBzaXplLCAtMSk7XG4gIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBuZXh0S2V5IHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICByZXR1cm4gY3VycmVudCA+PSBzaXplID8gZmlyc3RJbmRleCA6IGNhbGNOZXh0SW5kZXhJblJhbmdlKGN1cnJlbnQsIHNpemUsIDEpO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuIiwiLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9jZGsvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50c1xuXG4vKiogR2V0cyB3aGV0aGVyIGFuIGV2ZW50IGNvdWxkIGJlIGEgZmFrZWQgYG1vdXNlZG93bmAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAvLyBTb21lIHNjcmVlbiByZWFkZXJzIHdpbGwgZGlzcGF0Y2ggYSBmYWtlIGBtb3VzZWRvd25gIGV2ZW50IHdoZW4gcHJlc3NpbmcgZW50ZXIgb3Igc3BhY2Ugb25cbiAgLy8gYSBjbGlja2FibGUgZWxlbWVudC4gV2UgY2FuIGRpc3Rpbmd1aXNoIHRoZXNlIGV2ZW50cyB3aGVuIGBldmVudC5idXR0b25zYCBpcyB6ZXJvLCBvclxuICAvLyBgZXZlbnQuZGV0YWlsYCBpcyB6ZXJvIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcjpcbiAgLy8gLSBgZXZlbnQuYnV0dG9uc2Agd29ya3Mgb24gRmlyZWZveCwgYnV0IGZhaWxzIG9uIENocm9tZS5cbiAgLy8gLSBgZGV0YWlsYCB3b3JrcyBvbiBDaHJvbWUsIGJ1dCBmYWlscyBvbiBGaXJlZm94LlxuICByZXR1cm4gZXZlbnQuYnV0dG9ucyA9PT0gMCB8fCBldmVudC5kZXRhaWwgPT09IDA7XG59XG5cbi8qKiBHZXRzIHdoZXRoZXIgYW4gZXZlbnQgY291bGQgYmUgYSBmYWtlZCBgdG91Y2hzdGFydGAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlVG91Y2hzdGFydEZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IFRvdWNoRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgdG91Y2g6IFRvdWNoIHwgdW5kZWZpbmVkID1cbiAgICAoZXZlbnQudG91Y2hlcyAmJiBldmVudC50b3VjaGVzWzBdKSB8fCAoZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pO1xuXG4gIC8vIEEgZmFrZSBgdG91Y2hzdGFydGAgY2FuIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbSBhIHJlYWwgb25lIGJ5IGxvb2tpbmcgYXQgdGhlIGBpZGVudGlmaWVyYFxuICAvLyB3aGljaCBpcyB0eXBpY2FsbHkgPj0gMCBvbiBhIHJlYWwgZGV2aWNlIHZlcnN1cyAtMSBmcm9tIGEgc2NyZWVuIHJlYWRlci4gSnVzdCB0byBiZSBzYWZlLFxuICAvLyB3ZSBjYW4gYWxzbyBsb29rIGF0IGByYWRpdXNYYCBhbmQgYHJhZGl1c1lgLiBUaGlzIGJlaGF2aW9yIHdhcyBvYnNlcnZlZCBhZ2FpbnN0IGEgV2luZG93cyAxMFxuICAvLyBkZXZpY2Ugd2l0aCBhIHRvdWNoIHNjcmVlbiBydW5uaW5nIE5WREEgdjIwMjAuNCBhbmQgRmlyZWZveCA4NSBvciBDaHJvbWUgODguXG4gIHJldHVybiAoXG4gICAgISF0b3VjaCAmJlxuICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgKHRvdWNoLnJhZGl1c1ggPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNYID09PSAxKSAmJlxuICAgICh0b3VjaC5yYWRpdXNZID09IG51bGwgfHwgdG91Y2gucmFkaXVzWSA9PT0gMSlcbiAgKTtcbn1cbiIsIi8vIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL2Nkay9hMTF5L2lucHV0LW1vZGFsaXR5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzXG5cbmltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgZ2V0RXZlbnRUYXJnZXQgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB7XG4gIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIsXG4gIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyLFxufSBmcm9tICcuL2Zha2UtZXZlbnQtZGV0ZWN0aW9uLmpzJztcblxuZXhwb3J0IHR5cGUgU2JiSW5wdXRNb2RhbGl0eSA9ICd0b3VjaCcgfCAnbW91c2UnIHwgJ2tleWJvYXJkJyB8ICdwcm9ncmFtJyB8IG51bGw7XG5cbi8qKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgdGhlIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbmludGVyZmFjZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zIHtcbiAgLyoqIEtleXMgdG8gaWdub3JlIHdoZW4gZGV0ZWN0aW5nIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LiAqL1xuICBpZ25vcmVLZXlzPzogbnVtYmVyW107XG59XG5cbmNvbnN0IFNISUZUID0gMTY7XG5jb25zdCBDT05UUk9MID0gMTc7XG5jb25zdCBBTFQgPSAxODtcbmNvbnN0IE1FVEEgPSA5MTsgLy8gV0lOX0tFWV9MRUZUXG5jb25zdCBNQUNfTUVUQSA9IDIyNDtcblxuLyoqXG4gKiBEZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IuXG4gKlxuICogTW9kaWZpZXIga2V5cyBhcmUgaWdub3JlZCBieSBkZWZhdWx0IChpLmUuIHdoZW4gcHJlc3NlZCB3b24ndCBjYXVzZSB0aGUgc2VydmljZSB0byBkZXRlY3RcbiAqIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5KSBmb3IgdHdvIHJlYXNvbnM6XG4gKlxuICogMS4gTW9kaWZpZXIga2V5cyBhcmUgY29tbW9ubHkgdXNlZCB3aXRoIG1vdXNlIHRvIHBlcmZvcm0gYWN0aW9ucyBzdWNoIGFzICdyaWdodCBjbGljaycgb3IgJ29wZW5cbiAqICAgIGluIG5ldyB0YWInLCBhbmQgYXJlIHRodXMgbGVzcyByZXByZXNlbnRhdGl2ZSBvZiBhY3R1YWwga2V5Ym9hcmQgaW50ZXJhY3Rpb24uXG4gKiAyLiBWb2ljZU92ZXIgdHJpZ2dlcnMgc29tZSBrZXlib2FyZCBldmVudHMgd2hlbiBsaW5lYXJseSBuYXZpZ2F0aW5nIHdpdGggQ29udHJvbCArIE9wdGlvbiAoYnV0XG4gKiAgICBjb25mdXNpbmdseSBub3Qgd2l0aCBDYXBzIExvY2spLiBUaHVzLCB0byBoYXZlIHBhcml0eSB3aXRoIG90aGVyIHNjcmVlbiByZWFkZXJzLCB3ZSBpZ25vcmVcbiAqICAgIHRoZXNlIGtleXMgc28sIGFzIHRvIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkbyBub3QgYnkgZGVmYXVsdCBpZ25vcmUgdGhlIHJpZ2h0IE1ldGEga2V5IG9uIFNhZmFyaSBiZWNhdXNlIGl0IGhhcyB0aGUgc2FtZSBrZXlcbiAqIGNvZGUgYXMgdGhlIENvbnRleHRNZW51IGtleSBvbiBvdGhlciBicm93c2Vycy4gV2hlbiB3ZSBzd2l0Y2ggdG8gdXNpbmcgZXZlbnQua2V5LCB3ZSBjYW5cbiAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3by5cbiAqL1xuY29uc3QgaW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgaWdub3JlS2V5czogW0FMVCwgQ09OVFJPTCwgTUFDX01FVEEsIE1FVEEsIFNISUZUXSxcbn07XG5cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lIG5lZWRlZCB0byBwYXNzIGFmdGVyIGEgdG91Y2hzdGFydCBldmVudCBpbiBvcmRlciBmb3IgYSBzdWJzZXF1ZW50IG1vdXNlZG93blxuICogZXZlbnQgdG8gYmUgYXR0cmlidXRlZCBhcyBtb3VzZSBhbmQgbm90IHRvdWNoLlxuICpcbiAqIFRocm91Z2ggdHJpYWwgYW5kIGVycm9yIGl0IHdhcyBmb3VuZCB0aGF0IGEgdmFsdWUgb2YgYXJvdW5kIDY1MG1zIHNlZW1zIGFwcHJvcHJpYXRlLlxuICovXG5jb25zdCB0b3VjaEJ1ZmZlck1zID0gNjUwO1xuXG4vKipcbiAqIEV2ZW50IGxpc3RlbmVyIG9wdGlvbnMgdGhhdCBlbmFibGUgY2FwdHVyaW5nIGFuZCBhbHNvIG1hcmsgdGhlIGxpc3RlbmVyIGFzIHBhc3NpdmUgaWYgdGhlIGJyb3dzZXJcbiAqIHN1cHBvcnRzIGl0LlxuICovXG5jb25zdCBtb2RhbGl0eUV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICBwYXNzaXZlOiB0cnVlLFxuICBjYXB0dXJlOiB0cnVlLFxufTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgZGV0ZWN0cyB0aGUgdXNlcidzIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIFRoaXMgc2VydmljZSBkb2VzIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHdoZW4gYSB1c2VyIG5hdmlnYXRlcyB3aXRoIGEgc2NyZWVuIHJlYWRlclxuICogKGUuZy4gbGluZWFyIG5hdmlnYXRpb24gd2l0aCBWb2ljZU92ZXIsIG9iamVjdCBuYXZpZ2F0aW9uIC8gYnJvd3NlIG1vZGUgd2l0aCBOVkRBLCB2aXJ0dWFsIFBDXG4gKiBjdXJzb3IgbW9kZSB3aXRoIEpBV1MpLiBUaGlzIGlzIGluIHBhcnQgZHVlIHRvIHRlY2huaWNhbCBsaW1pdGF0aW9ucyAoaS5lLiBrZXlib2FyZCBldmVudHMgZG8gbm90XG4gKiBmaXJlIGFzIGV4cGVjdGVkIGluIHRoZXNlIG1vZGVzKSBidXQgaXMgYWxzbyBhcmd1YWJseSB0aGUgY29ycmVjdCBiZWhhdmlvci4gTmF2aWdhdGluZyB3aXRoIGFcbiAqIHNjcmVlbiByZWFkZXIgaXMgYWtpbiB0byB2aXN1YWxseSBzY2FubmluZyBhIHBhZ2UsIGFuZCBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFzIGFjdHVhbCB1c2VyXG4gKiBpbnB1dCBpbnRlcmFjdGlvbi5cbiAqXG4gKiBXaGVuIGEgdXNlciBpcyBub3QgbmF2aWdhdGluZyBidXQgKmludGVyYWN0aW5nKiB3aXRoIGEgc2NyZWVuIHJlYWRlciwgdGhpcyBzZXJ2aWNlIGF0dGVtcHRzIHRvXG4gKiB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHRvIGtleWJvYXJkLCBidXQgaW4gZ2VuZXJhbCB0aGlzIHNlcnZpY2UncyBiZWhhdmlvciBpcyBsYXJnZWx5XG4gKiB1bmRlZmluZWQuXG4gKi9cbmNsYXNzIFNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB7XG4gIC8qKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eS4gKi9cbiAgcHVibGljIGdldCBtb3N0UmVjZW50TW9kYWxpdHkoKTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1vc3QgcmVjZW50IG1vZGFsaXR5IG11c3QgYmUgaW5pdGlhbGlzZWQgd2l0aCB0aGUgdmFsdWUgJ21vdXNlJyB0byBjb3ZlciB0aGUgY2FzZSB3aGVyZSBhbiBhY3Rpb24gaXNcbiAgICogcGVyZm9ybWVkIGJ1dCBubyBtb3VzZSBvciBrZXlib2FyZCBldmVudCBoYXMgeWV0IG9jY3VycmVkIG9uIHRoZSBwYWdlIChlLmcuIGBzYmItcG9wb3ZlcmAgd2l0aCBob3ZlciB0cmlnZ2VyKS5cbiAgICovXG4gIHByaXZhdGUgX21vc3RSZWNlbnRNb2RhbGl0eTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwgPSAnbW91c2UnO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eSBldmVudCB0YXJnZXQuIElzIG51bGwgaWYgbm8gaW5wdXQgbW9kYWxpdHkgaGFzIGJlZW5cbiAgICogZGV0ZWN0ZWQgb3IgaWYgdGhlIGFzc29jaWF0ZWQgZXZlbnQgdGFyZ2V0IGlzIG51bGwgZm9yIHNvbWUgdW5rbm93biByZWFzb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1vc3RSZWNlbnRUYXJnZXQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbW9zdFJlY2VudFRhcmdldDtcbiAgfVxuICBwcml2YXRlIF9tb3N0UmVjZW50VGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPcHRpb25zIGZvciB0aGlzIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgICAuLi5pbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zLFxuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZXN0YW1wIG9mIHRoZSBsYXN0IHRvdWNoIGlucHV0IG1vZGFsaXR5LiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIG1vdXNlZG93biBldmVudHNcbiAgICogc2hvdWxkIGJlIGF0dHJpYnV0ZWQgdG8gbW91c2Ugb3IgdG91Y2guXG4gICAqL1xuICBwcml2YXRlIF9sYXN0VG91Y2hNcyA9IDA7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb25Nb3VzZWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuX29uVG91Y2hzdGFydCwgbW9kYWxpdHlFdmVudExpc3RlbmVyT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdtb3VzZSc7XG4gICAgdGhpcy5fbW9zdFJlY2VudFRhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fbGFzdFRvdWNoTXMgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMga2V5ZG93biBldmVudHMuIE11c3QgYmUgYW4gYXJyb3cgZnVuY3Rpb24gaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGNvbnRleHQgd2hlbiBpdCBnZXRzXG4gICAqIGJvdW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgLy8gSWYgdGhpcyBpcyBvbmUgb2YgdGhlIGtleXMgd2Ugc2hvdWxkIGlnbm9yZSwgdGhlbiBpZ25vcmUgaXQgYW5kIGRvbid0IHVwZGF0ZSB0aGUgaW5wdXRcbiAgICAvLyBtb2RhbGl0eSB0byBrZXlib2FyZC5cbiAgICBpZiAodGhpcy5fb3B0aW9ucz8uaWdub3JlS2V5cz8uc29tZSgoa2V5Q29kZSkgPT4ga2V5Q29kZSA9PT0gZXZlbnQua2V5Q29kZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAna2V5Ym9hcmQnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbW91c2Vkb3duIGV2ZW50cy4gTXVzdCBiZSBhbiBhcnJvdyBmdW5jdGlvbiBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgY29udGV4dCB3aGVuIGl0XG4gICAqIGdldHMgYm91bmQuXG4gICAqL1xuICBwcml2YXRlIF9vbk1vdXNlZG93biA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFRvdWNoZXMgdHJpZ2dlciBib3RoIHRvdWNoIGFuZCBtb3VzZSBldmVudHMsIHNvIHdlIG5lZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtb3VzZSBldmVudHNcbiAgICAvLyB0aGF0IHdlcmUgdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC4gVG8gZG8gc28sIGNoZWNrIGlmIHRoZSBtb3VzZSBldmVudCBvY2N1cnMgY2xvc2VseVxuICAgIC8vIGFmdGVyIHRoZSBwcmV2aW91cyB0b3VjaCBldmVudC5cbiAgICBpZiAoRGF0ZS5ub3coKSAtIHRoaXMuX2xhc3RUb3VjaE1zIDwgdG91Y2hCdWZmZXJNcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEZha2UgbW91c2Vkb3duIGV2ZW50cyBhcmUgZmlyZWQgYnkgc29tZSBzY3JlZW4gcmVhZGVycyB3aGVuIGNvbnRyb2xzIGFyZSBhY3RpdmF0ZWQgYnkgdGhlXG4gICAgLy8gc2NyZWVuIHJlYWRlci4gQXR0cmlidXRlIHRoZW0gdG8ga2V5Ym9hcmQgaW5wdXQgbW9kYWxpdHkuXG4gICAgdGhpcy5fbW9zdFJlY2VudE1vZGFsaXR5ID0gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCkgPyAna2V5Ym9hcmQnIDogJ21vdXNlJztcbiAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRvdWNoc3RhcnQgZXZlbnRzLiBNdXN0IGJlIGFuIGFycm93IGZ1bmN0aW9uIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBjb250ZXh0IHdoZW4gaXRcbiAgICogZ2V0cyBib3VuZC5cbiAgICovXG4gIHByaXZhdGUgX29uVG91Y2hzdGFydCA9IChldmVudDogVG91Y2hFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFNhbWUgc2NlbmFyaW8gYXMgbWVudGlvbmVkIGluIF9vbk1vdXNlZG93biwgYnV0IG9uIHRvdWNoIHNjcmVlbiBkZXZpY2VzLCBmYWtlIHRvdWNoc3RhcnRcbiAgICAvLyBldmVudHMgYXJlIGZpcmVkLiBBZ2FpbiwgYXR0cmlidXRlIHRvIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LlxuICAgIGlmIChpc0Zha2VUb3VjaHN0YXJ0RnJvbVNjcmVlblJlYWRlcihldmVudCkpIHtcbiAgICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdrZXlib2FyZCc7XG4gICAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0b3JlIHRoZSB0aW1lc3RhbXAgb2YgdGhpcyB0b3VjaCBldmVudCwgYXMgaXQncyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbW91c2UgZXZlbnRzXG4gICAgLy8gdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC5cbiAgICB0aGlzLl9sYXN0VG91Y2hNcyA9IERhdGUubm93KCk7XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAndG91Y2gnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgPSBuZXcgU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yKCk7XG5cbi8vIFNldCB0aGUgaW5wdXQgbW9kYWxpdHkgaW4gb3JkZXIgdG8gYXZvaWQgc2hvd2luZyB0aGUgb3V0bGluZSBpbiBTYWZhcmkuXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIGlmICghZWxlbWVudFRvRm9jdXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtb3N0UmVjZW50TW9kYWxpdHkgPSBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5O1xuXG4gIC8vIFNldCBmb2N1cyBvcmlnaW4gdG8gZWxlbWVudCB3aGljaCBzaG91bGQgcmVjZWl2ZSBmb2N1c1xuICBpZiAoIShlbGVtZW50VG9Gb2N1cyAmJiBtb3N0UmVjZW50TW9kYWxpdHkgIT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgJ2ZvY3VzJyxcbiAgICAoKSA9PiB7XG4gICAgICBlbGVtZW50VG9Gb2N1cy5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtb3JpZ2luJywgbW9zdFJlY2VudE1vZGFsaXR5KTtcbiAgICAgIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4gZWxlbWVudFRvRm9jdXMucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLW9yaWdpbicpLFxuICAgICAgICB7XG4gICAgICAgICAgb25jZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSxcbiAgICB7IG9uY2U6IHRydWUgfSxcbiAgKTtcbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi9pbnB1dC1tb2RhbGl0eS1kZXRlY3Rvci5qcyc7XG5cbi8vIERldGVybWluZSB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBhIHZpc2libGUgZm9jdXMgd2l0aGluLlxuZXhwb3J0IGNsYXNzIFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNpbkhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nLFxuICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyxcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX2ZvY3Vzb3V0SGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nKTtcbiAgfTtcblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBoYXNHZW9tZXRyeShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAvLyBVc2UgbG9naWMgZnJvbSBqUXVlcnkgdG8gY2hlY2sgZm9yIGFuIGludmlzaWJsZSBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9oaWRkZW5WaXNpYmxlU2VsZWN0b3JzLmpzI0wxMlxuICByZXR1cm4gISEoXG4gICAgZWxlbWVudC5vZmZzZXRXaWR0aCB8fFxuICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8XG4gICAgKHR5cGVvZiBlbGVtZW50LmdldENsaWVudFJlY3RzID09PSAnZnVuY3Rpb24nICYmIGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXIgaW1wbGVtZW50cyBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciB7XG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyB2aXNpYmxlIGZvciB0aGUgcHVycG9zZXMgb2YgaW50ZXJhY3Rpdml0eS5cbiAgICpcbiAgICogVGhpcyB3aWxsIGNhcHR1cmUgc3RhdGVzIGxpa2UgYGRpc3BsYXk6IG5vbmVgIGFuZCBgdmlzaWJpbGl0eTogaGlkZGVuYCwgYnV0IG5vdCB0aGluZ3MgbGlrZVxuICAgKiBiZWluZyBjbGlwcGVkIGJ5IGFuIGBvdmVyZmxvdzogaGlkZGVuYCBwYXJlbnQgb3IgYmVpbmcgb3V0c2lkZSB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzR2VvbWV0cnkoZWxlbWVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS52aXNpYmlsaXR5ID09PSAndmlzaWJsZSc7XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXJNb2NrIGltcGxlbWVudHMgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8vIEZvciB1bml0IHRlc3RzIHdlIG5lZWQgdG8gcHJldGVuZCB0aGF0IGFuIGVsZW1lbnQgaXMgYWx3YXlzIHZpc2libGUuXG4vLyBUaGlzIGNhbiBiZSBkb25lIGJ5IGNoZWNraW5nIGlmIHZpc2liaWxpdHkgcHJvcGVydHkgaXMgc2V0IHRvIGVtcHR5LlxuZXhwb3J0IGNvbnN0IGludGVyYWN0aXZpdHlDaGVja2VyOiBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciA9XG4gIHR5cGVvZiBnZXRDb21wdXRlZFN0eWxlID09PSAndW5kZWZpbmVkJyB8fFxuICBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkudmlzaWJpbGl0eSA9PT0gJydcbiAgICA/IG5ldyBJbnRlcmFjdGl2aXR5Q2hlY2tlck1vY2soKVxuICAgIDogbmV3IEludGVyYWN0aXZpdHlDaGVja2VyKCk7XG4iLCJpbXBvcnQgeyBpbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJy4vaW50ZXJhY3Rpdml0eS1jaGVja2VyLmpzJztcblxuZXhwb3J0IGNvbnN0IElTX0ZPQ1VTQUJMRV9RVUVSWSA9IFtcbiAgJ2J1dHRvbicsXG4gICdbaHJlZl0nLFxuICAnaW5wdXQnLFxuICAnc2VsZWN0JyxcbiAgJ3RleHRhcmVhJyxcbiAgJ2RldGFpbHMnLFxuICAnc3VtbWFyeTpub3QoOmRpc2FibGVkKScsXG4gICdbdGFiaW5kZXhdJyxcbl1cbiAgLm1hcCgoc2VsZWN0b3IpID0+IGAke3NlbGVjdG9yfTpub3QoW2Rpc2FibGVkXSxbdGFiaW5kZXg9XCItMVwiXSxbaW5lcnRdKWApXG4gIC5jb25jYXQoJ1tkaXNhYmxlZF1bZGlzYWJsZWQtaW50ZXJhY3RpdmVdOm5vdChbaW5lcnRdLFt0YWJpbmRleD1cIi0xXCJdKScpXG4gIC5qb2luKCcsJyk7XG5cbi8vIE5vdGU6IHRoZSB1c2Ugb2YgdGhpcyBmdW5jdGlvbiBmb3IgbW9yZSBjb21wbGV4IHNjZW5hcmlvcyAod2l0aCBtYW55IG5lc3RlZCBlbGVtZW50cykgbWF5IGJlIGV4cGVuc2l2ZS5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2N1c2FibGVFbGVtZW50cyhcbiAgZWxlbWVudHM6IEhUTUxFbGVtZW50W10sXG4gIHByb3BlcnRpZXM/OiB7XG4gICAgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICBmaW5kRmlyc3RGb2N1c2FibGU/OiBib29sZWFuO1xuICAgIGluY2x1ZGVJbnZpc2libGVFbGVtZW50cz86IGJvb2xlYW47XG4gIH0sXG4pOiBIVE1MRWxlbWVudFtdIHtcbiAgY29uc3QgZm9jdXNhYmxlRWxzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcblxuICBmdW5jdGlvbiBnZXRGb2N1c2FibGVzKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLCBmaWx0ZXI/OiAoZWw6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBlbCBvZiBlbGVtZW50cykge1xuICAgICAgaWYgKGZpbHRlciAmJiAhZmlsdGVyKGVsKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsLm5vZGVOYW1lID09PSAnU0xPVCcpIHtcbiAgICAgICAgZ2V0Rm9jdXNhYmxlcyhcbiAgICAgICAgICBBcnJheS5mcm9tKChlbCBhcyBIVE1MU2xvdEVsZW1lbnQpLmFzc2lnbmVkRWxlbWVudHMoKSkgYXMgSFRNTEVsZW1lbnRbXSxcbiAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGVsLm1hdGNoZXMoSVNfRk9DVVNBQkxFX1FVRVJZKSAmJlxuICAgICAgICAocHJvcGVydGllcz8uaW5jbHVkZUludmlzaWJsZUVsZW1lbnRzID8/IGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCkpXG4gICAgICApIHtcbiAgICAgICAgZm9jdXNhYmxlRWxzLmFkZChlbCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wZXJ0aWVzPy5maW5kRmlyc3RGb2N1c2FibGUgJiYgZm9jdXNhYmxlRWxzLnNpemUgPiAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWwuY2hpbGRyZW4ubGVuZ3RoIHx8IGVsLnNoYWRvd1Jvb3Q/LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmZyb20oZWwuY2hpbGRyZW4pLmxlbmd0aFxuICAgICAgICAgID8gKEFycmF5LmZyb20oZWwuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W10pXG4gICAgICAgICAgOiAoQXJyYXkuZnJvbShlbC5zaGFkb3dSb290IS5jaGlsZHJlbikgYXMgSFRNTEVsZW1lbnRbXSk7XG4gICAgICAgIGdldEZvY3VzYWJsZXMoY2hpbGRyZW4sIGZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldEZvY3VzYWJsZXMoZWxlbWVudHMsIHByb3BlcnRpZXM/LmZpbHRlcik7XG5cbiAgcmV0dXJuIFsuLi5mb2N1c2FibGVFbHNdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KFxuICBlbGVtZW50czogSFRNTEVsZW1lbnRbXSxcbiAgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbixcbik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzID0gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoZWxlbWVudHMsIHtcbiAgICBmaWx0ZXIsXG4gICAgZmluZEZpcnN0Rm9jdXNhYmxlOiB0cnVlLFxuICB9KTtcbiAgcmV0dXJuIGZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCA/IGZvY3VzYWJsZUVsZW1lbnRzWzBdIDogbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFNiYkZvY3VzSGFuZGxlciB7XG4gIHByaXZhdGUgX2NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBlbGVtZW50IGluIHdoaWNoIHRoZSBmb2N1cyBzaG91bGQgYmUgdHJhcHBlZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSBvcHRpb25zLmZpbHRlciBmaWx0ZXIgZnVuY3Rpb24gd2hpY2ggaXMgYXBwbGllZCBkdXJpbmcgc2VhcmNoaW5nIGZvciBmb2N1c2FibGUgZWxlbWVudC4gSWYgYW4gZWxlbWVudCBpcyBmaWx0ZXJlZCwgYWxzbyBjaGlsZCBlbGVtZW50cyBhcmUgZmlsdGVyZWQuXG4gICAqIEBwYXJhbSBvcHRpb25zLnBvc3RGaWx0ZXIgZmlsdGVyIGZ1bmN0aW9uIHdoaWNoIGlzIGFwcGxpZWQgYWZ0ZXIgY29sbGVjdGluZyBmb2N1c2FibGUgZWxlbWVudHMuXG4gICAqL1xuICBwdWJsaWMgdHJhcChcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBvcHRpb25zPzoge1xuICAgICAgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICAgIHBvc3RGaWx0ZXI/OiAoZWw6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIH0sXG4gICk6IHZvaWQge1xuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIER5bmFtaWNhbGx5IGdldCBmaXJzdCBhbmQgbGFzdCBmb2N1c2FibGUgZWxlbWVudCwgYXMgdGhpcyBtaWdodCBoYXZlIGNoYW5nZWQgc2luY2Ugb3BlbmluZyBvdmVybGF5XG4gICAgICAgIGNvbnN0IGVsZW1lbnRDaGlsZHJlbjogSFRNTEVsZW1lbnRbXSA9IEFycmF5LmZyb20oXG4gICAgICAgICAgZWxlbWVudC5zaGFkb3dSb290IS5jaGlsZHJlbiB8fCBbXSxcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGdldEZvY3VzYWJsZUVsZW1lbnRzKGVsZW1lbnRDaGlsZHJlbiwge1xuICAgICAgICAgIGZpbHRlcjogb3B0aW9ucz8uZmlsdGVyLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50cyA9IGZvY3VzYWJsZUVsZW1lbnRzLmZpbHRlcihcbiAgICAgICAgICBvcHRpb25zPy5wb3N0RmlsdGVyID8/ICgoKSA9PiB0cnVlKSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWZpbHRlcmVkRm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGUgPSBmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlID0gZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50c1tcbiAgICAgICAgICBmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDFcbiAgICAgICAgXSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICBjb25zdCBbcGl2b3QsIG5leHRdID0gZXZlbnQuc2hpZnRLZXlcbiAgICAgICAgICA/IFtmaXJzdEZvY3VzYWJsZSwgbGFzdEZvY3VzYWJsZV1cbiAgICAgICAgICA6IFtsYXN0Rm9jdXNhYmxlLCBmaXJzdEZvY3VzYWJsZV07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIChmaXJzdEZvY3VzYWJsZS5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuYWN0aXZlRWxlbWVudCA9PT0gcGl2b3QgfHxcbiAgICAgICAgICAobGFzdEZvY3VzYWJsZS5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuYWN0aXZlRWxlbWVudCA9PT0gcGl2b3RcbiAgICAgICAgKSB7XG4gICAgICAgICAgbmV4dC5mb2N1cygpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fY29udHJvbGxlci5zaWduYWwgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgdGhpcy5fY29udHJvbGxlci5hYm9ydCgpO1xuICAgIHRoaXMuX2NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJlbGVtZW50cyJdLCJtYXBwaW5ncyI6Ijs7QUFLQSxTQUFTLHFCQUFzQztBQUM3QyxNQUFJLFNBQVMsZ0JBQWdCLFFBQVEsV0FBVyxHQUFHO0FBQ2pELFdBQU8sRUFBRSxTQUFTLGNBQWMsU0FBUyxZQUFZO0FBQUEsRUFBQSxPQUNoRDtBQUNMLFdBQU8sRUFBRSxTQUFTLGFBQWEsU0FBUyxhQUFhO0FBQUEsRUFDdkQ7QUFDRjtBQU1PLFNBQVMsa0JBQWtCLE9BQStCO0FBQ3hELFNBQUEsQ0FBQyxjQUFjLGFBQWEsV0FBVyxXQUFXLEVBQUUsU0FBUyxNQUFNLEdBQUc7QUFDL0U7QUFNTyxTQUFTLDBCQUEwQixPQUErQjtBQUN2RSxTQUFPLE1BQU0sUUFBUSxhQUFhLE1BQU0sUUFBUSxtQkFBcUIsRUFBQTtBQUN2RTtBQU1PLFNBQVMsc0JBQXNCLE9BQStCO0FBQ25FLFNBQU8sTUFBTSxRQUFRLGVBQWUsTUFBTSxRQUFRLG1CQUFxQixFQUFBO0FBQ3pFO0FBTU8sU0FBUyw0QkFBNEIsT0FBK0I7QUFDbEUsU0FBQSxrQkFBa0IsS0FBSyxLQUFLLENBQUMsVUFBVSxZQUFZLFFBQVEsS0FBSyxFQUFFLFNBQVMsTUFBTSxHQUFHO0FBQzdGO0FBUUEsU0FBUyxxQkFBcUIsY0FBc0IsVUFBa0IsUUFBd0I7QUFDcEYsVUFBQSxlQUFlLFNBQVMsWUFBWTtBQUM5QztBQUVBLFNBQVMsYUFBYSxNQUFzQjtBQUMxQyxTQUFPLE9BQU87QUFDaEI7QUFFQSxNQUFNLGFBQWE7QUFZSCxTQUFBLG9CQUFvQixPQUFzQixTQUFpQixNQUFzQjtBQUMvRixRQUFNLEVBQUUsU0FBUyxRQUFRLElBQUksbUJBQW1CO0FBRWhE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
272
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYTExeS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9hcnJvdy1uYXZpZ2F0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvaW5wdXQtbW9kYWxpdHktZGV0ZWN0b3IudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ZvY3VzLXZpc2libGUtd2l0aGluLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvZm9jdXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIFByZXZBbmROZXh0S2V5cyB7XG4gIHByZXZLZXk6IHN0cmluZztcbiAgbmV4dEtleTogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRQcmV2QW5kTmV4dEtleXMoKTogUHJldkFuZE5leHRLZXlzIHtcbiAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5tYXRjaGVzKCc6ZGlyKHJ0bCknKSkge1xuICAgIHJldHVybiB7IHByZXZLZXk6ICdBcnJvd1JpZ2h0JywgbmV4dEtleTogJ0Fycm93TGVmdCcgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBwcmV2S2V5OiAnQXJyb3dMZWZ0JywgbmV4dEtleTogJ0Fycm93UmlnaHQnIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUga2V5IHByZXNzZWQgaXMgYW1vbmcgdGhvc2UgYWxsb3dlZCBmb3IgbmF2aWdhdGlvbi5cbiAqIEBwYXJhbSBldmVudCBUaGUga2V5Ym9hcmQgZXZlbnQgdG8gY2hlY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gWydBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIHNob3VsZCBtb3ZlIHRoZSBuYXZpZ2F0aW9uIHRvIHRoZSBuZXh0IGVsZW1lbnQuXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcmV2aW91c0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSBnZXRQcmV2QW5kTmV4dEtleXMoKS5wcmV2S2V5O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBrZXkgcHJlc3NlZCBzaG91bGQgbW92ZSB0aGUgbmF2aWdhdGlvbiB0byB0aGUgbmV4dCBlbGVtZW50LlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dEFycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09IGdldFByZXZBbmROZXh0S2V5cygpLm5leHRLZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIGlzIGFtb25nIHRob3NlIGFsbG93ZWQgZm9yIG5hdmlnYXRpb24uXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0Fycm93S2V5UHJlc3NlZChldmVudCkgfHwgWydQYWdlVXAnLCAnUGFnZURvd24nLCAnSG9tZScsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgaW5kZXggb2YgdGhlIG5leHQgZWxlbWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gb2Zmc2V0LlxuICogQHBhcmFtIGN1cnJlbnRJbmRleCBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAqIEBwYXJhbSBtYXhJbmRleCBUaGUgbWF4aW11bSBwZXJtaXR0ZWQgdmFsdWUgKGUuZy4gYXJyYXkgc2l6ZSkuXG4gKiBAcGFyYW0gb2Zmc2V0IFRoZSBhbW91bnQgdG8gbW92ZSBieS5cbiAqL1xuZnVuY3Rpb24gY2FsY05leHRJbmRleEluUmFuZ2UoY3VycmVudEluZGV4OiBudW1iZXIsIG1heEluZGV4OiBudW1iZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIChjdXJyZW50SW5kZXggKyBvZmZzZXQgKyBtYXhJbmRleCkgJSBtYXhJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdEluZGV4KHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplIC0gMTtcbn1cblxuY29uc3QgZmlyc3RJbmRleCA9IDA7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gbW92ZSB0bywgYmFzZWQgb24gdGhlIGtleWJvYXJkIGlucHV0LCB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0IGFuZCB0aGUgbGlzdCBzaXplLlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqIEBwYXJhbSBjdXJyZW50IFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0LlxuICogQHBhcmFtIHNpemUgVGhlIHNpemUgb2YgdGhlIGxpc3QuXG4gKiBAcmV0dXJucyBpZiBpdCBpcyBhICdwcmV2aW91cycgZXZlbnQsIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBwcmV2aW91cyBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9uZSBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHRoZSBmaXJzdCBpbiB0aGUgbGlzdDtcbiAqIGlmIGl0IGlzIGEgJ25leHQnIGV2ZW50LCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvbmUsIGlmIHRoZSBjdXJyZW50IGlzIHRoZSBsYXN0IGluIHRoZSBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dEVsZW1lbnRJbmRleChldmVudDogS2V5Ym9hcmRFdmVudCwgY3VycmVudDogbnVtYmVyLCBzaXplOiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCB7IHByZXZLZXksIG5leHRLZXkgfSA9IGdldFByZXZBbmROZXh0S2V5cygpO1xuXG4gIGlmIChldmVudC5rZXkgPT09IHByZXZLZXkgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICByZXR1cm4gY3VycmVudCA8IGZpcnN0SW5kZXggPyBnZXRMYXN0SW5kZXgoc2l6ZSkgOiBjYWxjTmV4dEluZGV4SW5SYW5nZShjdXJyZW50LCBzaXplLCAtMSk7XG4gIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBuZXh0S2V5IHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICByZXR1cm4gY3VycmVudCA+PSBzaXplID8gZmlyc3RJbmRleCA6IGNhbGNOZXh0SW5kZXhJblJhbmdlKGN1cnJlbnQsIHNpemUsIDEpO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuIiwiLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9jZGsvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50c1xuXG4vKiogR2V0cyB3aGV0aGVyIGFuIGV2ZW50IGNvdWxkIGJlIGEgZmFrZWQgYG1vdXNlZG93bmAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAvLyBTb21lIHNjcmVlbiByZWFkZXJzIHdpbGwgZGlzcGF0Y2ggYSBmYWtlIGBtb3VzZWRvd25gIGV2ZW50IHdoZW4gcHJlc3NpbmcgZW50ZXIgb3Igc3BhY2Ugb25cbiAgLy8gYSBjbGlja2FibGUgZWxlbWVudC4gV2UgY2FuIGRpc3Rpbmd1aXNoIHRoZXNlIGV2ZW50cyB3aGVuIGBldmVudC5idXR0b25zYCBpcyB6ZXJvLCBvclxuICAvLyBgZXZlbnQuZGV0YWlsYCBpcyB6ZXJvIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcjpcbiAgLy8gLSBgZXZlbnQuYnV0dG9uc2Agd29ya3Mgb24gRmlyZWZveCwgYnV0IGZhaWxzIG9uIENocm9tZS5cbiAgLy8gLSBgZGV0YWlsYCB3b3JrcyBvbiBDaHJvbWUsIGJ1dCBmYWlscyBvbiBGaXJlZm94LlxuICByZXR1cm4gZXZlbnQuYnV0dG9ucyA9PT0gMCB8fCBldmVudC5kZXRhaWwgPT09IDA7XG59XG5cbi8qKiBHZXRzIHdoZXRoZXIgYW4gZXZlbnQgY291bGQgYmUgYSBmYWtlZCBgdG91Y2hzdGFydGAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlVG91Y2hzdGFydEZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IFRvdWNoRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgdG91Y2g6IFRvdWNoIHwgdW5kZWZpbmVkID1cbiAgICAoZXZlbnQudG91Y2hlcyAmJiBldmVudC50b3VjaGVzWzBdKSB8fCAoZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pO1xuXG4gIC8vIEEgZmFrZSBgdG91Y2hzdGFydGAgY2FuIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbSBhIHJlYWwgb25lIGJ5IGxvb2tpbmcgYXQgdGhlIGBpZGVudGlmaWVyYFxuICAvLyB3aGljaCBpcyB0eXBpY2FsbHkgPj0gMCBvbiBhIHJlYWwgZGV2aWNlIHZlcnN1cyAtMSBmcm9tIGEgc2NyZWVuIHJlYWRlci4gSnVzdCB0byBiZSBzYWZlLFxuICAvLyB3ZSBjYW4gYWxzbyBsb29rIGF0IGByYWRpdXNYYCBhbmQgYHJhZGl1c1lgLiBUaGlzIGJlaGF2aW9yIHdhcyBvYnNlcnZlZCBhZ2FpbnN0IGEgV2luZG93cyAxMFxuICAvLyBkZXZpY2Ugd2l0aCBhIHRvdWNoIHNjcmVlbiBydW5uaW5nIE5WREEgdjIwMjAuNCBhbmQgRmlyZWZveCA4NSBvciBDaHJvbWUgODguXG4gIHJldHVybiAoXG4gICAgISF0b3VjaCAmJlxuICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgKHRvdWNoLnJhZGl1c1ggPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNYID09PSAxKSAmJlxuICAgICh0b3VjaC5yYWRpdXNZID09IG51bGwgfHwgdG91Y2gucmFkaXVzWSA9PT0gMSlcbiAgKTtcbn1cbiIsIi8vIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL2Nkay9hMTF5L2lucHV0LW1vZGFsaXR5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzXG5cbmltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgZ2V0RXZlbnRUYXJnZXQgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB7XG4gIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIsXG4gIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyLFxufSBmcm9tICcuL2Zha2UtZXZlbnQtZGV0ZWN0aW9uLmpzJztcblxuZXhwb3J0IHR5cGUgU2JiSW5wdXRNb2RhbGl0eSA9ICd0b3VjaCcgfCAnbW91c2UnIHwgJ2tleWJvYXJkJyB8ICdwcm9ncmFtJyB8IG51bGw7XG5cbi8qKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgdGhlIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbmludGVyZmFjZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zIHtcbiAgLyoqIEtleXMgdG8gaWdub3JlIHdoZW4gZGV0ZWN0aW5nIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LiAqL1xuICBpZ25vcmVLZXlzPzogbnVtYmVyW107XG59XG5cbmNvbnN0IFNISUZUID0gMTY7XG5jb25zdCBDT05UUk9MID0gMTc7XG5jb25zdCBBTFQgPSAxODtcbmNvbnN0IE1FVEEgPSA5MTsgLy8gV0lOX0tFWV9MRUZUXG5jb25zdCBNQUNfTUVUQSA9IDIyNDtcblxuLyoqXG4gKiBEZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IuXG4gKlxuICogTW9kaWZpZXIga2V5cyBhcmUgaWdub3JlZCBieSBkZWZhdWx0IChpLmUuIHdoZW4gcHJlc3NlZCB3b24ndCBjYXVzZSB0aGUgc2VydmljZSB0byBkZXRlY3RcbiAqIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5KSBmb3IgdHdvIHJlYXNvbnM6XG4gKlxuICogMS4gTW9kaWZpZXIga2V5cyBhcmUgY29tbW9ubHkgdXNlZCB3aXRoIG1vdXNlIHRvIHBlcmZvcm0gYWN0aW9ucyBzdWNoIGFzICdyaWdodCBjbGljaycgb3IgJ29wZW5cbiAqICAgIGluIG5ldyB0YWInLCBhbmQgYXJlIHRodXMgbGVzcyByZXByZXNlbnRhdGl2ZSBvZiBhY3R1YWwga2V5Ym9hcmQgaW50ZXJhY3Rpb24uXG4gKiAyLiBWb2ljZU92ZXIgdHJpZ2dlcnMgc29tZSBrZXlib2FyZCBldmVudHMgd2hlbiBsaW5lYXJseSBuYXZpZ2F0aW5nIHdpdGggQ29udHJvbCArIE9wdGlvbiAoYnV0XG4gKiAgICBjb25mdXNpbmdseSBub3Qgd2l0aCBDYXBzIExvY2spLiBUaHVzLCB0byBoYXZlIHBhcml0eSB3aXRoIG90aGVyIHNjcmVlbiByZWFkZXJzLCB3ZSBpZ25vcmVcbiAqICAgIHRoZXNlIGtleXMgc28sIGFzIHRvIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkbyBub3QgYnkgZGVmYXVsdCBpZ25vcmUgdGhlIHJpZ2h0IE1ldGEga2V5IG9uIFNhZmFyaSBiZWNhdXNlIGl0IGhhcyB0aGUgc2FtZSBrZXlcbiAqIGNvZGUgYXMgdGhlIENvbnRleHRNZW51IGtleSBvbiBvdGhlciBicm93c2Vycy4gV2hlbiB3ZSBzd2l0Y2ggdG8gdXNpbmcgZXZlbnQua2V5LCB3ZSBjYW5cbiAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3by5cbiAqL1xuY29uc3QgaW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgaWdub3JlS2V5czogW0FMVCwgQ09OVFJPTCwgTUFDX01FVEEsIE1FVEEsIFNISUZUXSxcbn07XG5cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lIG5lZWRlZCB0byBwYXNzIGFmdGVyIGEgdG91Y2hzdGFydCBldmVudCBpbiBvcmRlciBmb3IgYSBzdWJzZXF1ZW50IG1vdXNlZG93blxuICogZXZlbnQgdG8gYmUgYXR0cmlidXRlZCBhcyBtb3VzZSBhbmQgbm90IHRvdWNoLlxuICpcbiAqIFRocm91Z2ggdHJpYWwgYW5kIGVycm9yIGl0IHdhcyBmb3VuZCB0aGF0IGEgdmFsdWUgb2YgYXJvdW5kIDY1MG1zIHNlZW1zIGFwcHJvcHJpYXRlLlxuICovXG5jb25zdCB0b3VjaEJ1ZmZlck1zID0gNjUwO1xuXG4vKipcbiAqIEV2ZW50IGxpc3RlbmVyIG9wdGlvbnMgdGhhdCBlbmFibGUgY2FwdHVyaW5nIGFuZCBhbHNvIG1hcmsgdGhlIGxpc3RlbmVyIGFzIHBhc3NpdmUgaWYgdGhlIGJyb3dzZXJcbiAqIHN1cHBvcnRzIGl0LlxuICovXG5jb25zdCBtb2RhbGl0eUV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICBwYXNzaXZlOiB0cnVlLFxuICBjYXB0dXJlOiB0cnVlLFxufTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgZGV0ZWN0cyB0aGUgdXNlcidzIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIFRoaXMgc2VydmljZSBkb2VzIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHdoZW4gYSB1c2VyIG5hdmlnYXRlcyB3aXRoIGEgc2NyZWVuIHJlYWRlclxuICogKGUuZy4gbGluZWFyIG5hdmlnYXRpb24gd2l0aCBWb2ljZU92ZXIsIG9iamVjdCBuYXZpZ2F0aW9uIC8gYnJvd3NlIG1vZGUgd2l0aCBOVkRBLCB2aXJ0dWFsIFBDXG4gKiBjdXJzb3IgbW9kZSB3aXRoIEpBV1MpLiBUaGlzIGlzIGluIHBhcnQgZHVlIHRvIHRlY2huaWNhbCBsaW1pdGF0aW9ucyAoaS5lLiBrZXlib2FyZCBldmVudHMgZG8gbm90XG4gKiBmaXJlIGFzIGV4cGVjdGVkIGluIHRoZXNlIG1vZGVzKSBidXQgaXMgYWxzbyBhcmd1YWJseSB0aGUgY29ycmVjdCBiZWhhdmlvci4gTmF2aWdhdGluZyB3aXRoIGFcbiAqIHNjcmVlbiByZWFkZXIgaXMgYWtpbiB0byB2aXN1YWxseSBzY2FubmluZyBhIHBhZ2UsIGFuZCBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFzIGFjdHVhbCB1c2VyXG4gKiBpbnB1dCBpbnRlcmFjdGlvbi5cbiAqXG4gKiBXaGVuIGEgdXNlciBpcyBub3QgbmF2aWdhdGluZyBidXQgKmludGVyYWN0aW5nKiB3aXRoIGEgc2NyZWVuIHJlYWRlciwgdGhpcyBzZXJ2aWNlIGF0dGVtcHRzIHRvXG4gKiB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHRvIGtleWJvYXJkLCBidXQgaW4gZ2VuZXJhbCB0aGlzIHNlcnZpY2UncyBiZWhhdmlvciBpcyBsYXJnZWx5XG4gKiB1bmRlZmluZWQuXG4gKi9cbmNsYXNzIFNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB7XG4gIC8qKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eS4gKi9cbiAgcHVibGljIGdldCBtb3N0UmVjZW50TW9kYWxpdHkoKTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1vc3QgcmVjZW50IG1vZGFsaXR5IG11c3QgYmUgaW5pdGlhbGlzZWQgd2l0aCB0aGUgdmFsdWUgJ21vdXNlJyB0byBjb3ZlciB0aGUgY2FzZSB3aGVyZSBhbiBhY3Rpb24gaXNcbiAgICogcGVyZm9ybWVkIGJ1dCBubyBtb3VzZSBvciBrZXlib2FyZCBldmVudCBoYXMgeWV0IG9jY3VycmVkIG9uIHRoZSBwYWdlIChlLmcuIGBzYmItcG9wb3ZlcmAgd2l0aCBob3ZlciB0cmlnZ2VyKS5cbiAgICovXG4gIHByaXZhdGUgX21vc3RSZWNlbnRNb2RhbGl0eTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwgPSAnbW91c2UnO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eSBldmVudCB0YXJnZXQuIElzIG51bGwgaWYgbm8gaW5wdXQgbW9kYWxpdHkgaGFzIGJlZW5cbiAgICogZGV0ZWN0ZWQgb3IgaWYgdGhlIGFzc29jaWF0ZWQgZXZlbnQgdGFyZ2V0IGlzIG51bGwgZm9yIHNvbWUgdW5rbm93biByZWFzb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1vc3RSZWNlbnRUYXJnZXQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbW9zdFJlY2VudFRhcmdldDtcbiAgfVxuICBwcml2YXRlIF9tb3N0UmVjZW50VGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPcHRpb25zIGZvciB0aGlzIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgICAuLi5pbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zLFxuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZXN0YW1wIG9mIHRoZSBsYXN0IHRvdWNoIGlucHV0IG1vZGFsaXR5LiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIG1vdXNlZG93biBldmVudHNcbiAgICogc2hvdWxkIGJlIGF0dHJpYnV0ZWQgdG8gbW91c2Ugb3IgdG91Y2guXG4gICAqL1xuICBwcml2YXRlIF9sYXN0VG91Y2hNcyA9IDA7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb25Nb3VzZWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuX29uVG91Y2hzdGFydCwgbW9kYWxpdHlFdmVudExpc3RlbmVyT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdtb3VzZSc7XG4gICAgdGhpcy5fbW9zdFJlY2VudFRhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fbGFzdFRvdWNoTXMgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMga2V5ZG93biBldmVudHMuIE11c3QgYmUgYW4gYXJyb3cgZnVuY3Rpb24gaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGNvbnRleHQgd2hlbiBpdCBnZXRzXG4gICAqIGJvdW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgLy8gSWYgdGhpcyBpcyBvbmUgb2YgdGhlIGtleXMgd2Ugc2hvdWxkIGlnbm9yZSwgdGhlbiBpZ25vcmUgaXQgYW5kIGRvbid0IHVwZGF0ZSB0aGUgaW5wdXRcbiAgICAvLyBtb2RhbGl0eSB0byBrZXlib2FyZC5cbiAgICBpZiAodGhpcy5fb3B0aW9ucz8uaWdub3JlS2V5cz8uc29tZSgoa2V5Q29kZSkgPT4ga2V5Q29kZSA9PT0gZXZlbnQua2V5Q29kZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAna2V5Ym9hcmQnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbW91c2Vkb3duIGV2ZW50cy4gTXVzdCBiZSBhbiBhcnJvdyBmdW5jdGlvbiBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgY29udGV4dCB3aGVuIGl0XG4gICAqIGdldHMgYm91bmQuXG4gICAqL1xuICBwcml2YXRlIF9vbk1vdXNlZG93biA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFRvdWNoZXMgdHJpZ2dlciBib3RoIHRvdWNoIGFuZCBtb3VzZSBldmVudHMsIHNvIHdlIG5lZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtb3VzZSBldmVudHNcbiAgICAvLyB0aGF0IHdlcmUgdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC4gVG8gZG8gc28sIGNoZWNrIGlmIHRoZSBtb3VzZSBldmVudCBvY2N1cnMgY2xvc2VseVxuICAgIC8vIGFmdGVyIHRoZSBwcmV2aW91cyB0b3VjaCBldmVudC5cbiAgICBpZiAoRGF0ZS5ub3coKSAtIHRoaXMuX2xhc3RUb3VjaE1zIDwgdG91Y2hCdWZmZXJNcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEZha2UgbW91c2Vkb3duIGV2ZW50cyBhcmUgZmlyZWQgYnkgc29tZSBzY3JlZW4gcmVhZGVycyB3aGVuIGNvbnRyb2xzIGFyZSBhY3RpdmF0ZWQgYnkgdGhlXG4gICAgLy8gc2NyZWVuIHJlYWRlci4gQXR0cmlidXRlIHRoZW0gdG8ga2V5Ym9hcmQgaW5wdXQgbW9kYWxpdHkuXG4gICAgdGhpcy5fbW9zdFJlY2VudE1vZGFsaXR5ID0gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCkgPyAna2V5Ym9hcmQnIDogJ21vdXNlJztcbiAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRvdWNoc3RhcnQgZXZlbnRzLiBNdXN0IGJlIGFuIGFycm93IGZ1bmN0aW9uIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBjb250ZXh0IHdoZW4gaXRcbiAgICogZ2V0cyBib3VuZC5cbiAgICovXG4gIHByaXZhdGUgX29uVG91Y2hzdGFydCA9IChldmVudDogVG91Y2hFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFNhbWUgc2NlbmFyaW8gYXMgbWVudGlvbmVkIGluIF9vbk1vdXNlZG93biwgYnV0IG9uIHRvdWNoIHNjcmVlbiBkZXZpY2VzLCBmYWtlIHRvdWNoc3RhcnRcbiAgICAvLyBldmVudHMgYXJlIGZpcmVkLiBBZ2FpbiwgYXR0cmlidXRlIHRvIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LlxuICAgIGlmIChpc0Zha2VUb3VjaHN0YXJ0RnJvbVNjcmVlblJlYWRlcihldmVudCkpIHtcbiAgICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdrZXlib2FyZCc7XG4gICAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0b3JlIHRoZSB0aW1lc3RhbXAgb2YgdGhpcyB0b3VjaCBldmVudCwgYXMgaXQncyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbW91c2UgZXZlbnRzXG4gICAgLy8gdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC5cbiAgICB0aGlzLl9sYXN0VG91Y2hNcyA9IERhdGUubm93KCk7XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAndG91Y2gnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgPSBuZXcgU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yKCk7XG5cbi8vIFNldCB0aGUgaW5wdXQgbW9kYWxpdHkgaW4gb3JkZXIgdG8gYXZvaWQgc2hvd2luZyB0aGUgb3V0bGluZSBpbiBTYWZhcmkuXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIGlmICghZWxlbWVudFRvRm9jdXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtb3N0UmVjZW50TW9kYWxpdHkgPSBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5O1xuXG4gIC8vIFNldCBmb2N1cyBvcmlnaW4gdG8gZWxlbWVudCB3aGljaCBzaG91bGQgcmVjZWl2ZSBmb2N1c1xuICBpZiAoIShlbGVtZW50VG9Gb2N1cyAmJiBtb3N0UmVjZW50TW9kYWxpdHkgIT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgJ2ZvY3VzJyxcbiAgICAoKSA9PiB7XG4gICAgICBlbGVtZW50VG9Gb2N1cy5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtb3JpZ2luJywgbW9zdFJlY2VudE1vZGFsaXR5KTtcbiAgICAgIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4gZWxlbWVudFRvRm9jdXMucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLW9yaWdpbicpLFxuICAgICAgICB7XG4gICAgICAgICAgb25jZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSxcbiAgICB7IG9uY2U6IHRydWUgfSxcbiAgKTtcbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi9pbnB1dC1tb2RhbGl0eS1kZXRlY3Rvci5qcyc7XG5cbi8vIERldGVybWluZSB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBhIHZpc2libGUgZm9jdXMgd2l0aGluLlxuZXhwb3J0IGNsYXNzIFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNpbkhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nLFxuICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyxcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX2ZvY3Vzb3V0SGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nKTtcbiAgfTtcblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBoYXNHZW9tZXRyeShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAvLyBVc2UgbG9naWMgZnJvbSBqUXVlcnkgdG8gY2hlY2sgZm9yIGFuIGludmlzaWJsZSBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9oaWRkZW5WaXNpYmxlU2VsZWN0b3JzLmpzI0wxMlxuICByZXR1cm4gISEoXG4gICAgZWxlbWVudC5vZmZzZXRXaWR0aCB8fFxuICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8XG4gICAgKHR5cGVvZiBlbGVtZW50LmdldENsaWVudFJlY3RzID09PSAnZnVuY3Rpb24nICYmIGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXIgaW1wbGVtZW50cyBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciB7XG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyB2aXNpYmxlIGZvciB0aGUgcHVycG9zZXMgb2YgaW50ZXJhY3Rpdml0eS5cbiAgICpcbiAgICogVGhpcyB3aWxsIGNhcHR1cmUgc3RhdGVzIGxpa2UgYGRpc3BsYXk6IG5vbmVgIGFuZCBgdmlzaWJpbGl0eTogaGlkZGVuYCwgYnV0IG5vdCB0aGluZ3MgbGlrZVxuICAgKiBiZWluZyBjbGlwcGVkIGJ5IGFuIGBvdmVyZmxvdzogaGlkZGVuYCBwYXJlbnQgb3IgYmVpbmcgb3V0c2lkZSB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzR2VvbWV0cnkoZWxlbWVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS52aXNpYmlsaXR5ID09PSAndmlzaWJsZSc7XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXJNb2NrIGltcGxlbWVudHMgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8vIEZvciB1bml0IHRlc3RzIHdlIG5lZWQgdG8gcHJldGVuZCB0aGF0IGFuIGVsZW1lbnQgaXMgYWx3YXlzIHZpc2libGUuXG4vLyBUaGlzIGNhbiBiZSBkb25lIGJ5IGNoZWNraW5nIGlmIHZpc2liaWxpdHkgcHJvcGVydHkgaXMgc2V0IHRvIGVtcHR5LlxuZXhwb3J0IGNvbnN0IGludGVyYWN0aXZpdHlDaGVja2VyOiBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciA9XG4gIHR5cGVvZiBnZXRDb21wdXRlZFN0eWxlID09PSAndW5kZWZpbmVkJyB8fFxuICBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkudmlzaWJpbGl0eSA9PT0gJydcbiAgICA/IG5ldyBJbnRlcmFjdGl2aXR5Q2hlY2tlck1vY2soKVxuICAgIDogbmV3IEludGVyYWN0aXZpdHlDaGVja2VyKCk7XG4iLCJpbXBvcnQgeyBpbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJy4vaW50ZXJhY3Rpdml0eS1jaGVja2VyLmpzJztcblxuZXhwb3J0IGNvbnN0IElTX0ZPQ1VTQUJMRV9RVUVSWSA9IFtcbiAgJ2J1dHRvbicsXG4gICdbaHJlZl0nLFxuICAnaW5wdXQnLFxuICAnc2VsZWN0JyxcbiAgJ3RleHRhcmVhJyxcbiAgJ2RldGFpbHMnLFxuICAnc3VtbWFyeTpub3QoOmRpc2FibGVkKScsXG4gICdbdGFiaW5kZXhdJyxcbl1cbiAgLm1hcCgoc2VsZWN0b3IpID0+IGAke3NlbGVjdG9yfTpub3QoW2Rpc2FibGVkXSxbdGFiaW5kZXg9XCItMVwiXSxbaW5lcnRdKWApXG4gIC5jb25jYXQoJ1tkaXNhYmxlZF1bZGlzYWJsZWQtaW50ZXJhY3RpdmVdOm5vdChbaW5lcnRdLFt0YWJpbmRleD1cIi0xXCJdKScpXG4gIC5qb2luKCcsJyk7XG5cbi8vIE5vdGU6IHRoZSB1c2Ugb2YgdGhpcyBmdW5jdGlvbiBmb3IgbW9yZSBjb21wbGV4IHNjZW5hcmlvcyAod2l0aCBtYW55IG5lc3RlZCBlbGVtZW50cykgbWF5IGJlIGV4cGVuc2l2ZS5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2N1c2FibGVFbGVtZW50cyhcbiAgZWxlbWVudHM6IEhUTUxFbGVtZW50W10sXG4gIHByb3BlcnRpZXM/OiB7XG4gICAgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICBmaW5kRmlyc3RGb2N1c2FibGU/OiBib29sZWFuO1xuICAgIGluY2x1ZGVJbnZpc2libGVFbGVtZW50cz86IGJvb2xlYW47XG4gIH0sXG4pOiBIVE1MRWxlbWVudFtdIHtcbiAgY29uc3QgZm9jdXNhYmxlRWxzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcblxuICBmdW5jdGlvbiBnZXRGb2N1c2FibGVzKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLCBmaWx0ZXI/OiAoZWw6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBlbCBvZiBlbGVtZW50cykge1xuICAgICAgaWYgKGZpbHRlciAmJiAhZmlsdGVyKGVsKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsLm5vZGVOYW1lID09PSAnU0xPVCcpIHtcbiAgICAgICAgZ2V0Rm9jdXNhYmxlcyhcbiAgICAgICAgICBBcnJheS5mcm9tKChlbCBhcyBIVE1MU2xvdEVsZW1lbnQpLmFzc2lnbmVkRWxlbWVudHMoKSkgYXMgSFRNTEVsZW1lbnRbXSxcbiAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGVsLm1hdGNoZXMoSVNfRk9DVVNBQkxFX1FVRVJZKSAmJlxuICAgICAgICAocHJvcGVydGllcz8uaW5jbHVkZUludmlzaWJsZUVsZW1lbnRzID8/IGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCkpXG4gICAgICApIHtcbiAgICAgICAgZm9jdXNhYmxlRWxzLmFkZChlbCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wZXJ0aWVzPy5maW5kRmlyc3RGb2N1c2FibGUgJiYgZm9jdXNhYmxlRWxzLnNpemUgPiAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWwuY2hpbGRyZW4ubGVuZ3RoIHx8IGVsLnNoYWRvd1Jvb3Q/LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmZyb20oZWwuY2hpbGRyZW4pLmxlbmd0aFxuICAgICAgICAgID8gKEFycmF5LmZyb20oZWwuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W10pXG4gICAgICAgICAgOiAoQXJyYXkuZnJvbShlbC5zaGFkb3dSb290IS5jaGlsZHJlbikgYXMgSFRNTEVsZW1lbnRbXSk7XG4gICAgICAgIGdldEZvY3VzYWJsZXMoY2hpbGRyZW4sIGZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldEZvY3VzYWJsZXMoZWxlbWVudHMsIHByb3BlcnRpZXM/LmZpbHRlcik7XG5cbiAgcmV0dXJuIFsuLi5mb2N1c2FibGVFbHNdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KFxuICBlbGVtZW50czogSFRNTEVsZW1lbnRbXSxcbiAgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbixcbik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzID0gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoZWxlbWVudHMsIHtcbiAgICBmaWx0ZXIsXG4gICAgZmluZEZpcnN0Rm9jdXNhYmxlOiB0cnVlLFxuICB9KTtcbiAgcmV0dXJuIGZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCA/IGZvY3VzYWJsZUVsZW1lbnRzWzBdIDogbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFNiYkZvY3VzSGFuZGxlciB7XG4gIHByaXZhdGUgX2NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBlbGVtZW50IGluIHdoaWNoIHRoZSBmb2N1cyBzaG91bGQgYmUgdHJhcHBlZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSBvcHRpb25zLmZpbHRlciBmaWx0ZXIgZnVuY3Rpb24gd2hpY2ggaXMgYXBwbGllZCBkdXJpbmcgc2VhcmNoaW5nIGZvciBmb2N1c2FibGUgZWxlbWVudC4gSWYgYW4gZWxlbWVudCBpcyBmaWx0ZXJlZCwgYWxzbyBjaGlsZCBlbGVtZW50cyBhcmUgZmlsdGVyZWQuXG4gICAqIEBwYXJhbSBvcHRpb25zLnBvc3RGaWx0ZXIgZmlsdGVyIGZ1bmN0aW9uIHdoaWNoIGlzIGFwcGxpZWQgYWZ0ZXIgY29sbGVjdGluZyBmb2N1c2FibGUgZWxlbWVudHMuXG4gICAqL1xuICBwdWJsaWMgdHJhcChcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBvcHRpb25zPzoge1xuICAgICAgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICAgIHBvc3RGaWx0ZXI/OiAoZWw6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIH0sXG4gICk6IHZvaWQge1xuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIER5bmFtaWNhbGx5IGdldCBmaXJzdCBhbmQgbGFzdCBmb2N1c2FibGUgZWxlbWVudCwgYXMgdGhpcyBtaWdodCBoYXZlIGNoYW5nZWQgc2luY2Ugb3BlbmluZyBvdmVybGF5XG4gICAgICAgIGNvbnN0IGVsZW1lbnRDaGlsZHJlbjogSFRNTEVsZW1lbnRbXSA9IEFycmF5LmZyb20oXG4gICAgICAgICAgZWxlbWVudC5zaGFkb3dSb290IS5jaGlsZHJlbiB8fCBbXSxcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGdldEZvY3VzYWJsZUVsZW1lbnRzKGVsZW1lbnRDaGlsZHJlbiwge1xuICAgICAgICAgIGZpbHRlcjogb3B0aW9ucz8uZmlsdGVyLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50cyA9IGZvY3VzYWJsZUVsZW1lbnRzLmZpbHRlcihcbiAgICAgICAgICBvcHRpb25zPy5wb3N0RmlsdGVyID8/ICgoKSA9PiB0cnVlKSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWZpbHRlcmVkRm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGUgPSBmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlID0gZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50c1tcbiAgICAgICAgICBmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDFcbiAgICAgICAgXSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICBjb25zdCBbcGl2b3QsIG5leHRdID0gZXZlbnQuc2hpZnRLZXlcbiAgICAgICAgICA/IFtmaXJzdEZvY3VzYWJsZSwgbGFzdEZvY3VzYWJsZV1cbiAgICAgICAgICA6IFtsYXN0Rm9jdXNhYmxlLCBmaXJzdEZvY3VzYWJsZV07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIChmaXJzdEZvY3VzYWJsZS5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuYWN0aXZlRWxlbWVudCA9PT0gcGl2b3QgfHxcbiAgICAgICAgICAobGFzdEZvY3VzYWJsZS5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuYWN0aXZlRWxlbWVudCA9PT0gcGl2b3RcbiAgICAgICAgKSB7XG4gICAgICAgICAgbmV4dC5mb2N1cygpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fY29udHJvbGxlci5zaWduYWwgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgdGhpcy5fY29udHJvbGxlci5hYm9ydCgpO1xuICAgIHRoaXMuX2NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJlbGVtZW50cyJdLCJtYXBwaW5ncyI6Ijs7QUFLQSxTQUFTLHFCQUFrQjtBQUN6QixNQUFJLFNBQVMsZ0JBQWdCLFFBQVEsV0FBVyxHQUFHO0FBQ2pELFdBQU8sRUFBRSxTQUFTLGNBQWMsU0FBUyxZQUFXO0FBQUEsRUFBQSxPQUMvQztBQUNMLFdBQU8sRUFBRSxTQUFTLGFBQWEsU0FBUyxhQUFZO0FBQUEsRUFBQTtBQUV4RDtBQU1NLFNBQVUsa0JBQWtCLE9BQW9CO0FBQzdDLFNBQUEsQ0FBQyxjQUFjLGFBQWEsV0FBVyxXQUFXLEVBQUUsU0FBUyxNQUFNLEdBQUc7QUFDL0U7QUFNTSxTQUFVLDBCQUEwQixPQUFvQjtBQUM1RCxTQUFPLE1BQU0sUUFBUSxhQUFhLE1BQU0sUUFBUSxxQkFBcUI7QUFDdkU7QUFNTSxTQUFVLHNCQUFzQixPQUFvQjtBQUN4RCxTQUFPLE1BQU0sUUFBUSxlQUFlLE1BQU0sUUFBUSxxQkFBcUI7QUFDekU7QUFNTSxTQUFVLDRCQUE0QixPQUFvQjtBQUN2RCxTQUFBLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxVQUFVLFlBQVksUUFBUSxLQUFLLEVBQUUsU0FBUyxNQUFNLEdBQUc7QUFDN0Y7QUFRQSxTQUFTLHFCQUFxQixjQUFzQixVQUFrQixRQUFjO0FBQzFFLFVBQUEsZUFBZSxTQUFTLFlBQVk7QUFDOUM7QUFFQSxTQUFTLGFBQWEsTUFBWTtBQUNoQyxTQUFPLE9BQU87QUFDaEI7QUFFQSxNQUFNLGFBQWE7QUFZSCxTQUFBLG9CQUFvQixPQUFzQixTQUFpQixNQUFZO0FBQ3JGLFFBQU0sRUFBRSxTQUFTLFlBQVk7QUFFN0IsTUFBSSxNQUFNLFFBQVEsV0FBVyxNQUFN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
@@ -1 +1 @@
1
- {"version":3,"file":"action-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/action-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAe5D,8BAGsB,oBAAqB,SAAQ,UAAU;IAC3D,SAAS,KAAK,aAAa,IAAI,OAAO,GAAG,SAAS,CAGjD;IAED,SAAS,KAAK,wBAAwB,IAAI,OAAO,GAAG,SAAS,CAE5D;IAEe,iBAAiB,IAAI,IAAI;IAezC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAexC,6DAA6D;IAC7D,SAAS,CAAC,cAAc,IAAI,cAAc;IAI1C,wDAAwD;cACrC,MAAM,IAAI,cAAc;CAG5C"}
1
+ {"version":3,"file":"action-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/action-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAe5D,8BAIe,oBAAqB,SAAQ,UAAU;IACpD,SAAS,KAAK,aAAa,IAAI,OAAO,GAAG,SAAS,CAGjD;IAED,SAAS,KAAK,wBAAwB,IAAI,OAAO,GAAG,SAAS,CAE5D;IAEe,iBAAiB,IAAI,IAAI;IAezC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAexC,6DAA6D;IAC7D,SAAS,CAAC,cAAc,IAAI,cAAc;IAI1C,wDAAwD;cACrC,MAAM,IAAI,cAAc;CAG5C"}
@@ -4,7 +4,7 @@ export type SbbButtonType = 'button' | 'reset' | 'submit';
4
4
  /** Button base class. */
5
5
  export declare abstract class SbbButtonBaseElement extends SbbActionBaseElement {
6
6
  /** The type attribute to use for the button. */
7
- type: SbbButtonType;
7
+ accessor type: SbbButtonType;
8
8
  /**
9
9
  * The name of the button element.
10
10
  *
@@ -22,7 +22,7 @@ export declare abstract class SbbButtonBaseElement extends SbbActionBaseElement
22
22
  set value(value: string);
23
23
  get value(): string;
24
24
  /** The <form> element to associate the button with. */
25
- form?: string;
25
+ accessor form: string;
26
26
  constructor();
27
27
  private _handleButtonClick;
28
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"button-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/button-base-element.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D,yBAAyB;AACzB,8BAKsB,oBAAqB,SAAQ,oBAAoB;IACrE,gDAAgD;IAC7B,IAAI,EAAE,aAAa,CAAY;IAElD;;;;;OAKG;IACH,IACW,IAAI,CAAC,IAAI,EAAE,MAAM,EAE3B;IACD,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;;OAKG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IACD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,uDAAuD;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;;IAwBjC,OAAO,CAAC,kBAAkB,CAmBxB;IAEF;;;;OAIG;IACH,OAAO,CAAC,4BAA4B,CAKlC;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B,CAKrC;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEc,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;CAKR"}
1
+ {"version":3,"file":"button-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/button-base-element.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D,yBAAyB;AACzB,8BAMe,oBAAqB,SAAQ,oBAAoB;IAC9D,gDAAgD;IAChD,SAA4B,IAAI,EAAE,aAAa,CAAY;IAE3D;;;;;OAKG;IACH,IACW,IAAI,CAAC,IAAI,EAAE,MAAM,EAE3B;IACD,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;;OAKG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IACD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,uDAAuD;IACvD,SAEgB,IAAI,EAAE,MAAM,CAAM;;IAwBlC,OAAO,CAAC,kBAAkB,CAmBxB;IAEF;;;;OAIG;IACH,OAAO,CAAC,4BAA4B,CAKlC;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B,CAKrC;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEc,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;CAKR"}
@@ -6,15 +6,15 @@ export type LinkTargetType = '_blank' | '_self' | '_parent' | '_top';
6
6
  /** Link base class. */
7
7
  export declare abstract class SbbLinkBaseElement extends SbbActionBaseElement {
8
8
  /** The href value you want to link to. */
9
- href?: string;
9
+ accessor href: string;
10
10
  /** Where to display the linked URL. */
11
- target?: LinkTargetType | string;
11
+ accessor target: LinkTargetType | string;
12
12
  /** The relationship of the linked URL as space-separated link types. */
13
- rel?: string;
13
+ accessor rel: string;
14
14
  /** Whether the browser will show the download dialog on click. */
15
- download?: boolean;
15
+ accessor download: boolean;
16
16
  /** This will be forwarded as aria-label to the inner anchor element. */
17
- accessibilityLabel: string | undefined;
17
+ accessor accessibilityLabel: string;
18
18
  protected language: SbbLanguageController;
19
19
  constructor();
20
20
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"link-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/link-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,6BAA6B,CAAC;AAErC,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE,uBAAuB;AACvB,8BAGsB,kBAAmB,SAAQ,oBAAoB;IACnE,0CAA0C;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEjC,uCAAuC;IACpB,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;IAEpD,wEAAwE;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEhC,kEAAkE;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEvD,wEAAwE;IACjB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,SAAS,CAAC,QAAQ,wBAAmC;;IASrD,gBAAgB;IACA,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAI/D,gBAAgB;IACA,IAAI,IAAI,IAAI;IAI5B,gBAAgB;IACA,KAAK,IAAI,IAAI;IAI7B,OAAO,CAAC,qBAAqB,CAE3B;IAEF,mHAAmH;cAChG,MAAM,IAAI,cAAc;CAqB5C"}
1
+ {"version":3,"file":"link-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/link-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,6BAA6B,CAAC;AAErC,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE,uBAAuB;AACvB,8BAIe,kBAAmB,SAAQ,oBAAoB;IAC5D,0CAA0C;IAC1C,SAEgB,IAAI,EAAE,MAAM,CAAM;IAElC,uCAAuC;IACvC,SAEgB,MAAM,EAAE,cAAc,GAAG,MAAM,CAAM;IAErD,wEAAwE;IACxE,SAEgB,GAAG,EAAE,MAAM,CAAM;IAEjC,kEAAkE;IAClE,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,wEAAwE;IACxE,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,SAAS,CAAC,QAAQ,wBAAmC;;IASrD,gBAAgB;IACA,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAI/D,gBAAgB;IACA,IAAI,IAAI,IAAI;IAI5B,gBAAgB;IACA,KAAK,IAAI,IAAI;IAI7B,OAAO,CAAC,qBAAqB,CAE3B;IAEF,mHAAmH;cAChG,MAAM,IAAI,cAAc;CAqB5C"}