@sbb-esta/lyne-elements 1.9.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/accordion/accordion.d.ts +5 -5
  2. package/accordion/accordion.d.ts.map +1 -1
  3. package/accordion.js +17 -17
  4. package/action-group/action-group.d.ts +1 -1
  5. package/action-group/action-group.d.ts.map +1 -1
  6. package/action-group.js +3 -3
  7. package/alert/alert/alert.d.ts +1 -1
  8. package/alert/alert/alert.d.ts.map +1 -1
  9. package/alert/alert.js +3 -3
  10. package/autocomplete/autocomplete-base-element.d.ts +1 -1
  11. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  12. package/autocomplete/autocomplete.d.ts.map +1 -1
  13. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  14. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -4
  15. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  16. package/autocomplete-grid/autocomplete-grid-button.js +32 -28
  17. package/autocomplete-grid/autocomplete-grid-option.js +1 -1
  18. package/autocomplete-grid/autocomplete-grid.js +24 -25
  19. package/autocomplete.js +28 -29
  20. package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts +0 -1
  21. package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  22. package/breadcrumb/breadcrumb-group.js +25 -24
  23. package/button/button/button.d.ts +1 -1
  24. package/button/button-link/button-link.d.ts +1 -1
  25. package/button/button-link.js +14 -14
  26. package/button/common.js +5 -5
  27. package/button/mini-button/mini-button.d.ts +1 -1
  28. package/button/secondary-button/secondary-button.d.ts +1 -1
  29. package/button/secondary-button-link/secondary-button-link.d.ts +1 -1
  30. package/button/secondary-button-link.js +15 -15
  31. package/button/tertiary-button/tertiary-button.d.ts +1 -1
  32. package/button/tertiary-button-link/tertiary-button-link.d.ts +1 -1
  33. package/button/tertiary-button-link.js +12 -12
  34. package/button/transparent-button/transparent-button.d.ts +1 -1
  35. package/button/transparent-button-link/transparent-button-link.d.ts +1 -1
  36. package/button/transparent-button-link.js +15 -15
  37. package/calendar/calendar.d.ts +2 -2
  38. package/calendar/calendar.d.ts.map +1 -1
  39. package/calendar.js +5 -4
  40. package/card/card-badge/card-badge.d.ts.map +1 -1
  41. package/card/card-badge.js +7 -9
  42. package/card/common/card-action-common.d.ts.map +1 -1
  43. package/card/common.js +24 -25
  44. package/clock/clock.d.ts +2 -2
  45. package/clock/clock.d.ts.map +1 -1
  46. package/container/sticky-bar/sticky-bar.d.ts +0 -1
  47. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  48. package/container/sticky-bar.js +20 -20
  49. package/core/a11y/arrow-navigation.d.ts.map +1 -1
  50. package/core/a11y/focus-visible-within-controller.d.ts +1 -1
  51. package/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
  52. package/core/a11y/input-modality-detector.d.ts +2 -2
  53. package/core/a11y/input-modality-detector.d.ts.map +1 -1
  54. package/core/a11y.js +49 -50
  55. package/core/base-elements/action-base-element.d.ts +2 -0
  56. package/core/base-elements/action-base-element.d.ts.map +1 -1
  57. package/core/base-elements/button-base-element.d.ts +1 -1
  58. package/core/base-elements/button-base-element.d.ts.map +1 -1
  59. package/core/base-elements.js +47 -42
  60. package/core/controllers/language-controller.d.ts.map +1 -1
  61. package/core/controllers/slot-state-controller.d.ts +1 -1
  62. package/core/controllers/slot-state-controller.d.ts.map +1 -1
  63. package/core/controllers.js +22 -23
  64. package/core/dom/get-document-writing-mode.d.ts +3 -0
  65. package/core/dom/get-document-writing-mode.d.ts.map +1 -1
  66. package/core/mixins/disabled-mixin.d.ts +14 -1
  67. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  68. package/core/mixins.js +132 -114
  69. package/core/observers/intersection-observer.d.ts +6 -0
  70. package/core/observers/intersection-observer.d.ts.map +1 -1
  71. package/core/observers/mutation-observer.d.ts +6 -0
  72. package/core/observers/mutation-observer.d.ts.map +1 -1
  73. package/core/observers/resize-observer.d.ts +6 -0
  74. package/core/observers/resize-observer.d.ts.map +1 -1
  75. package/core/styles/core.scss +23 -0
  76. package/core/styles/mixins/overlay.scss +2 -2
  77. package/core/styles/mixins/panel.scss +0 -2
  78. package/core/styles/mixins/table.scss +11 -0
  79. package/core/styles/mixins/typo.scss +0 -30
  80. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +1 -0
  81. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +2 -1
  82. package/core/styles/table.scss +6 -1
  83. package/core.css +25 -14
  84. package/custom-elements.json +1566 -385
  85. package/datepicker/datepicker/datepicker.d.ts +1 -1
  86. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  87. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  88. package/datepicker/datepicker-toggle.js +13 -12
  89. package/datepicker/datepicker.js +35 -35
  90. package/development/accordion/accordion.d.ts +5 -5
  91. package/development/accordion/accordion.d.ts.map +1 -1
  92. package/development/accordion.js +25 -38
  93. package/development/action-group/action-group.d.ts +1 -1
  94. package/development/action-group/action-group.d.ts.map +1 -1
  95. package/development/action-group.js +8 -21
  96. package/development/alert/alert/alert.d.ts +1 -1
  97. package/development/alert/alert/alert.d.ts.map +1 -1
  98. package/development/alert/alert-group.js +2 -15
  99. package/development/alert/alert.js +6 -19
  100. package/development/autocomplete/autocomplete-base-element.d.ts +1 -1
  101. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  102. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  103. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  104. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -4
  105. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  106. package/development/autocomplete-grid/autocomplete-grid-button.js +18 -29
  107. package/development/autocomplete-grid/autocomplete-grid-cell.js +2 -15
  108. package/development/autocomplete-grid/autocomplete-grid-option.js +4 -17
  109. package/development/autocomplete-grid/autocomplete-grid-row.js +2 -15
  110. package/development/autocomplete-grid/autocomplete-grid.js +7 -8
  111. package/development/autocomplete.js +10 -24
  112. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts +0 -1
  113. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  114. package/development/breadcrumb/breadcrumb-group.js +10 -22
  115. package/development/breadcrumb/breadcrumb.js +2 -15
  116. package/development/button/button/button.d.ts +1 -1
  117. package/development/button/button-link/button-link.d.ts +1 -1
  118. package/development/button/button-link.js +3 -3
  119. package/development/button/common.js +2 -17
  120. package/development/button/mini-button/mini-button.d.ts +1 -1
  121. package/development/button/mini-button-group.js +2 -15
  122. package/development/button/mini-button.js +2 -15
  123. package/development/button/secondary-button/secondary-button.d.ts +1 -1
  124. package/development/button/secondary-button-link/secondary-button-link.d.ts +1 -1
  125. package/development/button/secondary-button-link.js +3 -3
  126. package/development/button/tertiary-button/tertiary-button.d.ts +1 -1
  127. package/development/button/tertiary-button-link/tertiary-button-link.d.ts +1 -1
  128. package/development/button/tertiary-button-link.js +3 -3
  129. package/development/button/transparent-button/transparent-button.d.ts +1 -1
  130. package/development/button/transparent-button-link/transparent-button-link.d.ts +1 -1
  131. package/development/button/transparent-button-link.js +3 -3
  132. package/development/calendar/calendar.d.ts +2 -2
  133. package/development/calendar/calendar.d.ts.map +1 -1
  134. package/development/calendar.js +7 -19
  135. package/development/card/card-badge/card-badge.d.ts.map +1 -1
  136. package/development/card/card-badge.js +4 -19
  137. package/development/card/card.js +2 -15
  138. package/development/card/common/card-action-common.d.ts.map +1 -1
  139. package/development/card/common.js +9 -24
  140. package/development/checkbox/checkbox-group.js +2 -15
  141. package/development/checkbox/checkbox.js +2 -15
  142. package/development/checkbox/common.js +1 -14
  143. package/development/chip.js +2 -15
  144. package/development/clock/clock.d.ts +2 -2
  145. package/development/clock/clock.d.ts.map +1 -1
  146. package/development/clock.js +2 -15
  147. package/development/container/container.js +1 -14
  148. package/development/container/sticky-bar/sticky-bar.d.ts +0 -1
  149. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  150. package/development/container/sticky-bar.js +9 -23
  151. package/development/core/a11y/arrow-navigation.d.ts.map +1 -1
  152. package/development/core/a11y/focus-visible-within-controller.d.ts +1 -1
  153. package/development/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
  154. package/development/core/a11y/input-modality-detector.d.ts +2 -2
  155. package/development/core/a11y/input-modality-detector.d.ts.map +1 -1
  156. package/development/core/a11y.js +7 -8
  157. package/development/core/base-elements/action-base-element.d.ts +2 -0
  158. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  159. package/development/core/base-elements/button-base-element.d.ts +1 -1
  160. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  161. package/development/core/base-elements.js +17 -5
  162. package/development/core/controllers/language-controller.d.ts.map +1 -1
  163. package/development/core/controllers/slot-state-controller.d.ts +1 -1
  164. package/development/core/controllers/slot-state-controller.d.ts.map +1 -1
  165. package/development/core/controllers.js +9 -4
  166. package/development/core/dom/get-document-writing-mode.d.ts +3 -0
  167. package/development/core/dom/get-document-writing-mode.d.ts.map +1 -1
  168. package/development/core/dom.js +1 -1
  169. package/development/core/mixins/disabled-mixin.d.ts +14 -1
  170. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  171. package/development/core/mixins.js +48 -23
  172. package/development/core/observers/intersection-observer.d.ts +6 -0
  173. package/development/core/observers/intersection-observer.d.ts.map +1 -1
  174. package/development/core/observers/mutation-observer.d.ts +6 -0
  175. package/development/core/observers/mutation-observer.d.ts.map +1 -1
  176. package/development/core/observers/resize-observer.d.ts +6 -0
  177. package/development/core/observers/resize-observer.d.ts.map +1 -1
  178. package/development/core/observers.js +1 -1
  179. package/development/datepicker/datepicker/datepicker.d.ts +1 -1
  180. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  181. package/development/datepicker/datepicker-next-day.js +2 -15
  182. package/development/datepicker/datepicker-previous-day.js +2 -15
  183. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  184. package/development/datepicker/datepicker-toggle.js +9 -21
  185. package/development/datepicker/datepicker.js +8 -21
  186. package/development/dialog/dialog/dialog.d.ts +0 -1
  187. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  188. package/development/dialog/dialog-actions.js +2 -15
  189. package/development/dialog/dialog-content.js +2 -15
  190. package/development/dialog/dialog-title.js +2 -15
  191. package/development/dialog/dialog.js +12 -25
  192. package/development/divider.js +2 -15
  193. package/development/expansion-panel/expansion-panel-content.js +2 -15
  194. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +1 -1
  195. package/development/expansion-panel/expansion-panel-header.js +3 -15
  196. package/development/expansion-panel/expansion-panel.js +2 -15
  197. package/development/file-selector/file-selector.d.ts +4 -4
  198. package/development/file-selector/file-selector.d.ts.map +1 -1
  199. package/development/file-selector.js +2 -17
  200. package/development/flip-card/flip-card-details/flip-card-details.d.ts +2 -5
  201. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  202. package/development/flip-card/flip-card-details.js +11 -36
  203. package/development/flip-card/flip-card-summary.js +2 -15
  204. package/development/flip-card/flip-card.js +2 -15
  205. package/development/footer.js +2 -15
  206. package/development/form-error.js +2 -15
  207. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  208. package/development/form-field/form-field-clear.js +2 -15
  209. package/development/form-field/form-field.js +11 -25
  210. package/development/header/common.js +43 -35
  211. package/development/header/header/header.d.ts +2 -0
  212. package/development/header/header/header.d.ts.map +1 -1
  213. package/development/header/header.js +13 -15
  214. package/development/icon/icon.d.ts +6 -0
  215. package/development/icon/icon.d.ts.map +1 -1
  216. package/development/icon.js +10 -15
  217. package/development/image.js +4 -17
  218. package/development/journey-header/journey-header.d.ts.map +1 -1
  219. package/development/journey-header.js +4 -18
  220. package/development/lead-container.js +2 -15
  221. package/development/link/block-link-button/block-link-button.d.ts +1 -1
  222. package/development/link/common.js +4 -43
  223. package/development/link/link-button/link-button.d.ts +1 -1
  224. package/development/link-list/common.js +2 -15
  225. package/development/link-list/link-list-anchor.js +2 -15
  226. package/development/link-list/link-list.js +2 -15
  227. package/development/loading-indicator.js +2 -15
  228. package/development/logo.js +3 -18
  229. package/development/map-container/map-container.d.ts +8 -5
  230. package/development/map-container/map-container.d.ts.map +1 -1
  231. package/development/map-container.js +32 -48
  232. package/development/menu/common/menu-action-common.d.ts +1 -2
  233. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  234. package/development/menu/common.js +2 -15
  235. package/development/menu/menu/menu.d.ts.map +1 -1
  236. package/development/menu/menu-button/menu-button.d.ts +1 -1
  237. package/development/menu/menu-link/menu-link.d.ts +1 -1
  238. package/development/menu/menu-link/menu-link.d.ts.map +1 -1
  239. package/development/menu/menu-link.js +5 -2
  240. package/development/menu/menu.js +3 -16
  241. package/development/message.js +2 -15
  242. package/development/navigation/common.js +2 -17
  243. package/development/navigation/navigation/navigation.d.ts +1 -1
  244. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  245. package/development/navigation/navigation-list.js +2 -15
  246. package/development/navigation/navigation-marker/navigation-marker.d.ts +1 -2
  247. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  248. package/development/navigation/navigation-marker.js +9 -31
  249. package/development/navigation/navigation-section.js +2 -19
  250. package/development/navigation/navigation.js +14 -24
  251. package/development/notification/notification.d.ts +0 -1
  252. package/development/notification/notification.d.ts.map +1 -1
  253. package/development/notification.js +12 -27
  254. package/development/option/optgroup/optgroup-base-element.d.ts +2 -4
  255. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  256. package/development/option/optgroup.js +10 -28
  257. package/development/option/option/option-base-element.d.ts +14 -7
  258. package/development/option/option/option-base-element.d.ts.map +1 -1
  259. package/development/option/option.js +19 -29
  260. package/development/overlay/overlay-base-element.d.ts +1 -1
  261. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  262. package/development/overlay.js +2 -15
  263. package/development/popover/popover-trigger/popover-trigger.d.ts +1 -1
  264. package/development/popover/popover-trigger.js +2 -15
  265. package/development/popover/popover.js +2 -15
  266. package/development/radio-button/common.js +2 -15
  267. package/development/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  268. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  269. package/development/radio-button/radio-button-group.js +9 -22
  270. package/development/radio-button/radio-button.js +2 -15
  271. package/development/screen-reader-only.js +2 -15
  272. package/development/select/select.d.ts.map +1 -1
  273. package/development/select.js +33 -47
  274. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
  275. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  276. package/development/selection-expansion-panel.js +40 -19
  277. package/development/signet/signet.d.ts +4 -1
  278. package/development/signet/signet.d.ts.map +1 -1
  279. package/development/signet.js +38 -22
  280. package/development/skiplink-list.js +2 -15
  281. package/development/slider/slider.d.ts.map +1 -1
  282. package/development/slider.js +12 -16
  283. package/development/status.js +2 -15
  284. package/development/stepper/step/step.d.ts +1 -2
  285. package/development/stepper/step/step.d.ts.map +1 -1
  286. package/development/stepper/step-label/step-label.d.ts +6 -6
  287. package/development/stepper/step-label/step-label.d.ts.map +1 -1
  288. package/development/stepper/step-label.js +31 -44
  289. package/development/stepper/step.js +10 -28
  290. package/development/stepper/stepper/stepper.d.ts +3 -3
  291. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  292. package/development/stepper/stepper.js +2 -15
  293. package/development/table/table-wrapper/table-wrapper.d.ts +0 -1
  294. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  295. package/development/table/table-wrapper.js +8 -21
  296. package/development/tabs/tab-group/tab-group.d.ts +4 -5
  297. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  298. package/development/tabs/tab-group.js +39 -51
  299. package/development/tabs/tab-label.js +2 -19
  300. package/development/tabs/tab.js +1 -14
  301. package/development/tag/tag/tag.d.ts +1 -1
  302. package/development/tag/tag-group.js +2 -15
  303. package/development/tag/tag.js +2 -15
  304. package/development/teaser-hero.js +3 -23
  305. package/development/teaser-product/common.js +2 -15
  306. package/development/teaser-product/teaser-product.js +3 -16
  307. package/development/teaser.js +2 -15
  308. package/development/time-input.js +2 -15
  309. package/development/timetable-occupancy-icon.js +2 -15
  310. package/development/timetable-occupancy.js +2 -15
  311. package/development/title.js +3 -41
  312. package/development/toast.js +2 -17
  313. package/development/toggle/toggle/toggle.d.ts +2 -3
  314. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  315. package/development/toggle/toggle-option.js +2 -15
  316. package/development/toggle/toggle.js +29 -42
  317. package/development/toggle-check.js +1 -14
  318. package/development/train/train-blocked-passage.js +2 -15
  319. package/development/train/train-formation/train-formation.d.ts +1 -2
  320. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  321. package/development/train/train-formation.js +11 -22
  322. package/development/train/train-wagon.js +2 -17
  323. package/development/train/train.js +2 -15
  324. package/development/visual-checkbox.js +2 -15
  325. package/dialog/dialog/dialog.d.ts +0 -1
  326. package/dialog/dialog/dialog.d.ts.map +1 -1
  327. package/dialog/dialog.js +17 -18
  328. package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +1 -1
  329. package/expansion-panel/expansion-panel-header.js +5 -5
  330. package/file-selector/file-selector.d.ts +4 -4
  331. package/file-selector/file-selector.d.ts.map +1 -1
  332. package/file-selector.js +1 -1
  333. package/flip-card/flip-card-details/flip-card-details.d.ts +2 -5
  334. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  335. package/flip-card/flip-card-details.js +20 -28
  336. package/form-field/form-field/form-field.d.ts.map +1 -1
  337. package/form-field/form-field.js +26 -27
  338. package/header/common.js +3 -3
  339. package/header/header/header.d.ts +2 -0
  340. package/header/header/header.d.ts.map +1 -1
  341. package/header/header.js +21 -18
  342. package/icon/icon.d.ts +6 -0
  343. package/icon/icon.d.ts.map +1 -1
  344. package/icon.js +27 -19
  345. package/image.js +2 -2
  346. package/journey-header/journey-header.d.ts.map +1 -1
  347. package/journey-header.js +14 -15
  348. package/link/block-link-button/block-link-button.d.ts +1 -1
  349. package/link/link-button/link-button.d.ts +1 -1
  350. package/lists.css +0 -13
  351. package/logo.js +1 -1
  352. package/map-container/map-container.d.ts +8 -5
  353. package/map-container/map-container.d.ts.map +1 -1
  354. package/map-container.js +35 -37
  355. package/menu/common/menu-action-common.d.ts +1 -2
  356. package/menu/common/menu-action-common.d.ts.map +1 -1
  357. package/menu/menu/menu.d.ts.map +1 -1
  358. package/menu/menu-button/menu-button.d.ts +1 -1
  359. package/menu/menu-link/menu-link.d.ts +1 -1
  360. package/menu/menu-link/menu-link.d.ts.map +1 -1
  361. package/menu/menu-link.js +15 -12
  362. package/menu/menu.js +1 -1
  363. package/navigation/common.js +1 -1
  364. package/navigation/navigation/navigation.d.ts +1 -1
  365. package/navigation/navigation/navigation.d.ts.map +1 -1
  366. package/navigation/navigation-marker/navigation-marker.d.ts +1 -2
  367. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  368. package/navigation/navigation-marker.js +17 -22
  369. package/navigation/navigation-section.js +1 -1
  370. package/navigation/navigation.js +40 -34
  371. package/notification/notification.d.ts +0 -1
  372. package/notification/notification.d.ts.map +1 -1
  373. package/notification.js +17 -18
  374. package/option/optgroup/optgroup-base-element.d.ts +2 -4
  375. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  376. package/option/optgroup.js +31 -33
  377. package/option/option/option-base-element.d.ts +14 -7
  378. package/option/option/option-base-element.d.ts.map +1 -1
  379. package/option/option.js +45 -40
  380. package/overlay/overlay-base-element.d.ts +1 -1
  381. package/overlay/overlay-base-element.d.ts.map +1 -1
  382. package/package.json +2 -1
  383. package/popover/popover-trigger/popover-trigger.d.ts +1 -1
  384. package/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  385. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  386. package/radio-button/radio-button-group.js +5 -5
  387. package/select/select.d.ts.map +1 -1
  388. package/select.js +37 -38
  389. package/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
  390. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  391. package/selection-expansion-panel.js +71 -49
  392. package/signet/signet.d.ts +4 -1
  393. package/signet/signet.d.ts.map +1 -1
  394. package/signet.js +34 -23
  395. package/slider/slider.d.ts.map +1 -1
  396. package/slider.js +5 -5
  397. package/standard-theme.css +58 -23
  398. package/stepper/step/step.d.ts +1 -2
  399. package/stepper/step/step.d.ts.map +1 -1
  400. package/stepper/step-label/step-label.d.ts +6 -6
  401. package/stepper/step-label/step-label.d.ts.map +1 -1
  402. package/stepper/step-label.js +20 -20
  403. package/stepper/step.js +19 -24
  404. package/stepper/stepper/stepper.d.ts +3 -3
  405. package/stepper/stepper/stepper.d.ts.map +1 -1
  406. package/table/table-wrapper/table-wrapper.d.ts +0 -1
  407. package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  408. package/table/table-wrapper.js +19 -18
  409. package/tabs/tab-group/tab-group.d.ts +4 -5
  410. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  411. package/tabs/tab-group.js +51 -47
  412. package/tabs/tab-label.js +12 -12
  413. package/tag/tag/tag.d.ts +1 -1
  414. package/teaser-hero.js +13 -13
  415. package/teaser-product/teaser-product.js +5 -5
  416. package/teaser.js +15 -15
  417. package/title.js +23 -23
  418. package/toast.js +4 -4
  419. package/toggle/toggle/toggle.d.ts +2 -3
  420. package/toggle/toggle/toggle.d.ts.map +1 -1
  421. package/toggle/toggle.js +40 -39
  422. package/train/train-formation/train-formation.d.ts +1 -2
  423. package/train/train-formation/train-formation.d.ts.map +1 -1
  424. package/train/train-formation.js +23 -22
  425. package/train/train-wagon.js +7 -7
  426. package/typography.css +0 -13
@@ -2,7 +2,7 @@ import { customElement } from "lit/decorators.js";
2
2
  import { SbbAutocompleteBaseElement } from "../autocomplete.js";
3
3
  import { getNextElementIndex } from "../core/a11y.js";
4
4
  import { hostAttributes } from "../core/decorators.js";
5
- import { getDocumentWritingMode, isSafari } from "../core/dom.js";
5
+ import { isSafari } from "../core/dom.js";
6
6
  import { setAriaComboBoxAttributes } from "../core/overlay.js";
7
7
  import { SbbAutocompleteGridOptionElement } from "./autocomplete-grid-option.js";
8
8
  var __defProp = Object.defineProperty;
@@ -110,7 +110,7 @@ let SbbAutocompleteGridElement = class extends SbbAutocompleteBaseElement {
110
110
  return;
111
111
  }
112
112
  const nextActiveOption = filteredOptions[next];
113
- nextActiveOption.active = true;
113
+ nextActiveOption.setActive(true);
114
114
  (_a = this.triggerElement) == null ? void 0 : _a.setAttribute("aria-activedescendant", nextActiveOption.id);
115
115
  nextActiveOption.scrollIntoView({ block: "nearest" });
116
116
  if (this._activeColumnIndex !== 0) {
@@ -118,7 +118,7 @@ let SbbAutocompleteGridElement = class extends SbbAutocompleteBaseElement {
118
118
  } else {
119
119
  const lastActiveOption = filteredOptions[this._activeItemIndex];
120
120
  if (lastActiveOption) {
121
- lastActiveOption.active = false;
121
+ lastActiveOption.setActive(false);
122
122
  }
123
123
  }
124
124
  this._activeItemIndex = next;
@@ -138,13 +138,13 @@ let SbbAutocompleteGridElement = class extends SbbAutocompleteBaseElement {
138
138
  }
139
139
  const nextElement = elementsInRow[next];
140
140
  if (nextElement instanceof SbbAutocompleteGridOptionElement) {
141
- nextElement.active = true;
141
+ nextElement.setActive(true);
142
142
  } else {
143
143
  nextElement.toggleAttribute("data-focus-visible", true);
144
144
  }
145
145
  const lastActiveElement = elementsInRow[this._activeColumnIndex];
146
146
  if (lastActiveElement instanceof SbbAutocompleteGridOptionElement) {
147
- lastActiveElement.active = false;
147
+ lastActiveElement.setActive(false);
148
148
  } else {
149
149
  lastActiveElement.toggleAttribute("data-focus-visible", false);
150
150
  }
@@ -161,7 +161,7 @@ let SbbAutocompleteGridElement = class extends SbbAutocompleteBaseElement {
161
161
  (opt) => !opt.disabled && !opt.hasAttribute("data-group-disabled")
162
162
  )[this._activeItemIndex];
163
163
  if (activeElement) {
164
- activeElement.active = false;
164
+ activeElement.setActive(false);
165
165
  }
166
166
  }
167
167
  this._activeItemIndex = -1;
@@ -175,11 +175,10 @@ let SbbAutocompleteGridElement = class extends SbbAutocompleteBaseElement {
175
175
  SbbAutocompleteGridElement = __decorateClass([
176
176
  customElement("sbb-autocomplete-grid"),
177
177
  hostAttributes({
178
- dir: getDocumentWritingMode(),
179
178
  role: ariaRoleOnHost ? "grid" : null
180
179
  })
181
180
  ], SbbAutocompleteGridElement);
182
181
  export {
183
182
  SbbAutocompleteGridElement
184
183
  };
185
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9hdXRvY29tcGxldGUtZ3JpZC9hdXRvY29tcGxldGUtZ3JpZC9hdXRvY29tcGxldGUtZ3JpZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2F1dG9jb21wbGV0ZS5qcyc7XG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGdldERvY3VtZW50V3JpdGluZ01vZGUsIGlzU2FmYXJpIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRpdmlkZXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vZGl2aWRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdEdyb3VwRWxlbWVudCwgU2JiT3B0aW9uRWxlbWVudCB9IGZyb20gJy4uLy4uL29wdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uLmpzJztcbmltcG9ydCB7IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiQXV0b2NvbXBsZXRlR3JpZFJvd0VsZW1lbnQgfSBmcm9tICcuLi9hdXRvY29tcGxldGUtZ3JpZC1yb3cuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBhcmlhIHJvbGUgJ2xpc3Rib3gnIG11c3QgYmUgb24gdGhlIGhvc3QgZWxlbWVudCwgb3IgZWxzZSBWb2ljZU92ZXIgd29uJ3Qgd29yayBhdCBhbGwuXG4gKiBPbiB0aGUgb3RoZXIgaGFuZCwgSkFXUyBhbmQgTlZEQSBuZWVkIHRoZSByb2xlIHRvIGJlIFwiY2xvc2VyXCIgdG8gdGhlIG9wdGlvbnMsIG9yIGVsc2Ugb3B0Z3JvdXBzIHdvbid0IHdvcmsuXG4gKi9cbmNvbnN0IGFyaWFSb2xlT25Ib3N0ID0gaXNTYWZhcmk7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIG5hdGl2ZSBpbnB1dCwgaXQgZGlzcGxheXMgYSBwYW5lbCB3aXRoIGEgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucyB3aXRoIGNvbm5lY3RlZCBidXR0b25zLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93YCBvciBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGdyb3VwYCBlbGVtZW50cyB0byB0aGUgYHNiYi1hdXRvY29tcGxldGUtZ3JpZGAuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkYCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGUtZ3JpZGAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlLWdyaWRgIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1hdXRvY29tcGxldGUtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIGRpcjogZ2V0RG9jdW1lbnRXcml0aW5nTW9kZSgpLFxuICByb2xlOiBhcmlhUm9sZU9uSG9zdCA/ICdncmlkJyA6IG51bGwsXG59KVxuZXhwb3J0IGNsYXNzIFNiYkF1dG9jb21wbGV0ZUdyaWRFbGVtZW50IGV4dGVuZHMgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQge1xuICBwcm90ZWN0ZWQgb3ZlcmxheUlkID0gYHNiYi1hdXRvY29tcGxldGUtZ3JpZC0keysrbmV4dElkfWA7XG4gIHByb3RlY3RlZCBwYW5lbFJvbGUgPSAnZ3JpZCc7XG4gIHByaXZhdGUgX2FjdGl2ZUl0ZW1JbmRleCA9IC0xO1xuICBwcml2YXRlIF9hY3RpdmVDb2x1bW5JbmRleCA9IDA7XG5cbiAgcHJvdGVjdGVkIGdldCBvcHRpb25zKCk6IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uJykgPz8gW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3JvdygpOiBTYmJBdXRvY29tcGxldGVHcmlkUm93RWxlbWVudFtdIHtcbiAgICByZXR1cm4gKFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdycpKS5maWx0ZXIoXG4gICAgICAgIChyb3cpID0+ICFyb3cuaGFzQXR0cmlidXRlKCdkYXRhLWRpc2FibGVkJyksXG4gICAgICApID8/IFtdXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbk9wdGlvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS5sb2NhbE5hbWUgIT09ICdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uJyB8fFxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBTYmJPcHRpb25FbGVtZW50KS5kaXNhYmxlZFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLmFib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnYXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0aW9uQ2hhbmdlJyxcbiAgICAgIChlOiBDdXN0b21FdmVudDx2b2lkPikgPT4gdGhpcy5vbk9wdGlvblNlbGVjdGVkKGUpLFxuICAgICAgeyBzaWduYWwgfSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bmNOZWdhdGl2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJEaXZpZGVyRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50PihcbiAgICAgICdzYmItZGl2aWRlciwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicsXG4gICAgKS5mb3JFYWNoKChlKSA9PiAoZS5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmUpKTtcblxuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IHwgU2JiT3B0R3JvdXBFbGVtZW50PihcbiAgICAgICdzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93LCBzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLCBzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0Z3JvdXAnLFxuICAgICkuZm9yRWFjaCgoZWxlbWVudCkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICBjYXNlICdUYWInOlxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMuc2VsZWN0QnlLZXlib2FyZCgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLnNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICB0aGlzLl9zZXROZXh0SG9yaXpvbnRhbEFjdGl2ZUVsZW1lbnQoZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFuIGVsZW1lbnQgb24gJ0VudGVyJyBrZXlwcmVzcy5cbiAgICpcbiAgICogRHVlIHRvIGtleWJvYXJkIG5hdmlnYXRpb24gY29kZSwgdGhlIGBfYWN0aXZlQ29sdW1uSW5kZXhgIGlzIHplcm8gd2hlbiBhbiBvcHRpb24gaXMgJ2ZvY3VzZWQnXG4gICAqIGFuZCBncmVhdGVyIHRoYW4gemVybyB3aGVuIGEgYnV0dG9uIGlzICdmb2N1c2VkJywgc28gYXNraW5nIGZvciBgcXVlcnlTZWxlY3RvckFsbCguLi4pW3RoaXMuX2FjdGl2ZUNvbHVtbkluZGV4XWBcbiAgICogd291bGQgYWx3YXlzIHJldHVybiBhIGBTYmJBdXRvY29tcGxldGVHcmlkQnV0dG9uRWxlbWVudGAuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0QnlLZXlib2FyZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlQ29sdW1uSW5kZXggIT09IDApIHtcbiAgICAgIChcbiAgICAgICAgdGhpcy5fcm93W3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF0ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbiwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicsXG4gICAgICAgIClbdGhpcy5fYWN0aXZlQ29sdW1uSW5kZXhdIGFzIFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50XG4gICAgICApLmNsaWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3B0aW9uc1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdPy5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoXG4gICAgICAob3B0KSA9PiAhb3B0LmRpc2FibGVkICYmICFvcHQuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyksXG4gICAgKTtcblxuICAgIC8vIEdldCBhbmQgYWN0aXZhdGUgdGhlIG5leHQgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IG5leHQgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCB0aGlzLl9hY3RpdmVJdGVtSW5kZXgsIGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpO1xuICAgIGlmIChpc05hTihuZXh0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXh0QWN0aXZlT3B0aW9uID0gZmlsdGVyZWRPcHRpb25zW25leHRdO1xuICAgIG5leHRBY3RpdmVPcHRpb24uYWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcsIG5leHRBY3RpdmVPcHRpb24uaWQpO1xuICAgIG5leHRBY3RpdmVPcHRpb24uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuXG4gICAgLy8gUmVzZXQgdGhlIHByZXZpb3VzIGFjdGl2ZSBvcHRpb24vYnV0dG9uXG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ICE9PSAwKSB7XG4gICAgICB0aGlzLl9yb3dbdGhpcy5fYWN0aXZlSXRlbUluZGV4XVxuICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicpXG4gICAgICAgIC5mb3JFYWNoKChlKSA9PiBlLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJywgZmFsc2UpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbGFzdEFjdGl2ZU9wdGlvbiA9IGZpbHRlcmVkT3B0aW9uc1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdO1xuICAgICAgaWYgKGxhc3RBY3RpdmVPcHRpb24pIHtcbiAgICAgICAgbGFzdEFjdGl2ZU9wdGlvbi5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gbmV4dDtcbiAgICB0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCA9IDA7XG4gIH1cblxuICBwcml2YXRlIF9zZXROZXh0SG9yaXpvbnRhbEFjdGl2ZUVsZW1lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlSXRlbUluZGV4IDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRzSW5Sb3c6IChTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50KVtdID1cbiAgICAgIEFycmF5LmZyb20oXG4gICAgICAgIHRoaXMuX3Jvd1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdLnF1ZXJ5U2VsZWN0b3JBbGw8XG4gICAgICAgICAgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQgfCBTYmJBdXRvY29tcGxldGVHcmlkQnV0dG9uRWxlbWVudFxuICAgICAgICA+KCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLCBzYmItYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uJyksXG4gICAgICApLmZpbHRlcigoZWwpID0+ICFlbC5kaXNhYmxlZCAmJiAhZWwuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJykpO1xuICAgIGNvbnN0IG5leHQ6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4LCBlbGVtZW50c0luUm93Lmxlbmd0aCk7XG4gICAgaWYgKGlzTmFOKG5leHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRFbGVtZW50OiBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50ID1cbiAgICAgIGVsZW1lbnRzSW5Sb3dbbmV4dF07XG4gICAgaWYgKG5leHRFbGVtZW50IGluc3RhbmNlb2YgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQpIHtcbiAgICAgIG5leHRFbGVtZW50LmFjdGl2ZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRFbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFzdEFjdGl2ZUVsZW1lbnQ6IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IHwgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnQgPVxuICAgICAgZWxlbWVudHNJblJvd1t0aGlzLl9hY3RpdmVDb2x1bW5JbmRleF07XG4gICAgaWYgKGxhc3RBY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQpIHtcbiAgICAgIGxhc3RBY3RpdmVFbGVtZW50LmFjdGl2ZSA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0QWN0aXZlRWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtdmlzaWJsZScsIGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBuZXh0RWxlbWVudC5pZCk7XG4gICAgbmV4dEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuICAgIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ID0gbmV4dDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldEFjdGl2ZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ICE9PSAwKSB7XG4gICAgICB0aGlzLl9yb3dbdGhpcy5fYWN0aXZlSXRlbUluZGV4XVxuICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicpXG4gICAgICAgIC5mb3JFYWNoKChlKSA9PiBlLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJywgZmFsc2UpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IHRoaXMub3B0aW9ucy5maWx0ZXIoXG4gICAgICAgIChvcHQpID0+ICFvcHQuZGlzYWJsZWQgJiYgIW9wdC5oYXNBdHRyaWJ1dGUoJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnKSxcbiAgICAgIClbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcbiAgICAgIGlmIChhY3RpdmVFbGVtZW50KSB7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQuYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCA9IC0xO1xuICAgIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ID0gMDtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICBzZXRBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzKGVsZW1lbnQsIGFyaWFSb2xlT25Ib3N0ID8gdGhpcy5pZCA6IHRoaXMub3ZlcmxheUlkLCBmYWxzZSwgJ2dyaWQnKTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlkJzogU2JiQXV0b2NvbXBsZXRlR3JpZEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLElBQUksU0FBUztBQU1iLE1BQU0saUJBQWlCO0FBbUJWLElBQUEsNkJBQU4sY0FBeUMsMkJBQTJCO0FBQUEsRUFBcEUsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBQ0ssU0FBQSxZQUFZLHlCQUF5QixFQUFFLE1BQU07QUFDdkQsU0FBVSxZQUFZO0FBQ3RCLFNBQVEsbUJBQW1CO0FBQzNCLFNBQVEscUJBQXFCO0FBQUEsRUFBQTtBQUFBLEVBRTdCLElBQWMsVUFBOEM7O0FBQzFELFdBQU8sTUFBTSxPQUFLLFVBQUsscUJBQUwsOEJBQXdCLG9DQUFtQyxDQUFBLENBQUU7QUFBQSxFQUNqRjtBQUFBLEVBRUEsSUFBWSxPQUF3Qzs7QUFDbEQsV0FDRSxNQUFNLE1BQUssVUFBSyxxQkFBTCw4QkFBd0IsNEJBQTRCLEVBQUU7QUFBQSxNQUMvRCxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWEsZUFBZTtBQUFBLFNBQ3ZDO0VBRVQ7QUFBQSxFQUVVLGNBQWMsT0FBeUI7QUFDL0MsUUFDRyxNQUFNLE9BQW1CLGNBQWMsa0NBQ3ZDLE1BQU0sT0FBNEIsVUFDbkM7QUFDQTtBQUFBLElBQ0Y7QUFDQSxTQUFLLE1BQU07QUFBQSxFQUNiO0FBQUEsRUFFZ0Isb0JBQTBCO0FBQ3hDLFVBQU0sa0JBQWtCO0FBQ2xCLFVBQUEsU0FBUyxLQUFLLE1BQU07QUFDckIsU0FBQTtBQUFBLE1BQ0g7QUFBQSxNQUNBLENBQUMsTUFBeUIsS0FBSyxpQkFBaUIsQ0FBQztBQUFBLE1BQ2pELEVBQUUsT0FBTztBQUFBLElBQUE7QUFBQSxFQUViO0FBQUEsRUFFVSxlQUFxQjs7QUFDeEIsZUFBQSxxQkFBQTtBQUFBO0FBQUEsTUFDSDtBQUFBLE1BQ0EsUUFBUSxDQUFDLE1BQU8sRUFBRSxXQUFXLEtBQUs7QUFFL0IsZUFBQSxxQkFBQTtBQUFBO0FBQUEsTUFDSDtBQUFBLE1BQ0EsUUFBUSxDQUFDLFlBQVksUUFBUSxnQkFBZ0IsaUJBQWlCLEtBQUssUUFBUTtBQUFBLEVBQy9FO0FBQUEsRUFFVSwrQkFBK0IsT0FBNEI7QUFDL0QsUUFBQSxLQUFLLFVBQVUsVUFBVTtBQUMzQjtBQUFBLElBQ0Y7QUFFQSxZQUFRLE1BQU0sS0FBSztBQUFBLE1BQ2pCLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFDSCxhQUFLLE1BQU07QUFDWDtBQUFBLE1BRUYsS0FBSztBQUNILGFBQUssaUJBQWlCO0FBQ3RCO0FBQUEsTUFFRixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQ0gsYUFBSyxvQkFBb0IsS0FBSztBQUM5QjtBQUFBLE1BRUYsS0FBSztBQUFBLE1BQ0wsS0FBSztBQUNILGFBQUssZ0NBQWdDLEtBQUs7QUFDMUM7QUFBQSxJQUNKO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTVSxtQkFBeUI7O0FBQzdCLFFBQUEsS0FBSyx1QkFBdUIsR0FBRztBQUUvQixXQUFLLEtBQUssS0FBSyxnQkFBZ0IsRUFBRTtBQUFBLFFBQy9CO0FBQUEsTUFDQSxFQUFBLEtBQUssa0JBQWtCLEVBQ3pCO0lBQU0sT0FDSDtBQUNMLGlCQUFLLFFBQVEsS0FBSyxnQkFBZ0IsTUFBbEMsbUJBQXFDLDhCQUE4QjtBQUFBLElBQ3JFO0FBQUEsRUFDRjtBQUFBLEVBRVUsb0JBQW9CLE9BQTRCOztBQUNsRCxVQUFBLGtCQUFrQixLQUFLLFFBQVE7QUFBQSxNQUNuQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLGFBQWEscUJBQXFCO0FBQUEsSUFBQTtBQUluRSxVQUFNLE9BQU8sb0JBQW9CLE9BQU8sS0FBSyxrQkFBa0IsZ0JBQWdCLE1BQU07QUFDakYsUUFBQSxNQUFNLElBQUksR0FBRztBQUNmO0FBQUEsSUFDRjtBQUNNLFVBQUEsbUJBQW1CLGdCQUFnQixJQUFJO0FBQzdDLHFCQUFpQixTQUFTO0FBQzFCLGVBQUssbUJBQUwsbUJBQXFCLGFBQWEseUJBQXlCLGlCQUFpQjtBQUM1RSxxQkFBaUIsZUFBZSxFQUFFLE9BQU8sVUFBVyxDQUFBO0FBR2hELFFBQUEsS0FBSyx1QkFBdUIsR0FBRztBQUNqQyxXQUFLLEtBQUssS0FBSyxnQkFBZ0IsRUFDNUIsaUJBQWlCLDhCQUE4QixFQUMvQyxRQUFRLENBQUMsTUFBTSxFQUFFLGdCQUFnQixzQkFBc0IsS0FBSyxDQUFDO0FBQUEsSUFBQSxPQUMzRDtBQUNDLFlBQUEsbUJBQW1CLGdCQUFnQixLQUFLLGdCQUFnQjtBQUM5RCxVQUFJLGtCQUFrQjtBQUNwQix5QkFBaUIsU0FBUztBQUFBLE1BQzVCO0FBQUEsSUFDRjtBQUNBLFNBQUssbUJBQW1CO0FBQ3hCLFNBQUsscUJBQXFCO0FBQUEsRUFDNUI7QUFBQSxFQUVRLGdDQUFnQyxPQUE0Qjs7QUFDOUQsUUFBQSxLQUFLLG1CQUFtQixHQUFHO0FBQzdCO0FBQUEsSUFDRjtBQUVBLFVBQU0sZ0JBQ0osTUFBTTtBQUFBLE1BQ0osS0FBSyxLQUFLLEtBQUssZ0JBQWdCLEVBQUUsaUJBRS9CLDREQUE0RDtBQUFBLElBQUEsRUFDOUQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLGFBQWEscUJBQXFCLENBQUM7QUFDMUUsVUFBTSxPQUFlLG9CQUFvQixPQUFPLEtBQUssb0JBQW9CLGNBQWMsTUFBTTtBQUN6RixRQUFBLE1BQU0sSUFBSSxHQUFHO0FBQ2Y7QUFBQSxJQUNGO0FBQ00sVUFBQSxjQUNKLGNBQWMsSUFBSTtBQUNwQixRQUFJLHVCQUF1QixrQ0FBa0M7QUFDM0Qsa0JBQVksU0FBUztBQUFBLElBQUEsT0FDaEI7QUFDTyxrQkFBQSxnQkFBZ0Isc0JBQXNCLElBQUk7QUFBQSxJQUN4RDtBQUVNLFVBQUEsb0JBQ0osY0FBYyxLQUFLLGtCQUFrQjtBQUN2QyxRQUFJLDZCQUE2QixrQ0FBa0M7QUFDakUsd0JBQWtCLFNBQVM7QUFBQSxJQUFBLE9BQ3RCO0FBQ2Esd0JBQUEsZ0JBQWdCLHNCQUFzQixLQUFLO0FBQUEsSUFDL0Q7QUFDQSxlQUFLLG1CQUFMLG1CQUFxQixhQUFhLHlCQUF5QixZQUFZO0FBQ3ZFLGdCQUFZLGVBQWUsRUFBRSxPQUFPLFVBQVcsQ0FBQTtBQUMvQyxTQUFLLHFCQUFxQjtBQUFBLEVBQzVCO0FBQUEsRUFFVSxxQkFBMkI7O0FBQy9CLFFBQUEsS0FBSyx1QkFBdUIsR0FBRztBQUNqQyxXQUFLLEtBQUssS0FBSyxnQkFBZ0IsRUFDNUIsaUJBQWlCLDhCQUE4QixFQUMvQyxRQUFRLENBQUMsTUFBTSxFQUFFLGdCQUFnQixzQkFBc0IsS0FBSyxDQUFDO0FBQUEsSUFBQSxPQUMzRDtBQUNDLFlBQUEsZ0JBQWdCLEtBQUssUUFBUTtBQUFBLFFBQ2pDLENBQUMsUUFBUSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksYUFBYSxxQkFBcUI7QUFBQSxNQUFBLEVBQ2pFLEtBQUssZ0JBQWdCO0FBQ3ZCLFVBQUksZUFBZTtBQUNqQixzQkFBYyxTQUFTO0FBQUEsTUFDekI7QUFBQSxJQUNGO0FBQ0EsU0FBSyxtQkFBbUI7QUFDeEIsU0FBSyxxQkFBcUI7QUFDckIsZUFBQSxtQkFBQSxtQkFBZ0IsZ0JBQWdCO0FBQUEsRUFDdkM7QUFBQSxFQUVVLHFCQUFxQixTQUFpQztBQUM5RCw4QkFBMEIsU0FBUyxpQkFBaUIsS0FBSyxLQUFLLEtBQUssV0FBVyxPQUFPLE1BQU07QUFBQSxFQUM3RjtBQUNGO0FBcExhLDZCQUFOLGdCQUFBO0FBQUEsRUFMTixjQUFjLHVCQUF1QjtBQUFBLEVBQ3JDLGVBQWU7QUFBQSxJQUNkLEtBQUssdUJBQXVCO0FBQUEsSUFDNUIsTUFBTSxpQkFBaUIsU0FBUztBQUFBLEVBQUEsQ0FDakM7QUFBQSxHQUNZLDBCQUFBOyJ9
184
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9hdXRvY29tcGxldGUtZ3JpZC9hdXRvY29tcGxldGUtZ3JpZC9hdXRvY29tcGxldGUtZ3JpZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2F1dG9jb21wbGV0ZS5qcyc7XG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzU2FmYXJpIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRpdmlkZXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vZGl2aWRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdEdyb3VwRWxlbWVudCwgU2JiT3B0aW9uRWxlbWVudCB9IGZyb20gJy4uLy4uL29wdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uLmpzJztcbmltcG9ydCB7IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiQXV0b2NvbXBsZXRlR3JpZFJvd0VsZW1lbnQgfSBmcm9tICcuLi9hdXRvY29tcGxldGUtZ3JpZC1yb3cuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBhcmlhIHJvbGUgJ2xpc3Rib3gnIG11c3QgYmUgb24gdGhlIGhvc3QgZWxlbWVudCwgb3IgZWxzZSBWb2ljZU92ZXIgd29uJ3Qgd29yayBhdCBhbGwuXG4gKiBPbiB0aGUgb3RoZXIgaGFuZCwgSkFXUyBhbmQgTlZEQSBuZWVkIHRoZSByb2xlIHRvIGJlIFwiY2xvc2VyXCIgdG8gdGhlIG9wdGlvbnMsIG9yIGVsc2Ugb3B0Z3JvdXBzIHdvbid0IHdvcmsuXG4gKi9cbmNvbnN0IGFyaWFSb2xlT25Ib3N0ID0gaXNTYWZhcmk7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIG5hdGl2ZSBpbnB1dCwgaXQgZGlzcGxheXMgYSBwYW5lbCB3aXRoIGEgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucyB3aXRoIGNvbm5lY3RlZCBidXR0b25zLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93YCBvciBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGdyb3VwYCBlbGVtZW50cyB0byB0aGUgYHNiYi1hdXRvY29tcGxldGUtZ3JpZGAuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkYCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGUtZ3JpZGAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlLWdyaWRgIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1hdXRvY29tcGxldGUtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHJvbGU6IGFyaWFSb2xlT25Ib3N0ID8gJ2dyaWQnIDogbnVsbCxcbn0pXG5leHBvcnQgY2xhc3MgU2JiQXV0b2NvbXBsZXRlR3JpZEVsZW1lbnQgZXh0ZW5kcyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB7XG4gIHByb3RlY3RlZCBvdmVybGF5SWQgPSBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLSR7KytuZXh0SWR9YDtcbiAgcHJvdGVjdGVkIHBhbmVsUm9sZSA9ICdncmlkJztcbiAgcHJpdmF0ZSBfYWN0aXZlSXRlbUluZGV4ID0gLTE7XG4gIHByaXZhdGUgX2FjdGl2ZUNvbHVtbkluZGV4ID0gMDtcblxuICBwcm90ZWN0ZWQgZ2V0IG9wdGlvbnMoKTogU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRpb24nKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfcm93KCk6IFNiYkF1dG9jb21wbGV0ZUdyaWRSb3dFbGVtZW50W10ge1xuICAgIHJldHVybiAoXG4gICAgICBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93JykpLmZpbHRlcihcbiAgICAgICAgKHJvdykgPT4gIXJvdy5oYXNBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZWQnKSxcbiAgICAgICkgPz8gW11cbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uT3B0aW9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmxvY2FsTmFtZSAhPT0gJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRpb24nIHx8XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIFNiYk9wdGlvbkVsZW1lbnQpLmRpc2FibGVkXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdhdXRvY29tcGxldGVPcHRpb25TZWxlY3Rpb25DaGFuZ2UnLFxuICAgICAgKGU6IEN1c3RvbUV2ZW50PHZvaWQ+KSA9PiB0aGlzLm9uT3B0aW9uU2VsZWN0ZWQoZSksXG4gICAgICB7IHNpZ25hbCB9LFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYkRpdmlkZXJFbGVtZW50IHwgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnQ+KFxuICAgICAgJ3NiYi1kaXZpZGVyLCBzYmItYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uJyxcbiAgICApLmZvckVhY2goKGUpID0+IChlLm5lZ2F0aXZlID0gdGhpcy5uZWdhdGl2ZSkpO1xuXG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQgfCBTYmJPcHRHcm91cEVsZW1lbnQ+KFxuICAgICAgJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1yb3csIHNiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRpb24sIHNiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRncm91cCcsXG4gICAgKS5mb3JFYWNoKChlbGVtZW50KSA9PiBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1uZWdhdGl2ZScsIHRoaXMubmVnYXRpdmUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcGVuZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgdGhpcy5zZWxlY3RCeUtleWJvYXJkKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIHRoaXMuX3NldE5leHRIb3Jpem9udGFsQWN0aXZlRWxlbWVudChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYW4gZWxlbWVudCBvbiAnRW50ZXInIGtleXByZXNzLlxuICAgKlxuICAgKiBEdWUgdG8ga2V5Ym9hcmQgbmF2aWdhdGlvbiBjb2RlLCB0aGUgYF9hY3RpdmVDb2x1bW5JbmRleGAgaXMgemVybyB3aGVuIGFuIG9wdGlvbiBpcyAnZm9jdXNlZCdcbiAgICogYW5kIGdyZWF0ZXIgdGhhbiB6ZXJvIHdoZW4gYSBidXR0b24gaXMgJ2ZvY3VzZWQnLCBzbyBhc2tpbmcgZm9yIGBxdWVyeVNlbGVjdG9yQWxsKC4uLilbdGhpcy5fYWN0aXZlQ29sdW1uSW5kZXhdYFxuICAgKiB3b3VsZCBhbHdheXMgcmV0dXJuIGEgYFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50YC5cbiAgICovXG4gIHByb3RlY3RlZCBzZWxlY3RCeUtleWJvYXJkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCAhPT0gMCkge1xuICAgICAgKFxuICAgICAgICB0aGlzLl9yb3dbdGhpcy5fYWN0aXZlSXRlbUluZGV4XS5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLCBzYmItYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uJyxcbiAgICAgICAgKVt0aGlzLl9hY3RpdmVDb2x1bW5JbmRleF0gYXMgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnRcbiAgICAgICkuY2xpY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcHRpb25zW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF0/LnNldFNlbGVjdGVkVmlhVXNlckludGVyYWN0aW9uKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXROZXh0QWN0aXZlT3B0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcihcbiAgICAgIChvcHQpID0+ICFvcHQuZGlzYWJsZWQgJiYgIW9wdC5oYXNBdHRyaWJ1dGUoJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnKSxcbiAgICApO1xuXG4gICAgLy8gR2V0IGFuZCBhY3RpdmF0ZSB0aGUgbmV4dCBhY3RpdmUgb3B0aW9uXG4gICAgY29uc3QgbmV4dCA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCwgZmlsdGVyZWRPcHRpb25zLmxlbmd0aCk7XG4gICAgaWYgKGlzTmFOKG5leHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbbmV4dF07XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zZXRBY3RpdmUodHJ1ZSk7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBuZXh0QWN0aXZlT3B0aW9uLmlkKTtcbiAgICBuZXh0QWN0aXZlT3B0aW9uLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JyB9KTtcblxuICAgIC8vIFJlc2V0IHRoZSBwcmV2aW91cyBhY3RpdmUgb3B0aW9uL2J1dHRvblxuICAgIGlmICh0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCAhPT0gMCkge1xuICAgICAgdGhpcy5fcm93W3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF1cbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1idXR0b24nKVxuICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtdmlzaWJsZScsIGZhbHNlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxhc3RBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcbiAgICAgIGlmIChsYXN0QWN0aXZlT3B0aW9uKSB7XG4gICAgICAgIGxhc3RBY3RpdmVPcHRpb24uc2V0QWN0aXZlKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gbmV4dDtcbiAgICB0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCA9IDA7XG4gIH1cblxuICBwcml2YXRlIF9zZXROZXh0SG9yaXpvbnRhbEFjdGl2ZUVsZW1lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlSXRlbUluZGV4IDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRzSW5Sb3c6IChTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50KVtdID1cbiAgICAgIEFycmF5LmZyb20oXG4gICAgICAgIHRoaXMuX3Jvd1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdLnF1ZXJ5U2VsZWN0b3JBbGw8XG4gICAgICAgICAgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQgfCBTYmJBdXRvY29tcGxldGVHcmlkQnV0dG9uRWxlbWVudFxuICAgICAgICA+KCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLCBzYmItYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uJyksXG4gICAgICApLmZpbHRlcigoZWwpID0+ICFlbC5kaXNhYmxlZCAmJiAhZWwuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJykpO1xuICAgIGNvbnN0IG5leHQ6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4LCBlbGVtZW50c0luUm93Lmxlbmd0aCk7XG4gICAgaWYgKGlzTmFOKG5leHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRFbGVtZW50OiBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50ID1cbiAgICAgIGVsZW1lbnRzSW5Sb3dbbmV4dF07XG4gICAgaWYgKG5leHRFbGVtZW50IGluc3RhbmNlb2YgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQpIHtcbiAgICAgIG5leHRFbGVtZW50LnNldEFjdGl2ZSh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dEVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnLCB0cnVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXN0QWN0aXZlRWxlbWVudDogU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQgfCBTYmJBdXRvY29tcGxldGVHcmlkQnV0dG9uRWxlbWVudCA9XG4gICAgICBlbGVtZW50c0luUm93W3RoaXMuX2FjdGl2ZUNvbHVtbkluZGV4XTtcbiAgICBpZiAobGFzdEFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCkge1xuICAgICAgbGFzdEFjdGl2ZUVsZW1lbnQuc2V0QWN0aXZlKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFzdEFjdGl2ZUVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnLCBmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgbmV4dEVsZW1lbnQuaWQpO1xuICAgIG5leHRFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JyB9KTtcbiAgICB0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCA9IG5leHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXRBY3RpdmVFbGVtZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCAhPT0gMCkge1xuICAgICAgdGhpcy5fcm93W3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF1cbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1idXR0b24nKVxuICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtdmlzaWJsZScsIGZhbHNlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAob3B0KSA9PiAhb3B0LmRpc2FibGVkICYmICFvcHQuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyksXG4gICAgICApW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF07XG4gICAgICBpZiAoYWN0aXZlRWxlbWVudCkge1xuICAgICAgICBhY3RpdmVFbGVtZW50LnNldEFjdGl2ZShmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCA9IC0xO1xuICAgIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ID0gMDtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICBzZXRBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzKGVsZW1lbnQsIGFyaWFSb2xlT25Ib3N0ID8gdGhpcy5pZCA6IHRoaXMub3ZlcmxheUlkLCBmYWxzZSwgJ2dyaWQnKTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlk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
@@ -1,27 +1,14 @@
1
1
  import { property, customElement } from "lit/decorators.js";
2
2
  import { getNextElementIndex } from "./core/a11y.js";
3
3
  import { hostAttributes } from "./core/decorators.js";
4
- import { findReferencedElement, isSafari, getDocumentWritingMode } from "./core/dom.js";
4
+ import { findReferencedElement, isSafari } from "./core/dom.js";
5
5
  import { isEventOnElement, setOverlayPosition, removeAriaComboBoxAttributes, overlayGapFixCorners, setAriaComboBoxAttributes } from "./core/overlay.js";
6
6
  import { css, isServer, html, nothing } from "lit";
7
7
  import { ref } from "lit/directives/ref.js";
8
8
  import { SbbOpenCloseBaseElement } from "./core/base-elements.js";
9
9
  import { SbbConnectedAbortController } from "./core/controllers.js";
10
10
  import { SbbNegativeMixin, SbbHydrationMixin } from "./core/mixins.js";
11
- const style = css`/**
12
- * Better font rendering (on OS X)
13
- * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
14
- *
15
- * Usage:
16
- *
17
- * .var_dark_on_light {
18
- * @include font-smoothing;
19
- * }
20
- * .var_light_on_dark {
21
- * @include font-smoothing-reset;
22
- * }
23
- */
24
- /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
11
+ const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
25
12
  /*
26
13
  * SBB table mixin
27
14
  * Notes:
@@ -54,7 +41,7 @@ const style = css`/**
54
41
  .sbb-gap-fix-corner#left {
55
42
  left: calc(var(--sbb-options-panel-border-radius) / 2 * -1);
56
43
  }
57
- :host([dir=rtl]) .sbb-gap-fix-corner#left {
44
+ :host(:dir(rtl)) .sbb-gap-fix-corner#left {
58
45
  right: calc(var(--sbb-options-panel-border-radius) / 2 * -1);
59
46
  left: unset;
60
47
  }
@@ -62,7 +49,7 @@ const style = css`/**
62
49
  .sbb-gap-fix-corner#right {
63
50
  right: calc(var(--sbb-options-panel-border-radius) / 2 * -1);
64
51
  }
65
- :host([dir=rtl]) .sbb-gap-fix-corner#right {
52
+ :host(:dir(rtl)) .sbb-gap-fix-corner#right {
66
53
  left: calc(var(--sbb-options-panel-border-radius) / 2 * -1);
67
54
  right: unset;
68
55
  }
@@ -343,7 +330,7 @@ const _SbbAutocompleteBaseElement = class _SbbAutocompleteBaseElement extends Sb
343
330
  }
344
331
  /** Opens the autocomplete. */
345
332
  open() {
346
- if (this.state !== "closed" || !this._overlay || this.options.length === 0 || this._readonly) {
333
+ if (this.state !== "closed" || !this._overlay || this.options.length === 0 || this._readonly()) {
347
334
  return;
348
335
  }
349
336
  if (!this.willOpen.emit()) {
@@ -421,7 +408,7 @@ const _SbbAutocompleteBaseElement = class _SbbAutocompleteBaseElement extends Sb
421
408
  this._highlightOptions((_a = this.triggerElement) == null ? void 0 : _a.value);
422
409
  }
423
410
  /** The autocomplete should inherit 'readonly' state from the trigger. */
424
- get _readonly() {
411
+ _readonly() {
425
412
  var _a;
426
413
  return ((_a = this.triggerElement) == null ? void 0 : _a.hasAttribute("readonly")) ?? false;
427
414
  }
@@ -716,12 +703,12 @@ let SbbAutocompleteElement = class extends SbbAutocompleteBaseElement {
716
703
  );
717
704
  const next = getNextElementIndex(event, this._activeItemIndex, filteredOptions.length);
718
705
  const nextActiveOption = filteredOptions[next];
719
- nextActiveOption.active = true;
706
+ nextActiveOption.setActive(true);
720
707
  (_a = this.triggerElement) == null ? void 0 : _a.setAttribute("aria-activedescendant", nextActiveOption.id);
721
708
  nextActiveOption.scrollIntoView({ block: "nearest" });
722
709
  const lastActiveOption = filteredOptions[this._activeItemIndex];
723
710
  if (lastActiveOption) {
724
- lastActiveOption.active = false;
711
+ lastActiveOption.setActive(false);
725
712
  }
726
713
  this._activeItemIndex = next;
727
714
  }
@@ -729,7 +716,7 @@ let SbbAutocompleteElement = class extends SbbAutocompleteBaseElement {
729
716
  var _a;
730
717
  const activeElement = this.options[this._activeItemIndex];
731
718
  if (activeElement) {
732
- activeElement.active = false;
719
+ activeElement.setActive(false);
733
720
  }
734
721
  this._activeItemIndex = -1;
735
722
  (_a = this.triggerElement) == null ? void 0 : _a.removeAttribute("aria-activedescendant");
@@ -741,7 +728,6 @@ let SbbAutocompleteElement = class extends SbbAutocompleteBaseElement {
741
728
  SbbAutocompleteElement = __decorateClass([
742
729
  customElement("sbb-autocomplete"),
743
730
  hostAttributes({
744
- dir: getDocumentWritingMode(),
745
731
  role: ariaRoleOnHost ? "listbox" : null
746
732
  })
747
733
  ], SbbAutocompleteElement);
@@ -749,4 +735,4 @@ export {
749
735
  SbbAutocompleteBaseElement,
750
736
  SbbAutocompleteElement
751
737
  };
752
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQudHMiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmaW5kUmVmZXJlbmNlZEVsZW1lbnQsIGlzU2FmYXJpIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgU2JiTmVnYXRpdmVNaXhpbiwgU2JiSHlkcmF0aW9uTWl4aW4gfSBmcm9tICcuLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQge1xuICBpc0V2ZW50T25FbGVtZW50LFxuICBvdmVybGF5R2FwRml4Q29ybmVycyxcbiAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyxcbiAgc2V0T3ZlcmxheVBvc2l0aW9uLFxufSBmcm9tICcuLi9jb3JlL292ZXJsYXkuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uL29wdGlvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBhcmlhIHJvbGUgJ2xpc3Rib3gnIG11c3QgYmUgb24gdGhlIGhvc3QgZWxlbWVudCwgb3IgZWxzZSBWb2ljZU92ZXIgd29uJ3Qgd29yayBhdCBhbGwuXG4gKiBPbiB0aGUgb3RoZXIgaGFuZCwgSkFXUyBhbmQgTlZEQSBuZWVkIHRoZSByb2xlIHRvIGJlIFwiY2xvc2VyXCIgdG8gdGhlIG9wdGlvbnMsIG9yIGVsc2Ugb3B0Z3JvdXBzIHdvbid0IHdvcmsuXG4gKi9cbmNvbnN0IGFyaWFSb2xlT25Ib3N0ID0gaXNTYWZhcmk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oXG4gIFNiYkh5ZHJhdGlvbk1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgd2hlcmUgdGhlIGF1dG9jb21wbGV0ZSB3aWxsIGF0dGFjaDsgYWNjZXB0cyBib3RoIGFuIGVsZW1lbnQncyBpZCBvciBhbiBIVE1MRWxlbWVudC5cbiAgICogSWYgbm90IHNldCwgaXQgd2lsbCBzZWFyY2ggZm9yIHRoZSBmaXJzdCAnc2JiLWZvcm0tZmllbGQnIGFuY2VzdG9yLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIG9yaWdpbj86IHN0cmluZyB8IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmc7IGFjY2VwdHMgYm90aCBhbiBlbGVtZW50J3MgaWQgb3IgYW4gSFRNTEVsZW1lbnQuXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBhdXRvY29tcGxldGUgd2lsbCBvcGVuIG9uIGZvY3VzLCBjbGljaywgaW5wdXQgb3IgYEFycm93RG93bmAga2V5cHJlc3Mgb2YgdGhlICd0cmlnZ2VyJyBlbGVtZW50LlxuICAgKiBJZiBub3Qgc2V0LCB3aWxsIHNlYXJjaCBmb3IgdGhlIGZpcnN0ICdpbnB1dCcgY2hpbGQgb2YgYSAnc2JiLWZvcm0tZmllbGQnIGFuY2VzdG9yLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHRyaWdnZXI/OiBzdHJpbmcgfCBIVE1MSW5wdXRFbGVtZW50O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBpY29uIHNwYWNlIGlzIHByZXNlcnZlZCB3aGVuIG5vIGljb24gaXMgc2V0LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmVzZXJ2ZS1pY29uLXNwYWNlJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgcHJlc2VydmVJY29uU3BhY2U/OiBib29sZWFuO1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBlbGVtZW50IHdoZXJlIGF1dG9jb21wbGV0ZSBvdmVybGF5IGlzIGF0dGFjaGVkIHRvLiAqL1xuICBwdWJsaWMgZ2V0IG9yaWdpbkVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIGlmICghdGhpcy5fb3JpZ2luRWxlbWVudCkge1xuICAgICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHRoaXMuX2ZpbmRPcmlnaW5FbGVtZW50KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcmlnaW5FbGVtZW50O1xuICB9XG4gIHByaXZhdGUgX29yaWdpbkVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcblxuICAvKiogUmV0dXJucyB0aGUgdHJpZ2dlciBlbGVtZW50LiAqL1xuICBwdWJsaWMgZ2V0IHRyaWdnZXJFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudDtcbiAgfVxuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3ZlcmxheUlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBwYW5lbFJvbGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIGFib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheSE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9vcHRpb25Db250YWluZXIhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2RpZExvYWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaXNQb2ludGVyRG93bkV2ZW50T25NZW51OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBvcHRpb25zKCk6IFNiYk9wdGlvbkJhc2VFbGVtZW50W107XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzeW5jTmVnYXRpdmUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldFRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNlbGVjdEJ5S2V5Ym9hcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZXNldEFjdGl2ZUVsZW1lbnQoKTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9uT3B0aW9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gIC8qKiBPcGVucyB0aGUgYXV0b2NvbXBsZXRlLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuX292ZXJsYXkgfHwgdGhpcy5vcHRpb25zLmxlbmd0aCA9PT0gMCB8fCB0aGlzLl9yZWFkb25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKTtcbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIGF1dG9jb21wbGV0ZS4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud2lsbENsb3NlLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgaWYgKGFyaWFSb2xlT25Ib3N0KSB7XG4gICAgICB0aGlzLmlkIHx8PSB0aGlzLm92ZXJsYXlJZDtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5hYm9ydC5zaWduYWw7XG4gICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5jbG9zZXN0KCdzYmItZm9ybS1maWVsZCcpID8/IHRoaXMuY2xvc2VzdCgnW2RhdGEtZm9ybS1maWVsZF0nKTtcblxuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSBmb3JtRmllbGQuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9kaWRMb2FkKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIH1cbiAgICB0aGlzLnN5bmNOZWdhdGl2ZSgpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLm9uT3B0aW9uQ2xpY2soZSksIHsgc2lnbmFsIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdvcmlnaW4nKSkge1xuICAgICAgdGhpcy5fcmVzZXRPcmlnaW5DbGlja0xpc3RlbmVyKHRoaXMub3JpZ2luLCBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ29yaWdpbicpKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndHJpZ2dlcicpKSB7XG4gICAgICB0aGlzLl9yZXNldFRyaWdnZXJDbGlja0xpc3RlbmVyKHRoaXMudHJpZ2dlciwgY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCd0cmlnZ2VyJykpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCduZWdhdGl2ZScpKSB7XG4gICAgICB0aGlzLnN5bmNOZWdhdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX2NvbXBvbmVudFNldHVwKCk7XG4gICAgdGhpcy5fZGlkTG9hZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgLyoqIFdoZW4gYW4gb3B0aW9uIGlzIHNlbGVjdGVkLCB1cGRhdGUgdGhlIGlucHV0IHZhbHVlIGFuZCBjbG9zZSB0aGUgYXV0b2NvbXBsZXRlLiAqL1xuICBwcm90ZWN0ZWQgb25PcHRpb25TZWxlY3RlZChldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgU2JiT3B0aW9uQmFzZUVsZW1lbnQ7XG4gICAgaWYgKCF0YXJnZXQuc2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEZXNlbGVjdCB0aGUgcHJldmlvdXMgb3B0aW9uc1xuICAgIHRoaXMub3B0aW9uc1xuICAgICAgLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uaWQgIT09IHRhcmdldC5pZCAmJiBvcHRpb24uc2VsZWN0ZWQpXG4gICAgICAuZm9yRWFjaCgob3B0aW9uKSA9PiAob3B0aW9uLnNlbGVjdGVkID0gZmFsc2UpKTtcblxuICAgIGlmICh0aGlzLnRyaWdnZXJFbGVtZW50KSB7XG4gICAgICAvLyBTZXQgdGhlIG9wdGlvbiB2YWx1ZVxuICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC52YWx1ZSA9IHRhcmdldC52YWx1ZSBhcyBzdHJpbmc7XG5cbiAgICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgdGhlIGNoYW5nZSBldmVudHNcbiAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9oaWdobGlnaHRPcHRpb25zKHRoaXMudHJpZ2dlckVsZW1lbnQ/LnZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgYXV0b2NvbXBsZXRlIHNob3VsZCBpbmhlcml0ICdyZWFkb25seScgc3RhdGUgZnJvbSB0aGUgdHJpZ2dlci4gKi9cbiAgcHJpdmF0ZSBnZXQgX3JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJFbGVtZW50Py5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgPz8gZmFsc2U7XG4gIH1cblxuICAvKiogUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLiAqL1xuICBwcml2YXRlIF9yZXNldE9yaWdpbkNsaWNrTGlzdGVuZXIoXG4gICAgbmV3VmFsdWU/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCxcbiAgICBvbGRWYWx1ZT86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuICApOiB2b2lkIHtcbiAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuICovXG4gIHByaXZhdGUgX3Jlc2V0VHJpZ2dlckNsaWNrTGlzdGVuZXIoXG4gICAgbmV3VmFsdWU/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCxcbiAgICBvbGRWYWx1ZT86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuICApOiB2b2lkIHtcbiAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBvbmVudFNldHVwKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuXG4gICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW9wdGlvbi1wYW5lbC1vcmlnaW4tYm9yZGVybGVzcycsXG4gICAgICAhIXRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpPy5oYXNBdHRyaWJ1dGUoJ2JvcmRlcmxlc3MnKSxcbiAgICApO1xuXG4gICAgdGhpcy5fYmluZFRvKHRoaXMuX2dldFRyaWdnZXJFbGVtZW50KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgd2lsbCBiZSBhdHRhY2hlZC5cbiAgICogQHJldHVybnMgJ29yaWdpbicgb3IgdGhlIGZpcnN0ICdzYmItZm9ybS1maWVsZCcgYW5jZXN0b3IuXG4gICAqL1xuICBwcml2YXRlIF9maW5kT3JpZ2luRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgbGV0IHJlc3VsdDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsO1xuXG4gICAgaWYgKCF0aGlzLm9yaWdpbikge1xuICAgICAgcmVzdWx0ID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk/LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I/LignI292ZXJsYXktYW5jaG9yJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudCh0aGlzLm9yaWdpbik7XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSBvcmlnaW4gZWxlbWVudC4gUGxlYXNlIHNwZWNpZnkgYSB2YWxpZCBlbGVtZW50IG9yIHJlYWQgdGhlIFwib3JpZ2luXCIgcHJvcCBkb2N1bWVudGF0aW9uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmcuXG4gICAqIEByZXR1cm5zICd0cmlnZ2VyJyBvciB0aGUgZmlyc3QgJ2lucHV0JyBpbnNpZGUgdGhlIG9yaWdpbiBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0VHJpZ2dlckVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLnRyaWdnZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKT8ucXVlcnlTZWxlY3RvcignaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudDxIVE1MSW5wdXRFbGVtZW50Pih0aGlzLnRyaWdnZXIpO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSB0cmlnZ2VyIGVsZW1lbnQuIFBsZWFzZSBzcGVjaWZ5IGEgdmFsaWQgZWxlbWVudCBvciByZWFkIHRoZSBcInRyaWdnZXJcIiBwcm9wIGRvY3VtZW50YXRpb24nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBfYmluZFRvKHRyaWdnZXJFbGVtOiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0cmlnZ2VyRWxlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IGF0dHJpYnV0ZXMgdG8gdGhlIG9sZCB0cmlnZ2VyIGFuZCBhZGQgdGhlbSB0byB0aGUgbmV3IG9uZVxuICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMudHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuc2V0VHJpZ2dlckF0dHJpYnV0ZXModHJpZ2dlckVsZW0pO1xuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyRWxlbTtcblxuICAgIHRoaXMuX3NldHVwVHJpZ2dlckV2ZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBUcmlnZ2VyRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gT3BlbiB0aGUgb3ZlcmxheSBvbiBmb2N1cywgY2xpY2ssIGlucHV0IGFuZCBgQXJyb3dEb3duYCBldmVudFxuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnaW5wdXQnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB0aGlzLl9oaWdobGlnaHRPcHRpb25zKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlci5zaWduYWwgfSxcbiAgICApO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX2Nsb3NlZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7IHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNldCBvdmVybGF5IHBvc2l0aW9uLCB3aWR0aCBhbmQgbWF4IGhlaWdodFxuICBwcml2YXRlIF9zZXRPdmVybGF5UG9zaXRpb24oKTogdm9pZCB7XG4gICAgc2V0T3ZlcmxheVBvc2l0aW9uKFxuICAgICAgdGhpcy5fb3ZlcmxheSxcbiAgICAgIHRoaXMub3JpZ2luRWxlbWVudCxcbiAgICAgIHRoaXMuX29wdGlvbkNvbnRhaW5lcixcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1hdXRvY29tcGxldGVfX2NvbnRhaW5lcicpISxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBPbiBvcGVuL2Nsb3NlIGFuaW1hdGlvbiBlbmQuXG4gICAqICBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAgKiAgVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX29uT3BlbkFuaW1hdGlvbkVuZCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX29uQ2xvc2VBbmltYXRpb25FbmQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbk9wZW5BbmltYXRpb25FbmQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX2F0dGFjaE9wZW5QYW5lbEV2ZW50cygpO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgdGhpcy5kaWRPcGVuLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uQ2xvc2VBbmltYXRpb25FbmQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgIHRoaXMucmVzZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgdGhpcy5fb3B0aW9uQ29udGFpbmVyLnNjcm9sbFRvcCA9IDA7XG4gICAgdGhpcy5kaWRDbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hPcGVuUGFuZWxFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIC8vIFJlY2FsY3VsYXRlIHRoZSBvdmVybGF5IHBvc2l0aW9uIG9uIHNjcm9sbCBhbmQgd2luZG93IHJlc2l6ZVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgYXV0b2NvbXBsZXRlIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKGV2KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgKGV2KSA9PiB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljayhldiksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBLZXlib2FyZCBpbnRlcmFjdGlvbnNcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLm9wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbWVudS5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vdmVybGF5LCBldmVudCk7XG4gIH07XG5cbiAgLy8gSWYgdGhlIGNsaWNrIGlzIG91dHNpZGUgdGhlIGF1dG9jb21wbGV0ZSwgY2xvc2VzIHRoZSBwYW5lbC5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgJiZcbiAgICAgICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5vcmlnaW5FbGVtZW50LCBldmVudClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfY2xvc2VkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIaWdobGlnaHQgdGhlIHNlYXJjaGVkIHRleHQgb24gdGhlIG9wdGlvbnMuICovXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbnMoc2VhcmNoVGVybT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChzZWFyY2hUZXJtID09PSBudWxsIHx8IHNlYXJjaFRlcm0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uaGlnaGxpZ2h0KHNlYXJjaFRlcm0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZVRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ/OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyhlbGVtZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj4ke292ZXJsYXlHYXBGaXhDb3JuZXJzKCl9PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19wYW5lbFwiXG4gICAgICAgICAgP2RhdGEtb3Blbj0ke3RoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJ31cbiAgICAgICAgICAke3JlZigob3ZlcmxheVJlZj86IEVsZW1lbnQpID0+ICh0aGlzLl9vdmVybGF5ID0gb3ZlcmxheVJlZiBhcyBIVE1MRWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX3dyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19vcHRpb25zXCJcbiAgICAgICAgICAgICAgcm9sZT0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMucGFuZWxSb2xlIDogbm90aGluZ31cbiAgICAgICAgICAgICAgaWQ9JHshYXJpYVJvbGVPbkhvc3QgPyB0aGlzLm92ZXJsYXlJZCA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICR7cmVmKChjb250YWluZXJSZWYpID0+ICh0aGlzLl9vcHRpb25Db250YWluZXIgPSBjb250YWluZXJSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGdldERvY3VtZW50V3JpdGluZ01vZGUsIGlzU2FmYXJpIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyB9IGZyb20gJy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdEdyb3VwRWxlbWVudCwgU2JiT3B0aW9uRWxlbWVudCB9IGZyb20gJy4uL29wdGlvbi5qcyc7XG5cbmltcG9ydCB7IFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IH0gZnJvbSAnLi9hdXRvY29tcGxldGUtYmFzZS1lbGVtZW50LmpzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgYXJpYSByb2xlICdsaXN0Ym94JyBtdXN0IGJlIG9uIHRoZSBob3N0IGVsZW1lbnQsIG9yIGVsc2UgVm9pY2VPdmVyIHdvbid0IHdvcmsgYXQgYWxsLlxuICogT24gdGhlIG90aGVyIGhhbmQsIEpBV1MgYW5kIE5WREEgbmVlZCB0aGUgcm9sZSB0byBiZSBcImNsb3NlclwiIHRvIHRoZSBvcHRpb25zLCBvciBlbHNlIG9wdGdyb3VwcyB3b24ndCB3b3JrLlxuICovXG5jb25zdCBhcmlhUm9sZU9uSG9zdCA9IGlzU2FmYXJpO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIGEgcGFuZWwgd2l0aCBhIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1vcHRpb25gIG9yIGBzYmItb3B0Z3JvdXBgIGVsZW1lbnRzIHRvIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGVgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlYCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItYXV0b2NvbXBsZXRlLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hdXRvY29tcGxldGUnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgZGlyOiBnZXREb2N1bWVudFdyaXRpbmdNb2RlKCksXG4gIHJvbGU6IGFyaWFSb2xlT25Ib3N0ID8gJ2xpc3Rib3gnIDogbnVsbCxcbn0pXG5leHBvcnQgY2xhc3MgU2JiQXV0b2NvbXBsZXRlRWxlbWVudCBleHRlbmRzIFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IHtcbiAgcHJvdGVjdGVkIG92ZXJsYXlJZCA9IGBzYmItYXV0b2NvbXBsZXRlLSR7KytuZXh0SWR9YDtcbiAgcHJvdGVjdGVkIHBhbmVsUm9sZSA9ICdsaXN0Ym94JztcbiAgcHJpdmF0ZSBfYWN0aXZlSXRlbUluZGV4ID0gLTE7XG5cbiAgcHJvdGVjdGVkIGdldCBvcHRpb25zKCk6IFNiYk9wdGlvbkVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1vcHRpb24nKSA/PyBbXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25PcHRpb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIChldmVudC50YXJnZXQgYXMgRWxlbWVudCkubG9jYWxOYW1lICE9PSAnc2JiLW9wdGlvbicgfHxcbiAgICAgIChldmVudC50YXJnZXQgYXMgU2JiT3B0aW9uRWxlbWVudCkuZGlzYWJsZWRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5hYm9ydC5zaWduYWw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ29wdGlvblNlbGVjdGlvbkNoYW5nZScsXG4gICAgICAoZTogQ3VzdG9tRXZlbnQ8dm9pZD4pID0+IHRoaXMub25PcHRpb25TZWxlY3RlZChlKSxcbiAgICAgIHsgc2lnbmFsIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1kaXZpZGVyJykuZm9yRWFjaCgoZGl2aWRlcikgPT4gKGRpdmlkZXIubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlKSk7XG5cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJPcHRpb25FbGVtZW50IHwgU2JiT3B0R3JvdXBFbGVtZW50PihcbiAgICAgICdzYmItb3B0aW9uLCBzYmItb3B0Z3JvdXAnLFxuICAgICkuZm9yRWFjaCgoZWxlbWVudCkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICBjYXNlICdUYWInOlxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMuc2VsZWN0QnlLZXlib2FyZCgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLnNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0QnlLZXlib2FyZCgpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVPcHRpb24gPSB0aGlzLm9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcblxuICAgIGlmIChhY3RpdmVPcHRpb24pIHtcbiAgICAgIGFjdGl2ZU9wdGlvbi5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoXG4gICAgICAob3B0KSA9PiAhb3B0LmRpc2FibGVkICYmICFvcHQuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyksXG4gICAgKTtcblxuICAgIC8vIEdldCBhbmQgYWN0aXZhdGUgdGhlIG5leHQgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IG5leHQgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCB0aGlzLl9hY3RpdmVJdGVtSW5kZXgsIGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbbmV4dF07XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgbmV4dEFjdGl2ZU9wdGlvbi5pZCk7XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cbiAgICAvLyBSZXNldCB0aGUgcHJldmlvdXMgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IGxhc3RBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcbiAgICBpZiAobGFzdEFjdGl2ZU9wdGlvbikge1xuICAgICAgbGFzdEFjdGl2ZU9wdGlvbi5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSBuZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0QWN0aXZlRWxlbWVudCgpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gdGhpcy5vcHRpb25zW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF07XG5cbiAgICBpZiAoYWN0aXZlRWxlbWVudCkge1xuICAgICAgYWN0aXZlRWxlbWVudC5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gLTE7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUcmlnZ2VyQXR0cmlidXRlcyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyhlbGVtZW50LCBhcmlhUm9sZU9uSG9zdCA/IHRoaXMuaWQgOiB0aGlzLm92ZXJsYXlJZCwgZmFsc2UpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYXV0b2NvbXBsZXRlJzogU2JiQXV0b2NvbXBsZXRlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImFyaWFSb2xlT25Ib3N0IiwiX19kZWNvcmF0ZUNsYXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZCQSxNQUFNQSxtQkFBaUI7QUFFaEIsTUFBZSw4QkFBZixNQUFlLG9DQUFtQztBQUFBLEVBQ3ZELGtCQUFrQix1QkFBdUI7QUFDM0MsRUFBRTtBQUFBLEVBRkssY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBdUNLLFNBQUEsUUFBUSxJQUFJLDRCQUE0QixJQUFJO0FBS3RELFNBQVEsV0FBVztBQUNuQixTQUFRLDRCQUFxQztBQWdUckMsU0FBQSx1QkFBdUIsQ0FBQyxVQUE4QjtBQUM1RCxXQUFLLDRCQUE0QixpQkFBaUIsS0FBSyxVQUFVLEtBQUs7QUFBQSxJQUFBO0FBSWhFLFNBQUEsd0JBQXdCLENBQUMsVUFBOEI7QUFDN0QsVUFDRSxDQUFDLEtBQUssNkJBQ04sQ0FBQyxpQkFB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
738
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQudHMiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmaW5kUmVmZXJlbmNlZEVsZW1lbnQsIGlzU2FmYXJpIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgU2JiTmVnYXRpdmVNaXhpbiwgU2JiSHlkcmF0aW9uTWl4aW4gfSBmcm9tICcuLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQge1xuICBpc0V2ZW50T25FbGVtZW50LFxuICBvdmVybGF5R2FwRml4Q29ybmVycyxcbiAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyxcbiAgc2V0T3ZlcmxheVBvc2l0aW9uLFxufSBmcm9tICcuLi9jb3JlL292ZXJsYXkuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uL29wdGlvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBhcmlhIHJvbGUgJ2xpc3Rib3gnIG11c3QgYmUgb24gdGhlIGhvc3QgZWxlbWVudCwgb3IgZWxzZSBWb2ljZU92ZXIgd29uJ3Qgd29yayBhdCBhbGwuXG4gKiBPbiB0aGUgb3RoZXIgaGFuZCwgSkFXUyBhbmQgTlZEQSBuZWVkIHRoZSByb2xlIHRvIGJlIFwiY2xvc2VyXCIgdG8gdGhlIG9wdGlvbnMsIG9yIGVsc2Ugb3B0Z3JvdXBzIHdvbid0IHdvcmsuXG4gKi9cbmNvbnN0IGFyaWFSb2xlT25Ib3N0ID0gaXNTYWZhcmk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oXG4gIFNiYkh5ZHJhdGlvbk1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgd2hlcmUgdGhlIGF1dG9jb21wbGV0ZSB3aWxsIGF0dGFjaDsgYWNjZXB0cyBib3RoIGFuIGVsZW1lbnQncyBpZCBvciBhbiBIVE1MRWxlbWVudC5cbiAgICogSWYgbm90IHNldCwgaXQgd2lsbCBzZWFyY2ggZm9yIHRoZSBmaXJzdCAnc2JiLWZvcm0tZmllbGQnIGFuY2VzdG9yLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIG9yaWdpbj86IHN0cmluZyB8IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmc7IGFjY2VwdHMgYm90aCBhbiBlbGVtZW50J3MgaWQgb3IgYW4gSFRNTEVsZW1lbnQuXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBhdXRvY29tcGxldGUgd2lsbCBvcGVuIG9uIGZvY3VzLCBjbGljaywgaW5wdXQgb3IgYEFycm93RG93bmAga2V5cHJlc3Mgb2YgdGhlICd0cmlnZ2VyJyBlbGVtZW50LlxuICAgKiBJZiBub3Qgc2V0LCB3aWxsIHNlYXJjaCBmb3IgdGhlIGZpcnN0ICdpbnB1dCcgY2hpbGQgb2YgYSAnc2JiLWZvcm0tZmllbGQnIGFuY2VzdG9yLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHRyaWdnZXI/OiBzdHJpbmcgfCBIVE1MSW5wdXRFbGVtZW50O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBpY29uIHNwYWNlIGlzIHByZXNlcnZlZCB3aGVuIG5vIGljb24gaXMgc2V0LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmVzZXJ2ZS1pY29uLXNwYWNlJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgcHJlc2VydmVJY29uU3BhY2U/OiBib29sZWFuO1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBlbGVtZW50IHdoZXJlIGF1dG9jb21wbGV0ZSBvdmVybGF5IGlzIGF0dGFjaGVkIHRvLiAqL1xuICBwdWJsaWMgZ2V0IG9yaWdpbkVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIGlmICghdGhpcy5fb3JpZ2luRWxlbWVudCkge1xuICAgICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHRoaXMuX2ZpbmRPcmlnaW5FbGVtZW50KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcmlnaW5FbGVtZW50O1xuICB9XG4gIHByaXZhdGUgX29yaWdpbkVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcblxuICAvKiogUmV0dXJucyB0aGUgdHJpZ2dlciBlbGVtZW50LiAqL1xuICBwdWJsaWMgZ2V0IHRyaWdnZXJFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudDtcbiAgfVxuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3ZlcmxheUlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBwYW5lbFJvbGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIGFib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheSE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9vcHRpb25Db250YWluZXIhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2RpZExvYWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaXNQb2ludGVyRG93bkV2ZW50T25NZW51OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBvcHRpb25zKCk6IFNiYk9wdGlvbkJhc2VFbGVtZW50W107XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzeW5jTmVnYXRpdmUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldFRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNlbGVjdEJ5S2V5Ym9hcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZXNldEFjdGl2ZUVsZW1lbnQoKTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9uT3B0aW9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gIC8qKiBPcGVucyB0aGUgYXV0b2NvbXBsZXRlLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnN0YXRlICE9PSAnY2xvc2VkJyB8fFxuICAgICAgIXRoaXMuX292ZXJsYXkgfHxcbiAgICAgIHRoaXMub3B0aW9ucy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHRoaXMuX3JlYWRvbmx5KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLndpbGxPcGVuLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCk7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLndpbGxDbG9zZS5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuYWJvcnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmIChhcmlhUm9sZU9uSG9zdCkge1xuICAgICAgdGhpcy5pZCB8fD0gdGhpcy5vdmVybGF5SWQ7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuYWJvcnQuc2lnbmFsO1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdCgnc2JiLWZvcm0tZmllbGQnKSA/PyB0aGlzLmNsb3Nlc3QoJ1tkYXRhLWZvcm0tZmllbGRdJyk7XG5cbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gZm9ybUZpZWxkLmhhc0F0dHJpYnV0ZSgnbmVnYXRpdmUnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZGlkTG9hZCkge1xuICAgICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB9XG4gICAgdGhpcy5zeW5jTmVnYXRpdmUoKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5vbk9wdGlvbkNsaWNrKGUpLCB7IHNpZ25hbCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnb3JpZ2luJykpIHtcbiAgICAgIHRoaXMuX3Jlc2V0T3JpZ2luQ2xpY2tMaXN0ZW5lcih0aGlzLm9yaWdpbiwgY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCdvcmlnaW4nKSk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3RyaWdnZXInKSkge1xuICAgICAgdGhpcy5fcmVzZXRUcmlnZ2VyQ2xpY2tMaXN0ZW5lcih0aGlzLnRyaWdnZXIsIGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgndHJpZ2dlcicpKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5zeW5jTmVnYXRpdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIHRoaXMuX2RpZExvYWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIC8qKiBXaGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZCwgdXBkYXRlIHRoZSBpbnB1dCB2YWx1ZSBhbmQgY2xvc2UgdGhlIGF1dG9jb21wbGV0ZS4gKi9cbiAgcHJvdGVjdGVkIG9uT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIFNiYk9wdGlvbkJhc2VFbGVtZW50O1xuICAgIGlmICghdGFyZ2V0LnNlbGVjdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGVzZWxlY3QgdGhlIHByZXZpb3VzIG9wdGlvbnNcbiAgICB0aGlzLm9wdGlvbnNcbiAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmlkICE9PSB0YXJnZXQuaWQgJiYgb3B0aW9uLnNlbGVjdGVkKVxuICAgICAgLmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlKSk7XG5cbiAgICBpZiAodGhpcy50cmlnZ2VyRWxlbWVudCkge1xuICAgICAgLy8gU2V0IHRoZSBvcHRpb24gdmFsdWVcbiAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnQudmFsdWUgPSB0YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuXG4gICAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHRoZSBjaGFuZ2UgZXZlbnRzXG4gICAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5faGlnaGxpZ2h0T3B0aW9ucyh0aGlzLnRyaWdnZXJFbGVtZW50Py52YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIGF1dG9jb21wbGV0ZSBzaG91bGQgaW5oZXJpdCAncmVhZG9ubHknIHN0YXRlIGZyb20gdGhlIHRyaWdnZXIuICovXG4gIHByaXZhdGUgX3JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJFbGVtZW50Py5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgPz8gZmFsc2U7XG4gIH1cblxuICAvKiogUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLiAqL1xuICBwcml2YXRlIF9yZXNldE9yaWdpbkNsaWNrTGlzdGVuZXIoXG4gICAgbmV3VmFsdWU/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCxcbiAgICBvbGRWYWx1ZT86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuICApOiB2b2lkIHtcbiAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuICovXG4gIHByaXZhdGUgX3Jlc2V0VHJpZ2dlckNsaWNrTGlzdGVuZXIoXG4gICAgbmV3VmFsdWU/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCxcbiAgICBvbGRWYWx1ZT86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuICApOiB2b2lkIHtcbiAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBvbmVudFNldHVwKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuXG4gICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW9wdGlvbi1wYW5lbC1vcmlnaW4tYm9yZGVybGVzcycsXG4gICAgICAhIXRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpPy5oYXNBdHRyaWJ1dGUoJ2JvcmRlcmxlc3MnKSxcbiAgICApO1xuXG4gICAgdGhpcy5fYmluZFRvKHRoaXMuX2dldFRyaWdnZXJFbGVtZW50KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgd2lsbCBiZSBhdHRhY2hlZC5cbiAgICogQHJldHVybnMgJ29yaWdpbicgb3IgdGhlIGZpcnN0ICdzYmItZm9ybS1maWVsZCcgYW5jZXN0b3IuXG4gICAqL1xuICBwcml2YXRlIF9maW5kT3JpZ2luRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgbGV0IHJlc3VsdDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsO1xuXG4gICAgaWYgKCF0aGlzLm9yaWdpbikge1xuICAgICAgcmVzdWx0ID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk/LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I/LignI292ZXJsYXktYW5jaG9yJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudCh0aGlzLm9yaWdpbik7XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSBvcmlnaW4gZWxlbWVudC4gUGxlYXNlIHNwZWNpZnkgYSB2YWxpZCBlbGVtZW50IG9yIHJlYWQgdGhlIFwib3JpZ2luXCIgcHJvcCBkb2N1bWVudGF0aW9uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmcuXG4gICAqIEByZXR1cm5zICd0cmlnZ2VyJyBvciB0aGUgZmlyc3QgJ2lucHV0JyBpbnNpZGUgdGhlIG9yaWdpbiBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0VHJpZ2dlckVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLnRyaWdnZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKT8ucXVlcnlTZWxlY3RvcignaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudDxIVE1MSW5wdXRFbGVtZW50Pih0aGlzLnRyaWdnZXIpO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSB0cmlnZ2VyIGVsZW1lbnQuIFBsZWFzZSBzcGVjaWZ5IGEgdmFsaWQgZWxlbWVudCBvciByZWFkIHRoZSBcInRyaWdnZXJcIiBwcm9wIGRvY3VtZW50YXRpb24nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBfYmluZFRvKHRyaWdnZXJFbGVtOiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0cmlnZ2VyRWxlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IGF0dHJpYnV0ZXMgdG8gdGhlIG9sZCB0cmlnZ2VyIGFuZCBhZGQgdGhlbSB0byB0aGUgbmV3IG9uZVxuICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMudHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuc2V0VHJpZ2dlckF0dHJpYnV0ZXModHJpZ2dlckVsZW0pO1xuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyRWxlbTtcblxuICAgIHRoaXMuX3NldHVwVHJpZ2dlckV2ZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBUcmlnZ2VyRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gT3BlbiB0aGUgb3ZlcmxheSBvbiBmb2N1cywgY2xpY2ssIGlucHV0IGFuZCBgQXJyb3dEb3duYCBldmVudFxuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnaW5wdXQnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB0aGlzLl9oaWdobGlnaHRPcHRpb25zKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlci5zaWduYWwgfSxcbiAgICApO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX2Nsb3NlZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7IHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNldCBvdmVybGF5IHBvc2l0aW9uLCB3aWR0aCBhbmQgbWF4IGhlaWdodFxuICBwcml2YXRlIF9zZXRPdmVybGF5UG9zaXRpb24oKTogdm9pZCB7XG4gICAgc2V0T3ZlcmxheVBvc2l0aW9uKFxuICAgICAgdGhpcy5fb3ZlcmxheSxcbiAgICAgIHRoaXMub3JpZ2luRWxlbWVudCxcbiAgICAgIHRoaXMuX29wdGlvbkNvbnRhaW5lcixcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1hdXRvY29tcGxldGVfX2NvbnRhaW5lcicpISxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBPbiBvcGVuL2Nsb3NlIGFuaW1hdGlvbiBlbmQuXG4gICAqICBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAgKiAgVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX29uT3BlbkFuaW1hdGlvbkVuZCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX29uQ2xvc2VBbmltYXRpb25FbmQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbk9wZW5BbmltYXRpb25FbmQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX2F0dGFjaE9wZW5QYW5lbEV2ZW50cygpO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgdGhpcy5kaWRPcGVuLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uQ2xvc2VBbmltYXRpb25FbmQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgIHRoaXMucmVzZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgdGhpcy5fb3B0aW9uQ29udGFpbmVyLnNjcm9sbFRvcCA9IDA7XG4gICAgdGhpcy5kaWRDbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hPcGVuUGFuZWxFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIC8vIFJlY2FsY3VsYXRlIHRoZSBvdmVybGF5IHBvc2l0aW9uIG9uIHNjcm9sbCBhbmQgd2luZG93IHJlc2l6ZVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgYXV0b2NvbXBsZXRlIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKGV2KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgKGV2KSA9PiB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljayhldiksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBLZXlib2FyZCBpbnRlcmFjdGlvbnNcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLm9wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbWVudS5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vdmVybGF5LCBldmVudCk7XG4gIH07XG5cbiAgLy8gSWYgdGhlIGNsaWNrIGlzIG91dHNpZGUgdGhlIGF1dG9jb21wbGV0ZSwgY2xvc2VzIHRoZSBwYW5lbC5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgJiZcbiAgICAgICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5vcmlnaW5FbGVtZW50LCBldmVudClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfY2xvc2VkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIaWdobGlnaHQgdGhlIHNlYXJjaGVkIHRleHQgb24gdGhlIG9wdGlvbnMuICovXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbnMoc2VhcmNoVGVybT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChzZWFyY2hUZXJtID09PSBudWxsIHx8IHNlYXJjaFRlcm0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uaGlnaGxpZ2h0KHNlYXJjaFRlcm0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZVRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ/OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyhlbGVtZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj4ke292ZXJsYXlHYXBGaXhDb3JuZXJzKCl9PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19wYW5lbFwiXG4gICAgICAgICAgP2RhdGEtb3Blbj0ke3RoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJ31cbiAgICAgICAgICAke3JlZigob3ZlcmxheVJlZj86IEVsZW1lbnQpID0+ICh0aGlzLl9vdmVybGF5ID0gb3ZlcmxheVJlZiBhcyBIVE1MRWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX3dyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19vcHRpb25zXCJcbiAgICAgICAgICAgICAgcm9sZT0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMucGFuZWxSb2xlIDogbm90aGluZ31cbiAgICAgICAgICAgICAgaWQ9JHshYXJpYVJvbGVPbkhvc3QgPyB0aGlzLm92ZXJsYXlJZCA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICR7cmVmKChjb250YWluZXJSZWYpID0+ICh0aGlzLl9vcHRpb25Db250YWluZXIgPSBjb250YWluZXJSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzU2FmYXJpIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyB9IGZyb20gJy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdEdyb3VwRWxlbWVudCwgU2JiT3B0aW9uRWxlbWVudCB9IGZyb20gJy4uL29wdGlvbi5qcyc7XG5cbmltcG9ydCB7IFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IH0gZnJvbSAnLi9hdXRvY29tcGxldGUtYmFzZS1lbGVtZW50LmpzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgYXJpYSByb2xlICdsaXN0Ym94JyBtdXN0IGJlIG9uIHRoZSBob3N0IGVsZW1lbnQsIG9yIGVsc2UgVm9pY2VPdmVyIHdvbid0IHdvcmsgYXQgYWxsLlxuICogT24gdGhlIG90aGVyIGhhbmQsIEpBV1MgYW5kIE5WREEgbmVlZCB0aGUgcm9sZSB0byBiZSBcImNsb3NlclwiIHRvIHRoZSBvcHRpb25zLCBvciBlbHNlIG9wdGdyb3VwcyB3b24ndCB3b3JrLlxuICovXG5jb25zdCBhcmlhUm9sZU9uSG9zdCA9IGlzU2FmYXJpO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIGEgcGFuZWwgd2l0aCBhIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1vcHRpb25gIG9yIGBzYmItb3B0Z3JvdXBgIGVsZW1lbnRzIHRvIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGVgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlYCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItYXV0b2NvbXBsZXRlLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hdXRvY29tcGxldGUnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcm9sZTogYXJpYVJvbGVPbkhvc3QgPyAnbGlzdGJveCcgOiBudWxsLFxufSlcbmV4cG9ydCBjbGFzcyBTYmJBdXRvY29tcGxldGVFbGVtZW50IGV4dGVuZHMgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQge1xuICBwcm90ZWN0ZWQgb3ZlcmxheUlkID0gYHNiYi1hdXRvY29tcGxldGUtJHsrK25leHRJZH1gO1xuICBwcm90ZWN0ZWQgcGFuZWxSb2xlID0gJ2xpc3Rib3gnO1xuICBwcml2YXRlIF9hY3RpdmVJdGVtSW5kZXggPSAtMTtcblxuICBwcm90ZWN0ZWQgZ2V0IG9wdGlvbnMoKTogU2JiT3B0aW9uRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLW9wdGlvbicpID8/IFtdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbk9wdGlvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS5sb2NhbE5hbWUgIT09ICdzYmItb3B0aW9uJyB8fFxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBTYmJPcHRpb25FbGVtZW50KS5kaXNhYmxlZFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLmFib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnb3B0aW9uU2VsZWN0aW9uQ2hhbmdlJyxcbiAgICAgIChlOiBDdXN0b21FdmVudDx2b2lkPikgPT4gdGhpcy5vbk9wdGlvblNlbGVjdGVkKGUpLFxuICAgICAgeyBzaWduYWwgfSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bmNOZWdhdGl2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLWRpdmlkZXInKS5mb3JFYWNoKChkaXZpZGVyKSA9PiAoZGl2aWRlci5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmUpKTtcblxuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYk9wdGlvbkVsZW1lbnQgfCBTYmJPcHRHcm91cEVsZW1lbnQ+KFxuICAgICAgJ3NiYi1vcHRpb24sIHNiYi1vcHRncm91cCcsXG4gICAgKS5mb3JFYWNoKChlbGVtZW50KSA9PiBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1uZWdhdGl2ZScsIHRoaXMubmVnYXRpdmUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcGVuZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgdGhpcy5zZWxlY3RCeUtleWJvYXJkKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RCeUtleWJvYXJkKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMub3B0aW9uc1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdO1xuXG4gICAgaWYgKGFjdGl2ZU9wdGlvbikge1xuICAgICAgYWN0aXZlT3B0aW9uLnNldFNlbGVjdGVkVmlhVXNlckludGVyYWN0aW9uKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXROZXh0QWN0aXZlT3B0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcihcbiAgICAgIChvcHQpID0+ICFvcHQuZGlzYWJsZWQgJiYgIW9wdC5oYXNBdHRyaWJ1dGUoJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnKSxcbiAgICApO1xuXG4gICAgLy8gR2V0IGFuZCBhY3RpdmF0ZSB0aGUgbmV4dCBhY3RpdmUgb3B0aW9uXG4gICAgY29uc3QgbmV4dCA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCwgZmlsdGVyZWRPcHRpb25zLmxlbmd0aCk7XG4gICAgY29uc3QgbmV4dEFjdGl2ZU9wdGlvbiA9IGZpbHRlcmVkT3B0aW9uc1tuZXh0XTtcbiAgICBuZXh0QWN0aXZlT3B0aW9uLnNldEFjdGl2ZSh0cnVlKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcsIG5leHRBY3RpdmVPcHRpb24uaWQpO1xuICAgIG5leHRBY3RpdmVPcHRpb24uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuXG4gICAgLy8gUmVzZXQgdGhlIHByZXZpb3VzIGFjdGl2ZSBvcHRpb25cbiAgICBjb25zdCBsYXN0QWN0aXZlT3B0aW9uID0gZmlsdGVyZWRPcHRpb25zW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF07XG4gICAgaWYgKGxhc3RBY3RpdmVPcHRpb24pIHtcbiAgICAgIGxhc3RBY3RpdmVPcHRpb24uc2V0QWN0aXZlKGZhbHNlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSBuZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0QWN0aXZlRWxlbWVudCgpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gdGhpcy5vcHRpb25zW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF07XG5cbiAgICBpZiAoYWN0aXZlRWxlbWVudCkge1xuICAgICAgYWN0aXZlRWxlbWVudC5zZXRBY3RpdmUoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSAtMTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICBzZXRBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzKGVsZW1lbnQsIGFyaWFSb2xlT25Ib3N0ID8gdGhpcy5pZCA6IHRoaXMub3ZlcmxheUlkLCBmYWxzZSk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1hdXRvY29tcGxldGUnOiBTYmJBdXRvY29tcGxldGVFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiYXJpYVJvbGVPbkhvc3QiLCJfX2RlY29yYXRlQ2xhc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2QkEsTUFBTUEsbUJBQWlCO0FBRWhCLE1BQWUsOEJBQWYsTUFBZSxvQ0FBbUM7QUFBQSxFQUN2RCxrQkFBa0IsdUJBQXVCO0FBQzNDLEVBQUU7QUFBQSxFQUZLLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQXVDSyxTQUFBLFFBQVEsSUFBSSw0QkFBNEIsSUFBSTtBQUt0RCxTQUFRLFdBQVc7QUFDbkIsU0FBUSw0QkFBcUM7QUFxVHJDLFNBQUEsdUJBQXVCLENBQUMsVUFBOEI7QUFDNUQsV0FBSyw0QkFBNEIsaUJBQWlCLEtBQUssVUFBVSxLQUFLO0FBQUEsSUFBQTtBQUloRSxTQUFBLHdCQUF3QixDQUFDLFVBQThCO0FBQzdELFVBQ0UsQ0FBQyxLQUFLLDZCQUNOLENBQUMsaUJBQWlCLEtBQUssVUFBVSxLQUFLLEtBQ3RDLENBQUMsaUJB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
@@ -19,7 +19,6 @@ export declare class SbbBreadcrumbGroupElement extends SbbBreadcrumbGroupElement
19
19
  private _handleKeyDown;
20
20
  connectedCallback(): void;
21
21
  protected firstUpdated(changedProperties: PropertyValues<this>): void;
22
- disconnectedCallback(): void;
23
22
  protected willUpdate(changedProperties: PropertyValues<WithListChildren<this>>): void;
24
23
  protected updated(changedProperties: PropertyValues<WithListChildren<this>>): void;
25
24
  /** Apply the aria-current attribute to the last sbb-breadcrumb element. */
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb-group.d.ts","sourceRoot":"","sources":["../../../../../src/elements/breadcrumb/breadcrumb-group/breadcrumb-group.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAYb,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,eAAe,CAAC;;AAIvB;;;;GAIG;AACH,qBAIa,yBAA0B,SAAQ,8BAGlC;IACX,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,mBAA4B,mBAAmB,WAAsB;IAIrE,OAAO,KAAK,MAAM,QAEjB;IACD,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,CAAC,eAAe,CAAoE;IAC3F,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,cAAc;IAiBN,iBAAiB,IAAI,IAAI;cAMtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;cAKzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;cAQ3E,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;IAa3F,2EAA2E;IAC3E,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,UAAU;IAYlB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAK1B,kGAAkG;IAClG,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,eAAe;cAgBJ,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,sBAAsB,EAAE,yBAAyB,CAAC;KACnD;CACF"}
1
+ {"version":3,"file":"breadcrumb-group.d.ts","sourceRoot":"","sources":["../../../../../src/elements/breadcrumb/breadcrumb-group/breadcrumb-group.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAYb,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,eAAe,CAAC;;AAIvB;;;;GAIG;AACH,qBAIa,yBAA0B,SAAQ,8BAGlC;IACX,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,mBAA4B,mBAAmB,WAAsB;IAIrE,OAAO,KAAK,MAAM,QAEjB;IACD,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,CAAC,eAAe,CAIpB;IACH,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,cAAc;IAiBN,iBAAiB,IAAI,IAAI;cAMtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAO3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;cAQ3E,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;IAa3F,2EAA2E;IAC3E,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,UAAU;IAYlB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAK1B,kGAAkG;IAClG,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,eAAe;cAgBJ,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,sBAAsB,EAAE,yBAAyB,CAAC;KACnD;CACF"}
@@ -1,3 +1,4 @@
1
+ import { ResizeController } from "@lit-labs/observers/resize-controller.js";
1
2
  import { css, LitElement, html, nothing } from "lit";
2
3
  import { state, customElement } from "lit/decorators.js";
3
4
  import { isArrowKeyPressed, sbbInputModalityDetector, getNextElementIndex } from "../core/a11y.js";
@@ -6,22 +7,8 @@ import { hostAttributes } from "../core/decorators.js";
6
7
  import { setOrRemoveAttribute } from "../core/dom.js";
7
8
  import { i18nBreadcrumbEllipsisButtonLabel } from "../core/i18n.js";
8
9
  import { SbbNamedSlotListMixin } from "../core/mixins.js";
9
- import { AgnosticResizeObserver } from "../core/observers.js";
10
10
  import "../icon.js";
11
- const style = css`/**
12
- * Better font rendering (on OS X)
13
- * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
14
- *
15
- * Usage:
16
- *
17
- * .var_dark_on_light {
18
- * @include font-smoothing;
19
- * }
20
- * .var_light_on_dark {
21
- * @include font-smoothing-reset;
22
- * }
23
- */
24
- /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
11
+ const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
25
12
  /*
26
13
  * SBB table mixin
27
14
  * Notes:
@@ -139,7 +126,11 @@ let SbbBreadcrumbGroupElement = class extends SbbNamedSlotListMixin(LitElement)
139
126
  constructor() {
140
127
  super(...arguments);
141
128
  this.listChildLocalNames = ["sbb-breadcrumb"];
142
- this._resizeObserver = new AgnosticResizeObserver(() => this._evaluateCollapsedState());
129
+ this._resizeObserver = new ResizeController(this, {
130
+ target: null,
131
+ skipInitial: true,
132
+ callback: () => this._evaluateCollapsedState()
133
+ });
143
134
  this._abort = new SbbConnectedAbortController(this);
144
135
  this._language = new SbbLanguageController(this);
145
136
  this._markForFocus = false;
@@ -172,10 +163,6 @@ let SbbBreadcrumbGroupElement = class extends SbbNamedSlotListMixin(LitElement)
172
163
  this._resizeObserver.observe(this);
173
164
  this.toggleAttribute("data-loaded", true);
174
165
  }
175
- disconnectedCallback() {
176
- super.disconnectedCallback();
177
- this._resizeObserver.disconnect();
178
- }
179
166
  willUpdate(changedProperties) {
180
167
  super.willUpdate(changedProperties);
181
168
  if (changedProperties.has("listChildren")) {
@@ -234,7 +221,8 @@ let SbbBreadcrumbGroupElement = class extends SbbNamedSlotListMixin(LitElement)
234
221
  _evaluateCollapsedState() {
235
222
  if (!this._state && this.scrollWidth > this.offsetWidth && this.listChildren.length >= MIN_BREADCRUMBS_TO_COLLAPSE) {
236
223
  this._state = "collapsed";
237
- this._resizeObserver.disconnect();
224
+ this._resizeObserver.hostDisconnected();
225
+ this.removeController(this._resizeObserver);
238
226
  }
239
227
  }
240
228
  _renderCollapsed() {
@@ -301,4 +289,4 @@ SbbBreadcrumbGroupElement = __decorateClass([
301
289
  export {
302
290
  SbbBreadcrumbGroupElement
303
291
  };
304
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ncm91cC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi1ncm91cC9icmVhZGNydW1iLWdyb3VwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIG5vdGhpbmcsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgZ2V0TmV4dEVsZW1lbnRJbmRleCxcbiAgaXNBcnJvd0tleVByZXNzZWQsXG4gIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvcixcbn0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IGkxOG5CcmVhZGNydW1iRWxsaXBzaXNCdXR0b25MYWJlbCB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sIHR5cGUgV2l0aExpc3RDaGlsZHJlbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IEFnbm9zdGljUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuLi8uLi9jb3JlL29ic2VydmVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkJyZWFkY3J1bWJFbGVtZW50IH0gZnJvbSAnLi4vYnJlYWRjcnVtYi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2JyZWFkY3J1bWItZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9pY29uLmpzJztcblxuY29uc3QgTUlOX0JSRUFEQ1JVTUJTX1RPX0NPTExBUFNFID0gMztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYHNiYi1icmVhZGNydW1iYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1icmVhZGNydW1iYCBlbGVtZW50cy5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1icmVhZGNydW1iLWdyb3VwJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHJvbGU6ICduYXZpZ2F0aW9uJyxcbn0pXG5leHBvcnQgY2xhc3MgU2JiQnJlYWRjcnVtYkdyb3VwRWxlbWVudCBleHRlbmRzIFNiYk5hbWVkU2xvdExpc3RNaXhpbjxcbiAgU2JiQnJlYWRjcnVtYkVsZW1lbnQsXG4gIHR5cGVvZiBMaXRFbGVtZW50XG4+KExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gWydzYmItYnJlYWRjcnVtYiddO1xuXG4gIC8qIFRoZSBzdGF0ZSBvZiB0aGUgYnJlYWRjcnVtYiBncm91cC4gKi9cbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBzZXQgX3N0YXRlKHN0YXRlOiAnY29sbGFwc2VkJyB8ICdtYW51YWxseS1leHBhbmRlZCcgfCBudWxsKSB7XG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcywgJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6ICdjb2xsYXBzZWQnIHwgJ21hbnVhbGx5LWV4cGFuZGVkJyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpIGFzICdjb2xsYXBzZWQnIHwgJ21hbnVhbGx5LWV4cGFuZGVkJyB8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlciA9IG5ldyBBZ25vc3RpY1Jlc2l6ZU9ic2VydmVyKCgpID0+IHRoaXMuX2V2YWx1YXRlQ29sbGFwc2VkU3RhdGUoKSk7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9tYXJrRm9yRm9jdXMgPSBmYWxzZTtcblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggfHxcbiAgICAgIC8vIGRvbid0IHRyYXAgbmVzdGVkIGhhbmRsaW5nXG4gICAgICAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpICE9PSB0aGlzICYmIChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50ICE9PSB0aGlzKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0Fycm93S2V5UHJlc3NlZChldnQpKSB7XG4gICAgICBpZiAodGhpcy5fc3RhdGUgPT09ICdjb2xsYXBzZWQnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c05leHRDb2xsYXBzZWQoZXZ0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2ZvY3VzTmV4dChldnQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5RG93bihlKSwgeyBzaWduYWwgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWxvYWRlZCcsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgdGhpcy5fc3luY0JyZWFkY3J1bWJzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5fZXZhbHVhdGVDb2xsYXBzZWRTdGF0ZSgpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX21hcmtGb3JGb2N1cyAmJiBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblsxXT8uZm9jdXMoKTtcblxuICAgICAgLy8gUmVzZXQgbWFyayBmb3IgZm9jdXNcbiAgICAgIHRoaXMuX21hcmtGb3JGb2N1cyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBcHBseSB0aGUgYXJpYS1jdXJyZW50IGF0dHJpYnV0ZSB0byB0aGUgbGFzdCBzYmItYnJlYWRjcnVtYiBlbGVtZW50LiAqL1xuICBwcml2YXRlIF9zeW5jQnJlYWRjcnVtYnMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0Q2hpbGRyZW5cbiAgICAgIC5zbGljZSgwLCAtMSlcbiAgICAgIC5maWx0ZXIoKGMpID0+IGMuaGFzQXR0cmlidXRlKCdhcmlhLWN1cnJlbnQnKSlcbiAgICAgIC5mb3JFYWNoKChjKSA9PiBjLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1jdXJyZW50JykpO1xuICAgIHRoaXMubGlzdENoaWxkcmVuW3RoaXMubGlzdENoaWxkcmVuLmxlbmd0aCAtIDFdPy5zZXRBdHRyaWJ1dGUoJ2FyaWEtY3VycmVudCcsICdwYWdlJyk7XG5cbiAgICAvLyBJZiBpdCBpcyBub3QgZXhwYW5kYWJsZSwgcmVzZXQgc3RhdGVcbiAgICBpZiAodGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIDwgTUlOX0JSRUFEQ1JVTUJTX1RPX0NPTExBUFNFKSB7XG4gICAgICB0aGlzLl9zdGF0ZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGZvY3VzIG9uIHRoZSBjb3JyZWN0IGVsZW1lbnQgd2hlbiB0aGUgZWxsaXBzaXMgYnJlYWRjcnVtYiBpcyBkaXNwbGF5ZWQgYW5kIHRoZSB1c2VyIGlzIG5hdmlnYXRpbmcgd2l0aCBrZXlib2FyZCdzIGFycm93cy5cbiAgICovXG4gIHByaXZhdGUgX2ZvY3VzTmV4dENvbGxhcHNlZChldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBhcnJheUNvbGxhcHNlZDogU2JiQnJlYWRjcnVtYkVsZW1lbnRbXSA9IFtcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuWzBdLFxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcjc2JiLWJyZWFkY3J1bWItZWxsaXBzaXMnKSBhcyBTYmJCcmVhZGNydW1iRWxlbWVudCxcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuW3RoaXMubGlzdENoaWxkcmVuLmxlbmd0aCAtIDFdLFxuICAgIF07XG4gICAgdGhpcy5fZm9jdXNOZXh0KGV2dCwgYXJyYXlDb2xsYXBzZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNOZXh0KFxuICAgIGV2dDogS2V5Ym9hcmRFdmVudCxcbiAgICBicmVhZGNydW1iczogU2JiQnJlYWRjcnVtYkVsZW1lbnRbXSA9IHRoaXMubGlzdENoaWxkcmVuLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50OiBudW1iZXIgPSBicmVhZGNydW1icy5maW5kSW5kZXgoXG4gICAgICAoZSkgPT4gZSA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB8fCBlID09PSB0aGlzLnNoYWRvd1Jvb3QhLmFjdGl2ZUVsZW1lbnQsXG4gICAgKTtcbiAgICBjb25zdCBuZXh0SW5kZXg6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBicmVhZGNydW1icy5sZW5ndGgpO1xuICAgIGJyZWFkY3J1bWJzW25leHRJbmRleF0/LmZvY3VzKCk7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogTm90ZTogZHVlIHRvIEBTdGF0ZSBhbm5vdGF0aW9uIG9uIF9zdGF0ZSwgdGhpcyBtZXRob2QgdHJpZ2dlcnMgYSBuZXcgcmVuZGVyOyBhcyBhIGNvbnNlcXVlbmNlLCB0aGUgZm9jdXMgaXMgbW92ZWRcbiAgICogdG8gdGhlIGBib2R5YCwgc28gaWYgdGhlIGVsbGlwc2lzIGVsZW1lbnQgaGFzIGZvY3VzLCBpdCdzIGFzeW5jaHJvbm91c2x5IGZvcmNlZCB0byB0aGUgZmlyc3QgZWxlbWVudC5cbiAgICovXG4gIHByaXZhdGUgX2V4cGFuZEJyZWFkY3J1bWJzKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ21hbnVhbGx5LWV4cGFuZGVkJztcbiAgICB0aGlzLl9tYXJrRm9yRm9jdXMgPSB0cnVlO1xuICB9XG5cbiAgLyoqIEV2YWx1YXRlIGlmIHRoZSBleHBhbmRlZCBicmVhZGNydW1iIGVsZW1lbnQgZml0cyBpbiBwYWdlIHdpZHRoLCBvdGhlcndpc2UgaXQgbmVlZHMgZWxsaXBzaXMgKi9cbiAgcHJpdmF0ZSBfZXZhbHVhdGVDb2xsYXBzZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5fc3RhdGUgJiZcbiAgICAgIHRoaXMuc2Nyb2xsV2lkdGggPiB0aGlzLm9mZnNldFdpZHRoICYmXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggPj0gTUlOX0JSRUFEQ1JVTUJTX1RPX0NPTExBUFNFXG4gICAgKSB7XG4gICAgICB0aGlzLl9zdGF0ZSA9ICdjb2xsYXBzZWQnO1xuICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckNvbGxhcHNlZCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwibGktMFwiPjwvc2xvdD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiIGlkPVwic2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXNcIj5cbiAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2RpdmlkZXItaWNvblwiXG4gICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgaWQ9XCJzYmItYnJlYWRjcnVtYi1lbGxpcHNpc1wiXG4gICAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5CcmVhZGNydW1iRWxsaXBzaXNCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX2V4cGFuZEJyZWFkY3J1bWJzKCl9XG4gICAgICAgID5cbiAgICAgICAgICAuLi5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2l0ZW1cIj5cbiAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2RpdmlkZXItaWNvblwiXG4gICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICA8c2xvdCBuYW1lPSR7YGxpLSR7dGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIC0gMX1gfT48L3Nsb3Q+XG4gICAgICA8L2xpPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJFeHBhbmRlZCgpOiBUZW1wbGF0ZVJlc3VsdFtdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0U2xvdEVudHJpZXMoKS5tYXAoXG4gICAgICAoc2xvdCwgaW5kZXgsIGFycmF5KSA9PiBodG1sYFxuICAgICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9JHtzbG90Lm5hbWV9Pjwvc2xvdD5cbiAgICAgICAgICAke2luZGV4ICE9PSBhcnJheS5sZW5ndGggLSAxXG4gICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2RpdmlkZXItaWNvblwiXG4gICAgICAgICAgICAgID48L3NiYi1pY29uPmBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPC9saT5cbiAgICAgIGAsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPG9sIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBcIj5cbiAgICAgICAgJHt0aGlzLl9zdGF0ZSA9PT0gJ2NvbGxhcHNlZCcgPyB0aGlzLl9yZW5kZXJDb2xsYXBzZWQoKSA6IHRoaXMuX3JlbmRlckV4cGFuZGVkKCl9XG4gICAgICA8L29sPlxuICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX1cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYnJlYWRjcnVtYi1ncm91cCc6IFNiYkJyZWFkY3J1bWJHcm91cEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzdGF0ZSJdLCJtYXBwaW5n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
292
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ncm91cC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi1ncm91cC9icmVhZGNydW1iLWdyb3VwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIExpdEVsZW1lbnQsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgZ2V0TmV4dEVsZW1lbnRJbmRleCxcbiAgaXNBcnJvd0tleVByZXNzZWQsXG4gIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvcixcbn0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IGkxOG5CcmVhZGNydW1iRWxsaXBzaXNCdXR0b25MYWJlbCB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sIHR5cGUgV2l0aExpc3RDaGlsZHJlbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiQnJlYWRjcnVtYkVsZW1lbnQgfSBmcm9tICcuLi9icmVhZGNydW1iLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYnJlYWRjcnVtYi1ncm91cC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL2ljb24uanMnO1xuXG5jb25zdCBNSU5fQlJFQURDUlVNQlNfVE9fQ09MTEFQU0UgPSAzO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWJyZWFkY3J1bWJgIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWJyZWFkY3J1bWJgIGVsZW1lbnRzLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWJyZWFkY3J1bWItZ3JvdXAnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcm9sZTogJ25hdmlnYXRpb24nLFxufSlcbmV4cG9ydCBjbGFzcyBTYmJCcmVhZGNydW1iR3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJCcmVhZGNydW1iRWxlbWVudCxcbiAgdHlwZW9mIExpdEVsZW1lbnRcbj4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxpc3RDaGlsZExvY2FsTmFtZXMgPSBbJ3NiYi1icmVhZGNydW1iJ107XG5cbiAgLyogVGhlIHN0YXRlIG9mIHRoZSBicmVhZGNydW1iIGdyb3VwLiAqL1xuICBAc3RhdGUoKVxuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6ICdjb2xsYXBzZWQnIHwgJ21hbnVhbGx5LWV4cGFuZGVkJyB8IG51bGwpIHtcbiAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZSh0aGlzLCAnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcml2YXRlIGdldCBfc3RhdGUoKTogJ2NvbGxhcHNlZCcgfCAnbWFudWFsbHktZXhwYW5kZWQnIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgJ2NvbGxhcHNlZCcgfCAnbWFudWFsbHktZXhwYW5kZWQnIHwgbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fZXZhbHVhdGVDb2xsYXBzZWRTdGF0ZSgpLFxuICB9KTtcbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX21hcmtGb3JGb2N1cyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzTmV4dENvbGxhcHNlZChldnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5fZm9jdXNOZXh0KGV2dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpLCB7IHNpZ25hbCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbG9hZGVkJywgdHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICB0aGlzLl9zeW5jQnJlYWRjcnVtYnMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLl9ldmFsdWF0ZUNvbGxhcHNlZFN0YXRlKCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbWFya0ZvckZvY3VzICYmIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuWzFdPy5mb2N1cygpO1xuXG4gICAgICAvLyBSZXNldCBtYXJrIGZvciBmb2N1c1xuICAgICAgdGhpcy5fbWFya0ZvckZvY3VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFwcGx5IHRoZSBhcmlhLWN1cnJlbnQgYXR0cmlidXRlIHRvIHRoZSBsYXN0IHNiYi1icmVhZGNydW1iIGVsZW1lbnQuICovXG4gIHByaXZhdGUgX3N5bmNCcmVhZGNydW1icygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgLnNsaWNlKDAsIC0xKVxuICAgICAgLmZpbHRlcigoYykgPT4gYy5oYXNBdHRyaWJ1dGUoJ2FyaWEtY3VycmVudCcpKVxuICAgICAgLmZvckVhY2goKGMpID0+IGMucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWN1cnJlbnQnKSk7XG4gICAgdGhpcy5saXN0Q2hpbGRyZW5bdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIC0gMV0/LnNldEF0dHJpYnV0ZSgnYXJpYS1jdXJyZW50JywgJ3BhZ2UnKTtcblxuICAgIC8vIElmIGl0IGlzIG5vdCBleHBhbmRhYmxlLCByZXNldCBzdGF0ZVxuICAgIGlmICh0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggPCBNSU5fQlJFQURDUlVNQlNfVE9fQ09MTEFQU0UpIHtcbiAgICAgIHRoaXMuX3N0YXRlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZm9jdXMgb24gdGhlIGNvcnJlY3QgZWxlbWVudCB3aGVuIHRoZSBlbGxpcHNpcyBicmVhZGNydW1iIGlzIGRpc3BsYXllZCBhbmQgdGhlIHVzZXIgaXMgbmF2aWdhdGluZyB3aXRoIGtleWJvYXJkJ3MgYXJyb3dzLlxuICAgKi9cbiAgcHJpdmF0ZSBfZm9jdXNOZXh0Q29sbGFwc2VkKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGFycmF5Q29sbGFwc2VkOiBTYmJCcmVhZGNydW1iRWxlbWVudFtdID0gW1xuICAgICAgdGhpcy5saXN0Q2hpbGRyZW5bMF0sXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJyNzYmItYnJlYWRjcnVtYi1lbGxpcHNpcycpIGFzIFNiYkJyZWFkY3J1bWJFbGVtZW50LFxuICAgICAgdGhpcy5saXN0Q2hpbGRyZW5bdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIC0gMV0sXG4gICAgXTtcbiAgICB0aGlzLl9mb2N1c05leHQoZXZ0LCBhcnJheUNvbGxhcHNlZCk7XG4gIH1cblxuICBwcml2YXRlIF9mb2N1c05leHQoXG4gICAgZXZ0OiBLZXlib2FyZEV2ZW50LFxuICAgIGJyZWFkY3J1bWJzOiBTYmJCcmVhZGNydW1iRWxlbWVudFtdID0gdGhpcy5saXN0Q2hpbGRyZW4sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGJyZWFkY3J1bWJzLmZpbmRJbmRleChcbiAgICAgIChlKSA9PiBlID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IHx8IGUgPT09IHRoaXMuc2hhZG93Um9vdCEuYWN0aXZlRWxlbWVudCxcbiAgICApO1xuICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGJyZWFkY3J1bWJzLmxlbmd0aCk7XG4gICAgYnJlYWRjcnVtYnNbbmV4dEluZGV4XT8uZm9jdXMoKTtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RlOiBkdWUgdG8gQFN0YXRlIGFubm90YXRpb24gb24gX3N0YXRlLCB0aGlzIG1ldGhvZCB0cmlnZ2VycyBhIG5ldyByZW5kZXI7IGFzIGEgY29uc2VxdWVuY2UsIHRoZSBmb2N1cyBpcyBtb3ZlZFxuICAgKiB0byB0aGUgYGJvZHlgLCBzbyBpZiB0aGUgZWxsaXBzaXMgZWxlbWVudCBoYXMgZm9jdXMsIGl0J3MgYXN5bmNocm9ub3VzbHkgZm9yY2VkIHRvIHRoZSBmaXJzdCBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZXhwYW5kQnJlYWRjcnVtYnMoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnbWFudWFsbHktZXhwYW5kZWQnO1xuICAgIHRoaXMuX21hcmtGb3JGb2N1cyA9IHRydWU7XG4gIH1cblxuICAvKiogRXZhbHVhdGUgaWYgdGhlIGV4cGFuZGVkIGJyZWFkY3J1bWIgZWxlbWVudCBmaXRzIGluIHBhZ2Ugd2lkdGgsIG90aGVyd2lzZSBpdCBuZWVkcyBlbGxpcHNpcyAqL1xuICBwcml2YXRlIF9ldmFsdWF0ZUNvbGxhcHNlZFN0YXRlKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9zdGF0ZSAmJlxuICAgICAgdGhpcy5zY3JvbGxXaWR0aCA+IHRoaXMub2Zmc2V0V2lkdGggJiZcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCA+PSBNSU5fQlJFQURDUlVNQlNfVE9fQ09MTEFQU0VcbiAgICApIHtcbiAgICAgIHRoaXMuX3N0YXRlID0gJ2NvbGxhcHNlZCc7XG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5ob3N0RGlzY29ubmVjdGVkKCk7XG4gICAgICB0aGlzLnJlbW92ZUNvbnRyb2xsZXIodGhpcy5fcmVzaXplT2JzZXJ2ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckNvbGxhcHNlZCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwibGktMFwiPjwvc2xvdD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiIGlkPVwic2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXNcIj5cbiAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2RpdmlkZXItaWNvblwiXG4gICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgaWQ9XCJzYmItYnJlYWRjcnVtYi1lbGxpcHNpc1wiXG4gICAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5CcmVhZGNydW1iRWxsaXBzaXNCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX2V4cGFuZEJyZWFkY3J1bWJzKCl9XG4gICAgICAgID5cbiAgICAgICAgICAuLi5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2l0ZW1cIj5cbiAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2RpdmlkZXItaWNvblwiXG4gICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICA8c2xvdCBuYW1lPSR7YGxpLSR7dGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIC0gMX1gfT48L3Nsb3Q+XG4gICAgICA8L2xpPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJFeHBhbmRlZCgpOiBUZW1wbGF0ZVJlc3VsdFtdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0U2xvdEVudHJpZXMoKS5tYXAoXG4gICAgICAoc2xvdCwgaW5kZXgsIGFycmF5KSA9PiBodG1sYFxuICAgICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9JHtzbG90Lm5hbWV9Pjwvc2xvdD5cbiAgICAgICAgICAke2luZGV4ICE9PSBhcnJheS5sZW5ndGggLSAxXG4gICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBfX2RpdmlkZXItaWNvblwiXG4gICAgICAgICAgICAgID48L3NiYi1pY29uPmBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPC9saT5cbiAgICAgIGAsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPG9sIGNsYXNzPVwic2JiLWJyZWFkY3J1bWItZ3JvdXBcIj5cbiAgICAgICAgJHt0aGlzLl9zdGF0ZSA9PT0gJ2NvbGxhcHNlZCcgPyB0aGlzLl9yZW5kZXJDb2xsYXBzZWQoKSA6IHRoaXMuX3JlbmRlckV4cGFuZGVkKCl9XG4gICAgICA8L29sPlxuICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX1cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYnJlYWRjcnVtYi1ncm91cCc6IFNiYkJyZWFkY3J1bWJHcm91cEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzdGF0ZSJdLCJtYXBw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
@@ -4,20 +4,7 @@ import { SbbLinkBaseElement } from "../core/base-elements.js";
4
4
  import { SbbHydrationMixin } from "../core/mixins.js";
5
5
  import { SbbIconNameMixin } from "../icon.js";
6
6
  import { css } from "lit";
7
- const style = css`/**
8
- * Better font rendering (on OS X)
9
- * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
10
- *
11
- * Usage:
12
- *
13
- * .var_dark_on_light {
14
- * @include font-smoothing;
15
- * }
16
- * .var_light_on_dark {
17
- * @include font-smoothing-reset;
18
- * }
19
- */
20
- /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
7
+ const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
21
8
  /*
22
9
  * SBB table mixin
23
10
  * Notes:
@@ -133,4 +120,4 @@ SbbBreadcrumbElement = __decorateClass([
133
120
  export {
134
121
  SbbBreadcrumbElement
135
122
  };
136
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IFNiYkxpbmtCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYnJlYWRjcnVtYi5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgbGluayB0byBhIHBhZ2U7IHVzZWQgd2l0aGluIGEgYHNiYi1icmVhZGNydW1iLWdyb3VwYCBpdCBjYW4gZGlzcGxheSB0aGUgcGF0aCB0byB0aGUgY3VycmVudCBwYWdlLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGJyZWFkY3J1bWIuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgdG8gZGlzcGxheSBhbiBpY29uIGFzIGJyZWFkY3J1bWIuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItYnJlYWRjcnVtYicpXG5leHBvcnQgY2xhc3MgU2JiQnJlYWRjcnVtYkVsZW1lbnQgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFNiYkh5ZHJhdGlvbk1peGluKFNiYkxpbmtCYXNlRWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBfaGFzVGV4dCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5faGFzVGV4dCA9IEFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzID8/IFtdKS5zb21lKFxuICAgICAgKG4pID0+ICEobiBhcyBFbGVtZW50KS5zbG90ICYmIG4udGV4dENvbnRlbnQ/LnRyaW0oKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5yZW5kZXJJY29uU2xvdCgnc2JiLWJyZWFkY3J1bWJfX2ljb24nKX1cbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWJyZWFkY3J1bWJfX2xhYmVsXCIgP2hpZGRlbj0keyF0aGlzLl9oYXNUZXh0fT5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWJyZWFkY3J1bWInOiBTYmJCcmVhZGNydW1iRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQk8sSUFBTSx1QkFBTixjQUFtQyxpQkFBaUIsa0JBQWtCLGtCQUFrQixDQUFDLEVBQUU7QUFBQSxFQUEzRixjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFHSSxTQUFRLFdBQVc7QUFBQSxFQUFBO0FBQUEsRUFFcEIsb0JBQTBCO0FBQ2hDLFNBQUssV0FBVyxNQUFNLEtBQUssS0FBSyxjQUFjLENBQUUsQ0FBQSxFQUFFO0FBQUEsTUFDaEQsQ0FBQyxNQUFNOztBQUFBLGdCQUFFLEVBQWMsVUFBUSxPQUFFLGdCQUFGLG1CQUFlO0FBQUE7QUFBQSxJQUFLO0FBQUEsRUFFdkQ7QUFBQSxFQUVtQixpQkFBaUM7QUFDM0MsV0FBQTtBQUFBLFFBQ0gsS0FBSyxlQUFlLHNCQUFzQixDQUFDO0FBQUEsb0RBQ0MsQ0FBQyxLQUFLLFFBQVE7QUFBQSw0QkFDdEMsS0FBSyxpQkFBaUI7QUFBQTtBQUFBO0FBQUEsRUFHaEQ7QUFDRjtBQW5CYSxxQkFDWSxTQUF5QjtBQUUvQixnQkFBQTtBQUFBLEVBQWhCLE1BQU07QUFBQSxHQUhJLHFCQUdNLFdBQUEsWUFBQSxDQUFBO0FBSE4sdUJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsZ0JBQWdCO0FBQUEsR0FDbEIsb0JBQUE7In0=
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IFNiYkxpbmtCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYnJlYWRjcnVtYi5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgbGluayB0byBhIHBhZ2U7IHVzZWQgd2l0aGluIGEgYHNiYi1icmVhZGNydW1iLWdyb3VwYCBpdCBjYW4gZGlzcGxheSB0aGUgcGF0aCB0byB0aGUgY3VycmVudCBwYWdlLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGJyZWFkY3J1bWIuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgdG8gZGlzcGxheSBhbiBpY29uIGFzIGJyZWFkY3J1bWIuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItYnJlYWRjcnVtYicpXG5leHBvcnQgY2xhc3MgU2JiQnJlYWRjcnVtYkVsZW1lbnQgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFNiYkh5ZHJhdGlvbk1peGluKFNiYkxpbmtCYXNlRWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBfaGFzVGV4dCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5faGFzVGV4dCA9IEFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzID8/IFtdKS5zb21lKFxuICAgICAgKG4pID0+ICEobiBhcyBFbGVtZW50KS5zbG90ICYmIG4udGV4dENvbnRlbnQ/LnRyaW0oKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5yZW5kZXJJY29uU2xvdCgnc2JiLWJyZWFkY3J1bWJfX2ljb24nKX1cbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWJyZWFkY3J1bWJfX2xhYmVsXCIgP2hpZGRlbj0keyF0aGlzLl9oYXNUZXh0fT5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWJyZWFkY3J1bWInOiBTYmJCcmVhZGNydW1iRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCTyxJQUFNLHVCQUFOLGNBQW1DLGlCQUFpQixrQkFBa0Isa0JBQWtCLENBQUMsRUFBRTtBQUFBLEVBQTNGLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQUdJLFNBQVEsV0FBVztBQUFBLEVBQUE7QUFBQSxFQUVwQixvQkFBMEI7QUFDaEMsU0FBSyxXQUFXLE1BQU0sS0FBSyxLQUFLLGNBQWMsQ0FBRSxDQUFBLEVBQUU7QUFBQSxNQUNoRCxDQUFDLE1BQU07O0FBQUEsZ0JBQUUsRUFBYyxVQUFRLE9BQUUsZ0JBQUYsbUJBQWU7QUFBQTtBQUFBLElBQUs7QUFBQSxFQUV2RDtBQUFBLEVBRW1CLGlCQUFpQztBQUMzQyxXQUFBO0FBQUEsUUFDSCxLQUFLLGVBQWUsc0JBQXNCLENBQUM7QUFBQSxvREFDQyxDQUFDLEtBQUssUUFBUTtBQUFBLDRCQUN0QyxLQUFLLGlCQUFpQjtBQUFBO0FBQUE7QUFBQSxFQUdoRDtBQUNGO0FBbkJhLHFCQUNZLFNBQXlCO0FBRS9CLGdCQUFBO0FBQUEsRUFBaEIsTUFBTTtBQUFBLEdBSEkscUJBR00sV0FBQSxZQUFBLENBQUE7QUFITix1QkFBTixnQkFBQTtBQUFBLEVBRE4sY0FBYyxnQkFBZ0I7QUFBQSxHQUNsQixvQkFBQTsifQ==
@@ -1,6 +1,6 @@
1
1
  import { CSSResultGroup } from 'lit';
2
2
  import { SbbButtonBaseElement } from '../../core/base-elements.js';
3
- declare const SbbButtonElement_base: import('../../core/mixins.js').AbstractConstructor<import('../common.js').SbbButtonCommonElementMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType> & typeof SbbButtonBaseElement;
3
+ declare const SbbButtonElement_base: import('../../core/mixins.js').AbstractConstructor<import('../common.js').SbbButtonCommonElementMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType & import('../../core/mixins.js').SbbDisabledInteractiveMixinType> & typeof SbbButtonBaseElement;
4
4
  /**
5
5
  * It displays a button enhanced with the SBB Design in the 'primary' variant.
6
6
  *