@sbb-esta/lyne-elements 1.12.1 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (936) 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 +28 -32
  50. package/button/secondary-button/secondary-button.d.ts.map +1 -1
  51. package/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
  52. package/button/secondary-button-link.js +15 -18
  53. package/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
  54. package/button/secondary-button-static.js +15 -18
  55. package/button/secondary-button.js +15 -18
  56. package/button/tertiary-button/tertiary-button.d.ts.map +1 -1
  57. package/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
  58. package/button/tertiary-button-link.js +15 -18
  59. package/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
  60. package/button/tertiary-button-static.js +15 -18
  61. package/button/tertiary-button.js +15 -18
  62. package/button/transparent-button/transparent-button.d.ts.map +1 -1
  63. package/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
  64. package/button/transparent-button-link.js +15 -18
  65. package/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
  66. package/button/transparent-button-static.js +15 -18
  67. package/button/transparent-button.js +15 -18
  68. package/calendar/calendar.d.ts +7 -7
  69. package/calendar/calendar.d.ts.map +1 -1
  70. package/calendar.js +638 -692
  71. package/card/card/card.d.ts +2 -2
  72. package/card/card/card.d.ts.map +1 -1
  73. package/card/card-badge/card-badge.d.ts +1 -1
  74. package/card/card-badge/card-badge.d.ts.map +1 -1
  75. package/card/card-badge.js +45 -34
  76. package/card/card-button/card-button.d.ts.map +1 -1
  77. package/card/card-button.js +16 -16
  78. package/card/card-link/card-link.d.ts.map +1 -1
  79. package/card/card-link.js +17 -17
  80. package/card/card.js +55 -36
  81. package/card/common/card-action-common.d.ts +1 -1
  82. package/card/common/card-action-common.d.ts.map +1 -1
  83. package/card/common.js +27 -33
  84. package/checkbox/checkbox/checkbox.d.ts +3 -4
  85. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  86. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
  87. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  88. package/checkbox/checkbox-group.js +99 -76
  89. package/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
  90. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  91. package/checkbox/checkbox-panel.js +51 -50
  92. package/checkbox/checkbox.js +54 -43
  93. package/checkbox/common/checkbox-common.d.ts +1 -1
  94. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  95. package/checkbox/common.js +39 -24
  96. package/chip/chip.d.ts +2 -2
  97. package/chip/chip.d.ts.map +1 -1
  98. package/chip.js +45 -26
  99. package/clock/clock.d.ts +1 -1
  100. package/clock/clock.d.ts.map +1 -1
  101. package/clock.js +136 -144
  102. package/container/container/container.d.ts +3 -3
  103. package/container/container/container.d.ts.map +1 -1
  104. package/container/container.js +60 -35
  105. package/container/sticky-bar/sticky-bar.d.ts +1 -1
  106. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  107. package/container/sticky-bar.js +55 -47
  108. package/core/a11y.js +29 -51
  109. package/core/base-elements/action-base-element.d.ts.map +1 -1
  110. package/core/base-elements/button-base-element.d.ts +2 -2
  111. package/core/base-elements/button-base-element.d.ts.map +1 -1
  112. package/core/base-elements/link-base-element.d.ts +5 -5
  113. package/core/base-elements/link-base-element.d.ts.map +1 -1
  114. package/core/base-elements.js +243 -196
  115. package/core/controllers.js +8 -13
  116. package/core/decorators/base.d.ts +14 -0
  117. package/core/decorators/base.d.ts.map +1 -0
  118. package/core/decorators/force-type.d.ts +8 -0
  119. package/core/decorators/force-type.d.ts.map +1 -0
  120. package/core/decorators/get-override.d.ts +7 -0
  121. package/core/decorators/get-override.d.ts.map +1 -0
  122. package/core/decorators/handle-distinct-change.d.ts +8 -0
  123. package/core/decorators/handle-distinct-change.d.ts.map +1 -0
  124. package/core/decorators/omit-empty-converter.d.ts +8 -0
  125. package/core/decorators/omit-empty-converter.d.ts.map +1 -0
  126. package/core/decorators.d.ts +4 -0
  127. package/core/decorators.d.ts.map +1 -1
  128. package/core/decorators.js +59 -15
  129. package/core/dom.js +1 -5
  130. package/core/eventing.js +1 -4
  131. package/core/interfaces/paginator-page.d.ts +7 -0
  132. package/core/interfaces/paginator-page.d.ts.map +1 -0
  133. package/core/interfaces.d.ts +1 -0
  134. package/core/interfaces.d.ts.map +1 -1
  135. package/core/mixins/disabled-mixin.d.ts +2 -3
  136. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  137. package/core/mixins/form-associated-checkbox-mixin.d.ts +1 -0
  138. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  139. package/core/mixins/form-associated-mixin.d.ts +6 -6
  140. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  141. package/core/mixins/named-slot-list-mixin.d.ts +1 -1
  142. package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  143. package/core/mixins/negative-mixin.d.ts +1 -1
  144. package/core/mixins/negative-mixin.d.ts.map +1 -1
  145. package/core/mixins/panel-mixin.d.ts +3 -3
  146. package/core/mixins/panel-mixin.d.ts.map +1 -1
  147. package/core/mixins/required-mixin.d.ts +2 -3
  148. package/core/mixins/required-mixin.d.ts.map +1 -1
  149. package/core/mixins.js +291 -242
  150. package/core/styles/mixins/buttons.scss +1 -1
  151. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +4 -0
  152. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +5 -1
  153. package/core/testing/private.d.ts +1 -0
  154. package/core/testing/private.d.ts.map +1 -1
  155. package/core/testing.js +7 -13
  156. package/core.css +5 -1
  157. package/custom-elements.json +14515 -13465
  158. package/datepicker/common/datepicker-button.d.ts +2 -2
  159. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  160. package/datepicker/common.js +110 -116
  161. package/datepicker/datepicker/datepicker.d.ts +6 -6
  162. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  163. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  164. package/datepicker/datepicker-next-day.js +24 -26
  165. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  166. package/datepicker/datepicker-previous-day.js +25 -27
  167. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
  168. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  169. package/datepicker/datepicker-toggle.js +154 -136
  170. package/datepicker/datepicker.js +248 -213
  171. package/development/accordion/accordion.d.ts +4 -8
  172. package/development/accordion/accordion.d.ts.map +1 -1
  173. package/development/accordion.js +118 -93
  174. package/development/action-group/action-group.d.ts +5 -5
  175. package/development/action-group/action-group.d.ts.map +1 -1
  176. package/development/action-group.js +138 -64
  177. package/development/alert/alert/alert.d.ts +11 -11
  178. package/development/alert/alert/alert.d.ts.map +1 -1
  179. package/development/alert/alert-group/alert-group.d.ts +4 -4
  180. package/development/alert/alert-group/alert-group.d.ts.map +1 -1
  181. package/development/alert/alert-group.js +135 -79
  182. package/development/alert/alert.js +259 -109
  183. package/development/autocomplete/autocomplete-base-element.d.ts +3 -7
  184. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  185. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  186. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  187. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -0
  188. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  189. package/development/autocomplete-grid/autocomplete-grid-button.js +75 -76
  190. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -1
  191. package/development/autocomplete-grid/autocomplete-grid-cell.js +24 -24
  192. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  193. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +38 -39
  194. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  195. package/development/autocomplete-grid/autocomplete-grid-option.js +57 -73
  196. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -1
  197. package/development/autocomplete-grid/autocomplete-grid-row.js +28 -28
  198. package/development/autocomplete-grid/autocomplete-grid.js +142 -160
  199. package/development/autocomplete.js +394 -393
  200. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts +1 -1
  201. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
  202. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  203. package/development/breadcrumb/breadcrumb-group.js +130 -130
  204. package/development/breadcrumb/breadcrumb.js +53 -36
  205. package/development/button/button/button.d.ts.map +1 -1
  206. package/development/button/button-link/button-link.d.ts.map +1 -1
  207. package/development/button/button-link.js +18 -19
  208. package/development/button/button-static/button-static.d.ts.map +1 -1
  209. package/development/button/button-static.js +18 -19
  210. package/development/button/button.js +18 -19
  211. package/development/button/common/button-common.d.ts +4 -4
  212. package/development/button/common/button-common.d.ts.map +1 -1
  213. package/development/button/common.js +51 -30
  214. package/development/button/mini-button/mini-button-base-element.d.ts.map +1 -1
  215. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  216. package/development/button/mini-button-group/mini-button-group.d.ts +2 -2
  217. package/development/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  218. package/development/button/mini-button-group.js +77 -50
  219. package/development/button/mini-button.js +39 -38
  220. package/development/button/secondary-button/secondary-button.d.ts.map +1 -1
  221. package/development/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
  222. package/development/button/secondary-button-link.js +18 -19
  223. package/development/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
  224. package/development/button/secondary-button-static.js +18 -19
  225. package/development/button/secondary-button.js +18 -19
  226. package/development/button/tertiary-button/tertiary-button.d.ts.map +1 -1
  227. package/development/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
  228. package/development/button/tertiary-button-link.js +18 -19
  229. package/development/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
  230. package/development/button/tertiary-button-static.js +18 -19
  231. package/development/button/tertiary-button.js +18 -19
  232. package/development/button/transparent-button/transparent-button.d.ts.map +1 -1
  233. package/development/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
  234. package/development/button/transparent-button-link.js +18 -19
  235. package/development/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
  236. package/development/button/transparent-button-static.js +18 -19
  237. package/development/button/transparent-button.js +18 -19
  238. package/development/calendar/calendar.d.ts +7 -7
  239. package/development/calendar/calendar.d.ts.map +1 -1
  240. package/development/calendar.js +768 -766
  241. package/development/card/card/card.d.ts +2 -2
  242. package/development/card/card/card.d.ts.map +1 -1
  243. package/development/card/card-badge/card-badge.d.ts +1 -1
  244. package/development/card/card-badge/card-badge.d.ts.map +1 -1
  245. package/development/card/card-badge.js +65 -45
  246. package/development/card/card-button/card-button.d.ts.map +1 -1
  247. package/development/card/card-button.js +23 -20
  248. package/development/card/card-link/card-link.d.ts.map +1 -1
  249. package/development/card/card-link.js +23 -20
  250. package/development/card/card.js +72 -41
  251. package/development/card/common/card-action-common.d.ts +1 -1
  252. package/development/card/common/card-action-common.d.ts.map +1 -1
  253. package/development/card/common.js +74 -73
  254. package/development/checkbox/checkbox/checkbox.d.ts +3 -4
  255. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  256. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
  257. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  258. package/development/checkbox/checkbox-group.js +139 -92
  259. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
  260. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  261. package/development/checkbox/checkbox-panel.js +68 -60
  262. package/development/checkbox/checkbox.js +69 -46
  263. package/development/checkbox/common/checkbox-common.d.ts +1 -1
  264. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  265. package/development/checkbox/common.js +65 -46
  266. package/development/chip/chip.d.ts +2 -2
  267. package/development/chip/chip.d.ts.map +1 -1
  268. package/development/chip.js +64 -33
  269. package/development/clock/clock.d.ts +1 -1
  270. package/development/clock/clock.d.ts.map +1 -1
  271. package/development/clock.js +203 -201
  272. package/development/container/container/container.d.ts +3 -3
  273. package/development/container/container/container.d.ts.map +1 -1
  274. package/development/container/container.js +86 -45
  275. package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
  276. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  277. package/development/container/sticky-bar.js +76 -58
  278. package/development/core/a11y.js +40 -62
  279. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  280. package/development/core/base-elements/button-base-element.d.ts +2 -2
  281. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  282. package/development/core/base-elements/link-base-element.d.ts +5 -5
  283. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  284. package/development/core/base-elements.js +329 -226
  285. package/development/core/config.js +1 -1
  286. package/development/core/controllers.js +13 -21
  287. package/development/core/datetime.js +1 -1
  288. package/development/core/decorators/base.d.ts +14 -0
  289. package/development/core/decorators/base.d.ts.map +1 -0
  290. package/development/core/decorators/force-type.d.ts +8 -0
  291. package/development/core/decorators/force-type.d.ts.map +1 -0
  292. package/development/core/decorators/get-override.d.ts +7 -0
  293. package/development/core/decorators/get-override.d.ts.map +1 -0
  294. package/development/core/decorators/handle-distinct-change.d.ts +8 -0
  295. package/development/core/decorators/handle-distinct-change.d.ts.map +1 -0
  296. package/development/core/decorators/omit-empty-converter.d.ts +8 -0
  297. package/development/core/decorators/omit-empty-converter.d.ts.map +1 -0
  298. package/development/core/decorators.d.ts +4 -0
  299. package/development/core/decorators.d.ts.map +1 -1
  300. package/development/core/decorators.js +69 -5
  301. package/development/core/dom.js +2 -6
  302. package/development/core/eventing.js +2 -5
  303. package/development/core/i18n.js +1 -1
  304. package/development/core/interfaces/paginator-page.d.ts +7 -0
  305. package/development/core/interfaces/paginator-page.d.ts.map +1 -0
  306. package/development/core/interfaces.d.ts +1 -0
  307. package/development/core/interfaces.d.ts.map +1 -1
  308. package/development/core/mixins/disabled-mixin.d.ts +2 -3
  309. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  310. package/development/core/mixins/form-associated-checkbox-mixin.d.ts +1 -0
  311. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  312. package/development/core/mixins/form-associated-mixin.d.ts +6 -6
  313. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  314. package/development/core/mixins/named-slot-list-mixin.d.ts +1 -1
  315. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  316. package/development/core/mixins/negative-mixin.d.ts +1 -1
  317. package/development/core/mixins/negative-mixin.d.ts.map +1 -1
  318. package/development/core/mixins/panel-mixin.d.ts +3 -3
  319. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  320. package/development/core/mixins/required-mixin.d.ts +2 -3
  321. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  322. package/development/core/mixins.js +573 -478
  323. package/development/core/observers.js +1 -1
  324. package/development/core/overlay.js +1 -1
  325. package/development/core/testing/private.d.ts +1 -0
  326. package/development/core/testing/private.d.ts.map +1 -1
  327. package/development/core/testing.js +16 -22
  328. package/development/datepicker/common/datepicker-button.d.ts +2 -2
  329. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  330. package/development/datepicker/common.js +144 -142
  331. package/development/datepicker/datepicker/datepicker.d.ts +6 -6
  332. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  333. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  334. package/development/datepicker/datepicker-next-day.js +33 -33
  335. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  336. package/development/datepicker/datepicker-previous-day.js +33 -33
  337. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
  338. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  339. package/development/datepicker/datepicker-toggle.js +227 -174
  340. package/development/datepicker/datepicker.js +327 -249
  341. package/development/dialog/dialog/dialog.d.ts +1 -1
  342. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  343. package/development/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
  344. package/development/dialog/dialog-actions.js +21 -20
  345. package/development/dialog/dialog-content/dialog-content.d.ts.map +1 -1
  346. package/development/dialog/dialog-content.js +22 -21
  347. package/development/dialog/dialog-title/dialog-title.d.ts +3 -3
  348. package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  349. package/development/dialog/dialog-title.js +121 -66
  350. package/development/dialog/dialog.js +205 -191
  351. package/development/divider/divider.d.ts +1 -1
  352. package/development/divider/divider.d.ts.map +1 -1
  353. package/development/divider.js +55 -36
  354. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
  355. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  356. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
  357. package/development/expansion-panel/expansion-panel-content.js +25 -25
  358. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  359. package/development/expansion-panel/expansion-panel-header.js +56 -63
  360. package/development/expansion-panel/expansion-panel.js +227 -182
  361. package/development/file-selector/file-selector.d.ts +26 -15
  362. package/development/file-selector/file-selector.d.ts.map +1 -1
  363. package/development/file-selector.js +305 -172
  364. package/development/flip-card/flip-card/flip-card.d.ts +2 -2
  365. package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
  366. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  367. package/development/flip-card/flip-card-details.js +39 -39
  368. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  369. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  370. package/development/flip-card/flip-card-summary.js +57 -38
  371. package/development/flip-card/flip-card.js +110 -78
  372. package/development/footer/footer.d.ts +4 -4
  373. package/development/footer/footer.d.ts.map +1 -1
  374. package/development/footer.js +103 -41
  375. package/development/form-error/form-error.d.ts.map +1 -1
  376. package/development/form-error.js +29 -28
  377. package/development/form-field/form-field/form-field.d.ts +10 -10
  378. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  379. package/development/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  380. package/development/form-field/form-field-clear.js +51 -51
  381. package/development/form-field/form-field.js +439 -328
  382. package/development/header/common/header-action-common.d.ts +2 -2
  383. package/development/header/common/header-action-common.d.ts.map +1 -1
  384. package/development/header/common.js +95 -28
  385. package/development/header/header/header.d.ts +4 -4
  386. package/development/header/header/header.d.ts.map +1 -1
  387. package/development/header/header-button/header-button.d.ts.map +1 -1
  388. package/development/header/header-button.js +19 -18
  389. package/development/header/header-link/header-link.d.ts.map +1 -1
  390. package/development/header/header-link.js +19 -16
  391. package/development/header/header.js +198 -140
  392. package/development/icon/icon-base.d.ts +3 -4
  393. package/development/icon/icon-base.d.ts.map +1 -1
  394. package/development/icon/icon-name-mixin.d.ts +1 -1
  395. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  396. package/development/icon/icon.d.ts +2 -2
  397. package/development/icon/icon.d.ts.map +1 -1
  398. package/development/icon.js +258 -157
  399. package/development/image/image.d.ts +17 -17
  400. package/development/image/image.d.ts.map +1 -1
  401. package/development/image.js +584 -216
  402. package/development/journey-header/journey-header.d.ts +5 -5
  403. package/development/journey-header/journey-header.d.ts.map +1 -1
  404. package/development/journey-header.js +115 -43
  405. package/development/lead-container/lead-container.d.ts.map +1 -1
  406. package/development/lead-container.js +22 -21
  407. package/development/link/block-link/block-link.d.ts.map +1 -1
  408. package/development/link/block-link-button/block-link-button.d.ts.map +1 -1
  409. package/development/link/block-link-button.js +19 -18
  410. package/development/link/block-link-static/block-link-static.d.ts.map +1 -1
  411. package/development/link/block-link-static.js +19 -18
  412. package/development/link/block-link.js +19 -18
  413. package/development/link/common/block-link-common.d.ts +4 -3
  414. package/development/link/common/block-link-common.d.ts.map +1 -1
  415. package/development/link/common/link-common.d.ts +1 -1
  416. package/development/link/common/link-common.d.ts.map +1 -1
  417. package/development/link/common.js +81 -51
  418. package/development/link/link/link.d.ts.map +1 -1
  419. package/development/link/link-button/link-button.d.ts.map +1 -1
  420. package/development/link/link-button.js +19 -18
  421. package/development/link/link-static/link-static.d.ts.map +1 -1
  422. package/development/link/link-static.js +19 -18
  423. package/development/link/link.js +19 -18
  424. package/development/link-list/common/link-list-base.d.ts +3 -3
  425. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  426. package/development/link-list/common.js +97 -48
  427. package/development/link-list/link-list/link-list.d.ts +2 -2
  428. package/development/link-list/link-list/link-list.d.ts.map +1 -1
  429. package/development/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
  430. package/development/link-list/link-list-anchor.js +18 -17
  431. package/development/link-list/link-list.js +60 -28
  432. package/development/loading-indicator/loading-indicator.d.ts +3 -3
  433. package/development/loading-indicator/loading-indicator.d.ts.map +1 -1
  434. package/development/loading-indicator.js +83 -45
  435. package/development/logo/logo.d.ts +2 -2
  436. package/development/logo/logo.d.ts.map +1 -1
  437. package/development/logo.js +64 -32
  438. package/development/map-container/map-container.d.ts +2 -2
  439. package/development/map-container/map-container.d.ts.map +1 -1
  440. package/development/map-container.js +107 -75
  441. package/development/menu/common/menu-action-common.d.ts +2 -2
  442. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  443. package/development/menu/common.js +41 -20
  444. package/development/menu/menu/menu.d.ts +1 -1
  445. package/development/menu/menu/menu.d.ts.map +1 -1
  446. package/development/menu/menu-button/menu-button.d.ts.map +1 -1
  447. package/development/menu/menu-button.js +19 -18
  448. package/development/menu/menu-link/menu-link.d.ts.map +1 -1
  449. package/development/menu/menu-link.js +19 -18
  450. package/development/menu/menu.js +261 -241
  451. package/development/message/message.d.ts +2 -2
  452. package/development/message/message.d.ts.map +1 -1
  453. package/development/message.js +65 -32
  454. package/development/navigation/common/navigation-action-common.d.ts +1 -1
  455. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  456. package/development/navigation/common.js +63 -52
  457. package/development/navigation/navigation/navigation.d.ts +2 -2
  458. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  459. package/development/navigation/navigation-button/navigation-button.d.ts.map +1 -1
  460. package/development/navigation/navigation-button.js +19 -18
  461. package/development/navigation/navigation-link/navigation-link.d.ts.map +1 -1
  462. package/development/navigation/navigation-link.js +19 -18
  463. package/development/navigation/navigation-list/navigation-list.d.ts +1 -1
  464. package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  465. package/development/navigation/navigation-list.js +64 -41
  466. package/development/navigation/navigation-marker/navigation-marker.d.ts +1 -1
  467. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  468. package/development/navigation/navigation-marker.js +108 -91
  469. package/development/navigation/navigation-section/navigation-section.d.ts +3 -3
  470. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  471. package/development/navigation/navigation-section.js +282 -236
  472. package/development/navigation/navigation.js +278 -254
  473. package/development/notification/notification.d.ts +6 -6
  474. package/development/notification/notification.d.ts.map +1 -1
  475. package/development/notification.js +212 -146
  476. package/development/option/optgroup/optgroup-base-element.d.ts +3 -3
  477. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  478. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  479. package/development/option/optgroup.js +187 -142
  480. package/development/option/option/option-base-element.d.ts +7 -7
  481. package/development/option/option/option-base-element.d.ts.map +1 -1
  482. package/development/option/option/option.d.ts.map +1 -1
  483. package/development/option/option.js +392 -296
  484. package/development/overlay/overlay-base-element.d.ts +1 -1
  485. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  486. package/development/overlay/overlay.d.ts +4 -4
  487. package/development/overlay/overlay.d.ts.map +1 -1
  488. package/development/overlay.js +260 -207
  489. package/development/paginator/common/paginator-common.d.ts +26 -0
  490. package/development/paginator/common/paginator-common.d.ts.map +1 -0
  491. package/development/paginator/common.d.ts +2 -0
  492. package/development/paginator/common.d.ts.map +1 -0
  493. package/development/paginator/common.js +189 -0
  494. package/development/paginator/compact-paginator/compact-paginator.d.ts +20 -0
  495. package/development/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
  496. package/development/paginator/compact-paginator.d.ts +2 -0
  497. package/development/paginator/compact-paginator.d.ts.map +1 -0
  498. package/development/paginator/compact-paginator.js +96 -0
  499. package/development/paginator/paginator/paginator.d.ts +51 -0
  500. package/development/paginator/paginator/paginator.d.ts.map +1 -0
  501. package/development/paginator/paginator.d.ts +1 -90
  502. package/development/paginator/paginator.d.ts.map +1 -1
  503. package/development/paginator/paginator.js +449 -0
  504. package/development/paginator.d.ts +2 -0
  505. package/development/paginator.d.ts.map +1 -1
  506. package/development/paginator.js +4 -519
  507. package/development/popover/popover/popover.d.ts +6 -7
  508. package/development/popover/popover/popover.d.ts.map +1 -1
  509. package/development/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
  510. package/development/popover/popover-trigger.js +29 -30
  511. package/development/popover/popover.js +358 -303
  512. package/development/radio-button/common/radio-button-common.d.ts +1 -1
  513. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  514. package/development/radio-button/common.js +170 -127
  515. package/development/radio-button/radio-button/radio-button.d.ts +2 -6
  516. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  517. package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
  518. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  519. package/development/radio-button/radio-button-group.js +269 -199
  520. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
  521. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  522. package/development/radio-button/radio-button-panel.js +60 -48
  523. package/development/radio-button/radio-button.js +54 -40
  524. package/development/screen-reader-only/screen-reader-only.d.ts.map +1 -1
  525. package/development/screen-reader-only.js +22 -21
  526. package/development/select/select.d.ts +17 -9
  527. package/development/select/select.d.ts.map +1 -1
  528. package/development/select.js +557 -524
  529. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
  530. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  531. package/development/selection-expansion-panel.js +223 -193
  532. package/development/signet/signet.d.ts +2 -2
  533. package/development/signet/signet.d.ts.map +1 -1
  534. package/development/signet.js +65 -33
  535. package/development/skiplink-list/skiplink-list.d.ts +2 -2
  536. package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
  537. package/development/skiplink-list.js +74 -41
  538. package/development/slider/slider.d.ts +7 -5
  539. package/development/slider/slider.d.ts.map +1 -1
  540. package/development/slider.js +260 -181
  541. package/development/status/status.d.ts +3 -3
  542. package/development/status/status.d.ts.map +1 -1
  543. package/development/status.js +96 -51
  544. package/development/stepper/step/step.d.ts.map +1 -1
  545. package/development/stepper/step-label/step-label.d.ts.map +1 -1
  546. package/development/stepper/step-label.js +86 -90
  547. package/development/stepper/step.js +122 -126
  548. package/development/stepper/stepper/stepper.d.ts +3 -3
  549. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  550. package/development/stepper/stepper.js +291 -241
  551. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  552. package/development/table/table-wrapper.js +37 -39
  553. package/development/tabs/tab/tab.d.ts.map +1 -1
  554. package/development/tabs/tab-group/tab-group.d.ts +2 -2
  555. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  556. package/development/tabs/tab-group.js +296 -279
  557. package/development/tabs/tab-label/tab-label.d.ts +3 -3
  558. package/development/tabs/tab-label/tab-label.d.ts.map +1 -1
  559. package/development/tabs/tab-label.js +83 -37
  560. package/development/tabs/tab.js +40 -39
  561. package/development/tag/tag/tag.d.ts +3 -5
  562. package/development/tag/tag/tag.d.ts.map +1 -1
  563. package/development/tag/tag-group/tag-group.d.ts +3 -3
  564. package/development/tag/tag-group/tag-group.d.ts.map +1 -1
  565. package/development/tag/tag-group.js +143 -88
  566. package/development/tag/tag.js +126 -89
  567. package/development/teaser/teaser.d.ts +4 -4
  568. package/development/teaser/teaser.d.ts.map +1 -1
  569. package/development/teaser-hero/teaser-hero.d.ts +3 -3
  570. package/development/teaser-hero/teaser-hero.d.ts.map +1 -1
  571. package/development/teaser-hero.js +83 -36
  572. package/development/teaser-product/common/teaser-product-common.d.ts +1 -1
  573. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  574. package/development/teaser-product/common.js +51 -26
  575. package/development/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
  576. package/development/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
  577. package/development/teaser-product/teaser-product-static.js +18 -19
  578. package/development/teaser-product/teaser-product.js +18 -19
  579. package/development/teaser.js +94 -40
  580. package/development/time-input/time-input.d.ts +1 -1
  581. package/development/time-input/time-input.d.ts.map +1 -1
  582. package/development/time-input.js +225 -219
  583. package/development/timetable-occupancy/timetable-occupancy.d.ts +2 -2
  584. package/development/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
  585. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
  586. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  587. package/development/timetable-occupancy-icon.js +78 -57
  588. package/development/timetable-occupancy.js +67 -35
  589. package/development/title/title-base.d.ts +3 -3
  590. package/development/title/title-base.d.ts.map +1 -1
  591. package/development/title/title.d.ts.map +1 -1
  592. package/development/title.js +106 -58
  593. package/development/toast/toast.d.ts +4 -4
  594. package/development/toast/toast.d.ts.map +1 -1
  595. package/development/toast.js +204 -146
  596. package/development/toggle/toggle/toggle.d.ts +3 -5
  597. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  598. package/development/toggle/toggle-option/toggle-option.d.ts +2 -2
  599. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  600. package/development/toggle/toggle-option.js +127 -93
  601. package/development/toggle/toggle.js +200 -163
  602. package/development/toggle-check/toggle-check.d.ts +4 -3
  603. package/development/toggle-check/toggle-check.d.ts.map +1 -1
  604. package/development/toggle-check.js +87 -49
  605. package/development/train/train/train.d.ts +5 -5
  606. package/development/train/train/train.d.ts.map +1 -1
  607. package/development/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
  608. package/development/train/train-blocked-passage.js +22 -21
  609. package/development/train/train-formation/train-formation.d.ts +2 -2
  610. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  611. package/development/train/train-formation.js +113 -90
  612. package/development/train/train-wagon/train-wagon.d.ts +7 -9
  613. package/development/train/train-wagon/train-wagon.d.ts.map +1 -1
  614. package/development/train/train-wagon.js +166 -87
  615. package/development/train/train.js +142 -75
  616. package/development/visual-checkbox/visual-checkbox.d.ts +3 -3
  617. package/development/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  618. package/development/visual-checkbox.js +79 -36
  619. package/dialog/dialog/dialog.d.ts +1 -1
  620. package/dialog/dialog/dialog.d.ts.map +1 -1
  621. package/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
  622. package/dialog/dialog-actions.js +18 -19
  623. package/dialog/dialog-content/dialog-content.d.ts.map +1 -1
  624. package/dialog/dialog-content.js +17 -18
  625. package/dialog/dialog-title/dialog-title.d.ts +3 -3
  626. package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  627. package/dialog/dialog-title.js +98 -66
  628. package/dialog/dialog.js +120 -114
  629. package/divider/divider.d.ts +1 -1
  630. package/divider/divider.d.ts.map +1 -1
  631. package/divider.js +41 -30
  632. package/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
  633. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  634. package/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
  635. package/expansion-panel/expansion-panel-content.js +20 -22
  636. package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  637. package/expansion-panel/expansion-panel-header.js +53 -61
  638. package/expansion-panel/expansion-panel.js +145 -130
  639. package/file-selector/file-selector.d.ts +26 -15
  640. package/file-selector/file-selector.d.ts.map +1 -1
  641. package/file-selector.js +227 -153
  642. package/flip-card/flip-card/flip-card.d.ts +2 -2
  643. package/flip-card/flip-card/flip-card.d.ts.map +1 -1
  644. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  645. package/flip-card/flip-card-details.js +36 -38
  646. package/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  647. package/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  648. package/flip-card/flip-card-summary.js +42 -31
  649. package/flip-card/flip-card.js +88 -69
  650. package/footer/footer.d.ts +4 -4
  651. package/footer/footer.d.ts.map +1 -1
  652. package/footer.js +78 -37
  653. package/form-error/form-error.d.ts.map +1 -1
  654. package/form-error.js +24 -25
  655. package/form-field/form-field/form-field.d.ts +10 -10
  656. package/form-field/form-field/form-field.d.ts.map +1 -1
  657. package/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  658. package/form-field/form-field-clear.js +39 -41
  659. package/form-field/form-field.js +295 -239
  660. package/header/common/header-action-common.d.ts +2 -2
  661. package/header/common/header-action-common.d.ts.map +1 -1
  662. package/header/common.js +36 -21
  663. package/header/header/header.d.ts +4 -4
  664. package/header/header/header.d.ts.map +1 -1
  665. package/header/header-button/header-button.d.ts.map +1 -1
  666. package/header/header-button.js +14 -16
  667. package/header/header-link/header-link.d.ts.map +1 -1
  668. package/header/header-link.js +14 -14
  669. package/header/header.js +138 -109
  670. package/icon/icon-base.d.ts +3 -4
  671. package/icon/icon-base.d.ts.map +1 -1
  672. package/icon/icon-name-mixin.d.ts +1 -1
  673. package/icon/icon-name-mixin.d.ts.map +1 -1
  674. package/icon/icon.d.ts +2 -2
  675. package/icon/icon.d.ts.map +1 -1
  676. package/icon.js +230 -165
  677. package/image/image.d.ts +17 -17
  678. package/image/image.d.ts.map +1 -1
  679. package/image.js +465 -195
  680. package/index.d.ts +3 -1
  681. package/index.js +3 -1
  682. package/journey-header/journey-header.d.ts +5 -5
  683. package/journey-header/journey-header.d.ts.map +1 -1
  684. package/journey-header.js +89 -49
  685. package/lead-container/lead-container.d.ts.map +1 -1
  686. package/lead-container.js +17 -18
  687. package/link/block-link/block-link.d.ts.map +1 -1
  688. package/link/block-link-button/block-link-button.d.ts.map +1 -1
  689. package/link/block-link-button.js +15 -17
  690. package/link/block-link-static/block-link-static.d.ts.map +1 -1
  691. package/link/block-link-static.js +14 -16
  692. package/link/block-link.js +15 -17
  693. package/link/common/block-link-common.d.ts +4 -3
  694. package/link/common/block-link-common.d.ts.map +1 -1
  695. package/link/common/link-common.d.ts +1 -1
  696. package/link/common/link-common.d.ts.map +1 -1
  697. package/link/common.js +64 -46
  698. package/link/link/link.d.ts.map +1 -1
  699. package/link/link-button/link-button.d.ts.map +1 -1
  700. package/link/link-button.js +15 -17
  701. package/link/link-static/link-static.d.ts.map +1 -1
  702. package/link/link-static.js +15 -17
  703. package/link/link.js +15 -17
  704. package/link-list/common/link-list-base.d.ts +3 -3
  705. package/link-list/common/link-list-base.d.ts.map +1 -1
  706. package/link-list/common.js +72 -44
  707. package/link-list/link-list/link-list.d.ts +2 -2
  708. package/link-list/link-list/link-list.d.ts.map +1 -1
  709. package/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
  710. package/link-list/link-list-anchor.js +15 -16
  711. package/link-list/link-list.js +43 -24
  712. package/loading-indicator/loading-indicator.d.ts +3 -3
  713. package/loading-indicator/loading-indicator.d.ts.map +1 -1
  714. package/loading-indicator.js +61 -36
  715. package/logo/logo.d.ts +2 -2
  716. package/logo/logo.d.ts.map +1 -1
  717. package/logo.js +47 -27
  718. package/map-container/map-container.d.ts +2 -2
  719. package/map-container/map-container.d.ts.map +1 -1
  720. package/map-container.js +84 -65
  721. package/menu/common/menu-action-common.d.ts +2 -2
  722. package/menu/common/menu-action-common.d.ts.map +1 -1
  723. package/menu/common.js +37 -22
  724. package/menu/menu/menu.d.ts +1 -1
  725. package/menu/menu/menu.d.ts.map +1 -1
  726. package/menu/menu-button/menu-button.d.ts.map +1 -1
  727. package/menu/menu-button.js +14 -16
  728. package/menu/menu-link/menu-link.d.ts.map +1 -1
  729. package/menu/menu-link.js +15 -17
  730. package/menu/menu.js +175 -170
  731. package/message/message.d.ts +2 -2
  732. package/message/message.d.ts.map +1 -1
  733. package/message.js +47 -27
  734. package/navigation/common/navigation-action-common.d.ts +1 -1
  735. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  736. package/navigation/common.js +38 -33
  737. package/navigation/navigation/navigation.d.ts +2 -2
  738. package/navigation/navigation/navigation.d.ts.map +1 -1
  739. package/navigation/navigation-button/navigation-button.d.ts.map +1 -1
  740. package/navigation/navigation-button.js +14 -16
  741. package/navigation/navigation-link/navigation-link.d.ts.map +1 -1
  742. package/navigation/navigation-link.js +14 -16
  743. package/navigation/navigation-list/navigation-list.d.ts +1 -1
  744. package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  745. package/navigation/navigation-list.js +48 -35
  746. package/navigation/navigation-marker/navigation-marker.d.ts +1 -1
  747. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  748. package/navigation/navigation-marker.js +77 -69
  749. package/navigation/navigation-section/navigation-section.d.ts +3 -3
  750. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  751. package/navigation/navigation-section.js +192 -171
  752. package/navigation/navigation.js +185 -181
  753. package/notification/notification.d.ts +6 -6
  754. package/notification/notification.d.ts.map +1 -1
  755. package/notification.js +147 -116
  756. package/option/optgroup/optgroup-base-element.d.ts +3 -3
  757. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  758. package/option/optgroup/optgroup.d.ts.map +1 -1
  759. package/option/optgroup.js +131 -112
  760. package/option/option/option-base-element.d.ts +7 -7
  761. package/option/option/option-base-element.d.ts.map +1 -1
  762. package/option/option/option.d.ts.map +1 -1
  763. package/option/option.js +295 -252
  764. package/overlay/overlay-base-element.d.ts +1 -1
  765. package/overlay/overlay-base-element.d.ts.map +1 -1
  766. package/overlay/overlay.d.ts +4 -4
  767. package/overlay/overlay.d.ts.map +1 -1
  768. package/overlay.js +194 -165
  769. package/package.json +19 -3
  770. package/paginator/common/paginator-common.d.ts +26 -0
  771. package/paginator/common/paginator-common.d.ts.map +1 -0
  772. package/paginator/common.d.ts +2 -0
  773. package/paginator/common.d.ts.map +1 -0
  774. package/paginator/common.js +145 -0
  775. package/paginator/compact-paginator/compact-paginator.d.ts +20 -0
  776. package/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
  777. package/paginator/compact-paginator.d.ts +2 -0
  778. package/paginator/compact-paginator.d.ts.map +1 -0
  779. package/paginator/compact-paginator.js +40 -0
  780. package/paginator/paginator/paginator.d.ts +51 -0
  781. package/paginator/paginator/paginator.d.ts.map +1 -0
  782. package/paginator/paginator.d.ts +1 -90
  783. package/paginator/paginator.d.ts.map +1 -1
  784. package/paginator/paginator.js +171 -0
  785. package/paginator.d.ts +2 -0
  786. package/paginator.d.ts.map +1 -1
  787. package/paginator.js +3 -263
  788. package/popover/popover/popover.d.ts +6 -7
  789. package/popover/popover/popover.d.ts.map +1 -1
  790. package/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
  791. package/popover/popover-trigger.js +26 -29
  792. package/popover/popover.js +230 -208
  793. package/radio-button/common/radio-button-common.d.ts +1 -1
  794. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  795. package/radio-button/common.js +67 -43
  796. package/radio-button/radio-button/radio-button.d.ts +2 -6
  797. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  798. package/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
  799. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  800. package/radio-button/radio-button-group.js +192 -156
  801. package/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
  802. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  803. package/radio-button/radio-button-panel.js +49 -45
  804. package/radio-button/radio-button.js +43 -37
  805. package/screen-reader-only/screen-reader-only.d.ts.map +1 -1
  806. package/screen-reader-only.js +17 -18
  807. package/select/select.d.ts +17 -9
  808. package/select/select.d.ts.map +1 -1
  809. package/select.js +377 -373
  810. package/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
  811. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  812. package/selection-expansion-panel.js +157 -148
  813. package/signet/signet.d.ts +2 -2
  814. package/signet/signet.d.ts.map +1 -1
  815. package/signet.js +48 -28
  816. package/skiplink-list/skiplink-list.d.ts +2 -2
  817. package/skiplink-list/skiplink-list.d.ts.map +1 -1
  818. package/skiplink-list.js +54 -36
  819. package/slider/slider.d.ts +7 -5
  820. package/slider/slider.d.ts.map +1 -1
  821. package/slider.js +197 -155
  822. package/standard-theme.css +5 -1
  823. package/status/status.d.ts +3 -3
  824. package/status/status.d.ts.map +1 -1
  825. package/status.js +71 -46
  826. package/stepper/step/step.d.ts.map +1 -1
  827. package/stepper/step-label/step-label.d.ts.map +1 -1
  828. package/stepper/step-label.js +69 -75
  829. package/stepper/step.js +99 -104
  830. package/stepper/stepper/stepper.d.ts +3 -3
  831. package/stepper/stepper/stepper.d.ts.map +1 -1
  832. package/stepper/stepper.js +208 -188
  833. package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  834. package/table/table-wrapper.js +32 -36
  835. package/tabs/tab/tab.d.ts.map +1 -1
  836. package/tabs/tab-group/tab-group.d.ts +2 -2
  837. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  838. package/tabs/tab-group.js +200 -193
  839. package/tabs/tab-label/tab-label.d.ts +3 -3
  840. package/tabs/tab-label/tab-label.d.ts.map +1 -1
  841. package/tabs/tab-label.js +65 -37
  842. package/tabs/tab.js +34 -35
  843. package/tag/tag/tag.d.ts +3 -5
  844. package/tag/tag/tag.d.ts.map +1 -1
  845. package/tag/tag-group/tag-group.d.ts +3 -3
  846. package/tag/tag-group/tag-group.d.ts.map +1 -1
  847. package/tag/tag-group.js +107 -75
  848. package/tag/tag.js +92 -73
  849. package/teaser/teaser.d.ts +4 -4
  850. package/teaser/teaser.d.ts.map +1 -1
  851. package/teaser-hero/teaser-hero.d.ts +3 -3
  852. package/teaser-hero/teaser-hero.d.ts.map +1 -1
  853. package/teaser-hero.js +66 -38
  854. package/teaser-product/common/teaser-product-common.d.ts +1 -1
  855. package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  856. package/teaser-product/common.js +36 -21
  857. package/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
  858. package/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
  859. package/teaser-product/teaser-product-static.js +14 -17
  860. package/teaser-product/teaser-product.js +14 -17
  861. package/teaser.js +69 -37
  862. package/time-input/time-input.d.ts +1 -1
  863. package/time-input/time-input.d.ts.map +1 -1
  864. package/time-input.js +160 -166
  865. package/timetable-occupancy/timetable-occupancy.d.ts +2 -2
  866. package/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
  867. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
  868. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  869. package/timetable-occupancy-icon.js +60 -48
  870. package/timetable-occupancy.js +55 -38
  871. package/title/title-base.d.ts +3 -3
  872. package/title/title-base.d.ts.map +1 -1
  873. package/title/title.d.ts.map +1 -1
  874. package/title.js +81 -53
  875. package/toast/toast.d.ts +4 -4
  876. package/toast/toast.d.ts.map +1 -1
  877. package/toast.js +156 -123
  878. package/toggle/toggle/toggle.d.ts +3 -5
  879. package/toggle/toggle/toggle.d.ts.map +1 -1
  880. package/toggle/toggle-option/toggle-option.d.ts +2 -2
  881. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  882. package/toggle/toggle-option.js +89 -72
  883. package/toggle/toggle.js +139 -122
  884. package/toggle-check/toggle-check.d.ts +4 -3
  885. package/toggle-check/toggle-check.d.ts.map +1 -1
  886. package/toggle-check.js +63 -41
  887. package/train/train/train.d.ts +5 -5
  888. package/train/train/train.d.ts.map +1 -1
  889. package/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
  890. package/train/train-blocked-passage.js +17 -18
  891. package/train/train-formation/train-formation.d.ts +2 -2
  892. package/train/train-formation/train-formation.d.ts.map +1 -1
  893. package/train/train-formation.js +96 -87
  894. package/train/train-wagon/train-wagon.d.ts +7 -9
  895. package/train/train-wagon/train-wagon.d.ts.map +1 -1
  896. package/train/train-wagon.js +150 -110
  897. package/train/train.js +108 -71
  898. package/visual-checkbox/visual-checkbox.d.ts +3 -3
  899. package/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  900. package/visual-checkbox.js +59 -32
  901. package/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts +0 -2
  902. package/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts.map +0 -1
  903. package/button/mini-button-group/index.d.ts +0 -2
  904. package/button/mini-button-group/index.d.ts.map +0 -1
  905. package/development/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts +0 -2
  906. package/development/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts.map +0 -1
  907. package/development/button/mini-button-group/index.d.ts +0 -2
  908. package/development/button/mini-button-group/index.d.ts.map +0 -1
  909. package/development/flip-card/flip-card/index.d.ts +0 -2
  910. package/development/flip-card/flip-card/index.d.ts.map +0 -1
  911. package/development/flip-card/flip-card-details/index.d.ts +0 -2
  912. package/development/flip-card/flip-card-details/index.d.ts.map +0 -1
  913. package/development/flip-card/flip-card-summary/index.d.ts +0 -2
  914. package/development/flip-card/flip-card-summary/index.d.ts.map +0 -1
  915. package/development/link-list/link-list-anchor/index.d.ts +0 -2
  916. package/development/link-list/link-list-anchor/index.d.ts.map +0 -1
  917. package/development/paginator/index.d.ts +0 -2
  918. package/development/paginator/index.d.ts.map +0 -1
  919. package/development/radio-button/radio-button-panel/index.d.ts +0 -2
  920. package/development/radio-button/radio-button-panel/index.d.ts.map +0 -1
  921. package/development/tabs/tab/index.d.ts +0 -2
  922. package/development/tabs/tab/index.d.ts.map +0 -1
  923. package/flip-card/flip-card/index.d.ts +0 -2
  924. package/flip-card/flip-card/index.d.ts.map +0 -1
  925. package/flip-card/flip-card-details/index.d.ts +0 -2
  926. package/flip-card/flip-card-details/index.d.ts.map +0 -1
  927. package/flip-card/flip-card-summary/index.d.ts +0 -2
  928. package/flip-card/flip-card-summary/index.d.ts.map +0 -1
  929. package/link-list/link-list-anchor/index.d.ts +0 -2
  930. package/link-list/link-list-anchor/index.d.ts.map +0 -1
  931. package/paginator/index.d.ts +0 -2
  932. package/paginator/index.d.ts.map +0 -1
  933. package/radio-button/radio-button-panel/index.d.ts +0 -2
  934. package/radio-button/radio-button-panel/index.d.ts.map +0 -1
  935. package/tabs/tab/index.d.ts +0 -2
  936. package/tabs/tab/index.d.ts.map +0 -1
@@ -1,112 +1,131 @@
1
- import { LitElement, html, isServer, nothing } from "lit";
2
- import { hostAttributes } from "./decorators.js";
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
3
+ };
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
+ import { __esDecorate, __runInitializers } from "tslib";
9
+ import { html, LitElement, isServer, nothing } from "lit";
10
+ import { hostAttributes, forceType } from "./decorators.js";
3
11
  import { property } from "lit/decorators.js";
4
12
  import { isEventPrevented, EventEmitter } from "./eventing.js";
5
13
  import { SbbLanguageController } from "./controllers.js";
6
14
  import { i18nTargetOpensInNewWindow } from "./i18n.js";
7
15
  import "../screen-reader-only.js";
8
- var __defProp$2 = Object.defineProperty;
9
- var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
10
- var __decorateClass$2 = (decorators, target, key, kind) => {
11
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
12
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
13
- if (decorator = decorators[i])
14
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
15
- if (kind && result) __defProp$2(target, key, result);
16
- return result;
17
- };
18
- let SbbActionBaseElement = class extends LitElement {
19
- get maybeDisabled() {
20
- const maybeDisabled = this;
21
- return maybeDisabled.disabled || maybeDisabled.formDisabled;
22
- }
23
- get maybeDisabledInteractive() {
24
- return this.disabledInteractive;
25
- }
26
- connectedCallback() {
27
- var _a;
28
- super.connectedCallback();
29
- if ((this.hasAttribute("data-link") || this.hasAttribute("data-button")) && ((_a = this.parentElement) == null ? void 0 : _a.closest("[data-link], [data-button], a, button"))) {
30
- console.warn(
31
- `Nested action element detected (${this.localName} inside ${this.parentElement.closest("[data-link], [data-button], a, button").localName}). Maybe use a static variant for the inner action element?`,
32
- this
16
+ let SbbActionBaseElement = (() => {
17
+ var _a;
18
+ let _classDecorators = [hostAttributes({
19
+ "data-action": ""
20
+ })];
21
+ let _classDescriptor;
22
+ let _classExtraInitializers = [];
23
+ let _classThis;
24
+ let _classSuper = LitElement;
25
+ _a = class extends _classSuper {
26
+ get maybeDisabled() {
27
+ const maybeDisabled = this;
28
+ return maybeDisabled.disabled || maybeDisabled.formDisabled;
29
+ }
30
+ get maybeDisabledInteractive() {
31
+ return this.disabledInteractive;
32
+ }
33
+ connectedCallback() {
34
+ var _a2;
35
+ super.connectedCallback();
36
+ if ((this.hasAttribute("data-link") || this.hasAttribute("data-button")) && ((_a2 = this.parentElement) == null ? void 0 : _a2.closest("[data-link], [data-button], a, button"))) {
37
+ console.warn(`Nested action element detected (${this.localName} inside ${this.parentElement.closest("[data-link], [data-button], a, button").localName}). Maybe use a static variant for the inner action element?`, this);
38
+ }
39
+ }
40
+ setupBaseEventHandlers() {
41
+ this.addEventListener(
42
+ "click",
43
+ (event) => {
44
+ if (this.maybeDisabled && !this.maybeDisabledInteractive) {
45
+ event.preventDefault();
46
+ event.stopImmediatePropagation();
47
+ }
48
+ },
49
+ // capture is necessary here, as this event handler needs to be executed before any other
50
+ // in order to stop immediate propagation in the disabled case.
51
+ { capture: true }
33
52
  );
34
53
  }
35
- }
36
- setupBaseEventHandlers() {
37
- this.addEventListener(
38
- "click",
39
- (event) => {
40
- if (this.maybeDisabled && !this.maybeDisabledInteractive) {
54
+ /** Override this method to render the component template. */
55
+ renderTemplate() {
56
+ throw new Error("Implementation needed!");
57
+ }
58
+ /** Default render method for button-like components. */
59
+ render() {
60
+ return html` <span class="sbb-action-base ${this.localName}">${this.renderTemplate()}</span> `;
61
+ }
62
+ }, _classThis = _a, (() => {
63
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
64
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
65
+ _classThis = _classDescriptor.value;
66
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
67
+ __runInitializers(_classThis, _classExtraInitializers);
68
+ })(), _a;
69
+ return _classThis;
70
+ })();
71
+ let SbbButtonBaseElement = (() => {
72
+ var _type_accessor_storage, _form_accessor_storage, _a;
73
+ let _classDecorators = [hostAttributes({
74
+ role: "button",
75
+ tabindex: "0",
76
+ "data-button": ""
77
+ })];
78
+ let _classDescriptor;
79
+ let _classExtraInitializers = [];
80
+ let _classThis;
81
+ let _classSuper = SbbActionBaseElement;
82
+ let _instanceExtraInitializers = [];
83
+ let _type_decorators;
84
+ let _type_initializers = [];
85
+ let _type_extraInitializers = [];
86
+ let _set_name_decorators;
87
+ let _set_value_decorators;
88
+ let _form_decorators;
89
+ let _form_initializers = [];
90
+ let _form_extraInitializers = [];
91
+ _a = class extends _classSuper {
92
+ constructor() {
93
+ super();
94
+ __privateAdd(this, _type_accessor_storage);
95
+ __privateAdd(this, _form_accessor_storage);
96
+ __privateSet(this, _type_accessor_storage, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _type_initializers, "button")));
97
+ __privateSet(this, _form_accessor_storage, (__runInitializers(this, _type_extraInitializers), __runInitializers(this, _form_initializers, "")));
98
+ this._handleButtonClick = (__runInitializers(this, _form_extraInitializers), async (event) => {
99
+ if (this.type === "button" || await isEventPrevented(event)) {
100
+ return;
101
+ }
102
+ const form = this.form ? this.ownerDocument.querySelector(`form#${this.form}`) : this.closest("form");
103
+ if (!form) {
104
+ return;
105
+ } else if (this.type === "submit") {
106
+ form.requestSubmit();
107
+ } else if (this.type === "reset") {
108
+ form.reset();
109
+ }
110
+ });
111
+ this._preventScrollOnSpaceKeydown = (event) => {
112
+ if (event.key === " ") {
41
113
  event.preventDefault();
42
- event.stopImmediatePropagation();
114
+ event.target.toggleAttribute("data-active", true);
43
115
  }
44
- },
45
- // capture is necessary here, as this event handler needs to be executed before any other
46
- // in order to stop immediate propagation in the disabled case.
47
- { capture: true }
48
- );
49
- }
50
- /** Override this method to render the component template. */
51
- renderTemplate() {
52
- throw new Error("Implementation needed!");
53
- }
54
- /** Default render method for button-like components. */
55
- render() {
56
- return html` <span class="sbb-action-base ${this.localName}">${this.renderTemplate()}</span> `;
57
- }
58
- };
59
- SbbActionBaseElement = __decorateClass$2([
60
- hostAttributes({
61
- "data-action": ""
62
- })
63
- ], SbbActionBaseElement);
64
- var __defProp$1 = Object.defineProperty;
65
- var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
66
- var __decorateClass$1 = (decorators, target, key, kind) => {
67
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
68
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
69
- if (decorator = decorators[i])
70
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
71
- if (kind && result) __defProp$1(target, key, result);
72
- return result;
73
- };
74
- let SbbButtonBaseElement = class extends SbbActionBaseElement {
75
- constructor() {
76
- super();
77
- this.type = "button";
78
- this._handleButtonClick = async (event) => {
79
- if (this.type === "button" || await isEventPrevented(event)) {
80
- return;
81
- }
82
- const form = this.form ? this.ownerDocument.querySelector(`form#${this.form}`) : this.closest("form");
83
- if (!form) {
84
- return;
85
- } else if (this.type === "submit") {
86
- form.requestSubmit();
87
- } else if (this.type === "reset") {
88
- form.reset();
89
- }
90
- };
91
- this._preventScrollOnSpaceKeydown = (event) => {
92
- if (event.key === " ") {
93
- event.preventDefault();
94
- event.target.toggleAttribute("data-active", true);
95
- }
96
- };
97
- this._removeActiveMarker = (event) => {
98
- event.target.removeAttribute("data-active");
99
- };
100
- this._dispatchClickEventOnSpaceKeyup = (event) => {
101
- if (event.key === " ") {
102
- this._removeActiveMarker(event);
103
- this._dispatchClickEvent(event);
104
- }
105
- };
106
- this._dispatchClickEvent = (event) => {
107
- const { altKey, ctrlKey, metaKey, shiftKey } = event;
108
- event.target.dispatchEvent(
109
- new PointerEvent("click", {
116
+ };
117
+ this._removeActiveMarker = (event) => {
118
+ event.target.removeAttribute("data-active");
119
+ };
120
+ this._dispatchClickEventOnSpaceKeyup = (event) => {
121
+ if (event.key === " ") {
122
+ this._removeActiveMarker(event);
123
+ this._dispatchClickEvent(event);
124
+ }
125
+ };
126
+ this._dispatchClickEvent = (event) => {
127
+ const { altKey, ctrlKey, metaKey, shiftKey } = event;
128
+ event.target.dispatchEvent(new PointerEvent("click", {
110
129
  bubbles: true,
111
130
  cancelable: true,
112
131
  composed: true,
@@ -116,103 +135,188 @@ let SbbButtonBaseElement = class extends SbbActionBaseElement {
116
135
  ctrlKey,
117
136
  metaKey,
118
137
  shiftKey
119
- })
120
- );
121
- };
122
- if (!isServer) {
123
- this.setupBaseEventHandlers();
124
- const passiveOptions = { passive: true };
125
- this.addEventListener("click", this._handleButtonClick);
126
- this.addEventListener("keydown", this._preventScrollOnSpaceKeydown);
127
- this.addEventListener("keyup", this._dispatchClickEventOnSpaceKeyup, passiveOptions);
128
- this.addEventListener("blur", this._removeActiveMarker, passiveOptions);
129
- this.addEventListener(
130
- "keypress",
131
- (event) => {
138
+ }));
139
+ };
140
+ if (!isServer) {
141
+ this.setupBaseEventHandlers();
142
+ const passiveOptions = { passive: true };
143
+ this.addEventListener("click", this._handleButtonClick);
144
+ this.addEventListener("keydown", this._preventScrollOnSpaceKeydown);
145
+ this.addEventListener("keyup", this._dispatchClickEventOnSpaceKeyup, passiveOptions);
146
+ this.addEventListener("blur", this._removeActiveMarker, passiveOptions);
147
+ this.addEventListener("keypress", (event) => {
132
148
  if (event.key === "Enter" || event.key === "\n") {
133
149
  this._dispatchClickEvent(event);
134
150
  }
135
- },
136
- passiveOptions
137
- );
151
+ }, passiveOptions);
152
+ }
138
153
  }
139
- }
140
- set name(name) {
141
- this.setAttribute("name", `${name}`);
142
- }
143
- get name() {
144
- return this.getAttribute("name") ?? "";
145
- }
146
- set value(value) {
147
- this.setAttribute("value", `${value}`);
148
- }
149
- get value() {
150
- return this.getAttribute("value") ?? "";
151
- }
152
- attributeChangedCallback(name, old, value) {
153
- if (!["name", "value"].includes(name) || old !== value) {
154
- super.attributeChangedCallback(name, old, value);
154
+ /** The type attribute to use for the button. */
155
+ get type() {
156
+ return __privateGet(this, _type_accessor_storage);
155
157
  }
156
- }
157
- };
158
- __decorateClass$1([
159
- property()
160
- ], SbbButtonBaseElement.prototype, "type", 2);
161
- __decorateClass$1([
162
- property()
163
- ], SbbButtonBaseElement.prototype, "name", 1);
164
- __decorateClass$1([
165
- property()
166
- ], SbbButtonBaseElement.prototype, "value", 1);
167
- __decorateClass$1([
168
- property()
169
- ], SbbButtonBaseElement.prototype, "form", 2);
170
- SbbButtonBaseElement = __decorateClass$1([
171
- hostAttributes({
172
- role: "button",
173
- tabindex: "0",
174
- "data-button": ""
175
- })
176
- ], SbbButtonBaseElement);
177
- var __defProp = Object.defineProperty;
178
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
179
- var __decorateClass = (decorators, target, key, kind) => {
180
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
181
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
182
- if (decorator = decorators[i])
183
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
184
- if (kind && result) __defProp(target, key, result);
185
- return result;
186
- };
187
- let SbbLinkBaseElement = class extends SbbActionBaseElement {
188
- constructor() {
189
- super();
190
- this.language = new SbbLanguageController(this);
191
- this._evaluateRelAttribute = () => {
192
- return this.rel ? this.rel : this.target === "_blank" ? "external noopener nofollow" : nothing;
193
- };
194
- if (!isServer) {
195
- this.setupBaseEventHandlers();
158
+ set type(value) {
159
+ __privateSet(this, _type_accessor_storage, value);
196
160
  }
197
- }
198
- /** @internal */
199
- focus(options) {
200
- var _a;
201
- (_a = this.shadowRoot.querySelector("a")) == null ? void 0 : _a.focus(options);
202
- }
203
- /** @internal */
204
- blur() {
205
- var _a;
206
- (_a = this.shadowRoot.querySelector("a")) == null ? void 0 : _a.blur();
207
- }
208
- /** @internal */
209
- click() {
210
- var _a;
211
- (_a = this.shadowRoot.querySelector("a")) == null ? void 0 : _a.click();
212
- }
213
- /** Default render method for link-like components. Can be overridden if the LinkRenderVariables are not needed. */
214
- render() {
215
- return html`
161
+ /**
162
+ * The name of the button element.
163
+ *
164
+ * @description Developer note: In this case updating the attribute must be synchronous.
165
+ * Due to this it is implemented as a getter/setter and the attributeChangedCallback() handles the diff check.
166
+ */
167
+ set name(name) {
168
+ this.setAttribute("name", `${name}`);
169
+ }
170
+ get name() {
171
+ return this.getAttribute("name") ?? "";
172
+ }
173
+ /**
174
+ * The value of the button element.
175
+ *
176
+ * @description Developer note: In this case updating the attribute must be synchronous.
177
+ * Due to this it is implemented as a getter/setter and the attributeChangedCallback() handles the diff check.
178
+ */
179
+ set value(value) {
180
+ this.setAttribute("value", `${value}`);
181
+ }
182
+ get value() {
183
+ return this.getAttribute("value") ?? "";
184
+ }
185
+ /** The <form> element to associate the button with. */
186
+ get form() {
187
+ return __privateGet(this, _form_accessor_storage);
188
+ }
189
+ set form(value) {
190
+ __privateSet(this, _form_accessor_storage, value);
191
+ }
192
+ attributeChangedCallback(name, old, value) {
193
+ if (!["name", "value"].includes(name) || old !== value) {
194
+ super.attributeChangedCallback(name, old, value);
195
+ }
196
+ }
197
+ }, _type_accessor_storage = new WeakMap(), _form_accessor_storage = new WeakMap(), _classThis = _a, (() => {
198
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
199
+ _type_decorators = [property()];
200
+ _set_name_decorators = [property()];
201
+ _set_value_decorators = [property()];
202
+ _form_decorators = [forceType(), property()];
203
+ __esDecorate(_a, null, _type_decorators, { kind: "accessor", name: "type", static: false, private: false, access: { has: (obj) => "type" in obj, get: (obj) => obj.type, set: (obj, value) => {
204
+ obj.type = value;
205
+ } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);
206
+ __esDecorate(_a, null, _set_name_decorators, { kind: "setter", name: "name", static: false, private: false, access: { has: (obj) => "name" in obj, set: (obj, value) => {
207
+ obj.name = value;
208
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
209
+ __esDecorate(_a, null, _set_value_decorators, { kind: "setter", name: "value", static: false, private: false, access: { has: (obj) => "value" in obj, set: (obj, value) => {
210
+ obj.value = value;
211
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
212
+ __esDecorate(_a, null, _form_decorators, { kind: "accessor", name: "form", static: false, private: false, access: { has: (obj) => "form" in obj, get: (obj) => obj.form, set: (obj, value) => {
213
+ obj.form = value;
214
+ } }, metadata: _metadata }, _form_initializers, _form_extraInitializers);
215
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
216
+ _classThis = _classDescriptor.value;
217
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
218
+ __runInitializers(_classThis, _classExtraInitializers);
219
+ })(), _a;
220
+ return _classThis;
221
+ })();
222
+ let SbbLinkBaseElement = (() => {
223
+ var _href_accessor_storage, _target_accessor_storage, _rel_accessor_storage, _download_accessor_storage, _accessibilityLabel_accessor_storage, _a;
224
+ let _classDecorators = [hostAttributes({
225
+ "data-link": ""
226
+ })];
227
+ let _classDescriptor;
228
+ let _classExtraInitializers = [];
229
+ let _classThis;
230
+ let _classSuper = SbbActionBaseElement;
231
+ let _href_decorators;
232
+ let _href_initializers = [];
233
+ let _href_extraInitializers = [];
234
+ let _target_decorators;
235
+ let _target_initializers = [];
236
+ let _target_extraInitializers = [];
237
+ let _rel_decorators;
238
+ let _rel_initializers = [];
239
+ let _rel_extraInitializers = [];
240
+ let _download_decorators;
241
+ let _download_initializers = [];
242
+ let _download_extraInitializers = [];
243
+ let _accessibilityLabel_decorators;
244
+ let _accessibilityLabel_initializers = [];
245
+ let _accessibilityLabel_extraInitializers = [];
246
+ _a = class extends _classSuper {
247
+ constructor() {
248
+ super();
249
+ __privateAdd(this, _href_accessor_storage);
250
+ __privateAdd(this, _target_accessor_storage);
251
+ __privateAdd(this, _rel_accessor_storage);
252
+ __privateAdd(this, _download_accessor_storage);
253
+ __privateAdd(this, _accessibilityLabel_accessor_storage);
254
+ __privateSet(this, _href_accessor_storage, __runInitializers(this, _href_initializers, ""));
255
+ __privateSet(this, _target_accessor_storage, (__runInitializers(this, _href_extraInitializers), __runInitializers(this, _target_initializers, "")));
256
+ __privateSet(this, _rel_accessor_storage, (__runInitializers(this, _target_extraInitializers), __runInitializers(this, _rel_initializers, "")));
257
+ __privateSet(this, _download_accessor_storage, (__runInitializers(this, _rel_extraInitializers), __runInitializers(this, _download_initializers, false)));
258
+ __privateSet(this, _accessibilityLabel_accessor_storage, (__runInitializers(this, _download_extraInitializers), __runInitializers(this, _accessibilityLabel_initializers, "")));
259
+ this.language = (__runInitializers(this, _accessibilityLabel_extraInitializers), new SbbLanguageController(this));
260
+ this._evaluateRelAttribute = () => {
261
+ return this.rel ? this.rel : this.target === "_blank" ? "external noopener nofollow" : nothing;
262
+ };
263
+ if (!isServer) {
264
+ this.setupBaseEventHandlers();
265
+ }
266
+ }
267
+ /** The href value you want to link to. */
268
+ get href() {
269
+ return __privateGet(this, _href_accessor_storage);
270
+ }
271
+ set href(value) {
272
+ __privateSet(this, _href_accessor_storage, value);
273
+ }
274
+ /** Where to display the linked URL. */
275
+ get target() {
276
+ return __privateGet(this, _target_accessor_storage);
277
+ }
278
+ set target(value) {
279
+ __privateSet(this, _target_accessor_storage, value);
280
+ }
281
+ /** The relationship of the linked URL as space-separated link types. */
282
+ get rel() {
283
+ return __privateGet(this, _rel_accessor_storage);
284
+ }
285
+ set rel(value) {
286
+ __privateSet(this, _rel_accessor_storage, value);
287
+ }
288
+ /** Whether the browser will show the download dialog on click. */
289
+ get download() {
290
+ return __privateGet(this, _download_accessor_storage);
291
+ }
292
+ set download(value) {
293
+ __privateSet(this, _download_accessor_storage, value);
294
+ }
295
+ /** This will be forwarded as aria-label to the inner anchor element. */
296
+ get accessibilityLabel() {
297
+ return __privateGet(this, _accessibilityLabel_accessor_storage);
298
+ }
299
+ set accessibilityLabel(value) {
300
+ __privateSet(this, _accessibilityLabel_accessor_storage, value);
301
+ }
302
+ /** @internal */
303
+ focus(options) {
304
+ var _a2;
305
+ (_a2 = this.shadowRoot.querySelector("a")) == null ? void 0 : _a2.focus(options);
306
+ }
307
+ /** @internal */
308
+ blur() {
309
+ var _a2;
310
+ (_a2 = this.shadowRoot.querySelector("a")) == null ? void 0 : _a2.blur();
311
+ }
312
+ /** @internal */
313
+ click() {
314
+ var _a2;
315
+ (_a2 = this.shadowRoot.querySelector("a")) == null ? void 0 : _a2.click();
316
+ }
317
+ /** Default render method for link-like components. Can be overridden if the LinkRenderVariables are not needed. */
318
+ render() {
319
+ return html`
216
320
  <a
217
321
  class="sbb-action-base ${this.localName}"
218
322
  href=${this.href || nothing}
@@ -229,44 +333,43 @@ let SbbLinkBaseElement = class extends SbbActionBaseElement {
229
333
  >` : nothing}
230
334
  </a>
231
335
  `;
232
- }
233
- };
234
- __decorateClass([
235
- property()
236
- ], SbbLinkBaseElement.prototype, "href", 2);
237
- __decorateClass([
238
- property()
239
- ], SbbLinkBaseElement.prototype, "target", 2);
240
- __decorateClass([
241
- property()
242
- ], SbbLinkBaseElement.prototype, "rel", 2);
243
- __decorateClass([
244
- property({ type: Boolean })
245
- ], SbbLinkBaseElement.prototype, "download", 2);
246
- __decorateClass([
247
- property({ attribute: "accessibility-label" })
248
- ], SbbLinkBaseElement.prototype, "accessibilityLabel", 2);
249
- SbbLinkBaseElement = __decorateClass([
250
- hostAttributes({
251
- "data-link": ""
252
- })
253
- ], SbbLinkBaseElement);
336
+ }
337
+ }, _href_accessor_storage = new WeakMap(), _target_accessor_storage = new WeakMap(), _rel_accessor_storage = new WeakMap(), _download_accessor_storage = new WeakMap(), _accessibilityLabel_accessor_storage = new WeakMap(), _classThis = _a, (() => {
338
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
339
+ _href_decorators = [forceType(), property()];
340
+ _target_decorators = [forceType(), property()];
341
+ _rel_decorators = [forceType(), property()];
342
+ _download_decorators = [forceType(), property({ type: Boolean })];
343
+ _accessibilityLabel_decorators = [forceType(), property({ attribute: "accessibility-label" })];
344
+ __esDecorate(_a, null, _href_decorators, { kind: "accessor", name: "href", static: false, private: false, access: { has: (obj) => "href" in obj, get: (obj) => obj.href, set: (obj, value) => {
345
+ obj.href = value;
346
+ } }, metadata: _metadata }, _href_initializers, _href_extraInitializers);
347
+ __esDecorate(_a, null, _target_decorators, { kind: "accessor", name: "target", static: false, private: false, access: { has: (obj) => "target" in obj, get: (obj) => obj.target, set: (obj, value) => {
348
+ obj.target = value;
349
+ } }, metadata: _metadata }, _target_initializers, _target_extraInitializers);
350
+ __esDecorate(_a, null, _rel_decorators, { kind: "accessor", name: "rel", static: false, private: false, access: { has: (obj) => "rel" in obj, get: (obj) => obj.rel, set: (obj, value) => {
351
+ obj.rel = value;
352
+ } }, metadata: _metadata }, _rel_initializers, _rel_extraInitializers);
353
+ __esDecorate(_a, null, _download_decorators, { kind: "accessor", name: "download", static: false, private: false, access: { has: (obj) => "download" in obj, get: (obj) => obj.download, set: (obj, value) => {
354
+ obj.download = value;
355
+ } }, metadata: _metadata }, _download_initializers, _download_extraInitializers);
356
+ __esDecorate(_a, null, _accessibilityLabel_decorators, { kind: "accessor", name: "accessibilityLabel", static: false, private: false, access: { has: (obj) => "accessibilityLabel" in obj, get: (obj) => obj.accessibilityLabel, set: (obj, value) => {
357
+ obj.accessibilityLabel = value;
358
+ } }, metadata: _metadata }, _accessibilityLabel_initializers, _accessibilityLabel_extraInitializers);
359
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
360
+ _classThis = _classDescriptor.value;
361
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
362
+ __runInitializers(_classThis, _classExtraInitializers);
363
+ })(), _a;
364
+ return _classThis;
365
+ })();
254
366
  const _SbbOpenCloseBaseElement = class _SbbOpenCloseBaseElement extends LitElement {
255
367
  constructor() {
256
368
  super(...arguments);
257
- this.willOpen = new EventEmitter(
258
- this,
259
- _SbbOpenCloseBaseElement.events.willOpen
260
- );
369
+ this.willOpen = new EventEmitter(this, _SbbOpenCloseBaseElement.events.willOpen);
261
370
  this.didOpen = new EventEmitter(this, _SbbOpenCloseBaseElement.events.didOpen);
262
- this.willClose = new EventEmitter(
263
- this,
264
- _SbbOpenCloseBaseElement.events.willClose
265
- );
266
- this.didClose = new EventEmitter(
267
- this,
268
- _SbbOpenCloseBaseElement.events.didClose
269
- );
371
+ this.willClose = new EventEmitter(this, _SbbOpenCloseBaseElement.events.willClose);
372
+ this.didClose = new EventEmitter(this, _SbbOpenCloseBaseElement.events.didClose);
270
373
  }
271
374
  /** The state of the component. */
272
375
  set state(state) {
@@ -297,4 +400,4 @@ export {
297
400
  SbbLinkBaseElement,
298
401
  SbbOpenCloseBaseElement
299
402
  };
300
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbi8qKlxuICogV2hlbmV2ZXIgYW4gZWxlbWVudCBjYW4gYmUgZGlzYWJsZWQgaXQgaGFzIGRpc2FibGVkIHByb3BlcnR5XG4gKiBvciBmb3JtRGlzYWJsZWQgaWYgaXQncyBhIGZvcm0gZWxlbWVudC5cbiAqIEJlY2F1c2Ugd2UgY2FuJ3QgdXNlIHR5cGVzIGhlcmUgZGlyZWN0bHkgd2UgY3JlYXRlZCB0aGlzIGhlbHBlciB0eXBlLlxuICovXG50eXBlIE1heWJlRGlzYWJsZWQgPSB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZm9ybURpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJbnRlcmFjdGl2ZT86IGJvb2xlYW47XG59O1xuXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICAnZGF0YS1hY3Rpb24nOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiQWN0aW9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1heWJlRGlzYWJsZWQgPSB0aGlzIGFzIE1heWJlRGlzYWJsZWQ7XG4gICAgcmV0dXJuIG1heWJlRGlzYWJsZWQuZGlzYWJsZWQgfHwgbWF5YmVEaXNhYmxlZC5mb3JtRGlzYWJsZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IG1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKHRoaXMgYXMgTWF5YmVEaXNhYmxlZCkuZGlzYWJsZWRJbnRlcmFjdGl2ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgaWYgKFxuICAgICAgaW1wb3J0Lm1ldGEuZW52LkRFViAmJlxuICAgICAgKHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLWxpbmsnKSB8fCB0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1idXR0b24nKSkgJiZcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnW2RhdGEtbGlua10sIFtkYXRhLWJ1dHRvbl0sIGEsIGJ1dHRvbicpXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBOZXN0ZWQgYWN0aW9uIGVsZW1lbnQgZGV0ZWN0ZWQgKCR7dGhpcy5sb2NhbE5hbWV9IGluc2lkZSAke3RoaXMucGFyZW50RWxlbWVudCEuY2xvc2VzdCgnW2RhdGEtbGlua10sIFtkYXRhLWJ1dHRvbl0sIGEsIGJ1dHRvbicpIS5sb2NhbE5hbWV9KS4gTWF5YmUgdXNlIGEgc3RhdGljIHZhcmlhbnQgZm9yIHRoZSBpbm5lciBhY3Rpb24gZWxlbWVudD9gLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBCYXNlRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY2xpY2snLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1heWJlRGlzYWJsZWQgJiYgIXRoaXMubWF5YmVEaXNhYmxlZEludGVyYWN0aXZlKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGNhcHR1cmUgaXMgbmVjZXNzYXJ5IGhlcmUsIGFzIHRoaXMgZXZlbnQgaGFuZGxlciBuZWVkcyB0byBiZSBleGVjdXRlZCBiZWZvcmUgYW55IG90aGVyXG4gICAgICAvLyBpbiBvcmRlciB0byBzdG9wIGltbWVkaWF0ZSBwcm9wYWdhdGlvbiBpbiB0aGUgZGlzYWJsZWQgY2FzZS5cbiAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICAvKiogT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmVuZGVyIHRoZSBjb21wb25lbnQgdGVtcGxhdGUuICovXG4gIHByb3RlY3RlZCByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbXBsZW1lbnRhdGlvbiBuZWVkZWQhJyk7XG4gIH1cblxuICAvKiogRGVmYXVsdCByZW5kZXIgbWV0aG9kIGZvciBidXR0b24tbGlrZSBjb21wb25lbnRzLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGAgPHNwYW4gY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIj4ke3RoaXMucmVuZGVyVGVtcGxhdGUoKX08L3NwYW4+IGA7XG4gIH1cbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNFdmVudFByZXZlbnRlZCB9IGZyb20gJy4uL2V2ZW50aW5nLmpzJztcblxuaW1wb3J0IHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuL2FjdGlvbi1iYXNlLWVsZW1lbnQuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yIHR5cGUgYXR0cmlidXRlIGluIDxidXR0b24+IEhUTUwgdGFnLiAqL1xuZXhwb3J0IHR5cGUgU2JiQnV0dG9uVHlwZSA9ICdidXR0b24nIHwgJ3Jlc2V0JyB8ICdzdWJtaXQnO1xuXG4vKiogQnV0dG9uIGJhc2UgY2xhc3MuICovXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAnYnV0dG9uJyxcbiAgdGFiaW5kZXg6ICcwJyxcbiAgJ2RhdGEtYnV0dG9uJzogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYkJ1dHRvbkJhc2VFbGVtZW50IGV4dGVuZHMgU2JiQWN0aW9uQmFzZUVsZW1lbnQge1xuICAvKiogVGhlIHR5cGUgYXR0cmlidXRlIHRvIHVzZSBmb3IgdGhlIGJ1dHRvbi4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHR5cGU6IFNiYkJ1dHRvblR5cGUgPSAnYnV0dG9uJztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGJ1dHRvbiBlbGVtZW50LlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBgJHtuYW1lfWApO1xuICB9XG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnbmFtZScpID8/ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGVsZW1lbnQuXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZXZlbG9wZXIgbm90ZTogSW4gdGhpcyBjYXNlIHVwZGF0aW5nIHRoZSBhdHRyaWJ1dGUgbXVzdCBiZSBzeW5jaHJvbm91cy5cbiAgICogRHVlIHRvIHRoaXMgaXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBnZXR0ZXIvc2V0dGVyIGFuZCB0aGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKCkgaGFuZGxlcyB0aGUgZGlmZiBjaGVjay5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGAke3ZhbHVlfWApO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPz8gJyc7XG4gIH1cblxuICAvKiogVGhlIDxmb3JtPiBlbGVtZW50IHRvIGFzc29jaWF0ZSB0aGUgYnV0dG9uIHdpdGguICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBmb3JtPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIHRoaXMuc2V0dXBCYXNlRXZlbnRIYW5kbGVycygpO1xuXG4gICAgICBjb25zdCBwYXNzaXZlT3B0aW9ucyA9IHsgcGFzc2l2ZTogdHJ1ZSB9O1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZUJ1dHRvbkNsaWNrKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX3ByZXZlbnRTY3JvbGxPblNwYWNlS2V5ZG93bik7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwLCBwYXNzaXZlT3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2tleXByZXNzJyxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcGFzc2l2ZU9wdGlvbnMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUJ1dHRvbkNsaWNrID0gYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2J1dHRvbicgfHwgKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZXZlbnQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFVzZSBxdWVyeVNlbGVjdG9yIHdpdGggZm9ybSBhbmQgaWQgc2VsZWN0b3IsIGFzIHRoZSBmb3JtIHByb3BlcnR5IG11c3RcbiAgICAvLyByZWZlcmVuY2UgYSB2YWxpZCA8Zm9ybT4gZWxlbWVudFxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1cbiAgICAgID8gKHRoaXMub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBmb3JtIyR7dGhpcy5mb3JtfWApIGFzIEhUTUxGb3JtRWxlbWVudClcbiAgICAgIDogdGhpcy5jbG9zZXN0KCdmb3JtJyk7XG4gICAgaWYgKCFmb3JtKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdzdWJtaXQnKSB7XG4gICAgICAvLyBgZm9ybS5yZXF1ZXN0U3VibWl0KGVsZW1lbnQpO2Agc2VlbXMgbm90IHRvIHdvcmsgZm9yIEN1c3RvbUVsZW1lbnRzLCBzbyB0aGUgYGVsZW1lbnRgIHBhcmFtZXRlciBoYXMgYmVlbiByZW1vdmVkO1xuICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgc29sdmVkIGluIGFueSB3YXksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy93ZWJjb21wb25lbnRzL2lzc3Vlcy84MTQjaXNzdWVjb21tZW50LTEyMTg0NTIxMzdcbiAgICAgIGZvcm0ucmVxdWVzdFN1Ym1pdCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmVzZXQnKSB7XG4gICAgICBmb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBQcmV2ZW50cyBzY3JvbGxpbmcgZnJvbSBwcmVzc2luZyBTcGFjZSwgd2hlbiB0aGUgZXZlbnQgdGFyZ2V0IGlzIGFuIGFjdGlvbiBlbGVtZW50LlxuICAgKiBBbHNvIHNldHMgZGF0YS1hY3RpdmUgYXR0cmlidXRlLlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIG9yaWdpbiBldmVudC5cbiAgICovXG4gIHByaXZhdGUgX3ByZXZlbnRTY3JvbGxPblNwYWNlS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnLCB0cnVlKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlQWN0aXZlTWFya2VyID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnKTtcbiAgfTtcblxuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhICdjbGljaycgUG9pbnRlckV2ZW50IGlmIHRoZSBvcmlnaW5hbCBrZXlib2FyZCBldmVudCBpcyBhICdTcGFjZScgcHJlc3MuXG4gICAqIEFzIHZlcmlmaWVkIHdpdGggdGhlIG5hdGl2ZSBidXR0b24sIHdoZW4gJ1NwYWNlJyBpcyBwcmVzc2VkLCBhICdjbGljaycgZXZlbnQgaXMgZGlzcGF0Y2hlZFxuICAgKiBhZnRlciB0aGUgJ2tleXVwJyBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlcihldmVudCk7XG4gICAgICB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnQoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9kaXNwYXRjaENsaWNrRXZlbnQgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCB7IGFsdEtleSwgY3RybEtleSwgbWV0YUtleSwgc2hpZnRLZXkgfSA9IGV2ZW50O1xuICAgIChldmVudC50YXJnZXQgYXMgRWxlbWVudCkuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBQb2ludGVyRXZlbnQoJ2NsaWNrJywge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgcG9pbnRlcklkOiAtMSxcbiAgICAgICAgcG9pbnRlclR5cGU6ICcnLFxuICAgICAgICBhbHRLZXksXG4gICAgICAgIGN0cmxLZXksXG4gICAgICAgIG1ldGFLZXksXG4gICAgICAgIHNoaWZ0S2V5LFxuICAgICAgfSksXG4gICAgKTtcbiAgfTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmICghWyduYW1lJywgJ3ZhbHVlJ10uaW5jbHVkZXMobmFtZSkgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvdyB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuLyoqIEVudW1lcmF0aW9uIGZvciAndGFyZ2V0JyBhdHRyaWJ1dGUgaW4gPGE+IEhUTUwgdGFnLiAqL1xuZXhwb3J0IHR5cGUgTGlua1RhcmdldFR5cGUgPSAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG5cbi8qKiBMaW5rIGJhc2UgY2xhc3MuICovXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICAnZGF0YS1saW5rJzogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYkxpbmtCYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBocmVmPzogc3RyaW5nO1xuXG4gIC8qKiBXaGVyZSB0byBkaXNwbGF5IHRoZSBsaW5rZWQgVVJMLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgdGFyZ2V0PzogTGlua1RhcmdldFR5cGUgfCBzdHJpbmc7XG5cbiAgLyoqIFRoZSByZWxhdGlvbnNoaXAgb2YgdGhlIGxpbmtlZCBVUkwgYXMgc3BhY2Utc2VwYXJhdGVkIGxpbmsgdHlwZXMuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyByZWw/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJyb3dzZXIgd2lsbCBzaG93IHRoZSBkb3dubG9hZCBkaWFsb2cgb24gY2xpY2suICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGRvd25sb2FkPzogYm9vbGVhbjtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBpbm5lciBhbmNob3IgZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uYmx1cigpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5jbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZXZhbHVhdGVSZWxBdHRyaWJ1dGUgPSAoKTogc3RyaW5nIHwgdHlwZW9mIG5vdGhpbmcgPT4ge1xuICAgIHJldHVybiB0aGlzLnJlbCA/IHRoaXMucmVsIDogdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnID8gJ2V4dGVybmFsIG5vb3BlbmVyIG5vZm9sbG93JyA6IG5vdGhpbmc7XG4gIH07XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgbGluay1saWtlIGNvbXBvbmVudHMuIENhbiBiZSBvdmVycmlkZGVuIGlmIHRoZSBMaW5rUmVuZGVyVmFyaWFibGVzIGFyZSBub3QgbmVlZGVkLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwic2JiLWFjdGlvbi1iYXNlICR7dGhpcy5sb2NhbE5hbWV9XCJcbiAgICAgICAgaHJlZj0ke3RoaXMuaHJlZiB8fCBub3RoaW5nfVxuICAgICAgICA/ZG93bmxvYWQ9JHt0aGlzLmRvd25sb2FkfVxuICAgICAgICB0YXJnZXQ9JHt0aGlzLnRhcmdldCB8fCBub3RoaW5nfVxuICAgICAgICByZWw9JHt0aGlzLl9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSgpfVxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgdGFiaW5kZXg9JHt0aGlzLm1heWJlRGlzYWJsZWQgJiYgIXRoaXMubWF5YmVEaXNhYmxlZEludGVyYWN0aXZlID8gJy0xJyA6IG5vdGhpbmd9XG4gICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLm1heWJlRGlzYWJsZWQgPyAndHJ1ZScgOiBub3RoaW5nfVxuICAgICAgPlxuICAgICAgICAke3RoaXMucmVuZGVyVGVtcGxhdGUoKX1cbiAgICAgICAgJHshIXRoaXMuaHJlZiAmJiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaydcbiAgICAgICAgICA/IGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgICAgPi4gJHtpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvd1t0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L2E+XG4gICAgYDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL2V2ZW50aW5nLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBvdmVybGF5IGNvbXBvbmVudHMuXG4gKlxuICogQGV2ZW50IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC5cbiAqIEBldmVudCB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQgZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHdpbGxPcGVuOiAnd2lsbE9wZW4nLFxuICAgIGRpZE9wZW46ICdkaWRPcGVuJyxcbiAgICB3aWxsQ2xvc2U6ICd3aWxsQ2xvc2UnLFxuICAgIGRpZENsb3NlOiAnZGlkQ2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHN0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIG9wZW4uICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSAnb3BlbmVkJztcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgd2lsbE9wZW46IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMud2lsbE9wZW4sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLiAqL1xuICBwcm90ZWN0ZWQgZGlkT3BlbjogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkT3Blbik7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uICovXG4gIHByb3RlY3RlZCB3aWxsQ2xvc2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMud2lsbENsb3NlLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC4gKi9cbiAgcHJvdGVjdGVkIGRpZENsb3NlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLmRpZENsb3NlLFxuICApO1xuXG4gIC8qKiBPcGVucyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgb3BlbigpOiB2b2lkO1xuICAvKiogQ2xvc2VzIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZSgpOiB2b2lkO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc3RhdGUgfHw9ICdjbG9zZWQnO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgd2lsbE9wZW46IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIHdpbGxDbG9zZTogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gICAgZGlkT3BlbjogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gICAgZGlkQ2xvc2U6IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX19kZWNvcmF0ZUNsYXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQWtCc0IsSUFBQSx1QkFBZixjQUE0QyxXQUFXO0FBQUEsRUFDNUQsSUFBYyxnQkFBcUM7QUFDakQsVUFBTSxnQkFBZ0I7QUFDZixXQUFBLGNBQWMsWUFBWSxjQUFjO0FBQUEsRUFDakQ7QUFBQSxFQUVBLElBQWMsMkJBQWdEO0FBQzVELFdBQVEsS0FBdUI7QUFBQSxFQUNqQztBQUFBLEVBRWdCLG9CQUEwQjs7QUFDeEMsVUFBTSxrQkFBa0I7QUFFeEIsU0FFRyxLQUFLLGFBQWEsV0FBVyxLQUFLLEtBQUssYUFBYSxhQUFhLFFBQ2xFLFVBQUssa0JBQUwsbUJBQW9CLFFBQVEsMkNBQzVCO0FBQ1EsY0FBQTtBQUFBLFFBQ04sbUNBQW1DLEtBQUssU0FBUyxXQUFXLEtBQUssY0FBZSxRQUFRLHVDQUF1QyxFQUFHLFNBQVM7QUFBQSxRQUMzSTtBQUFBLE1BQUE7QUFBQSxJQUVKO0FBQUEsRUFDRjtBQUFBLEVBRVUseUJBQStCO0FBQ2xDLFNBQUE7QUFBQSxNQUNIO0FBQUEsTUFDQSxDQUFDLFVBQVU7QUFDVCxZQUFJLEtBQUssaUJBQWlCLENBQUMsS0FBSywwQkFBMEI7QUFDeEQsZ0JBQU0sZUFBZTtBQUNyQixnQkFBTSx5QkFBeUI7QUFBQSxRQUNqQztBQUFB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
403
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbi8qKlxuICogV2hlbmV2ZXIgYW4gZWxlbWVudCBjYW4gYmUgZGlzYWJsZWQgaXQgaGFzIGRpc2FibGVkIHByb3BlcnR5XG4gKiBvciBmb3JtRGlzYWJsZWQgaWYgaXQncyBhIGZvcm0gZWxlbWVudC5cbiAqIEJlY2F1c2Ugd2UgY2FuJ3QgdXNlIHR5cGVzIGhlcmUgZGlyZWN0bHkgd2UgY3JlYXRlZCB0aGlzIGhlbHBlciB0eXBlLlxuICovXG50eXBlIE1heWJlRGlzYWJsZWQgPSB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZm9ybURpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJbnRlcmFjdGl2ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnRcbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWFjdGlvbic6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICh0aGlzIGFzIE1heWJlRGlzYWJsZWQpLmRpc2FibGVkSW50ZXJhY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGlmIChcbiAgICAgIGltcG9ydC5tZXRhLmVudi5ERVYgJiZcbiAgICAgICh0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1saW5rJykgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnV0dG9uJykpICYmXG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTmVzdGVkIGFjdGlvbiBlbGVtZW50IGRldGVjdGVkICgke3RoaXMubG9jYWxOYW1lfSBpbnNpZGUgJHt0aGlzLnBhcmVudEVsZW1lbnQhLmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKSEubG9jYWxOYW1lfSkuIE1heWJlIHVzZSBhIHN0YXRpYyB2YXJpYW50IGZvciB0aGUgaW5uZXIgYWN0aW9uIGVsZW1lbnQ/YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkICYmICF0aGlzLm1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjYXB0dXJlIGlzIG5lY2Vzc2FyeSBoZXJlLCBhcyB0aGlzIGV2ZW50IGhhbmRsZXIgbmVlZHMgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIGFueSBvdGhlclxuICAgICAgLy8gaW4gb3JkZXIgdG8gc3RvcCBpbW1lZGlhdGUgcHJvcGFnYXRpb24gaW4gdGhlIGRpc2FibGVkIGNhc2UuXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJlbmRlciB0aGUgY29tcG9uZW50IHRlbXBsYXRlLiAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50YXRpb24gbmVlZGVkIScpO1xuICB9XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgYnV0dG9uLWxpa2UgY29tcG9uZW50cy4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgIDxzcGFuIGNsYXNzPVwic2JiLWFjdGlvbi1iYXNlICR7dGhpcy5sb2NhbE5hbWV9XCI+JHt0aGlzLnJlbmRlclRlbXBsYXRlKCl9PC9zcGFuPiBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlLCBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNFdmVudFByZXZlbnRlZCB9IGZyb20gJy4uL2V2ZW50aW5nLmpzJztcblxuaW1wb3J0IHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuL2FjdGlvbi1iYXNlLWVsZW1lbnQuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yIHR5cGUgYXR0cmlidXRlIGluIDxidXR0b24+IEhUTUwgdGFnLiAqL1xuZXhwb3J0IHR5cGUgU2JiQnV0dG9uVHlwZSA9ICdidXR0b24nIHwgJ3Jlc2V0JyB8ICdzdWJtaXQnO1xuXG4vKiogQnV0dG9uIGJhc2UgY2xhc3MuICovXG5leHBvcnRcbkBob3N0QXR0cmlidXRlcyh7XG4gIHJvbGU6ICdidXR0b24nLFxuICB0YWJpbmRleDogJzAnLFxuICAnZGF0YS1idXR0b24nOiAnJyxcbn0pXG5hYnN0cmFjdCBjbGFzcyBTYmJCdXR0b25CYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSB0eXBlIGF0dHJpYnV0ZSB0byB1c2UgZm9yIHRoZSBidXR0b24uICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBhY2Nlc3NvciB0eXBlOiBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbic7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBidXR0b24gZWxlbWVudC5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgKiBEdWUgdG8gdGhpcyBpdCBpcyBpbXBsZW1lbnRlZCBhcyBhIGdldHRlci9zZXR0ZXIgYW5kIHRoZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soKSBoYW5kbGVzIHRoZSBkaWZmIGNoZWNrLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBuYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCduYW1lJywgYCR7bmFtZX1gKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ25hbWUnKSA/PyAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBlbGVtZW50LlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBgJHt2YWx1ZX1gKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICB9XG5cbiAgLyoqIFRoZSA8Zm9ybT4gZWxlbWVudCB0byBhc3NvY2lhdGUgdGhlIGJ1dHRvbiB3aXRoLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIGZvcm06IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIHRoaXMuc2V0dXBCYXNlRXZlbnRIYW5kbGVycygpO1xuXG4gICAgICBjb25zdCBwYXNzaXZlT3B0aW9ucyA9IHsgcGFzc2l2ZTogdHJ1ZSB9O1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZUJ1dHRvbkNsaWNrKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX3ByZXZlbnRTY3JvbGxPblNwYWNlS2V5ZG93bik7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwLCBwYXNzaXZlT3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2tleXByZXNzJyxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcGFzc2l2ZU9wdGlvbnMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUJ1dHRvbkNsaWNrID0gYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2J1dHRvbicgfHwgKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZXZlbnQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFVzZSBxdWVyeVNlbGVjdG9yIHdpdGggZm9ybSBhbmQgaWQgc2VsZWN0b3IsIGFzIHRoZSBmb3JtIHByb3BlcnR5IG11c3RcbiAgICAvLyByZWZlcmVuY2UgYSB2YWxpZCA8Zm9ybT4gZWxlbWVudFxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1cbiAgICAgID8gKHRoaXMub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBmb3JtIyR7dGhpcy5mb3JtfWApIGFzIEhUTUxGb3JtRWxlbWVudClcbiAgICAgIDogdGhpcy5jbG9zZXN0KCdmb3JtJyk7XG4gICAgaWYgKCFmb3JtKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdzdWJtaXQnKSB7XG4gICAgICAvLyBgZm9ybS5yZXF1ZXN0U3VibWl0KGVsZW1lbnQpO2Agc2VlbXMgbm90IHRvIHdvcmsgZm9yIEN1c3RvbUVsZW1lbnRzLCBzbyB0aGUgYGVsZW1lbnRgIHBhcmFtZXRlciBoYXMgYmVlbiByZW1vdmVkO1xuICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgc29sdmVkIGluIGFueSB3YXksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy93ZWJjb21wb25lbnRzL2lzc3Vlcy84MTQjaXNzdWVjb21tZW50LTEyMTg0NTIxMzdcbiAgICAgIGZvcm0ucmVxdWVzdFN1Ym1pdCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmVzZXQnKSB7XG4gICAgICBmb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBQcmV2ZW50cyBzY3JvbGxpbmcgZnJvbSBwcmVzc2luZyBTcGFjZSwgd2hlbiB0aGUgZXZlbnQgdGFyZ2V0IGlzIGFuIGFjdGlvbiBlbGVtZW50LlxuICAgKiBBbHNvIHNldHMgZGF0YS1hY3RpdmUgYXR0cmlidXRlLlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIG9yaWdpbiBldmVudC5cbiAgICovXG4gIHByaXZhdGUgX3ByZXZlbnRTY3JvbGxPblNwYWNlS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnLCB0cnVlKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlQWN0aXZlTWFya2VyID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnKTtcbiAgfTtcblxuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhICdjbGljaycgUG9pbnRlckV2ZW50IGlmIHRoZSBvcmlnaW5hbCBrZXlib2FyZCBldmVudCBpcyBhICdTcGFjZScgcHJlc3MuXG4gICAqIEFzIHZlcmlmaWVkIHdpdGggdGhlIG5hdGl2ZSBidXR0b24sIHdoZW4gJ1NwYWNlJyBpcyBwcmVzc2VkLCBhICdjbGljaycgZXZlbnQgaXMgZGlzcGF0Y2hlZFxuICAgKiBhZnRlciB0aGUgJ2tleXVwJyBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlcihldmVudCk7XG4gICAgICB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnQoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9kaXNwYXRjaENsaWNrRXZlbnQgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCB7IGFsdEtleSwgY3RybEtleSwgbWV0YUtleSwgc2hpZnRLZXkgfSA9IGV2ZW50O1xuICAgIChldmVudC50YXJnZXQgYXMgRWxlbWVudCkuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBQb2ludGVyRXZlbnQoJ2NsaWNrJywge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgcG9pbnRlcklkOiAtMSxcbiAgICAgICAgcG9pbnRlclR5cGU6ICcnLFxuICAgICAgICBhbHRLZXksXG4gICAgICAgIGN0cmxLZXksXG4gICAgICAgIG1ldGFLZXksXG4gICAgICAgIHNoaWZ0S2V5LFxuICAgICAgfSksXG4gICAgKTtcbiAgfTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmICghWyduYW1lJywgJ3ZhbHVlJ10uaW5jbHVkZXMobmFtZSkgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGkxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93IH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9hY3Rpb24tYmFzZS1lbGVtZW50LmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yICd0YXJnZXQnIGF0dHJpYnV0ZSBpbiA8YT4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBMaW5rVGFyZ2V0VHlwZSA9ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcblxuLyoqIExpbmsgYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgJ2RhdGEtbGluayc6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkxpbmtCYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgaHJlZjogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXJlIHRvIGRpc3BsYXkgdGhlIGxpbmtlZCBVUkwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdGFyZ2V0OiBMaW5rVGFyZ2V0VHlwZSB8IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgcmVsYXRpb25zaGlwIG9mIHRoZSBsaW5rZWQgVVJMIGFzIHNwYWNlLXNlcGFyYXRlZCBsaW5rIHR5cGVzLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJyb3dzZXIgd2lsbCBzaG93IHRoZSBkb3dubG9hZCBkaWFsb2cgb24gY2xpY2suICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkb3dubG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGlubmVyIGFuY2hvciBlbGVtZW50LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICB0aGlzLnNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5mb2N1cyhvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5ibHVyKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBjbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEFuY2hvckVsZW1lbnQ+KCdhJyk/LmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSA9ICgpOiBzdHJpbmcgfCB0eXBlb2Ygbm90aGluZyA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVsID8gdGhpcy5yZWwgOiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaycgPyAnZXh0ZXJuYWwgbm9vcGVuZXIgbm9mb2xsb3cnIDogbm90aGluZztcbiAgfTtcblxuICAvKiogRGVmYXVsdCByZW5kZXIgbWV0aG9kIGZvciBsaW5rLWxpa2UgY29tcG9uZW50cy4gQ2FuIGJlIG92ZXJyaWRkZW4gaWYgdGhlIExpbmtSZW5kZXJWYXJpYWJsZXMgYXJlIG5vdCBuZWVkZWQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIlxuICAgICAgICBocmVmPSR7dGhpcy5ocmVmIHx8IG5vdGhpbmd9XG4gICAgICAgID9kb3dubG9hZD0ke3RoaXMuZG93bmxvYWR9XG4gICAgICAgIHRhcmdldD0ke3RoaXMudGFyZ2V0IHx8IG5vdGhpbmd9XG4gICAgICAgIHJlbD0ke3RoaXMuX2V2YWx1YXRlUmVsQXR0cmlidXRlKCl9XG4gICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCB8fCBub3RoaW5nfVxuICAgICAgICB0YWJpbmRleD0ke3RoaXMubWF5YmVEaXNhYmxlZCAmJiAhdGhpcy5tYXliZURpc2FibGVkSW50ZXJhY3RpdmUgPyAnLTEnIDogbm90aGluZ31cbiAgICAgICAgYXJpYS1kaXNhYmxlZD0ke3RoaXMubWF5YmVEaXNhYmxlZCA/ICd0cnVlJyA6IG5vdGhpbmd9XG4gICAgICA+XG4gICAgICAgICR7dGhpcy5yZW5kZXJUZW1wbGF0ZSgpfVxuICAgICAgICAkeyEhdGhpcy5ocmVmICYmIHRoaXMudGFyZ2V0ID09PSAnX2JsYW5rJ1xuICAgICAgICAgID8gaHRtbGA8c2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgICA+LiAke2kxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93W3RoaXMubGFuZ3VhZ2UuY3VycmVudF19PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5XG4gICAgICAgICAgICA+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvYT5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uL2ludGVyZmFjZXMuanMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIG92ZXJsYXkgY29tcG9uZW50cy5cbiAqXG4gKiBAZXZlbnQgd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQgZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLlxuICogQGV2ZW50IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgd2lsbE9wZW46ICd3aWxsT3BlbicsXG4gICAgZGlkT3BlbjogJ2RpZE9wZW4nLFxuICAgIHdpbGxDbG9zZTogJ3dpbGxDbG9zZScsXG4gICAgZGlkQ2xvc2U6ICdkaWRDbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBwcm90ZWN0ZWQgc2V0IHN0YXRlKHN0YXRlOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJywgc3RhdGUpO1xuICB9XG4gIHByb3RlY3RlZCBnZXQgc3RhdGUoKTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpIGFzIFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgb3Blbi4gKi9cbiAgcHVibGljIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnO1xuICB9XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uICovXG4gIHByb3RlY3RlZCB3aWxsT3BlbjogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy53aWxsT3BlbixcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBvcGVuZWQuICovXG4gIHByb3RlY3RlZCBkaWRPcGVuOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy5kaWRPcGVuKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy53aWxsQ2xvc2UsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLiAqL1xuICBwcm90ZWN0ZWQgZGlkQ2xvc2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICk7XG5cbiAgLyoqIE9wZW5zIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBvcGVuKCk6IHZvaWQ7XG4gIC8qKiBDbG9zZXMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICB3aWxsT3BlbjogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gICAgd2lsbENsb3NlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRPcGVuOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRDbG9zZTogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0lBbUJlLHdCQUFvQixNQUFBOztBQUhsQyxNQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLElBQ2QsZUFBZTtBQUFBLEVBQUEsQ0FDaEIsQ0FBQzs7OztvQkFDMEM7QUFBUixFQUFBLG1CQUFRLFlBQVU7QUFBQSxJQUNwRCxJQUFjLGdCQUFhO0FBQ3pCLFlBQU0sZ0JBQWdCO0FBQ2YsYUFBQSxjQUFjLFlBQVksY0FBYztBQUFBLElBQUE7QUFBQSxJQUdqRCxJQUFjLDJCQUF3QjtBQUNwQyxhQUFRLEtBQXVCO0FBQUEsSUFBQTtBQUFBLElBR2pCLG9CQUFpQjs7QUFDL0IsWUFBTSxrQkFBaUI7QUFFdkIsV0FFRyxLQUFLLGFBQWEsV0FBVyxLQUFLLEtBQUssYUFBYSxhQUFhLFFBQ2xFQSxNQUFBLEtB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