@sbb-esta/lyne-elements-dev 5.0.0-next.2-dev.1778578639 → 5.0.0-next.2-dev.1778587942

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 (661) hide show
  1. package/accordion/accordion.component.js +1 -1
  2. package/{accordion.component-DN0x35kD.js → accordion.component-DbuSYzV1.js} +20 -19
  3. package/accordion.js +1 -1
  4. package/accordion.pure.js +1 -1
  5. package/alert/alert/alert.component.js +1 -1
  6. package/{alert.component-D8NT9YJ-.js → alert.component-DN7sW2NC.js} +17 -17
  7. package/alert.js +1 -1
  8. package/alert.pure.js +1 -1
  9. package/autocomplete/autocomplete-base-element.js +1 -1
  10. package/autocomplete/autocomplete.component.js +1 -1
  11. package/{autocomplete-base-element-65vWamdc.js → autocomplete-base-element-DRGjFF9_.js} +7 -7
  12. package/autocomplete.js +1 -1
  13. package/autocomplete.pure.js +1 -1
  14. package/{block-link-common-aUfrxxDp.js → block-link-common-B1E38xKe.js} +14 -15
  15. package/button/common/button-common.js +1 -1
  16. package/button/mini-button-group/mini-button-group.component.js +1 -1
  17. package/{button-common-BMpS65Zf.js → button-common-BQdNXKwl.js} +18 -18
  18. package/button.js +2 -2
  19. package/button.pure.js +2 -2
  20. package/checkbox/checkbox.component.js +1 -1
  21. package/checkbox-panel/checkbox-panel.component.js +1 -1
  22. package/{checkbox.component-ChQmCxal.js → checkbox.component-DWmjiv_c.js} +8 -8
  23. package/checkbox.js +1 -1
  24. package/checkbox.pure.js +1 -1
  25. package/chip/chip-group/chip-group.component.js +1 -1
  26. package/{chip-group.component-BMpczIZH.js → chip-group.component-DJORKUef.js} +19 -19
  27. package/chip.js +1 -1
  28. package/chip.pure.js +1 -1
  29. package/{compact-paginator.component-C6qbMZ4X.js → compact-paginator.component-BAuShgQE.js} +1 -1
  30. package/container/sticky-bar/sticky-bar.component.js +1 -1
  31. package/container.js +1 -1
  32. package/container.pure.js +1 -1
  33. package/core/base-elements/selection-group-base-element.js +1 -1
  34. package/core/mixins/panel-mixin.js +1 -1
  35. package/core/mixins/selection-panel-mixin.js +1 -1
  36. package/core/styles/core.scss +4 -0
  37. package/core/styles/lean-off-brand-theme.scss +3 -0
  38. package/core/styles/lean-safety-theme.scss +3 -0
  39. package/core/styles/option-panel-common.scss +1 -1
  40. package/core/styles/styles.js +1 -1
  41. package/core.css +80 -54
  42. package/core.js +31 -32
  43. package/custom-elements.json +3122 -3099
  44. package/development/accordion/accordion.component.d.ts +3 -4
  45. package/development/accordion/accordion.component.d.ts.map +1 -1
  46. package/development/accordion/accordion.component.js +1 -1
  47. package/development/accordion.component-xx7XabDY.js +165 -0
  48. package/development/accordion.js +1 -1
  49. package/development/accordion.pure.js +1 -1
  50. package/development/action-group/action-group.component.d.ts +2 -2
  51. package/development/action-group/action-group.component.d.ts.map +1 -1
  52. package/development/action-group.component-wgXPpkQe.js +1 -1
  53. package/development/alert/alert/alert.component.d.ts +2 -3
  54. package/development/alert/alert/alert.component.d.ts.map +1 -1
  55. package/development/alert/alert/alert.component.js +1 -1
  56. package/development/{alert.component-DxzF0FOi.js → alert.component-Dzm5z0jh.js} +5 -6
  57. package/development/alert.js +1 -1
  58. package/development/alert.pure.js +1 -1
  59. package/development/autocomplete/autocomplete-base-element.d.ts +3 -3
  60. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  61. package/development/autocomplete/autocomplete-base-element.js +1 -1
  62. package/development/autocomplete/autocomplete.component.js +1 -1
  63. package/development/autocomplete-base-element-DQiZ6hhk.js +683 -0
  64. package/development/autocomplete.js +1 -1
  65. package/development/autocomplete.pure.js +1 -1
  66. package/development/{block-link-common-CoZgcEBY.js → block-link-common-DNvRfeay.js} +3 -5
  67. package/development/button/common/button-common.d.ts +1 -1
  68. package/development/button/common/button-common.d.ts.map +1 -1
  69. package/development/button/common/button-common.js +1 -1
  70. package/development/button/mini-button-group/mini-button-group.component.d.ts +2 -3
  71. package/development/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
  72. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  73. package/development/{button-common-DZUBRwwD.js → button-common-C-A7Dulr.js} +5 -6
  74. package/development/button.js +2 -2
  75. package/development/button.pure.js +2 -2
  76. package/development/calendar/common/calendar-cell-base-element.d.ts.map +1 -1
  77. package/development/calendar-cell-base-element-mWRSDeWc.js +1 -1
  78. package/development/checkbox/checkbox.component.d.ts +2 -3
  79. package/development/checkbox/checkbox.component.d.ts.map +1 -1
  80. package/development/checkbox/checkbox.component.js +1 -1
  81. package/development/checkbox-panel/checkbox-panel.component.js +2 -2
  82. package/development/{checkbox.component-D6BR8e7w.js → checkbox.component-UbxCpZmi.js} +6 -7
  83. package/development/checkbox.js +1 -1
  84. package/development/checkbox.pure.js +1 -1
  85. package/development/chip/chip-group/chip-group.component.d.ts +1 -1
  86. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  87. package/development/chip/chip-group/chip-group.component.js +1 -1
  88. package/development/chip-group.component-Sgmi-kSy.js +403 -0
  89. package/development/chip.js +1 -1
  90. package/development/chip.pure.js +1 -1
  91. package/development/compact-paginator.component-BgkpxaaD.js +49 -0
  92. package/development/container/sticky-bar/sticky-bar.component.d.ts +2 -3
  93. package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  94. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  95. package/development/container.js +1 -1
  96. package/development/container.pure.js +1 -1
  97. package/development/core/base-elements/selection-group-base-element.d.ts +2 -3
  98. package/development/core/base-elements/selection-group-base-element.d.ts.map +1 -1
  99. package/development/core/base-elements/selection-group-base-element.js +1 -1
  100. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  101. package/development/core/mixins/panel-mixin.js +1 -1
  102. package/development/core/mixins/selection-panel-mixin.js +2 -1
  103. package/development/core/styles/styles.js +1 -1
  104. package/development/core.d.ts +0 -1
  105. package/development/core.d.ts.map +1 -1
  106. package/development/core.js +4 -5
  107. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts +2 -3
  108. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  109. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  110. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +1 -1
  111. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  112. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  113. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +1 -1
  114. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  115. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  116. package/development/{expansion-panel-content.component-BUbiseFP.js → expansion-panel-content.component-Bs0pYNJO.js} +2 -1
  117. package/development/{expansion-panel-header.component-CQFSwrqu.js → expansion-panel-header.component-gg5A_7Pz.js} +2 -1
  118. package/development/expansion-panel.component-DptYMbwV.js +317 -0
  119. package/development/expansion-panel.js +3 -3
  120. package/development/expansion-panel.pure.js +3 -3
  121. package/development/file-selector/common/file-selector-common.d.ts +1 -1
  122. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  123. package/development/file-selector/common/file-selector-common.js +1 -1
  124. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  125. package/development/file-selector/file-selector/file-selector.component.js +5 -4
  126. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  127. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  128. package/development/file-selector-common-CGL95Rnw.js +412 -0
  129. package/development/file-selector-dropzone.component-B84OL4Xd.js +106 -0
  130. package/development/file-selector.js +2 -2
  131. package/development/file-selector.pure.js +2 -2
  132. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  133. package/development/{flip-card-summary.component-C-US77Nw.js → flip-card-summary.component-jLNjJUNl.js} +2 -2
  134. package/development/flip-card.js +1 -1
  135. package/development/flip-card.pure.js +1 -1
  136. package/development/form-field/form-field/form-field.component.d.ts +2 -3
  137. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  138. package/development/form-field/form-field/form-field.component.js +1 -1
  139. package/development/form-field.component-CPWBCHer.js +702 -0
  140. package/development/form-field.js +1 -1
  141. package/development/form-field.pure.js +1 -1
  142. package/development/header/common/header-action-common.d.ts.map +1 -1
  143. package/development/header/common/header-action-common.js +1 -1
  144. package/development/header/header/header.component.d.ts +2 -3
  145. package/development/header/header/header.component.d.ts.map +1 -1
  146. package/development/header/header/header.component.js +1 -1
  147. package/development/header-action-common-Be0XQge2.js +86 -0
  148. package/development/header.component-C4e7CNql.js +334 -0
  149. package/development/header.js +2 -2
  150. package/development/header.pure.js +2 -2
  151. package/development/link/common/block-link-common.d.ts +1 -1
  152. package/development/link/common/block-link-common.d.ts.map +1 -1
  153. package/development/link/common/block-link-common.js +1 -1
  154. package/development/link-list/common/link-list-base.d.ts +1 -2
  155. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  156. package/development/link-list/common/link-list-base.js +1 -1
  157. package/development/link-list/link-list.component.js +1 -1
  158. package/development/{link-list-base-QADBTZCN.js → link-list-base-CKT3c8yW.js} +4 -5
  159. package/development/{link-list.component-CKVU3Gsr.js → link-list.component-B90qHOUD.js} +2 -2
  160. package/development/link-list.js +2 -2
  161. package/development/link-list.pure.js +2 -2
  162. package/development/link.js +1 -1
  163. package/development/link.pure.js +1 -1
  164. package/development/mini-button-group.component-VYKZf1rq.js +115 -0
  165. package/development/navigation/common/navigation-action-common.d.ts +0 -1
  166. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  167. package/development/navigation/common/navigation-action-common.js +1 -1
  168. package/development/navigation/navigation-list/navigation-list.component.d.ts +2 -3
  169. package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
  170. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  171. package/development/navigation/navigation-marker/navigation-marker.component.d.ts +1 -1
  172. package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  173. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  174. package/development/navigation-action-common-fkYNyX19.js +56 -0
  175. package/development/{navigation-list.component-DrdbtDRs.js → navigation-list.component-Dvv-bZ2V.js} +1 -5
  176. package/development/{navigation-marker.component-fB05cjtE.js → navigation-marker.component-DMqe-VlY.js} +3 -4
  177. package/development/navigation.js +3 -3
  178. package/development/navigation.pure.js +3 -3
  179. package/development/notification/notification.component.d.ts +2 -5
  180. package/development/notification/notification.component.d.ts.map +1 -1
  181. package/development/notification/notification.component.js +1 -1
  182. package/development/notification.component-BiJSo7Pl.js +259 -0
  183. package/development/notification.js +1 -1
  184. package/development/notification.pure.js +1 -1
  185. package/development/{optgroup-base-element-Cq8DMPk9.js → optgroup-base-element-CLfE6pmz.js} +2 -2
  186. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  187. package/development/option/optgroup/optgroup-base-element.js +1 -1
  188. package/development/option/optgroup/optgroup.component.js +1 -1
  189. package/development/option/option/option-base-element.d.ts.map +1 -1
  190. package/development/option/option/option-base-element.js +2 -2
  191. package/development/option/option-hint/option-hint.component.d.ts.map +1 -1
  192. package/development/option/option-hint/option-hint.component.js +1 -1
  193. package/development/{option-hint.component-B4PxB3BW.js → option-hint.component-DPfgcpVn.js} +2 -1
  194. package/development/option.js +2 -2
  195. package/development/option.pure.js +2 -2
  196. package/development/paginator/common/paginator-common.d.ts +1 -1
  197. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  198. package/development/paginator/common/paginator-common.js +1 -407
  199. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  200. package/development/paginator/paginator/paginator.component.js +1 -1
  201. package/development/paginator-common-BCeNUko_.js +410 -0
  202. package/development/paginator.component-BwLUSpDj.js +261 -0
  203. package/development/paginator.js +3 -3
  204. package/development/paginator.pure.js +3 -3
  205. package/development/{panel-mixin-CFz9-K_8.js → panel-mixin-DPybe45K.js} +3 -5
  206. package/development/popover/popover.component.js +1 -1
  207. package/development/{popover.component-Bvbf4NyI.js → popover.component-BmTfHMFw.js} +1 -1
  208. package/development/popover.js +1 -1
  209. package/development/popover.pure.js +1 -1
  210. package/development/radio-button/common/radio-button-common.js +1 -1
  211. package/development/radio-button/radio-button.component.d.ts +2 -2
  212. package/development/radio-button/radio-button.component.d.ts.map +1 -1
  213. package/development/radio-button/radio-button.component.js +1 -1
  214. package/development/{radio-button-common-tC_l-WdB.js → radio-button-common-G0jLFo41.js} +1 -1
  215. package/development/{radio-button.component-3BV31Fkc.js → radio-button.component-DnErH-1J.js} +5 -5
  216. package/development/radio-button.js +2 -2
  217. package/development/radio-button.pure.js +2 -2
  218. package/development/select/select.component.d.ts +3 -3
  219. package/development/select/select.component.d.ts.map +1 -1
  220. package/development/select/select.component.js +1 -1
  221. package/development/select.component-CUjF11sq.js +807 -0
  222. package/development/select.js +1 -1
  223. package/development/select.pure.js +1 -1
  224. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  225. package/development/{selection-action-panel.component-ClpKsc-Z.js → selection-action-panel.component-BT0HmTja.js} +1 -1
  226. package/development/selection-action-panel.js +1 -1
  227. package/development/selection-action-panel.pure.js +1 -1
  228. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  229. package/development/{selection-expansion-panel.component-CTCVJiug.js → selection-expansion-panel.component-BT78Qhbf.js} +1 -1
  230. package/development/selection-expansion-panel.js +1 -1
  231. package/development/selection-expansion-panel.pure.js +1 -1
  232. package/development/{selection-group-base-element-RafKyWXP.js → selection-group-base-element-DRT3Ctp2.js} +3 -5
  233. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  234. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  235. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  236. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  237. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  238. package/development/{sidebar-close-button.component-D_grme_h.js → sidebar-close-button.component-CXnf-P5H.js} +1 -1
  239. package/development/{sidebar-container.component-C_cu3Vfy.js → sidebar-container.component-CxwDKxv9.js} +1 -1
  240. package/development/{sidebar-content.component-CbYPeaaz.js → sidebar-content.component-DbcREBUa.js} +1 -1
  241. package/development/{sidebar-title.component-BFqfnG6B.js → sidebar-title.component-BW04otyD.js} +1 -1
  242. package/development/{sidebar.component-DcVKyd9R.js → sidebar.component-mfXnE6WQ.js} +1 -1
  243. package/development/sidebar.js +5 -5
  244. package/development/sidebar.pure.js +5 -5
  245. package/development/signet/signet.component.js +1 -1
  246. package/development/{signet.component-NdFqUZK9.js → signet.component-k14RJ8FA.js} +1 -1
  247. package/development/signet.js +1 -1
  248. package/development/signet.pure.js +1 -1
  249. package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  250. package/development/skiplink-list/skiplink-list.component.js +1 -1
  251. package/development/{skiplink-list.component-ppyytKn2.js → skiplink-list.component-m7xm-pns.js} +3 -3
  252. package/development/skiplink-list.js +1 -1
  253. package/development/skiplink-list.pure.js +1 -1
  254. package/development/slider/slider.component.js +1 -1
  255. package/development/{slider.component-k8g6G0j9.js → slider.component-D_nLTlRF.js} +1 -1
  256. package/development/slider.js +1 -1
  257. package/development/slider.pure.js +1 -1
  258. package/development/status/status.component.js +1 -1
  259. package/development/{status.component-CtTNDvLl.js → status.component-B9en2l26.js} +1 -1
  260. package/development/status.js +1 -1
  261. package/development/status.pure.js +1 -1
  262. package/development/step-label.component-Bo7Z0w7N.js +127 -0
  263. package/development/{step.component-HU8Ji1Pu.js → step.component-CcjtUFyR.js} +1 -1
  264. package/development/stepper/step/step.component.js +1 -1
  265. package/development/stepper/step-label/step-label.component.d.ts +1 -1
  266. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  267. package/development/stepper/step-label/step-label.component.js +1 -1
  268. package/development/stepper/stepper/stepper.component.d.ts +2 -3
  269. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  270. package/development/stepper/stepper/stepper.component.js +1 -1
  271. package/development/stepper.component-80S-oXrH.js +422 -0
  272. package/development/stepper.js +3 -3
  273. package/development/stepper.pure.js +3 -3
  274. package/development/{sticky-bar.component-BrSBKlh-.js → sticky-bar.component-BJLtRvcd.js} +4 -5
  275. package/development/{styles-CmwkvLqU.js → styles-Cctez2BS.js} +2 -2
  276. package/development/{styles-Jlhoev1S.js → styles-WppEBrlW.js} +1 -1
  277. package/development/tab-group.component-D4fvd6Uu.js +265 -0
  278. package/development/{tab-label.component-CPaKKeox.js → tab-label.component-CNX8bsJL.js} +2 -2
  279. package/development/tab-nav-bar.component-B_mi8GGR.js +109 -0
  280. package/development/{tab.component-DxZtEaTP.js → tab.component-BVhYPy5Y.js} +1 -1
  281. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  282. package/development/{table-wrapper.component-Ba6NpQu1.js → table-wrapper.component-By59zmcU.js} +1 -1
  283. package/development/table.js +1 -1
  284. package/development/table.pure.js +1 -1
  285. package/development/tabs/common/styles.js +1 -1
  286. package/development/tabs/tab/tab.component.js +1 -1
  287. package/development/tabs/tab-group/tab-group.component.d.ts +2 -3
  288. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  289. package/development/tabs/tab-group/tab-group.component.js +1 -1
  290. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  291. package/development/tabs/tab-label/tab-label.component.js +1 -1
  292. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts +2 -3
  293. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -1
  294. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  295. package/development/tabs.js +5 -5
  296. package/development/tabs.pure.js +5 -5
  297. package/development/tag/tag/tag.component.d.ts +4 -6
  298. package/development/tag/tag/tag.component.d.ts.map +1 -1
  299. package/development/tag/tag/tag.component.js +1 -1
  300. package/development/tag/tag-group/tag-group.component.d.ts +1 -2
  301. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  302. package/development/tag/tag-group/tag-group.component.js +1 -1
  303. package/development/tag-group.component-Db8prSBL.js +194 -0
  304. package/development/tag.component-DG1uxD28.js +238 -0
  305. package/development/tag.js +2 -2
  306. package/development/tag.pure.js +2 -2
  307. package/development/teaser/teaser.component.js +1 -1
  308. package/development/teaser-hero/teaser-hero.component.js +1 -1
  309. package/development/{teaser-hero.component-DrdkFx5X.js → teaser-hero.component-BHMcPmdh.js} +1 -1
  310. package/development/teaser-hero.js +1 -1
  311. package/development/teaser-hero.pure.js +1 -1
  312. package/development/teaser-panel/teaser-panel.component.js +1 -1
  313. package/development/{teaser-panel.component-WSXbBzCq.js → teaser-panel.component-BRfbvmkb.js} +1 -1
  314. package/development/teaser-panel.js +1 -1
  315. package/development/teaser-panel.pure.js +1 -1
  316. package/development/teaser-product/common/teaser-product-common.js +1 -1
  317. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  318. package/development/{teaser-product-common-B8a-KHTi.js → teaser-product-common-DOyLdTks.js} +1 -1
  319. package/development/{teaser-product.component-C80Dchhl.js → teaser-product.component-DMyuB-cH.js} +1 -1
  320. package/development/teaser-product.js +2 -2
  321. package/development/teaser-product.pure.js +2 -2
  322. package/development/{teaser.component-DqtA6XAX.js → teaser.component-CF_NUbwJ.js} +1 -1
  323. package/development/teaser.js +1 -1
  324. package/development/teaser.pure.js +1 -1
  325. package/development/time-input/time-input.component.js +1 -1
  326. package/development/{time-input.component-Bc4Sfu-1.js → time-input.component-XxzRoupm.js} +1 -1
  327. package/development/time-input.js +1 -1
  328. package/development/time-input.pure.js +1 -1
  329. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  330. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  331. package/development/timetable-form/timetable-form-field/timetable-form-field.component.d.ts.map +1 -1
  332. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  333. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  334. package/development/{timetable-form-details.component-DacESFsP.js → timetable-form-details.component-BeuAZUQe.js} +1 -1
  335. package/development/{timetable-form-field.component-DWCb4SY0.js → timetable-form-field.component-DC2z1Cwf.js} +4 -1
  336. package/development/{timetable-form-swap-button.component-DGCpV2_y.js → timetable-form-swap-button.component-CnbVc8Ok.js} +1 -1
  337. package/development/{timetable-form.component-CtRlKR7e.js → timetable-form.component-C8DfPePn.js} +1 -1
  338. package/development/timetable-form.js +4 -4
  339. package/development/timetable-form.pure.js +4 -4
  340. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  341. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  342. package/development/{timetable-occupancy-icon.component-uaabLEC5.js → timetable-occupancy-icon.component-UBmyZsTO.js} +1 -1
  343. package/development/timetable-occupancy-icon.js +1 -1
  344. package/development/timetable-occupancy-icon.pure.js +1 -1
  345. package/development/{timetable-occupancy.component-DKWki5pG.js → timetable-occupancy.component-DMm242Fr.js} +1 -1
  346. package/development/timetable-occupancy.js +1 -1
  347. package/development/timetable-occupancy.pure.js +1 -1
  348. package/development/title/title-base.js +1 -1
  349. package/development/title/title.component.d.ts.map +1 -1
  350. package/development/title/title.component.js +1 -1
  351. package/development/{title-base-fg03gSOD.js → title-base-D_Rjyk_j.js} +1 -1
  352. package/development/{title.component-B1Uq-Ctr.js → title.component-CMxYhTfw.js} +2 -2
  353. package/development/title.js +2 -2
  354. package/development/title.pure.js +2 -2
  355. package/development/toast/toast.component.js +1 -1
  356. package/development/{toast.component-DeQSxWdf.js → toast.component-DonS3uQm.js} +1 -1
  357. package/development/toast.js +1 -1
  358. package/development/toast.pure.js +1 -1
  359. package/development/toggle/toggle/toggle.component.d.ts +2 -3
  360. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  361. package/development/toggle/toggle/toggle.component.js +1 -1
  362. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  363. package/development/toggle-check/toggle-check.component.d.ts +2 -3
  364. package/development/toggle-check/toggle-check.component.d.ts.map +1 -1
  365. package/development/toggle-check/toggle-check.component.js +1 -1
  366. package/development/{toggle-check.component-BUYj49gP.js → toggle-check.component-BIV7jFIc.js} +4 -5
  367. package/development/toggle-check.js +1 -1
  368. package/development/toggle-check.pure.js +1 -1
  369. package/development/{toggle-option.component-heU6pMCB.js → toggle-option.component-DRxwLSKU.js} +1 -1
  370. package/development/toggle.component-B03k5qc1.js +243 -0
  371. package/development/toggle.js +2 -2
  372. package/development/toggle.pure.js +2 -2
  373. package/development/tooltip/tooltip.component.js +1 -1
  374. package/development/{tooltip.component-BjOgv29e.js → tooltip.component-D8zik3p4.js} +1 -1
  375. package/development/tooltip.js +1 -1
  376. package/development/tooltip.pure.js +1 -1
  377. package/development/train/train/train.component.js +1 -1
  378. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  379. package/development/train/train-formation/train-formation.component.js +1 -1
  380. package/development/train/train-wagon-common.js +1 -1
  381. package/development/{train-blocked-passage.component-2TuSqbDg.js → train-blocked-passage.component-Cxd7dBDC.js} +1 -1
  382. package/development/{train-formation.component-BYB03zX5.js → train-formation.component-BEg6OPib.js} +1 -1
  383. package/development/{train-wagon-common-C-0fI1r2.js → train-wagon-common-Dg-BjUtC.js} +1 -1
  384. package/development/{train.component-BDG8SlCc.js → train.component-dECIGw2x.js} +1 -1
  385. package/development/train.js +5 -5
  386. package/development/train.pure.js +4 -4
  387. package/development/visual-checkbox/visual-checkbox.component.d.ts +1 -2
  388. package/development/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  389. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  390. package/development/{visual-checkbox.component-Dzdm0TH-.js → visual-checkbox.component-Dm8DNhH2.js} +4 -5
  391. package/development/visual-checkbox.js +1 -1
  392. package/development/visual-checkbox.pure.js +1 -1
  393. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  394. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  395. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  396. package/{expansion-panel-content.component-Cf1CWu5_.js → expansion-panel-content.component-WG1cwhjd.js} +1 -1
  397. package/{expansion-panel-header.component-DloOF4eC.js → expansion-panel-header.component-CnUqRql_.js} +1 -1
  398. package/expansion-panel.component-DvZogUuX.js +222 -0
  399. package/expansion-panel.js +3 -3
  400. package/expansion-panel.pure.js +3 -3
  401. package/file-selector/common/file-selector-common.js +1 -1
  402. package/file-selector/file-selector/file-selector.component.js +14 -13
  403. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  404. package/{file-selector-common-CmbsJ64j.js → file-selector-common-BE780nIa.js} +34 -34
  405. package/{file-selector-dropzone.component-74fipV3m.js → file-selector-dropzone.component-CGo6odhC.js} +23 -23
  406. package/file-selector.js +2 -2
  407. package/file-selector.pure.js +2 -2
  408. package/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  409. package/{flip-card-summary.component-CuMMdJ-B.js → flip-card-summary.component-D5cKgj47.js} +1 -1
  410. package/flip-card.js +1 -1
  411. package/flip-card.pure.js +1 -1
  412. package/form-field/form-field/form-field.component.js +1 -1
  413. package/{form-field.component-Dg-a3lS5.js → form-field.component-BdfK6r2v.js} +13 -13
  414. package/form-field.js +1 -1
  415. package/form-field.pure.js +1 -1
  416. package/header/common/header-action-common.js +1 -1
  417. package/header/header/header.component.js +1 -1
  418. package/header-action-common-DuPx0U2o.js +64 -0
  419. package/{header.component-Bj7phY1B.js → header.component-TU3e89pY.js} +18 -18
  420. package/header.js +2 -2
  421. package/header.pure.js +2 -2
  422. package/lean-off-brand-theme.css +3755 -0
  423. package/lean-safety-theme.css +3755 -0
  424. package/lean-theme.css +3755 -0
  425. package/link/common/block-link-common.js +1 -1
  426. package/link-list/common/link-list-base.js +1 -1
  427. package/link-list/link-list.component.js +1 -1
  428. package/{link-list-base-CEEw1SMd.js → link-list-base-C12PTC8e.js} +16 -16
  429. package/{link-list.component-CS4KuMkQ.js → link-list.component-BNVd0a8U.js} +1 -1
  430. package/link-list.js +2 -2
  431. package/link-list.pure.js +2 -2
  432. package/link.js +1 -1
  433. package/link.pure.js +1 -1
  434. package/mini-button-group.component-DQBU0BDm.js +85 -0
  435. package/navigation/common/navigation-action-common.js +1 -1
  436. package/navigation/navigation-list/navigation-list.component.js +1 -1
  437. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  438. package/navigation-action-common-x7PMfho0.js +38 -0
  439. package/{navigation-list.component-NQZA2mui.js → navigation-list.component-Cezo1tC-.js} +0 -3
  440. package/{navigation-marker.component-D1p9TkWH.js → navigation-marker.component-CNsMaqpH.js} +2 -3
  441. package/navigation.js +3 -3
  442. package/navigation.pure.js +3 -3
  443. package/notification/notification.component.js +1 -1
  444. package/notification.component-CDGtGwRv.js +188 -0
  445. package/notification.js +1 -1
  446. package/notification.pure.js +1 -1
  447. package/off-brand-theme.css +92 -67
  448. package/{optgroup-base-element-CrO_ydA8.js → optgroup-base-element-Cxe8SIQh.js} +1 -1
  449. package/option/optgroup/optgroup-base-element.js +1 -1
  450. package/option/optgroup/optgroup.component.js +1 -1
  451. package/option/option/option-base-element.js +1 -1
  452. package/option/option-hint/option-hint.component.js +1 -1
  453. package/{option-hint.component-BEXndgG-.js → option-hint.component-NSxCKXEy.js} +1 -1
  454. package/option.js +2 -2
  455. package/option.pure.js +2 -2
  456. package/package.json +14 -2
  457. package/paginator/common/paginator-common.js +2 -294
  458. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  459. package/paginator/paginator/paginator.component.js +1 -1
  460. package/paginator-common-uoCIcl4X.js +294 -0
  461. package/{paginator.component-3ra04AQU.js → paginator.component-DB8l-B6J.js} +1 -1
  462. package/paginator.js +3 -3
  463. package/paginator.pure.js +3 -3
  464. package/{panel-mixin-CcbyRemy.js → panel-mixin-XQXElTGt.js} +18 -19
  465. package/popover/popover.component.js +1 -1
  466. package/popover.js +1 -1
  467. package/popover.pure.js +1 -1
  468. package/radio-button/common/radio-button-common.js +1 -1
  469. package/radio-button/radio-button.component.js +1 -1
  470. package/{radio-button.component-DedTTka_.js → radio-button.component-CZ273yAb.js} +14 -14
  471. package/radio-button.js +2 -2
  472. package/radio-button.pure.js +2 -2
  473. package/safety-theme.css +92 -67
  474. package/select/select.component.js +1 -1
  475. package/{select.component-CO-42jqH.js → select.component-CLPLpFDz.js} +40 -40
  476. package/select.js +1 -1
  477. package/select.pure.js +1 -1
  478. package/selection-action-panel/selection-action-panel.component.js +1 -1
  479. package/selection-action-panel.js +1 -1
  480. package/selection-action-panel.pure.js +1 -1
  481. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  482. package/selection-expansion-panel.js +1 -1
  483. package/selection-expansion-panel.pure.js +1 -1
  484. package/{selection-group-base-element-BCEzcnya.js → selection-group-base-element-COFsU6Ur.js} +17 -18
  485. package/sidebar/sidebar/sidebar.component.js +1 -1
  486. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  487. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  488. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  489. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  490. package/sidebar.js +5 -5
  491. package/sidebar.pure.js +5 -5
  492. package/signet/signet.component.js +1 -1
  493. package/signet.js +1 -1
  494. package/signet.pure.js +1 -1
  495. package/skiplink-list/skiplink-list.component.js +1 -1
  496. package/{skiplink-list.component-Dsg-qVWZ.js → skiplink-list.component-BXaqYpsI.js} +18 -18
  497. package/skiplink-list.js +1 -1
  498. package/skiplink-list.pure.js +1 -1
  499. package/slider/slider.component.js +1 -1
  500. package/slider.js +1 -1
  501. package/slider.pure.js +1 -1
  502. package/standard-theme.css +92 -67
  503. package/status/status.component.js +1 -1
  504. package/status.js +1 -1
  505. package/status.pure.js +1 -1
  506. package/step-label.component-BGSaHafq.js +77 -0
  507. package/stepper/step/step.component.js +1 -1
  508. package/stepper/step-label/step-label.component.js +1 -1
  509. package/stepper/stepper/stepper.component.js +1 -1
  510. package/{stepper.component-BX3gSLpt.js → stepper.component-lh0YSbT1.js} +22 -22
  511. package/stepper.js +3 -3
  512. package/stepper.pure.js +3 -3
  513. package/{sticky-bar.component-CmB6U3iY.js → sticky-bar.component-dmlGAZLW.js} +13 -13
  514. package/styles-DAMaYe4p.js +5 -0
  515. package/{tab-group.component-BGDY-hvA.js → tab-group.component-t4eeCNf-.js} +20 -20
  516. package/{tab-label.component-CMbmEoNe.js → tab-label.component-DvvSohaG.js} +1 -1
  517. package/{tab-nav-bar.component-Cwrqhb-2.js → tab-nav-bar.component-FT2W0urU.js} +13 -13
  518. package/table/table-wrapper/table-wrapper.component.js +1 -1
  519. package/table.css +12 -13
  520. package/table.js +1 -1
  521. package/table.pure.js +1 -1
  522. package/tabs/common/styles.js +1 -1
  523. package/tabs/tab/tab.component.js +1 -1
  524. package/tabs/tab-group/tab-group.component.js +1 -1
  525. package/tabs/tab-label/tab-label.component.js +1 -1
  526. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  527. package/tabs.js +5 -5
  528. package/tabs.pure.js +5 -5
  529. package/tag/tag/tag.component.js +1 -1
  530. package/tag/tag-group/tag-group.component.js +1 -1
  531. package/{tag-group.component-DyXEgvbN.js → tag-group.component-9UfHHJ79.js} +14 -14
  532. package/{tag.component-C74wsPOB.js → tag.component-BKuxfdDi.js} +28 -26
  533. package/tag.js +2 -2
  534. package/tag.pure.js +2 -2
  535. package/teaser/teaser.component.js +1 -1
  536. package/teaser-hero/teaser-hero.component.js +1 -1
  537. package/teaser-hero.js +1 -1
  538. package/teaser-hero.pure.js +1 -1
  539. package/teaser-panel/teaser-panel.component.js +1 -1
  540. package/teaser-panel.js +1 -1
  541. package/teaser-panel.pure.js +1 -1
  542. package/teaser-product/common/teaser-product-common.js +1 -1
  543. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  544. package/teaser-product.js +2 -2
  545. package/teaser-product.pure.js +2 -2
  546. package/teaser.js +1 -1
  547. package/teaser.pure.js +1 -1
  548. package/time-input/time-input.component.js +1 -1
  549. package/time-input.js +1 -1
  550. package/time-input.pure.js +1 -1
  551. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  552. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  553. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  554. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  555. package/timetable-form.js +4 -4
  556. package/timetable-form.pure.js +4 -4
  557. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  558. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  559. package/timetable-occupancy-icon.js +1 -1
  560. package/timetable-occupancy-icon.pure.js +1 -1
  561. package/timetable-occupancy.js +1 -1
  562. package/timetable-occupancy.pure.js +1 -1
  563. package/title/title-base.js +1 -1
  564. package/title/title.component.js +1 -1
  565. package/{title.component-DO67K8g1.js → title.component-VnTeqomb.js} +1 -1
  566. package/title.js +2 -2
  567. package/title.pure.js +2 -2
  568. package/toast/toast.component.js +1 -1
  569. package/toast.js +1 -1
  570. package/toast.pure.js +1 -1
  571. package/toggle/toggle/toggle.component.js +1 -1
  572. package/toggle/toggle-option/toggle-option.component.js +1 -1
  573. package/toggle-check/toggle-check.component.js +1 -1
  574. package/{toggle-check.component-YWr3IHEL.js → toggle-check.component-BcQ5ht0O.js} +17 -17
  575. package/toggle-check.js +1 -1
  576. package/toggle-check.pure.js +1 -1
  577. package/{toggle.component-BFsrJ98d.js → toggle.component-DARkqJol.js} +13 -13
  578. package/toggle.js +2 -2
  579. package/toggle.pure.js +2 -2
  580. package/tooltip/tooltip.component.js +1 -1
  581. package/tooltip.js +1 -1
  582. package/tooltip.pure.js +1 -1
  583. package/train/train/train.component.js +1 -1
  584. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  585. package/train/train-formation/train-formation.component.js +1 -1
  586. package/train/train-wagon-common.js +1 -1
  587. package/train.js +4 -4
  588. package/train.pure.js +4 -4
  589. package/visual-checkbox/visual-checkbox.component.js +1 -1
  590. package/{visual-checkbox.component-R9bYxeNp.js → visual-checkbox.component-YhX5Qk3j.js} +17 -17
  591. package/visual-checkbox.js +1 -1
  592. package/visual-checkbox.pure.js +1 -1
  593. package/core/dom/lean-context.js +0 -7
  594. package/development/accordion.component-Bvx-b38W.js +0 -165
  595. package/development/autocomplete-base-element-BHYleZ3J.js +0 -683
  596. package/development/chip-group.component-DThvmmnh.js +0 -402
  597. package/development/compact-paginator.component-CS7Qz4nM.js +0 -49
  598. package/development/core/dom/lean-context.d.ts +0 -5
  599. package/development/core/dom/lean-context.d.ts.map +0 -1
  600. package/development/core/dom/lean-context.js +0 -12
  601. package/development/expansion-panel.component-BVdylpqi.js +0 -318
  602. package/development/file-selector-common-Da0KNfDP.js +0 -413
  603. package/development/file-selector-dropzone.component-Bdcau18t.js +0 -106
  604. package/development/form-field.component-_lnIpJF5.js +0 -703
  605. package/development/header-action-common-CQ1CaaBd.js +0 -79
  606. package/development/header.component-BX1rKPa_.js +0 -335
  607. package/development/mini-button-group.component-Bg-etiu1.js +0 -116
  608. package/development/navigation-action-common-CGy4K8q-.js +0 -91
  609. package/development/notification.component-D0rkSF3p.js +0 -271
  610. package/development/paginator.component-DIuiY7It.js +0 -261
  611. package/development/select.component-VODtrUee.js +0 -807
  612. package/development/step-label.component-BpuNDWKl.js +0 -126
  613. package/development/stepper.component-BnCUoYv6.js +0 -423
  614. package/development/tab-group.component-o1F-M_-2.js +0 -266
  615. package/development/tab-nav-bar.component-3uXgOman.js +0 -110
  616. package/development/tag-group.component-CYL62Umh.js +0 -196
  617. package/development/tag.component-D5DYXQ3i.js +0 -241
  618. package/development/toggle.component-DndGyA1x.js +0 -244
  619. package/expansion-panel.component-5heRRQ0C.js +0 -222
  620. package/header-action-common-B1jGzY-U.js +0 -61
  621. package/mini-button-group.component-BOJNsLrh.js +0 -85
  622. package/navigation-action-common-HG5kdQJR.js +0 -65
  623. package/notification.component-DpC6ulTx.js +0 -195
  624. package/step-label.component-BkiOyF7s.js +0 -77
  625. package/styles-CgXa3TG9.js +0 -5
  626. /package/{popover.component-C66BxhNQ.js → popover.component-DJruKzY-.js} +0 -0
  627. /package/{radio-button-common-BDGoskeZ.js → radio-button-common-CrIRn10q.js} +0 -0
  628. /package/{selection-action-panel.component-B7OtT_t2.js → selection-action-panel.component-DCGJQ3Mx.js} +0 -0
  629. /package/{selection-expansion-panel.component-NXfxG9uN.js → selection-expansion-panel.component-Cu1egfTY.js} +0 -0
  630. /package/{sidebar-close-button.component-D5gxiJ_e.js → sidebar-close-button.component-8owwjvk3.js} +0 -0
  631. /package/{sidebar-container.component-BI2Jm-cJ.js → sidebar-container.component-Dcke-Uhr.js} +0 -0
  632. /package/{sidebar-content.component-C44ixSgf.js → sidebar-content.component-CYupfsq_.js} +0 -0
  633. /package/{sidebar-title.component-ByroIWTZ.js → sidebar-title.component-Cf64lCJx.js} +0 -0
  634. /package/{sidebar.component-B2IfBEhW.js → sidebar.component-LaqQzMo2.js} +0 -0
  635. /package/{signet.component-xkCj9Bel.js → signet.component-3Xfke8uk.js} +0 -0
  636. /package/{slider.component-DX8K9GWl.js → slider.component-BlUWAWJU.js} +0 -0
  637. /package/{status.component-BkBUOZC5.js → status.component-mel7wA1j.js} +0 -0
  638. /package/{step.component-Djot0mhi.js → step.component-BY6_2Wh2.js} +0 -0
  639. /package/{styles-BNu0Fjw5.js → styles-DisU4TWi.js} +0 -0
  640. /package/{tab.component-BtN993ye.js → tab.component-D6hfhlZw.js} +0 -0
  641. /package/{table-wrapper.component-CQ76PAQl.js → table-wrapper.component-C83EYuZP.js} +0 -0
  642. /package/{teaser-hero.component-mT8miROU.js → teaser-hero.component-mv6HL4vm.js} +0 -0
  643. /package/{teaser-panel.component-DWdMzyoI.js → teaser-panel.component-qRmy2lbz.js} +0 -0
  644. /package/{teaser-product-common-DOQ6f2B7.js → teaser-product-common-J1KZ2Hlw.js} +0 -0
  645. /package/{teaser-product.component-CekvCov9.js → teaser-product.component-BcleFVcu.js} +0 -0
  646. /package/{teaser.component-Q-68xzrN.js → teaser.component-BOqCERR7.js} +0 -0
  647. /package/{time-input.component-BRJerke6.js → time-input.component-Dw8pPYDK.js} +0 -0
  648. /package/{timetable-form-details.component-Wmad9usT.js → timetable-form-details.component-0c6h6shd.js} +0 -0
  649. /package/{timetable-form-field.component-D3P3lV86.js → timetable-form-field.component-Cya8n2Ms.js} +0 -0
  650. /package/{timetable-form-swap-button.component-B8yPDfMq.js → timetable-form-swap-button.component-rI_0UYJw.js} +0 -0
  651. /package/{timetable-form.component-CJKyHMZk.js → timetable-form.component-DVps6baq.js} +0 -0
  652. /package/{timetable-occupancy-icon.component-DA9NTQJn.js → timetable-occupancy-icon.component-ABh1bz-X.js} +0 -0
  653. /package/{timetable-occupancy.component-B0OJi-B1.js → timetable-occupancy.component-DGQ20zH1.js} +0 -0
  654. /package/{title-base-B70qaksx.js → title-base-JBhKD3ur.js} +0 -0
  655. /package/{toast.component-DVaz-D5o.js → toast.component-BMN90Ouu.js} +0 -0
  656. /package/{toggle-option.component-BP9QEwh9.js → toggle-option.component-DQcPDXyl.js} +0 -0
  657. /package/{tooltip.component-BrXCWlQB.js → tooltip.component-NfyDxfw7.js} +0 -0
  658. /package/{train-blocked-passage.component-DxqSh9I8.js → train-blocked-passage.component-B601YYJl.js} +0 -0
  659. /package/{train-formation.component-HM0M0FHW.js → train-formation.component-DVxNBPIB.js} +0 -0
  660. /package/{train-wagon-common-BH9bSebN.js → train-wagon-common-CDCsWVgi.js} +0 -0
  661. /package/{train.component-BZ3jtqQ4.js → train.component-DxadS7O8.js} +0 -0
@@ -1,402 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, isServer, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbDisabledMixin, SbbElement, SbbFormAssociatedMixin, SbbLanguageController, SbbNegativeMixin, SbbPropertyWatcherController, SbbRequiredMixin, forceType, getNextElementIndex, i18nChipGroupInputDescription, i18nSelectionRequired, isArrowKeyPressed, isLean } from "./core.js";
5
- import { SbbChipElement } from "./chip/chip/chip.component.js";
6
- //#region src/elements/chip/chip-group/chip-group.scss?inline
7
- var chip_group_default = ":host {\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n gap: var(--sbb-chip-group-gap);\n align-items: center;\n margin-block: var(--sbb-chip-group-margin-block);\n line-height: var(--sbb-typo-line-height-text);\n}\n\n:host(:is(:is(:state(size-s),[state--size-s]), :is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: 0;\n}\n\n:host(:is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: 0.375rem 0.3125rem;\n}\n@media (min-width: calc(64rem)) {\n :host(:is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: 0.3125rem 0.1875rem;\n }\n}\n\n:host(:is(:state(without-label),[state--without-label]):is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: 0 0.4375rem;\n}\n@media (min-width: calc(64rem)) {\n :host(:is(:state(without-label),[state--without-label]):is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: 0 0.3125rem;\n }\n}\n\n:host(:is(:is(:state(size-l),[state--size-l]), :is(:state(size-m),[state--size-m]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default) 0;\n}\n@media (min-width: calc(64rem)) {\n :host(:is(:is(:state(size-l),[state--size-l]), :is(:state(size-m),[state--size-m]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large) 0;\n }\n}\n\n:host(:is(:state(without-label),[state--without-label]):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: 0.1875rem 0.6875rem;\n}\n@media (min-width: calc(64rem)) {\n :host(:is(:state(without-label),[state--without-label]):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: 0.1875rem 0.875rem;\n }\n}\n\n:host(:is(:state(without-label),[state--without-label]):not(:is(:state(empty),[state--empty]), :is(:state(size-s),[state--size-s]), :is(:state(size-m),[state--size-m]), :is(:state(size-l),[state--size-l]))) {\n --sbb-chip-group-margin-block: var(--sbb-chip-group-margin-block-no-label-not-empty);\n}\n\n:host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default)\n var(--_sbb-chip-group-margin-block-start-default-large);\n}\n@media (min-width: calc(64rem)) {\n :host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large)\n var(--_sbb-chip-group-margin-block-start-default-large);\n }\n}\n\n:host(:not(:is(:state(without-label),[state--without-label]), :is(:state(empty),[state--empty]), :is(:state(size-s),[state--size-s]), :is(:state(size-m),[state--size-m]), :is(:state(size-l),[state--size-l]))) {\n --sbb-chip-group-margin-block: var(--sbb-chip-group-margin-block-with-label-not-empty);\n}\n\n:host(:is(:state(without-label),[state--without-label]):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default)\n 1rem;\n}\n@media (min-width: calc(64rem)) {\n :host(:is(:state(without-label),[state--without-label]):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large)\n 1.25rem;\n }\n}\n\n:host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default)\n 0.46875rem;\n}\n@media (min-width: calc(64rem)) {\n :host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large)\n 0.46875rem;\n }\n}\n\n::slotted(input) {\n flex: 1 1 var(--sbb-chip-group-input-min-width);\n max-height: 1.5rem;\n}\n\n::slotted(sbb-chip) {\n max-width: 100%;\n}";
8
- //#endregion
9
- //#region src/elements/chip/chip-group/chip-group.component.ts
10
- var SbbChipInputTokenEndEvent = class extends CustomEvent {
11
- /**
12
- * @deprecated Use event properties directly.
13
- */
14
- get detail() {
15
- return this;
16
- }
17
- constructor(options) {
18
- super("chipinputtokenend", {
19
- cancelable: true,
20
- bubbles: true,
21
- composed: true
22
- });
23
- this.origin = options.origin;
24
- this.value = options.value;
25
- this.label = options.label;
26
- }
27
- /** Set a new value for the chip that will be created */
28
- setValue(value) {
29
- this.value = value;
30
- }
31
- /** Set a label for the chip that will be created */
32
- setLabel(label) {
33
- this.label = label;
34
- }
35
- };
36
- /**
37
- * The `sbb-chip-group` component is used as a container for one or multiple `sbb-chip`.
38
- *
39
- * @slot - Use the unnamed slot to add `sbb-chip` elements.
40
- * @event {SbbChipInputTokenEndEvent<T>} chipinputtokenend - Notifies that a chip is about to be created. Can be prevented.
41
- * @overrideType value - (T = string[]) | null
42
- */
43
- var SbbChipGroupElement = (() => {
44
- let _classSuper = SbbRequiredMixin(SbbDisabledMixin(SbbNegativeMixin(SbbFormAssociatedMixin(SbbElement))));
45
- let _instanceExtraInitializers = [];
46
- let _set_value_decorators;
47
- let _displayWith_decorators;
48
- let _displayWith_initializers = [];
49
- let _displayWith_extraInitializers = [];
50
- let _separatorKeys_decorators;
51
- let _separatorKeys_initializers = [];
52
- let _separatorKeys_extraInitializers = [];
53
- let _addOnBlur_decorators;
54
- let _addOnBlur_initializers = [];
55
- let _addOnBlur_extraInitializers = [];
56
- return class SbbChipGroupElement extends _classSuper {
57
- static {
58
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
59
- _set_value_decorators = [property({ type: Array })];
60
- _displayWith_decorators = [property({ attribute: false })];
61
- _separatorKeys_decorators = [property({
62
- attribute: "separator-keys",
63
- type: Array
64
- })];
65
- _addOnBlur_decorators = [forceType(), property({
66
- attribute: "add-on-blur",
67
- type: Boolean
68
- })];
69
- __esDecorate(this, null, _set_value_decorators, {
70
- kind: "setter",
71
- name: "value",
72
- static: false,
73
- private: false,
74
- access: {
75
- has: (obj) => "value" in obj,
76
- set: (obj, value) => {
77
- obj.value = value;
78
- }
79
- },
80
- metadata: _metadata
81
- }, null, _instanceExtraInitializers);
82
- __esDecorate(this, null, _displayWith_decorators, {
83
- kind: "accessor",
84
- name: "displayWith",
85
- static: false,
86
- private: false,
87
- access: {
88
- has: (obj) => "displayWith" in obj,
89
- get: (obj) => obj.displayWith,
90
- set: (obj, value) => {
91
- obj.displayWith = value;
92
- }
93
- },
94
- metadata: _metadata
95
- }, _displayWith_initializers, _displayWith_extraInitializers);
96
- __esDecorate(this, null, _separatorKeys_decorators, {
97
- kind: "accessor",
98
- name: "separatorKeys",
99
- static: false,
100
- private: false,
101
- access: {
102
- has: (obj) => "separatorKeys" in obj,
103
- get: (obj) => obj.separatorKeys,
104
- set: (obj, value) => {
105
- obj.separatorKeys = value;
106
- }
107
- },
108
- metadata: _metadata
109
- }, _separatorKeys_initializers, _separatorKeys_extraInitializers);
110
- __esDecorate(this, null, _addOnBlur_decorators, {
111
- kind: "accessor",
112
- name: "addOnBlur",
113
- static: false,
114
- private: false,
115
- access: {
116
- has: (obj) => "addOnBlur" in obj,
117
- get: (obj) => obj.addOnBlur,
118
- set: (obj, value) => {
119
- obj.addOnBlur = value;
120
- }
121
- },
122
- metadata: _metadata
123
- }, _addOnBlur_initializers, _addOnBlur_extraInitializers);
124
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
125
- enumerable: true,
126
- configurable: true,
127
- writable: true,
128
- value: _metadata
129
- });
130
- }
131
- static {
132
- this.elementName = "sbb-chip-group";
133
- }
134
- static {
135
- this.role = "listbox";
136
- }
137
- static {
138
- this.styles = [unsafeCSS(chip_group_default)];
139
- }
140
- static {
141
- this.events = {
142
- input: "input",
143
- change: "change",
144
- chipinputtokenend: "chipinputtokenend"
145
- };
146
- }
147
- /** Value of the form element. */
148
- set value(value) {
149
- value = value ?? [];
150
- const oldValue = this.value;
151
- const toRemove = [...oldValue];
152
- for (const c of value) if (toRemove.includes(c)) toRemove.splice(toRemove.indexOf(c), 1);
153
- toRemove.forEach((value) => this._chipElements().find((c) => c.value === value)?.remove());
154
- const toAdd = [...value];
155
- for (const c of oldValue) if (toAdd.includes(c)) toAdd.splice(toAdd.indexOf(c), 1);
156
- toAdd.forEach((c) => this._createChipElement(c));
157
- }
158
- get value() {
159
- return this._chipElements().map((c) => c.value);
160
- }
161
- #displayWith_accessor_storage;
162
- /** Function that maps a chip's value to its display value. */
163
- get displayWith() {
164
- return this.#displayWith_accessor_storage;
165
- }
166
- set displayWith(value) {
167
- this.#displayWith_accessor_storage = value;
168
- }
169
- #separatorKeys_accessor_storage;
170
- /** The array of keys that will trigger a `chipinputtokenend` event. Default `['Enter']` */
171
- get separatorKeys() {
172
- return this.#separatorKeys_accessor_storage;
173
- }
174
- set separatorKeys(value) {
175
- this.#separatorKeys_accessor_storage = value;
176
- }
177
- #addOnBlur_accessor_storage;
178
- /** Whether to automatically add a chip when the input loses focus if there's a value. */
179
- get addOnBlur() {
180
- return this.#addOnBlur_accessor_storage;
181
- }
182
- set addOnBlur(value) {
183
- this.#addOnBlur_accessor_storage = value;
184
- }
185
- constructor() {
186
- super();
187
- this.#displayWith_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _displayWith_initializers, null));
188
- this.#separatorKeys_accessor_storage = (__runInitializers(this, _displayWith_extraInitializers), __runInitializers(this, _separatorKeys_initializers, ["Enter"]));
189
- this.#addOnBlur_accessor_storage = (__runInitializers(this, _separatorKeys_extraInitializers), __runInitializers(this, _addOnBlur_initializers, false));
190
- /**
191
- * Listens to the changes on `readonly` and `disabled` attributes of `<input>`.
192
- */
193
- this._inputAttributeObserver = (__runInitializers(this, _addOnBlur_extraInitializers), !isServer ? new MutationObserver(() => this._reactToInputChanges()) : null);
194
- this._language = new SbbLanguageController(this);
195
- this.addEventListener?.(SbbChipElement.events.requestdelete, (ev) => this._deleteChip(ev.target));
196
- this.addEventListener?.("keydown", (ev) => this._onChipKeyDown(ev));
197
- this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-form-field"), {
198
- size: (formField) => this._updateSize(formField.size),
199
- label: (formField) => this._updateLabelState(formField),
200
- hiddenLabel: (formField) => this._updateLabelState(formField)
201
- }));
202
- }
203
- _updateLabelState(formField) {
204
- this.toggleState("without-label", !formField.label || formField.hiddenLabel);
205
- }
206
- connectedCallback() {
207
- super.connectedCallback();
208
- this._setupComponent();
209
- }
210
- willUpdate(changedProperties) {
211
- super.willUpdate(changedProperties);
212
- if (changedProperties.has("disabled") || changedProperties.has("formDisabled") || changedProperties.has("negative")) this._proxyStateToChips();
213
- }
214
- /** @internal */
215
- formResetCallback() {
216
- this.value = null;
217
- }
218
- /** @internal */
219
- formStateRestoreCallback(state, _reason) {
220
- if (!state) {
221
- this.value = null;
222
- return;
223
- }
224
- this._readFormData(state).then((array) => this.value = array);
225
- }
226
- async _readFormData(formData) {
227
- return Promise.all(formData.getAll(this.name).map(async (entry) => entry instanceof Blob ? JSON.parse(await entry.text()) : entry));
228
- }
229
- shouldValidate(name) {
230
- return super.shouldValidate(name) || name === "required" || name === "value";
231
- }
232
- validate() {
233
- super.validate();
234
- if (this.required && this.value.length === 0) this.setValidityFlag("valueMissing", i18nSelectionRequired[this._language.current]);
235
- else this.removeValidityFlag("valueMissing");
236
- }
237
- /** Return the list of chip elements **/
238
- _chipElements() {
239
- return Array.from(this.querySelectorAll?.("sbb-chip") ?? []);
240
- }
241
- /** Return the list of enabled chip elements **/
242
- _enabledChipElements() {
243
- return Array.from(this.querySelectorAll?.("sbb-chip:not([disabled])") ?? []);
244
- }
245
- _setupComponent() {
246
- const input = this.querySelector("input");
247
- if (input && input !== this._inputElement) {
248
- this._inputAbortController?.abort();
249
- this._inputAttributeObserver?.disconnect();
250
- this._inputElement = input;
251
- this._inputAbortController = new AbortController();
252
- this._inputElement.addEventListener("keydown", (ev) => this._onInputKeyDown(ev), { signal: this._inputAbortController.signal });
253
- this._inputElement.addEventListener("blur", () => this._onInputBlur(), {
254
- signal: this._inputAbortController.signal,
255
- capture: true
256
- });
257
- this._inputElement.addEventListener("inputAutocomplete", (event) => {
258
- this._createChipFromInput("autocomplete", event.detail?.option.value);
259
- }, { signal: this._inputAbortController.signal });
260
- this._inputAttributeObserver?.observe(this._inputElement, {
261
- attributes: true,
262
- attributeFilter: ["readonly", "disabled"]
263
- });
264
- }
265
- if (!this._previousSize || !this.closest("sbb-form-field")) this._updateSize(isLean() ? "s" : "m");
266
- this.toggleState("empty", this.value.length === 0);
267
- this._reactToInputChanges();
268
- this._updateInputDescription();
269
- this.updateFormValue();
270
- }
271
- /**
272
- * Listen for keyboard events on the chip elements
273
- **/
274
- _onChipKeyDown(event) {
275
- const eventTarget = event.target;
276
- if (eventTarget.localName !== "sbb-chip") return;
277
- if (isArrowKeyPressed(event)) {
278
- const focusSteps = this._enabledChipElements();
279
- focusSteps[getNextElementIndex(event, focusSteps.indexOf(eventTarget), focusSteps.length)].focus();
280
- return;
281
- }
282
- switch (event.key) {
283
- case "Backspace":
284
- case "Delete":
285
- if (!eventTarget.readOnly && !eventTarget.disabled) {
286
- event.preventDefault();
287
- this._deleteChip(eventTarget);
288
- }
289
- break;
290
- }
291
- }
292
- /**
293
- * Listen for keyboard events on the input
294
- **/
295
- _onInputKeyDown(event) {
296
- switch (event.key) {
297
- case "Backspace":
298
- case "ArrowLeft":
299
- if (!this._inputElement.value) this._focusChip();
300
- break;
301
- case "Enter":
302
- event.preventDefault();
303
- break;
304
- }
305
- if (this.separatorKeys.includes(event.key)) {
306
- event.preventDefault();
307
- this._createChipFromInput("input");
308
- }
309
- }
310
- /**
311
- * Handle blur event on the input
312
- **/
313
- _onInputBlur() {
314
- if (this.addOnBlur) this._createChipFromInput("input");
315
- }
316
- /**
317
- * If the input is not empty, create a chip with its value
318
- */
319
- _createChipFromInput(origin = "input", value) {
320
- const inputValue = value ?? this._inputElement.value.trim();
321
- if (!inputValue) return;
322
- const event = new SbbChipInputTokenEndEvent({
323
- origin,
324
- value: inputValue,
325
- label: (value ? this.displayWith?.(value) : null) ?? void 0
326
- });
327
- if (!this.dispatchEvent(event)) return;
328
- this._createChipElement(event.value, event.label);
329
- this._inputElement.value = "";
330
- this._emitInputEvents();
331
- }
332
- _deleteChip(chip) {
333
- const chips = this._enabledChipElements();
334
- chip.remove();
335
- this._emitInputEvents();
336
- this._focusChip(chips.indexOf(chip));
337
- }
338
- /**
339
- * Focus an enabled chip. If none are present, focus the input
340
- * @param index The index of the enabled chip. If null, focus the last one.
341
- */
342
- _focusChip(index) {
343
- const enabledChips = this._enabledChipElements();
344
- if (index !== void 0 && enabledChips[index]) {
345
- enabledChips[index].focus();
346
- return;
347
- }
348
- if (enabledChips.length > 0) {
349
- enabledChips[enabledChips.length - 1].focus();
350
- return;
351
- }
352
- this._inputElement?.focus();
353
- }
354
- _emitInputEvents() {
355
- /** The input event fires when the value has been changed as a direct result of a user action. */
356
- this.dispatchEvent(new InputEvent("input", {
357
- bubbles: true,
358
- composed: true
359
- }));
360
- /**
361
- * The change event is fired when the user modifies the element's value.
362
- * Unlike the input event, the change event is not necessarily fired
363
- * for each alteration to an element's value.
364
- */
365
- this.dispatchEvent(new Event("change", { bubbles: true }));
366
- }
367
- _createChipElement(value, label) {
368
- if (isServer) return;
369
- const newChip = document.createElement("sbb-chip");
370
- newChip.value = value;
371
- newChip.innerText = label ?? (value ? this.displayWith?.(value) : null) ?? "";
372
- this.insertBefore(newChip, this._inputElement ?? this.querySelector("input"));
373
- }
374
- _reactToInputChanges() {
375
- this.disabled = this._inputElement?.disabled ?? false;
376
- this._proxyStateToChips();
377
- }
378
- _proxyStateToChips() {
379
- this._chipElements().forEach((c) => {
380
- c.disabled = this.disabled || this.formDisabled;
381
- c.readOnly = this._inputElement?.hasAttribute("readonly") ?? false;
382
- c.negative = this.negative;
383
- });
384
- }
385
- _updateSize(size) {
386
- if (this._previousSize) this.internals.states.delete(`size-${this._previousSize}`);
387
- this._previousSize = size;
388
- if (this._previousSize) this.internals.states.add(`size-${this._previousSize}`);
389
- }
390
- _updateInputDescription() {
391
- if (!this._inputElement) return;
392
- this._inputElement.setAttribute("aria-description", `${i18nChipGroupInputDescription[this._language.current]} ${this.value.length}`);
393
- }
394
- render() {
395
- return html`<slot @slotchange=${this._setupComponent}></slot>`;
396
- }
397
- };
398
- })();
399
- //#endregion
400
- export { SbbChipInputTokenEndEvent as n, SbbChipGroupElement as t };
401
-
402
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1ncm91cC5jb21wb25lbnQtRFRodm1tbmguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NoaXAvY2hpcC1ncm91cC9jaGlwLWdyb3VwLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NoaXAvY2hpcC1ncm91cC9jaGlwLWdyb3VwLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogdmFyKC0tc2JiLWNoaXAtZ3JvdXAtZ2FwKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2spO1xuXG4gIC8vIFNldCB0aGUgbGluZS1oZWlnaHQgZm9yIGFkamFjZW50IGVsZW1lbnRzIGluIG9yZGVyIHRvIHByZXZlbnQgZnJvbSBpbmZsdWVuY2Ugb2YgYSBjb25zdW1lci1zZXQgbGluZS1oZWlnaHQuXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzaXplLXMpLCA6c3RhdGUoZW1wdHkpKSkge1xuICAtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jazogMDtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcyk6bm90KDpzdGF0ZShlbXB0eSkpKSB7XG4gIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiAje3NiYi5weC10by1yZW0tYnVpbGQoNil9ICN7c2JiLnB4LXRvLXJlbS1idWlsZCg1KX07XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiAje3NiYi5weC10by1yZW0tYnVpbGQoNSl9ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgzKX07XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHdpdGhvdXQtbGFiZWwpOnN0YXRlKHNpemUtcyk6bm90KDpzdGF0ZShlbXB0eSkpKSB7XG4gIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiAwICN7c2JiLnB4LXRvLXJlbS1idWlsZCg3KX07XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiAwICN7c2JiLnB4LXRvLXJlbS1idWlsZCg1KX07XG4gIH1cbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzaXplLWwpLCA6c3RhdGUoc2l6ZS1tKSkpIHtcbiAgLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2s6IHZhcigtLV9zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2stc3RhcnQtZGVmYXVsdCkgMDtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2s6IHZhcigtLV9zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2stc3RhcnQtZGVmYXVsdC1sYXJnZSkgMDtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUod2l0aG91dC1sYWJlbCk6c3RhdGUoc2l6ZS1tKTpub3QoOnN0YXRlKGVtcHR5KSkpIHtcbiAgLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2s6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgzKX0gI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDExKX07XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiAje3NiYi5weC10by1yZW0tYnVpbGQoMyl9ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxNCl9O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZSh3aXRob3V0LWxhYmVsKTpub3QoOnN0YXRlKGVtcHR5KSwgOnN0YXRlKHNpemUtcyksIDpzdGF0ZShzaXplLW0pLCA6c3RhdGUoc2l6ZS1sKSkpIHtcbiAgLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay1uby1sYWJlbC1ub3QtZW1wdHkpO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZSh3aXRob3V0LWxhYmVsKSk6c3RhdGUoc2l6ZS1tKTpub3QoOnN0YXRlKGVtcHR5KSkpIHtcbiAgLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2s6IHZhcigtLV9zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2stc3RhcnQtZGVmYXVsdClcbiAgICB2YXIoLS1fc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrLXN0YXJ0LWRlZmF1bHQtbGFyZ2UpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jazogdmFyKC0tX3NiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay1zdGFydC1kZWZhdWx0LWxhcmdlKVxuICAgICAgdmFyKC0tX3NiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay1zdGFydC1kZWZhdWx0LWxhcmdlKTtcbiAgfVxufVxuXG46aG9zdCg6bm90KDpzdGF0ZSh3aXRob3V0LWxhYmVsKSwgOnN0YXRlKGVtcHR5KSwgOnN0YXRlKHNpemUtcyksIDpzdGF0ZShzaXplLW0pLCA6c3RhdGUoc2l6ZS1sKSkpIHtcbiAgLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay13aXRoLWxhYmVsLW5vdC1lbXB0eSk7XG59XG5cbjpob3N0KDpzdGF0ZSh3aXRob3V0LWxhYmVsKTpzdGF0ZShzaXplLWwpOm5vdCg6c3RhdGUoZW1wdHkpKSkge1xuICAtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jazogdmFyKC0tX3NiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay1zdGFydC1kZWZhdWx0KVxuICAgICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxNil9O1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jazogdmFyKC0tX3NiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay1zdGFydC1kZWZhdWx0LWxhcmdlKVxuICAgICAgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDIwKX07XG4gIH1cbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUod2l0aG91dC1sYWJlbCkpOnN0YXRlKHNpemUtbCk6bm90KDpzdGF0ZShlbXB0eSkpKSB7XG4gIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiB2YXIoLS1fc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrLXN0YXJ0LWRlZmF1bHQpXG4gICAgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDcuNSl9O1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jazogdmFyKC0tX3NiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay1zdGFydC1kZWZhdWx0LWxhcmdlKVxuICAgICAgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDcuNSl9O1xuICB9XG59XG5cbjo6c2xvdHRlZChpbnB1dCkge1xuICBmbGV4OiAxIDEgdmFyKC0tc2JiLWNoaXAtZ3JvdXAtaW5wdXQtbWluLXdpZHRoKTtcbiAgbWF4LWhlaWdodDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDI0KX07XG59XG5cbjo6c2xvdHRlZChzYmItY2hpcCkge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGZvcmNlVHlwZSxcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBnZXROZXh0RWxlbWVudEluZGV4LFxuICBpMThuQ2hpcEdyb3VwSW5wdXREZXNjcmlwdGlvbixcbiAgaTE4blNlbGVjdGlvblJlcXVpcmVkLFxuICBpc0Fycm93S2V5UHJlc3NlZCxcbiAgaXNMZWFuLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJFbGVtZW50LFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk5lZ2F0aXZlTWl4aW4sXG4gIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIsXG4gIFNiYlJlcXVpcmVkTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiT3B0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9vcHRpb24vb3B0aW9uL29wdGlvbi1iYXNlLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgU2JiQ2hpcEVsZW1lbnQgfSBmcm9tICcuLi9jaGlwL2NoaXAuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vY2hpcC1ncm91cC5zY3NzP2lubGluZSc7XG5cbmxldCBkaXNwbGF5V2l0aFdhcm5pbmdMb2dnZWQgPSBmYWxzZTtcblxuLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBSZXBsYWNlIGJhc2UgY2xhc3Mgd2l0aCBFdmVudFxuZXhwb3J0IGNsYXNzIFNiYkNoaXBJbnB1dFRva2VuRW5kRXZlbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBDdXN0b21FdmVudDxcbiAgU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudERldGFpbHM8VD5cbj4ge1xuICAvKiogVGhlIGVsZW1lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGNoaXAgY3JlYXRpb24gKi9cbiAgcHVibGljIG9yaWdpbjogJ2lucHV0JyB8ICdhdXRvY29tcGxldGUnO1xuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBuZXcgY2hpcC4gRWl0aGVyIHRoZSBpbnB1dCBvciB0aGUgb3B0aW9uIHZhbHVlIGRlcGVuZGluZyBvbiB0aGUgb3JpZ2luLlxuICAgKiBFaXRoZXIgdGhlIHZhbHVlIGZyb20gdGhlIGlucHV0IHdoaWNoIGlzIGFsd2F5cyBgc3RyaW5nYCBvciB0aGUgdmFsdWUgZnJvbSB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gICAqIGZyb20gYW4gYXV0b2NvbXBsZXRlLCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFueSBvdGhlciB0eXBlLlxuICAgKi9cbiAgcHVibGljIHZhbHVlOiBUIHwgc3RyaW5nO1xuICBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBldmVudCBwcm9wZXJ0aWVzIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldCBkZXRhaWwoKTogU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudERldGFpbHM8VD4ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBpY2s8U2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudCwgJ29yaWdpbicgfCAndmFsdWUnIHwgJ2xhYmVsJz4pIHtcbiAgICBzdXBlcignY2hpcGlucHV0dG9rZW5lbmQnLCB7XG4gICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMub3JpZ2luID0gb3B0aW9ucy5vcmlnaW47XG4gICAgdGhpcy52YWx1ZSA9IG9wdGlvbnMudmFsdWU7XG4gICAgdGhpcy5sYWJlbCA9IG9wdGlvbnMubGFiZWw7XG4gIH1cblxuICAvKiogU2V0IGEgbmV3IHZhbHVlIGZvciB0aGUgY2hpcCB0aGF0IHdpbGwgYmUgY3JlYXRlZCAqL1xuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbiAgLyoqIFNldCBhIGxhYmVsIGZvciB0aGUgY2hpcCB0aGF0IHdpbGwgYmUgY3JlYXRlZCAqL1xuICBwdWJsaWMgc2V0TGFiZWwobGFiZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudGAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYmJDaGlwSW5wdXRUb2tlbkVuZEV2ZW50RGV0YWlsczxUID0gc3RyaW5nPiB7XG4gIC8qKiBUaGUgZWxlbWVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY2hpcCBjcmVhdGlvbiAqL1xuICBvcmlnaW46ICdpbnB1dCcgfCAnYXV0b2NvbXBsZXRlJztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgbmV3IGNoaXAuIEVpdGhlciB0aGUgaW5wdXQgb3IgdGhlIG9wdGlvbiB2YWx1ZSBkZXBlbmRpbmcgb24gdGhlIG9yaWdpbi5cbiAgICogRWl0aGVyIHRoZSB2YWx1ZSBmcm9tIHRoZSBpbnB1dCB3aGljaCBpcyBhbHdheXMgYHN0cmluZ2Agb3IgdGhlIHZhbHVlIGZyb20gdGhlIHNlbGVjdGVkIG9wdGlvblxuICAgKiBmcm9tIGFuIGF1dG9jb21wbGV0ZSwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhbnkgb3RoZXIgdHlwZS5cbiAgICovXG4gIHZhbHVlOiBUIHwgc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIFNldCBhIG5ldyB2YWx1ZSBmb3IgdGhlIGNoaXAgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgKi9cbiAgc2V0VmFsdWUodmFsdWU6IFQpOiB2b2lkO1xuICAvKiogU2V0IGEgbGFiZWwgZm9yIHRoZSBjaGlwIHRoYXQgd2lsbCBiZSBjcmVhdGVkICovXG4gIHNldExhYmVsKHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBgc2JiLWNoaXAtZ3JvdXBgIGNvbXBvbmVudCBpcyB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbXVsdGlwbGUgYHNiYi1jaGlwYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWNoaXBgIGVsZW1lbnRzLlxuICogQGV2ZW50IHtTYmJDaGlwSW5wdXRUb2tlbkVuZEV2ZW50PFQ+fSBjaGlwaW5wdXR0b2tlbmVuZCAtIE5vdGlmaWVzIHRoYXQgYSBjaGlwIGlzIGFib3V0IHRvIGJlIGNyZWF0ZWQuIENhbiBiZSBwcmV2ZW50ZWQuXG4gKiBAb3ZlcnJpZGVUeXBlIHZhbHVlIC0gKFQgPSBzdHJpbmdbXSkgfCBudWxsXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJDaGlwR3JvdXBFbGVtZW50PFQgPSBzdHJpbmc+IGV4dGVuZHMgU2JiUmVxdWlyZWRNaXhpbihcbiAgU2JiRGlzYWJsZWRNaXhpbihTYmJOZWdhdGl2ZU1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCkpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWNoaXAtZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbGlzdGJveCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgaW5wdXQ6ICdpbnB1dCcsXG4gICAgY2hhbmdlOiAnY2hhbmdlJyxcbiAgICBjaGlwaW5wdXR0b2tlbmVuZDogJ2NoaXBpbnB1dHRva2VuZW5kJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVmFsdWUgb2YgdGhlIGZvcm0gZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogKFQgfCBudWxsKVtdIHwgbnVsbCkge1xuICAgIHZhbHVlID0gdmFsdWUgPz8gW107XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnZhbHVlO1xuXG4gICAgLy8gU3VidHJhY3QgZnJvbSAnb2xkVmFsdWUnIHRoZSBuZXcgJ3ZhbHVlJ1xuICAgIC8vIFRoZSByZXN1bHQgYXJlIHRoZSBjaGlwcyB0byByZW1vdmUgKGhhbmRsZSBkdXBsaWNhdGVzKVxuICAgIGNvbnN0IHRvUmVtb3ZlID0gWy4uLm9sZFZhbHVlXTtcbiAgICBmb3IgKGNvbnN0IGMgb2YgdmFsdWUpIHtcbiAgICAgIGlmICh0b1JlbW92ZS5pbmNsdWRlcyhjKSkge1xuICAgICAgICB0b1JlbW92ZS5zcGxpY2UodG9SZW1vdmUuaW5kZXhPZihjKSwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRvUmVtb3ZlLmZvckVhY2goKHZhbHVlKSA9PlxuICAgICAgdGhpcy5fY2hpcEVsZW1lbnRzKClcbiAgICAgICAgLmZpbmQoKGMpID0+IGMudmFsdWUgPT09IHZhbHVlKVxuICAgICAgICA/LnJlbW92ZSgpLFxuICAgICk7XG5cbiAgICAvLyBTdWJ0cmFjdCBmcm9tIHRoZSBuZXcgJ3ZhbHVlJyB3aGF0IHdhcyBhbHJlYWR5IHByZXNlbnRcbiAgICAvLyBUaGUgcmVzdWx0IGFyZSB0aGUgbmV3IGNoaXBzIHRvIGFkZCAoaGFuZGxlIGR1cGxpY2F0ZXMpXG4gICAgY29uc3QgdG9BZGQgPSBbLi4udmFsdWVdO1xuICAgIGZvciAoY29uc3QgYyBvZiBvbGRWYWx1ZSkge1xuICAgICAgaWYgKHRvQWRkLmluY2x1ZGVzKGMpKSB7XG4gICAgICAgIHRvQWRkLnNwbGljZSh0b0FkZC5pbmRleE9mKGMpLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdG9BZGQuZm9yRWFjaCgoYykgPT4gdGhpcy5fY3JlYXRlQ2hpcEVsZW1lbnQoYykpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogKFQgfCBudWxsKVtdIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpcEVsZW1lbnRzKCkubWFwKChjKSA9PiBjLnZhbHVlKTtcbiAgfVxuXG4gIC8qKiBGdW5jdGlvbiB0aGF0IG1hcHMgYSBjaGlwJ3MgdmFsdWUgdG8gaXRzIGRpc3BsYXkgdmFsdWUuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc3BsYXlXaXRoOiAoKHZhbHVlOiBUKSA9PiBzdHJpbmcpIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBhcnJheSBvZiBrZXlzIHRoYXQgd2lsbCB0cmlnZ2VyIGEgYGNoaXBpbnB1dHRva2VuZW5kYCBldmVudC4gRGVmYXVsdCBgWydFbnRlciddYCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzZXBhcmF0b3Ita2V5cycsIHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzZXBhcmF0b3JLZXlzOiBzdHJpbmdbXSA9IFsnRW50ZXInXTtcblxuICAvKiogV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IGFkZCBhIGNoaXAgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMgaWYgdGhlcmUncyBhIHZhbHVlLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWRkLW9uLWJsdXInLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhZGRPbkJsdXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogTGlzdGVucyB0byB0aGUgY2hhbmdlcyBvbiBgcmVhZG9ubHlgIGFuZCBgZGlzYWJsZWRgIGF0dHJpYnV0ZXMgb2YgYDxpbnB1dD5gLlxuICAgKi9cbiAgcHJpdmF0ZSBfaW5wdXRBdHRyaWJ1dGVPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fcmVhY3RUb0lucHV0Q2hhbmdlcygpKVxuICAgIDogbnVsbDtcblxuICBwcml2YXRlIF9pbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2lucHV0QWJvcnRDb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNTaXplPzogU2JiRm9ybUZpZWxkRWxlbWVudFsnc2l6ZSddO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oU2JiQ2hpcEVsZW1lbnQuZXZlbnRzLnJlcXVlc3RkZWxldGUsIChldikgPT5cbiAgICAgIHRoaXMuX2RlbGV0ZUNoaXAoZXYudGFyZ2V0IGFzIFNiYkNoaXBFbGVtZW50PFQ+KSxcbiAgICApO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZXYpID0+IHRoaXMuX29uQ2hpcEtleURvd24oZXYpKTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWZvcm0tZmllbGQnKSwge1xuICAgICAgICBzaXplOiAoZm9ybUZpZWxkKSA9PiB0aGlzLl91cGRhdGVTaXplKGZvcm1GaWVsZC5zaXplKSxcbiAgICAgICAgbGFiZWw6IChmb3JtRmllbGQpID0+IHRoaXMuX3VwZGF0ZUxhYmVsU3RhdGUoZm9ybUZpZWxkKSxcbiAgICAgICAgaGlkZGVuTGFiZWw6IChmb3JtRmllbGQpID0+IHRoaXMuX3VwZGF0ZUxhYmVsU3RhdGUoZm9ybUZpZWxkKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVMYWJlbFN0YXRlKGZvcm1GaWVsZDogU2JiRm9ybUZpZWxkRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ3dpdGhvdXQtbGFiZWwnLCAhZm9ybUZpZWxkLmxhYmVsIHx8IGZvcm1GaWVsZC5oaWRkZW5MYWJlbCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9zZXR1cENvbXBvbmVudCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoXG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykgfHxcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9ybURpc2FibGVkJykgfHxcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKVxuICAgICkge1xuICAgICAgdGhpcy5fcHJveHlTdGF0ZVRvQ2hpcHMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICk6IHZvaWQge1xuICAgIGlmICghc3RhdGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3JlYWRGb3JtRGF0YShzdGF0ZSBhcyBGb3JtRGF0YSkudGhlbigoYXJyYXkpID0+ICh0aGlzLnZhbHVlID0gYXJyYXkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3JlYWRGb3JtRGF0YShmb3JtRGF0YTogRm9ybURhdGEpOiBQcm9taXNlPFRbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIGZvcm1EYXRhXG4gICAgICAgIC5nZXRBbGwodGhpcy5uYW1lKVxuICAgICAgICAubWFwKGFzeW5jIChlbnRyeSkgPT5cbiAgICAgICAgICBlbnRyeSBpbnN0YW5jZW9mIEJsb2IgPyBKU09OLnBhcnNlKGF3YWl0IGVudHJ5LnRleHQoKSkgOiAoZW50cnkgYXMgVCksXG4gICAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAncmVxdWlyZWQnIHx8IG5hbWUgPT09ICd2YWx1ZSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5TZWxlY3Rpb25SZXF1aXJlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVtb3ZlVmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJuIHRoZSBsaXN0IG9mIGNoaXAgZWxlbWVudHMgKiovXG4gIHByaXZhdGUgX2NoaXBFbGVtZW50cygpOiBTYmJDaGlwRWxlbWVudDxUPltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJDaGlwRWxlbWVudDxUPj4oJ3NiYi1jaGlwJykgPz8gW10pO1xuICB9XG5cbiAgLyoqIFJldHVybiB0aGUgbGlzdCBvZiBlbmFibGVkIGNoaXAgZWxlbWVudHMgKiovXG4gIHByaXZhdGUgX2VuYWJsZWRDaGlwRWxlbWVudHMoKTogU2JiQ2hpcEVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1jaGlwOm5vdChbZGlzYWJsZWRdKScpID8/IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldHVwQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuXG4gICAgLy8gQ29ubmVjdCB0byB0aGUgaW5wdXRcbiAgICBpZiAoaW5wdXQgJiYgaW5wdXQgIT09IHRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9pbnB1dEF0dHJpYnV0ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQgPSBpbnB1dDtcblxuICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldikgPT4gdGhpcy5fb25JbnB1dEtleURvd24oZXYpLCB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuX29uSW5wdXRCbHVyKCksIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9pbnB1dEFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnaW5wdXRBdXRvY29tcGxldGUnLFxuICAgICAgICAoZXZlbnQ6IEN1c3RvbUV2ZW50PHsgb3B0aW9uOiBTYmJPcHRpb25CYXNlRWxlbWVudDxUPiB9PikgPT4ge1xuICAgICAgICAgIHRoaXMuX2NyZWF0ZUNoaXBGcm9tSW5wdXQoJ2F1dG9jb21wbGV0ZScsIGV2ZW50LmRldGFpbD8ub3B0aW9uLnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5faW5wdXRBdHRyaWJ1dGVPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLl9pbnB1dEVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ3JlYWRvbmx5JywgJ2Rpc2FibGVkJ10sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBJbmhlcml0IHNpemUgZnJvbSB0aGUgZm9ybS1maWVsZCBhbmQgb2JzZXJ2ZSBmb3IgY2hhbmdlc1xuICAgIGlmICghdGhpcy5fcHJldmlvdXNTaXplIHx8ICF0aGlzLmNsb3Nlc3QoJ3NiYi1mb3JtLWZpZWxkJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVNpemUoaXNMZWFuKCkgPyAncycgOiAnbScpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2VtcHR5JywgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApO1xuICAgIHRoaXMuX3JlYWN0VG9JbnB1dENoYW5nZXMoKTtcbiAgICB0aGlzLl91cGRhdGVJbnB1dERlc2NyaXB0aW9uKCk7XG4gICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZm9yIGtleWJvYXJkIGV2ZW50cyBvbiB0aGUgY2hpcCBlbGVtZW50c1xuICAgKiovXG4gIHByaXZhdGUgX29uQ2hpcEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBTYmJDaGlwRWxlbWVudDxUPjtcbiAgICBpZiAoZXZlbnRUYXJnZXQubG9jYWxOYW1lICE9PSAnc2JiLWNoaXAnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQXJyb3cga2V5cyBhbGxvdyBuYXZpZ2F0aW9uIGJldHdlZW4gY2hpcHMgZm9jdXMgc3RlcHNcbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZlbnQpKSB7XG4gICAgICBjb25zdCBmb2N1c1N0ZXBzID0gdGhpcy5fZW5hYmxlZENoaXBFbGVtZW50cygpO1xuICAgICAgY29uc3QgbmV4dCA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIGZvY3VzU3RlcHMuaW5kZXhPZihldmVudFRhcmdldCksIGZvY3VzU3RlcHMubGVuZ3RoKTtcbiAgICAgIGZvY3VzU3RlcHNbbmV4dF0uZm9jdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XG4gICAgICAgIGlmICghZXZlbnRUYXJnZXQucmVhZE9ubHkgJiYgIWV2ZW50VGFyZ2V0LmRpc2FibGVkKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLl9kZWxldGVDaGlwKGV2ZW50VGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBrZXlib2FyZCBldmVudHMgb24gdGhlIGlucHV0XG4gICAqKi9cbiAgcHJpdmF0ZSBfb25JbnB1dEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZSkge1xuICAgICAgICAgIHRoaXMuX2ZvY3VzQ2hpcCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBQcmV2ZW50cyB0aGUgZm9ybSBzdWJtaXRcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIHVzZXIgdHlwZWQgb25lIG9mIHRoZSBzZXBhcmF0b3Iga2V5cywgdHJpZ2dlciBhICdjaGlwaW5wdXR0b2tlbmVuZCcgZXZlbnRcbiAgICBpZiAodGhpcy5zZXBhcmF0b3JLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgdHlwaW5nIHRoZSBzZXBhcmF0b3Iga2V5IGludG8gdGhlIGlucHV0XG4gICAgICB0aGlzLl9jcmVhdGVDaGlwRnJvbUlucHV0KCdpbnB1dCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYmx1ciBldmVudCBvbiB0aGUgaW5wdXRcbiAgICoqL1xuICBwcml2YXRlIF9vbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZGRPbkJsdXIpIHtcbiAgICAgIHRoaXMuX2NyZWF0ZUNoaXBGcm9tSW5wdXQoJ2lucHV0Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBpbnB1dCBpcyBub3QgZW1wdHksIGNyZWF0ZSBhIGNoaXAgd2l0aCBpdHMgdmFsdWVcbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUNoaXBGcm9tSW5wdXQob3JpZ2luOiAnaW5wdXQnIHwgJ2F1dG9jb21wbGV0ZScgPSAnaW5wdXQnLCB2YWx1ZT86IFQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gdmFsdWUgPz8gdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZS50cmltKCk7XG4gICAgaWYgKCFpbnB1dFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudDxUPih7XG4gICAgICBvcmlnaW4sXG4gICAgICB2YWx1ZTogaW5wdXRWYWx1ZSBhcyBzdHJpbmcsXG4gICAgICBsYWJlbDogKHZhbHVlID8gdGhpcy5kaXNwbGF5V2l0aD8uKHZhbHVlKSA6IG51bGwpID8/IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuZGlzcGF0Y2hFdmVudChldmVudCkpIHtcbiAgICAgIHJldHVybjsgLy8gZXZlbnQgcHJldmVudGVkOyBkbyBub3RoaW5nICh0aGUgY29uc3VtZXIgaGFzIHRvIGNyZWF0ZSB0aGUgY2hpcClcbiAgICB9XG5cbiAgICB0aGlzLl9jcmVhdGVDaGlwRWxlbWVudChldmVudC52YWx1ZSBhcyBULCBldmVudC5sYWJlbCk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZSA9ICcnOyAvLyBFbXB0eSB0aGUgaW5wdXRcbiAgICB0aGlzLl9lbWl0SW5wdXRFdmVudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlbGV0ZUNoaXAoY2hpcDogU2JiQ2hpcEVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICBjb25zdCBjaGlwcyA9IHRoaXMuX2VuYWJsZWRDaGlwRWxlbWVudHMoKTtcbiAgICBjaGlwLnJlbW92ZSgpO1xuICAgIHRoaXMuX2VtaXRJbnB1dEV2ZW50cygpO1xuICAgIHRoaXMuX2ZvY3VzQ2hpcChjaGlwcy5pbmRleE9mKGNoaXApKTsgLy8gRm9jdXMgdGhlIG5leHQgY2hpcFxuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzIGFuIGVuYWJsZWQgY2hpcC4gSWYgbm9uZSBhcmUgcHJlc2VudCwgZm9jdXMgdGhlIGlucHV0XG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGVuYWJsZWQgY2hpcC4gSWYgbnVsbCwgZm9jdXMgdGhlIGxhc3Qgb25lLlxuICAgKi9cbiAgcHJpdmF0ZSBfZm9jdXNDaGlwKGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZENoaXBzID0gdGhpcy5fZW5hYmxlZENoaXBFbGVtZW50cygpO1xuXG4gICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQgJiYgZW5hYmxlZENoaXBzW2luZGV4XSkge1xuICAgICAgZW5hYmxlZENoaXBzW2luZGV4XS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChlbmFibGVkQ2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgZW5hYmxlZENoaXBzW2VuYWJsZWRDaGlwcy5sZW5ndGggLSAxXS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0RWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRJbnB1dEV2ZW50cygpOiB2b2lkIHtcbiAgICAvKiogVGhlIGlucHV0IGV2ZW50IGZpcmVzIHdoZW4gdGhlIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuXG4gICAgICogVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWRcbiAgICAgKiBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlQ2hpcEVsZW1lbnQodmFsdWU6IFQgfCBudWxsLCBsYWJlbD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdDaGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLWNoaXAnKSBhcyBTYmJDaGlwRWxlbWVudDxUPjtcbiAgICBuZXdDaGlwLnZhbHVlID0gdmFsdWU7XG4gICAgbmV3Q2hpcC5pbm5lclRleHQgPSBsYWJlbCA/PyAodmFsdWUgPyB0aGlzLmRpc3BsYXlXaXRoPy4odmFsdWUpIDogbnVsbCkgPz8gJyc7XG4gICAgaWYgKFxuICAgICAgaW1wb3J0Lm1ldGEuZW52LkRFViAmJlxuICAgICAgIWRpc3BsYXlXaXRoV2FybmluZ0xvZ2dlZCAmJlxuICAgICAgIWxhYmVsICYmXG4gICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAhdGhpcy5kaXNwbGF5V2l0aFxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgZGlzcGxheVdpdGggaGFzIG5vdCBiZWVuIHNldCB5ZXQgZm9yIHNiYi1jaGlwLWdyb3VwIGFuZCB2YWx1ZSBpcyBhbiBvYmplY3QuXG4gICAgICAgICBJZiB5b3UgYXJlIHVzaW5nIG9iamVjdCB2YWx1ZXMsIHlvdSBuZWVkIHRvIHByb3ZpZGUgZGlzcGxheVdpZHRoIGJlZm9yZVxuICAgICAgICAgc2V0dGluZyBvciBzZWxlY3RpbmcgYW55IHZhbHVlLmAsXG4gICAgICApO1xuICAgICAgZGlzcGxheVdpdGhXYXJuaW5nTG9nZ2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5pbnNlcnRCZWZvcmUobmV3Q2hpcCwgdGhpcy5faW5wdXRFbGVtZW50ID8/IHRoaXMucXVlcnlTZWxlY3RvcignaW5wdXQnKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFjdFRvSW5wdXRDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLl9pbnB1dEVsZW1lbnQ/LmRpc2FibGVkID8/IGZhbHNlO1xuICAgIHRoaXMuX3Byb3h5U3RhdGVUb0NoaXBzKCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm94eVN0YXRlVG9DaGlwcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGlwRWxlbWVudHMoKS5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBjLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICAgIGMucmVhZE9ubHkgPSB0aGlzLl9pbnB1dEVsZW1lbnQ/Lmhhc0F0dHJpYnV0ZSgncmVhZG9ubHknKSA/PyBmYWxzZTtcbiAgICAgIGMubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2l6ZShzaXplOiBTYmJGb3JtRmllbGRFbGVtZW50WydzaXplJ10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBzaXplLSR7dGhpcy5fcHJldmlvdXNTaXplfWApO1xuICAgIH1cbiAgICB0aGlzLl9wcmV2aW91c1NpemUgPSBzaXplO1xuICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXREZXNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ2FyaWEtZGVzY3JpcHRpb24nLFxuICAgICAgYCR7aTE4bkNoaXBHcm91cElucHV0RGVzY3JpcHRpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7dGhpcy52YWx1ZS5sZW5ndGh9YCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zZXR1cENvbXBvbmVudH0+PC9zbG90PmA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jaGlwLWdyb3VwJzogU2JiQ2hpcEdyb3VwRWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBIVE1MRWxlbWVudEV2ZW50TWFwIHtcbiAgICBjaGlwaW5wdXR0b2tlbmVuZDogU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudDxhbnk+O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQ29DQSxJQUFhLDRCQUFiLGNBQTJELFlBRTFEOzs7O0NBY0MsSUFBb0IsU0FBTTtFQUN4QixPQUFPOztDQUdULFlBQW1CLFNBQXNFO0VBQ3ZGLE1BQU0scUJBQXFCO0dBQ3pCLFlBQVk7R0FDWixTQUFTO0dBQ1QsVUFBVTtHQUNYLENBQUM7RUFDRixLQUFLLFNBQVMsUUFBUTtFQUN0QixLQUFLLFFBQVEsUUFBUTtFQUNyQixLQUFLLFFBQVEsUUFBUTs7O0NBSWhCLFNBQVMsT0FBUTtFQUN0QixLQUFLLFFBQVE7OztD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
@@ -1,49 +0,0 @@
1
- import { html, unsafeCSS } from "lit";
2
- import { SbbElement, i18nPage, i18nPaginatorOf } from "./core.js";
3
- import { SbbDividerElement } from "./divider.pure.js";
4
- import { SbbPaginatorCommonElementMixin } from "./paginator/common/paginator-common.js";
5
- //#region src/elements/paginator/compact-paginator/compact-paginator.scss?inline
6
- var compact_paginator_default = ":host {\n display: flex;\n gap: var(--sbb-compact-paginator-gap);\n justify-content: var(--sbb-paginator-compact-justify-content, start);\n min-height: var(--sbb-compact-paginator-height);\n}\n\n:host([size=s]) {\n --sbb-compact-paginator-height: var(--sbb-size-element-xs);\n}\n\n:host([size=m]) {\n --sbb-compact-paginator-height: var(--sbb-size-element-m);\n}\n\n:host([negative]) {\n --sbb-compact-paginator-color: var(--sbb-color-5);\n}\n\n:host([pager-position=end]) {\n --sbb-paginator-compact-justify-content: end;\n}\n\n.sbb-paginator__pages {\n font-size: var(--sbb-compact-paginator-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n line-height: var(--sbb-typo-line-height-text);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--sbb-compact-paginator-pages-gap);\n color: var(--sbb-compact-paginator-color);\n}\n\n.sbb-compact-paginator__divider {\n height: 1rem;\n --sbb-divider-color: currentcolor;\n}";
7
- //#endregion
8
- //#region src/elements/paginator/compact-paginator/compact-paginator.component.ts
9
- /**
10
- * It displays a paginator component in compact mode.
11
- */
12
- var SbbCompactPaginatorElement = class extends SbbPaginatorCommonElementMixin(SbbElement) {
13
- static {
14
- this.elementName = "sbb-compact-paginator";
15
- }
16
- static {
17
- this.elementDependencies = [SbbDividerElement];
18
- }
19
- static {
20
- this.styles = [unsafeCSS(compact_paginator_default)];
21
- }
22
- static {
23
- this.events = { page: "page" };
24
- }
25
- _renderPageNumbers() {
26
- return html`
27
- <span class="sbb-paginator__pages" aria-hidden="true"
28
- >${this.pageIndex + 1}<sbb-divider
29
- orientation="vertical"
30
- class="sbb-compact-paginator__divider"
31
- ?negative=${this.negative}
32
- ></sbb-divider
33
- >${this.numberOfPages()}</span
34
- >
35
- <span class="sbb-screen-reader-only">
36
- ${`${this.accessibilityPageLabel ? this.accessibilityPageLabel : i18nPage[this.language.current]} ${this.pageIndex + 1} ${i18nPaginatorOf[this.language.current]} ${this.numberOfPages()}`}
37
- </span>
38
- `;
39
- }
40
- renderPaginator() {
41
- return html`
42
- ${this.pagerPosition === "start" ? html`${this.renderPrevNextButtons()} ${this._renderPageNumbers()}` : html`${this._renderPageNumbers()} ${this.renderPrevNextButtons()}`}
43
- `;
44
- }
45
- };
46
- //#endregion
47
- export { SbbCompactPaginatorElement as t };
48
-
49
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFjdC1wYWdpbmF0b3IuY29tcG9uZW50LUNTN1F6NG5NLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9wYWdpbmF0b3IvY29tcGFjdC1wYWdpbmF0b3IvY29tcGFjdC1wYWdpbmF0b3Iuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL2NvbXBhY3QtcGFnaW5hdG9yL2NvbXBhY3QtcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc2JiLWNvbXBhY3QtcGFnaW5hdG9yLWdhcCk7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLXBhZ2luYXRvci1jb21wYWN0LWp1c3RpZnktY29udGVudCwgc3RhcnQpO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItY29tcGFjdC1wYWdpbmF0b3ItaGVpZ2h0KTtcbn1cblxuOmhvc3QoW3NpemU9J3MnXSkge1xuICAtLXNiYi1jb21wYWN0LXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLWNvbXBhY3QtcGFnaW5hdG9yLWhlaWdodDogdmFyKC0tc2JiLXNpemUtZWxlbWVudC1tKTtcbn1cblxuOmhvc3QoW25lZ2F0aXZlXSkge1xuICAtLXNiYi1jb21wYWN0LXBhZ2luYXRvci1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xufVxuXG46aG9zdChbcGFnZXItcG9zaXRpb249J2VuZCddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1jb21wYWN0LWp1c3RpZnktY29udGVudDogZW5kO1xufVxuXG4uc2JiLXBhZ2luYXRvcl9fcGFnZXMge1xuICBmb250LXNpemU6IHZhcigtLXNiYi1jb21wYWN0LXBhZ2luYXRvci1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLWNvbXBhY3QtcGFnaW5hdG9yLXBhZ2VzLWdhcCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItY29tcGFjdC1wYWdpbmF0b3ItY29sb3IpO1xufVxuXG4uc2JiLWNvbXBhY3QtcGFnaW5hdG9yX19kaXZpZGVyIHtcbiAgaGVpZ2h0OiAje3NiYi5weC10by1yZW0tYnVpbGQoMTYpfTtcblxuICAtLXNiYi1kaXZpZGVyLWNvbG9yOiBjdXJyZW50Y29sb3I7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyBpMThuUGFnZSwgaTE4blBhZ2luYXRvck9mLCBTYmJFbGVtZW50LCB0eXBlIFNiYkVsZW1lbnRUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uLy4uL2RpdmlkZXIucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4gfSBmcm9tICcuLi9jb21tb24vcGFnaW5hdG9yLWNvbW1vbi50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2NvbXBhY3QtcGFnaW5hdG9yLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHBhZ2luYXRvciBjb21wb25lbnQgaW4gY29tcGFjdCBtb2RlLlxuICovXG5leHBvcnQgY2xhc3MgU2JiQ29tcGFjdFBhZ2luYXRvckVsZW1lbnQgZXh0ZW5kcyBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWNvbXBhY3QtcGFnaW5hdG9yJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1NiYkRpdmlkZXJFbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBwYWdlOiAncGFnZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBfcmVuZGVyUGFnZU51bWJlcnMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID4ke3RoaXMucGFnZUluZGV4ICsgMX08c2JiLWRpdmlkZXJcbiAgICAgICAgICBvcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcbiAgICAgICAgICBjbGFzcz1cInNiYi1jb21wYWN0LXBhZ2luYXRvcl9fZGl2aWRlclwiXG4gICAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgPjwvc2JiLWRpdmlkZXJcbiAgICAgICAgPiR7dGhpcy5udW1iZXJPZlBhZ2VzKCl9PC9zcGFuXG4gICAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgJHtgJHt0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWwgPyB0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWwgOiBpMThuUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMucGFnZUluZGV4ICsgMX0gJHtpMThuUGFnaW5hdG9yT2ZbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0gJHt0aGlzLm51bWJlck9mUGFnZXMoKX1gfVxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyUGFnaW5hdG9yKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5wYWdlclBvc2l0aW9uID09PSAnc3RhcnQnXG4gICAgICAgID8gaHRtbGAke3RoaXMucmVuZGVyUHJldk5leHRCdXR0b25zKCl9ICR7dGhpcy5fcmVuZGVyUGFnZU51bWJlcnMoKX1gXG4gICAgICAgIDogaHRtbGAke3RoaXMuX3JlbmRlclBhZ2VOdW1iZXJzKCl9ICR7dGhpcy5yZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKX1gfVxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jb21wYWN0LXBhZ2luYXRvcic6IFNiYkNvbXBhY3RQYWdpbmF0b3JFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FDV0EsSUFBYSw2QkFBYixjQUFnRCwrQkFBK0IsV0FBVyxDQUFBOztFQUN4RCxLQUFBLGNBQXNCOzs7RUFDL0IsS0FBQSxzQkFBd0MsQ0FBQyxrQkFBa0I7OztFQUMzRCxLQUFBLFNBQXlCLENBQUMsVUFBVSwwQkFBTSxDQUFDOzs7RUFDM0MsS0FBQSxTQUFpQyxFQUN0RCxNQUFNLFFBQ0U7O0NBRUYscUJBQWtCO0VBQ3hCLE9BQU8sSUFBSTs7V0FFSixLQUFLLFlBQVksRUFBQzs7O3NCQUdQLEtBQUssU0FBQTs7V0FFaEIsS0FBSyxlQUFlLENBQUE7OztVQUdyQixHQUFHLEtBQUsseUJBQXlCLEtBQUsseUJBQXlCLFNBQVMsS0FBSyxTQUFTLFNBQVEsR0FBSSxLQUFLLFlBQVksRUFBQyxHQUFJLGdCQUFnQixLQUFLLFNBQVMsU0FBUSxHQUFJLEtBQUssZUFBZSxHQUFBOzs7O0NBSzNLLGtCQUFlO0VBQ2hDLE9BQU8sSUFBSTtRQUNQLEtBQUssa0JBQWtCLFVBQ3JCLElBQUksR0FBRyxLQUFLLHVCQUF1QixDQUFBLEdBQUksS0FBSyxvQkFBb0IsS0FDaEUsSUFBSSxHQUFHLEtBQUssb0JBQW9CLENBQUEsR0FBSSxLQUFLLHVCQUF1QixHQUFBIn0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Checks if the document has the `sbb-lean` class.
3
- */
4
- export declare function isLean(): boolean;
5
- //# sourceMappingURL=lean-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lean-context.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/dom/lean-context.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAEhC"}
@@ -1,12 +0,0 @@
1
- import { isServer } from "lit";
2
- //#region src/elements/core/dom/lean-context.ts
3
- /**
4
- * Checks if the document has the `sbb-lean` class.
5
- */
6
- function isLean() {
7
- return !isServer && document.documentElement.classList.contains("sbb-lean");
8
- }
9
- //#endregion
10
- export { isLean };
11
-
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhbi1jb250ZXh0LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RvbS9sZWFuLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZG9jdW1lbnQgaGFzIHRoZSBgc2JiLWxlYW5gIGNsYXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNMZWFuKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gIWlzU2VydmVyICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3NiYi1sZWFuJyk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsU0FBZ0IsU0FBTTtDQUNwQixPQUFPLENBQUMsWUFBWSxTQUFTLGdCQUFnQixVQUFVLFNBQVMsV0FBVyJ9