@sbb-esta/lyne-elements 5.0.0-next → 5.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (984) hide show
  1. package/action-group/action-group.component.js +1 -1
  2. package/{action-group.component-L7G0Vv-N.js → action-group.component-B6X5FjkQ.js} +25 -25
  3. package/action-group.js +1 -1
  4. package/action-group.pure.js +1 -1
  5. package/alert/alert/alert.component.js +1 -1
  6. package/alert/alert-group/alert-group.component.js +1 -1
  7. package/{alert-group.component-CAjj3FtE.js → alert-group.component-BCYOVicl.js} +5 -7
  8. package/alert.component-BQsF0R1M.js +161 -0
  9. package/alert.js +2 -2
  10. package/alert.pure.js +2 -2
  11. package/autocomplete/autocomplete-base-element.js +1 -1
  12. package/autocomplete/autocomplete.component.js +3 -2
  13. package/{autocomplete-base-element-BysEZecQ.js → autocomplete-base-element-CSCv_WVh.js} +14 -9
  14. package/autocomplete.js +1 -1
  15. package/autocomplete.pure.js +1 -1
  16. package/{block-link-common-CDrCAdGP.js → block-link-common-BiM6tnUZ.js} +1 -1
  17. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  18. package/{breadcrumb-group.component-Bfm4RZu7.js → breadcrumb-group.component-De3Lu3lx.js} +1 -1
  19. package/breadcrumb.js +1 -1
  20. package/breadcrumb.pure.js +1 -1
  21. package/button/common/button-common.js +1 -1
  22. package/button-common-U0ZsZMjC.js +85 -0
  23. package/button.js +1 -1
  24. package/button.pure.js +1 -1
  25. package/calendar/calendar/calendar.component.js +1 -1
  26. package/{calendar.component-D6mdi1Q3.js → calendar.component-nWdtZYqg.js} +3 -3
  27. package/calendar.js +1 -1
  28. package/calendar.pure.js +1 -1
  29. package/card/card-badge/card-badge.component.js +1 -1
  30. package/{card-badge.component-CsEpGTHm.js → card-badge.component-CEqox6TU.js} +1 -1
  31. package/card.js +1 -1
  32. package/card.pure.js +1 -1
  33. package/checkbox/checkbox.component.js +1 -1
  34. package/checkbox/common/checkbox-common.js +1 -1
  35. package/{checkbox-common-Bo4u1RXX.js → checkbox-common-DSmxKbmR.js} +1 -1
  36. package/{checkbox.component-vjqZh2aC.js → checkbox.component-CR2aIgjA.js} +1 -1
  37. package/checkbox.js +2 -2
  38. package/checkbox.pure.js +2 -2
  39. package/chip/chip-group/chip-group.component.js +1 -1
  40. package/{chip-group.component-DPzfaV_H.js → chip-group.component-DbNctvjy.js} +1 -1
  41. package/chip-label/chip-label.component.js +1 -1
  42. package/chip-label.component-zRiHSxbn.js +77 -0
  43. package/chip-label.js +1 -1
  44. package/chip-label.pure.js +1 -1
  45. package/chip.js +1 -1
  46. package/chip.pure.js +1 -1
  47. package/{compact-paginator.component-DEEhXiMm.js → compact-paginator.component-Dyu9bezr.js} +1 -1
  48. package/core/controllers/overlay-position-controller.js +4 -1
  49. package/core/mixins/named-slot-list-mixin.js +4 -1
  50. package/core/overlay/overlay-trigger-attributes.js +3 -3
  51. package/core/styles/_index.scss +0 -1
  52. package/core/styles/core.scss +81 -78
  53. package/core/styles/host-scrollbar.scss +6 -0
  54. package/core/styles/mixins/helpers.scss +3 -3
  55. package/core/styles/mixins/overlay.scss +2 -2
  56. package/core/styles/mixins/panel.scss +5 -1
  57. package/core/styles/mixins/scrollbar.scss +5 -8
  58. package/core/styles/mixins/typo.scss +2 -2
  59. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables-as-css.scss +8 -0
  60. package/core/styles/scrollbar.scss +10 -8
  61. package/core/styles/styles.js +2 -2
  62. package/core.css +266 -85
  63. package/core.js +3 -3
  64. package/custom-elements.json +1359 -740
  65. package/datepicker/datepicker/datepicker.component.js +1 -1
  66. package/{datepicker.component-BBmEvmW3.js → datepicker.component-CNQGkdr-.js} +11 -11
  67. package/datepicker.js +1 -1
  68. package/datepicker.pure.js +1 -1
  69. package/development/accordion/accordion.component.d.ts.map +1 -1
  70. package/development/accordion.component-DGUoG6p2.js +1 -1
  71. package/development/action-group/action-group.component.d.ts +2 -4
  72. package/development/action-group/action-group.component.d.ts.map +1 -1
  73. package/development/action-group/action-group.component.js +1 -1
  74. package/development/{action-group.component-CJT4RArG.js → action-group.component-9Bkne2tt.js} +6 -6
  75. package/development/action-group.js +1 -1
  76. package/development/action-group.pure.js +1 -1
  77. package/development/alert/alert/alert.component.d.ts +2 -1
  78. package/development/alert/alert/alert.component.d.ts.map +1 -1
  79. package/development/alert/alert/alert.component.js +1 -1
  80. package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
  81. package/development/alert/alert-group/alert-group.component.js +1 -1
  82. package/development/alert-group.component-D4KxKTd2.js +186 -0
  83. package/development/alert.component-Pv-Ol6XU.js +213 -0
  84. package/development/alert.js +2 -2
  85. package/development/alert.pure.js +2 -2
  86. package/development/autocomplete/autocomplete-base-element.d.ts +8 -1
  87. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  88. package/development/autocomplete/autocomplete-base-element.js +1 -1
  89. package/development/autocomplete/autocomplete.component.js +4 -3
  90. package/development/autocomplete-base-element-Bwkns3IL.js +686 -0
  91. package/development/autocomplete.js +1 -1
  92. package/development/autocomplete.pure.js +1 -1
  93. package/development/{block-link-common-CwurjMj1.js → block-link-common-qMULXu4g.js} +2 -2
  94. package/development/breadcrumb/breadcrumb/breadcrumb.component.d.ts.map +1 -1
  95. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  96. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  97. package/development/breadcrumb-group.component-BC1mWiQE.js +193 -0
  98. package/development/breadcrumb.component-BLxRIaje.js +1 -1
  99. package/development/breadcrumb.js +1 -1
  100. package/development/breadcrumb.pure.js +1 -1
  101. package/development/button/accent-button/accent-button.component.d.ts.map +1 -1
  102. package/development/button/accent-button/accent-button.component.js +1 -1
  103. package/development/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
  104. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  105. package/development/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
  106. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  107. package/development/button/button/button.component.d.ts.map +1 -1
  108. package/development/button/button/button.component.js +1 -1
  109. package/development/button/button-link/button-link.component.d.ts.map +1 -1
  110. package/development/button/button-link/button-link.component.js +1 -1
  111. package/development/button/button-static/button-static.component.d.ts.map +1 -1
  112. package/development/button/button-static/button-static.component.js +1 -1
  113. package/development/button/common/button-common.d.ts +1 -1
  114. package/development/button/common/button-common.d.ts.map +1 -1
  115. package/development/button/common/button-common.js +1 -1
  116. package/development/button/mini-button/mini-button.component.d.ts.map +1 -1
  117. package/development/button/mini-button/mini-button.component.js +1 -1
  118. package/development/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
  119. package/development/button/mini-button-link/mini-button-link.component.d.ts.map +1 -1
  120. package/development/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  121. package/development/button/secondary-button/secondary-button.component.js +1 -1
  122. package/development/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
  123. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  124. package/development/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
  125. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  126. package/development/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  127. package/development/button/transparent-button/transparent-button.component.js +1 -1
  128. package/development/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
  129. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  130. package/development/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
  131. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  132. package/development/{button-common-jaQVRdwS.js → button-common-BdW88MAX.js} +5 -5
  133. package/development/button.js +1 -1
  134. package/development/button.pure.js +1 -1
  135. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  136. package/development/calendar/calendar/calendar.component.js +1 -1
  137. package/development/calendar/calendar-day/calendar-day.component.d.ts.map +1 -1
  138. package/development/calendar/calendar-month/calendar-month.component.d.ts.map +1 -1
  139. package/development/calendar/calendar-month/calendar-month.component.js +1 -1
  140. package/development/calendar/calendar-weekday/calendar-weekday.component.d.ts.map +1 -1
  141. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  142. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.d.ts.map +1 -1
  143. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  144. package/development/calendar/calendar-year/calendar-year.component.d.ts.map +1 -1
  145. package/development/calendar/calendar-year/calendar-year.component.js +1 -1
  146. package/development/calendar/common/calendar-cell-base-element.d.ts +1 -1
  147. package/development/calendar/common/calendar-cell-base-element.d.ts.map +1 -1
  148. package/development/calendar-cell-base-element-DDNYX7UQ.js +1 -1
  149. package/development/calendar-day.component-CnNml44_.js +1 -1
  150. package/development/calendar.component-B5dz7mau.js +1451 -0
  151. package/development/calendar.js +2 -2
  152. package/development/calendar.pure.js +1 -1
  153. package/development/card/card/card.component.d.ts.map +1 -1
  154. package/development/card/card-badge/card-badge.component.d.ts.map +1 -1
  155. package/development/card/card-badge/card-badge.component.js +1 -1
  156. package/development/card/common/card-action-common.d.ts.map +1 -1
  157. package/development/card-action-common-HYrFMTkA.js +1 -1
  158. package/development/card-badge.component-CQBLpmpo.js +83 -0
  159. package/development/card.component-B2cQYSCD.js +1 -1
  160. package/development/card.js +2 -2
  161. package/development/card.pure.js +1 -1
  162. package/development/carousel/carousel/carousel.component.d.ts.map +1 -1
  163. package/development/carousel/carousel-item/carousel-item.component.d.ts.map +1 -1
  164. package/development/carousel/carousel-list/carousel-list.component.d.ts.map +1 -1
  165. package/development/carousel-item.component-MZIypyNR.js +1 -1
  166. package/development/carousel-list.component-z40-4ANn.js +1 -1
  167. package/development/carousel.component-BHYBvOm7.js +1 -1
  168. package/development/checkbox/checkbox.component.d.ts +1 -1
  169. package/development/checkbox/checkbox.component.d.ts.map +1 -1
  170. package/development/checkbox/checkbox.component.js +1 -1
  171. package/development/checkbox/common/checkbox-common.d.ts +1 -1
  172. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  173. package/development/checkbox/common/checkbox-common.js +1 -1
  174. package/development/checkbox-common-DOoEKgML.js +84 -0
  175. package/development/checkbox-group/checkbox-group.component.js +1 -1
  176. package/development/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  177. package/development/checkbox-panel/checkbox-panel.component.js +1 -1
  178. package/development/{checkbox.component-DgrfkdyZ.js → checkbox.component-DZjhQhbB.js} +2 -2
  179. package/development/checkbox.js +2 -2
  180. package/development/checkbox.pure.js +2 -2
  181. package/development/chip/chip/chip.component.d.ts.map +1 -1
  182. package/development/chip/chip-group/chip-group.component.d.ts +1 -1
  183. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  184. package/development/chip/chip-group/chip-group.component.js +1 -1
  185. package/development/chip-group.component-B4Mjcep2.js +402 -0
  186. package/development/chip-label/chip-label.component.d.ts +1 -1
  187. package/development/chip-label/chip-label.component.d.ts.map +1 -1
  188. package/development/chip-label/chip-label.component.js +1 -1
  189. package/development/chip-label.component-Cx8mfi0y.js +100 -0
  190. package/development/chip-label.js +1 -1
  191. package/development/chip-label.pure.js +1 -1
  192. package/development/chip.component-zwTaIBf2.js +1 -1
  193. package/development/chip.js +1 -1
  194. package/development/chip.pure.js +1 -1
  195. package/development/clock/clock.component.d.ts.map +1 -1
  196. package/development/clock.component-EqFTxYod.js +1 -1
  197. package/development/compact-paginator.component-CRojCci5.js +51 -0
  198. package/development/container/container/container.component.d.ts.map +1 -1
  199. package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  200. package/development/container.component-CM10qyHy.js +1 -1
  201. package/development/core/a11y/input-modality-detector.js +1 -1
  202. package/development/core/base-elements/button-base-element.d.ts +1 -1
  203. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  204. package/development/core/base-elements/button-base-element.js +1 -1
  205. package/development/core/base-elements/element.js +1 -1
  206. package/development/core/base-elements/selection-group-base-element.d.ts.map +1 -1
  207. package/development/core/controllers/media-matchers-controller.js +1 -1
  208. package/development/core/controllers/overlay-position-controller.js +3 -2
  209. package/development/core/controllers/property-watcher-controller.d.ts +1 -1
  210. package/development/core/controllers/property-watcher-controller.d.ts.map +1 -1
  211. package/development/core/controllers/property-watcher-controller.js +1 -1
  212. package/development/core/datetime/date-adapter.js +1 -1
  213. package/development/core/datetime/native-date-adapter.js +1 -1
  214. package/development/core/datetime/temporal-date-adapter.js +1 -1
  215. package/development/core/decorators/omit-empty-converter.d.ts.map +1 -1
  216. package/development/core/decorators/omit-empty-converter.js +1 -1
  217. package/development/core/eventing/throttle.d.ts +1 -0
  218. package/development/core/eventing/throttle.d.ts.map +1 -1
  219. package/development/core/eventing/throttle.js +2 -1
  220. package/development/core/mixins/disabled-mixin.js +1 -1
  221. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  222. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  223. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  224. package/development/core/mixins/form-associated-mixin.js +1 -1
  225. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  226. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  227. package/development/core/mixins/named-slot-list-mixin.js +5 -2
  228. package/development/core/mixins/negative-mixin.js +1 -1
  229. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  230. package/development/core/mixins/readonly-mixin.js +1 -1
  231. package/development/core/mixins/required-mixin.js +1 -1
  232. package/development/core/overlay/overlay-trigger-attributes.d.ts +4 -4
  233. package/development/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
  234. package/development/core/overlay/overlay-trigger-attributes.js +12 -12
  235. package/development/core/screen-reader-only/screen-reader-only.component.d.ts.map +1 -1
  236. package/development/core/styles/styles.d.ts +1 -0
  237. package/development/core/styles/styles.d.ts.map +1 -1
  238. package/development/core/styles/styles.js +2 -2
  239. package/development/core/testing/event-spy.js +1 -1
  240. package/development/core.js +3 -3
  241. package/development/date-input/date-input.component.d.ts.map +1 -1
  242. package/development/date-input.component-osVJFOS-.js +1 -1
  243. package/development/datepicker/common/datepicker-button.d.ts +8 -2
  244. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  245. package/development/datepicker/common/datepicker-button.js +1 -1
  246. package/development/datepicker/datepicker/datepicker.component.d.ts +3 -0
  247. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  248. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  249. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  250. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  251. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  252. package/development/datepicker-button-BI5R118p.js +166 -0
  253. package/development/datepicker.component-Chnvwnp7.js +212 -0
  254. package/development/datepicker.js +2 -2
  255. package/development/datepicker.pure.js +2 -2
  256. package/development/dialog/dialog/dialog.component.d.ts +0 -1
  257. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  258. package/development/dialog/dialog/dialog.component.js +1 -1
  259. package/development/dialog/dialog-actions/dialog-actions.component.d.ts +0 -1
  260. package/development/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
  261. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  262. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -1
  263. package/development/dialog/dialog-content/dialog-content.component.d.ts +1 -0
  264. package/development/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
  265. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  266. package/development/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
  267. package/development/{dialog-actions.component-DErVa4WR.js → dialog-actions.component-Bu950dM-.js} +1 -9
  268. package/development/dialog-close-button.component-CxtWzXR4.js +1 -1
  269. package/development/dialog-content.component-DlSxpY_e.js +34 -0
  270. package/development/dialog-title.component-CNMzIUB2.js +1 -1
  271. package/development/dialog.component-BTXyWi17.js +233 -0
  272. package/development/dialog.js +4 -4
  273. package/development/dialog.pure.js +3 -3
  274. package/development/divider/divider.component.d.ts.map +1 -1
  275. package/development/divider.component-BvmLUhzD.js +1 -1
  276. package/development/error.component-TvgLhaZh.js +53 -0
  277. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  278. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  279. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  280. package/development/expansion-panel-content.component-B-SV6ier.js +1 -1
  281. package/development/expansion-panel-header.component-Ok8Qmq5K.js +82 -0
  282. package/development/expansion-panel.component-q7cJOmUs.js +1 -1
  283. package/development/expansion-panel.js +2 -2
  284. package/development/expansion-panel.pure.js +1 -1
  285. package/development/file-selector/common/file-selector-common.d.ts +1 -1
  286. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  287. package/development/file-selector/common/file-selector-common.js +1 -1
  288. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  289. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  290. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  291. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  292. package/development/file-selector-common-BX5f18cJ.js +409 -0
  293. package/development/file-selector-dropzone.component-DMNom2OW.js +110 -0
  294. package/development/file-selector.js +3 -3
  295. package/development/file-selector.pure.js +2 -2
  296. package/development/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
  297. package/development/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
  298. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  299. package/development/flip-card-details.component-CKRovHqO.js +1 -1
  300. package/development/flip-card-summary.component-THvJF3Cl.js +1 -1
  301. package/development/flip-card.component-qnodzif2.js +1 -1
  302. package/development/flip-card.js +1 -1
  303. package/development/footer/footer.component.d.ts.map +1 -1
  304. package/development/footer/footer.component.js +1 -1
  305. package/development/footer.component-kFeZqO-Q.js +169 -0
  306. package/development/footer.js +1 -1
  307. package/development/footer.pure.js +1 -1
  308. package/development/form-field/error/error.component.d.ts.map +1 -1
  309. package/development/form-field/error/error.component.js +1 -1
  310. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  311. package/development/form-field/form-field/form-field.component.js +1 -1
  312. package/development/form-field/form-field-clear/form-field-clear.component.d.ts +3 -0
  313. package/development/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
  314. package/development/form-field/form-field-clear/form-field-clear.component.js +4 -1
  315. package/development/form-field/form-field-text-counter/form-field-text-counter.component.d.ts.map +1 -1
  316. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  317. package/development/form-field/hint/hint.component.d.ts.map +1 -1
  318. package/development/form-field/hint/hint.component.js +1 -1
  319. package/development/form-field.component-CdTnOAi2.js +703 -0
  320. package/development/form-field.js +3 -3
  321. package/development/form-field.pure.js +3 -3
  322. package/development/header/common/header-action-common.d.ts +1 -1
  323. package/development/header/common/header-action-common.d.ts.map +1 -1
  324. package/development/header/header/header.component.d.ts.map +1 -1
  325. package/development/header/header/header.component.js +1 -1
  326. package/development/header/header-environment/header-environment.component.d.ts.map +1 -1
  327. package/development/header-action-common-BEnsweEr.js +1 -1
  328. package/development/header-environment.component-D-SLP3CC.js +1 -1
  329. package/development/header.component-BmZkCs9m.js +335 -0
  330. package/development/header.js +2 -2
  331. package/development/header.pure.js +1 -1
  332. package/development/hint.component-D5rTFJ-O.js +36 -0
  333. package/development/icon/icon-base.d.ts.map +1 -1
  334. package/development/icon/icon-name-mixin.d.ts +1 -1
  335. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  336. package/development/icon/icon-name-mixin.js +1 -1
  337. package/development/icon-base-VYmbZT1-.js +1 -1
  338. package/development/icon-sidebar/icon-sidebar/icon-sidebar.component.d.ts.map +1 -1
  339. package/development/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  340. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +1 -1
  341. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  342. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.d.ts.map +1 -1
  343. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  344. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +1 -1
  345. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  346. package/development/icon-sidebar-content.component-CfkM9k--.js +35 -0
  347. package/development/{icon-sidebar.component-xzwoc_4y.js → icon-sidebar.component-Cgvuxg4k.js} +3 -3
  348. package/development/icon-sidebar.js +3 -3
  349. package/development/icon-sidebar.pure.js +2 -2
  350. package/development/image/image.component.d.ts.map +1 -1
  351. package/development/image.component-BuAPmhIt.js +1 -1
  352. package/development/inline-link-common-CONiCeR9.js +1 -1
  353. package/development/journey-header/journey-header.component.d.ts.map +1 -1
  354. package/development/journey-header.component-BKX1K6cf.js +1 -1
  355. package/development/lead-container/lead-container.component.d.ts.map +1 -1
  356. package/development/lead-container.component-B1eW6Xgb.js +1 -1
  357. package/development/link/block-link/block-link.component.d.ts.map +1 -1
  358. package/development/link/block-link/block-link.component.js +1 -1
  359. package/development/link/common/block-link-common.d.ts +1 -1
  360. package/development/link/common/block-link-common.d.ts.map +1 -1
  361. package/development/link/common/block-link-common.js +1 -1
  362. package/development/link/common/inline-link-common.d.ts +1 -1
  363. package/development/link/common/inline-link-common.d.ts.map +1 -1
  364. package/development/link/common/link-common.d.ts +1 -1
  365. package/development/link/common/link-common.d.ts.map +1 -1
  366. package/development/link/link/link.component.d.ts.map +1 -1
  367. package/development/link/link/link.component.js +1 -1
  368. package/development/link-common-4Ag6Mio-.js +1 -1
  369. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  370. package/development/link-list/link-list.component.d.ts.map +1 -1
  371. package/development/link-list-anchor/link-list-anchor.component.d.ts.map +1 -1
  372. package/development/link-list-anchor.component-Cotg5LDT.js +1 -1
  373. package/development/link-list-base-B7vidwUW.js +1 -1
  374. package/development/link-list.component-BFbrLjs0.js +1 -1
  375. package/development/link.js +1 -1
  376. package/development/link.pure.js +1 -1
  377. package/development/loading-indicator/loading-indicator.component.d.ts.map +1 -1
  378. package/development/loading-indicator-circle/loading-indicator-circle.component.d.ts.map +1 -1
  379. package/development/loading-indicator-circle.component-nc-RH0jT.js +1 -1
  380. package/development/loading-indicator.component-DNCUlh6S.js +1 -1
  381. package/development/logo/logo.component.d.ts.map +1 -1
  382. package/development/logo.component-tFe_T36e.js +1 -1
  383. package/development/map-container/map-container.component.d.ts.map +1 -1
  384. package/development/map-container/map-container.component.js +1 -1
  385. package/development/{map-container.component-mzZ_K_fR.js → map-container.component-DvHVJZEZ.js} +2 -3
  386. package/development/map-container.js +1 -1
  387. package/development/map-container.pure.js +1 -1
  388. package/development/menu/common/menu-action-common.d.ts +1 -1
  389. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  390. package/development/menu/common/menu-action-common.js +1 -1
  391. package/development/menu/menu/menu.component.d.ts +1 -1
  392. package/development/menu/menu/menu.component.d.ts.map +1 -1
  393. package/development/menu/menu/menu.component.js +1 -1
  394. package/development/menu/menu-link/menu-link.component.d.ts.map +1 -1
  395. package/development/menu/menu-link/menu-link.component.js +1 -1
  396. package/development/menu-action-common-CEnwq60Z.js +32 -0
  397. package/development/menu.component-DbNRrGYy.js +365 -0
  398. package/development/menu.js +3 -3
  399. package/development/menu.pure.js +2 -2
  400. package/development/message/message.component.d.ts.map +1 -1
  401. package/development/message/message.component.js +1 -1
  402. package/development/message.component-Dzah9lXK.js +43 -0
  403. package/development/message.js +1 -1
  404. package/development/message.pure.js +1 -1
  405. package/development/mini-button-group.component-DNFyLMg_.js +1 -1
  406. package/development/mini-button-link.component-DflgG59S.js +1 -1
  407. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts +1 -1
  408. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
  409. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.d.ts.map +1 -1
  410. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts.map +1 -1
  411. package/development/mini-calendar-day.component-Bmx2GYGZ.js +1 -1
  412. package/development/mini-calendar-month.component-CdIsxUAx.js +1 -1
  413. package/development/mini-calendar.component-Ddxgy4Tj.js +1 -1
  414. package/development/mini-calendar.js +1 -1
  415. package/development/navigation/common/navigation-action-common.d.ts +1 -1
  416. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  417. package/development/navigation/common/navigation-action-common.js +1 -1
  418. package/development/navigation/navigation/navigation.component.d.ts +1 -1
  419. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  420. package/development/navigation/navigation/navigation.component.js +1 -1
  421. package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
  422. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  423. package/development/navigation/navigation-marker/navigation-marker.component.d.ts +0 -1
  424. package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  425. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  426. package/development/navigation/navigation-section/navigation-section.component.d.ts +1 -1
  427. package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  428. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  429. package/development/navigation-action-common-Cv1AOqUk.js +92 -0
  430. package/development/navigation-list.component-CQ4q671G.js +90 -0
  431. package/development/navigation-marker.component-D7ks8vbC.js +121 -0
  432. package/development/navigation-section.component-t36xyaq4.js +346 -0
  433. package/development/navigation.component-Djm0PFOA.js +315 -0
  434. package/development/navigation.js +6 -6
  435. package/development/navigation.pure.js +5 -5
  436. package/development/notification/notification.component.d.ts.map +1 -1
  437. package/development/notification/notification.component.js +1 -1
  438. package/development/notification.component-BgF5aGrn.js +271 -0
  439. package/development/notification.js +1 -1
  440. package/development/notification.pure.js +1 -1
  441. package/development/optgroup-base-element-er7EBllh.js +1 -1
  442. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  443. package/development/option/option/option-base-element.d.ts.map +1 -1
  444. package/development/option/option/option-base-element.js +3 -1
  445. package/development/option/option/option.component.d.ts +1 -1
  446. package/development/option/option/option.component.d.ts.map +1 -1
  447. package/development/option/option/option.component.js +1 -1
  448. package/development/option/option-hint/option-hint.component.d.ts.map +1 -1
  449. package/development/option-hint.component-DLp9rQrk.js +1 -1
  450. package/development/option.component-B2EO4N0R.js +132 -0
  451. package/development/option.js +1 -1
  452. package/development/option.pure.js +1 -1
  453. package/development/overlay/overlay-base-element.d.ts +1 -1
  454. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  455. package/development/overlay/overlay-base-element.js +6 -6
  456. package/development/overlay/overlay.component.d.ts +0 -1
  457. package/development/overlay/overlay.component.d.ts.map +1 -1
  458. package/development/overlay/overlay.component.js +1 -1
  459. package/development/overlay.component-BcOBxY6k.js +210 -0
  460. package/development/overlay.js +1 -1
  461. package/development/overlay.pure.js +1 -1
  462. package/development/paginator/common/paginator-common.d.ts +1 -1
  463. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  464. package/development/paginator/common/paginator-common.js +1 -1
  465. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  466. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  467. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  468. package/development/paginator/paginator/paginator.component.js +1 -1
  469. package/development/paginator.component-BlyTYIs0.js +261 -0
  470. package/development/paginator.js +2 -2
  471. package/development/paginator.pure.js +2 -2
  472. package/development/panel-mixin-CKHxLmjh.js +1 -1
  473. package/development/popover/popover.component.d.ts +2 -1
  474. package/development/popover/popover.component.d.ts.map +1 -1
  475. package/development/popover/popover.component.js +1 -1
  476. package/development/popover.component-DM9Bn8xl.js +535 -0
  477. package/development/popover.js +1 -1
  478. package/development/popover.pure.js +1 -1
  479. package/development/radio-button/common/radio-button-common.d.ts +1 -1
  480. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  481. package/development/radio-button/common/radio-button-common.js +1 -1
  482. package/development/radio-button/radio-button.component.d.ts.map +1 -1
  483. package/development/radio-button/radio-button.component.js +1 -1
  484. package/development/radio-button-common-ZMs5IFm2.js +125 -0
  485. package/development/radio-button-group/radio-button-group.component.d.ts.map +1 -1
  486. package/development/radio-button-group/radio-button-group.component.js +1 -1
  487. package/development/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  488. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  489. package/development/{radio-button.component-DAgH41z0.js → radio-button.component-DggZ7RZD.js} +2 -2
  490. package/development/radio-button.js +2 -2
  491. package/development/radio-button.pure.js +2 -2
  492. package/development/screen-reader-only.component-D60AmiFy.js +1 -1
  493. package/development/select/select.component.d.ts +1 -1
  494. package/development/select/select.component.d.ts.map +1 -1
  495. package/development/select/select.component.js +1 -1
  496. package/development/select.component-BnHx3v3c.js +806 -0
  497. package/development/select.js +1 -1
  498. package/development/select.pure.js +1 -1
  499. package/development/selection-action-panel/selection-action-panel.component.d.ts.map +1 -1
  500. package/development/selection-action-panel.component-DvhL5Z_Q.js +1 -1
  501. package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  502. package/development/selection-expansion-panel.component-D_HF9lzq.js +1 -1
  503. package/development/selection-group-base-element-rKKX4OAJ.js +1 -1
  504. package/development/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
  505. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  506. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
  507. package/development/sidebar/sidebar-container/sidebar-container.component.d.ts.map +1 -1
  508. package/development/sidebar/sidebar-content/sidebar-content.component.d.ts +1 -2
  509. package/development/sidebar/sidebar-content/sidebar-content.component.d.ts.map +1 -1
  510. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  511. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
  512. package/development/sidebar-close-button.component-DYE0tK-I.js +1 -1
  513. package/development/sidebar-container.component-CC9TtB6I.js +1 -1
  514. package/development/{sidebar-content.component-Os9gd7zB.js → sidebar-content.component-DbcREBUa.js} +8 -5
  515. package/development/sidebar-title.component-DBb5MfIC.js +1 -1
  516. package/development/{sidebar.component-CwuT6dno.js → sidebar.component-zMWbdz0h.js} +2 -2
  517. package/development/sidebar.js +3 -3
  518. package/development/sidebar.pure.js +2 -2
  519. package/development/signet/signet.component.d.ts.map +1 -1
  520. package/development/signet.component-DO73qKor.js +1 -1
  521. package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  522. package/development/skiplink-list.component-DqYT2mmv.js +1 -1
  523. package/development/slider/slider.component.d.ts +1 -1
  524. package/development/slider/slider.component.d.ts.map +1 -1
  525. package/development/slider/slider.component.js +1 -1
  526. package/development/slider.component-CXrGIpkh.js +346 -0
  527. package/development/slider.js +1 -1
  528. package/development/slider.pure.js +1 -1
  529. package/development/status/status.component.d.ts.map +1 -1
  530. package/development/status/status.component.js +1 -1
  531. package/development/status.component-BtJ8ri61.js +110 -0
  532. package/development/status.js +1 -1
  533. package/development/status.pure.js +1 -1
  534. package/development/step-label.component-Dfx9rLcN.js +126 -0
  535. package/development/step.component-D1Gq0VRW.js +146 -0
  536. package/development/stepper/step/step.component.d.ts.map +1 -1
  537. package/development/stepper/step/step.component.js +1 -1
  538. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  539. package/development/stepper/step-label/step-label.component.js +1 -1
  540. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  541. package/development/stepper.component-BTwJttZt.js +1 -1
  542. package/development/stepper.js +2 -2
  543. package/development/stepper.pure.js +2 -2
  544. package/development/sticky-bar.component-MMBSPa2B.js +1 -1
  545. package/development/styles-DcuJgwEt.js +14 -0
  546. package/development/styles-WppEBrlW.js +14 -0
  547. package/development/tab-group.component-DX7BY7Xy.js +270 -0
  548. package/development/{tab-label.component-Du1W0dxN.js → tab-label.component-Ggx6qaIk.js} +2 -2
  549. package/development/tab-nav-bar.component-BTPTHy2C.js +1 -1
  550. package/development/tab.component-BVhYPy5Y.js +68 -0
  551. package/development/table/table-wrapper/table-wrapper.component.d.ts.map +1 -1
  552. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  553. package/development/table-wrapper.component-DcLwEDzr.js +119 -0
  554. package/development/table.js +1 -1
  555. package/development/table.pure.js +1 -1
  556. package/development/tabs/common/styles.js +1 -1
  557. package/development/tabs/tab/tab.component.d.ts.map +1 -1
  558. package/development/tabs/tab/tab.component.js +1 -1
  559. package/development/tabs/tab-group/tab-group.component.d.ts +1 -0
  560. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  561. package/development/tabs/tab-group/tab-group.component.js +1 -1
  562. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  563. package/development/tabs/tab-label/tab-label.component.js +1 -1
  564. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -1
  565. package/development/tabs.js +4 -4
  566. package/development/tabs.pure.js +4 -4
  567. package/development/tag/tag/tag.component.d.ts +1 -1
  568. package/development/tag/tag/tag.component.d.ts.map +1 -1
  569. package/development/tag/tag/tag.component.js +1 -1
  570. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  571. package/development/tag-group.component-SEbOfnip.js +1 -1
  572. package/development/tag.component-Davxisfj.js +241 -0
  573. package/development/tag.js +1 -1
  574. package/development/tag.pure.js +1 -1
  575. package/development/teaser/teaser.component.d.ts.map +1 -1
  576. package/development/teaser/teaser.component.js +1 -1
  577. package/development/teaser-hero/teaser-hero.component.d.ts +1 -1
  578. package/development/teaser-hero/teaser-hero.component.d.ts.map +1 -1
  579. package/development/teaser-hero/teaser-hero.component.js +1 -1
  580. package/development/teaser-hero.component-bp9IsVmY.js +100 -0
  581. package/development/teaser-hero.js +1 -1
  582. package/development/teaser-hero.pure.js +1 -1
  583. package/development/teaser-panel/teaser-panel.component.d.ts +19 -0
  584. package/development/teaser-panel/teaser-panel.component.d.ts.map +1 -0
  585. package/development/teaser-panel/teaser-panel.component.js +2 -0
  586. package/development/teaser-panel.component-CjSrfJYG.js +32 -0
  587. package/development/teaser-panel.d.ts +2 -0
  588. package/development/teaser-panel.d.ts.map +1 -0
  589. package/development/teaser-panel.js +9 -0
  590. package/development/teaser-panel.pure.d.ts +3 -0
  591. package/development/teaser-panel.pure.d.ts.map +1 -0
  592. package/development/teaser-panel.pure.js +2 -0
  593. package/development/teaser-product/common/teaser-product-common.d.ts +1 -1
  594. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  595. package/development/teaser-product/common/teaser-product-common.js +1 -1
  596. package/development/teaser-product/teaser-product/teaser-product.component.d.ts +1 -1
  597. package/development/teaser-product/teaser-product/teaser-product.component.d.ts.map +1 -1
  598. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  599. package/development/teaser-product/teaser-product-static/teaser-product-static.component.d.ts.map +1 -1
  600. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  601. package/development/{teaser-product-common-DhbAGnQN.js → teaser-product-common-DasV_SDa.js} +1 -1
  602. package/development/{teaser-product.component-C3PZbA5W.js → teaser-product.component-CB6fOX7T.js} +1 -1
  603. package/development/teaser-product.js +2 -2
  604. package/development/teaser-product.pure.js +2 -2
  605. package/development/{teaser.component-BJso_6lz.js → teaser.component-C7uXEaPK.js} +2 -2
  606. package/development/teaser.js +1 -1
  607. package/development/teaser.pure.js +1 -1
  608. package/development/time-input/time-input.component.d.ts.map +1 -1
  609. package/development/time-input/time-input.component.js +1 -1
  610. package/development/{time-input.component-BWMBV6fm.js → time-input.component-x-QOtbwE.js} +1 -1
  611. package/development/time-input.js +1 -1
  612. package/development/time-input.pure.js +1 -1
  613. package/development/timetable-form/timetable-form/timetable-form.component.d.ts.map +1 -1
  614. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  615. package/development/timetable-form/timetable-form-details/timetable-form-details.component.d.ts.map +1 -1
  616. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  617. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  618. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +3 -0
  619. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -1
  620. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  621. package/development/{timetable-form-details.component-C8EdT4rZ.js → timetable-form-details.component-B7mwIQoz.js} +1 -1
  622. package/development/{timetable-form-field.component-CoANLGWk.js → timetable-form-field.component-BIpoMaJW.js} +1 -1
  623. package/development/{timetable-form-swap-button.component-BGziVzB8.js → timetable-form-swap-button.component-CyHdctws.js} +5 -1
  624. package/development/{timetable-form.component-DLjBbFRv.js → timetable-form.component-BBkeono7.js} +1 -1
  625. package/development/timetable-form.js +5 -5
  626. package/development/timetable-form.pure.js +4 -4
  627. package/development/timetable-occupancy/timetable-occupancy.component.d.ts +1 -1
  628. package/development/timetable-occupancy/timetable-occupancy.component.d.ts.map +1 -1
  629. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  630. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +1 -1
  631. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  632. package/development/{timetable-occupancy-icon.component-DXFUx67a.js → timetable-occupancy-icon.component-CRayfWIo.js} +1 -1
  633. package/development/timetable-occupancy-icon.js +1 -1
  634. package/development/timetable-occupancy-icon.pure.js +1 -1
  635. package/development/{timetable-occupancy.component-By7X3Sj2.js → timetable-occupancy.component-B-uVA9KC.js} +2 -2
  636. package/development/timetable-occupancy.js +1 -1
  637. package/development/timetable-occupancy.pure.js +1 -1
  638. package/development/title/title-base.d.ts.map +1 -1
  639. package/development/title/title-base.js +1 -1
  640. package/development/title/title.component.d.ts.map +1 -1
  641. package/development/title/title.component.js +1 -1
  642. package/development/{title-base-Bc3biGfy.js → title-base-DKVyL7TQ.js} +2 -2
  643. package/development/{title.component-B7rIqG0N.js → title.component-BEEzA9cF.js} +2 -2
  644. package/development/title.js +2 -2
  645. package/development/title.pure.js +2 -2
  646. package/development/toast/toast.component.d.ts +1 -1
  647. package/development/toast/toast.component.d.ts.map +1 -1
  648. package/development/toast/toast.component.js +1 -1
  649. package/development/toast.component-DvVY7zpe.js +268 -0
  650. package/development/toast.js +1 -1
  651. package/development/toast.pure.js +1 -1
  652. package/development/toggle/toggle/toggle.component.d.ts +1 -1
  653. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  654. package/development/toggle/toggle/toggle.component.js +1 -1
  655. package/development/toggle/toggle-option/toggle-option.component.d.ts +1 -0
  656. package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  657. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  658. package/development/toggle-check/toggle-check.component.d.ts.map +1 -1
  659. package/development/toggle-check/toggle-check.component.js +1 -1
  660. package/development/toggle-check.component-LYr7DJj1.js +156 -0
  661. package/development/toggle-check.js +1 -1
  662. package/development/toggle-check.pure.js +1 -1
  663. package/development/toggle-option.component-DRAJ11fp.js +164 -0
  664. package/development/toggle.component-CQYpVyvs.js +244 -0
  665. package/development/toggle.js +2 -2
  666. package/development/toggle.pure.js +2 -2
  667. package/development/tooltip/tooltip.component.d.ts.map +1 -1
  668. package/development/tooltip/tooltip.component.js +1 -1
  669. package/development/tooltip.component-Br7aDPFn.js +369 -0
  670. package/development/tooltip.js +1 -1
  671. package/development/tooltip.pure.js +1 -1
  672. package/development/train/train/train.component.d.ts.map +1 -1
  673. package/development/train/train/train.component.js +1 -1
  674. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  675. package/development/train/train-formation/train-formation.component.js +1 -1
  676. package/development/train/train-wagon/train-wagon.component.js +1 -1
  677. package/development/{train-blocked-passage.component-C6XmqBo_.js → train-blocked-passage.component-Bh2dR1gn.js} +1 -1
  678. package/development/{train-formation.component-CfdHRBsd.js → train-formation.component-Dm0t9N_h.js} +2 -2
  679. package/development/{train-wagon.component-zQVbqhIL.js → train-wagon.component-B6V4dPKn.js} +2 -2
  680. package/development/{train.component-D5Z4vgej.js → train.component-BvbNBkZF.js} +1 -1
  681. package/development/train.js +5 -5
  682. package/development/train.pure.js +4 -4
  683. package/development/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  684. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  685. package/development/{visual-checkbox.component-jRksxrOu.js → visual-checkbox.component-DJ30EugM.js} +1 -1
  686. package/development/visual-checkbox.js +1 -1
  687. package/development/visual-checkbox.pure.js +1 -1
  688. package/dialog/dialog/dialog.component.js +1 -1
  689. package/dialog/dialog-actions/dialog-actions.component.js +1 -1
  690. package/dialog/dialog-content/dialog-content.component.js +1 -1
  691. package/{dialog-actions.component-ConxJ3VW.js → dialog-actions.component-DjBJ65tV.js} +4 -8
  692. package/dialog-content.component-C_Gr8BNL.js +22 -0
  693. package/{dialog.component-ca14M0hZ.js → dialog.component-ChB9gCyY.js} +7 -10
  694. package/dialog.js +3 -3
  695. package/dialog.pure.js +3 -3
  696. package/{error.component-BLChP2fE.js → error.component-D3JgDJfN.js} +1 -1
  697. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  698. package/{expansion-panel-header.component-DdRIlyms.js → expansion-panel-header.component-DYvq-uUi.js} +1 -1
  699. package/expansion-panel.js +1 -1
  700. package/expansion-panel.pure.js +1 -1
  701. package/file-selector/common/file-selector-common.js +1 -1
  702. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  703. package/{file-selector-common-DpccuOQ4.js → file-selector-common-CMLaHuDP.js} +38 -40
  704. package/{file-selector-dropzone.component-Bz3Wpl0X.js → file-selector-dropzone.component-CWwpvAVD.js} +3 -4
  705. package/file-selector.js +2 -2
  706. package/file-selector.pure.js +2 -2
  707. package/footer/footer.component.js +1 -1
  708. package/{footer.component-Don15vOd.js → footer.component-CdTEaV6u.js} +1 -1
  709. package/footer.js +1 -1
  710. package/footer.pure.js +1 -1
  711. package/form-field/error/error.component.js +1 -1
  712. package/form-field/form-field/form-field.component.js +1 -1
  713. package/form-field/hint/hint.component.js +1 -1
  714. package/{form-field.component-Do5eratI.js → form-field.component-Dtzbp6-e.js} +3 -2
  715. package/form-field.js +3 -3
  716. package/form-field.pure.js +3 -3
  717. package/header/header/header.component.js +1 -1
  718. package/{header.component-BxizSy1O.js → header.component-DoAFSXgO.js} +3 -3
  719. package/header.js +1 -1
  720. package/header.pure.js +1 -1
  721. package/{hint.component-CaF6CBCN.js → hint.component-BB_h0G6v.js} +1 -1
  722. package/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  723. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  724. package/{icon-sidebar-content.component-DlUqWEAX.js → icon-sidebar-content.component-lFstg91Y.js} +9 -5
  725. package/{icon-sidebar.component-DbA4omxc.js → icon-sidebar.component-D0TtF-kR.js} +11 -11
  726. package/icon-sidebar.js +2 -2
  727. package/icon-sidebar.pure.js +2 -2
  728. package/index.d.ts +2 -0
  729. package/index.js +2 -0
  730. package/link/common/block-link-common.js +1 -1
  731. package/link.js +1 -1
  732. package/link.pure.js +1 -1
  733. package/map-container/map-container.component.js +1 -1
  734. package/{map-container.component-Cqn9mKoo.js → map-container.component-BlrPWANi.js} +1 -2
  735. package/map-container.js +1 -1
  736. package/map-container.pure.js +1 -1
  737. package/menu/common/menu-action-common.js +1 -1
  738. package/menu/menu/menu.component.js +1 -1
  739. package/{menu-action-common-DY4RrfCy.js → menu-action-common-krzD_Ca2.js} +1 -1
  740. package/{menu.component-XvtyRok7.js → menu.component-KdXwqe55.js} +15 -15
  741. package/menu.js +2 -2
  742. package/menu.pure.js +2 -2
  743. package/message/message.component.js +1 -1
  744. package/message.component-CF-_MD7m.js +26 -0
  745. package/message.js +1 -1
  746. package/message.pure.js +1 -1
  747. package/navigation/common/navigation-action-common.js +1 -1
  748. package/navigation/navigation/navigation.component.js +1 -1
  749. package/navigation/navigation-list/navigation-list.component.js +1 -1
  750. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  751. package/navigation/navigation-section/navigation-section.component.js +1 -1
  752. package/navigation-action-common-BKI1MS1v.js +66 -0
  753. package/{navigation-list.component-DQeyXtOA.js → navigation-list.component-BX-kv06z.js} +13 -13
  754. package/navigation-marker.component-iSodFQRj.js +85 -0
  755. package/navigation-section.component-K4Pa53K7.js +230 -0
  756. package/navigation.component-BFejmwjr.js +202 -0
  757. package/navigation.js +5 -5
  758. package/navigation.pure.js +5 -5
  759. package/notification/notification.component.js +1 -1
  760. package/{notification.component-IsSZe3Ul.js → notification.component-D9oxjMJs.js} +1 -1
  761. package/notification.js +1 -1
  762. package/notification.pure.js +1 -1
  763. package/off-brand-theme.css +317 -138
  764. package/option/option/option-base-element.js +1 -1
  765. package/option/option/option.component.js +1 -1
  766. package/{option.component-C1Mm3ZFh.js → option.component-B8PivDHD.js} +1 -1
  767. package/option.js +1 -1
  768. package/option.pure.js +1 -1
  769. package/overlay/overlay-base-element.js +4 -4
  770. package/overlay/overlay.component.js +1 -1
  771. package/overlay.component-C6i5RA4B.js +160 -0
  772. package/overlay.js +1 -1
  773. package/overlay.pure.js +1 -1
  774. package/package.json +11 -1
  775. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  776. package/paginator/paginator/paginator.component.js +1 -1
  777. package/{paginator.component-BkECB-iV.js → paginator.component-DA_wUypF.js} +1 -1
  778. package/paginator.js +2 -2
  779. package/paginator.pure.js +2 -2
  780. package/popover/popover.component.js +1 -1
  781. package/{popover.component-BfSXNxKK.js → popover.component-BkhmysoH.js} +18 -15
  782. package/popover.js +1 -1
  783. package/popover.pure.js +1 -1
  784. package/radio-button/common/radio-button-common.js +1 -1
  785. package/radio-button/radio-button.component.js +1 -1
  786. package/{radio-button-common-CQyKqDLJ.js → radio-button-common-iNYco_B8.js} +1 -1
  787. package/{radio-button.component-Cenb6FL5.js → radio-button.component-v5czJYC3.js} +1 -1
  788. package/radio-button.js +2 -2
  789. package/radio-button.pure.js +2 -2
  790. package/safety-theme.css +317 -138
  791. package/scrollbar.css +51 -53
  792. package/select/select.component.js +1 -1
  793. package/{select.component-Cu3ewc4i.js → select.component-De-aDcuf.js} +3 -3
  794. package/select.js +1 -1
  795. package/select.pure.js +1 -1
  796. package/sidebar/sidebar/sidebar.component.js +1 -1
  797. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  798. package/{sidebar-content.component-DEgmt4BB.js → sidebar-content.component-CYupfsq_.js} +9 -5
  799. package/{sidebar.component-Bxt8pWMf.js → sidebar.component-Sw06otwx.js} +1 -1
  800. package/sidebar.js +2 -2
  801. package/sidebar.pure.js +2 -2
  802. package/slider/slider.component.js +1 -1
  803. package/{slider.component-B3V7sjSF.js → slider.component-DfMkuXac.js} +1 -1
  804. package/slider.js +1 -1
  805. package/slider.pure.js +1 -1
  806. package/standard-theme.css +317 -138
  807. package/status/status.component.js +1 -1
  808. package/{status.component-CgMvY4Pe.js → status.component-5SKEusnj.js} +1 -1
  809. package/status.js +1 -1
  810. package/status.pure.js +1 -1
  811. package/step-label.component-DM7lQw8b.js +77 -0
  812. package/{step.component-aBAfTJyO.js → step.component-DuLOqjZk.js} +5 -7
  813. package/stepper/step/step.component.js +1 -1
  814. package/stepper/step-label/step-label.component.js +1 -1
  815. package/stepper.js +2 -2
  816. package/stepper.pure.js +2 -2
  817. package/styles-DisU4TWi.js +5 -0
  818. package/styles-swTeDfst.js +5 -0
  819. package/{tab-group.component-sdbLQtoj.js → tab-group.component-B3uz-8FA.js} +31 -27
  820. package/{tab-label.component-CH24fqmB.js → tab-label.component-JjktN30A.js} +1 -1
  821. package/{tab.component-DGzqld4u.js → tab.component-D6hfhlZw.js} +6 -6
  822. package/table/table-wrapper/table-wrapper.component.js +1 -1
  823. package/{table-wrapper.component-C36NdMWS.js → table-wrapper.component-Dxb8kzV3.js} +13 -13
  824. package/table.js +1 -1
  825. package/table.pure.js +1 -1
  826. package/tabs/common/styles.js +1 -1
  827. package/tabs/tab/tab.component.js +1 -1
  828. package/tabs/tab-group/tab-group.component.js +1 -1
  829. package/tabs/tab-label/tab-label.component.js +1 -1
  830. package/tabs.js +4 -4
  831. package/tabs.pure.js +4 -4
  832. package/tag/tag/tag.component.js +1 -1
  833. package/{tag.component-B7YExnbA.js → tag.component-BGYVbfUx.js} +1 -1
  834. package/tag.js +1 -1
  835. package/tag.pure.js +1 -1
  836. package/teaser/teaser.component.js +1 -1
  837. package/teaser-hero/teaser-hero.component.js +1 -1
  838. package/teaser-hero.component-By1HInfz.js +80 -0
  839. package/teaser-hero.js +1 -1
  840. package/teaser-hero.pure.js +1 -1
  841. package/teaser-panel/teaser-panel.component.js +2 -0
  842. package/teaser-panel.component-C4auDYCc.js +21 -0
  843. package/teaser-panel.js +6 -0
  844. package/teaser-panel.pure.js +2 -0
  845. package/teaser-product/common/teaser-product-common.js +1 -1
  846. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  847. package/teaser-product.js +2 -2
  848. package/teaser-product.pure.js +2 -2
  849. package/{teaser.component-BaxumXCl.js → teaser.component-B2y2AlAx.js} +1 -1
  850. package/teaser.js +1 -1
  851. package/teaser.pure.js +1 -1
  852. package/time-input/time-input.component.js +1 -1
  853. package/time-input.js +1 -1
  854. package/time-input.pure.js +1 -1
  855. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  856. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  857. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  858. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  859. package/{timetable-form-swap-button.component-BT36u2L9.js → timetable-form-swap-button.component-D9wBQQkG.js} +1 -1
  860. package/timetable-form.js +4 -4
  861. package/timetable-form.pure.js +4 -4
  862. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  863. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  864. package/timetable-occupancy-icon.js +1 -1
  865. package/timetable-occupancy-icon.pure.js +1 -1
  866. package/{timetable-occupancy.component-BbHtiw_F.js → timetable-occupancy.component-Dq9RM6qS.js} +1 -1
  867. package/timetable-occupancy.js +1 -1
  868. package/timetable-occupancy.pure.js +1 -1
  869. package/title/title-base.js +1 -1
  870. package/title/title.component.js +1 -1
  871. package/{title-base-Cbe4eNS1.js → title-base-B43-Q_7r.js} +1 -1
  872. package/{title.component-7zqQqbRJ.js → title.component-DXJHJ6p6.js} +1 -1
  873. package/title.js +2 -2
  874. package/title.pure.js +2 -2
  875. package/toast/toast.component.js +1 -1
  876. package/toast.component-2hmfUgsX.js +184 -0
  877. package/toast.js +1 -1
  878. package/toast.pure.js +1 -1
  879. package/toggle/toggle/toggle.component.js +1 -1
  880. package/toggle/toggle-option/toggle-option.component.js +1 -1
  881. package/toggle-check/toggle-check.component.js +1 -1
  882. package/toggle-check.component-WVQ4NM-R.js +116 -0
  883. package/toggle-check.js +1 -1
  884. package/toggle-check.pure.js +1 -1
  885. package/{toggle-option.component-BF95HWOF.js → toggle-option.component-DeePQ-NW.js} +5 -7
  886. package/{toggle.component-2e_7FeR4.js → toggle.component-BGgAnHau.js} +6 -10
  887. package/toggle.js +2 -2
  888. package/toggle.pure.js +2 -2
  889. package/tooltip/tooltip.component.js +1 -1
  890. package/{tooltip.component-C5y6zCtF.js → tooltip.component-Bp-8vRoA.js} +12 -12
  891. package/tooltip.js +1 -1
  892. package/tooltip.pure.js +1 -1
  893. package/train/train/train.component.js +1 -1
  894. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  895. package/train/train-formation/train-formation.component.js +1 -1
  896. package/train/train-wagon/train-wagon.component.js +1 -1
  897. package/{train-formation.component-5AASBGSX.js → train-formation.component-DS4EDwPY.js} +1 -1
  898. package/{train-wagon.component-CLMLEf6I.js → train-wagon.component-LwKwwuta.js} +1 -1
  899. package/train.js +4 -4
  900. package/train.pure.js +4 -4
  901. package/visual-checkbox/visual-checkbox.component.js +1 -1
  902. package/visual-checkbox.js +1 -1
  903. package/visual-checkbox.pure.js +1 -1
  904. package/alert.component-C42LwoGa.js +0 -163
  905. package/button-common-C3wYY-UK.js +0 -85
  906. package/chip-label.component-CUJTTb1-.js +0 -79
  907. package/core/styles/mixins/chip.scss +0 -95
  908. package/development/alert-group.component-DeI6kuwn.js +0 -188
  909. package/development/alert.component-Cn36k_Hf.js +0 -214
  910. package/development/autocomplete-base-element-B5n-eCMO.js +0 -672
  911. package/development/breadcrumb-group.component-DP9X9qV1.js +0 -193
  912. package/development/calendar.component-CByyksy8.js +0 -1450
  913. package/development/card-badge.component-Be4gXazr.js +0 -83
  914. package/development/checkbox-common-DpE48IrV.js +0 -84
  915. package/development/chip-group.component-CxM8l839.js +0 -402
  916. package/development/chip-label.component-C1CGL8zb.js +0 -102
  917. package/development/compact-paginator.component-DiMeNNTc.js +0 -51
  918. package/development/datepicker-button-CIvIHG8k.js +0 -160
  919. package/development/datepicker.component-BEiMYEc-.js +0 -211
  920. package/development/dialog-content.component-B3VB2ptp.js +0 -30
  921. package/development/dialog.component-BYVTZAUU.js +0 -238
  922. package/development/error.component-C8JQQqSB.js +0 -53
  923. package/development/expansion-panel-header.component-CWojFAB-.js +0 -82
  924. package/development/file-selector-common-DE_jT1fa.js +0 -411
  925. package/development/file-selector-dropzone.component-dyv_u-Ga.js +0 -111
  926. package/development/footer.component-Dbc5xFqr.js +0 -169
  927. package/development/form-field.component-DGOrnYkc.js +0 -702
  928. package/development/header.component-Hfgz9sSb.js +0 -336
  929. package/development/hint.component-hKw1TLvO.js +0 -36
  930. package/development/icon-sidebar-content.component-CMzp1ewD.js +0 -31
  931. package/development/menu-action-common-Crx-dDgH.js +0 -32
  932. package/development/menu.component-DOv7PKIi.js +0 -367
  933. package/development/message.component-CrXtMprr.js +0 -43
  934. package/development/navigation-action-common-ZBiv0Xiw.js +0 -93
  935. package/development/navigation-list.component-DilKlDwx.js +0 -90
  936. package/development/navigation-marker.component-BsfPR_uk.js +0 -122
  937. package/development/navigation-section.component-C_9myQKr.js +0 -349
  938. package/development/navigation.component-C8MhqBLY.js +0 -318
  939. package/development/notification.component-CKyNdgbx.js +0 -271
  940. package/development/option.component-Dod6JgbH.js +0 -132
  941. package/development/overlay.component-BuCkqG6Q.js +0 -216
  942. package/development/paginator.component-Cqm7MuRD.js +0 -261
  943. package/development/popover.component-B15jFLe9.js +0 -529
  944. package/development/radio-button-common-u7NYOI2p.js +0 -125
  945. package/development/select.component-CqwBdtsN.js +0 -804
  946. package/development/slider.component-ZBdkbZei.js +0 -346
  947. package/development/status.component-p-egQ_U4.js +0 -110
  948. package/development/step-label.component-CxqPgbzK.js +0 -128
  949. package/development/step.component-B2qbHl0l.js +0 -150
  950. package/development/styles-CcYw6JtZ.js +0 -8
  951. package/development/styles-D_8dMc_0.js +0 -14
  952. package/development/tab-group.component-C3R8ZTbg.js +0 -266
  953. package/development/tab.component-DteuwiHv.js +0 -70
  954. package/development/table-wrapper.component-iSeT-FPH.js +0 -119
  955. package/development/tag.component-CWL9jJTW.js +0 -241
  956. package/development/teaser-hero.component-7KeR7bPf.js +0 -101
  957. package/development/toast.component-Cy13egVy.js +0 -269
  958. package/development/toggle-check.component-CuODx4cx.js +0 -156
  959. package/development/toggle-option.component-BWT4kEZo.js +0 -165
  960. package/development/toggle.component-DjLnSv3R.js +0 -249
  961. package/development/tooltip.component-BtWTK2R0.js +0 -371
  962. package/dialog-content.component-DvJiuDJI.js +0 -19
  963. package/message.component-DgTPvDym.js +0 -26
  964. package/navigation-action-common-Dm47M2BG.js +0 -66
  965. package/navigation-marker.component-1VHe19c9.js +0 -85
  966. package/navigation-section.component-CLcdmPV3.js +0 -231
  967. package/navigation.component-Cnyb5_4R.js +0 -203
  968. package/overlay.component-OzDUV8t1.js +0 -164
  969. package/step-label.component-qdfunibJ.js +0 -77
  970. package/styles-DMLyYaea.js +0 -5
  971. package/styles-x5HG0xjp.js +0 -6
  972. package/teaser-hero.component-CLuVP2ba.js +0 -81
  973. package/toast.component-BY72fOXh.js +0 -185
  974. package/toggle-check.component-DkOBgRQM.js +0 -116
  975. /package/{teaser-product-common-B8NakRRV.js → teaser-product-common-Kz3ApcVE.js} +0 -0
  976. /package/{teaser-product.component-Dqapk40c.js → teaser-product.component-C7KoSqcP.js} +0 -0
  977. /package/{time-input.component-N0DexLd9.js → time-input.component-BVoO7JLV.js} +0 -0
  978. /package/{timetable-form-details.component-CIY5ZAQJ.js → timetable-form-details.component-BQmF3WLu.js} +0 -0
  979. /package/{timetable-form-field.component-LuzgeDdh.js → timetable-form-field.component-DrQuTOJr.js} +0 -0
  980. /package/{timetable-form.component-YNDnJnkX.js → timetable-form.component-AbZF15Tg.js} +0 -0
  981. /package/{timetable-occupancy-icon.component-DPNwMhLs.js → timetable-occupancy-icon.component-B6pF-j0D.js} +0 -0
  982. /package/{train-blocked-passage.component-EET0Kobk.js → train-blocked-passage.component-DIh8dbU9.js} +0 -0
  983. /package/{train.component-D_ysGCwu.js → train.component-DuFi_iBX.js} +0 -0
  984. /package/{visual-checkbox.component-CdqoYyEe.js → visual-checkbox.component-BsjmJgcn.js} +0 -0
@@ -1,367 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, isServer, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbDarkModeController, SbbEscapableOverlayController, SbbFocusTrapController, SbbInertController, SbbLanguageController, SbbMediaMatcherController, SbbMediaQueryBreakpointSmallAndBelow, SbbOpenCloseBaseElement, SbbScrollHandler, boxSizingStyles, forwardEvent, getElementPosition, getElementPositionHorizontal, getNextElementIndex, i18nGoBack, idReference, interactivityChecker, isArrowKeyOrPageKeysPressed, isEventOnElement, isZeroAnimationDuration, removeAriaOverlayTriggerAttributes, setAriaOverlayTriggerAttributes, ɵstateController } from "./core.js";
5
- import { SbbDividerElement } from "./divider.pure.js";
6
- import { ref } from "lit/directives/ref.js";
7
- import { SbbMenuButtonElement } from "./menu/menu-button/menu-button.component.js";
8
- //#region src/elements/menu/menu/menu.scss?inline
9
- var menu_default = ":host {\n display: contents;\n --sbb-menu-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n --_sbb-menu-inset: 0 auto auto 0;\n --sbb-scrollbar-thumb-width: 0.125rem;\n --sbb-scrollbar-thumb-width-hover: 0.25rem;\n --sbb-scrollbar-width-firefox: thin;\n --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);\n --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);\n --sbb-scrollbar-track-color: transparent;\n}\n@media (min-width: calc(64rem)) {\n :host {\n --sbb-menu-back-button-display: none;\n }\n}\n\n:host(:is(:is(:state(state-opened),[state--state-opened]), :is(:state(state-opening),[state--state-opening]))) {\n --sbb-menu-visibility: visible;\n --sbb-menu-backdrop-color: color-mix(in srgb, var(--sbb-color-black) 20%, transparent);\n}\n@media (min-width: calc(64rem)) {\n :host(:is(:is(:state(state-opened),[state--state-opened]), :is(:state(state-opening),[state--state-opening]))) {\n --sbb-menu-backdrop-color: transparent;\n }\n}\n\n:host(:not(:is(:state(nested),[state--nested]))) {\n --sbb-menu-back-button-display: none;\n}\n\n:host(:not(:is(:state(state-closed),[state--state-closed]))) {\n --_sbb-menu-inset: 0;\n}\n\n:host(:is(:state(dark),[state--dark])) {\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-default);\n --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);\n}\n\n@media (max-width: calc(63.9375rem)) {\n :host(:is(:state(skip-animation),[state--skip-animation])) {\n --sbb-menu-animation-duration: 0ms;\n }\n :host(:is(:state(nested-child),[state--nested-child])) {\n --sbb-menu-transform-x: -100%;\n }\n :host(:is(:state(nested),[state--nested]):is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) {\n --sbb-menu-open-animation-name: open-sideways;\n }\n :host(:is(:state(state-closing),[state--state-closing]):is(:state(nested),[state--nested]):not(:is(:state(close-all),[state--close-all]))) {\n --sbb-menu-close-animation-name: close-sideways;\n }\n}\n::slotted(:not(sbb-menu-button, sbb-menu-link, sbb-divider)) {\n display: block;\n padding-inline: var(--sbb-spacing-fixed-5x);\n}\n\nsbb-divider,\n::slotted(sbb-divider) {\n --sbb-divider-color: var(--sbb-background-color-4-inverted);\n margin-block: var(--sbb-spacing-fixed-2x);\n}\n\nsbb-divider,\n#sbb-menu__back-button {\n display: var(--sbb-menu-back-button-display, block);\n}\n\n.sbb-menu__container {\n position: fixed;\n pointer-events: none;\n inset: var(--_sbb-menu-inset);\n height: var(--sbb-menu-container-height);\n z-index: var(--sbb-menu-z-index, var(--sbb-overlay-default-z-index));\n}\n.sbb-menu__container::before {\n content: \"\";\n visibility: var(--sbb-menu-visibility, hidden);\n pointer-events: all;\n position: fixed;\n inset: var(--_sbb-menu-inset);\n height: var(--sbb-menu-container-height);\n background-color: var(--sbb-menu-backdrop-color, transparent);\n transition-duration: var(--sbb-menu-animation-duration);\n transition-timing-function: var(--sbb-menu-animation-easing);\n transition-property: background-color, visibility;\n}\n:host(:is(:state(nested),[state--nested])) .sbb-menu__container::before {\n display: none;\n}\n\n.sbb-menu {\n display: none;\n opacity: 0;\n pointer-events: none;\n max-width: var(--sbb-menu-max-width);\n min-width: var(--sbb-menu-min-width);\n text-align: start;\n position: absolute;\n inset-inline-start: 0;\n inset-block-start: unset;\n inset-block-end: 0;\n inset-inline-end: unset;\n color: var(--sbb-menu-color);\n border: none;\n border-radius: var(--sbb-menu-border-radius) var(--sbb-menu-border-radius) 0 0;\n background-color: var(--sbb-menu-background-color);\n padding: 0;\n overflow: hidden;\n translate: var(--sbb-menu-transform-x, 0) 0;\n transition: translate var(--sbb-menu-animation-duration);\n}\n:host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) .sbb-menu {\n display: block;\n opacity: 1;\n pointer-events: all;\n animation-name: var(--sbb-menu-open-animation-name, open);\n animation-duration: var(--sbb-menu-animation-duration);\n animation-timing-function: var(--sbb-menu-animation-easing);\n}\n:host(:is(:state(state-closing),[state--state-closing])) .sbb-menu {\n pointer-events: none;\n animation-name: var(--sbb-menu-close-animation-name, close);\n}\n@media (forced-colors: active) {\n .sbb-menu {\n outline: var(--sbb-border-width-1x) solid CanvasText;\n }\n}\n@media (min-width: calc(64rem)) {\n .sbb-menu {\n top: 0;\n bottom: unset;\n left: 0;\n right: unset;\n max-height: fit-content;\n border-radius: var(--sbb-menu-border-radius);\n }\n :host(:not(:is(:state(state-closed),[state--state-closed]))) .sbb-menu {\n top: var(--sbb-menu-position-y, 0);\n left: var(--sbb-menu-position-x, 0);\n max-height: var(--sbb-menu-max-height);\n min-height: var(--sbb-menu-min-height);\n }\n}\n\n.sbb-menu__content {\n --sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);\n}\n.sbb-menu__content::-webkit-scrollbar {\n width: var(--sbb-scrollbar-width);\n height: var(--sbb-scrollbar-width);\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n.sbb-menu__content::-webkit-scrollbar-corner {\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n.sbb-menu__content::-webkit-scrollbar-thumb {\n background-color: var(--sbb-scrollbar-color, currentcolor);\n border: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;\n border-radius: var(--sbb-border-radius-4x);\n background-clip: padding-box;\n}\n.sbb-menu__content::-webkit-scrollbar-thumb:hover {\n background-color: var(--sbb-scrollbar-color-hover, currentcolor);\n border-width: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)));\n}\n.sbb-menu__content::-webkit-scrollbar-button, .sbb-menu__content::-webkit-scrollbar-corner {\n display: none;\n}\n@supports not selector(::-webkit-scrollbar) {\n .sbb-menu__content {\n scrollbar-width: var(--sbb-scrollbar-width-firefox);\n scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);\n }\n}\n.sbb-menu__content {\n max-height: var(--sbb-menu-max-height);\n padding-block: var(--sbb-spacing-fixed-1x);\n overflow: auto;\n outline: none;\n}\n.sbb-menu__content::after {\n content: \"\";\n display: block;\n height: var(--sbb-spacing-fixed-8x);\n}\n@media (min-width: calc(64rem)) {\n .sbb-menu__content {\n max-height: fit-content;\n }\n :host(:not(:is(:state(state-closed),[state--state-closed]))) .sbb-menu__content {\n max-height: var(--sbb-menu-max-height);\n min-height: var(--sbb-menu-min-height);\n }\n .sbb-menu__content::after {\n display: none;\n }\n}\n\n::slotted(:is(:is(:state(sbb-link),[state--sbb-link]), :is(:state(sbb-button),[state--sbb-button]))) {\n color-scheme: only light;\n}\n\n@keyframes open {\n from {\n opacity: 0;\n translate: 0 var(--sbb-menu-transform-y, 100%);\n }\n to {\n opacity: 1;\n translate: 0 0;\n }\n}\n@keyframes close {\n from {\n opacity: 1;\n translate: 0 0;\n }\n to {\n opacity: 0;\n translate: 0 var(--sbb-menu-transform-y, 100%);\n }\n}\n@keyframes open-sideways {\n from {\n translate: 100% 0;\n }\n to {\n translate: 0 0;\n }\n}\n@keyframes close-sideways {\n from {\n translate: 0 0;\n }\n to {\n translate: 100% 0;\n }\n}";
10
- //#endregion
11
- //#region src/elements/menu/menu/menu.component.ts
12
- var MENU_OFFSET = 8;
13
- var NESTED_MENU_OFFSET = -4;
14
- var INTERACTIVE_ELEMENTS = [
15
- "A",
16
- "BUTTON",
17
- "SBB-BUTTON",
18
- "SBB-BUTTON-LINK",
19
- "SBB-LINK",
20
- "SBB-BLOCK-LINK",
21
- "SBB-LINK-BUTTON",
22
- "SBB-BLOCK-LINK-BUTTON",
23
- "SBB-MENU-BUTTON",
24
- "SBB-MENU-LINK"
25
- ];
26
- var nextId = 0;
27
- /**
28
- * It displays a contextual menu with one or more action element.
29
- *
30
- * @slot - Use the unnamed slot to add `sbb-menu-button`/`sbb-menu-link` or other elements to the menu.
31
- * @cssprop [--sbb-menu-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
32
- * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
33
- * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
34
- */
35
- var SbbMenuElement = (() => {
36
- let _classSuper = SbbOpenCloseBaseElement;
37
- let _trigger_decorators;
38
- let _trigger_initializers = [];
39
- let _trigger_extraInitializers = [];
40
- return class SbbMenuElement extends _classSuper {
41
- static {
42
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
43
- _trigger_decorators = [idReference(), property()];
44
- __esDecorate(this, null, _trigger_decorators, {
45
- kind: "accessor",
46
- name: "trigger",
47
- static: false,
48
- private: false,
49
- access: {
50
- has: (obj) => "trigger" in obj,
51
- get: (obj) => obj.trigger,
52
- set: (obj, value) => {
53
- obj.trigger = value;
54
- }
55
- },
56
- metadata: _metadata
57
- }, _trigger_initializers, _trigger_extraInitializers);
58
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
59
- enumerable: true,
60
- configurable: true,
61
- writable: true,
62
- value: _metadata
63
- });
64
- }
65
- static {
66
- this.elementName = "sbb-menu";
67
- }
68
- static {
69
- this.elementDependencies = [SbbDividerElement, SbbMenuButtonElement];
70
- }
71
- static {
72
- this.styles = [boxSizingStyles, unsafeCSS(menu_default)];
73
- }
74
- static {
75
- this.role = "menu";
76
- }
77
- #trigger_accessor_storage;
78
- /**
79
- * The element that will trigger the menu overlay.
80
- *
81
- * For attribute usage, provide an id reference.
82
- */
83
- get trigger() {
84
- return this.#trigger_accessor_storage;
85
- }
86
- set trigger(value) {
87
- this.#trigger_accessor_storage = value;
88
- }
89
- constructor() {
90
- super();
91
- this.#trigger_accessor_storage = __runInitializers(this, _trigger_initializers, null);
92
- this._menu = __runInitializers(this, _trigger_extraInitializers);
93
- this._triggerElement = null;
94
- this._isPointerDownEventOnMenu = false;
95
- this._escapableOverlayController = new SbbEscapableOverlayController(this);
96
- this._focusTrapController = new SbbFocusTrapController(this);
97
- this._scrollHandler = new SbbScrollHandler();
98
- this._inertController = new SbbInertController(this);
99
- this._mobileBreakpoint = SbbMediaQueryBreakpointSmallAndBelow;
100
- this._mediaMatcher = new SbbMediaMatcherController(this, { [this._mobileBreakpoint]: (matches) => {
101
- if (matches && (this.state === "opening" || this.state === "opened")) this._scrollHandler.disableScroll();
102
- else this._scrollHandler.enableScroll();
103
- } });
104
- this._darkModeController = new SbbDarkModeController(this, () => this._syncNegative());
105
- this._language = new SbbLanguageController(this);
106
- this._nestedMenu = null;
107
- this._pointerDownListener = (event) => {
108
- const menu = event.target.closest("sbb-menu");
109
- this._isPointerDownEventOnMenu = isEventOnElement(this._menu, event) || this._nestedMenus().some((el) => menu === el);
110
- };
111
- this._closeOnBackdropClick = (event) => {
112
- const target = event.target;
113
- if (!this._isPointerDownEventOnMenu && !isEventOnElement(this._menu, event) && !this._nestedMenus().some((el) => el === target)) this.closeAll();
114
- };
115
- this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
116
- }
117
- firstUpdated(changedProperties) {
118
- super.firstUpdated(changedProperties);
119
- this._configureTrigger();
120
- }
121
- escapeStrategy() {
122
- this.closeAll();
123
- }
124
- /**
125
- * Opens the menu on trigger click.
126
- */
127
- open() {
128
- if (this.state === "closing" || this.state === "opened" || !this._menu || !this.dispatchBeforeOpenEvent()) return;
129
- if (this._isNested()) {
130
- const parentMenu = this._parentMenu();
131
- parentMenu.internals.states.add("nested-child");
132
- if (parentMenu._nestedMenu !== this) parentMenu._nestedMenu?.close();
133
- parentMenu._nestedMenu = this;
134
- }
135
- this.showPopover?.();
136
- this.state = "opening";
137
- this._setMenuPosition();
138
- this._triggerElement?.setAttribute("aria-expanded", "true");
139
- if (this._isMobile()) this._scrollHandler.disableScroll();
140
- if (this._isZeroAnimationDuration()) this._handleOpening();
141
- }
142
- /** Closes the menu and all its nested menus. */
143
- close() {
144
- this._close();
145
- }
146
- /** Closes the menu and all related menus (nested and parent menus). */
147
- closeAll() {
148
- this._mainMenu()._close(true);
149
- }
150
- /** @param [closeAll='false'] - If true, it ensures animations are correct by toggling some states when closing all related menus at once. */
151
- _close(closeAll = false) {
152
- if (this.state === "opening" && !this._isNested() || !this.dispatchBeforeCloseEvent()) return;
153
- this._nestedMenu?._close(closeAll);
154
- if (this._isNested()) {
155
- const parentMenu = this._parentMenu();
156
- if (closeAll) {
157
- this.internals.states.add("close-all");
158
- parentMenu.internals.states.add("skip-animation");
159
- } else {
160
- this.internals.states.delete("close-all");
161
- parentMenu.internals.states.delete("skip-animation");
162
- }
163
- parentMenu.internals.states.delete("nested-child");
164
- parentMenu._nestedMenu = null;
165
- }
166
- this.state = "closing";
167
- this._triggerElement?.setAttribute("aria-expanded", "false");
168
- if (this._isZeroAnimationDuration()) this._handleClosing();
169
- }
170
- _isZeroAnimationDuration() {
171
- return isZeroAnimationDuration(this, "--sbb-menu-animation-duration");
172
- }
173
- _handleOpening() {
174
- this.state = "opened";
175
- if (!this._isNested()) this._inertController.activate();
176
- else this._updateNestedInert();
177
- this._escapableOverlayController.connect();
178
- this._focusTrapController.focusInitialElement();
179
- this._focusTrapController.enabled = true;
180
- this._attachWindowEvents();
181
- this.dispatchOpenEvent();
182
- }
183
- _handleClosing() {
184
- this.state = "closed";
185
- this.internals.states.delete("skip-animation");
186
- this.internals.states.delete("close-all");
187
- this.hidePopover?.();
188
- this._menu?.firstElementChild?.scrollTo(0, 0);
189
- if (!this._isNested()) this._inertController.deactivate();
190
- else this._updateNestedInert();
191
- this._triggerElement?.focus({ preventScroll: ["sbb-header-button", "sbb-header-link"].includes(this._triggerElement.localName) });
192
- this._escapableOverlayController.disconnect();
193
- this.dispatchCloseEvent();
194
- this._windowEventsController?.abort();
195
- this._focusTrapController.enabled = false;
196
- this._scrollHandler.enableScroll();
197
- }
198
- _handleKeyDown(evt) {
199
- if (!isArrowKeyOrPageKeysPressed(evt)) return;
200
- evt.preventDefault();
201
- const enabledActions = Array.from(this.querySelectorAll("sbb-menu-button, sbb-menu-link")).concat(this.shadowRoot.querySelector("sbb-menu-button")).filter((el) => (!el.disabled || el.disabledInteractive) && interactivityChecker.isVisible(el));
202
- const current = enabledActions.findIndex((e) => e === evt.target);
203
- let nextIndex;
204
- switch (evt.key) {
205
- case "ArrowUp":
206
- case "ArrowDown":
207
- nextIndex = getNextElementIndex(evt, current, enabledActions.length);
208
- break;
209
- case "ArrowLeft":
210
- if (this._isNested()) this.close();
211
- break;
212
- case "ArrowRight":
213
- if (evt.target.matches(":is(:state(sbb-menu-trigger),[state--sbb-menu-trigger])")) evt.target.click();
214
- break;
215
- case "PageUp":
216
- case "Home":
217
- nextIndex = 0;
218
- break;
219
- case "End":
220
- case "PageDown":
221
- nextIndex = enabledActions.length - 1;
222
- break;
223
- }
224
- if (nextIndex !== void 0) enabledActions[nextIndex].focus();
225
- }
226
- createRenderRoot() {
227
- const renderRoot = super.createRenderRoot();
228
- this.shadowRoot?.addEventListener("slotchange", () => this._syncNegative(), { capture: true });
229
- return renderRoot;
230
- }
231
- connectedCallback() {
232
- this.popover = "manual";
233
- super.connectedCallback();
234
- this.id ||= `sbb-menu-${nextId++}`;
235
- if (this.hasUpdated) this._configureTrigger();
236
- }
237
- disconnectedCallback() {
238
- super.disconnectedCallback();
239
- this._triggerElement = null;
240
- this._triggerAbortController?.abort();
241
- this._windowEventsController?.abort();
242
- this._scrollHandler.enableScroll();
243
- }
244
- requestUpdate(name, oldValue, options) {
245
- super.requestUpdate(name, oldValue, options);
246
- if (!isServer && (!name || name === "trigger") && this.hasUpdated) this._configureTrigger();
247
- }
248
- _configureTrigger() {
249
- if (this.trigger === this._triggerElement) return;
250
- this._triggerAbortController?.abort();
251
- removeAriaOverlayTriggerAttributes(this._triggerElement);
252
- this._triggerElement = this.trigger;
253
- if (!this._triggerElement) return;
254
- setAriaOverlayTriggerAttributes(this._triggerElement, "menu", this.id, this.state);
255
- this._triggerAbortController = new AbortController();
256
- this._triggerElement.addEventListener("click", () => this.open(), { signal: this._triggerAbortController.signal });
257
- this.toggleState("nested", ["sbb-menu-button", "sbb-menu-link"].includes(this._triggerElement.localName));
258
- ɵstateController(this._triggerElement).add("sbb-menu-trigger");
259
- }
260
- _attachWindowEvents() {
261
- this._windowEventsController = new AbortController();
262
- document.addEventListener("scroll", () => this._setMenuPosition(), {
263
- passive: true,
264
- signal: this._windowEventsController.signal,
265
- capture: true
266
- });
267
- window.addEventListener("resize", () => this._setMenuPosition(), {
268
- passive: true,
269
- signal: this._windowEventsController.signal
270
- });
271
- if (!this._isNested()) {
272
- window.addEventListener("pointerdown", this._pointerDownListener, { signal: this._windowEventsController.signal });
273
- window.addEventListener("pointerup", this._closeOnBackdropClick, { signal: this._windowEventsController.signal });
274
- }
275
- }
276
- _interactiveElementClick(event) {
277
- const target = event.target;
278
- if (INTERACTIVE_ELEMENTS.includes(target.nodeName) && !target.hasAttribute("disabled") && !target.matches(":is(:state(sbb-menu-trigger),[state--sbb-menu-trigger])") && target.id !== "sbb-menu__back-button") this.closeAll();
279
- }
280
- /** Converts the linked list into an array of SbbMenuElement. */
281
- _nestedMenus() {
282
- const menus = [];
283
- let current = this._nestedMenu;
284
- while (current) {
285
- menus.push(current);
286
- current = current._nestedMenu;
287
- }
288
- return menus;
289
- }
290
- _parentMenu() {
291
- return this._triggerElement?.closest("sbb-menu") ?? null;
292
- }
293
- /** The outermost menu. */
294
- _mainMenu() {
295
- return this._isNested() ? this._parentMenu()?._mainMenu() ?? this : this;
296
- }
297
- _isNested() {
298
- return !!this._parentMenu();
299
- }
300
- _updateNestedInert() {
301
- this._inertController.restoreAllExempted();
302
- this._mainMenu()._nestedMenus().forEach((menu) => this._inertController.exempt(menu));
303
- }
304
- _handleMouseOver(event) {
305
- const element = event.target;
306
- const isMobile = this._isMobile();
307
- if (!isMobile && this._nestedMenu && !element.classList.contains("sbb-menu__content") && !(element.getAttribute("aria-expanded") === "true")) this._nestedMenu.close();
308
- if (element.matches(":is(:state(sbb-menu-trigger),[state--sbb-menu-trigger])") && !isMobile) element.click();
309
- }
310
- _onMenuAnimationEnd(event) {
311
- if ((event.animationName === "open" || event.animationName === "open-sideways") && this.state === "opening") this._handleOpening();
312
- else if ((event.animationName === "close" || event.animationName === "close-sideways") && this.state === "closing") this._handleClosing();
313
- }
314
- _setMenuPosition() {
315
- if (this._isMobile() || !this._menu || !this._triggerElement || this.state === "closing") return;
316
- const menuPosition = !this._isNested() ? getElementPosition(this.shadowRoot.querySelector(".sbb-menu__content"), this._triggerElement, this.shadowRoot.querySelector(".sbb-menu__container"), { verticalOffset: MENU_OFFSET }) : getElementPositionHorizontal(this.shadowRoot.querySelector(".sbb-menu__content"), this._triggerElement, this.shadowRoot.querySelector(".sbb-menu__container"), {
317
- horizontalOffset: MENU_OFFSET,
318
- verticalOffset: NESTED_MENU_OFFSET,
319
- contentSelector: ".sbb-menu__content"
320
- });
321
- this.style.setProperty("--sbb-menu-position-x", `${menuPosition.left}px`);
322
- this.style.setProperty("--sbb-menu-position-y", `${menuPosition.top}px`);
323
- this.style.setProperty("--sbb-menu-max-height", menuPosition.maxHeight);
324
- }
325
- _syncNegative() {
326
- this.querySelectorAll(":is(:state(sbb-link),[state--sbb-link]), :is(:state(sbb-button),[state--sbb-button])")?.forEach((el) => {
327
- customElements.upgrade(el);
328
- el.negative = !this._darkModeController.matches();
329
- });
330
- }
331
- _isMobile() {
332
- return this._mediaMatcher.matches(this._mobileBreakpoint) ?? true;
333
- }
334
- render() {
335
- return html`
336
- <div class="sbb-menu__container">
337
- <div
338
- @animationend=${this._onMenuAnimationEnd}
339
- @mouseover=${(e) => this._handleMouseOver(e)}
340
- class="sbb-menu"
341
- ${ref((el) => this._menu = el)}
342
- >
343
- <div
344
- @click=${(event) => this._interactiveElementClick(event)}
345
- @scroll=${(e) => forwardEvent(e, document)}
346
- class="sbb-menu__content"
347
- >
348
- <slot></slot>
349
- <sbb-divider></sbb-divider>
350
- <sbb-menu-button
351
- id="sbb-menu__back-button"
352
- @click=${() => this.close()}
353
- icon-name="chevron-small-left-small"
354
- >
355
- ${i18nGoBack[this._language.current]}
356
- </sbb-menu-button>
357
- </div>
358
- </div>
359
- </div>
360
- `;
361
- }
362
- };
363
- })();
364
- //#endregion
365
- export { SbbMenuElement as t };
366
-
367
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQtRE92N1BLSWkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC8vIFdlIHVzZSB0aGlzIHJ1bGUgdG8gbWFrZSB0aGUgaW5uZXIgY29udGFpbmVyIGVsZW1lbnQgdG8gYXBwZWFyIGFzIGlmIGl0IHdlcmUgYVxuICAvLyBkaXJlY3QgY2hpbGQgb2YgdGhlIGhvc3QncyBwYXJlbnQgZWxlbWVudC4gVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSB0aGUgaG9zdFxuICAvLyBzaG91bGQgYmUgaWdub3JlZCB3aGVuIHVzaW5nIENTUyBncmlkIG9yIHNpbWlsYXIgbGF5b3V0IHRlY2huaXF1ZXMuXG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gIC0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eClcbiAgKTtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG4gIC0tX3NiYi1tZW51LWluc2V0OiAwIGF1dG8gYXV0byAwO1xuXG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXItdmFyaWFibGVzKCRuZWdhdGl2ZTogdHJ1ZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW1lbnUtYmFjay1idXR0b24tZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkpIHtcbiAgLS1zYmItbWVudS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAtLXNiYi1tZW51LWJhY2tkcm9wLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSAyMCUsIHRyYW5zcGFyZW50KTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgLS1zYmItbWVudS1iYWNrZHJvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUobmVzdGVkKSkpIHtcbiAgLS1zYmItbWVudS1iYWNrLWJ1dHRvbi1kaXNwbGF5OiBub25lO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkge1xuICAtLV9zYmItbWVudS1pbnNldDogMDtcbn1cblxuOmhvc3QoOnN0YXRlKGRhcmspKSB7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRlZmF1bHQpO1xuXG4gIC8vIFdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIHNjcm9sbGJhciBpcyB2aXNpYmxlIGluIGRhcmsgbW9kZSB3aXRoIG5vbi1kYXJrIG1vZGUgdmFsdWVzLlxuICAtLXNiYi1zY3JvbGxiYXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zYmItY29sb3ItYmxhY2spIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAtLXNiYi1zY3JvbGxiYXItY29sb3ItaG92ZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zYmItY29sb3ItYmxhY2spIDYwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG5AaW5jbHVkZSBzYmIubXEoJHRvOiBsYXJnZSkge1xuICA6aG9zdCg6c3RhdGUoc2tpcC1hbmltYXRpb24pKSB7XG4gICAgLS1zYmItbWVudS1hbmltYXRpb24tZHVyYXRpb246IDBtcztcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShuZXN0ZWQtY2hpbGQpKSB7XG4gICAgLS1zYmItbWVudS10cmFuc2Zvcm0teDogLTEwMCU7XG4gIH1cblxuICA6aG9zdCg6c3RhdGUobmVzdGVkKTppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSB7XG4gICAgLS1zYmItbWVudS1vcGVuLWFuaW1hdGlvbi1uYW1lOiBvcGVuLXNpZGV3YXlzO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpOnN0YXRlKG5lc3RlZCk6bm90KDpzdGF0ZShjbG9zZS1hbGwpKSkge1xuICAgIC0tc2JiLW1lbnUtY2xvc2UtYW5pbWF0aW9uLW5hbWU6IGNsb3NlLXNpZGV3YXlzO1xuICB9XG59XG5cbjo6c2xvdHRlZCg6bm90KHNiYi1tZW51LWJ1dHRvbiwgc2JiLW1lbnUtbGluaywgc2JiLWRpdmlkZXIpKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNXgpO1xufVxuXG5zYmItZGl2aWRlcixcbjo6c2xvdHRlZChzYmItZGl2aWRlcikge1xuICAtLXNiYi1kaXZpZGVyLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci00LWludmVydGVkKTtcblxuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbn1cblxuc2JiLWRpdmlkZXIsXG4jc2JiLW1lbnVfX2JhY2stYnV0dG9uIHtcbiAgZGlzcGxheTogdmFyKC0tc2JiLW1lbnUtYmFjay1idXR0b24tZGlzcGxheSwgYmxvY2spO1xufVxuXG4uc2JiLW1lbnVfX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGluc2V0OiB2YXIoLS1fc2JiLW1lbnUtaW5zZXQpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1tZW51LWNvbnRhaW5lci1oZWlnaHQpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItbWVudS16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcblxuICAvLyBNZW51IGJhY2tkcm9wIChvbmx5IHZpc2libGUgb24gbW9iaWxlKVxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHZpc2liaWxpdHk6IHZhcigtLXNiYi1tZW51LXZpc2liaWxpdHksIGhpZGRlbik7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IHZhcigtLV9zYmItbWVudS1pbnNldCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItbWVudS1jb250YWluZXItaGVpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbWVudS1iYWNrZHJvcC1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItbWVudS1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbWVudS1hbmltYXRpb24tZWFzaW5nKTtcbiAgICAgIHByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCB2aXNpYmlsaXR5O1xuICAgIH1cblxuICAgIC8vIEhpZGUgdGhlIGJhY2tkcm9wIHdoZW4gaW4gbmVzdGVkIHN0YXRlXG4gICAgOmhvc3QoOnN0YXRlKG5lc3RlZCkpICYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG1heC13aWR0aDogdmFyKC0tc2JiLW1lbnUtbWF4LXdpZHRoKTtcbiAgbWluLXdpZHRoOiB2YXIoLS1zYmItbWVudS1taW4td2lkdGgpO1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiB1bnNldDtcbiAgaW5zZXQtYmxvY2stZW5kOiAwO1xuICBpbnNldC1pbmxpbmUtZW5kOiB1bnNldDtcbiAgY29sb3I6IHZhcigtLXNiYi1tZW51LWNvbG9yKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItbWVudS1ib3JkZXItcmFkaXVzKSB2YXIoLS1zYmItbWVudS1ib3JkZXItcmFkaXVzKSAwIDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1tZW51LWJhY2tncm91bmQtY29sb3IpO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2xhdGU6IHZhcigtLXNiYi1tZW51LXRyYW5zZm9ybS14LCAwKSAwO1xuXG4gIC8vIFVzZWQgd2hlbiBuYXZpZ2F0aW5nIGJhY2sgZnJvbSBuZXN0ZWQgbWVudSBpbiBtb2JpbGUgdmlld1xuICB0cmFuc2l0aW9uOiB0cmFuc2xhdGUgdmFyKC0tc2JiLW1lbnUtYW5pbWF0aW9uLWR1cmF0aW9uKTtcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkgJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiB2YXIoLS1zYmItbWVudS1vcGVuLWFuaW1hdGlvbi1uYW1lLCBvcGVuKTtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItbWVudS1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbWVudS1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGFuaW1hdGlvbi1uYW1lOiB2YXIoLS1zYmItbWVudS1jbG9zZS1hbmltYXRpb24tbmFtZSwgY2xvc2UpO1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIG91dGxpbmU6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogdW5zZXQ7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogdW5zZXQ7XG4gICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLW1lbnUtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICA6aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkgJiB7XG4gICAgICB0b3A6IHZhcigtLXNiYi1tZW51LXBvc2l0aW9uLXksIDApO1xuICAgICAgbGVmdDogdmFyKC0tc2JiLW1lbnUtcG9zaXRpb24teCwgMCk7XG4gICAgICBtYXgtaGVpZ2h0OiB2YXIoLS1zYmItbWVudS1tYXgtaGVpZ2h0KTtcbiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1tZW51LW1pbi1oZWlnaHQpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW1lbnVfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyLXJ1bGVzO1xuXG4gIG1heC1oZWlnaHQ6IHZhcigtLXNiYi1tZW51LW1heC1oZWlnaHQpO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCk7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBvdXRsaW5lOiBub25lO1xuXG4gIC8vIE1hcmdpbiBib3R0b20gaW4gbW9iaWxlIHZhcmlhbnRcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtOHgpO1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIG1heC1oZWlnaHQ6IGZpdC1jb250ZW50O1xuXG4gICAgOmhvc3QoOm5vdCg6c3RhdGUoc3RhdGUtY2xvc2VkKSkpICYge1xuICAgICAgbWF4LWhlaWdodDogdmFyKC0tc2JiLW1lbnUtbWF4LWhlaWdodCk7XG4gICAgICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItbWVudS1taW4taGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG46OnNsb3R0ZWQoOmlzKDpzdGF0ZShzYmItbGluayksIDpzdGF0ZShzYmItYnV0dG9uKSkpIHtcbiAgLy8gQXMgdGhlIGJhY2tncm91bmQgdHVybnMgd2hpdGUsIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgYnV0dG9ucyBhbmQgbGlua3MgYXJlIGRpc3BsYXllZCBpbiBwb3NpdGl2ZS5cbiAgY29sb3Itc2NoZW1lOiBvbmx5IGxpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1zYmItbWVudS10cmFuc2Zvcm0teSwgMTAwJSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1zYmItbWVudS10cmFuc2Zvcm0teSwgMTAwJSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBvcGVuLXNpZGV3YXlzIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiAxMDAlIDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNsYXRlOiAwIDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZS1zaWRld2F5cyB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogMCAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogMTAwJSAwO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7XG4gIHR5cGUgU2JiTmVnYXRpdmVNaXhpblR5cGUsXG4gIMm1c3RhdGVDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQge1xuICBnZXROZXh0RWxlbWVudEluZGV4LFxuICBpbnRlcmFjdGl2aXR5Q2hlY2tlcixcbiAgaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkLFxuICBTYmJGb2N1c1RyYXBDb250cm9sbGVyLFxuICBTYmJEYXJrTW9kZUNvbnRyb2xsZXIsXG4gIFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLFxuICBTYmJJbmVydENvbnRyb2xsZXIsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93LFxuICBpZFJlZmVyZW5jZSxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIFNiYlNjcm9sbEhhbmRsZXIsXG4gIGZvcndhcmRFdmVudCxcbiAgaTE4bkdvQmFjayxcbiAgZ2V0RWxlbWVudFBvc2l0aW9uLFxuICBnZXRFbGVtZW50UG9zaXRpb25Ib3Jpem9udGFsLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxuICBib3hTaXppbmdTdHlsZXMsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiRGl2aWRlckVsZW1lbnQgfSBmcm9tICcuLi8uLi9kaXZpZGVyLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiTWVudUJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9tZW51LWJ1dHRvbi9tZW51LWJ1dHRvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJNZW51TGlua0VsZW1lbnQgfSBmcm9tICcuLi9tZW51LWxpbmsvbWVudS1saW5rLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL21lbnUuc2Nzcz9pbmxpbmUnO1xuXG5jb25zdCBNRU5VX09GRlNFVCA9IDg7XG5jb25zdCBORVNURURfTUVOVV9PRkZTRVQgPSAtNDtcbmNvbnN0IElOVEVSQUNUSVZFX0VMRU1FTlRTID0gW1xuICAnQScsXG4gICdCVVRUT04nLFxuICAnU0JCLUJVVFRPTicsXG4gICdTQkItQlVUVE9OLUxJTksnLFxuICAnU0JCLUxJTksnLFxuICAnU0JCLUJMT0NLLUxJTksnLFxuICAnU0JCLUxJTkstQlVUVE9OJyxcbiAgJ1NCQi1CTE9DSy1MSU5LLUJVVFRPTicsXG4gICdTQkItTUVOVS1CVVRUT04nLFxuICAnU0JCLU1FTlUtTElOSycsXG5dO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGNvbnRleHR1YWwgbWVudSB3aXRoIG9uZSBvciBtb3JlIGFjdGlvbiBlbGVtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItbWVudS1idXR0b25gL2BzYmItbWVudS1saW5rYCBvciBvdGhlciBlbGVtZW50cyB0byB0aGUgbWVudS5cbiAqIEBjc3Nwcm9wIFstLXNiYi1tZW51LXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYk1lbnVFbGVtZW50IGV4dGVuZHMgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW1lbnUnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbXG4gICAgU2JiRGl2aWRlckVsZW1lbnQsXG4gICAgU2JiTWVudUJ1dHRvbkVsZW1lbnQsXG4gIF07XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbWVudSc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBtZW51IG92ZXJsYXkuXG4gICAqXG4gICAqIEZvciBhdHRyaWJ1dGUgdXNhZ2UsIHByb3ZpZGUgYW4gaWQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQGlkUmVmZXJlbmNlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfbWVudSE6IEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfaXNQb2ludGVyRG93bkV2ZW50T25NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pbmVydENvbnRyb2xsZXIgPSBuZXcgU2JiSW5lcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9tb2JpbGVCcmVha3BvaW50ID0gU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93O1xuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gICAgW3RoaXMuX21vYmlsZUJyZWFrcG9pbnRdOiAobWF0Y2hlcykgPT4ge1xuICAgICAgaWYgKG1hdGNoZXMgJiYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJykpIHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuICBwcml2YXRlIF9kYXJrTW9kZUNvbnRyb2xsZXIgPSBuZXcgU2JiRGFya01vZGVDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuX3N5bmNOZWdhdGl2ZSgpKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9uZXN0ZWRNZW51OiBTYmJNZW51RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGVzY2FwZVN0cmF0ZWd5KCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgbWVudSBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnIHx8XG4gICAgICB0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fFxuICAgICAgIXRoaXMuX21lbnUgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgY29uc3QgcGFyZW50TWVudSA9IHRoaXMuX3BhcmVudE1lbnUoKSE7XG4gICAgICBwYXJlbnRNZW51LmludGVybmFscy5zdGF0ZXMuYWRkKCduZXN0ZWQtY2hpbGQnKTtcblxuICAgICAgLy8gSW4gY2FzZSB3ZSBjaGFuZ2UgYmV0d2VlbiBhcnJvdyBrZXkgbmF2aWdhdGlvbiBhbmQgbW91c2UgbmF2aWdhdGlvbiwgaXQgY2FuIGJlIHRoYXQgYW5vdGhlclxuICAgICAgLy8gbmVzdGVkIHBhcmVudCBtZW51IGlzIHN0aWxsIG9wZW4uIFdlIGhhdmUgdG8gY2xvc2UgaXQuXG4gICAgICBpZiAocGFyZW50TWVudS5fbmVzdGVkTWVudSAhPT0gdGhpcykge1xuICAgICAgICBwYXJlbnRNZW51Ll9uZXN0ZWRNZW51Py5jbG9zZSgpO1xuICAgICAgfVxuICAgICAgcGFyZW50TWVudS5fbmVzdGVkTWVudSA9IHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9zZXRNZW51UG9zaXRpb24oKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcblxuICAgIC8vIEZyb20gemVybyB0byBsYXJnZSwgZGlzYWJsZSBzY3JvbGxcbiAgICBpZiAodGhpcy5faXNNb2JpbGUoKSkge1xuICAgICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBtZW51IGFuZCBhbGwgaXRzIG5lc3RlZCBtZW51cy4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlKCk7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBtZW51IGFuZCBhbGwgcmVsYXRlZCBtZW51cyAobmVzdGVkIGFuZCBwYXJlbnQgbWVudXMpLiAqL1xuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fbWFpbk1lbnUoKS5fY2xvc2UodHJ1ZSk7XG4gIH1cblxuICAvKiogQHBhcmFtIFtjbG9zZUFsbD0nZmFsc2UnXSAtIElmIHRydWUsIGl0IGVuc3VyZXMgYW5pbWF0aW9ucyBhcmUgY29ycmVjdCBieSB0b2dnbGluZyBzb21lIHN0YXRlcyB3aGVuIGNsb3NpbmcgYWxsIHJlbGF0ZWQgbWVudXMgYXQgb25jZS4gKi9cbiAgcHJpdmF0ZSBfY2xvc2UoY2xvc2VBbGwgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICgodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnICYmICF0aGlzLl9pc05lc3RlZCgpKSB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENsb3NlIG5lc3RlZCBtZW51cyBmaXJzdFxuICAgIHRoaXMuX25lc3RlZE1lbnU/Ll9jbG9zZShjbG9zZUFsbCk7XG5cbiAgICBpZiAodGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgY29uc3QgcGFyZW50TWVudSA9IHRoaXMuX3BhcmVudE1lbnUoKSE7XG4gICAgICBpZiAoY2xvc2VBbGwpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnY2xvc2UtYWxsJyk7XG4gICAgICAgIHBhcmVudE1lbnUuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ3NraXAtYW5pbWF0aW9uJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdjbG9zZS1hbGwnKTtcbiAgICAgICAgcGFyZW50TWVudS5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnc2tpcC1hbmltYXRpb24nKTtcbiAgICAgIH1cbiAgICAgIHBhcmVudE1lbnUuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ25lc3RlZC1jaGlsZCcpO1xuICAgICAgcGFyZW50TWVudS5fbmVzdGVkTWVudSA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbWVudS1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuXG4gICAgaWYgKCF0aGlzLl9pc05lc3RlZCgpKSB7XG4gICAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIuYWN0aXZhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdXBkYXRlTmVzdGVkSW5lcnQoKTtcbiAgICB9XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5fYXR0YWNoV2luZG93RXZlbnRzKCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnc2tpcC1hbmltYXRpb24nKTtcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdjbG9zZS1hbGwnKTtcbiAgICB0aGlzLmhpZGVQb3BvdmVyPy4oKTtcblxuICAgIHRoaXMuX21lbnU/LmZpcnN0RWxlbWVudENoaWxkPy5zY3JvbGxUbygwLCAwKTtcbiAgICBpZiAoIXRoaXMuX2lzTmVzdGVkKCkpIHtcbiAgICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3VwZGF0ZU5lc3RlZEluZXJ0KCk7XG4gICAgfVxuICAgIC8vIE1hbnVhbGx5IGZvY3VzIGxhc3QgZm9jdXNlZCBlbGVtZW50XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKHtcbiAgICAgIC8vIFdoZW4gaW5zaWRlIHRoZSBzYmItaGVhZGVyLCB3ZSBwcmV2ZW50IHRoZSBzY3JvbGwgdG8gYXZvaWQgdGhlIHNuYXBwaW5nIHRvIHRoZSB0b3Agb2YgdGhlIHBhZ2VcbiAgICAgIHByZXZlbnRTY3JvbGw6IFsnc2JiLWhlYWRlci1idXR0b24nLCAnc2JiLWhlYWRlci1saW5rJ10uaW5jbHVkZXMoXG4gICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmxvY2FsTmFtZSxcbiAgICAgICksXG4gICAgfSk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBsYXJnZSwgZW5hYmxlIHNjcm9sbFxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkKGV2dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBlbmFibGVkQWN0aW9uczogRWxlbWVudFtdID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbDxTYmJNZW51QnV0dG9uRWxlbWVudCB8IFNiYk1lbnVMaW5rRWxlbWVudD4oXG4gICAgICAgICdzYmItbWVudS1idXR0b24sIHNiYi1tZW51LWxpbmsnLFxuICAgICAgKSxcbiAgICApXG4gICAgICAuY29uY2F0KHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3Rvcignc2JiLW1lbnUtYnV0dG9uJykhKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGVsKSA9PiAoIWVsLmRpc2FibGVkIHx8IGVsLmRpc2FibGVkSW50ZXJhY3RpdmUpICYmIGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCksXG4gICAgICApO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBlbmFibGVkQWN0aW9ucy5maW5kSW5kZXgoKGU6IEVsZW1lbnQpID0+IGUgPT09IGV2dC50YXJnZXQpO1xuXG4gICAgbGV0IG5leHRJbmRleDtcbiAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgbmV4dEluZGV4ID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRBY3Rpb25zLmxlbmd0aCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICBpZiAodGhpcy5faXNOZXN0ZWQoKSkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgIGlmICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkubWF0Y2hlcygnOnN0YXRlKHNiYi1tZW51LXRyaWdnZXIpJykpIHtcbiAgICAgICAgICAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnUGFnZVVwJzpcbiAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICBuZXh0SW5kZXggPSAwO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnRW5kJzpcbiAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgbmV4dEluZGV4ID0gZW5hYmxlZEFjdGlvbnMubGVuZ3RoIC0gMTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKG5leHRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAoZW5hYmxlZEFjdGlvbnNbbmV4dEluZGV4XSBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGVSZW5kZXJSb290KCk6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCB7XG4gICAgY29uc3QgcmVuZGVyUm9vdCA9IHN1cGVyLmNyZWF0ZVJlbmRlclJvb3QoKTtcbiAgICAvLyBEdWUgdG8gdGhlIGZhY3QgdGhhdCBtZW51IGNhbiBib3RoIGJlIGEgbGlzdCBhbmQganVzdCBhIGNvbnRhaW5lciwgd2UgbmVlZCB0byBjaGVjayBpdHNcbiAgICAvLyBzdGF0ZSBiZWZvcmUgdGhlIFNiYk5hbWVkU2xvdExpc3RNaXhpbiBoYW5kbGVzIHRoZSBzbG90Y2hhbmdlIGV2ZW50LCBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGl0IGludGVycHJldGluZyB0aGUgbm9uIGxpc3QgY2FzZSBhcyBhIGxpc3QuXG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgKCkgPT4gdGhpcy5fc3luY05lZ2F0aXZlKCksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICByZXR1cm4gcmVuZGVyUm9vdDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXIgPSAnbWFudWFsJztcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaWQgfHw9IGBzYmItbWVudS0ke25leHRJZCsrfWA7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAoIW5hbWUgfHwgbmFtZSA9PT0gJ3RyaWdnZXInKSAmJiB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgdHJpZ2dlciBpcyB2YWxpZCBhbmQgYXR0YWNoIGNsaWNrIGV2ZW50IGxpc3RlbmVycy5cbiAgcHJpdmF0ZSBfY29uZmlndXJlVHJpZ2dlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSB0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0aGlzLnRyaWdnZXI7XG5cbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCwgJ21lbnUnLCB0aGlzLmlkLCB0aGlzLnN0YXRlKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBDb25zaWRlciB0aGUgbWVudSBhcyBuZXN0ZWQgaWYgdGhlIHRyaWdnZXIgaXMgYSBtZW51IGJ1dHRvbiBvciBtZW51IGxpbmsuXG4gICAgdGhpcy50b2dnbGVTdGF0ZShcbiAgICAgICduZXN0ZWQnLFxuICAgICAgWydzYmItbWVudS1idXR0b24nLCAnc2JiLW1lbnUtbGluayddLmluY2x1ZGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50LmxvY2FsTmFtZSksXG4gICAgKTtcbiAgICDJtXN0YXRlQ29udHJvbGxlcih0aGlzLl90cmlnZ2VyRWxlbWVudCkuYWRkKCdzYmItbWVudS10cmlnZ2VyJyk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hXaW5kb3dFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9zZXRNZW51UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAvLyBXaXRob3V0IGNhcHR1cmUsIG90aGVyIHNjcm9sbCBjb250ZXh0cyB3b3VsZCBub3QgYnViYmxlIHRvIHRoaXMgZXZlbnQgbGlzdGVuZXIuXG4gICAgICAvLyBDYXB0dXJlIGFsbG93cyB1cyB0byByZWFjdCB0byBhbGwgc2Nyb2xsIGNvbnRleHRzIGluIHRoaXMgRE9NLlxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0TWVudVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gT25seSB0aGUgb3V0ZXJtb3N0IG1lbnUgbmVlZHMgdG8gbGlzdGVuIHRvIHRoZSBiYWNrZHJvcCBjbGlja3NcbiAgICBpZiAoIXRoaXMuX2lzTmVzdGVkKCkpIHtcbiAgICAgIC8vIENsb3NlIG1lbnUgb24gYmFja2Ryb3AgY2xpY2tcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIsIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrLCB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBDbG9zZSBtZW51IGF0IGFueSBjbGljayBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IGluc2lkZSB0aGUgPHNiYi1tZW51PiB0aGF0IGJ1YmJsZXMgdG8gdGhlIGNvbnRhaW5lci5cbiAgcHJpdmF0ZSBfaW50ZXJhY3RpdmVFbGVtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKFxuICAgICAgSU5URVJBQ1RJVkVfRUxFTUVOVFMuaW5jbHVkZXModGFyZ2V0Lm5vZGVOYW1lKSAmJlxuICAgICAgIXRhcmdldC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgJiZcbiAgICAgICF0YXJnZXQubWF0Y2hlcygnOnN0YXRlKHNiYi1tZW51LXRyaWdnZXIpJykgJiZcbiAgICAgIHRhcmdldC5pZCAhPT0gJ3NiYi1tZW51X19iYWNrLWJ1dHRvbidcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2VBbGwoKTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbWVudS5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgbWVudSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJ3NiYi1tZW51Jyk7XG5cbiAgICAvLyBUaGUgcG9pbnRlciBkb3duIGlzIG9uIHRoZSBtZW51IG9yIG9uZSBvZiBpdHMgbmVzdGVkIG1lbnVzLlxuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSA9XG4gICAgICBpc0V2ZW50T25FbGVtZW50KHRoaXMuX21lbnUsIGV2ZW50KSB8fCB0aGlzLl9uZXN0ZWRNZW51cygpLnNvbWUoKGVsKSA9PiBtZW51ID09PSBlbCk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbWVudSBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIFRoZSBiYWNrZHJvcCBpcyBvbmx5IGxpc3RlbmVkIG9uIHRoZSBtYWluIG1lbnUgKG91dGVybW9zdCBtZW51KS5cbiAgICAvLyBUbyBjbG9zZS5cbiAgICAvLyAtIFRoZSBwb2ludGVyIGRvd24gYW5kIHVwIG5lZWQgdG8gYmUgb3V0c2lkZSB0aGUgbWVudS5cbiAgICAvLyAtIFRoZSB0YXJnZXQgc2hvdWxkIGJlIG5vdCBvbiBhIG5lc3RlZCBtZW51XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5fbWVudSwgZXZlbnQpICYmXG4gICAgICAhdGhpcy5fbmVzdGVkTWVudXMoKS5zb21lKChlbCkgPT4gZWwgPT09IHRhcmdldClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2VBbGwoKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqIENvbnZlcnRzIHRoZSBsaW5rZWQgbGlzdCBpbnRvIGFuIGFycmF5IG9mIFNiYk1lbnVFbGVtZW50LiAqL1xuICBwcml2YXRlIF9uZXN0ZWRNZW51cygpOiBTYmJNZW51RWxlbWVudFtdIHtcbiAgICBjb25zdCBtZW51czogU2JiTWVudUVsZW1lbnRbXSA9IFtdO1xuICAgIGxldCBjdXJyZW50ID0gdGhpcy5fbmVzdGVkTWVudTtcblxuICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICBtZW51cy5wdXNoKGN1cnJlbnQpO1xuICAgICAgY3VycmVudCA9IGN1cnJlbnQuX25lc3RlZE1lbnU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lbnVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGFyZW50TWVudSgpOiBTYmJNZW51RWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudD8uY2xvc2VzdCgnc2JiLW1lbnUnKSA/PyBudWxsO1xuICB9XG5cbiAgLyoqIFRoZSBvdXRlcm1vc3QgbWVudS4gKi9cbiAgcHJpdmF0ZSBfbWFpbk1lbnUoKTogU2JiTWVudUVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9pc05lc3RlZCgpID8gKHRoaXMuX3BhcmVudE1lbnUoKT8uX21haW5NZW51KCkgPz8gdGhpcykgOiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNOZXN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fcGFyZW50TWVudSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTmVzdGVkSW5lcnQoKTogdm9pZCB7XG4gICAgdGhpcy5faW5lcnRDb250cm9sbGVyLnJlc3RvcmVBbGxFeGVtcHRlZCgpO1xuICAgIHRoaXMuX21haW5NZW51KClcbiAgICAgIC5fbmVzdGVkTWVudXMoKVxuICAgICAgLmZvckVhY2goKG1lbnUpID0+IHRoaXMuX2luZXJ0Q29udHJvbGxlci5leGVtcHQobWVudSkpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgbmVzdGVkIG1lbnUgc2hvdWxkIGJlIGNsb3NlZC5cbiAgcHJpdmF0ZSBfaGFuZGxlTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBpc01vYmlsZSA9IHRoaXMuX2lzTW9iaWxlKCk7XG5cbiAgICAvLyBBbGwgbmVzdGVkIG1lbnVzIHNob3VsZCBjbG9zZSBpbiBkZXNrdG9wIG1vZGUgaWYgdGhlIGN1cnNvciBsYW5kZWQgb25cbiAgICAvLyBhbnl0aGluZyBvdGhlciB0aGFuIHRoZSBjb250YWluZXIsIHRoZSBjb250YWluZXIncyBzY3JvbGxiYXIgb3IgdGhlIHRyaWdnZXIgaXRzZWxmXG4gICAgaWYgKFxuICAgICAgIWlzTW9iaWxlICYmXG4gICAgICB0aGlzLl9uZXN0ZWRNZW51ICYmXG4gICAgICAhZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3NiYi1tZW51X19jb250ZW50JykgJiZcbiAgICAgICEoZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKSA9PT0gJ3RydWUnKVxuICAgICkge1xuICAgICAgdGhpcy5fbmVzdGVkTWVudS5jbG9zZSgpO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50Lm1hdGNoZXMoJzpzdGF0ZShzYmItbWVudS10cmlnZ2VyKScpICYmICFpc01vYmlsZSkge1xuICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBtZW51IHBvc2l0aW9uICh4LCB5KSB0byAnMCcgb25jZSB0aGUgbWVudSBpcyBjbG9zZWQgYW5kIHRoZSB0cmFuc2l0aW9uIGVuZGVkIHRvIHByZXZlbnQgdGhlXG4gIC8vIHZpZXdwb3J0IGZyb20gb3ZlcmZsb3dpbmcuIEFuZCBzZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBvbmNlIHRoZSBtZW51IGlzIG9wZW4uXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25NZW51QW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgfHwgZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tc2lkZXdheXMnKSAmJlxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnXG4gICAgKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnIHx8IGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZS1zaWRld2F5cycpICYmXG4gICAgICB0aGlzLnN0YXRlID09PSAnY2xvc2luZydcbiAgICApIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgbWVudSBwb3NpdGlvbiBhbmQgbWF4IGhlaWdodCBpZiB0aGUgYnJlYWtwb2ludCBpcyBsYXJnZS11bHRyYS5cbiAgcHJpdmF0ZSBfc2V0TWVudVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBsYXJnZVxuICAgIGlmICh0aGlzLl9pc01vYmlsZSgpIHx8ICF0aGlzLl9tZW51IHx8ICF0aGlzLl90cmlnZ2VyRWxlbWVudCB8fCB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51UG9zaXRpb24gPSAhdGhpcy5faXNOZXN0ZWQoKVxuICAgICAgPyBnZXRFbGVtZW50UG9zaXRpb24oXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLW1lbnVfX2NvbnRlbnQnKSEsXG4gICAgICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQsXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLW1lbnVfX2NvbnRhaW5lcicpISxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2ZXJ0aWNhbE9mZnNldDogTUVOVV9PRkZTRVQsXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgOiBnZXRFbGVtZW50UG9zaXRpb25Ib3Jpem9udGFsKFxuICAgICAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250ZW50JykhLFxuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LFxuICAgICAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250YWluZXInKSEsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaG9yaXpvbnRhbE9mZnNldDogTUVOVV9PRkZTRVQsXG4gICAgICAgICAgICB2ZXJ0aWNhbE9mZnNldDogTkVTVEVEX01FTlVfT0ZGU0VULFxuICAgICAgICAgICAgY29udGVudFNlbGVjdG9yOiAnLnNiYi1tZW51X19jb250ZW50JyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbWVudS1wb3NpdGlvbi14JywgYCR7bWVudVBvc2l0aW9uLmxlZnR9cHhgKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1tZW51LXBvc2l0aW9uLXknLCBgJHttZW51UG9zaXRpb24udG9wfXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbWVudS1tYXgtaGVpZ2h0JywgbWVudVBvc2l0aW9uLm1heEhlaWdodCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgLy8gTGlua3MgYW5kIGJ1dHRvbnMgYXJlIHRoZSBtb3N0IGV4cGVjdGVkIGNvbnRlbnRzIHdoaWNoIGhhdmUgYSBuZWdhdGl2ZSBwcm9wZXJ0eVxuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOnN0YXRlKHNiYi1saW5rKSwgOnN0YXRlKHNiYi1idXR0b24pJyk/LmZvckVhY2goKGVsOiBFbGVtZW50KSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKGVsKTtcbiAgICAgIChlbCBhcyBFbGVtZW50ICYgU2JiTmVnYXRpdmVNaXhpblR5cGUpLm5lZ2F0aXZlID0gIXRoaXMuX2RhcmtNb2RlQ29udHJvbGxlci5tYXRjaGVzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWFNYXRjaGVyLm1hdGNoZXModGhpcy5fbW9iaWxlQnJlYWtwb2ludCkgPz8gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1tZW51X19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbk1lbnVBbmltYXRpb25FbmR9XG4gICAgICAgICAgQG1vdXNlb3Zlcj0keyhlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLl9oYW5kbGVNb3VzZU92ZXIoZSl9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbWVudVwiXG4gICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX21lbnUgPSBlbCBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5faW50ZXJhY3RpdmVFbGVtZW50Q2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgQHNjcm9sbD0keyhlOiBFdmVudCkgPT4gZm9yd2FyZEV2ZW50KGUsIGRvY3VtZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLW1lbnVfX2NvbnRlbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDxzYmItZGl2aWRlcj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgICAgPHNiYi1tZW51LWJ1dHRvblxuICAgICAgICAgICAgICBpZD1cInNiYi1tZW51X19iYWNrLWJ1dHRvblwiXG4gICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuY2xvc2UoKX1cbiAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgJHtpMThuR29CYWNrW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgPC9zYmItbWVudS1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW1lbnUnOiBTYmJNZW51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
@@ -1,43 +0,0 @@
1
- import { html, unsafeCSS } from "lit";
2
- import { SbbElement, boxSizingStyles } from "./core.js";
3
- //#region src/elements/message/message.scss?inline
4
- var message_default = ":host {\n display: block;\n text-align: center;\n}\n\n::slotted(sbb-title[slot=title]) {\n margin: 0;\n}\n\n::slotted([slot=image]) {\n display: block;\n margin-inline: auto !important;\n margin-block: var(--sbb-message-image-margin-block) !important;\n width: 100%;\n}\n\n::slotted([slot=subtitle]) {\n color: var(--sbb-message-subtitle-color);\n font-size: var(--sbb-text-font-size-s);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n margin: 0;\n}\n\n::slotted([slot=legend]) {\n --sbb-text-font-size: var(--sbb-text-font-size-xs);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n padding: 0;\n color: var(--sbb-color-granite);\n color: light-dark(var(--sbb-color-granite), var(--sbb-color-cement));\n margin-block: var(--sbb-message-legend-margin-block);\n}\n\n::slotted([slot=action]) {\n margin-block: var(--sbb-message-action-margin-block);\n}";
5
- //#endregion
6
- //#region src/elements/message/message.component.ts
7
- /**
8
- * It displays a complex message combining a title, an image, an action and some content.
9
- *
10
- * @slot image - Use this slot to provide an `sbb-image` component.
11
- * @slot title - Use this slot to provide an `sbb-title`.
12
- * @slot subtitle - Use this slot to provide a subtitle, must be a paragraph.
13
- * @slot legend - Use this slot to provide a legend, must be a paragraph.
14
- * @slot action - Use this slot to provide an `sbb-secondary-button`.
15
- */
16
- var SbbMessageElement = class extends SbbElement {
17
- static {
18
- this.elementName = "sbb-message";
19
- }
20
- static {
21
- this.styles = [boxSizingStyles, unsafeCSS(message_default)];
22
- }
23
- _configureTitle(event) {
24
- const title = event.target.assignedElements().find((e) => e.localName === "sbb-title");
25
- if (title) {
26
- customElements.upgrade(title);
27
- title.visualLevel = "5";
28
- }
29
- }
30
- render() {
31
- return html`
32
- <slot name="image"></slot>
33
- <slot name="title" @slotchange=${this._configureTitle}></slot>
34
- <slot name="subtitle"></slot>
35
- <slot name="legend"></slot>
36
- <slot name="action"></slot>
37
- `;
38
- }
39
- };
40
- //#endregion
41
- export { SbbMessageElement as t };
42
-
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5jb21wb25lbnQtQ3JYdE1wcnIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lc3NhZ2UvbWVzc2FnZS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuOjpzbG90dGVkKHNiYi10aXRsZVtzbG90PSd0aXRsZSddKSB7XG4gIG1hcmdpbjogMDtcbn1cblxuOjpzbG90dGVkKFtzbG90PSdpbWFnZSddKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4taW5saW5lOiBhdXRvICFpbXBvcnRhbnQ7IC8vIG92ZXJyaWRlcyAnLnNiYi1maWd1cmUnIG1hcmdpblxuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1tZXNzYWdlLWltYWdlLW1hcmdpbi1ibG9jaykgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGVzICcuc2JiLWZpZ3VyZScgbWFyZ2luXG4gIHdpZHRoOiAxMDAlO1xufVxuXG46OnNsb3R0ZWQoW3Nsb3Q9J3N1YnRpdGxlJ10pIHtcbiAgY29sb3I6IHZhcigtLXNiYi1tZXNzYWdlLXN1YnRpdGxlLWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtcyk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgbWFyZ2luOiAwO1xufVxuXG46OnNsb3R0ZWQoW3Nsb3Q9J2xlZ2VuZCddKSB7XG4gIEBpbmNsdWRlIHNiYi5sZWdlbmQ7XG5cbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItbWVzc2FnZS1sZWdlbmQtbWFyZ2luLWJsb2NrKTtcbn1cblxuOjpzbG90dGVkKFtzbG90PSdhY3Rpb24nXSkge1xuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1tZXNzYWdlLWFjdGlvbi1tYXJnaW4tYmxvY2spO1xufVxuIiwiaW1wb3J0IHsgaHRtbCwgdW5zYWZlQ1NTLCB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgU2JiRWxlbWVudCwgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlRWxlbWVudCB9IGZyb20gJy4uL3RpdGxlLnB1cmUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9tZXNzYWdlLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGNvbXBsZXggbWVzc2FnZSBjb21iaW5pbmcgYSB0aXRsZSwgYW4gaW1hZ2UsIGFuIGFjdGlvbiBhbmQgc29tZSBjb250ZW50LlxuICpcbiAqIEBzbG90IGltYWdlIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItaW1hZ2VgIGNvbXBvbmVudC5cbiAqIEBzbG90IHRpdGxlIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItdGl0bGVgLlxuICogQHNsb3Qgc3VidGl0bGUgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYSBzdWJ0aXRsZSwgbXVzdCBiZSBhIHBhcmFncmFwaC5cbiAqIEBzbG90IGxlZ2VuZCAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhIGxlZ2VuZCwgbXVzdCBiZSBhIHBhcmFncmFwaC5cbiAqIEBzbG90IGFjdGlvbiAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhbiBgc2JiLXNlY29uZGFyeS1idXR0b25gLlxuICovXG5leHBvcnQgY2xhc3MgU2JiTWVzc2FnZUVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1tZXNzYWdlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlVGl0bGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGl0bGUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxTbG90RWxlbWVudClcbiAgICAgIC5hc3NpZ25lZEVsZW1lbnRzKClcbiAgICAgIC5maW5kKChlKTogZSBpcyBTYmJUaXRsZUVsZW1lbnQgPT4gZS5sb2NhbE5hbWUgPT09ICdzYmItdGl0bGUnKTtcbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUodGl0bGUpO1xuICAgICAgdGl0bGUudmlzdWFsTGV2ZWwgPSAnNSc7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2xvdCBuYW1lPVwiaW1hZ2VcIj48L3Nsb3Q+XG4gICAgICA8c2xvdCBuYW1lPVwidGl0bGVcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZVRpdGxlfT48L3Nsb3Q+XG4gICAgICA8c2xvdCBuYW1lPVwic3VidGl0bGVcIj48L3Nsb3Q+XG4gICAgICA8c2xvdCBuYW1lPVwibGVnZW5kXCI+PC9zbG90PlxuICAgICAgPHNsb3QgbmFtZT1cImFjdGlvblwiPjwvc2xvdD5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbWVzc2FnZSc6IFNiYk1lc3NhZ2VFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQ2dCQSxJQUFhLG9CQUFiLGNBQXVDLFdBQVU7O0FBQ2YsT0FBQSxjQUFzQjs7O0FBQy9CLE9BQUEsU0FBeUIsQ0FBQyxpQkFBaUIsVUFBVSxnQkFBTSxDQUFDOztDQUUzRSxnQkFBZ0IsT0FBWTtFQUNsQyxNQUFNLFFBQVMsTUFBTSxPQUNsQixrQkFBa0IsQ0FDbEIsTUFBTSxNQUE0QixFQUFFLGNBQWMsWUFBWTtBQUNqRSxNQUFJLE9BQU87QUFDVCxrQkFBZSxRQUFRLE1BQU07QUFDN0IsU0FBTSxjQUFjOzs7Q0FJTCxTQUFNO0FBQ3ZCLFNBQU8sSUFBSTs7dUNBRXdCLEtBQUssZ0JBQWUifQ==
@@ -1,93 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { boxSizingStyles, isLean } from "./core.js";
5
- import { html as html$1 } from "lit/static-html.js";
6
- import { SbbIconElement } from "./icon.pure.js";
7
- //#region src/elements/navigation/common/navigation-action.scss?inline
8
- var navigation_action_default = ":host {\n --sbb-navigation-action-color: var(--sbb-color-4-negative);\n --sbb-navigation-action-icon-display: none;\n display: block;\n outline: none !important;\n}\n\n:host(:is(:state(section-action),[state--section-action]):is(:state(action-active),[state--action-active]).sbb-active) {\n --sbb-navigation-action-icon-display: block;\n}\n\n:host(:is(:state(action-active),[state--action-active])) {\n --sbb-navigation-action-color: var(--sbb-color-5);\n}\n@media (forced-colors: active) {\n :host(:is(:state(action-active),[state--action-active])) {\n --sbb-navigation-action-color: Highlight;\n }\n}\n\nsbb-icon {\n display: var(--sbb-navigation-action-icon-display);\n position: absolute;\n inset-inline-start: calc((var(--sbb-size-icon-ui-small) + var(--sbb-spacing-fixed-1x)) * -1);\n inset-block-start: calc(1em * var(--sbb-typo-line-height-text) / 2);\n translate: 0 -50%;\n}\n\n@media (any-hover: hover) {\n :host(:hover) {\n --sbb-navigation-action-color: var(--sbb-color-5);\n }\n}\n@media (forced-colors: active) {\n :host(:is(:state(button),[state--button])) {\n --sbb-navigation-action-color: ButtonText;\n }\n}\n\n:is(.sbb-navigation-button, .sbb-navigation-link) {\n --sbb-title-font-size: var(--sbb-title-font-size-level-4-lean, var(--sbb-heading-font-size-4));\n margin-block: var(--sbb-title-margin-block, 0);\n margin-inline: 0;\n font-family: var(--sbb-typo-font-family);\n font-weight: bold;\n line-height: var(--sbb-title-line-height, var(--sbb-typo-line-height-heading));\n letter-spacing: var(--sbb-typo-letter-spacing-heading);\n font-size: var(--sbb-title-font-size);\n cursor: var(--sbb-cursor-pointer);\n position: relative;\n text-decoration: none;\n display: flex;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n transition: color var(--sbb-disable-animation-duration, var(--sbb-animation-duration-3x)) ease;\n hyphens: auto;\n text-align: left;\n color: var(--sbb-navigation-action-color);\n outline: none;\n}\n@media (forced-colors: active) {\n :is(.sbb-navigation-button, .sbb-navigation-link) {\n transition: none;\n }\n}\n:host([size=m]) :is(.sbb-navigation-button, .sbb-navigation-link) {\n --sbb-text-font-size: var(--sbb-text-font-size-s);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n font-weight: bold;\n}\n:host([size=s]) :is(.sbb-navigation-button, .sbb-navigation-link) {\n --sbb-text-font-size: var(--sbb-text-font-size-xxs);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n font-weight: bold;\n}\n:host(:focus-visible) :is(.sbb-navigation-button, .sbb-navigation-link), :is(.sbb-navigation-button, .sbb-navigation-link):focus-visible {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n border-radius: calc(var(--sbb-border-radius-4x) - var(--sbb-focus-outline-offset));\n}";
9
- //#endregion
10
- //#region src/elements/navigation/common/navigation-action-common.ts
11
- var SbbNavigationActionCommonElementMixin = (superClass) => {
12
- return (() => {
13
- let _classSuper = superClass;
14
- let _size_decorators;
15
- let _size_initializers = [];
16
- let _size_extraInitializers = [];
17
- return class SbbNavigationActionCommonElement extends _classSuper {
18
- static {
19
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
20
- _size_decorators = [property({ reflect: true })];
21
- __esDecorate(this, null, _size_decorators, {
22
- kind: "accessor",
23
- name: "size",
24
- static: false,
25
- private: false,
26
- access: {
27
- has: (obj) => "size" in obj,
28
- get: (obj) => obj.size,
29
- set: (obj, value) => {
30
- obj.size = value;
31
- }
32
- },
33
- metadata: _metadata
34
- }, _size_initializers, _size_extraInitializers);
35
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
36
- enumerable: true,
37
- configurable: true,
38
- writable: true,
39
- value: _metadata
40
- });
41
- }
42
- static {
43
- this.elementDependencies = [SbbIconElement];
44
- }
45
- static {
46
- this.styles = [boxSizingStyles, unsafeCSS(navigation_action_default)];
47
- }
48
- #size_accessor_storage;
49
- /**
50
- * Action size variant, either s, m or l.
51
- * @default 'l' / 's' (lean)
52
- */
53
- get size() {
54
- return this.#size_accessor_storage;
55
- }
56
- set size(value) {
57
- this.#size_accessor_storage = value;
58
- }
59
- /** The navigation marker in which the action is nested. */
60
- get marker() {
61
- return this._navigationMarker;
62
- }
63
- /** The section in which the action is nested. */
64
- get section() {
65
- return this._navigationSection;
66
- }
67
- constructor(...args) {
68
- super(...args);
69
- this.#size_accessor_storage = __runInitializers(this, _size_initializers, isLean() ? "s" : "l");
70
- /** The section that is being controlled by the action, if any. */
71
- this.connectedSection = __runInitializers(this, _size_extraInitializers);
72
- this._navigationMarker = null;
73
- this._navigationSection = null;
74
- this.addEventListener?.("click", () => {
75
- if (!this.matches(":is(:state(action-active),[state--action-active])") && this._navigationMarker && !this.connectedSection) this.marker?.select(this);
76
- });
77
- }
78
- connectedCallback() {
79
- super.connectedCallback();
80
- this._navigationMarker = this.closest("sbb-navigation-marker");
81
- this._navigationSection = this.closest("sbb-navigation-section");
82
- this.toggleState("section-action", !!this._navigationSection);
83
- }
84
- renderTemplate() {
85
- return html$1`<sbb-icon name="dash-small"></sbb-icon> <slot></slot>`;
86
- }
87
- };
88
- })();
89
- };
90
- //#endregion
91
- export { SbbNavigationActionCommonElementMixin as t };
92
-
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1hY3Rpb24tY29tbW9uLVpCaXYwWGl3LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL2NvbW1vbi9uYXZpZ2F0aW9uLWFjdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL2NvbW1vbi9uYXZpZ2F0aW9uLWFjdGlvbi1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTQtbmVnYXRpdmUpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1pY29uLWRpc3BsYXk6IG5vbmU7XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy8gVXNlICFpbXBvcnRhbnQgaGVyZSB0byBub3QgaW50ZXJmZXJlIHdpdGggRmlyZWZveCBmb2N1cyByaW5nIGRlZmluaXRpb25cbiAgLy8gd2hpY2ggYXBwZWFycyBpbiBub3JtYWxpemUgQ1NTIG9mIHNldmVyYWwgZnJhbWV3b3Jrcy5cbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG46aG9zdCg6c3RhdGUoc2VjdGlvbi1hY3Rpb24pOnN0YXRlKGFjdGlvbi1hY3RpdmUpLnNiYi1hY3RpdmUpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24taWNvbi1kaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKGFjdGlvbi1hY3RpdmUpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWNvbG9yOiBIaWdobGlnaHQ7XG4gIH1cbn1cblxuc2JiLWljb24ge1xuICBkaXNwbGF5OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24taWNvbi1kaXNwbGF5KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoKHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpICsgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpKSAqIC0xKTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IGNhbGMoMWVtICogKHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpIC8gMikpO1xuICB0cmFuc2xhdGU6IDAgLTUwJTtcbn1cblxuQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICA6aG9zdCg6aG92ZXIpIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShidXR0b24pKSB7XG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcjogQnV0dG9uVGV4dDtcbiAgfVxufVxuXG46aXMoLnNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgLnNiYi1uYXZpZ2F0aW9uLWxpbmspIHtcbiAgQGluY2x1ZGUgc2JiLnRpdGxlLTQoJGV4Y2x1ZGUtc3BhY2luZzogdHJ1ZSk7XG5cbiAgY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbiwgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeCkpIGVhc2U7XG4gIGh5cGhlbnM6IGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tY29sb3IpO1xuICBvdXRsaW5lOiBub25lO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgOmhvc3QoW3NpemU9J20nXSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLnRleHQtcy0tYm9sZDtcbiAgfVxuXG4gIDpob3N0KFtzaXplPSdzJ10pICYge1xuICAgIEBpbmNsdWRlIHNiYi50ZXh0LXh4cy0tYm9sZDtcbiAgfVxuXG4gIC8vIEhhbmRsZSBmb2N1cyBvbiB0aGUgaG9zdCAoYnV0dG9uIHZhcmlhbnQpXG4gIDpob3N0KDpmb2N1cy12aXNpYmxlKSAmLFxuICAvLyBIYW5kbGUgZm9jdXMgb24gdGhlIGFjdGlvbiAobGluayB2YXJpYW50KVxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy00eCkgLSB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1vZmZzZXQpKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgdW5zYWZlQ1NTLCB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgU2JiQWN0aW9uQmFzZUVsZW1lbnQsXG4gIFNiYkVsZW1lbnRDb25zdHJ1Y3RvcixcbiAgU2JiRWxlbWVudFR5cGUsXG4gIEFic3RyYWN0Q29uc3RydWN0b3IsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgaXNMZWFuLCBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWJ1dHRvbi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25NYXJrZXJFbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1tYXJrZXIvbmF2aWdhdGlvbi1tYXJrZXIuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLWFjdGlvbi5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNiYk5hdmlnYXRpb25BY3Rpb25TaXplID0gJ3MnIHwgJ20nIHwgJ2wnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBzaXplOiBTYmJOYXZpZ2F0aW9uQWN0aW9uU2l6ZTtcbiAgcHVibGljIGdldCBtYXJrZXIoKTogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgZ2V0IHNlY3Rpb24oKTogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbDtcbiAgcHVibGljIGNvbm5lY3RlZFNlY3Rpb246IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudCB8IHVuZGVmaW5lZDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50PiAmIFNiYkVsZW1lbnRDb25zdHJ1Y3Rvcixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJJY29uRWxlbWVudF07XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgICAvKipcbiAgICAgKiBBY3Rpb24gc2l6ZSB2YXJpYW50LCBlaXRoZXIgcywgbSBvciBsLlxuICAgICAqIEBkZWZhdWx0ICdsJyAvICdzJyAobGVhbilcbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiBTYmJOYXZpZ2F0aW9uQWN0aW9uU2l6ZSA9IGlzTGVhbigpXG4gICAgICA/ICdzJ1xuICAgICAgOiAnbCc7XG5cbiAgICAvKiogVGhlIHNlY3Rpb24gdGhhdCBpcyBiZWluZyBjb250cm9sbGVkIGJ5IHRoZSBhY3Rpb24sIGlmIGFueS4gKi9cbiAgICBwdWJsaWMgY29ubmVjdGVkU2VjdGlvbj86IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcblxuICAgIC8qKiBUaGUgbmF2aWdhdGlvbiBtYXJrZXIgaW4gd2hpY2ggdGhlIGFjdGlvbiBpcyBuZXN0ZWQuICovXG4gICAgcHVibGljIGdldCBtYXJrZXIoKTogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uTWFya2VyO1xuICAgIH1cblxuICAgIC8qKiBUaGUgc2VjdGlvbiBpbiB3aGljaCB0aGUgYWN0aW9uIGlzIG5lc3RlZC4gKi9cbiAgICBwdWJsaWMgZ2V0IHNlY3Rpb24oKTogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5fbmF2aWdhdGlvblNlY3Rpb247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmF2aWdhdGlvbk1hcmtlcjogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9uYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXRoaXMubWF0Y2hlcygnOnN0YXRlKGFjdGlvbi1hY3RpdmUpJykgJiZcbiAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uTWFya2VyICYmXG4gICAgICAgICAgIXRoaXMuY29ubmVjdGVkU2VjdGlvblxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm1hcmtlcj8uc2VsZWN0KFxuICAgICAgICAgICAgdGhpcyBhcyB1bmtub3duIGFzIFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbmVzdGVkIGluc2lkZSBhIG5hdmlnYXRpb24gbWFya2VyLlxuICAgICAgdGhpcy5fbmF2aWdhdGlvbk1hcmtlciA9IHRoaXMuY2xvc2VzdCgnc2JiLW5hdmlnYXRpb24tbWFya2VyJyk7XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbmVzdGVkIGluc2lkZSBhIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICAgIHRoaXMuX25hdmlnYXRpb25TZWN0aW9uID0gdGhpcy5jbG9zZXN0KCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdzZWN0aW9uLWFjdGlvbicsICEhdGhpcy5fbmF2aWdhdGlvblNlY3Rpb24pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGA8c2JiLWljb24gbmFtZT1cImRhc2gtc21hbGxcIj48L3NiYi1pY29uPiA8c2xvdD48L3Nsb3Q+YDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FDNkJBLElBQWEseUNBR1gsZUFDc0U7QUE4RHRFLGVBN0QrQztvQkFDckM7Ozs7ZUFESyx5Q0FDTCxZQUFVOzs7d0JBVWpCLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0FBQUMsaUJBQUEsTUFBQSxNQUFBLGtCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsVUFBQTtNQUFBLE1BQUEsUUFBQSxJQUFnQjtNQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBSixPQUFJOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsb0JBQUEsd0JBQUE7Ozs7Ozs7OztBQVAxQixTQUFBLHNCQUF3QyxDQUFDLGVBQWU7OztBQUNqRSxTQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsMEJBQU0sQ0FBQzs7R0FNN0M7Ozs7O0dBQUEsSUFBZ0IsT0FBSTtBQUFBLFdBQUEsTUFBQTs7R0FBcEIsSUFBZ0IsS0FBSSxPQUFBO0FBQUEsVUFBQSx3QkFBQTs7O0dBUWpELElBQVcsU0FBTTtBQUNmLFdBQU8sS0FBSzs7O0dBSWQsSUFBVyxVQUFPO0FBQ2hCLFdBQU8sS0FBSzs7R0FNZCxZQUFzQixHQUFHLE1BQVc7QUFDbEMsVUFBTSxHQUFHLEtBQUs7QUFyQjZCLFVBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFBZ0MsUUFBUSxHQUNqRixNQUNBLElBQUc7O0FBR0EsU0FBQSxtQkFBZ0Isa0JBQUEsTUFBQSx3QkFBQTtBQVlmLFNBQUEsb0JBQXVEO0FBQ3ZELFNBQUEscUJBQXlEO0FBSS9ELFNBQUssbUJBQW1CLGVBQWM7QUFDcEMsU0FDRSxDQUFDLEtBQUssUUFBUSxvREFBd0IsSUFDdEMsS0FBSyxxQkFDTCxDQUFDLEtBQUssaUJBRU4sTUFBSyxRQUFRLE9BQ1gsS0FDRDtNQUVIOztHQUdZLG9CQUFpQjtBQUMvQixVQUFNLG1CQUFtQjtBQUd6QixTQUFLLG9CQUFvQixLQUFLLFFBQVEsd0JBQXdCO0FBRzlELFNBQUsscUJBQXFCLEtBQUssUUFBUSx5QkFBeUI7QUFDaEUsU0FBSyxZQUFZLGtCQUFrQixDQUFDLENBQUMsS0FBSyxtQkFBbUI7O0dBRzVDLGlCQUFjO0FBQy9CLFdBQU8sTUFBSSJ9