@sbb-esta/lyne-elements 1.13.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (887) hide show
  1. package/accordion/accordion.d.ts +4 -8
  2. package/accordion/accordion.d.ts.map +1 -1
  3. package/accordion.js +90 -81
  4. package/action-group/action-group.d.ts +5 -5
  5. package/action-group/action-group.d.ts.map +1 -1
  6. package/action-group.js +100 -50
  7. package/alert/alert/alert.d.ts +11 -11
  8. package/alert/alert/alert.d.ts.map +1 -1
  9. package/alert/alert-group/alert-group.d.ts +4 -4
  10. package/alert/alert-group/alert-group.d.ts.map +1 -1
  11. package/alert/alert-group.js +101 -69
  12. package/alert/alert.js +191 -104
  13. package/autocomplete/autocomplete-base-element.d.ts +3 -7
  14. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  15. package/autocomplete/autocomplete.d.ts.map +1 -1
  16. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  17. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -0
  18. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  19. package/autocomplete-grid/autocomplete-grid-button.js +53 -60
  20. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -1
  21. package/autocomplete-grid/autocomplete-grid-cell.js +20 -22
  22. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  23. package/autocomplete-grid/autocomplete-grid-optgroup.js +31 -35
  24. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  25. package/autocomplete-grid/autocomplete-grid-option.js +45 -63
  26. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -1
  27. package/autocomplete-grid/autocomplete-grid-row.js +23 -25
  28. package/autocomplete-grid/autocomplete-grid.js +112 -133
  29. package/autocomplete.js +283 -295
  30. package/breadcrumb/breadcrumb/breadcrumb.d.ts +1 -1
  31. package/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
  32. package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  33. package/breadcrumb/breadcrumb-group.js +107 -114
  34. package/breadcrumb/breadcrumb.js +44 -35
  35. package/button/button/button.d.ts.map +1 -1
  36. package/button/button-link/button-link.d.ts.map +1 -1
  37. package/button/button-link.js +15 -18
  38. package/button/button-static/button-static.d.ts.map +1 -1
  39. package/button/button-static.js +15 -18
  40. package/button/button.js +15 -18
  41. package/button/common/button-common.d.ts +4 -4
  42. package/button/common/button-common.d.ts.map +1 -1
  43. package/button/common.js +41 -30
  44. package/button/mini-button/mini-button-base-element.d.ts.map +1 -1
  45. package/button/mini-button/mini-button.d.ts.map +1 -1
  46. package/button/mini-button-group/mini-button-group.d.ts +2 -2
  47. package/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  48. package/button/mini-button-group.js +55 -43
  49. package/button/mini-button.js +30 -34
  50. package/button/secondary-button/secondary-button.d.ts.map +1 -1
  51. package/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
  52. package/button/secondary-button-link.js +15 -18
  53. package/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
  54. package/button/secondary-button-static.js +15 -18
  55. package/button/secondary-button.js +15 -18
  56. package/button/tertiary-button/tertiary-button.d.ts.map +1 -1
  57. package/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
  58. package/button/tertiary-button-link.js +15 -18
  59. package/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
  60. package/button/tertiary-button-static.js +15 -18
  61. package/button/tertiary-button.js +15 -18
  62. package/button/transparent-button/transparent-button.d.ts.map +1 -1
  63. package/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
  64. package/button/transparent-button-link.js +15 -18
  65. package/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
  66. package/button/transparent-button-static.js +15 -18
  67. package/button/transparent-button.js +15 -18
  68. package/calendar/calendar.d.ts +7 -7
  69. package/calendar/calendar.d.ts.map +1 -1
  70. package/calendar.js +638 -692
  71. package/card/card/card.d.ts +2 -2
  72. package/card/card/card.d.ts.map +1 -1
  73. package/card/card-badge/card-badge.d.ts +1 -1
  74. package/card/card-badge/card-badge.d.ts.map +1 -1
  75. package/card/card-badge.js +45 -34
  76. package/card/card-button/card-button.d.ts.map +1 -1
  77. package/card/card-button.js +16 -16
  78. package/card/card-link/card-link.d.ts.map +1 -1
  79. package/card/card-link.js +17 -17
  80. package/card/card.js +55 -36
  81. package/card/common/card-action-common.d.ts +1 -1
  82. package/card/common/card-action-common.d.ts.map +1 -1
  83. package/card/common.js +27 -33
  84. package/checkbox/checkbox/checkbox.d.ts +3 -4
  85. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  86. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
  87. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  88. package/checkbox/checkbox-group.js +99 -76
  89. package/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
  90. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  91. package/checkbox/checkbox-panel.js +51 -50
  92. package/checkbox/checkbox.js +54 -43
  93. package/checkbox/common/checkbox-common.d.ts +1 -1
  94. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  95. package/checkbox/common.js +39 -24
  96. package/chip/chip.d.ts +2 -2
  97. package/chip/chip.d.ts.map +1 -1
  98. package/chip.js +45 -26
  99. package/clock/clock.d.ts +1 -1
  100. package/clock/clock.d.ts.map +1 -1
  101. package/clock.js +136 -144
  102. package/container/container/container.d.ts +3 -3
  103. package/container/container/container.d.ts.map +1 -1
  104. package/container/container.js +60 -35
  105. package/container/sticky-bar/sticky-bar.d.ts +1 -1
  106. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  107. package/container/sticky-bar.js +55 -47
  108. package/core/a11y.js +29 -51
  109. package/core/base-elements/action-base-element.d.ts.map +1 -1
  110. package/core/base-elements/button-base-element.d.ts +2 -2
  111. package/core/base-elements/button-base-element.d.ts.map +1 -1
  112. package/core/base-elements/link-base-element.d.ts +5 -5
  113. package/core/base-elements/link-base-element.d.ts.map +1 -1
  114. package/core/base-elements.js +243 -196
  115. package/core/controllers.js +8 -13
  116. package/core/decorators/base.d.ts +14 -0
  117. package/core/decorators/base.d.ts.map +1 -0
  118. package/core/decorators/force-type.d.ts +8 -0
  119. package/core/decorators/force-type.d.ts.map +1 -0
  120. package/core/decorators/get-override.d.ts +7 -0
  121. package/core/decorators/get-override.d.ts.map +1 -0
  122. package/core/decorators/handle-distinct-change.d.ts +8 -0
  123. package/core/decorators/handle-distinct-change.d.ts.map +1 -0
  124. package/core/decorators/omit-empty-converter.d.ts +8 -0
  125. package/core/decorators/omit-empty-converter.d.ts.map +1 -0
  126. package/core/decorators.d.ts +4 -0
  127. package/core/decorators.d.ts.map +1 -1
  128. package/core/decorators.js +59 -15
  129. package/core/dom.js +1 -5
  130. package/core/eventing.js +1 -4
  131. package/core/interfaces/paginator-page.d.ts +7 -0
  132. package/core/interfaces/paginator-page.d.ts.map +1 -0
  133. package/core/interfaces.d.ts +1 -0
  134. package/core/interfaces.d.ts.map +1 -1
  135. package/core/mixins/disabled-mixin.d.ts +2 -3
  136. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  137. package/core/mixins/named-slot-list-mixin.d.ts +1 -1
  138. package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  139. package/core/mixins/negative-mixin.d.ts +1 -1
  140. package/core/mixins/negative-mixin.d.ts.map +1 -1
  141. package/core/mixins/panel-mixin.d.ts +3 -3
  142. package/core/mixins/panel-mixin.d.ts.map +1 -1
  143. package/core/mixins/required-mixin.d.ts +1 -2
  144. package/core/mixins/required-mixin.d.ts.map +1 -1
  145. package/core/mixins.js +290 -237
  146. package/core/testing/private.d.ts +1 -0
  147. package/core/testing/private.d.ts.map +1 -1
  148. package/core/testing.js +7 -13
  149. package/custom-elements.json +26385 -25594
  150. package/datepicker/common/datepicker-button.d.ts +2 -2
  151. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  152. package/datepicker/common.js +110 -116
  153. package/datepicker/datepicker/datepicker.d.ts +6 -6
  154. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  155. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  156. package/datepicker/datepicker-next-day.js +24 -26
  157. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  158. package/datepicker/datepicker-previous-day.js +25 -27
  159. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
  160. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  161. package/datepicker/datepicker-toggle.js +154 -136
  162. package/datepicker/datepicker.js +248 -213
  163. package/development/accordion/accordion.d.ts +4 -8
  164. package/development/accordion/accordion.d.ts.map +1 -1
  165. package/development/accordion.js +118 -93
  166. package/development/action-group/action-group.d.ts +5 -5
  167. package/development/action-group/action-group.d.ts.map +1 -1
  168. package/development/action-group.js +138 -64
  169. package/development/alert/alert/alert.d.ts +11 -11
  170. package/development/alert/alert/alert.d.ts.map +1 -1
  171. package/development/alert/alert-group/alert-group.d.ts +4 -4
  172. package/development/alert/alert-group/alert-group.d.ts.map +1 -1
  173. package/development/alert/alert-group.js +135 -79
  174. package/development/alert/alert.js +259 -109
  175. package/development/autocomplete/autocomplete-base-element.d.ts +3 -7
  176. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  177. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  178. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  179. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -0
  180. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  181. package/development/autocomplete-grid/autocomplete-grid-button.js +74 -75
  182. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -1
  183. package/development/autocomplete-grid/autocomplete-grid-cell.js +24 -24
  184. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  185. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +38 -39
  186. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  187. package/development/autocomplete-grid/autocomplete-grid-option.js +57 -73
  188. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -1
  189. package/development/autocomplete-grid/autocomplete-grid-row.js +28 -28
  190. package/development/autocomplete-grid/autocomplete-grid.js +142 -160
  191. package/development/autocomplete.js +394 -393
  192. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts +1 -1
  193. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
  194. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  195. package/development/breadcrumb/breadcrumb-group.js +130 -130
  196. package/development/breadcrumb/breadcrumb.js +53 -36
  197. package/development/button/button/button.d.ts.map +1 -1
  198. package/development/button/button-link/button-link.d.ts.map +1 -1
  199. package/development/button/button-link.js +18 -19
  200. package/development/button/button-static/button-static.d.ts.map +1 -1
  201. package/development/button/button-static.js +18 -19
  202. package/development/button/button.js +18 -19
  203. package/development/button/common/button-common.d.ts +4 -4
  204. package/development/button/common/button-common.d.ts.map +1 -1
  205. package/development/button/common.js +50 -29
  206. package/development/button/mini-button/mini-button-base-element.d.ts.map +1 -1
  207. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  208. package/development/button/mini-button-group/mini-button-group.d.ts +2 -2
  209. package/development/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  210. package/development/button/mini-button-group.js +77 -50
  211. package/development/button/mini-button.js +38 -37
  212. package/development/button/secondary-button/secondary-button.d.ts.map +1 -1
  213. package/development/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
  214. package/development/button/secondary-button-link.js +18 -19
  215. package/development/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
  216. package/development/button/secondary-button-static.js +18 -19
  217. package/development/button/secondary-button.js +18 -19
  218. package/development/button/tertiary-button/tertiary-button.d.ts.map +1 -1
  219. package/development/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
  220. package/development/button/tertiary-button-link.js +18 -19
  221. package/development/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
  222. package/development/button/tertiary-button-static.js +18 -19
  223. package/development/button/tertiary-button.js +18 -19
  224. package/development/button/transparent-button/transparent-button.d.ts.map +1 -1
  225. package/development/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
  226. package/development/button/transparent-button-link.js +18 -19
  227. package/development/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
  228. package/development/button/transparent-button-static.js +18 -19
  229. package/development/button/transparent-button.js +18 -19
  230. package/development/calendar/calendar.d.ts +7 -7
  231. package/development/calendar/calendar.d.ts.map +1 -1
  232. package/development/calendar.js +768 -766
  233. package/development/card/card/card.d.ts +2 -2
  234. package/development/card/card/card.d.ts.map +1 -1
  235. package/development/card/card-badge/card-badge.d.ts +1 -1
  236. package/development/card/card-badge/card-badge.d.ts.map +1 -1
  237. package/development/card/card-badge.js +65 -45
  238. package/development/card/card-button/card-button.d.ts.map +1 -1
  239. package/development/card/card-button.js +23 -20
  240. package/development/card/card-link/card-link.d.ts.map +1 -1
  241. package/development/card/card-link.js +23 -20
  242. package/development/card/card.js +72 -41
  243. package/development/card/common/card-action-common.d.ts +1 -1
  244. package/development/card/common/card-action-common.d.ts.map +1 -1
  245. package/development/card/common.js +74 -73
  246. package/development/checkbox/checkbox/checkbox.d.ts +3 -4
  247. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  248. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
  249. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  250. package/development/checkbox/checkbox-group.js +139 -92
  251. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
  252. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  253. package/development/checkbox/checkbox-panel.js +68 -60
  254. package/development/checkbox/checkbox.js +69 -46
  255. package/development/checkbox/common/checkbox-common.d.ts +1 -1
  256. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  257. package/development/checkbox/common.js +65 -46
  258. package/development/chip/chip.d.ts +2 -2
  259. package/development/chip/chip.d.ts.map +1 -1
  260. package/development/chip.js +64 -33
  261. package/development/clock/clock.d.ts +1 -1
  262. package/development/clock/clock.d.ts.map +1 -1
  263. package/development/clock.js +203 -201
  264. package/development/container/container/container.d.ts +3 -3
  265. package/development/container/container/container.d.ts.map +1 -1
  266. package/development/container/container.js +86 -45
  267. package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
  268. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  269. package/development/container/sticky-bar.js +76 -58
  270. package/development/core/a11y.js +40 -62
  271. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  272. package/development/core/base-elements/button-base-element.d.ts +2 -2
  273. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  274. package/development/core/base-elements/link-base-element.d.ts +5 -5
  275. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  276. package/development/core/base-elements.js +329 -226
  277. package/development/core/config.js +1 -1
  278. package/development/core/controllers.js +13 -21
  279. package/development/core/datetime.js +1 -1
  280. package/development/core/decorators/base.d.ts +14 -0
  281. package/development/core/decorators/base.d.ts.map +1 -0
  282. package/development/core/decorators/force-type.d.ts +8 -0
  283. package/development/core/decorators/force-type.d.ts.map +1 -0
  284. package/development/core/decorators/get-override.d.ts +7 -0
  285. package/development/core/decorators/get-override.d.ts.map +1 -0
  286. package/development/core/decorators/handle-distinct-change.d.ts +8 -0
  287. package/development/core/decorators/handle-distinct-change.d.ts.map +1 -0
  288. package/development/core/decorators/omit-empty-converter.d.ts +8 -0
  289. package/development/core/decorators/omit-empty-converter.d.ts.map +1 -0
  290. package/development/core/decorators.d.ts +4 -0
  291. package/development/core/decorators.d.ts.map +1 -1
  292. package/development/core/decorators.js +69 -5
  293. package/development/core/dom.js +2 -6
  294. package/development/core/eventing.js +2 -5
  295. package/development/core/i18n.js +1 -1
  296. package/development/core/interfaces/paginator-page.d.ts +7 -0
  297. package/development/core/interfaces/paginator-page.d.ts.map +1 -0
  298. package/development/core/interfaces.d.ts +1 -0
  299. package/development/core/interfaces.d.ts.map +1 -1
  300. package/development/core/mixins/disabled-mixin.d.ts +2 -3
  301. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  302. package/development/core/mixins/named-slot-list-mixin.d.ts +1 -1
  303. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  304. package/development/core/mixins/negative-mixin.d.ts +1 -1
  305. package/development/core/mixins/negative-mixin.d.ts.map +1 -1
  306. package/development/core/mixins/panel-mixin.d.ts +3 -3
  307. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  308. package/development/core/mixins/required-mixin.d.ts +1 -2
  309. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  310. package/development/core/mixins.js +573 -475
  311. package/development/core/observers.js +1 -1
  312. package/development/core/overlay.js +1 -1
  313. package/development/core/testing/private.d.ts +1 -0
  314. package/development/core/testing/private.d.ts.map +1 -1
  315. package/development/core/testing.js +16 -22
  316. package/development/datepicker/common/datepicker-button.d.ts +2 -2
  317. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  318. package/development/datepicker/common.js +144 -142
  319. package/development/datepicker/datepicker/datepicker.d.ts +6 -6
  320. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  321. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  322. package/development/datepicker/datepicker-next-day.js +32 -32
  323. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  324. package/development/datepicker/datepicker-previous-day.js +32 -32
  325. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
  326. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  327. package/development/datepicker/datepicker-toggle.js +227 -174
  328. package/development/datepicker/datepicker.js +327 -249
  329. package/development/dialog/dialog/dialog.d.ts +1 -1
  330. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  331. package/development/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
  332. package/development/dialog/dialog-actions.js +21 -20
  333. package/development/dialog/dialog-content/dialog-content.d.ts.map +1 -1
  334. package/development/dialog/dialog-content.js +22 -21
  335. package/development/dialog/dialog-title/dialog-title.d.ts +3 -3
  336. package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  337. package/development/dialog/dialog-title.js +121 -66
  338. package/development/dialog/dialog.js +205 -191
  339. package/development/divider/divider.d.ts +1 -1
  340. package/development/divider/divider.d.ts.map +1 -1
  341. package/development/divider.js +55 -36
  342. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
  343. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  344. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
  345. package/development/expansion-panel/expansion-panel-content.js +25 -25
  346. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  347. package/development/expansion-panel/expansion-panel-header.js +56 -63
  348. package/development/expansion-panel/expansion-panel.js +227 -182
  349. package/development/file-selector/file-selector.d.ts +8 -7
  350. package/development/file-selector/file-selector.d.ts.map +1 -1
  351. package/development/file-selector.js +295 -198
  352. package/development/flip-card/flip-card/flip-card.d.ts +2 -2
  353. package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
  354. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  355. package/development/flip-card/flip-card-details.js +39 -39
  356. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  357. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  358. package/development/flip-card/flip-card-summary.js +57 -38
  359. package/development/flip-card/flip-card.js +110 -78
  360. package/development/footer/footer.d.ts +4 -4
  361. package/development/footer/footer.d.ts.map +1 -1
  362. package/development/footer.js +103 -41
  363. package/development/form-error/form-error.d.ts.map +1 -1
  364. package/development/form-error.js +29 -28
  365. package/development/form-field/form-field/form-field.d.ts +10 -10
  366. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  367. package/development/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  368. package/development/form-field/form-field-clear.js +50 -50
  369. package/development/form-field/form-field.js +439 -328
  370. package/development/header/common/header-action-common.d.ts +2 -2
  371. package/development/header/common/header-action-common.d.ts.map +1 -1
  372. package/development/header/common.js +44 -24
  373. package/development/header/header/header.d.ts +4 -4
  374. package/development/header/header/header.d.ts.map +1 -1
  375. package/development/header/header-button/header-button.d.ts.map +1 -1
  376. package/development/header/header-button.js +19 -18
  377. package/development/header/header-link/header-link.d.ts.map +1 -1
  378. package/development/header/header-link.js +19 -16
  379. package/development/header/header.js +198 -140
  380. package/development/icon/icon-base.d.ts +3 -4
  381. package/development/icon/icon-base.d.ts.map +1 -1
  382. package/development/icon/icon-name-mixin.d.ts +1 -1
  383. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  384. package/development/icon/icon.d.ts +2 -2
  385. package/development/icon/icon.d.ts.map +1 -1
  386. package/development/icon.js +258 -157
  387. package/development/image/image.d.ts +17 -17
  388. package/development/image/image.d.ts.map +1 -1
  389. package/development/image.js +584 -216
  390. package/development/journey-header/journey-header.d.ts +5 -5
  391. package/development/journey-header/journey-header.d.ts.map +1 -1
  392. package/development/journey-header.js +115 -43
  393. package/development/lead-container/lead-container.d.ts.map +1 -1
  394. package/development/lead-container.js +22 -21
  395. package/development/link/block-link/block-link.d.ts.map +1 -1
  396. package/development/link/block-link-button/block-link-button.d.ts.map +1 -1
  397. package/development/link/block-link-button.js +19 -18
  398. package/development/link/block-link-static/block-link-static.d.ts.map +1 -1
  399. package/development/link/block-link-static.js +19 -18
  400. package/development/link/block-link.js +19 -18
  401. package/development/link/common/block-link-common.d.ts +4 -3
  402. package/development/link/common/block-link-common.d.ts.map +1 -1
  403. package/development/link/common/link-common.d.ts +1 -1
  404. package/development/link/common/link-common.d.ts.map +1 -1
  405. package/development/link/common.js +81 -51
  406. package/development/link/link/link.d.ts.map +1 -1
  407. package/development/link/link-button/link-button.d.ts.map +1 -1
  408. package/development/link/link-button.js +19 -18
  409. package/development/link/link-static/link-static.d.ts.map +1 -1
  410. package/development/link/link-static.js +19 -18
  411. package/development/link/link.js +19 -18
  412. package/development/link-list/common/link-list-base.d.ts +3 -3
  413. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  414. package/development/link-list/common.js +97 -48
  415. package/development/link-list/link-list/link-list.d.ts +2 -2
  416. package/development/link-list/link-list/link-list.d.ts.map +1 -1
  417. package/development/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
  418. package/development/link-list/link-list-anchor.js +18 -17
  419. package/development/link-list/link-list.js +60 -28
  420. package/development/loading-indicator/loading-indicator.d.ts +3 -3
  421. package/development/loading-indicator/loading-indicator.d.ts.map +1 -1
  422. package/development/loading-indicator.js +82 -40
  423. package/development/logo/logo.d.ts +2 -2
  424. package/development/logo/logo.d.ts.map +1 -1
  425. package/development/logo.js +64 -32
  426. package/development/map-container/map-container.d.ts +2 -2
  427. package/development/map-container/map-container.d.ts.map +1 -1
  428. package/development/map-container.js +107 -75
  429. package/development/menu/common/menu-action-common.d.ts +2 -2
  430. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  431. package/development/menu/common.js +41 -20
  432. package/development/menu/menu/menu.d.ts +1 -1
  433. package/development/menu/menu/menu.d.ts.map +1 -1
  434. package/development/menu/menu-button/menu-button.d.ts.map +1 -1
  435. package/development/menu/menu-button.js +19 -18
  436. package/development/menu/menu-link/menu-link.d.ts.map +1 -1
  437. package/development/menu/menu-link.js +19 -18
  438. package/development/menu/menu.js +261 -241
  439. package/development/message/message.d.ts +2 -2
  440. package/development/message/message.d.ts.map +1 -1
  441. package/development/message.js +65 -32
  442. package/development/navigation/common/navigation-action-common.d.ts +1 -1
  443. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  444. package/development/navigation/common.js +63 -52
  445. package/development/navigation/navigation/navigation.d.ts +2 -2
  446. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  447. package/development/navigation/navigation-button/navigation-button.d.ts.map +1 -1
  448. package/development/navigation/navigation-button.js +19 -18
  449. package/development/navigation/navigation-link/navigation-link.d.ts.map +1 -1
  450. package/development/navigation/navigation-link.js +19 -18
  451. package/development/navigation/navigation-list/navigation-list.d.ts +1 -1
  452. package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  453. package/development/navigation/navigation-list.js +64 -41
  454. package/development/navigation/navigation-marker/navigation-marker.d.ts +1 -1
  455. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  456. package/development/navigation/navigation-marker.js +108 -91
  457. package/development/navigation/navigation-section/navigation-section.d.ts +3 -3
  458. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  459. package/development/navigation/navigation-section.js +282 -236
  460. package/development/navigation/navigation.js +278 -254
  461. package/development/notification/notification.d.ts +6 -6
  462. package/development/notification/notification.d.ts.map +1 -1
  463. package/development/notification.js +212 -146
  464. package/development/option/optgroup/optgroup-base-element.d.ts +3 -3
  465. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  466. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  467. package/development/option/optgroup.js +187 -142
  468. package/development/option/option/option-base-element.d.ts +7 -7
  469. package/development/option/option/option-base-element.d.ts.map +1 -1
  470. package/development/option/option/option.d.ts.map +1 -1
  471. package/development/option/option.js +392 -296
  472. package/development/overlay/overlay-base-element.d.ts +1 -1
  473. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  474. package/development/overlay/overlay.d.ts +4 -4
  475. package/development/overlay/overlay.d.ts.map +1 -1
  476. package/development/overlay.js +260 -207
  477. package/development/paginator/common/paginator-common.d.ts +26 -0
  478. package/development/paginator/common/paginator-common.d.ts.map +1 -0
  479. package/development/paginator/common.d.ts +2 -0
  480. package/development/paginator/common.d.ts.map +1 -0
  481. package/development/paginator/common.js +189 -0
  482. package/development/paginator/compact-paginator/compact-paginator.d.ts +20 -0
  483. package/development/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
  484. package/development/paginator/compact-paginator.d.ts +2 -0
  485. package/development/paginator/compact-paginator.d.ts.map +1 -0
  486. package/development/paginator/compact-paginator.js +96 -0
  487. package/development/paginator/paginator/paginator.d.ts +51 -0
  488. package/development/paginator/paginator/paginator.d.ts.map +1 -0
  489. package/development/paginator/paginator.d.ts +1 -90
  490. package/development/paginator/paginator.d.ts.map +1 -1
  491. package/development/paginator/paginator.js +449 -0
  492. package/development/paginator.d.ts +2 -0
  493. package/development/paginator.d.ts.map +1 -1
  494. package/development/paginator.js +4 -541
  495. package/development/popover/popover/popover.d.ts +6 -7
  496. package/development/popover/popover/popover.d.ts.map +1 -1
  497. package/development/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
  498. package/development/popover/popover-trigger.js +28 -29
  499. package/development/popover/popover.js +358 -303
  500. package/development/radio-button/common/radio-button-common.d.ts +1 -1
  501. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  502. package/development/radio-button/common.js +170 -127
  503. package/development/radio-button/radio-button/radio-button.d.ts +2 -6
  504. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  505. package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
  506. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  507. package/development/radio-button/radio-button-group.js +269 -199
  508. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
  509. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  510. package/development/radio-button/radio-button-panel.js +60 -48
  511. package/development/radio-button/radio-button.js +54 -40
  512. package/development/screen-reader-only/screen-reader-only.d.ts.map +1 -1
  513. package/development/screen-reader-only.js +22 -21
  514. package/development/select/select.d.ts +5 -4
  515. package/development/select/select.d.ts.map +1 -1
  516. package/development/select.js +555 -555
  517. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
  518. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  519. package/development/selection-expansion-panel.js +223 -193
  520. package/development/signet/signet.d.ts +2 -2
  521. package/development/signet/signet.d.ts.map +1 -1
  522. package/development/signet.js +65 -33
  523. package/development/skiplink-list/skiplink-list.d.ts +2 -2
  524. package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
  525. package/development/skiplink-list.js +74 -41
  526. package/development/slider/slider.d.ts +5 -4
  527. package/development/slider/slider.d.ts.map +1 -1
  528. package/development/slider.js +260 -184
  529. package/development/status/status.d.ts +3 -3
  530. package/development/status/status.d.ts.map +1 -1
  531. package/development/status.js +96 -51
  532. package/development/stepper/step/step.d.ts.map +1 -1
  533. package/development/stepper/step-label/step-label.d.ts.map +1 -1
  534. package/development/stepper/step-label.js +86 -90
  535. package/development/stepper/step.js +122 -126
  536. package/development/stepper/stepper/stepper.d.ts +3 -3
  537. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  538. package/development/stepper/stepper.js +291 -241
  539. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  540. package/development/table/table-wrapper.js +37 -39
  541. package/development/tabs/tab/tab.d.ts.map +1 -1
  542. package/development/tabs/tab-group/tab-group.d.ts +2 -2
  543. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  544. package/development/tabs/tab-group.js +296 -279
  545. package/development/tabs/tab-label/tab-label.d.ts +3 -3
  546. package/development/tabs/tab-label/tab-label.d.ts.map +1 -1
  547. package/development/tabs/tab-label.js +83 -37
  548. package/development/tabs/tab.js +40 -39
  549. package/development/tag/tag/tag.d.ts +3 -5
  550. package/development/tag/tag/tag.d.ts.map +1 -1
  551. package/development/tag/tag-group/tag-group.d.ts +3 -3
  552. package/development/tag/tag-group/tag-group.d.ts.map +1 -1
  553. package/development/tag/tag-group.js +143 -88
  554. package/development/tag/tag.js +126 -89
  555. package/development/teaser/teaser.d.ts +4 -4
  556. package/development/teaser/teaser.d.ts.map +1 -1
  557. package/development/teaser-hero/teaser-hero.d.ts +3 -3
  558. package/development/teaser-hero/teaser-hero.d.ts.map +1 -1
  559. package/development/teaser-hero.js +83 -36
  560. package/development/teaser-product/common/teaser-product-common.d.ts +1 -1
  561. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  562. package/development/teaser-product/common.js +51 -26
  563. package/development/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
  564. package/development/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
  565. package/development/teaser-product/teaser-product-static.js +18 -19
  566. package/development/teaser-product/teaser-product.js +18 -19
  567. package/development/teaser.js +94 -40
  568. package/development/time-input/time-input.d.ts +1 -1
  569. package/development/time-input/time-input.d.ts.map +1 -1
  570. package/development/time-input.js +225 -219
  571. package/development/timetable-occupancy/timetable-occupancy.d.ts +2 -2
  572. package/development/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
  573. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
  574. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  575. package/development/timetable-occupancy-icon.js +78 -57
  576. package/development/timetable-occupancy.js +67 -35
  577. package/development/title/title-base.d.ts +3 -3
  578. package/development/title/title-base.d.ts.map +1 -1
  579. package/development/title/title.d.ts.map +1 -1
  580. package/development/title.js +106 -58
  581. package/development/toast/toast.d.ts +4 -4
  582. package/development/toast/toast.d.ts.map +1 -1
  583. package/development/toast.js +204 -146
  584. package/development/toggle/toggle/toggle.d.ts +3 -5
  585. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  586. package/development/toggle/toggle-option/toggle-option.d.ts +2 -2
  587. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  588. package/development/toggle/toggle-option.js +127 -93
  589. package/development/toggle/toggle.js +200 -163
  590. package/development/toggle-check/toggle-check.d.ts +4 -3
  591. package/development/toggle-check/toggle-check.d.ts.map +1 -1
  592. package/development/toggle-check.js +87 -49
  593. package/development/train/train/train.d.ts +5 -5
  594. package/development/train/train/train.d.ts.map +1 -1
  595. package/development/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
  596. package/development/train/train-blocked-passage.js +22 -21
  597. package/development/train/train-formation/train-formation.d.ts +2 -2
  598. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  599. package/development/train/train-formation.js +113 -90
  600. package/development/train/train-wagon/train-wagon.d.ts +7 -9
  601. package/development/train/train-wagon/train-wagon.d.ts.map +1 -1
  602. package/development/train/train-wagon.js +166 -87
  603. package/development/train/train.js +142 -75
  604. package/development/visual-checkbox/visual-checkbox.d.ts +3 -3
  605. package/development/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  606. package/development/visual-checkbox.js +79 -36
  607. package/dialog/dialog/dialog.d.ts +1 -1
  608. package/dialog/dialog/dialog.d.ts.map +1 -1
  609. package/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
  610. package/dialog/dialog-actions.js +18 -19
  611. package/dialog/dialog-content/dialog-content.d.ts.map +1 -1
  612. package/dialog/dialog-content.js +17 -18
  613. package/dialog/dialog-title/dialog-title.d.ts +3 -3
  614. package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  615. package/dialog/dialog-title.js +98 -66
  616. package/dialog/dialog.js +120 -114
  617. package/divider/divider.d.ts +1 -1
  618. package/divider/divider.d.ts.map +1 -1
  619. package/divider.js +41 -30
  620. package/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
  621. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  622. package/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
  623. package/expansion-panel/expansion-panel-content.js +20 -22
  624. package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  625. package/expansion-panel/expansion-panel-header.js +53 -61
  626. package/expansion-panel/expansion-panel.js +145 -130
  627. package/file-selector/file-selector.d.ts +8 -7
  628. package/file-selector/file-selector.d.ts.map +1 -1
  629. package/file-selector.js +224 -174
  630. package/flip-card/flip-card/flip-card.d.ts +2 -2
  631. package/flip-card/flip-card/flip-card.d.ts.map +1 -1
  632. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  633. package/flip-card/flip-card-details.js +36 -38
  634. package/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  635. package/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  636. package/flip-card/flip-card-summary.js +42 -31
  637. package/flip-card/flip-card.js +88 -69
  638. package/footer/footer.d.ts +4 -4
  639. package/footer/footer.d.ts.map +1 -1
  640. package/footer.js +78 -37
  641. package/form-error/form-error.d.ts.map +1 -1
  642. package/form-error.js +24 -25
  643. package/form-field/form-field/form-field.d.ts +10 -10
  644. package/form-field/form-field/form-field.d.ts.map +1 -1
  645. package/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  646. package/form-field/form-field-clear.js +39 -41
  647. package/form-field/form-field.js +295 -239
  648. package/header/common/header-action-common.d.ts +2 -2
  649. package/header/common/header-action-common.d.ts.map +1 -1
  650. package/header/common.js +36 -21
  651. package/header/header/header.d.ts +4 -4
  652. package/header/header/header.d.ts.map +1 -1
  653. package/header/header-button/header-button.d.ts.map +1 -1
  654. package/header/header-button.js +14 -16
  655. package/header/header-link/header-link.d.ts.map +1 -1
  656. package/header/header-link.js +14 -14
  657. package/header/header.js +138 -109
  658. package/icon/icon-base.d.ts +3 -4
  659. package/icon/icon-base.d.ts.map +1 -1
  660. package/icon/icon-name-mixin.d.ts +1 -1
  661. package/icon/icon-name-mixin.d.ts.map +1 -1
  662. package/icon/icon.d.ts +2 -2
  663. package/icon/icon.d.ts.map +1 -1
  664. package/icon.js +230 -165
  665. package/image/image.d.ts +17 -17
  666. package/image/image.d.ts.map +1 -1
  667. package/image.js +465 -195
  668. package/index.d.ts +3 -1
  669. package/index.js +3 -1
  670. package/journey-header/journey-header.d.ts +5 -5
  671. package/journey-header/journey-header.d.ts.map +1 -1
  672. package/journey-header.js +89 -49
  673. package/lead-container/lead-container.d.ts.map +1 -1
  674. package/lead-container.js +17 -18
  675. package/link/block-link/block-link.d.ts.map +1 -1
  676. package/link/block-link-button/block-link-button.d.ts.map +1 -1
  677. package/link/block-link-button.js +15 -17
  678. package/link/block-link-static/block-link-static.d.ts.map +1 -1
  679. package/link/block-link-static.js +14 -16
  680. package/link/block-link.js +15 -17
  681. package/link/common/block-link-common.d.ts +4 -3
  682. package/link/common/block-link-common.d.ts.map +1 -1
  683. package/link/common/link-common.d.ts +1 -1
  684. package/link/common/link-common.d.ts.map +1 -1
  685. package/link/common.js +64 -46
  686. package/link/link/link.d.ts.map +1 -1
  687. package/link/link-button/link-button.d.ts.map +1 -1
  688. package/link/link-button.js +15 -17
  689. package/link/link-static/link-static.d.ts.map +1 -1
  690. package/link/link-static.js +15 -17
  691. package/link/link.js +15 -17
  692. package/link-list/common/link-list-base.d.ts +3 -3
  693. package/link-list/common/link-list-base.d.ts.map +1 -1
  694. package/link-list/common.js +72 -44
  695. package/link-list/link-list/link-list.d.ts +2 -2
  696. package/link-list/link-list/link-list.d.ts.map +1 -1
  697. package/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
  698. package/link-list/link-list-anchor.js +15 -16
  699. package/link-list/link-list.js +43 -24
  700. package/loading-indicator/loading-indicator.d.ts +3 -3
  701. package/loading-indicator/loading-indicator.d.ts.map +1 -1
  702. package/loading-indicator.js +61 -36
  703. package/logo/logo.d.ts +2 -2
  704. package/logo/logo.d.ts.map +1 -1
  705. package/logo.js +47 -27
  706. package/map-container/map-container.d.ts +2 -2
  707. package/map-container/map-container.d.ts.map +1 -1
  708. package/map-container.js +84 -65
  709. package/menu/common/menu-action-common.d.ts +2 -2
  710. package/menu/common/menu-action-common.d.ts.map +1 -1
  711. package/menu/common.js +37 -22
  712. package/menu/menu/menu.d.ts +1 -1
  713. package/menu/menu/menu.d.ts.map +1 -1
  714. package/menu/menu-button/menu-button.d.ts.map +1 -1
  715. package/menu/menu-button.js +14 -16
  716. package/menu/menu-link/menu-link.d.ts.map +1 -1
  717. package/menu/menu-link.js +15 -17
  718. package/menu/menu.js +175 -170
  719. package/message/message.d.ts +2 -2
  720. package/message/message.d.ts.map +1 -1
  721. package/message.js +47 -27
  722. package/navigation/common/navigation-action-common.d.ts +1 -1
  723. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  724. package/navigation/common.js +38 -33
  725. package/navigation/navigation/navigation.d.ts +2 -2
  726. package/navigation/navigation/navigation.d.ts.map +1 -1
  727. package/navigation/navigation-button/navigation-button.d.ts.map +1 -1
  728. package/navigation/navigation-button.js +14 -16
  729. package/navigation/navigation-link/navigation-link.d.ts.map +1 -1
  730. package/navigation/navigation-link.js +14 -16
  731. package/navigation/navigation-list/navigation-list.d.ts +1 -1
  732. package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  733. package/navigation/navigation-list.js +48 -35
  734. package/navigation/navigation-marker/navigation-marker.d.ts +1 -1
  735. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  736. package/navigation/navigation-marker.js +77 -69
  737. package/navigation/navigation-section/navigation-section.d.ts +3 -3
  738. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  739. package/navigation/navigation-section.js +192 -171
  740. package/navigation/navigation.js +185 -181
  741. package/notification/notification.d.ts +6 -6
  742. package/notification/notification.d.ts.map +1 -1
  743. package/notification.js +147 -116
  744. package/option/optgroup/optgroup-base-element.d.ts +3 -3
  745. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  746. package/option/optgroup/optgroup.d.ts.map +1 -1
  747. package/option/optgroup.js +131 -112
  748. package/option/option/option-base-element.d.ts +7 -7
  749. package/option/option/option-base-element.d.ts.map +1 -1
  750. package/option/option/option.d.ts.map +1 -1
  751. package/option/option.js +295 -252
  752. package/overlay/overlay-base-element.d.ts +1 -1
  753. package/overlay/overlay-base-element.d.ts.map +1 -1
  754. package/overlay/overlay.d.ts +4 -4
  755. package/overlay/overlay.d.ts.map +1 -1
  756. package/overlay.js +194 -165
  757. package/package.json +18 -2
  758. package/paginator/common/paginator-common.d.ts +26 -0
  759. package/paginator/common/paginator-common.d.ts.map +1 -0
  760. package/paginator/common.d.ts +2 -0
  761. package/paginator/common.d.ts.map +1 -0
  762. package/paginator/common.js +145 -0
  763. package/paginator/compact-paginator/compact-paginator.d.ts +20 -0
  764. package/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
  765. package/paginator/compact-paginator.d.ts +2 -0
  766. package/paginator/compact-paginator.d.ts.map +1 -0
  767. package/paginator/compact-paginator.js +40 -0
  768. package/paginator/paginator/paginator.d.ts +51 -0
  769. package/paginator/paginator/paginator.d.ts.map +1 -0
  770. package/paginator/paginator.d.ts +1 -90
  771. package/paginator/paginator.d.ts.map +1 -1
  772. package/paginator/paginator.js +171 -0
  773. package/paginator.d.ts +2 -0
  774. package/paginator.d.ts.map +1 -1
  775. package/paginator.js +3 -265
  776. package/popover/popover/popover.d.ts +6 -7
  777. package/popover/popover/popover.d.ts.map +1 -1
  778. package/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
  779. package/popover/popover-trigger.js +26 -29
  780. package/popover/popover.js +230 -208
  781. package/radio-button/common/radio-button-common.d.ts +1 -1
  782. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  783. package/radio-button/common.js +67 -43
  784. package/radio-button/radio-button/radio-button.d.ts +2 -6
  785. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  786. package/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
  787. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  788. package/radio-button/radio-button-group.js +192 -156
  789. package/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
  790. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  791. package/radio-button/radio-button-panel.js +49 -45
  792. package/radio-button/radio-button.js +43 -37
  793. package/screen-reader-only/screen-reader-only.d.ts.map +1 -1
  794. package/screen-reader-only.js +17 -18
  795. package/select/select.d.ts +5 -4
  796. package/select/select.d.ts.map +1 -1
  797. package/select.js +377 -401
  798. package/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
  799. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  800. package/selection-expansion-panel.js +157 -148
  801. package/signet/signet.d.ts +2 -2
  802. package/signet/signet.d.ts.map +1 -1
  803. package/signet.js +48 -28
  804. package/skiplink-list/skiplink-list.d.ts +2 -2
  805. package/skiplink-list/skiplink-list.d.ts.map +1 -1
  806. package/skiplink-list.js +54 -36
  807. package/slider/slider.d.ts +5 -4
  808. package/slider/slider.d.ts.map +1 -1
  809. package/slider.js +197 -158
  810. package/status/status.d.ts +3 -3
  811. package/status/status.d.ts.map +1 -1
  812. package/status.js +71 -46
  813. package/stepper/step/step.d.ts.map +1 -1
  814. package/stepper/step-label/step-label.d.ts.map +1 -1
  815. package/stepper/step-label.js +69 -75
  816. package/stepper/step.js +99 -104
  817. package/stepper/stepper/stepper.d.ts +3 -3
  818. package/stepper/stepper/stepper.d.ts.map +1 -1
  819. package/stepper/stepper.js +208 -188
  820. package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  821. package/table/table-wrapper.js +32 -36
  822. package/tabs/tab/tab.d.ts.map +1 -1
  823. package/tabs/tab-group/tab-group.d.ts +2 -2
  824. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  825. package/tabs/tab-group.js +200 -193
  826. package/tabs/tab-label/tab-label.d.ts +3 -3
  827. package/tabs/tab-label/tab-label.d.ts.map +1 -1
  828. package/tabs/tab-label.js +65 -37
  829. package/tabs/tab.js +34 -35
  830. package/tag/tag/tag.d.ts +3 -5
  831. package/tag/tag/tag.d.ts.map +1 -1
  832. package/tag/tag-group/tag-group.d.ts +3 -3
  833. package/tag/tag-group/tag-group.d.ts.map +1 -1
  834. package/tag/tag-group.js +107 -75
  835. package/tag/tag.js +92 -73
  836. package/teaser/teaser.d.ts +4 -4
  837. package/teaser/teaser.d.ts.map +1 -1
  838. package/teaser-hero/teaser-hero.d.ts +3 -3
  839. package/teaser-hero/teaser-hero.d.ts.map +1 -1
  840. package/teaser-hero.js +66 -38
  841. package/teaser-product/common/teaser-product-common.d.ts +1 -1
  842. package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  843. package/teaser-product/common.js +36 -21
  844. package/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
  845. package/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
  846. package/teaser-product/teaser-product-static.js +14 -17
  847. package/teaser-product/teaser-product.js +14 -17
  848. package/teaser.js +69 -37
  849. package/time-input/time-input.d.ts +1 -1
  850. package/time-input/time-input.d.ts.map +1 -1
  851. package/time-input.js +160 -166
  852. package/timetable-occupancy/timetable-occupancy.d.ts +2 -2
  853. package/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
  854. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
  855. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  856. package/timetable-occupancy-icon.js +60 -48
  857. package/timetable-occupancy.js +55 -38
  858. package/title/title-base.d.ts +3 -3
  859. package/title/title-base.d.ts.map +1 -1
  860. package/title/title.d.ts.map +1 -1
  861. package/title.js +81 -53
  862. package/toast/toast.d.ts +4 -4
  863. package/toast/toast.d.ts.map +1 -1
  864. package/toast.js +156 -123
  865. package/toggle/toggle/toggle.d.ts +3 -5
  866. package/toggle/toggle/toggle.d.ts.map +1 -1
  867. package/toggle/toggle-option/toggle-option.d.ts +2 -2
  868. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  869. package/toggle/toggle-option.js +89 -72
  870. package/toggle/toggle.js +139 -122
  871. package/toggle-check/toggle-check.d.ts +4 -3
  872. package/toggle-check/toggle-check.d.ts.map +1 -1
  873. package/toggle-check.js +63 -41
  874. package/train/train/train.d.ts +5 -5
  875. package/train/train/train.d.ts.map +1 -1
  876. package/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
  877. package/train/train-blocked-passage.js +17 -18
  878. package/train/train-formation/train-formation.d.ts +2 -2
  879. package/train/train-formation/train-formation.d.ts.map +1 -1
  880. package/train/train-formation.js +96 -87
  881. package/train/train-wagon/train-wagon.d.ts +7 -9
  882. package/train/train-wagon/train-wagon.d.ts.map +1 -1
  883. package/train/train-wagon.js +150 -110
  884. package/train/train.js +108 -71
  885. package/visual-checkbox/visual-checkbox.d.ts +3 -3
  886. package/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  887. package/visual-checkbox.js +59 -32
@@ -1,10 +1,18 @@
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
3
+ };
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
+ import { __runInitializers, __esDecorate } from "tslib";
1
9
  import { css, LitElement, nothing } from "lit";
2
- import { property, customElement } from "lit/decorators.js";
10
+ import { customElement, property } from "lit/decorators.js";
3
11
  import { ref } from "lit/directives/ref.js";
4
12
  import { html, unsafeStatic } from "lit/static-html.js";
5
13
  import { sbbInputModalityDetector } from "./core/a11y.js";
6
14
  import { SbbLanguageController } from "./core/controllers.js";
7
- import { slotState } from "./core/decorators.js";
15
+ import { slotState, forceType } from "./core/decorators.js";
8
16
  import { EventEmitter, forwardEventToHost } from "./core/eventing.js";
9
17
  import { i18nFileSelectorCurrentlySelected, i18nFileSelectorButtonLabel, i18nFileSelectorSubtitleLabel, i18nFileSelectorDeleteFile } from "./core/i18n.js";
10
18
  import { SbbDisabledMixin, SbbFormAssociatedMixin } from "./core/mixins.js";
@@ -159,166 +167,247 @@ const style = css`*,
159
167
  :host(:not([data-slot-names~=error])) .sbb-file-selector__error {
160
168
  display: none;
161
169
  }`;
162
- var __defProp = Object.defineProperty;
163
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
164
- var __decorateClass = (decorators, target, key, kind) => {
165
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
166
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
167
- if (decorator = decorators[i])
168
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
169
- if (kind && result) __defProp(target, key, result);
170
- return result;
171
- };
172
- let SbbFileSelectorElement = class extends SbbDisabledMixin(SbbFormAssociatedMixin(LitElement)) {
173
- constructor() {
174
- super(...arguments);
175
- this.variant = "default";
176
- this.size = "m";
177
- this.multiple = false;
178
- this.multipleMode = "default";
179
- this._files = [];
180
- this._fileChangedEvent = new EventEmitter(
181
- this,
182
- SbbFileSelectorElement.events.fileChangedEvent
183
- );
184
- this._counter = 0;
185
- this._suffixes = ["B", "kB", "MB", "GB", "TB"];
186
- this._language = new SbbLanguageController(this);
187
- }
188
- set value(value) {
189
- this._hiddenInput.value = value ?? "";
190
- if (!value) {
170
+ let SbbFileSelectorElement = (() => {
171
+ var _variant_accessor_storage, _size_accessor_storage, _multiple_accessor_storage, _multipleMode_accessor_storage, _accept_accessor_storage, _titleContent_accessor_storage, _accessibilityLabel_accessor_storage, _a;
172
+ let _classDecorators = [customElement("sbb-file-selector"), slotState()];
173
+ let _classDescriptor;
174
+ let _classExtraInitializers = [];
175
+ let _classThis;
176
+ let _classSuper = SbbDisabledMixin(SbbFormAssociatedMixin(LitElement));
177
+ let _instanceExtraInitializers = [];
178
+ let _variant_decorators;
179
+ let _variant_initializers = [];
180
+ let _variant_extraInitializers = [];
181
+ let _size_decorators;
182
+ let _size_initializers = [];
183
+ let _size_extraInitializers = [];
184
+ let _multiple_decorators;
185
+ let _multiple_initializers = [];
186
+ let _multiple_extraInitializers = [];
187
+ let _multipleMode_decorators;
188
+ let _multipleMode_initializers = [];
189
+ let _multipleMode_extraInitializers = [];
190
+ let _accept_decorators;
191
+ let _accept_initializers = [];
192
+ let _accept_extraInitializers = [];
193
+ let _titleContent_decorators;
194
+ let _titleContent_initializers = [];
195
+ let _titleContent_extraInitializers = [];
196
+ let _accessibilityLabel_decorators;
197
+ let _accessibilityLabel_initializers = [];
198
+ let _accessibilityLabel_extraInitializers = [];
199
+ let _set_value_decorators;
200
+ let _set_files_decorators;
201
+ var SbbFileSelectorElement2 = (_a = class extends _classSuper {
202
+ constructor() {
203
+ super(...arguments);
204
+ __privateAdd(this, _variant_accessor_storage);
205
+ __privateAdd(this, _size_accessor_storage);
206
+ __privateAdd(this, _multiple_accessor_storage);
207
+ __privateAdd(this, _multipleMode_accessor_storage);
208
+ __privateAdd(this, _accept_accessor_storage);
209
+ __privateAdd(this, _titleContent_accessor_storage);
210
+ __privateAdd(this, _accessibilityLabel_accessor_storage);
211
+ __privateSet(this, _variant_accessor_storage, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _variant_initializers, "default")));
212
+ __privateSet(this, _size_accessor_storage, (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _size_initializers, "m")));
213
+ __privateSet(this, _multiple_accessor_storage, (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _multiple_initializers, false)));
214
+ __privateSet(this, _multipleMode_accessor_storage, (__runInitializers(this, _multiple_extraInitializers), __runInitializers(this, _multipleMode_initializers, "default")));
215
+ __privateSet(this, _accept_accessor_storage, (__runInitializers(this, _multipleMode_extraInitializers), __runInitializers(this, _accept_initializers, "")));
216
+ __privateSet(this, _titleContent_accessor_storage, (__runInitializers(this, _accept_extraInitializers), __runInitializers(this, _titleContent_initializers, "")));
217
+ __privateSet(this, _accessibilityLabel_accessor_storage, (__runInitializers(this, _titleContent_extraInitializers), __runInitializers(this, _accessibilityLabel_initializers, "")));
218
+ this._files = (__runInitializers(this, _accessibilityLabel_extraInitializers), []);
219
+ this._fileChangedEvent = new EventEmitter(this, SbbFileSelectorElement2.events.fileChangedEvent);
220
+ this._counter = 0;
221
+ this._suffixes = ["B", "kB", "MB", "GB", "TB"];
222
+ this._language = new SbbLanguageController(this);
223
+ }
224
+ /** Whether the component has a dropzone area or not. */
225
+ get variant() {
226
+ return __privateGet(this, _variant_accessor_storage);
227
+ }
228
+ set variant(value) {
229
+ __privateSet(this, _variant_accessor_storage, value);
230
+ }
231
+ /** Size variant, either s or m. */
232
+ get size() {
233
+ return __privateGet(this, _size_accessor_storage);
234
+ }
235
+ set size(value) {
236
+ __privateSet(this, _size_accessor_storage, value);
237
+ }
238
+ /** Whether more than one file can be selected. */
239
+ get multiple() {
240
+ return __privateGet(this, _multiple_accessor_storage);
241
+ }
242
+ set multiple(value) {
243
+ __privateSet(this, _multiple_accessor_storage, value);
244
+ }
245
+ /** Whether the newly added files should override the previously added ones. */
246
+ get multipleMode() {
247
+ return __privateGet(this, _multipleMode_accessor_storage);
248
+ }
249
+ set multipleMode(value) {
250
+ __privateSet(this, _multipleMode_accessor_storage, value);
251
+ }
252
+ /** A comma-separated list of allowed unique file type specifiers. */
253
+ get accept() {
254
+ return __privateGet(this, _accept_accessor_storage);
255
+ }
256
+ set accept(value) {
257
+ __privateSet(this, _accept_accessor_storage, value);
258
+ }
259
+ /** The title displayed in `dropzone` variant. */
260
+ get titleContent() {
261
+ return __privateGet(this, _titleContent_accessor_storage);
262
+ }
263
+ set titleContent(value) {
264
+ __privateSet(this, _titleContent_accessor_storage, value);
265
+ }
266
+ /** This will be forwarded as aria-label to the native input element. */
267
+ get accessibilityLabel() {
268
+ return __privateGet(this, _accessibilityLabel_accessor_storage);
269
+ }
270
+ set accessibilityLabel(value) {
271
+ __privateSet(this, _accessibilityLabel_accessor_storage, value);
272
+ }
273
+ /** The path of the first selected file. Empty string ('') if no file is selected */
274
+ set value(value) {
275
+ this._hiddenInput.value = value ?? "";
276
+ if (!value) {
277
+ this.files = [];
278
+ }
279
+ }
280
+ get value() {
281
+ var _a2;
282
+ return (_a2 = this._hiddenInput) == null ? void 0 : _a2.value;
283
+ }
284
+ /**
285
+ * The list of selected files.
286
+ */
287
+ set files(value) {
288
+ this._files = value ?? [];
289
+ const dt = new DataTransfer();
290
+ this.files.forEach((e) => dt.items.add(e));
291
+ this._hiddenInput.files = dt.files;
292
+ this.updateFormValue();
293
+ }
294
+ get files() {
295
+ return this._files;
296
+ }
297
+ /**
298
+ * @deprecated use the 'files' property instead
299
+ */
300
+ getFiles() {
301
+ return this.files;
302
+ }
303
+ formResetCallback() {
191
304
  this.files = [];
192
305
  }
193
- }
194
- get value() {
195
- var _a;
196
- return (_a = this._hiddenInput) == null ? void 0 : _a.value;
197
- }
198
- set files(value) {
199
- this._files = value ?? [];
200
- const dt = new DataTransfer();
201
- this.files.forEach((e) => dt.items.add(e));
202
- this._hiddenInput.files = dt.files;
203
- this.updateFormValue();
204
- }
205
- get files() {
206
- return this._files;
207
- }
208
- /**
209
- * @deprecated use the 'files' property instead
210
- */
211
- getFiles() {
212
- return this.files;
213
- }
214
- formResetCallback() {
215
- this.files = [];
216
- }
217
- formStateRestoreCallback(state, _reason) {
218
- if (!state) {
219
- return;
306
+ formStateRestoreCallback(state, _reason) {
307
+ if (!state) {
308
+ return;
309
+ }
310
+ this.files = state.map(([_, value]) => value);
220
311
  }
221
- this.files = state.map(([_, value]) => value);
222
- }
223
- updateFormValue() {
224
- const formValue = new FormData();
225
- this.files.forEach((file) => formValue.append(this.name, file));
226
- this.internals.setFormValue(formValue);
227
- }
228
- _blockEvent(event) {
229
- event.stopPropagation();
230
- event.preventDefault();
231
- }
232
- _checkFileEquality(file1, file2) {
233
- return file1.name === file2.name && file1.size === file2.size && file1.lastModified === file2.lastModified;
234
- }
235
- _onDragEnter(event) {
236
- this._counter++;
237
- if (!this.disabled && !this.formDisabled) {
238
- this._setDragState(event.target, true);
239
- this._blockEvent(event);
312
+ updateFormValue() {
313
+ const formValue = new FormData();
314
+ this.files.forEach((file) => formValue.append(this.name, file));
315
+ this.internals.setFormValue(formValue);
240
316
  }
241
- }
242
- _onDragLeave(event) {
243
- this._counter--;
244
- if (!this.disabled && !this.formDisabled && event.target === this._dragTarget && this._counter === 0) {
245
- this._setDragState();
246
- this._blockEvent(event);
317
+ _blockEvent(event) {
318
+ event.stopPropagation();
319
+ event.preventDefault();
247
320
  }
248
- }
249
- _onFileDrop(event) {
250
- this._counter = 0;
251
- if (!this.disabled && !this.formDisabled) {
252
- this._setDragState();
253
- this._blockEvent(event);
254
- this._createFileList(event.dataTransfer.files);
321
+ _checkFileEquality(file1, file2) {
322
+ return file1.name === file2.name && file1.size === file2.size && file1.lastModified === file2.lastModified;
255
323
  }
256
- }
257
- _onFocus() {
258
- if (sbbInputModalityDetector.mostRecentModality === "keyboard") {
259
- this._loadButton.toggleAttribute("data-focus-visible", true);
324
+ _onDragEnter(event) {
325
+ this._counter++;
326
+ if (!this.disabled && !this.formDisabled) {
327
+ this._setDragState(event.target, true);
328
+ this._blockEvent(event);
329
+ }
260
330
  }
261
- }
262
- _onBlur() {
263
- if (sbbInputModalityDetector.mostRecentModality === "keyboard") {
264
- this._loadButton.removeAttribute("data-focus-visible");
331
+ _onDragLeave(event) {
332
+ this._counter--;
333
+ if (!this.disabled && !this.formDisabled && event.target === this._dragTarget && this._counter === 0) {
334
+ this._setDragState();
335
+ this._blockEvent(event);
336
+ }
265
337
  }
266
- }
267
- _setDragState(dragTarget = void 0, isDragEnter = false) {
268
- this._dragTarget = dragTarget;
269
- this.toggleAttribute("data-active", isDragEnter);
270
- this._loadButton.toggleAttribute("data-active", isDragEnter);
271
- }
272
- _readFiles(event) {
273
- const fileInput = event.target;
274
- if (fileInput.files) {
275
- this._createFileList(fileInput.files);
338
+ _onFileDrop(event) {
339
+ this._counter = 0;
340
+ if (!this.disabled && !this.formDisabled) {
341
+ this._setDragState();
342
+ this._blockEvent(event);
343
+ this._createFileList(event.dataTransfer.files);
344
+ }
276
345
  }
277
- forwardEventToHost(event, this);
278
- }
279
- _createFileList(files) {
280
- if (!this.multiple || this.multipleMode !== "persistent" || this.files.length === 0) {
281
- this.files = Array.from(files);
282
- } else {
283
- this.files = Array.from(files).filter(
284
- // Remove duplicates
285
- (newFile) => this.files.findIndex((oldFile) => this._checkFileEquality(newFile, oldFile)) === -1
286
- ).concat(this.files);
287
- }
288
- this._updateA11yLiveRegion();
289
- this._fileChangedEvent.emit(this.files);
290
- }
291
- _removeFile(file) {
292
- this.files = this.files.filter((f) => !this._checkFileEquality(file, f));
293
- this._updateA11yLiveRegion();
294
- this.dispatchEvent(new Event("input", { composed: true, bubbles: true }));
295
- this.dispatchEvent(new Event("change", { bubbles: true }));
296
- this._fileChangedEvent.emit(this.files);
297
- }
298
- /** Calculates the correct unit for the file's size. */
299
- _formatFileSize(size) {
300
- const i = Math.floor(Math.log(size) / Math.log(1024));
301
- return `${(size / Math.pow(1024, i)).toFixed(0)} ${this._suffixes[i]}`;
302
- }
303
- _updateA11yLiveRegion() {
304
- this._liveRegion.innerText = i18nFileSelectorCurrentlySelected(this.files.map((e) => e.name))[this._language.current];
305
- }
306
- _renderDefaultMode() {
307
- return html`
346
+ _onFocus() {
347
+ if (sbbInputModalityDetector.mostRecentModality === "keyboard") {
348
+ this._loadButton.toggleAttribute("data-focus-visible", true);
349
+ }
350
+ }
351
+ _onBlur() {
352
+ if (sbbInputModalityDetector.mostRecentModality === "keyboard") {
353
+ this._loadButton.removeAttribute("data-focus-visible");
354
+ }
355
+ }
356
+ _setDragState(dragTarget = void 0, isDragEnter = false) {
357
+ this._dragTarget = dragTarget;
358
+ this.toggleAttribute("data-active", isDragEnter);
359
+ this._loadButton.toggleAttribute("data-active", isDragEnter);
360
+ }
361
+ _readFiles(event) {
362
+ const fileInput = event.target;
363
+ if (fileInput.files) {
364
+ this._createFileList(fileInput.files);
365
+ }
366
+ forwardEventToHost(event, this);
367
+ }
368
+ _createFileList(files) {
369
+ if (!this.multiple || this.multipleMode !== "persistent" || this.files.length === 0) {
370
+ this.files = Array.from(files);
371
+ } else {
372
+ this.files = Array.from(files).filter(
373
+ // Remove duplicates
374
+ (newFile) => this.files.findIndex((oldFile) => this._checkFileEquality(newFile, oldFile)) === -1
375
+ ).concat(this.files);
376
+ }
377
+ this._updateA11yLiveRegion();
378
+ this._fileChangedEvent.emit(this.files);
379
+ }
380
+ _removeFile(file) {
381
+ this.files = this.files.filter((f) => !this._checkFileEquality(file, f));
382
+ this._updateA11yLiveRegion();
383
+ this.dispatchEvent(new Event("input", { composed: true, bubbles: true }));
384
+ this.dispatchEvent(new Event("change", { bubbles: true }));
385
+ this._fileChangedEvent.emit(this.files);
386
+ }
387
+ /** Calculates the correct unit for the file's size. */
388
+ _formatFileSize(size) {
389
+ const i = Math.floor(Math.log(size) / Math.log(1024));
390
+ return `${(size / Math.pow(1024, i)).toFixed(0)} ${this._suffixes[i]}`;
391
+ }
392
+ _updateA11yLiveRegion() {
393
+ this._liveRegion.innerText = i18nFileSelectorCurrentlySelected(this.files.map((e) => e.name))[this._language.current];
394
+ }
395
+ _renderDefaultMode() {
396
+ return html`
308
397
  <sbb-secondary-button-static
309
398
  size=${this.size}
310
399
  icon-name="folder-open-small"
311
400
  ?disabled=${this.disabled || this.formDisabled}
312
401
  ${ref((el) => {
313
- this._loadButton = el;
314
- })}
402
+ this._loadButton = el;
403
+ })}
315
404
  >
316
405
  ${i18nFileSelectorButtonLabel[this._language.current]}
317
406
  </sbb-secondary-button-static>
318
407
  `;
319
- }
320
- _renderDropzoneArea() {
321
- return html`
408
+ }
409
+ _renderDropzoneArea() {
410
+ return html`
322
411
  <span class="sbb-file-selector__dropzone-area">
323
412
  <span class="sbb-file-selector__dropzone-area--icon">
324
413
  <sbb-icon
@@ -334,21 +423,20 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(SbbFormAssociatedMix
334
423
  size=${this.size}
335
424
  ?disabled=${this.disabled || this.formDisabled}
336
425
  ${ref((el) => {
337
- this._loadButton = el;
338
- })}
426
+ this._loadButton = el;
427
+ })}
339
428
  >
340
429
  ${i18nFileSelectorButtonLabel[this._language.current]}
341
430
  </sbb-secondary-button-static>
342
431
  </span>
343
432
  </span>
344
433
  `;
345
- }
346
- _renderFileList() {
347
- const TAG_NAME = this.files.length > 1 ? { WRAPPER: "ul", ELEMENT: "li" } : { WRAPPER: "div", ELEMENT: "span" };
348
- return html`
434
+ }
435
+ _renderFileList() {
436
+ const TAG_NAME = this.files.length > 1 ? { WRAPPER: "ul", ELEMENT: "li" } : { WRAPPER: "div", ELEMENT: "span" };
437
+ return html`
349
438
  <${unsafeStatic(TAG_NAME.WRAPPER)} class="sbb-file-selector__file-list">
350
- ${this.files.map(
351
- (file) => html`
439
+ ${this.files.map((file) => html`
352
440
  <${unsafeStatic(TAG_NAME.ELEMENT)} class="sbb-file-selector__file">
353
441
  <span class="sbb-file-selector__file-details">
354
442
  <span class="sbb-file-selector__file-name">${file.name}</span>
@@ -360,14 +448,13 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(SbbFormAssociatedMix
360
448
  @click=${() => this._removeFile(file)}
361
449
  aria-label=${`${i18nFileSelectorDeleteFile[this._language.current]} - ${file.name}`}
362
450
  ></sbb-secondary-button>
363
- </${unsafeStatic(TAG_NAME.ELEMENT)}>`
364
- )}
451
+ </${unsafeStatic(TAG_NAME.ELEMENT)}>`)}
365
452
  </${unsafeStatic(TAG_NAME.WRAPPER)}>
366
453
  `;
367
- }
368
- render() {
369
- const ariaLabel = this.accessibilityLabel ? `${i18nFileSelectorButtonLabel[this._language.current]} - ${this.accessibilityLabel}` : void 0;
370
- return html`
454
+ }
455
+ render() {
456
+ const ariaLabel = this.accessibilityLabel ? `${i18nFileSelectorButtonLabel[this._language.current]} - ${this.accessibilityLabel}` : void 0;
457
+ return html`
371
458
  <div class="sbb-file-selector">
372
459
  <div
373
460
  class="sbb-file-selector__input-container"
@@ -389,8 +476,8 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(SbbFormAssociatedMix
389
476
  @focus=${this._onFocus}
390
477
  @blur=${this._onBlur}
391
478
  ${ref((el) => {
392
- this._hiddenInput = el;
393
- })}
479
+ this._hiddenInput = el;
480
+ })}
394
481
  />
395
482
  </label>
396
483
  </div>
@@ -405,44 +492,54 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(SbbFormAssociatedMix
405
492
  </div>
406
493
  </div>
407
494
  `;
408
- }
409
- };
410
- SbbFileSelectorElement.styles = style;
411
- SbbFileSelectorElement.events = {
412
- fileChangedEvent: "fileChanged"
413
- };
414
- __decorateClass([
415
- property()
416
- ], SbbFileSelectorElement.prototype, "variant", 2);
417
- __decorateClass([
418
- property({ reflect: true })
419
- ], SbbFileSelectorElement.prototype, "size", 2);
420
- __decorateClass([
421
- property({ type: Boolean })
422
- ], SbbFileSelectorElement.prototype, "multiple", 2);
423
- __decorateClass([
424
- property({ attribute: "multiple-mode" })
425
- ], SbbFileSelectorElement.prototype, "multipleMode", 2);
426
- __decorateClass([
427
- property()
428
- ], SbbFileSelectorElement.prototype, "accept", 2);
429
- __decorateClass([
430
- property({ attribute: "title-content" })
431
- ], SbbFileSelectorElement.prototype, "titleContent", 2);
432
- __decorateClass([
433
- property({ attribute: "accessibility-label" })
434
- ], SbbFileSelectorElement.prototype, "accessibilityLabel", 2);
435
- __decorateClass([
436
- property({ attribute: false })
437
- ], SbbFileSelectorElement.prototype, "value", 1);
438
- __decorateClass([
439
- property({ attribute: false })
440
- ], SbbFileSelectorElement.prototype, "files", 1);
441
- SbbFileSelectorElement = __decorateClass([
442
- customElement("sbb-file-selector"),
443
- slotState()
444
- ], SbbFileSelectorElement);
495
+ }
496
+ }, _variant_accessor_storage = new WeakMap(), _size_accessor_storage = new WeakMap(), _multiple_accessor_storage = new WeakMap(), _multipleMode_accessor_storage = new WeakMap(), _accept_accessor_storage = new WeakMap(), _titleContent_accessor_storage = new WeakMap(), _accessibilityLabel_accessor_storage = new WeakMap(), _classThis = _a, (() => {
497
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
498
+ _variant_decorators = [property()];
499
+ _size_decorators = [property({ reflect: true })];
500
+ _multiple_decorators = [forceType(), property({ type: Boolean })];
501
+ _multipleMode_decorators = [property({ attribute: "multiple-mode" })];
502
+ _accept_decorators = [forceType(), property()];
503
+ _titleContent_decorators = [forceType(), property({ attribute: "title-content" })];
504
+ _accessibilityLabel_decorators = [forceType(), property({ attribute: "accessibility-label" })];
505
+ _set_value_decorators = [property({ attribute: false })];
506
+ _set_files_decorators = [property({ attribute: false })];
507
+ __esDecorate(_a, null, _variant_decorators, { kind: "accessor", name: "variant", static: false, private: false, access: { has: (obj) => "variant" in obj, get: (obj) => obj.variant, set: (obj, value) => {
508
+ obj.variant = value;
509
+ } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
510
+ __esDecorate(_a, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: (obj) => "size" in obj, get: (obj) => obj.size, set: (obj, value) => {
511
+ obj.size = value;
512
+ } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
513
+ __esDecorate(_a, null, _multiple_decorators, { kind: "accessor", name: "multiple", static: false, private: false, access: { has: (obj) => "multiple" in obj, get: (obj) => obj.multiple, set: (obj, value) => {
514
+ obj.multiple = value;
515
+ } }, metadata: _metadata }, _multiple_initializers, _multiple_extraInitializers);
516
+ __esDecorate(_a, null, _multipleMode_decorators, { kind: "accessor", name: "multipleMode", static: false, private: false, access: { has: (obj) => "multipleMode" in obj, get: (obj) => obj.multipleMode, set: (obj, value) => {
517
+ obj.multipleMode = value;
518
+ } }, metadata: _metadata }, _multipleMode_initializers, _multipleMode_extraInitializers);
519
+ __esDecorate(_a, null, _accept_decorators, { kind: "accessor", name: "accept", static: false, private: false, access: { has: (obj) => "accept" in obj, get: (obj) => obj.accept, set: (obj, value) => {
520
+ obj.accept = value;
521
+ } }, metadata: _metadata }, _accept_initializers, _accept_extraInitializers);
522
+ __esDecorate(_a, null, _titleContent_decorators, { kind: "accessor", name: "titleContent", static: false, private: false, access: { has: (obj) => "titleContent" in obj, get: (obj) => obj.titleContent, set: (obj, value) => {
523
+ obj.titleContent = value;
524
+ } }, metadata: _metadata }, _titleContent_initializers, _titleContent_extraInitializers);
525
+ __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) => {
526
+ obj.accessibilityLabel = value;
527
+ } }, metadata: _metadata }, _accessibilityLabel_initializers, _accessibilityLabel_extraInitializers);
528
+ __esDecorate(_a, null, _set_value_decorators, { kind: "setter", name: "value", static: false, private: false, access: { has: (obj) => "value" in obj, set: (obj, value) => {
529
+ obj.value = value;
530
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
531
+ __esDecorate(_a, null, _set_files_decorators, { kind: "setter", name: "files", static: false, private: false, access: { has: (obj) => "files" in obj, set: (obj, value) => {
532
+ obj.files = value;
533
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
534
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
535
+ SbbFileSelectorElement2 = _classThis = _classDescriptor.value;
536
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
537
+ })(), _a.styles = style, _a.events = {
538
+ fileChangedEvent: "fileChanged"
539
+ }, __runInitializers(_classThis, _classExtraInitializers), _a);
540
+ return SbbFileSelectorElement2 = _classThis;
541
+ })();
445
542
  export {
446
543
  SbbFileSelectorElement
447
544
  };
448
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2ZpbGUtc2VsZWN0b3IvZmlsZS1zZWxlY3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2J1dHRvbi5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBzbG90U3RhdGUgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBmb3J3YXJkRXZlbnRUb0hvc3QgfSBmcm9tICcuLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7XG4gIGkxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbCxcbiAgaTE4bkZpbGVTZWxlY3RvckN1cnJlbnRseVNlbGVjdGVkLFxuICBpMThuRmlsZVNlbGVjdG9yRGVsZXRlRmlsZSxcbiAgaTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWwsXG59IGZyb20gJy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZmlsZS1zZWxlY3Rvci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uL2J1dHRvbi9zZWNvbmRhcnktYnV0dG9uLmpzJztcbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24tc3RhdGljLmpzJztcbmltcG9ydCAnLi4vaWNvbi5qcyc7XG5cbmV4cG9ydCB0eXBlIERPTUV2ZW50ID0gZ2xvYmFsVGhpcy5FdmVudDtcblxuLyoqXG4gKiBJdCBhbGxvd3MgdG8gc2VsZWN0IG9uZSBvciBtb3JlIGZpbGUgZnJvbSBzdG9yYWdlIGRldmljZXMgYW5kIGRpc3BsYXkgdGhlbS5cbiAqXG4gKiBAc2xvdCBlcnJvciAtIFVzZSB0aGlzIHRvIHByb3ZpZGUgYSBgc2JiLWZvcm0tZXJyb3JgIHRvIHNob3cgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8RmlsZVtdPn0gZmlsZUNoYW5nZWQgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgZmlsZSBsaXN0IGNoYW5nZXMuXG4gKiBAZXZlbnQgY2hhbmdlIC0gQW4gZXZlbnQgd2hpY2ggaXMgZW1pdHRlZCBlYWNoIHRpbWUgdGhlIHVzZXIgbW9kaWZpZXMgdGhlIHZhbHVlLiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZCBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZVxuICogQGV2ZW50IGlucHV0IC0gQW4gZXZlbnQgd2hpY2ggaXMgZW1pdHRlZCBlYWNoIHRpbWUgdGhlIHZhbHVlIGNoYW5nZXMgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZmlsZS1zZWxlY3RvcicpXG5Ac2xvdFN0YXRlKClcbmV4cG9ydCBjbGFzcyBTYmJGaWxlU2VsZWN0b3JFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKExpdEVsZW1lbnQpKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBmaWxlQ2hhbmdlZEV2ZW50OiAnZmlsZUNoYW5nZWQnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaGFzIGEgZHJvcHpvbmUgYXJlYSBvciBub3QuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB2YXJpYW50OiAnZGVmYXVsdCcgfCAnZHJvcHpvbmUnID0gJ2RlZmF1bHQnO1xuXG4gIC8qKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIG9yIG0uICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIHNpemU6ICdzJyB8ICdtJyA9ICdtJztcblxuICAvKiogV2hldGhlciBtb3JlIHRoYW4gb25lIGZpbGUgY2FuIGJlIHNlbGVjdGVkLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBuZXdseSBhZGRlZCBmaWxlcyBzaG91bGQgb3ZlcnJpZGUgdGhlIHByZXZpb3VzbHkgYWRkZWQgb25lcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbXVsdGlwbGUtbW9kZScgfSlcbiAgcHVibGljIG11bHRpcGxlTW9kZTogJ2RlZmF1bHQnIHwgJ3BlcnNpc3RlbnQnID0gJ2RlZmF1bHQnO1xuXG4gIC8qKiBBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFsbG93ZWQgdW5pcXVlIGZpbGUgdHlwZSBzcGVjaWZpZXJzLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXB0Pzogc3RyaW5nO1xuXG4gIC8qKiBUaGUgdGl0bGUgZGlzcGxheWVkIGluIGBkcm9wem9uZWAgdmFyaWFudC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtY29udGVudCcgfSkgcHVibGljIHRpdGxlQ29udGVudD86IHN0cmluZztcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBUaGUgcGF0aCBvZiB0aGUgZmlyc3Qgc2VsZWN0ZWQgZmlsZS4gRW1wdHkgc3RyaW5nICgnJykgaWYgbm8gZmlsZSBpcyBzZWxlY3RlZCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9oaWRkZW5JbnB1dC52YWx1ZSA9IHZhbHVlID8/ICcnO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9oaWRkZW5JbnB1dD8udmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmlsZXMuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgZmlsZXModmFsdWU6IEZpbGVbXSkge1xuICAgIHRoaXMuX2ZpbGVzID0gdmFsdWUgPz8gW107XG5cbiAgICAvLyB1cGRhdGUgdGhlIGlubmVyIGlucHV0XG4gICAgY29uc3QgZHQ6IERhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJhbnNmZXIoKTtcbiAgICB0aGlzLmZpbGVzLmZvckVhY2goKGU6IEZpbGUpID0+IGR0Lml0ZW1zLmFkZChlKSk7XG4gICAgdGhpcy5faGlkZGVuSW5wdXQuZmlsZXMgPSBkdC5maWxlcztcblxuICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgfVxuICBwcml2YXRlIF9maWxlczogRmlsZVtdID0gW107XG5cbiAgLyoqIEFuIGV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGxpc3QgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfZmlsZUNoYW5nZWRFdmVudDogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRmlsZVNlbGVjdG9yRWxlbWVudC5ldmVudHMuZmlsZUNoYW5nZWRFdmVudCxcbiAgKTtcblxuICAvLyBTYWZhcmkgaGFzIGEgcGVjdWxpYXIgYmVoYXZpb3Igd2hlbiBkcmFnZ2luZyBmaWxlcyBvbiB0aGUgaW5uZXIgYnV0dG9uIGluICdkcm9wem9uZScgdmFyaWFudDtcbiAgLy8gdGhpcyB3aWxsIHJlcXVpcmUgYSBjb3VudGVyIHRvIGNvcnJlY3RseSBoYW5kbGUgdGhlIGRyYWdFbnRlci9kcmFnTGVhdmUuXG4gIHByaXZhdGUgX2NvdW50ZXI6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBfbG9hZEJ1dHRvbiE6IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gIHByaXZhdGUgX2RyYWdUYXJnZXQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfaGlkZGVuSW5wdXQhOiBIVE1MSW5wdXRFbGVtZW50O1xuICBwcml2YXRlIF9zdWZmaXhlczogc3RyaW5nW10gPSBbJ0InLCAna0InLCAnTUInLCAnR0InLCAnVEInXTtcbiAgcHJpdmF0ZSBfbGl2ZVJlZ2lvbiE6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRoZSAnZmlsZXMnIHByb3BlcnR5IGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyBnZXRGaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLmZpbGVzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb24/OiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFzdGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzID0gKHN0YXRlIGFzIFtzdHJpbmcsIEZvcm1EYXRhRW50cnlWYWx1ZV1bXSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSBhcyBGaWxlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgdGhpcy5maWxlcy5mb3JFYWNoKChmaWxlKSA9PiBmb3JtVmFsdWUuYXBwZW5kKHRoaXMubmFtZSwgZmlsZSkpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZShmb3JtVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYmxvY2tFdmVudChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRmlsZUVxdWFsaXR5KGZpbGUxOiBGaWxlLCBmaWxlMjogRmlsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBmaWxlMS5uYW1lID09PSBmaWxlMi5uYW1lICYmXG4gICAgICBmaWxlMS5zaXplID09PSBmaWxlMi5zaXplICYmXG4gICAgICBmaWxlMS5sYXN0TW9kaWZpZWQgPT09IGZpbGUyLmxhc3RNb2RpZmllZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9vbkRyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlcisrO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5mb3JtRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIHRydWUpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2NvdW50ZXItLTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5kaXNhYmxlZCAmJlxuICAgICAgIXRoaXMuZm9ybURpc2FibGVkICYmXG4gICAgICBldmVudC50YXJnZXQgPT09IHRoaXMuX2RyYWdUYXJnZXQgJiZcbiAgICAgIHRoaXMuX2NvdW50ZXIgPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZSgpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25GaWxlRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlciA9IDA7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmZvcm1EaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKCk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICAgIHRoaXMuX2NyZWF0ZUZpbGVMaXN0KGV2ZW50LmRhdGFUcmFuc2ZlciEuZmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMuX2xvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMuX2xvYWRCdXR0b24ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXREcmFnU3RhdGUoXG4gICAgZHJhZ1RhcmdldDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgaXNEcmFnRW50ZXI6IGJvb2xlYW4gPSBmYWxzZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ1RhcmdldCA9IGRyYWdUYXJnZXQ7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgaXNEcmFnRW50ZXIpO1xuICAgIHRoaXMuX2xvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIGlzRHJhZ0VudGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRGaWxlcyhldmVudDogRE9NRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlSW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoZmlsZUlucHV0LmZpbGVzKSB7XG4gICAgICB0aGlzLl9jcmVhdGVGaWxlTGlzdChmaWxlSW5wdXQuZmlsZXMpO1xuICAgIH1cbiAgICBmb3J3YXJkRXZlbnRUb0hvc3QoZXZlbnQsIHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlRmlsZUxpc3QoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8IHRoaXMubXVsdGlwbGVNb2RlICE9PSAncGVyc2lzdGVudCcgfHwgdGhpcy5maWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZmlsZXMgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlcyA9IEFycmF5LmZyb20oZmlsZXMpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0ZXNcbiAgICAgICAgICAobmV3RmlsZTogRmlsZSk6IGJvb2xlYW4gPT5cbiAgICAgICAgICAgIHRoaXMuZmlsZXMhLmZpbmRJbmRleCgob2xkRmlsZTogRmlsZSkgPT4gdGhpcy5fY2hlY2tGaWxlRXF1YWxpdHkobmV3RmlsZSwgb2xkRmlsZSkpID09PVxuICAgICAgICAgICAgLTEsXG4gICAgICAgIClcbiAgICAgICAgLmNvbmNhdCh0aGlzLmZpbGVzKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcbiAgICB0aGlzLl9maWxlQ2hhbmdlZEV2ZW50LmVtaXQodGhpcy5maWxlcyk7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGY6IEZpbGUpID0+ICF0aGlzLl9jaGVja0ZpbGVFcXVhbGl0eShmaWxlLCBmKSk7XG4gICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcblxuICAgIC8vIERpc3BhdGNoIG5hdGl2ZSBldmVudHMgYXMgaWYgdGhlIHJlc2V0IGlzIGRvbmUgdmlhIHRoZSBmaWxlIHNlbGVjdGlvbiB3aW5kb3cuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGNvbXBvc2VkOiB0cnVlLCBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRoaXMuX2ZpbGVDaGFuZ2VkRXZlbnQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhdGVzIHRoZSBjb3JyZWN0IHVuaXQgZm9yIHRoZSBmaWxlJ3Mgc2l6ZS4gKi9cbiAgcHJpdmF0ZSBfZm9ybWF0RmlsZVNpemUoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBpOiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nKHNpemUpIC8gTWF0aC5sb2coMTAyNCkpO1xuICAgIHJldHVybiBgJHsoc2l6ZSAvIE1hdGgucG93KDEwMjQsIGkpKS50b0ZpeGVkKDApfSAke3RoaXMuX3N1ZmZpeGVzW2ldfWA7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9saXZlUmVnaW9uLmlubmVyVGV4dCA9IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCh0aGlzLmZpbGVzLm1hcCgoZSkgPT4gZS5uYW1lKSlbXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50XG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckRlZmF1bHRNb2RlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZX1cbiAgICAgICAgaWNvbi1uYW1lPVwiZm9sZGVyLW9wZW4tc21hbGxcIlxuICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5fbG9hZEJ1dHRvbiA9IGVsIGFzIFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gICAgICAgIH0pfVxuICAgICAgPlxuICAgICAgICAke2kxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJEcm9wem9uZUFyZWEoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS1pY29uXCI+XG4gICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICBuYW1lPSR7dGhpcy5zaXplID09PSAnbScgPyAnZm9sZGVyLW9wZW4tbWVkaXVtJyA6ICdmb2xkZXItb3Blbi1zbWFsbCd9XG4gICAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tdGl0bGVcIj4ke3RoaXMudGl0bGVDb250ZW50fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tc3VidGl0bGVcIj5cbiAgICAgICAgICAke2kxOG5GaWxlU2VsZWN0b3JTdWJ0aXRsZUxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWEtLWJ1dHRvblwiPlxuICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9sb2FkQnV0dG9uID0gZWwgYXMgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7aTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckZpbGVMaXN0KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUQUdfTkFNRTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9XG4gICAgICB0aGlzLmZpbGVzLmxlbmd0aCA+IDFcbiAgICAgICAgPyB7IFdSQVBQRVI6ICd1bCcsIEVMRU1FTlQ6ICdsaScgfVxuICAgICAgICA6IHsgV1JBUFBFUjogJ2RpdicsIEVMRU1FTlQ6ICdzcGFuJyB9O1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9IGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbGlzdFwiPlxuICAgICAgICAke3RoaXMuZmlsZXMubWFwKFxuICAgICAgICAgIChmaWxlOiBGaWxlKSA9PiBodG1sYFxuICAgICAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5FTEVNRU5UKX0gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbmFtZVwiPiR7ZmlsZS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1zaXplXCI+JHt0aGlzLl9mb3JtYXRGaWxlU2l6ZShmaWxlLnNpemUpfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgICBpY29uLW5hbWU9XCJ0cmFzaC1zbWFsbFwiXG4gICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX3JlbW92ZUZpbGUoZmlsZSl9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgJHtpMThuRmlsZVNlbGVjdG9yRGVsZXRlRmlsZVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gLSAke2ZpbGUubmFtZX1gfVxuICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5FTEVNRU5UKX0+YCxcbiAgICAgICAgKX1cbiAgICAgIDwvJHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9PlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBhcmlhTGFiZWwgPSB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbFxuICAgICAgPyBgJHtpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19IC0gJHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbH1gXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3RvclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9faW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgICBAZHJhZ2VudGVyPSR7dGhpcy5fb25EcmFnRW50ZXJ9XG4gICAgICAgICAgQGRyYWdvdmVyPSR7dGhpcy5fYmxvY2tFdmVudH1cbiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fb25EcmFnTGVhdmV9XG4gICAgICAgICAgQGRyb3A9JHt0aGlzLl9vbkZpbGVEcm9wfVxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgJHt0aGlzLnZhcmlhbnQgPT09ICdkZWZhdWx0JyA/IHRoaXMuX3JlbmRlckRlZmF1bHRNb2RlKCkgOiB0aGlzLl9yZW5kZXJEcm9wem9uZUFyZWEoKX1cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICAgICAgID9tdWx0aXBsZT0ke3RoaXMubXVsdGlwbGV9XG4gICAgICAgICAgICAgIGFjY2VwdD0ke3RoaXMuYWNjZXB0IHx8IG5vdGhpbmd9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHthcmlhTGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuX3JlYWRGaWxlc31cbiAgICAgICAgICAgICAgQGZvY3VzPSR7dGhpcy5fb25Gb2N1c31cbiAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLl9vbkJsdXJ9XG4gICAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5JbnB1dCA9IGVsIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHBcbiAgICAgICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICR7cmVmKChwPzogRWxlbWVudCkgPT4gKHRoaXMuX2xpdmVSZWdpb24gPSBwIGFzIEhUTUxQYXJhZ3JhcGhFbGVtZW50KSl9XG4gICAgICAgID48L3A+XG4gICAgICAgICR7dGhpcy5maWxlcy5sZW5ndGggPiAwID8gdGhpcy5fcmVuZGVyRmlsZUxpc3QoKSA6IG5vdGhpbmd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZXJyb3JcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWZpbGUtc2VsZWN0b3InOiBTYmJGaWxlU2VsZWN0b3JFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
545
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2ZpbGUtc2VsZWN0b3IvZmlsZS1zZWxlY3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2J1dHRvbi5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIHNsb3RTdGF0ZSB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIGZvcndhcmRFdmVudFRvSG9zdCB9IGZyb20gJy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsLFxuICBpMThuRmlsZVNlbGVjdG9yQ3VycmVudGx5U2VsZWN0ZWQsXG4gIGkxOG5GaWxlU2VsZWN0b3JEZWxldGVGaWxlLFxuICBpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbCxcbn0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbn0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9maWxlLXNlbGVjdG9yLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24uanMnO1xuaW1wb3J0ICcuLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWMuanMnO1xuaW1wb3J0ICcuLi9pY29uLmpzJztcblxuZXhwb3J0IHR5cGUgRE9NRXZlbnQgPSBnbG9iYWxUaGlzLkV2ZW50O1xuXG4vKipcbiAqIEl0IGFsbG93cyB0byBzZWxlY3Qgb25lIG9yIG1vcmUgZmlsZSBmcm9tIHN0b3JhZ2UgZGV2aWNlcyBhbmQgZGlzcGxheSB0aGVtLlxuICpcbiAqIEBzbG90IGVycm9yIC0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIGBzYmItZm9ybS1lcnJvcmAgdG8gc2hvdyBhbiBlcnJvciBtZXNzYWdlLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxGaWxlW10+fSBmaWxlQ2hhbmdlZCAtIEFuIGV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGxpc3QgY2hhbmdlcy5cbiAqIEBldmVudCBjaGFuZ2UgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgdXNlciBtb2RpZmllcyB0aGUgdmFsdWUuIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlXG4gKiBAZXZlbnQgaW5wdXQgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgdmFsdWUgY2hhbmdlcyBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSBzdHJpbmcgfCBudWxsXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1maWxlLXNlbGVjdG9yJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiRmlsZVNlbGVjdG9yRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZmlsZUNoYW5nZWRFdmVudDogJ2ZpbGVDaGFuZ2VkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBhIGRyb3B6b25lIGFyZWEgb3Igbm90LiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ2Ryb3B6b25lJyA9ICdkZWZhdWx0JztcblxuICAvKiogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcyBvciBtLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAncycgfCAnbScgPSAnbSc7XG5cbiAgLyoqIFdoZXRoZXIgbW9yZSB0aGFuIG9uZSBmaWxlIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG5ld2x5IGFkZGVkIGZpbGVzIHNob3VsZCBvdmVycmlkZSB0aGUgcHJldmlvdXNseSBhZGRlZCBvbmVzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdtdWx0aXBsZS1tb2RlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbXVsdGlwbGVNb2RlOiAnZGVmYXVsdCcgfCAncGVyc2lzdGVudCcgPSAnZGVmYXVsdCc7XG5cbiAgLyoqIEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWxsb3dlZCB1bmlxdWUgZmlsZSB0eXBlIHNwZWNpZmllcnMuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXB0OiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhlIHRpdGxlIGRpc3BsYXllZCBpbiBgZHJvcHpvbmVgIHZhcmlhbnQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1jb250ZW50JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgcGF0aCBvZiB0aGUgZmlyc3Qgc2VsZWN0ZWQgZmlsZS4gRW1wdHkgc3RyaW5nICgnJykgaWYgbm8gZmlsZSBpcyBzZWxlY3RlZCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9oaWRkZW5JbnB1dC52YWx1ZSA9IHZhbHVlID8/ICcnO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9oaWRkZW5JbnB1dD8udmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmlsZXMuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgZmlsZXModmFsdWU6IEZpbGVbXSkge1xuICAgIHRoaXMuX2ZpbGVzID0gdmFsdWUgPz8gW107XG5cbiAgICAvLyB1cGRhdGUgdGhlIGlubmVyIGlucHV0XG4gICAgY29uc3QgZHQ6IERhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJhbnNmZXIoKTtcbiAgICB0aGlzLmZpbGVzLmZvckVhY2goKGU6IEZpbGUpID0+IGR0Lml0ZW1zLmFkZChlKSk7XG4gICAgdGhpcy5faGlkZGVuSW5wdXQuZmlsZXMgPSBkdC5maWxlcztcblxuICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgfVxuICBwcml2YXRlIF9maWxlczogRmlsZVtdID0gW107XG5cbiAgLyoqIEFuIGV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGxpc3QgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfZmlsZUNoYW5nZWRFdmVudDogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRmlsZVNlbGVjdG9yRWxlbWVudC5ldmVudHMuZmlsZUNoYW5nZWRFdmVudCxcbiAgKTtcblxuICAvLyBTYWZhcmkgaGFzIGEgcGVjdWxpYXIgYmVoYXZpb3Igd2hlbiBkcmFnZ2luZyBmaWxlcyBvbiB0aGUgaW5uZXIgYnV0dG9uIGluICdkcm9wem9uZScgdmFyaWFudDtcbiAgLy8gdGhpcyB3aWxsIHJlcXVpcmUgYSBjb3VudGVyIHRvIGNvcnJlY3RseSBoYW5kbGUgdGhlIGRyYWdFbnRlci9kcmFnTGVhdmUuXG4gIHByaXZhdGUgX2NvdW50ZXI6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBfbG9hZEJ1dHRvbiE6IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gIHByaXZhdGUgX2RyYWdUYXJnZXQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfaGlkZGVuSW5wdXQhOiBIVE1MSW5wdXRFbGVtZW50O1xuICBwcml2YXRlIF9zdWZmaXhlczogc3RyaW5nW10gPSBbJ0InLCAna0InLCAnTUInLCAnR0InLCAnVEInXTtcbiAgcHJpdmF0ZSBfbGl2ZVJlZ2lvbiE6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRoZSAnZmlsZXMnIHByb3BlcnR5IGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyBnZXRGaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLmZpbGVzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb24/OiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFzdGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzID0gKHN0YXRlIGFzIFtzdHJpbmcsIEZvcm1EYXRhRW50cnlWYWx1ZV1bXSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSBhcyBGaWxlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgdGhpcy5maWxlcy5mb3JFYWNoKChmaWxlKSA9PiBmb3JtVmFsdWUuYXBwZW5kKHRoaXMubmFtZSwgZmlsZSkpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZShmb3JtVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYmxvY2tFdmVudChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRmlsZUVxdWFsaXR5KGZpbGUxOiBGaWxlLCBmaWxlMjogRmlsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBmaWxlMS5uYW1lID09PSBmaWxlMi5uYW1lICYmXG4gICAgICBmaWxlMS5zaXplID09PSBmaWxlMi5zaXplICYmXG4gICAgICBmaWxlMS5sYXN0TW9kaWZpZWQgPT09IGZpbGUyLmxhc3RNb2RpZmllZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9vbkRyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlcisrO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5mb3JtRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIHRydWUpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2NvdW50ZXItLTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5kaXNhYmxlZCAmJlxuICAgICAgIXRoaXMuZm9ybURpc2FibGVkICYmXG4gICAgICBldmVudC50YXJnZXQgPT09IHRoaXMuX2RyYWdUYXJnZXQgJiZcbiAgICAgIHRoaXMuX2NvdW50ZXIgPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZSgpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25GaWxlRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlciA9IDA7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmZvcm1EaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKCk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICAgIHRoaXMuX2NyZWF0ZUZpbGVMaXN0KGV2ZW50LmRhdGFUcmFuc2ZlciEuZmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMuX2xvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMuX2xvYWRCdXR0b24ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXREcmFnU3RhdGUoXG4gICAgZHJhZ1RhcmdldDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgaXNEcmFnRW50ZXI6IGJvb2xlYW4gPSBmYWxzZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ1RhcmdldCA9IGRyYWdUYXJnZXQ7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgaXNEcmFnRW50ZXIpO1xuICAgIHRoaXMuX2xvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIGlzRHJhZ0VudGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRGaWxlcyhldmVudDogRE9NRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlSW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoZmlsZUlucHV0LmZpbGVzKSB7XG4gICAgICB0aGlzLl9jcmVhdGVGaWxlTGlzdChmaWxlSW5wdXQuZmlsZXMpO1xuICAgIH1cbiAgICBmb3J3YXJkRXZlbnRUb0hvc3QoZXZlbnQsIHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlRmlsZUxpc3QoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8IHRoaXMubXVsdGlwbGVNb2RlICE9PSAncGVyc2lzdGVudCcgfHwgdGhpcy5maWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZmlsZXMgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlcyA9IEFycmF5LmZyb20oZmlsZXMpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0ZXNcbiAgICAgICAgICAobmV3RmlsZTogRmlsZSk6IGJvb2xlYW4gPT5cbiAgICAgICAgICAgIHRoaXMuZmlsZXMhLmZpbmRJbmRleCgob2xkRmlsZTogRmlsZSkgPT4gdGhpcy5fY2hlY2tGaWxlRXF1YWxpdHkobmV3RmlsZSwgb2xkRmlsZSkpID09PVxuICAgICAgICAgICAgLTEsXG4gICAgICAgIClcbiAgICAgICAgLmNvbmNhdCh0aGlzLmZpbGVzKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcbiAgICB0aGlzLl9maWxlQ2hhbmdlZEV2ZW50LmVtaXQodGhpcy5maWxlcyk7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGY6IEZpbGUpID0+ICF0aGlzLl9jaGVja0ZpbGVFcXVhbGl0eShmaWxlLCBmKSk7XG4gICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcblxuICAgIC8vIERpc3BhdGNoIG5hdGl2ZSBldmVudHMgYXMgaWYgdGhlIHJlc2V0IGlzIGRvbmUgdmlhIHRoZSBmaWxlIHNlbGVjdGlvbiB3aW5kb3cuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGNvbXBvc2VkOiB0cnVlLCBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRoaXMuX2ZpbGVDaGFuZ2VkRXZlbnQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhdGVzIHRoZSBjb3JyZWN0IHVuaXQgZm9yIHRoZSBmaWxlJ3Mgc2l6ZS4gKi9cbiAgcHJpdmF0ZSBfZm9ybWF0RmlsZVNpemUoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBpOiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nKHNpemUpIC8gTWF0aC5sb2coMTAyNCkpO1xuICAgIHJldHVybiBgJHsoc2l6ZSAvIE1hdGgucG93KDEwMjQsIGkpKS50b0ZpeGVkKDApfSAke3RoaXMuX3N1ZmZpeGVzW2ldfWA7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9saXZlUmVnaW9uLmlubmVyVGV4dCA9IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCh0aGlzLmZpbGVzLm1hcCgoZSkgPT4gZS5uYW1lKSlbXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50XG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckRlZmF1bHRNb2RlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZX1cbiAgICAgICAgaWNvbi1uYW1lPVwiZm9sZGVyLW9wZW4tc21hbGxcIlxuICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5fbG9hZEJ1dHRvbiA9IGVsIGFzIFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gICAgICAgIH0pfVxuICAgICAgPlxuICAgICAgICAke2kxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJEcm9wem9uZUFyZWEoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS1pY29uXCI+XG4gICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICBuYW1lPSR7dGhpcy5zaXplID09PSAnbScgPyAnZm9sZGVyLW9wZW4tbWVkaXVtJyA6ICdmb2xkZXItb3Blbi1zbWFsbCd9XG4gICAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tdGl0bGVcIj4ke3RoaXMudGl0bGVDb250ZW50fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tc3VidGl0bGVcIj5cbiAgICAgICAgICAke2kxOG5GaWxlU2VsZWN0b3JTdWJ0aXRsZUxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWEtLWJ1dHRvblwiPlxuICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9sb2FkQnV0dG9uID0gZWwgYXMgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7aTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckZpbGVMaXN0KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUQUdfTkFNRTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9XG4gICAgICB0aGlzLmZpbGVzLmxlbmd0aCA+IDFcbiAgICAgICAgPyB7IFdSQVBQRVI6ICd1bCcsIEVMRU1FTlQ6ICdsaScgfVxuICAgICAgICA6IHsgV1JBUFBFUjogJ2RpdicsIEVMRU1FTlQ6ICdzcGFuJyB9O1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9IGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbGlzdFwiPlxuICAgICAgICAke3RoaXMuZmlsZXMubWFwKFxuICAgICAgICAgIChmaWxlOiBGaWxlKSA9PiBodG1sYFxuICAgICAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5FTEVNRU5UKX0gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbmFtZVwiPiR7ZmlsZS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1zaXplXCI+JHt0aGlzLl9mb3JtYXRGaWxlU2l6ZShmaWxlLnNpemUpfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgICBpY29uLW5hbWU9XCJ0cmFzaC1zbWFsbFwiXG4gICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX3JlbW92ZUZpbGUoZmlsZSl9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgJHtpMThuRmlsZVNlbGVjdG9yRGVsZXRlRmlsZVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gLSAke2ZpbGUubmFtZX1gfVxuICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5FTEVNRU5UKX0+YCxcbiAgICAgICAgKX1cbiAgICAgIDwvJHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9PlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBhcmlhTGFiZWwgPSB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbFxuICAgICAgPyBgJHtpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19IC0gJHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbH1gXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3RvclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9faW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgICBAZHJhZ2VudGVyPSR7dGhpcy5fb25EcmFnRW50ZXJ9XG4gICAgICAgICAgQGRyYWdvdmVyPSR7dGhpcy5fYmxvY2tFdmVudH1cbiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fb25EcmFnTGVhdmV9XG4gICAgICAgICAgQGRyb3A9JHt0aGlzLl9vbkZpbGVEcm9wfVxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgJHt0aGlzLnZhcmlhbnQgPT09ICdkZWZhdWx0JyA/IHRoaXMuX3JlbmRlckRlZmF1bHRNb2RlKCkgOiB0aGlzLl9yZW5kZXJEcm9wem9uZUFyZWEoKX1cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICAgICAgID9tdWx0aXBsZT0ke3RoaXMubXVsdGlwbGV9XG4gICAgICAgICAgICAgIGFjY2VwdD0ke3RoaXMuYWNjZXB0IHx8IG5vdGhpbmd9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHthcmlhTGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuX3JlYWRGaWxlc31cbiAgICAgICAgICAgICAgQGZvY3VzPSR7dGhpcy5fb25Gb2N1c31cbiAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLl9vbkJsdXJ9XG4gICAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5JbnB1dCA9IGVsIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHBcbiAgICAgICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICR7cmVmKChwPzogRWxlbWVudCkgPT4gKHRoaXMuX2xpdmVSZWdpb24gPSBwIGFzIEhUTUxQYXJhZ3JhcGhFbGVtZW50KSl9XG4gICAgICAgID48L3A+XG4gICAgICAgICR7dGhpcy5maWxlcy5sZW5ndGggPiAwID8gdGhpcy5fcmVuZGVyRmlsZUxpc3QoKSA6IG5vdGhpbmd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZXJyb3JcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWZpbGUtc2VsZWN0b3InOiBTYmJGaWxlU2VsZWN0b3JFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2JiRmlsZVNlbGVjdG9yRWxlbWVudCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBMkNNLDBCQUFzQixNQUFBOztBQUYzQixNQUFBLG1CQUFBLENBQUEsY0FBYyxtQkFBbUIsR0FDakMsV0FBVzs7OztBQUN5QixNQUFBLGNBQUEsaUJBQWlCLHVCQUF1QixVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBM0RBLE1BQUFBLDJCQUFBLG1CQUFRLFlBQW9EO0FBQUE7O0FBTzNFO0FBR2lCO0FBSzdCO0FBSUE7QUFLQTtBQUtBO0FBS0E7QUFsQ0kseUJBQUEsNEJBQUEsa0JBQUEsTUFBQSwwQkFBQSxHQU8wRCxrQkFBQSxNQUFBLHVCQUFBLFNBQVM7QUFHMUIseUJBQUEseUJBQUEsa0JBQUEsTUFBQSwwQkFBQSxHQUFBLGtCQUFBLE1BQUEsb0JBQWtCLEdBQUc7QUFLbEQseUJBQUEsNkJBQUEsa0JBQUEsTUFBQSx1QkFBQSxHQUFBLGtCQUFBLE1BQUEsd0JBQW9CLEtBQUs7QUFJekIseUJBQUEsaUNBQUEsa0JBQUEsTUFBQSwyQkFBQSxHQUFBLGtCQUFBLE1BQUEsNEJBQXlDLFNBQVM7QUFLbEQseUJBQUEsMkJBQUEsa0JBQUEsTUFBQSwrQkFBQSxHQUFBLGtCQUFBLE1BQUEsc0JBQWlCLEVBQUU7QUFLbkIseUJBQUEsaUNBQUEsa0JBQUEsTUFBQSx5QkFBQSxHQUFBLGtCQUFBLE1BQUEsNEJBQXVCLEVBQUU7QUFLekIseUJBQUEsdUNBQUEsa0JBQUEsTUFBQSwrQkFBQSxHQUFBLGtCQUFBLE1BQUEsa0NBQTZCLEVBQUU7QUFnQ3ZDLFdBQU0sVUFBQSxrQkFBQSxNQUFBLHFDQUFBLEdBQVcsQ0FBQTtBQUdqQixXQUFBLG9CQUEwQyxJQUFJLGFBQ3BELE1BQ0FBLHdCQUF1QixPQUFPLGdCQUFnQjtBQUt4QyxXQUFRLFdBQVc7QUFLbkIsV0FBQSxZQUFzQixDQUFDLEtBQUssTUFBTSxNQUFNLE1BQU0sSUFBSTtBQUdsRCxXQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUFBLElBQUE7QUFBQTtBQUFBLElBN0V0QyxJQUFnQixVQUE0QztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBNUQsSUFBZ0IsUUFBNEMsT0FBQTtBQUFBLHlCQUFBLDJCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFHM0MsSUFBZ0IsT0FBc0I7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXRDLElBQWdCLEtBQXNCLE9BQUE7QUFBQSx5QkFBQSx3QkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBS25FLElBQWdCLFdBQTBCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUExQyxJQUFnQixTQUEwQixPQUFBO0FBQUEseUJBQUEsNEJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUkxQyxJQUFnQixlQUFtRDtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBbkUsSUFBZ0IsYUFBbUQsT0FBQTtBQUFBLHlCQUFBLGdDQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLbkUsSUFBZ0IsU0FBb0I7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXBDLElBQWdCLE9BQW9CLE9BQUE7QUFBQSx5QkFBQSwwQkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBS3BDLElBQWdCLGVBQTBCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUExQyxJQUFnQixhQUEwQixPQUFBO0FBQUEseUJBQUEsZ0NBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUsxQyxJQUFnQixxQkFBZ0M7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQWhELElBQWdCLG1CQUFnQyxPQUFBO0FBQUEseUJBQUEsc0NBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUloRCxJQUFvQixNQUFNLE9BQW9CO0FBQ3ZDLFdBQUEsYUFBYSxRQUFRLFNBQVM7QUFFbkMsVUFBSSxDQUFDLE9BQU87QUFDVixhQUFLLFFBQVEsQ0FBQTtBQUFBLE1BQUE7QUFBQSxJQUNmO0FBQUEsSUFFRixJQUFvQixRQUFLOztBQUN2QixjQUFPQyxNQUFBLEtBQUssaUJBQUwsZ0JBQUFBLElBQW1CO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBTzVCLElBQVcsTUFBTSxPQUFhO0FBQ3ZCLFdBQUEsU0FBUyxTQUFTO0FBR2pCLFlBQUEsS0FBbUIsSUFBSTtBQUN4QixXQUFBLE1BQU0sUUFBUSxDQUFDLE1BQVksR0FBRyxNQUFNLElBQUksQ0FBQyxDQUFDO0FBQzFDLFdBQUEsYUFBYSxRQUFRLEdBQUc7QUFFN0IsV0FBSyxnQkFBZTtBQUFBLElBQUE7QUFBQSxJQUV0QixJQUFXLFFBQUs7QUFDZCxhQUFPLEtBQUs7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUF5QlAsV0FBUTtBQUNiLGFBQU8sS0FBSztBQUFBLElBQUE7QUFBQSxJQUdFLG9CQUFpQjtBQUMvQixXQUFLLFFBQVEsQ0FBQTtBQUFBLElBQUE7QUFBQSxJQUdDLHlCQUNkLE9BQ0EsU0FBMkI7QUFFM0IsVUFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLE1BQUE7QUFFRyxXQUFBLFFBQVMsTUFBeUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLE1BQU0sS0FBYTtBQUFBLElBQUE7QUFBQSxJQUd2RSxrQkFBZTtBQUMxQixZQUFBLFlBQVksSUFBSTtBQUNqQixXQUFBLE1BQU0sUUFBUSxDQUFDLFNBQVMsVUFBVSxPQUFPLEtBQUssTUFBTSxJQUFJLENBQUM7QUFDekQsV0FBQSxVQUFVLGFBQWEsU0FBUztBQUFBLElBQUE7QUFBQSxJQUcvQixZQUFZLE9BQWdCO0FBQ2xDLFlBQU0sZ0JBQWU7QUFDckIsWUFBTSxlQUFjO0FBQUEsSUFBQTtBQUFBLElBR2QsbUJBQW1CLE9BQWEsT0FBVztBQUUvQyxhQUFBLE1BQU0sU0FBUyxNQUFNLFFBQ3JCLE1BQU0sU0FBUyxNQUFNLFFBQ3JCLE1BQU0saUJBQWlCLE1BQU07QUFBQSxJQUFBO0FBQUEsSUFJekIsYUFBYSxPQUFnQjtBQUM5QixXQUFBO0FBQ0wsVUFBSSxDQUFDLEtBQUssWUFBWSxDQUFDLEtBQUssY0FBYztBQUNuQyxhQUFBLGNBQWMsTUFBTSxRQUF1QixJQUFJO0FBQ3BELGFBQUssWUFBWSxLQUFLO0FBQUEsTUFBQTtBQUFBLElBQ3hCO0FBQUEsSUFHTSxhQUFhLE9BQWdCO0FBQzlCLFdBQUE7QUFDTCxVQUNFLENBQUMsS0FBSyxZQUNOLENBQUMsS0FBSyxnQkFDTixNQUFNLFdBQVcsS0FBSyxlQUN0QixLQUFLLGFBQWEsR0FDbEI7QUFDQSxhQUFLLGNBQWE7QUFDbEIsYUFBSyxZQUFZLEtBQUs7QUFBQSxNQUFBO0FBQUEsSUFDeEI7QUFBQSxJQUdNLFlBQVksT0FBZ0I7QUFDbEMsV0FBSyxXQUFXO0FBQ2hCLFVBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxLQUFLLGNBQWM7QUFDeEMsYUFBSyxjQUFhO0FBQ2xCLGFBQUssWUFBWSxLQUFLO0FBQ2pCLGFBQUEsZ0JBQWdCLE1BQU0sYUFBYyxLQUFLO0FBQUEsTUFBQTtBQUFBLElBQ2hEO0FBQUEsSUFHTSxXQUFRO0FBQ1YsVUFBQSx5QkFBeUIsdUJBQXVCLFlBQVk7QUFDekQsYUFBQSxZQUFZLGdCQUFnQixzQkFBc0IsSUFBSTtBQUFBLE1BQUE7QUFBQSxJQUM3RDtBQUFBLElBR00sVUFBTztBQUNULFVBQUEseUJBQXlCLHVCQUF1QixZQUFZO0FBQ3pELGFBQUEsWUFBWSxnQkFBZ0Isb0JBQW9CO0FBQUEsTUFBQTtBQUFBLElBQ3ZEO0FBQUEsSUFHTSxjQUNOLGFBQXNDLFFBQ3RDLGNBQXVCLE9BQUs7QUFFNUIsV0FBSyxjQUFjO0FBQ2QsV0FBQSxnQkFBZ0IsZUFBZSxXQUFXO0FBQzFDLFdBQUEsWUFBWSxnQkFBZ0IsZUFBZSxXQUFXO0FBQUEsSUFBQTtBQUFBLElBR3JELFdBQVcsT0FBZTtBQUNoQyxZQUFNLFlBQVksTUFBTTtBQUN4QixVQUFJLFVBQVUsT0FBTztBQUNkLGFBQUEsZ0JBQWdCLFVBQVUsS0FBSztBQUFBLE1BQUE7QUFFdEMseUJBQW1CLE9BQU8sSUFBSTtBQUFBLElBQUE7QUFBQSxJQUd4QixnQkFBZ0IsT0FBZTtBQUNqQyxVQUFBLENBQUMsS0FBSyxZQUFZLEtBQUssaUJBQWlCLGdCQUFnQixLQUFLLE1BQU0sV0FBVyxHQUFHO0FBQzlFLGFBQUEsUUFBUSxNQUFNLEtBQUssS0FBSztBQUFBLE1BQUEsT0FDeEI7QUFDTCxhQUFLLFFBQVEsTUFBTSxLQUFLLEtBQUssRUFDMUI7QUFBQTtBQUFBLFVBRUMsQ0FBQyxZQUNDLEtBQUssTUFBTyxVQUFVLENBQUMsWUFBa0IsS0FBSyxtQkFBbUIsU0FBUyxPQUFPLENBQUMsTUFDbEY7QUFBQSxRQUFBLEVBRUgsT0FBTyxLQUFLLEtBQUs7QUFBQSxNQUFBO0FBRXRCLFdBQUssc0JBQXFCO0FBQ3JCLFdBQUEsa0JBQWtCLEtBQUssS0FBSyxLQUFLO0FBQUEsSUFBQTtBQUFBLElBR2hDLFlBQVksTUFBVTtBQUN2QixXQUFBLFFBQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQyxNQUFZLENBQUMsS0FBSyxtQkFBbUIsTUFBTSxDQUFDLENBQUM7QUFDN0UsV0FBSyxzQkFBcUI7QUFHckIsV0FBQSxjQUFjLElBQUksTUFBTSxTQUFTLEVBQUUsVUFBVSxNQUFNLFNBQVMsS0FBTSxDQUFBLENBQUM7QUFDbkUsV0FBQSxjQUFjLElBQUksTUFBTSxVQUFVLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUNwRCxXQUFBLGtCQUFrQixLQUFLLEtBQUssS0FBSztBQUFBLElBQUE7QUFBQTtBQUFBLElBSWhDLGdCQUFnQixNQUFZO0FBQzVCLFlBQUEsSUFBWSxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDO0FBQzVELGFBQU8sSUFBSSxPQUFPLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7QUFBQSxJQUFBO0FBQUEsSUFHOUQsd0JBQXFCO0FBQzNCLFdBQUssWUFBWSxZQUFZLGtDQUFrQyxLQUFLLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFDMUYsS0FBSyxVQUFVLE9BQU87QUFBQSxJQUFBO0FBQUEsSUFJbEIscUJBQWtCO0FBQ2pCLGFBQUE7QUFBQTtBQUFBLGVBRUksS0FBSyxJQUFJO0FBQUE7QUFBQSxvQkFFSixLQUFLLFlBQVksS0FBSyxZQUFZO0FBQUEsVUFDNUMsSUFBSSxDQUFDLE9BQXNCO0FBQzNCLGFBQUssY0FBYztBQUFBLE1BQUEsQ0FDcEIsQ0FBQztBQUFBO0FBQUEsVUFFQSw0QkFBNEIsS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUFBO0FBQUE7QUFBQSxJQUFBO0FBQUEsSUFLbkQsc0JBQW1CO0FBQ2xCLGFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFJUSxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsbUJBQW1CO0FBQUE7QUFBQTtBQUFBLGdFQUdqQixLQUFLLFlBQVk7QUFBQTtBQUFBLFlBRXJFLDhCQUE4QixLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBSTlDLEtBQUssSUFBSTtBQUFBLHdCQUNKLEtBQUssWUFBWSxLQUFLLFlBQVk7QUFBQSxjQUM1QyxJQUFJLENBQUMsT0FBc0I7QUFDM0IsYUFBSyxjQUFjO0FBQUEsTUFBQSxDQUNwQixDQUFDO0FBQUE7QUFBQSxjQUVBLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBO0FBQUEsSUFPdkQsa0JBQWU7QUFDckIsWUFBTSxXQUNKLEtBQUssTUFBTSxTQUFTLElBQ2hCLEVBQUUsU0FBUyxNQUFNLFNBQVMsU0FDMUIsRUFBRSxTQUFTLE9BQU8sU0FBUyxPQUFNO0FBR2hDLGFBQUE7QUFBQSxTQUNGLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQSxVQUM3QixLQUFLLE1BQU0sSUFDWCxDQUFDLFNBQWU7QUFBQSxhQUNiLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQTtBQUFBLDJEQUVnQixLQUFLLElBQUk7QUFBQSwyREFDVCxLQUFLLGdCQUFnQixLQUFLLElBQUksQ0FBQztBQUFBO0FBQUE7QUFBQSxxQkFHckUsS0FBSyxJQUFJO0FBQUE7QUFBQSx1QkFFUCxNQUFNLEtBQUssWUFBWSxJQUFJLENBQUM7QUFBQSwyQkFDeEIsR0FBRywyQkFBMkIsS0FBSyxVQUFVLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO0FBQUE7QUFBQSxjQUVuRixhQUFhLFNBQVMsT0FBTyxDQUFDLEdBQUcsQ0FDdEM7QUFBQSxVQUNDLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQTtBQUFBLElBQUE7QUFBQSxJQUluQixTQUFNO0FBQ3ZCLFlBQU0sWUFBWSxLQUFLLHFCQUNuQixHQUFHLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsS0FDbkY7QUFDRyxhQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSVksS0FBSyxZQUFZO0FBQUEsc0JBQ2xCLEtBQUssV0FBVztBQUFBLHVCQUNmLEtBQUssWUFBWTtBQUFBLGtCQUN0QixLQUFLLFdBQVc7QUFBQTtBQUFBO0FBQUEsY0FHcEIsS0FBSyxZQUFZLFlBQVksS0FBSyxtQkFBdUIsSUFBQSxLQUFLLG9CQUFxQixDQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMEJBSXZFLEtBQUssWUFBWSxLQUFLLFlBQVk7QUFBQSwwQkFDbEMsS0FBSyxRQUFRO0FBQUEsdUJBQ2hCLEtBQUssVUFBVSxPQUFPO0FBQUEsMkJBQ2xCLGFBQWEsT0FBTztBQUFBLHdCQUN2QixLQUFLLFVBQVU7QUFBQSx1QkFDaEIsS0FBSyxRQUFRO0FBQUEsc0JBQ2QsS0FBSyxPQUFPO0FBQUEsZ0JBQ2xCLElBQUksQ0FBQyxPQUFzQjtBQUMzQixhQUFLLGVBQWU7QUFBQSxNQUFBLENBQ3JCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU9KLElBQUksQ0FBQyxNQUFpQixLQUFLLGNBQWMsQ0FBMEIsQ0FBQztBQUFBO0FBQUEsVUFFdEUsS0FBSyxNQUFNLFNBQVMsSUFBSSxLQUFLLGdCQUFBLElBQW9CLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBQTtBQUFBLEtBblVwRCwyQ0FHaUIsd0NBSzdCLDRDQUlBLGdEQUtBLDBDQUtBLGdEQUtBOztBQTNCQywwQkFBQSxDQUFBLFVBQVU7QUFHVix1QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQU0sQ0FBQSxDQUFDOzRCQUczQixhQUNBLFNBQVMsRUFBRSxNQUFNLFFBQUEsQ0FBUyxDQUFDO0FBSTNCLCtCQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsZ0JBQWlCLENBQUEsQ0FBQzswQkFJeEMsYUFDQSxVQUFVO2dDQUlWLGFBQ0EsU0FBUyxFQUFFLFdBQVcsZ0JBQUEsQ0FBaUIsQ0FBQztzQ0FJeEMsYUFDQSxTQUFTLEVBQUUsV0FBVyxzQkFBQSxDQUF1QixDQUFDO0FBSTlDLDRCQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsTUFBTyxDQUFBLENBQUM7QUFlOUIsNEJBQUEsQ0FBQSxTQUFTLEVBQUUsV0FBVyxNQUFPLENBQUEsQ0FBQztBQTdDSCxpQkFBQSxJQUFBLE1BQUEscUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxXQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGFBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFNBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsVUFBNEM7QUFBQSxTQUFBLFVBQUEsYUFBQSx1QkFBQSwwQkFBQTtBQUczQixpQkFBQSxJQUFBLE1BQUEsa0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxRQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFVBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLE1BQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsT0FBc0I7QUFBQSxTQUFBLFVBQUEsYUFBQSxvQkFBQSx1QkFBQTtBQUtuRCxpQkFBQSxJQUFBLE1BQUEsc0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxZQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGNBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFVBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsV0FBMEI7QUFBQSxTQUFBLFVBQUEsYUFBQSx3QkFBQSwyQkFBQTtBQUkxQixpQkFBQSxJQUFBLE1BQUEsMEJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxnQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxrQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsY0FBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBQSxlQUFtRDtBQUFBLFNBQUEsVUFBQSxhQUFBLDRCQUFBLCtCQUFBO0FBS25ELGlCQUFBLElBQUEsTUFBQSxvQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFVBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsWUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsUUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBQSxTQUFvQjtBQUFBLFNBQUEsVUFBQSxhQUFBLHNCQUFBLHlCQUFBO0FBS3BCLGlCQUFBLElBQUEsTUFBQSwwQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGdCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGtCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxjQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLGVBQTBCO0FBQUEsU0FBQSxVQUFBLGFBQUEsNEJBQUEsK0JBQUE7QUFLMUIsaUJBQUEsSUFBQSxNQUFBLGdDQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsc0JBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsd0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLG9CQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLHFCQUFnQztBQUFBLFNBQUEsVUFBQSxhQUFBLGtDQUFBLHFDQUFBO0FBSWhELGlCQUFBLElBQUEsTUFBQSx1QkFBQSxFQUFBLE1BQUEsVUFBQSxNQUFBLFNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsV0FBQSxLQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFvQixRQU1uQjtBQUFBLFNBQUEsVUFBQSxhQUFBLE1BQUEsMEJBQUE7QUFTRCxpQkFBQSxJQUFBLE1BQUEsdUJBQUEsRUFBQSxNQUFBLFVBQUEsTUFBQSxTQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFdBQUEsS0FBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBVyxRQVNWO0FBQUEsU0FBQSxVQUFBLGFBQUEsTUFBQSwwQkFBQTtBQTlESCxpQkFpVkMsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQWhWd0IsR0FBTSxTQUFtQixPQUN6QixHQUFBLFNBQVM7QUFBQSxJQUM5QixrQkFBa0I7QUFBQSxFQUNWLEdBSk4sa0JBQXNCLFlBQUEsdUJBQUEsR0FBQzs7OyJ9