@sbb-esta/lyne-elements 2.3.0 → 2.5.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 (428) hide show
  1. package/autocomplete/autocomplete-base-element.d.ts +1 -0
  2. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  3. package/autocomplete/autocomplete.d.ts.map +1 -1
  4. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  5. package/autocomplete-grid/autocomplete-grid.js +0 -1
  6. package/autocomplete.js +28 -28
  7. package/button/common/button-common.d.ts +1 -2
  8. package/button/common/button-common.d.ts.map +1 -1
  9. package/button/common.js +4 -4
  10. package/calendar/calendar.d.ts +55 -11
  11. package/calendar/calendar.d.ts.map +1 -1
  12. package/calendar.js +374 -224
  13. package/card/common/card-action-common.d.ts.map +1 -1
  14. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  15. package/checkbox/checkbox-group.js +1 -1
  16. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  17. package/clock/clock.d.ts +8 -0
  18. package/clock/clock.d.ts.map +1 -1
  19. package/clock.js +40 -31
  20. package/core/a11y/focus.d.ts.map +1 -1
  21. package/core/base-elements.js +36 -36
  22. package/core/controllers/escapable-overlay-controller.d.ts +11 -0
  23. package/core/controllers/escapable-overlay-controller.d.ts.map +1 -0
  24. package/core/controllers/inert-controller.d.ts +3 -3
  25. package/core/controllers/inert-controller.d.ts.map +1 -1
  26. package/core/controllers.d.ts +1 -0
  27. package/core/controllers.d.ts.map +1 -1
  28. package/core/controllers.js +79 -52
  29. package/core/datetime/date-adapter.d.ts +4 -2
  30. package/core/datetime/date-adapter.d.ts.map +1 -1
  31. package/core/datetime/native-date-adapter.d.ts +1 -1
  32. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  33. package/core/datetime.js +51 -43
  34. package/core/decorators/date-converter.d.ts +8 -0
  35. package/core/decorators/date-converter.d.ts.map +1 -0
  36. package/core/decorators/date-only-type.d.ts +8 -0
  37. package/core/decorators/date-only-type.d.ts.map +1 -0
  38. package/core/decorators/force-type.d.ts +1 -1
  39. package/core/decorators/force-type.d.ts.map +1 -1
  40. package/core/decorators/get-override.d.ts.map +1 -1
  41. package/core/decorators/handle-distinct-change.d.ts.map +1 -1
  42. package/core/decorators/host-attributes.d.ts.map +1 -1
  43. package/core/decorators/slot-state.d.ts.map +1 -1
  44. package/core/decorators.d.ts +2 -0
  45. package/core/decorators.d.ts.map +1 -1
  46. package/core/decorators.js +61 -41
  47. package/core/dom/input-element.d.ts +1 -1
  48. package/core/dom/input-element.d.ts.map +1 -1
  49. package/core/dom.js +5 -5
  50. package/core/eventing/throttle.d.ts.map +1 -1
  51. package/core/i18n/i18n.d.ts +5 -0
  52. package/core/i18n/i18n.d.ts.map +1 -1
  53. package/core/i18n.js +138 -108
  54. package/core/mixins/animation-complete-mixin.d.ts +13 -0
  55. package/core/mixins/animation-complete-mixin.d.ts.map +1 -0
  56. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  57. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  58. package/core/mixins/form-associated-input-mixin.d.ts +25 -0
  59. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -0
  60. package/core/mixins/form-associated-mixin.d.ts +13 -0
  61. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  62. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  63. package/core/mixins/hydration-mixin.d.ts.map +1 -1
  64. package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  65. package/core/mixins/negative-mixin.d.ts.map +1 -1
  66. package/core/mixins/panel-mixin.d.ts.map +1 -1
  67. package/core/mixins/required-mixin.d.ts.map +1 -1
  68. package/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  69. package/core/mixins.d.ts +2 -0
  70. package/core/mixins.d.ts.map +1 -1
  71. package/core/mixins.js +566 -341
  72. package/core/styles/core.scss +84 -1
  73. package/core/styles/mixins/link.scss +14 -0
  74. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +3 -0
  75. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +4 -1
  76. package/core/testing/mocha-extensions.d.ts.map +1 -1
  77. package/core/testing/wait-for-render.d.ts.map +1 -1
  78. package/core.css +53 -3
  79. package/custom-elements.json +37278 -30220
  80. package/date-input/date-input.d.ts +75 -0
  81. package/date-input/date-input.d.ts.map +1 -0
  82. package/date-input.d.ts +2 -0
  83. package/date-input.d.ts.map +1 -0
  84. package/date-input.js +155 -0
  85. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  86. package/datepicker/common.js +49 -45
  87. package/datepicker/datepicker/datepicker.d.ts +16 -6
  88. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  89. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  90. package/datepicker/datepicker-toggle.js +41 -38
  91. package/datepicker/datepicker.js +95 -77
  92. package/development/autocomplete/autocomplete-base-element.d.ts +1 -0
  93. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  94. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  95. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  96. package/development/autocomplete-grid/autocomplete-grid.js +1 -2
  97. package/development/autocomplete.js +9 -4
  98. package/development/button/common/button-common.d.ts +1 -2
  99. package/development/button/common/button-common.d.ts.map +1 -1
  100. package/development/button/common.js +26 -24
  101. package/development/calendar/calendar.d.ts +55 -11
  102. package/development/calendar/calendar.d.ts.map +1 -1
  103. package/development/calendar.js +301 -87
  104. package/development/card/common/card-action-common.d.ts.map +1 -1
  105. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  106. package/development/checkbox/checkbox-group.js +2 -2
  107. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  108. package/development/clock/clock.d.ts +8 -0
  109. package/development/clock/clock.d.ts.map +1 -1
  110. package/development/clock.js +20 -2
  111. package/development/core/a11y/focus.d.ts.map +1 -1
  112. package/development/core/a11y.js +1 -1
  113. package/development/core/base-elements.js +6 -6
  114. package/development/core/controllers/escapable-overlay-controller.d.ts +11 -0
  115. package/development/core/controllers/escapable-overlay-controller.d.ts.map +1 -0
  116. package/development/core/controllers/inert-controller.d.ts +3 -3
  117. package/development/core/controllers/inert-controller.d.ts.map +1 -1
  118. package/development/core/controllers.d.ts +1 -0
  119. package/development/core/controllers.d.ts.map +1 -1
  120. package/development/core/controllers.js +41 -7
  121. package/development/core/datetime/date-adapter.d.ts +4 -2
  122. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  123. package/development/core/datetime/native-date-adapter.d.ts +1 -1
  124. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  125. package/development/core/datetime.js +14 -2
  126. package/development/core/decorators/date-converter.d.ts +8 -0
  127. package/development/core/decorators/date-converter.d.ts.map +1 -0
  128. package/development/core/decorators/date-only-type.d.ts +8 -0
  129. package/development/core/decorators/date-only-type.d.ts.map +1 -0
  130. package/development/core/decorators/force-type.d.ts +1 -1
  131. package/development/core/decorators/force-type.d.ts.map +1 -1
  132. package/development/core/decorators/get-override.d.ts.map +1 -1
  133. package/development/core/decorators/handle-distinct-change.d.ts.map +1 -1
  134. package/development/core/decorators/host-attributes.d.ts.map +1 -1
  135. package/development/core/decorators/slot-state.d.ts.map +1 -1
  136. package/development/core/decorators.d.ts +2 -0
  137. package/development/core/decorators.d.ts.map +1 -1
  138. package/development/core/decorators.js +27 -6
  139. package/development/core/dom/input-element.d.ts +1 -1
  140. package/development/core/dom/input-element.d.ts.map +1 -1
  141. package/development/core/dom.js +3 -3
  142. package/development/core/eventing/throttle.d.ts.map +1 -1
  143. package/development/core/i18n/i18n.d.ts +5 -0
  144. package/development/core/i18n/i18n.d.ts.map +1 -1
  145. package/development/core/i18n.js +36 -1
  146. package/development/core/mixins/animation-complete-mixin.d.ts +13 -0
  147. package/development/core/mixins/animation-complete-mixin.d.ts.map +1 -0
  148. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  149. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  150. package/development/core/mixins/form-associated-input-mixin.d.ts +25 -0
  151. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -0
  152. package/development/core/mixins/form-associated-mixin.d.ts +13 -0
  153. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  154. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  155. package/development/core/mixins/hydration-mixin.d.ts.map +1 -1
  156. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  157. package/development/core/mixins/negative-mixin.d.ts.map +1 -1
  158. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  159. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  160. package/development/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  161. package/development/core/mixins.d.ts +2 -0
  162. package/development/core/mixins.d.ts.map +1 -1
  163. package/development/core/mixins.js +428 -88
  164. package/development/core/testing/mocha-extensions.d.ts.map +1 -1
  165. package/development/core/testing/wait-for-render.d.ts.map +1 -1
  166. package/development/date-input/date-input.d.ts +75 -0
  167. package/development/date-input/date-input.d.ts.map +1 -0
  168. package/development/date-input.d.ts +2 -0
  169. package/development/date-input.d.ts.map +1 -0
  170. package/development/date-input.js +267 -0
  171. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  172. package/development/datepicker/common.js +11 -2
  173. package/development/datepicker/datepicker/datepicker.d.ts +16 -6
  174. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  175. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  176. package/development/datepicker/datepicker-toggle.js +12 -3
  177. package/development/datepicker/datepicker.js +66 -39
  178. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  179. package/development/dialog/dialog-title/dialog-title.d.ts +3 -1
  180. package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  181. package/development/dialog/dialog-title.js +7 -2
  182. package/development/dialog/dialog.js +3 -1
  183. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  184. package/development/expansion-panel/expansion-panel.js +2 -2
  185. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  186. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  187. package/development/flip-card/flip-card-details.js +5 -3
  188. package/development/form-field/form-field/form-field.d.ts +1 -1
  189. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  190. package/development/form-field/form-field.js +19 -13
  191. package/development/header/common/header-action-common.d.ts.map +1 -1
  192. package/development/header/common.js +2 -2
  193. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  194. package/development/icon/icon-request.d.ts.map +1 -1
  195. package/development/icon/icon-validate.d.ts.map +1 -1
  196. package/development/link/common/block-link-common.d.ts.map +1 -1
  197. package/development/link/common/inline-link-common.d.ts.map +1 -1
  198. package/development/link/common/link-common.d.ts.map +1 -1
  199. package/development/link/common.js +13 -1
  200. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  201. package/development/menu/menu/menu.d.ts +1 -1
  202. package/development/menu/menu/menu.d.ts.map +1 -1
  203. package/development/menu/menu.js +8 -15
  204. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  205. package/development/navigation/navigation/navigation.d.ts +1 -3
  206. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  207. package/development/navigation/navigation.js +11 -21
  208. package/development/overlay/overlay-base-element.d.ts +2 -2
  209. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  210. package/development/overlay/overlay.d.ts.map +1 -1
  211. package/development/overlay.js +9 -13
  212. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  213. package/development/popover/popover/popover.d.ts +1 -1
  214. package/development/popover/popover/popover.d.ts.map +1 -1
  215. package/development/popover/popover.js +5 -15
  216. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  217. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  218. package/development/radio-button/radio-button-group.js +2 -2
  219. package/development/sbb-tokens-CSAKTXUi.js +1 -1
  220. package/development/select/select.d.ts +3 -1
  221. package/development/select/select.d.ts.map +1 -1
  222. package/development/select.js +12 -8
  223. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  224. package/development/selection-expansion-panel.js +2 -2
  225. package/development/sidebar/common.d.ts +1 -0
  226. package/development/sidebar/common.d.ts.map +1 -0
  227. package/development/sidebar/common.js +114 -0
  228. package/development/sidebar/icon-sidebar/icon-sidebar.d.ts +23 -0
  229. package/development/sidebar/icon-sidebar/icon-sidebar.d.ts.map +1 -0
  230. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.d.ts +19 -0
  231. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.d.ts.map +1 -0
  232. package/development/sidebar/icon-sidebar-button.d.ts +2 -0
  233. package/development/sidebar/icon-sidebar-button.d.ts.map +1 -0
  234. package/development/sidebar/icon-sidebar-button.js +28 -0
  235. package/development/sidebar/icon-sidebar-container/icon-sidebar-container.d.ts +23 -0
  236. package/development/sidebar/icon-sidebar-container/icon-sidebar-container.d.ts.map +1 -0
  237. package/development/sidebar/icon-sidebar-container.d.ts +2 -0
  238. package/development/sidebar/icon-sidebar-container.d.ts.map +1 -0
  239. package/development/sidebar/icon-sidebar-container.js +45 -0
  240. package/development/sidebar/icon-sidebar-content/icon-sidebar-content.d.ts +17 -0
  241. package/development/sidebar/icon-sidebar-content/icon-sidebar-content.d.ts.map +1 -0
  242. package/development/sidebar/icon-sidebar-content.d.ts +2 -0
  243. package/development/sidebar/icon-sidebar-content.d.ts.map +1 -0
  244. package/development/sidebar/icon-sidebar-content.js +34 -0
  245. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.d.ts +19 -0
  246. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.d.ts.map +1 -0
  247. package/development/sidebar/icon-sidebar-link.d.ts +2 -0
  248. package/development/sidebar/icon-sidebar-link.d.ts.map +1 -0
  249. package/development/sidebar/icon-sidebar-link.js +28 -0
  250. package/development/sidebar/icon-sidebar.d.ts +2 -0
  251. package/development/sidebar/icon-sidebar.d.ts.map +1 -0
  252. package/development/sidebar/icon-sidebar.js +85 -0
  253. package/development/sidebar/sidebar/sidebar.d.ts +76 -0
  254. package/development/sidebar/sidebar/sidebar.d.ts.map +1 -0
  255. package/development/sidebar/sidebar-close-button/sidebar-close-button.d.ts +22 -0
  256. package/development/sidebar/sidebar-close-button/sidebar-close-button.d.ts.map +1 -0
  257. package/development/sidebar/sidebar-close-button.d.ts +2 -0
  258. package/development/sidebar/sidebar-close-button.d.ts.map +1 -0
  259. package/development/sidebar/sidebar-close-button.js +55 -0
  260. package/development/sidebar/sidebar-container/sidebar-container.d.ts +34 -0
  261. package/development/sidebar/sidebar-container/sidebar-container.d.ts.map +1 -0
  262. package/development/sidebar/sidebar-container.d.ts +2 -0
  263. package/development/sidebar/sidebar-container.d.ts.map +1 -0
  264. package/development/sidebar/sidebar-container.js +153 -0
  265. package/development/sidebar/sidebar-content/sidebar-content.d.ts +18 -0
  266. package/development/sidebar/sidebar-content/sidebar-content.d.ts.map +1 -0
  267. package/development/sidebar/sidebar-content.d.ts +2 -0
  268. package/development/sidebar/sidebar-content.d.ts.map +1 -0
  269. package/development/sidebar/sidebar-content.js +37 -0
  270. package/development/sidebar/sidebar-title/sidebar-title.d.ts +17 -0
  271. package/development/sidebar/sidebar-title/sidebar-title.d.ts.map +1 -0
  272. package/development/sidebar/sidebar-title.d.ts +2 -0
  273. package/development/sidebar/sidebar-title.d.ts.map +1 -0
  274. package/development/sidebar/sidebar-title.js +63 -0
  275. package/development/sidebar/sidebar.d.ts +2 -0
  276. package/development/sidebar/sidebar.d.ts.map +1 -0
  277. package/development/sidebar/sidebar.js +523 -0
  278. package/development/sidebar.d.ts +12 -0
  279. package/development/sidebar.d.ts.map +1 -0
  280. package/development/sidebar.js +12 -0
  281. package/development/stepper/step/step.d.ts +0 -2
  282. package/development/stepper/step/step.d.ts.map +1 -1
  283. package/development/stepper/step.js +19 -23
  284. package/development/stepper/stepper/stepper.d.ts +11 -0
  285. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  286. package/development/stepper/stepper.js +30 -3
  287. package/development/tag/tag/tag.d.ts +11 -0
  288. package/development/tag/tag/tag.d.ts.map +1 -1
  289. package/development/tag/tag-group/tag-group.d.ts +1 -1
  290. package/development/tag/tag-group/tag-group.d.ts.map +1 -1
  291. package/development/tag/tag-group.js +9 -3
  292. package/development/tag/tag.js +37 -10
  293. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  294. package/development/time-input/time-input.d.ts +3 -2
  295. package/development/time-input/time-input.d.ts.map +1 -1
  296. package/development/time-input.js +19 -10
  297. package/development/title/title-base.d.ts +2 -4
  298. package/development/title/title-base.d.ts.map +1 -1
  299. package/development/title/title.d.ts +3 -1
  300. package/development/title/title.d.ts.map +1 -1
  301. package/development/title.js +8 -8
  302. package/dialog/dialog/dialog.d.ts.map +1 -1
  303. package/dialog/dialog-title/dialog-title.d.ts +3 -1
  304. package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  305. package/dialog/dialog-title.js +16 -15
  306. package/dialog/dialog.js +2 -2
  307. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  308. package/expansion-panel/expansion-panel.js +1 -1
  309. package/file-selector/common/file-selector-common.d.ts.map +1 -1
  310. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  311. package/flip-card/flip-card-details.js +14 -13
  312. package/form-field/form-field/form-field.d.ts +1 -1
  313. package/form-field/form-field/form-field.d.ts.map +1 -1
  314. package/form-field/form-field.js +30 -24
  315. package/header/common/header-action-common.d.ts.map +1 -1
  316. package/header/common.js +6 -6
  317. package/icon/icon-name-mixin.d.ts.map +1 -1
  318. package/icon/icon-request.d.ts.map +1 -1
  319. package/icon/icon-validate.d.ts.map +1 -1
  320. package/index.d.ts +22 -0
  321. package/index.js +22 -0
  322. package/link/common/block-link-common.d.ts.map +1 -1
  323. package/link/common/inline-link-common.d.ts.map +1 -1
  324. package/link/common/link-common.d.ts.map +1 -1
  325. package/link/common.js +12 -12
  326. package/menu/common/menu-action-common.d.ts.map +1 -1
  327. package/menu/menu/menu.d.ts +1 -1
  328. package/menu/menu/menu.d.ts.map +1 -1
  329. package/menu/menu.js +26 -35
  330. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  331. package/navigation/navigation/navigation.d.ts +1 -3
  332. package/navigation/navigation/navigation.d.ts.map +1 -1
  333. package/navigation/navigation.js +47 -56
  334. package/overlay/overlay-base-element.d.ts +2 -2
  335. package/overlay/overlay-base-element.d.ts.map +1 -1
  336. package/overlay/overlay.d.ts.map +1 -1
  337. package/overlay.js +58 -64
  338. package/package.json +66 -1
  339. package/paginator/common/paginator-common.d.ts.map +1 -1
  340. package/popover/popover/popover.d.ts +1 -1
  341. package/popover/popover/popover.d.ts.map +1 -1
  342. package/popover/popover.js +101 -110
  343. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  344. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  345. package/radio-button/radio-button-group.js +1 -1
  346. package/select/select.d.ts +3 -1
  347. package/select/select.d.ts.map +1 -1
  348. package/select.js +39 -37
  349. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  350. package/selection-expansion-panel.js +1 -1
  351. package/sidebar/common.d.ts +1 -0
  352. package/sidebar/common.d.ts.map +1 -0
  353. package/sidebar/common.js +7 -0
  354. package/sidebar/icon-sidebar/icon-sidebar.d.ts +23 -0
  355. package/sidebar/icon-sidebar/icon-sidebar.d.ts.map +1 -0
  356. package/sidebar/icon-sidebar-button/icon-sidebar-button.d.ts +19 -0
  357. package/sidebar/icon-sidebar-button/icon-sidebar-button.d.ts.map +1 -0
  358. package/sidebar/icon-sidebar-button.d.ts +2 -0
  359. package/sidebar/icon-sidebar-button.d.ts.map +1 -0
  360. package/sidebar/icon-sidebar-button.js +20 -0
  361. package/sidebar/icon-sidebar-container/icon-sidebar-container.d.ts +23 -0
  362. package/sidebar/icon-sidebar-container/icon-sidebar-container.d.ts.map +1 -0
  363. package/sidebar/icon-sidebar-container.d.ts +2 -0
  364. package/sidebar/icon-sidebar-container.d.ts.map +1 -0
  365. package/sidebar/icon-sidebar-container.js +35 -0
  366. package/sidebar/icon-sidebar-content/icon-sidebar-content.d.ts +17 -0
  367. package/sidebar/icon-sidebar-content/icon-sidebar-content.d.ts.map +1 -0
  368. package/sidebar/icon-sidebar-content.d.ts +2 -0
  369. package/sidebar/icon-sidebar-content.d.ts.map +1 -0
  370. package/sidebar/icon-sidebar-content.js +23 -0
  371. package/sidebar/icon-sidebar-link/icon-sidebar-link.d.ts +19 -0
  372. package/sidebar/icon-sidebar-link/icon-sidebar-link.d.ts.map +1 -0
  373. package/sidebar/icon-sidebar-link.d.ts +2 -0
  374. package/sidebar/icon-sidebar-link.d.ts.map +1 -0
  375. package/sidebar/icon-sidebar-link.js +20 -0
  376. package/sidebar/icon-sidebar.d.ts +2 -0
  377. package/sidebar/icon-sidebar.d.ts.map +1 -0
  378. package/sidebar/icon-sidebar.js +47 -0
  379. package/sidebar/sidebar/sidebar.d.ts +76 -0
  380. package/sidebar/sidebar/sidebar.d.ts.map +1 -0
  381. package/sidebar/sidebar-close-button/sidebar-close-button.d.ts +22 -0
  382. package/sidebar/sidebar-close-button/sidebar-close-button.d.ts.map +1 -0
  383. package/sidebar/sidebar-close-button.d.ts +2 -0
  384. package/sidebar/sidebar-close-button.d.ts.map +1 -0
  385. package/sidebar/sidebar-close-button.js +29 -0
  386. package/sidebar/sidebar-container/sidebar-container.d.ts +34 -0
  387. package/sidebar/sidebar-container/sidebar-container.d.ts.map +1 -0
  388. package/sidebar/sidebar-container.d.ts +2 -0
  389. package/sidebar/sidebar-container.d.ts.map +1 -0
  390. package/sidebar/sidebar-container.js +78 -0
  391. package/sidebar/sidebar-content/sidebar-content.d.ts +18 -0
  392. package/sidebar/sidebar-content/sidebar-content.d.ts.map +1 -0
  393. package/sidebar/sidebar-content.d.ts +2 -0
  394. package/sidebar/sidebar-content.d.ts.map +1 -0
  395. package/sidebar/sidebar-content.js +23 -0
  396. package/sidebar/sidebar-title/sidebar-title.d.ts +17 -0
  397. package/sidebar/sidebar-title/sidebar-title.d.ts.map +1 -0
  398. package/sidebar/sidebar-title.d.ts +2 -0
  399. package/sidebar/sidebar-title.d.ts.map +1 -0
  400. package/sidebar/sidebar-title.js +37 -0
  401. package/sidebar/sidebar.d.ts +2 -0
  402. package/sidebar/sidebar.d.ts.map +1 -0
  403. package/sidebar/sidebar.js +214 -0
  404. package/sidebar.d.ts +12 -0
  405. package/sidebar.d.ts.map +1 -0
  406. package/sidebar.js +11 -0
  407. package/standard-theme.css +53 -3
  408. package/stepper/step/step.d.ts +0 -2
  409. package/stepper/step/step.d.ts.map +1 -1
  410. package/stepper/step.js +23 -35
  411. package/stepper/stepper/stepper.d.ts +11 -0
  412. package/stepper/stepper/stepper.d.ts.map +1 -1
  413. package/stepper/stepper.js +59 -41
  414. package/tag/tag/tag.d.ts +11 -0
  415. package/tag/tag/tag.d.ts.map +1 -1
  416. package/tag/tag-group/tag-group.d.ts +1 -1
  417. package/tag/tag-group/tag-group.d.ts.map +1 -1
  418. package/tag/tag-group.js +32 -29
  419. package/tag/tag.js +60 -41
  420. package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  421. package/time-input/time-input.d.ts +3 -2
  422. package/time-input/time-input.d.ts.map +1 -1
  423. package/time-input.js +44 -36
  424. package/title/title-base.d.ts +2 -4
  425. package/title/title-base.d.ts.map +1 -1
  426. package/title/title.d.ts +3 -1
  427. package/title/title.d.ts.map +1 -1
  428. package/title.js +11 -11
@@ -7,7 +7,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
9
  import { LitElement, html, isServer, nothing } from "lit";
10
- import { hostAttributes, forceType } from "./decorators.js";
10
+ import { hostAttributes, forceType, omitEmptyConverter } from "./decorators.js";
11
11
  import { property } from "lit/decorators.js";
12
12
  import { isEventPrevented, EventEmitter } from "./eventing.js";
13
13
  import { SbbFormAssociatedMixin } from "./mixins.js";
@@ -342,10 +342,10 @@ let SbbLinkBaseElement = (() => {
342
342
  }
343
343
  }, _href_accessor_storage = new WeakMap(), _target_accessor_storage = new WeakMap(), _rel_accessor_storage = new WeakMap(), _download_accessor_storage = new WeakMap(), _accessibilityLabel_accessor_storage = new WeakMap(), _accessibilityCurrent_accessor_storage = new WeakMap(), _classThis = _a, (() => {
344
344
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
345
- _href_decorators = [forceType(), property()];
346
- _target_decorators = [forceType(), property()];
347
- _rel_decorators = [forceType(), property()];
348
- _download_decorators = [forceType(), property({ type: Boolean })];
345
+ _href_decorators = [forceType(), property({ reflect: true, converter: omitEmptyConverter })];
346
+ _target_decorators = [forceType(), property({ reflect: true, converter: omitEmptyConverter })];
347
+ _rel_decorators = [forceType(), property({ reflect: true, converter: omitEmptyConverter })];
348
+ _download_decorators = [forceType(), property({ type: Boolean, reflect: true })];
349
349
  _accessibilityLabel_decorators = [forceType(), property({ attribute: "accessibility-label" })];
350
350
  _accessibilityCurrent_decorators = [forceType(), property({ attribute: "accessibility-current" })];
351
351
  __esDecorate(_a, null, _href_decorators, { kind: "accessor", name: "href", static: false, private: false, access: { has: (obj) => "href" in obj, get: (obj) => obj.href, set: (obj, value) => {
@@ -412,4 +412,4 @@ export {
412
412
  SbbLinkBaseElement,
413
413
  SbbOpenCloseBaseElement
414
414
  };
415
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbi8qKlxuICogV2hlbmV2ZXIgYW4gZWxlbWVudCBjYW4gYmUgZGlzYWJsZWQgaXQgaGFzIGRpc2FibGVkIHByb3BlcnR5XG4gKiBvciBmb3JtRGlzYWJsZWQgaWYgaXQncyBhIGZvcm0gZWxlbWVudC5cbiAqIEJlY2F1c2Ugd2UgY2FuJ3QgdXNlIHR5cGVzIGhlcmUgZGlyZWN0bHkgd2UgY3JlYXRlZCB0aGlzIGhlbHBlciB0eXBlLlxuICovXG50eXBlIE1heWJlRGlzYWJsZWQgPSB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZm9ybURpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJbnRlcmFjdGl2ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnRcbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWFjdGlvbic6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICh0aGlzIGFzIE1heWJlRGlzYWJsZWQpLmRpc2FibGVkSW50ZXJhY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGlmIChcbiAgICAgIGltcG9ydC5tZXRhLmVudi5ERVYgJiZcbiAgICAgICh0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1saW5rJykgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnV0dG9uJykpICYmXG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTmVzdGVkIGFjdGlvbiBlbGVtZW50IGRldGVjdGVkICgke3RoaXMubG9jYWxOYW1lfSBpbnNpZGUgJHt0aGlzLnBhcmVudEVsZW1lbnQhLmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKSEubG9jYWxOYW1lfSkuIE1heWJlIHVzZSBhIHN0YXRpYyB2YXJpYW50IGZvciB0aGUgaW5uZXIgYWN0aW9uIGVsZW1lbnQ/YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkICYmICF0aGlzLm1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjYXB0dXJlIGlzIG5lY2Vzc2FyeSBoZXJlLCBhcyB0aGlzIGV2ZW50IGhhbmRsZXIgbmVlZHMgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIGFueSBvdGhlclxuICAgICAgLy8gaW4gb3JkZXIgdG8gc3RvcCBpbW1lZGlhdGUgcHJvcGFnYXRpb24gaW4gdGhlIGRpc2FibGVkIGNhc2UuXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJlbmRlciB0aGUgY29tcG9uZW50IHRlbXBsYXRlLiAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50YXRpb24gbmVlZGVkIScpO1xuICB9XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgYnV0dG9uLWxpa2UgY29tcG9uZW50cy4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIj4ke3RoaXMucmVuZGVyVGVtcGxhdGUoKX08L3NwYW4+YDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0V2ZW50UHJldmVudGVkIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuLi9taXhpbnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbi8qKiBFbnVtZXJhdGlvbiBmb3IgdHlwZSBhdHRyaWJ1dGUgaW4gPGJ1dHRvbj4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbicgfCAncmVzZXQnIHwgJ3N1Ym1pdCc7XG5cbi8qKiBCdXR0b24gYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgdGFiaW5kZXg6ICcwJyxcbiAgJ2RhdGEtYnV0dG9uJzogJycsXG59KVxuYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkFjdGlvbkJhc2VFbGVtZW50KSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBhdHRyaWJ1dGUgdG8gdXNlIGZvciB0aGUgYnV0dG9uLlxuICAgKiBAZGVmYXVsdCAnYnV0dG9uJ1xuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIG92ZXJyaWRlIHNldCB0eXBlKG5hbWU6IFNiYkJ1dHRvblR5cGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndHlwZScsIGAke25hbWV9YCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IFNiYkJ1dHRvblR5cGUge1xuICAgIHJldHVybiAodGhpcy5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSBhcyBTYmJCdXR0b25UeXBlKSA/PyAnYnV0dG9uJztcbiAgfVxuXG4gIC8qKiBUaGUgYDxmb3JtPmAgZWxlbWVudCB0byBhc3NvY2lhdGUgdGhlIGJ1dHRvbiB3aXRoLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IGZvcm0odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1JZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsIHtcbiAgICAvLyBVc2UgcXVlcnlTZWxlY3RvciB3aXRoIGZvcm0gYW5kIGlkIHNlbGVjdG9yLCBhcyB0aGUgZm9ybSBwcm9wZXJ0eSBtdXN0XG4gICAgLy8gcmVmZXJlbmNlIGEgdmFsaWQgPGZvcm0+IGVsZW1lbnRcbiAgICByZXR1cm4gdGhpcy5fZm9ybUlkXG4gICAgICA/ICgodGhpcy5vd25lckRvY3VtZW50Py5xdWVyeVNlbGVjdG9yPy4oYGZvcm0jJHt0aGlzLl9mb3JtSWR9YCkgYXMgSFRNTEZvcm1FbGVtZW50KSA/PyBudWxsKVxuICAgICAgOiB0aGlzLmludGVybmFscy5mb3JtO1xuICB9XG4gIHByaXZhdGUgX2Zvcm1JZDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5pbnRlcm5hbHMucm9sZSA9ICdidXR0b24nO1xuXG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG5cbiAgICAgIGNvbnN0IHBhc3NpdmVPcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH07XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQnV0dG9uQ2xpY2spO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlciwgcGFzc2l2ZU9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5cHJlc3MnLFxuICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzaXZlT3B0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2hhbmRsZUJ1dHRvbkNsaWNrID0gYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2J1dHRvbicgfHwgKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZXZlbnQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm07XG4gICAgaWYgKCFmb3JtKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdzdWJtaXQnKSB7XG4gICAgICAvLyBgZm9ybS5yZXF1ZXN0U3VibWl0KGVsZW1lbnQpO2Agc2VlbXMgbm90IHRvIHdvcmsgZm9yIEN1c3RvbUVsZW1lbnRzLCBzbyB0aGUgYGVsZW1lbnRgIHBhcmFtZXRlciBoYXMgYmVlbiByZW1vdmVkO1xuICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgc29sdmVkIGluIGFueSB3YXksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy93ZWJjb21wb25lbnRzL2lzc3Vlcy84MTQjaXNzdWVjb21tZW50LTEyMTg0NTIxMzdcbiAgICAgIC8vIFdlIHVzZSB0aGUgd29ya2Fyb3VuZCBkZXNjcmliZWQgaW4gdGhlIGdpdGh1YiBpc3N1ZSBieSBjbG9uaW5nIHRoZSBzdWJtaXQgYnV0dG9uIGFuZCBwYXNzIHRoaXMgb25lIGFzIGFuIGFyZ3VtZW50LlxuXG4gICAgICBjb25zdCBzdWJtaXRCdXR0b25DbG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaW5lcnQgPSB0cnVlO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaGlkZGVuID0gdHJ1ZTtcbiAgICAgIHN1Ym1pdEJ1dHRvbkNsb25lLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS52YWx1ZSA9IHRoaXMudmFsdWUgPz8gJyc7XG5cbiAgICAgIGZvcm0uYXBwZW5kKHN1Ym1pdEJ1dHRvbkNsb25lKTtcbiAgICAgIGZvcm0ucmVxdWVzdFN1Ym1pdChzdWJtaXRCdXR0b25DbG9uZSk7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS5yZW1vdmUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Jlc2V0Jykge1xuICAgICAgZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUHJldmVudHMgc2Nyb2xsaW5nIGZyb20gcHJlc3NpbmcgU3BhY2UsIHdoZW4gdGhlIGV2ZW50IHRhcmdldCBpcyBhbiBhY3Rpb24gZWxlbWVudC5cbiAgICogQWxzbyBzZXRzIGRhdGEtYWN0aXZlIGF0dHJpYnV0ZS5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9wcmV2ZW50U2Nyb2xsT25TcGFjZUtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3JlbW92ZUFjdGl2ZU1hcmtlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYSAnY2xpY2snIFBvaW50ZXJFdmVudCBpZiB0aGUgb3JpZ2luYWwga2V5Ym9hcmQgZXZlbnQgaXMgYSAnU3BhY2UnIHByZXNzLlxuICAgKiBBcyB2ZXJpZmllZCB3aXRoIHRoZSBuYXRpdmUgYnV0dG9uLCB3aGVuICdTcGFjZScgaXMgcHJlc3NlZCwgYSAnY2xpY2snIGV2ZW50IGlzIGRpc3BhdGNoZWRcbiAgICogYWZ0ZXIgdGhlICdrZXl1cCcgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgb3JpZ2luIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIoZXZlbnQpO1xuICAgICAgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgeyBhbHRLZXksIGN0cmxLZXksIG1ldGFLZXksIHNoaWZ0S2V5IH0gPSBldmVudDtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgUG9pbnRlckV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIHBvaW50ZXJJZDogLTEsXG4gICAgICAgIHBvaW50ZXJUeXBlOiAnJyxcbiAgICAgICAgYWx0S2V5LFxuICAgICAgICBjdHJsS2V5LFxuICAgICAgICBtZXRhS2V5LFxuICAgICAgICBzaGlmdEtleSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH07XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIVsnbmFtZScsICd2YWx1ZSddLmluY2x1ZGVzKG5hbWUpIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW50ZW50aW9uYWxseSBlbXB0eSwgYXMgYnV0dG9ucyBhcmUgbm90IHRhcmdldGVkIGJ5IGZvcm0gcmVzZXRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBJbnRlbnRpb25hbGx5IGVtcHR5LCBhcyBidXR0b25zIGFyZSBub3QgdGFyZ2V0ZWQgYnkgZm9ybSByZXN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBfc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEludGVudGlvbmFsbHkgZW1wdHksIGFzIGJ1dHRvbiBkb2VzIG5vdCB3cml0ZSBpdHMgZGF0YSBpbiBmb3JtLlxuICAgKiBUaGUgZGF0YSBpcyBvbmx5IGFwcGxpZWQgb24gc3VibWl0IGJ1dHRvbiBjbGljayBhcyBzdWJtaXR0ZXIgb2YgcmVxdWVzdFN1Ym1pdCgpO1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7fVxufVxuIiwiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGkxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93IH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9hY3Rpb24tYmFzZS1lbGVtZW50LmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yICd0YXJnZXQnIGF0dHJpYnV0ZSBpbiA8YT4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBMaW5rVGFyZ2V0VHlwZSA9ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcblxuLyoqIExpbmsgYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgJ2RhdGEtbGluayc6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkxpbmtCYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgaHJlZjogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXJlIHRvIGRpc3BsYXkgdGhlIGxpbmtlZCBVUkwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdGFyZ2V0OiBMaW5rVGFyZ2V0VHlwZSB8IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgcmVsYXRpb25zaGlwIG9mIHRoZSBsaW5rZWQgVVJMIGFzIHNwYWNlLXNlcGFyYXRlZCBsaW5rIHR5cGVzLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJyb3dzZXIgd2lsbCBzaG93IHRoZSBkb3dubG9hZCBkaWFsb2cgb24gY2xpY2suICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkb3dubG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGlubmVyIGFuY2hvciBlbGVtZW50LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1jdXJyZW50IHRvIHRoZSBpbm5lciBhbmNob3IgZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY3VycmVudCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlDdXJyZW50OiBzdHJpbmcgPSAnJztcblxuICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIHRoaXMuc2V0dXBCYXNlRXZlbnRIYW5kbGVycygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEFuY2hvckVsZW1lbnQ+KCdhJyk/LmZvY3VzKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEFuY2hvckVsZW1lbnQ+KCdhJyk/LmJsdXIoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uY2xpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX2V2YWx1YXRlUmVsQXR0cmlidXRlID0gKCk6IHN0cmluZyB8IHR5cGVvZiBub3RoaW5nID0+IHtcbiAgICByZXR1cm4gdGhpcy5yZWwgPyB0aGlzLnJlbCA6IHRoaXMudGFyZ2V0ID09PSAnX2JsYW5rJyA/ICdleHRlcm5hbCBub29wZW5lciBub2ZvbGxvdycgOiBub3RoaW5nO1xuICB9O1xuXG4gIC8qKiBEZWZhdWx0IHJlbmRlciBtZXRob2QgZm9yIGxpbmstbGlrZSBjb21wb25lbnRzLiBDYW4gYmUgb3ZlcnJpZGRlbiBpZiB0aGUgTGlua1JlbmRlclZhcmlhYmxlcyBhcmUgbm90IG5lZWRlZC4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVyTGluayh0aGlzLnJlbmRlclRlbXBsYXRlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckxpbmsocmVuZGVyQ29udGVudDogVGVtcGxhdGVSZXN1bHQpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8YVxuICAgICAgICBjbGFzcz1cInNiYi1hY3Rpb24tYmFzZSAke3RoaXMubG9jYWxOYW1lfVwiXG4gICAgICAgIGhyZWY9JHt0aGlzLmhyZWYgfHwgbm90aGluZ31cbiAgICAgICAgP2Rvd25sb2FkPSR7dGhpcy5kb3dubG9hZH1cbiAgICAgICAgdGFyZ2V0PSR7dGhpcy50YXJnZXQgfHwgbm90aGluZ31cbiAgICAgICAgcmVsPSR7dGhpcy5fZXZhbHVhdGVSZWxBdHRyaWJ1dGUoKX1cbiAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsIHx8IG5vdGhpbmd9XG4gICAgICAgIGFyaWEtY3VycmVudD0ke3RoaXMuYWNjZXNzaWJpbGl0eUN1cnJlbnQgfHwgbm90aGluZ31cbiAgICAgICAgdGFiaW5kZXg9JHt0aGlzLm1heWJlRGlzYWJsZWQgJiYgIXRoaXMubWF5YmVEaXNhYmxlZEludGVyYWN0aXZlID8gJy0xJyA6IG5vdGhpbmd9XG4gICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLm1heWJlRGlzYWJsZWQgPyAndHJ1ZScgOiBub3RoaW5nfVxuICAgICAgPlxuICAgICAgICAke3JlbmRlckNvbnRlbnR9XG4gICAgICAgICR7ISF0aGlzLmhyZWYgJiYgdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnXG4gICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5XG4gICAgICAgICAgICAgID4uICR7aTE4blRhcmdldE9wZW5zSW5OZXdXaW5kb3dbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgID5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9hPlxuICAgIGA7XG4gIH1cbn1cbiIsImltcG9ydCB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wZW5lZENsb3NlZFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy5qcyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3Igb3ZlcmxheSBjb21wb25lbnRzLlxuICpcbiAqIEBldmVudCB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQgd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgd2lsbENsb3NlOiAnd2lsbENsb3NlJyxcbiAgICBkaWRDbG9zZTogJ2RpZENsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByb3RlY3RlZCBzZXQgc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCBzdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiT3BlbmVkQ2xvc2VkU3RhdGU7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZWxlbWVudCBpcyBvcGVuLiAqL1xuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCc7XG4gIH1cblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxPcGVuOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLndpbGxPcGVuLFxuICAgIHsgY2FuY2VsYWJsZTogdHJ1ZSB9LFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC4gKi9cbiAgcHJvdGVjdGVkIGRpZE9wZW46IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLmRpZE9wZW4sIHtcbiAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICB9KTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy53aWxsQ2xvc2UsXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLiAqL1xuICBwcm90ZWN0ZWQgZGlkQ2xvc2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIE9wZW5zIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBvcGVuKCk6IHZvaWQ7XG4gIC8qKiBDbG9zZXMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICB3aWxsT3BlbjogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gICAgd2lsbENsb3NlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRPcGVuOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRDbG9zZTogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztJQW1CZSx3QkFBb0IsTUFBQTs7QUFIbEMs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
415
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbi8qKlxuICogV2hlbmV2ZXIgYW4gZWxlbWVudCBjYW4gYmUgZGlzYWJsZWQgaXQgaGFzIGRpc2FibGVkIHByb3BlcnR5XG4gKiBvciBmb3JtRGlzYWJsZWQgaWYgaXQncyBhIGZvcm0gZWxlbWVudC5cbiAqIEJlY2F1c2Ugd2UgY2FuJ3QgdXNlIHR5cGVzIGhlcmUgZGlyZWN0bHkgd2UgY3JlYXRlZCB0aGlzIGhlbHBlciB0eXBlLlxuICovXG50eXBlIE1heWJlRGlzYWJsZWQgPSB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZm9ybURpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJbnRlcmFjdGl2ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnRcbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWFjdGlvbic6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICh0aGlzIGFzIE1heWJlRGlzYWJsZWQpLmRpc2FibGVkSW50ZXJhY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGlmIChcbiAgICAgIGltcG9ydC5tZXRhLmVudi5ERVYgJiZcbiAgICAgICh0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1saW5rJykgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnV0dG9uJykpICYmXG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTmVzdGVkIGFjdGlvbiBlbGVtZW50IGRldGVjdGVkICgke3RoaXMubG9jYWxOYW1lfSBpbnNpZGUgJHt0aGlzLnBhcmVudEVsZW1lbnQhLmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKSEubG9jYWxOYW1lfSkuIE1heWJlIHVzZSBhIHN0YXRpYyB2YXJpYW50IGZvciB0aGUgaW5uZXIgYWN0aW9uIGVsZW1lbnQ/YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkICYmICF0aGlzLm1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjYXB0dXJlIGlzIG5lY2Vzc2FyeSBoZXJlLCBhcyB0aGlzIGV2ZW50IGhhbmRsZXIgbmVlZHMgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIGFueSBvdGhlclxuICAgICAgLy8gaW4gb3JkZXIgdG8gc3RvcCBpbW1lZGlhdGUgcHJvcGFnYXRpb24gaW4gdGhlIGRpc2FibGVkIGNhc2UuXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJlbmRlciB0aGUgY29tcG9uZW50IHRlbXBsYXRlLiAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50YXRpb24gbmVlZGVkIScpO1xuICB9XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgYnV0dG9uLWxpa2UgY29tcG9uZW50cy4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIj4ke3RoaXMucmVuZGVyVGVtcGxhdGUoKX08L3NwYW4+YDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0V2ZW50UHJldmVudGVkIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuLi9taXhpbnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbi8qKiBFbnVtZXJhdGlvbiBmb3IgdHlwZSBhdHRyaWJ1dGUgaW4gPGJ1dHRvbj4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbicgfCAncmVzZXQnIHwgJ3N1Ym1pdCc7XG5cbi8qKiBCdXR0b24gYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgdGFiaW5kZXg6ICcwJyxcbiAgJ2RhdGEtYnV0dG9uJzogJycsXG59KVxuYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkFjdGlvbkJhc2VFbGVtZW50KSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBhdHRyaWJ1dGUgdG8gdXNlIGZvciB0aGUgYnV0dG9uLlxuICAgKiBAZGVmYXVsdCAnYnV0dG9uJ1xuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIG92ZXJyaWRlIHNldCB0eXBlKG5hbWU6IFNiYkJ1dHRvblR5cGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndHlwZScsIGAke25hbWV9YCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IFNiYkJ1dHRvblR5cGUge1xuICAgIHJldHVybiAodGhpcy5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSBhcyBTYmJCdXR0b25UeXBlKSA/PyAnYnV0dG9uJztcbiAgfVxuXG4gIC8qKiBUaGUgYDxmb3JtPmAgZWxlbWVudCB0byBhc3NvY2lhdGUgdGhlIGJ1dHRvbiB3aXRoLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IGZvcm0odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1JZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsIHtcbiAgICAvLyBVc2UgcXVlcnlTZWxlY3RvciB3aXRoIGZvcm0gYW5kIGlkIHNlbGVjdG9yLCBhcyB0aGUgZm9ybSBwcm9wZXJ0eSBtdXN0XG4gICAgLy8gcmVmZXJlbmNlIGEgdmFsaWQgPGZvcm0+IGVsZW1lbnRcbiAgICByZXR1cm4gdGhpcy5fZm9ybUlkXG4gICAgICA/ICgodGhpcy5vd25lckRvY3VtZW50Py5xdWVyeVNlbGVjdG9yPy4oYGZvcm0jJHt0aGlzLl9mb3JtSWR9YCkgYXMgSFRNTEZvcm1FbGVtZW50KSA/PyBudWxsKVxuICAgICAgOiB0aGlzLmludGVybmFscy5mb3JtO1xuICB9XG4gIHByaXZhdGUgX2Zvcm1JZDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5pbnRlcm5hbHMucm9sZSA9ICdidXR0b24nO1xuXG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG5cbiAgICAgIGNvbnN0IHBhc3NpdmVPcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH07XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQnV0dG9uQ2xpY2spO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlciwgcGFzc2l2ZU9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5cHJlc3MnLFxuICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzaXZlT3B0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2hhbmRsZUJ1dHRvbkNsaWNrID0gYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2J1dHRvbicgfHwgKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZXZlbnQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm07XG4gICAgaWYgKCFmb3JtKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdzdWJtaXQnKSB7XG4gICAgICAvLyBgZm9ybS5yZXF1ZXN0U3VibWl0KGVsZW1lbnQpO2Agc2VlbXMgbm90IHRvIHdvcmsgZm9yIEN1c3RvbUVsZW1lbnRzLCBzbyB0aGUgYGVsZW1lbnRgIHBhcmFtZXRlciBoYXMgYmVlbiByZW1vdmVkO1xuICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgc29sdmVkIGluIGFueSB3YXksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy93ZWJjb21wb25lbnRzL2lzc3Vlcy84MTQjaXNzdWVjb21tZW50LTEyMTg0NTIxMzdcbiAgICAgIC8vIFdlIHVzZSB0aGUgd29ya2Fyb3VuZCBkZXNjcmliZWQgaW4gdGhlIGdpdGh1YiBpc3N1ZSBieSBjbG9uaW5nIHRoZSBzdWJtaXQgYnV0dG9uIGFuZCBwYXNzIHRoaXMgb25lIGFzIGFuIGFyZ3VtZW50LlxuXG4gICAgICBjb25zdCBzdWJtaXRCdXR0b25DbG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaW5lcnQgPSB0cnVlO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaGlkZGVuID0gdHJ1ZTtcbiAgICAgIHN1Ym1pdEJ1dHRvbkNsb25lLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS52YWx1ZSA9IHRoaXMudmFsdWUgPz8gJyc7XG5cbiAgICAgIGZvcm0uYXBwZW5kKHN1Ym1pdEJ1dHRvbkNsb25lKTtcbiAgICAgIGZvcm0ucmVxdWVzdFN1Ym1pdChzdWJtaXRCdXR0b25DbG9uZSk7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS5yZW1vdmUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Jlc2V0Jykge1xuICAgICAgZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUHJldmVudHMgc2Nyb2xsaW5nIGZyb20gcHJlc3NpbmcgU3BhY2UsIHdoZW4gdGhlIGV2ZW50IHRhcmdldCBpcyBhbiBhY3Rpb24gZWxlbWVudC5cbiAgICogQWxzbyBzZXRzIGRhdGEtYWN0aXZlIGF0dHJpYnV0ZS5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9wcmV2ZW50U2Nyb2xsT25TcGFjZUtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3JlbW92ZUFjdGl2ZU1hcmtlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYSAnY2xpY2snIFBvaW50ZXJFdmVudCBpZiB0aGUgb3JpZ2luYWwga2V5Ym9hcmQgZXZlbnQgaXMgYSAnU3BhY2UnIHByZXNzLlxuICAgKiBBcyB2ZXJpZmllZCB3aXRoIHRoZSBuYXRpdmUgYnV0dG9uLCB3aGVuICdTcGFjZScgaXMgcHJlc3NlZCwgYSAnY2xpY2snIGV2ZW50IGlzIGRpc3BhdGNoZWRcbiAgICogYWZ0ZXIgdGhlICdrZXl1cCcgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgb3JpZ2luIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIoZXZlbnQpO1xuICAgICAgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgeyBhbHRLZXksIGN0cmxLZXksIG1ldGFLZXksIHNoaWZ0S2V5IH0gPSBldmVudDtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgUG9pbnRlckV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIHBvaW50ZXJJZDogLTEsXG4gICAgICAgIHBvaW50ZXJUeXBlOiAnJyxcbiAgICAgICAgYWx0S2V5LFxuICAgICAgICBjdHJsS2V5LFxuICAgICAgICBtZXRhS2V5LFxuICAgICAgICBzaGlmdEtleSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH07XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIVsnbmFtZScsICd2YWx1ZSddLmluY2x1ZGVzKG5hbWUpIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW50ZW50aW9uYWxseSBlbXB0eSwgYXMgYnV0dG9ucyBhcmUgbm90IHRhcmdldGVkIGJ5IGZvcm0gcmVzZXRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBJbnRlbnRpb25hbGx5IGVtcHR5LCBhcyBidXR0b25zIGFyZSBub3QgdGFyZ2V0ZWQgYnkgZm9ybSByZXN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBfc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEludGVudGlvbmFsbHkgZW1wdHksIGFzIGJ1dHRvbiBkb2VzIG5vdCB3cml0ZSBpdHMgZGF0YSBpbiBmb3JtLlxuICAgKiBUaGUgZGF0YSBpcyBvbmx5IGFwcGxpZWQgb24gc3VibWl0IGJ1dHRvbiBjbGljayBhcyBzdWJtaXR0ZXIgb2YgcmVxdWVzdFN1Ym1pdCgpO1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7fVxufVxuIiwiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgaG9zdEF0dHJpYnV0ZXMsIG9taXRFbXB0eUNvbnZlcnRlciB9IGZyb20gJy4uL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaTE4blRhcmdldE9wZW5zSW5OZXdXaW5kb3cgfSBmcm9tICcuLi9pMThuLmpzJztcblxuaW1wb3J0IHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuL2FjdGlvbi1iYXNlLWVsZW1lbnQuanMnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5cbi8qKiBFbnVtZXJhdGlvbiBmb3IgJ3RhcmdldCcgYXR0cmlidXRlIGluIDxhPiBIVE1MIHRhZy4gKi9cbmV4cG9ydCB0eXBlIExpbmtUYXJnZXRUeXBlID0gJ19ibGFuaycgfCAnX3NlbGYnIHwgJ19wYXJlbnQnIHwgJ190b3AnO1xuXG4vKiogTGluayBiYXNlIGNsYXNzLiAqL1xuZXhwb3J0XG5AaG9zdEF0dHJpYnV0ZXMoe1xuICAnZGF0YS1saW5rJzogJycsXG59KVxuYWJzdHJhY3QgY2xhc3MgU2JiTGlua0Jhc2VFbGVtZW50IGV4dGVuZHMgU2JiQWN0aW9uQmFzZUVsZW1lbnQge1xuICAvKiogVGhlIGhyZWYgdmFsdWUgeW91IHdhbnQgdG8gbGluayB0by4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBocmVmOiBzdHJpbmcgPSAnJztcblxuICAvKiogV2hlcmUgdG8gZGlzcGxheSB0aGUgbGlua2VkIFVSTC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0YXJnZXQ6IExpbmtUYXJnZXRUeXBlIHwgc3RyaW5nID0gJyc7XG5cbiAgLyoqIFRoZSByZWxhdGlvbnNoaXAgb2YgdGhlIGxpbmtlZCBVUkwgYXMgc3BhY2Utc2VwYXJhdGVkIGxpbmsgdHlwZXMuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcmVsOiBzdHJpbmcgPSAnJztcblxuICAvKiogV2hldGhlciB0aGUgYnJvd3NlciB3aWxsIHNob3cgdGhlIGRvd25sb2FkIGRpYWxvZyBvbiBjbGljay4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGRvd25sb2FkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgaW5uZXIgYW5jaG9yIGVsZW1lbnQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWN1cnJlbnQgdG8gdGhlIGlubmVyIGFuY2hvciBlbGVtZW50LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1jdXJyZW50JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUN1cnJlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uYmx1cigpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5jbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZXZhbHVhdGVSZWxBdHRyaWJ1dGUgPSAoKTogc3RyaW5nIHwgdHlwZW9mIG5vdGhpbmcgPT4ge1xuICAgIHJldHVybiB0aGlzLnJlbCA/IHRoaXMucmVsIDogdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnID8gJ2V4dGVybmFsIG5vb3BlbmVyIG5vZm9sbG93JyA6IG5vdGhpbmc7XG4gIH07XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgbGluay1saWtlIGNvbXBvbmVudHMuIENhbiBiZSBvdmVycmlkZGVuIGlmIHRoZSBMaW5rUmVuZGVyVmFyaWFibGVzIGFyZSBub3QgbmVlZGVkLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJMaW5rKHRoaXMucmVuZGVyVGVtcGxhdGUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyTGluayhyZW5kZXJDb250ZW50OiBUZW1wbGF0ZVJlc3VsdCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwic2JiLWFjdGlvbi1iYXNlICR7dGhpcy5sb2NhbE5hbWV9XCJcbiAgICAgICAgaHJlZj0ke3RoaXMuaHJlZiB8fCBub3RoaW5nfVxuICAgICAgICA/ZG93bmxvYWQ9JHt0aGlzLmRvd25sb2FkfVxuICAgICAgICB0YXJnZXQ9JHt0aGlzLnRhcmdldCB8fCBub3RoaW5nfVxuICAgICAgICByZWw9JHt0aGlzLl9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSgpfVxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgYXJpYS1jdXJyZW50PSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q3VycmVudCB8fCBub3RoaW5nfVxuICAgICAgICB0YWJpbmRleD0ke3RoaXMubWF5YmVEaXNhYmxlZCAmJiAhdGhpcy5tYXliZURpc2FibGVkSW50ZXJhY3RpdmUgPyAnLTEnIDogbm90aGluZ31cbiAgICAgICAgYXJpYS1kaXNhYmxlZD0ke3RoaXMubWF5YmVEaXNhYmxlZCA/ICd0cnVlJyA6IG5vdGhpbmd9XG4gICAgICA+XG4gICAgICAgICR7cmVuZGVyQ29udGVudH1cbiAgICAgICAgJHshIXRoaXMuaHJlZiAmJiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaydcbiAgICAgICAgICA/IGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgICAgPi4gJHtpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvd1t0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L2E+XG4gICAgYDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL2V2ZW50aW5nLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBvdmVybGF5IGNvbXBvbmVudHMuXG4gKlxuICogQGV2ZW50IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC5cbiAqIEBldmVudCB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQgZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHdpbGxPcGVuOiAnd2lsbE9wZW4nLFxuICAgIGRpZE9wZW46ICdkaWRPcGVuJyxcbiAgICB3aWxsQ2xvc2U6ICd3aWxsQ2xvc2UnLFxuICAgIGRpZENsb3NlOiAnZGlkQ2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHN0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIG9wZW4uICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSAnb3BlbmVkJztcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgd2lsbE9wZW46IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMud2lsbE9wZW4sXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLiAqL1xuICBwcm90ZWN0ZWQgZGlkT3BlbjogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkT3Blbiwge1xuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgd2lsbENsb3NlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLndpbGxDbG9zZSxcbiAgICB7IGNhbmNlbGFibGU6IHRydWUgfSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gIHByb3RlY3RlZCBkaWRDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy5kaWRDbG9zZSxcbiAgICB7IGNhbmNlbGFibGU6IHRydWUgfSxcbiAgKTtcblxuICAvKiogT3BlbnMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IG9wZW4oKTogdm9pZDtcbiAgLyoqIENsb3NlcyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvc2UoKTogdm9pZDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnN0YXRlIHx8PSAnY2xvc2VkJztcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIHdpbGxPcGVuOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICB3aWxsQ2xvc2U6IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIGRpZE9wZW46IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIGRpZENsb3NlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0lBbUJlLHdCQUFvQixNQUFBOztBQUhsQyxNQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLElBQ2QsZUFBZTtBQUFBLEVBQUEsQ0FDaEIsQ0FBQzs7OztvQkFDMEM7QUFBUixFQUFBLG1CQUFRLFlBQVU7QUFBQSxJQUNwRCxJQUFjLGdCQUFhO0FBQ3pCLFlBQU0sZ0JBQWdCO0FBQ2YsYUFBQSxjQUFjLFlBQVksY0FBYztBQUFBLElBQUE7QUFBQSxJQUdqRCxJQUFjLDJCQUF3QjtBQUNwQyxhQUFRLEtBQXVCO0FBQUEsSUFBQTtBQUFBLElBR2pCLG9CQUFpQjs7QUFDL0IsWUFBTSxrQkFBaUI7QUFFdkIsV0FFRyxLQUFLLGFBQWEsV0FBVyxLQUFLLEtBQUssYUFBYSxhQUFhLFFBQ2xFQSxNQUFBLEtBQUssa0JBQUwsZ0JBQUFBLElBQW9CLFFBQVEsMkNBQzVCO0FBQ0EsZ0JBQVEsS0FDTixtQ0FBbUMsS0FBSyxTQUFTLFdBQVcsS0FBSyxjQUFlLFFBQVEsdUNBQXVDLEVBQUcsU0FBUywrREFDM0ksSUFBSTtBQUFBLE1BQUE7QUFBQSxJQUVSO0FBQUEsSUFHUSx5QkFBc0I7QUFDekIsV0FBQTtBQUFBLFFBQ0g7QUFBQSxRQUNBLENBQUMsVUFBUztBQUNSLGNBQUksS0FBSyxpQkFBaUIsQ0FBQyxLQUFLLDBCQUEwQjtBQUN4RCxrQkFBTSxlQUFjO0FBQ3BCLGtCQUFNLHlCQUF3QjtBQUFBLFVBQUE7QUFBQSxRQUVsQztBQUFBO0FBQUE7QUFBQSxRQUdBLEVBQUUsU0FBUyxLQUFJO0FBQUEsTUFBRTtBQUFBLElBQUE7QUFBQTtBQUFBLElBS1gsaUJBQWM7QUFDaEIsWUFBQSxJQUFJLE1BQU0sd0JBQXdCO0FBQUEsSUFBQTtBQUFBO0FB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
@@ -0,0 +1,11 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import { SbbOpenCloseBaseElement } from '../base-elements/open-close-base-element.js';
3
+ export declare class SbbEscapableOverlayController implements ReactiveController {
4
+ private _host;
5
+ private _overlayStack;
6
+ constructor(_host: ReactiveControllerHost & SbbOpenCloseBaseElement, _overlayStack?: SbbOpenCloseBaseElement[]);
7
+ hostDisconnected(): void;
8
+ connect(): void;
9
+ disconnect(): void;
10
+ }
11
+ //# sourceMappingURL=escapable-overlay-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapable-overlay-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/escapable-overlay-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAErF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAa3F,qBAAa,6BAA8B,YAAW,kBAAkB;IAEpE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,aAAa;gBADb,KAAK,EAAE,sBAAsB,GAAG,uBAAuB,EACvD,aAAa,GAAE,uBAAuB,EAAiB;IAK1D,gBAAgB,IAAI,IAAI;IAKxB,OAAO,IAAI,IAAI;IAKf,UAAU,IAAI,IAAI;CAQ1B"}
@@ -1,16 +1,16 @@
1
1
  import { ReactiveController, ReactiveControllerHost } from 'lit';
2
- import { SbbOpenCloseBaseElement } from '../base-elements/open-close-base-element.js';
3
2
  export declare class SbbInertController implements ReactiveController {
4
3
  private _host;
5
4
  private _inertElements;
6
5
  private _inertOverlays;
7
- constructor(_host: ReactiveControllerHost & SbbOpenCloseBaseElement, _inertElements?: Set<HTMLElement>, _inertOverlays?: Set<HTMLElement>);
8
- hostConnected(): void;
6
+ constructor(_host: ReactiveControllerHost & HTMLElement, _inertElements?: Set<HTMLElement>, _inertOverlays?: Set<HTMLElement>);
9
7
  hostDisconnected(): void;
10
8
  /** Applies inert state to every other element on the page except the overlay. */
11
9
  activate(): void;
12
10
  /** Removes inert state. */
13
11
  deactivate(): void;
12
+ /** Whether the assigned host is currently inert */
13
+ isInert(): boolean;
14
14
  private _currentOverlay;
15
15
  private _removeInertAttributes;
16
16
  private _addInertAttributes;
@@ -1 +1 @@
1
- {"version":3,"file":"inert-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/inert-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAEtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAM3F,qBAAa,kBAAmB,YAAW,kBAAkB;IAEzD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,cAAc;gBAFd,KAAK,EAAE,sBAAsB,GAAG,uBAAuB,EACvD,cAAc,mBAAgB,EAC9B,cAAc,mBAAgB;IAKjC,aAAa,IAAI,IAAI;IAMrB,gBAAgB,IAAI,IAAI;IAM/B,iFAAiF;IAC1E,QAAQ,IAAI,IAAI;IAUvB,2BAA2B;IACpB,UAAU,IAAI,IAAI;IAyBzB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,mBAAmB;CA6B5B"}
1
+ {"version":3,"file":"inert-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/inert-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAMtE,qBAAa,kBAAmB,YAAW,kBAAkB;IAEzD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,cAAc;gBAFd,KAAK,EAAE,sBAAsB,GAAG,WAAW,EAC3C,cAAc,mBAAgB,EAC9B,cAAc,mBAAgB;IAKjC,gBAAgB,IAAI,IAAI;IAM/B,iFAAiF;IAC1E,QAAQ,IAAI,IAAI;IAUvB,2BAA2B;IACpB,UAAU,IAAI,IAAI;IAyBzB,mDAAmD;IAC5C,OAAO,IAAI,OAAO;IAIzB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,mBAAmB;CA6B5B"}
@@ -2,5 +2,6 @@ export * from './controllers/connected-abort-controller.js';
2
2
  export * from './controllers/inert-controller.js';
3
3
  export * from './controllers/language-controller.js';
4
4
  export * from './controllers/media-matchers-controller.js';
5
+ export * from './controllers/escapable-overlay-controller.js';
5
6
  export * from './controllers/slot-state-controller.js';
6
7
  //# sourceMappingURL=controllers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/controllers.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC"}
1
+ {"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/controllers.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC"}
@@ -33,13 +33,8 @@ class SbbInertController {
33
33
  this._inertOverlays = _inertOverlays;
34
34
  (_b = (_a = this._host).addController) == null ? void 0 : _b.call(_a, this);
35
35
  }
36
- hostConnected() {
37
- if (this._host.isOpen) {
38
- this.activate();
39
- }
40
- }
41
36
  hostDisconnected() {
42
- if (this._inertOverlays.has(this._host)) {
37
+ if (this.isInert()) {
43
38
  this.deactivate();
44
39
  }
45
40
  }
@@ -67,6 +62,10 @@ class SbbInertController {
67
62
  this._addInertAttributes();
68
63
  }
69
64
  }
65
+ /** Whether the assigned host is currently inert */
66
+ isInert() {
67
+ return this._inertOverlays.has(this._host);
68
+ }
70
69
  _currentOverlay() {
71
70
  return [...this._inertOverlays].pop() ?? null;
72
71
  }
@@ -225,6 +224,40 @@ class SbbMediaMatcherController {
225
224
  }
226
225
  }
227
226
  }
227
+ const overlayStack = new Array();
228
+ if (!isServer) {
229
+ window.addEventListener("keydown", (event) => {
230
+ var _a;
231
+ if (event.key === "Escape" && !event.defaultPrevented) {
232
+ event.preventDefault();
233
+ (_a = overlayStack.at(-1)) == null ? void 0 : _a.close();
234
+ }
235
+ });
236
+ }
237
+ class SbbEscapableOverlayController {
238
+ constructor(_host, _overlayStack = overlayStack) {
239
+ var _a, _b;
240
+ this._host = _host;
241
+ this._overlayStack = _overlayStack;
242
+ (_b = (_a = this._host).addController) == null ? void 0 : _b.call(_a, this);
243
+ }
244
+ hostDisconnected() {
245
+ this.disconnect();
246
+ }
247
+ // This must be called when the overlay is opened
248
+ connect() {
249
+ this._overlayStack.push(this._host);
250
+ }
251
+ // This must be called when the overlay is closed
252
+ disconnect() {
253
+ if (this._overlayStack.length) {
254
+ const findElIndex = this._overlayStack.findIndex((e) => e === this._host);
255
+ if (findElIndex !== -1) {
256
+ this._overlayStack.splice(findElIndex, 1);
257
+ }
258
+ }
259
+ }
260
+ }
228
261
  class SbbSlotStateController {
229
262
  constructor(_host, _onChangeCallback = null) {
230
263
  this._host = _host;
@@ -271,6 +304,7 @@ class SbbSlotStateController {
271
304
  }
272
305
  export {
273
306
  SbbConnectedAbortController,
307
+ SbbEscapableOverlayController,
274
308
  SbbInertController,
275
309
  SbbLanguageController,
276
310
  SbbMediaMatcherController,
@@ -281,4 +315,4 @@ export {
281
315
  SbbMediaQueryPointerCoarse,
282
316
  SbbSlotStateController
283
317
  };
284
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2Nvbm5lY3RlZC1hYm9ydC1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvaW5lcnQtY29udHJvbGxlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvc2xvdC1zdGF0ZS1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBObyByZXBsYWNlbWVudCBzaG91bGQgYmUgbmVjZXNzYXJ5LCBhcyB0aGlzIHdhcyBpbnRlbmRlZFxuICogICBmb3IgZXZlbnQgbGlzdGVuZXJzLCB3aGljaCBzaG91bGQgYmUgYXBwbGllZCBpbiB0aGUgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF9hYm9ydENvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgcHVibGljIGdldCBzaWduYWwoKTogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LnNpZ25hbDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlQ29udHJvbGxlciwgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL29wZW4tY2xvc2UtYmFzZS1lbGVtZW50LmpzJztcblxuY29uc3QgSUdOT1JFRF9FTEVNRU5UUyA9IFsnc2NyaXB0JywgJ2hlYWQnLCAndGVtcGxhdGUnLCAnc3R5bGUnXTtcbmNvbnN0IGluZXJ0RWxlbWVudHMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuY29uc3QgaW5lcnRPdmVybGF5cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5cbmV4cG9ydCBjbGFzcyBTYmJJbmVydENvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICAgIHByaXZhdGUgX2luZXJ0RWxlbWVudHMgPSBpbmVydEVsZW1lbnRzLFxuICAgIHByaXZhdGUgX2luZXJ0T3ZlcmxheXMgPSBpbmVydE92ZXJsYXlzLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXI/Lih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9ob3N0LmlzT3Blbikge1xuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLmhhcyh0aGlzLl9ob3N0KSkge1xuICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFwcGxpZXMgaW5lcnQgc3RhdGUgdG8gZXZlcnkgb3RoZXIgZWxlbWVudCBvbiB0aGUgcGFnZSBleGNlcHQgdGhlIG92ZXJsYXkuICovXG4gIHB1YmxpYyBhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgaW5lcnQgc3RhdGUgZnJvbSBwcmV2aW91cyBvcGVuZWQgb3ZlcmxheVxuICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLnNpemUpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcygpO1xuICAgIH1cblxuICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuYWRkKHRoaXMuX2hvc3QpO1xuICAgIHRoaXMuX2FkZEluZXJ0QXR0cmlidXRlcygpO1xuICB9XG5cbiAgLyoqIFJlbW92ZXMgaW5lcnQgc3RhdGUuICovXG4gIHB1YmxpYyBkZWFjdGl2YXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jdXJyZW50T3ZlcmxheSgpICE9PSB0aGlzLl9ob3N0KSB7XG4gICAgICAvLyBJZiBlLmcuIGEgY29tcG9uZW50IGdldHMgZGlzY29ubmVjdGVkLCBpdCBjb3VsZCBiZSB0aGF0IGl0IGlzIG5vdCB0aGUgdG9wIG1vc3QuXG4gICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIGNhbiBkaXJlY3RseSByZW1vdmUgaXQsIGFzIHRoZXJlIGlzIGN1cnJlbnRseSBubyBpbmVydCBzdGF0ZSBhcHBsaWVkLlxuICAgICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuaGFzKHRoaXMuX2hvc3QpKSB7XG4gICAgICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuZGVsZXRlKHRoaXMuX2hvc3QpO1xuICAgICAgfSBlbHNlIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnVHJ5aW5nIHRvIHJlbW92ZSBpbmVydCBzdGF0ZSBvZiBhbiBvdmVybGF5IHdoaWNoIG5ldmVyIGhhZCBhbiBhcHBsaWVkIGluZXJ0IHN0YXRlLicsXG4gICAgICAgICAgdGhpcy5faG9zdCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcygpO1xuICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuZGVsZXRlKHRoaXMuX2hvc3QpO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgYXMgcHJldmlvdXMgb3BlbmVkIG92ZXJsYXksIHNldCBpdHMgaW5lcnQgc3RhdGUgYWdhaW4uXG4gICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuc2l6ZSkge1xuICAgICAgdGhpcy5fYWRkSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY3VycmVudE92ZXJsYXkoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2luZXJ0T3ZlcmxheXNdLnBvcCgpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVJbmVydEF0dHJpYnV0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcpKSB7XG4gICAgICAgIGVsZW1lbnQuaW5lcnQgPSBmYWxzZTtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWluZXJ0Jyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItYXJpYS1oaWRkZW4nKSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKTtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkSW5lcnRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIGxldCBlbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IHRoaXMuX2N1cnJlbnRPdmVybGF5KCk7XG5cbiAgICB3aGlsZSAoZWxlbWVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIEFycmF5LmZyb20oKGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQgPz8gZWxlbWVudD8uZ2V0Um9vdE5vZGUoKSk/LmNoaWxkTm9kZXMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKGNoaWxkKTogY2hpbGQgaXMgSFRNTEVsZW1lbnQgPT5cbiAgICAgICAgICAgIGNoaWxkICE9PSBlbGVtZW50ICYmXG4gICAgICAgICAgICBjaGlsZCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgIUlHTk9SRURfRUxFTUVOVFMuaW5jbHVkZXMoY2hpbGQubG9jYWxOYW1lKSxcbiAgICAgICAgKVxuICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuYWRkKGVsZW1lbnQpO1xuXG4gICAgICAgICAgaWYgKCFlbGVtZW50LmluZXJ0KSB7XG4gICAgICAgICAgICBlbGVtZW50LmluZXJ0ID0gdHJ1ZTtcbiAgICAgICAgICAgIGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcsIHRydWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJykpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgICAgICAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItYXJpYS1oaWRkZW4nLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBXZSBuZWVkIHRvIHBpZXJjZSB0aHJvdWdoIFNoYWRvdyBET00gYm91bmRhcnlcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50Py5wYXJlbnRFbGVtZW50ID8/IChlbGVtZW50Py5nZXRSb290Tm9kZSgpIGFzIFNoYWRvd1Jvb3QpPy5ob3N0ID8/IG51bGw7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi9jb25maWcuanMnO1xuXG4vKipcbiAqIFRoZSBMYW5ndWFnZUNvbnRyb2xsZXIgaXMgYSByZWFjdGl2ZSBjb250cm9sbGVyIHRoYXQgb2JzZXJ2ZXMgdGhlIFwibGFuZ1wiIGF0dHJpYnV0ZVxuICogb2YgdGhlIDxodG1sPiB0YWcuXG4gKiBPbiBjaGFuZ2Ugb2YgdGhlIFwibGFuZ1wiIGF0dHJpYnV0ZSwgaXQgd2lsbCByZXF1ZXN0IGFuIHVwZGF0ZSBvZiBjb25uZWN0ZWRcbiAqIGNvbXBvbmVudHMuXG4gKlxuICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0dsb2JhbF9hdHRyaWJ1dGVzL2xhbmdcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkxhbmd1YWdlQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9kZWZhdWx0TGFuZ3VhZ2UgPSAnZW4nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfc3VwcG9ydGVkTG9jYWxlcyA9IFsnZW4nLCAnZGUnLCAnZnInLCAnaXQnXTtcblxuICAvKiogQSBzZXQgb2YgY29ubmVjdGVkIGNvbXBvbmVudHMgdGhhdCBzaG91bGQgYmUgbm90aWZpZWQgb24gbGFuZ3VhZ2UgY2hhbmdlLiAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfbGlzdGVuZXJzID0gbmV3IFNldDxTYmJMYW5ndWFnZUNvbnRyb2xsZXI+KCk7XG5cbiAgLyoqIE11dGF0aW9uT2JzZXJ2ZXIgdGhhdCBvYnNlcnZlcyB0aGUgXCJsYW5nXCIgYXR0cmlidXRlIG9mIHRoZSA8aHRtbD4gZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX29ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbnNbMF0ub2xkVmFsdWUgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2xhbmcnKSkge1xuICAgICAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmZvckVhY2goKGwpID0+IGwuX2NhbGxIYW5kbGVycygpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICA6IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlckNvbmZpZyA9IHtcbiAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnbGFuZyddLFxuICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICB9O1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGN1cnJlbnQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9XG4gICAgICAocmVhZENvbmZpZygpLmxhbmd1YWdlID8/XG4gICAgICAgIChpc1NlcnZlclxuICAgICAgICAgID8gU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9kZWZhdWx0TGFuZ3VhZ2VcbiAgICAgICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2xhbmcnKSkpIHx8XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2RlZmF1bHRMYW5ndWFnZTtcblxuICAgIC8vIFN1cHBvcnQgZS5nLiBjYXNlcyBsaWtlIGBkZS1jaGAuXG4gICAgY29uc3QgbGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWQgPSBsYW5ndWFnZS5zcGxpdCgnLScpWzBdO1xuICAgIHJldHVybiBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX3N1cHBvcnRlZExvY2FsZXMuaW5jbHVkZXMobGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWQpXG4gICAgICA/IGxhbmdBdHRyaWJ1dGVOb3JtYWxpemVkXG4gICAgICA6IFNiYkxhbmd1YWdlQ29udHJvbGxlci5fZGVmYXVsdExhbmd1YWdlO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgY3VycmVudCBsYW5ndWFnZS4gKi9cbiAgcHVibGljIGdldCBjdXJyZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJldmlvdXNMYW5ndWFnZT86IHN0cmluZztcbiAgcHJpdmF0ZSBfaGFuZGxlcnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QpIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICAvKiogQWRkIGEgbGFuZ3VhZ2UgY2hhbmdlIGhhbmRsZXIuICovXG4gIHB1YmxpYyB3aXRoSGFuZGxlcihoYW5kbGVyOiAoKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgLy8gV2UgdXNlIHVuc2hpZnQgaGVyZSwgdG8gcHJlcGVuZCBhZGRpdGlvbmFsIGhhbmRsZXJzLlxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHJlcXVlc3RVcGRhdGUgaXMgY2FsbGVkIGFmdGVyIHRoZSBvdGhlciBoYW5kbGVycy5cbiAgICB0aGlzLl9oYW5kbGVycy51bnNoaWZ0KGhhbmRsZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuc2l6ZSkge1xuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlciEub2JzZXJ2ZShcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFxuICAgICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyQ29uZmlnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5hZGQodGhpcyk7XG4gICAgaWYgKHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgIT09IHRoaXMuY3VycmVudCkge1xuICAgICAgdGhpcy5fY2FsbEhhbmRsZXJzKHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgIT09IHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgPSB0aGlzLmN1cnJlbnQ7XG4gICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuZGVsZXRlKHRoaXMpO1xuICAgIGlmICghU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuc2l6ZSkge1xuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlciEuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhbGxIYW5kbGVycyhyZXF1ZXN0VXBkYXRlID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2hhbmRsZXJzLmZvckVhY2goKGgpID0+IGgoKSk7XG4gICAgaWYgKHJlcXVlc3RVcGRhdGUpIHtcbiAgICAgIHRoaXMuX2hvc3QucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgU2JiQnJlYWtwb2ludE1lZGl1bU1pbixcbiAgU2JiQnJlYWtwb2ludFNtYWxsTWF4LFxuICBTYmJUeXBvU2NhbGVEZWZhdWx0LFxufSBmcm9tICdAc2JiLWVzdGEvbHluZS1kZXNpZ24tdG9rZW5zJztcbmltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuY29uc3QgcHhUb1JlbSA9IChweDogbnVtYmVyKTogbnVtYmVyID0+IHB4IC8gU2JiVHlwb1NjYWxlRGVmYXVsdDtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUZvcmNlZENvbG9ycyA9ICcoZm9yY2VkLWNvbG9yczogYWN0aXZlKSc7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUhvdmVyID0gJyhhbnktaG92ZXI6IGhvdmVyKSc7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgPSAnKHBvaW50ZXI6IGNvYXJzZSknO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50TWVkaXVtQW5kQWJvdmUgPSBgKG1pbi13aWR0aDogJHtweFRvUmVtKFNiYkJyZWFrcG9pbnRNZWRpdW1NaW4pfXJlbSlgO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRCZWxvdyA9IGAobWF4LXdpZHRoOiAke3B4VG9SZW0oU2JiQnJlYWtwb2ludFNtYWxsTWF4KX1yZW0pYDtcbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5cbi8qKlxuICogQSBjYWxsYmFjaywgd2hpY2ggaXMgaW52b2tlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIG1lZGlhIHF1ZXJ5IG1hdGNoXG4gKiBzdGF0dXMgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IHR5cGUgU2JiTWVkaWFNYXRjaGVySGFuZGxlciA9IChtYXRjaGVzOiBib29sZWFuKSA9PiB2b2lkO1xuXG5pbnRlcmZhY2UgTWVkaWFRdWVyeUVudHJ5IHtcbiAgbWVkaWFRdWVyeUxpc3Q6IE1lZGlhUXVlcnlMaXN0O1xuICBldmVudEhhbmRsZXI6IChldmVudDogTWVkaWFRdWVyeUxpc3RFdmVudCkgPT4gdm9pZDtcbiAgaGFuZGxlcnM6IFNldDxTYmJNZWRpYU1hdGNoZXJIYW5kbGVyPjtcbn1cblxuLyoqXG4gKiBXZSB3YW50IHRvIGNhY2hlIE1lZGlhUXVlcnlMaXN0IGluc3RhbmNlcyBhbmQgY29ycmVzcG9uZGluZ1xuICogZXZlbnQgaGFuZGxlcnMsIGFzIGEgbXVsdGl0dWRlIG9mIGV2ZW50IGhhbmRsZXJzIG9uIGdsb2JhbCBvYmplY3RzXG4gKiBjYW4gZGVncmFkZSBwZXJmb3JtYW5jZSB3aXRoIHRpbWUuXG4gKi9cbmNvbnN0IG1lZGlhUXVlcnlSZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCBNZWRpYVF1ZXJ5RW50cnk+KCk7XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGFsbG93cyBsaXN0ZW5pbmcgdG8gbWVkaWEgcXVlcnkgY2hhbmdlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogbmV3IFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIodGhpcywge1xuICogICBbU2JiRm9yY2VkQ29sb3JzUXVlcnldOiAobWF0Y2hlcykgPT4gZG9Tb21ldGhpbmcobWF0Y2hlcyksXG4gKiB9KVxuICovXG5leHBvcnQgY2xhc3MgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0LFxuICAgIHByaXZhdGUgX3F1ZXJpZXM6IFJlY29yZDxzdHJpbmcsIFNiYk1lZGlhTWF0Y2hlckhhbmRsZXI+LFxuICApIHtcbiAgICBob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBxdWVyeSBtYXRjaGVzLiBSZXR1cm5zIG51bGwgd2l0aCBTU1IuXG4gICAqIEBwYXJhbSBxdWVyeSBUaGUgcXVlcnkgdG8gY2hlY2sgYWdhaW5zdC5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgcXVlcnkgbWF0Y2hlcyBvciBudWxsIHdpdGggU1NSLlxuICAgKi9cbiAgcHVibGljIG1hdGNoZXMocXVlcnk6IHN0cmluZyk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBtZWRpYVF1ZXJ5ID0gbWVkaWFRdWVyeVJlZ2lzdHJ5LmdldChxdWVyeSk7XG4gICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgIHJldHVybiBtZWRpYVF1ZXJ5Lm1lZGlhUXVlcnlMaXN0Lm1hdGNoZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3F1ZXJ5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9xdWVyaWVzKSkge1xuICAgICAgY29uc3QgbWVkaWFRdWVyeSA9IG1lZGlhUXVlcnlSZWdpc3RyeS5nZXQocXVlcnkpO1xuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgbWVkaWFRdWVyeS5oYW5kbGVycy5hZGQoaGFuZGxlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtZWRpYVF1ZXJ5TGlzdCA9IG1hdGNoTWVkaWEocXVlcnkpO1xuICAgICAgICBjb25zdCBoYW5kbGVycyA9IG5ldyBTZXQoW2hhbmRsZXJdKTtcbiAgICAgICAgY29uc3QgZXZlbnRIYW5kbGVyID0gKGU6IE1lZGlhUXVlcnlMaXN0RXZlbnQpOiB2b2lkID0+XG4gICAgICAgICAgaGFuZGxlcnMuZm9yRWFjaCgoaCkgPT4gaChlLm1hdGNoZXMpKTtcbiAgICAgICAgbWVkaWFRdWVyeUxpc3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZXZlbnRIYW5kbGVyKTtcbiAgICAgICAgbWVkaWFRdWVyeVJlZ2lzdHJ5LnNldChxdWVyeSwgeyBtZWRpYVF1ZXJ5TGlzdCwgaGFuZGxlcnMsIGV2ZW50SGFuZGxlciB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtxdWVyeSwgaGFuZGxlcl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fcXVlcmllcykpIHtcbiAgICAgIGNvbnN0IG1lZGlhUXVlcnkgPSBtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KHF1ZXJ5KTtcbiAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgIG1lZGlhUXVlcnkuaGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgICAgICBpZiAoIW1lZGlhUXVlcnkuaGFuZGxlcnMuc2l6ZSkge1xuICAgICAgICAgIG1lZGlhUXVlcnlSZWdpc3RyeS5kZWxldGUocXVlcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlQ29udHJvbGxlciwgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGNoZWNrcyBmb3Igc2xvdHRlZCBjaGlsZHJlbi4gRnJvbSB0aGVzZSBpdCBnZW5lcmF0ZXNcbiAqIGEgbGlzdCBvZiB1c2VkIHNsb3QgbmFtZXMgKGB1bm5hbWVkYCBmb3IgY2hpbGRyZW4gd2l0aG91dCBhIHNsb3QgYXR0cmlidXRlKVxuICogYW5kIGFkZHMgdGhpcyB0byB0aGUgYGRhdGEtc2xvdC1uYW1lc2AgYXR0cmlidXRlLCBhcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0LlxuICpcbiAqIFRoaXMgYWxsb3dzIENTUyBhdHRyaWJ1dGUgc2VsZWN0b3IgdG8gZGlzcGxheS9oaWRlL2NvbmZpZ3VyZSBhIHNlY3Rpb25cbiAqIG9mIHRoZSBjb21wb25lbnQgYXMgcmVxdWlyZWQgKHNlZSBbYXR0cn49dmFsdWVdIHNlbGVjdG9yIHNwZWNpZmljYWxseSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIC5leGFtcGxlIHtcbiAqICAgZGlzcGxheTogbm9uZTtcbiAqXG4gKiAgIDpob3N0KFtkYXRhLXNsb3QtbmFtZXN+PVwiaWNvblwiXSkgJiB7XG4gKiAgICAgZGlzcGxheTogaW5saW5lO1xuICogICB9XG4gKiB9XG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0F0dHJpYnV0ZV9zZWxlY3RvcnNcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgc2xvdHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgX29uQ2hhbmdlQ2FsbGJhY2s6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiBDaGVjayBpZiB0aGlzIGlzIHJlYWxseSBuZWVkZWQgd2l0aCBTU1IuXG4gICAgdGhpcy5fc3luY1Nsb3RzKC4uLnRoaXMuX2hvc3QucXVlcnlTZWxlY3RvckFsbCEoJ3Nsb3QnKSk7XG4gICAgdGhpcy5faG9zdC5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIpO1xuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5faG9zdC5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIpO1xuICB9XG5cbiAgLy8gV2UgYXZvaWQgdXNpbmcgQWJvcnRDb250cm9sbGVyIGhlcmUsIGFzIGl0IHdvdWxkIG1lYW4gY3JlYXRpbmdcbiAgLy8gYSBuZXcgaW5zdGFuY2UgZm9yIGV2ZXJ5IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgaW5zdGFuY2UuXG4gIHByaXZhdGUgX3Nsb3RjaGFuZ2VIYW5kbGVyID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX3N5bmNTbG90cyhldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KTtcbiAgfTtcblxuICBwcml2YXRlIF9zeW5jU2xvdHMoLi4uc2xvdHM6IEhUTUxTbG90RWxlbWVudFtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzbG90IG9mIHNsb3RzKSB7XG4gICAgICBjb25zdCBzbG90TmFtZSA9IHNsb3QubmFtZSB8fCAndW5uYW1lZCc7XG4gICAgICAvLyBXZSB3YW50IHRvIGNoZWNrLCB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgc2xvdHRlZCBvciBhIHRleHQgbm9kZSB3aXRoIGFjdHVhbCBjb250ZW50LlxuICAgICAgaWYgKHNsb3QuYXNzaWduZWROb2RlcygpLnNvbWUoKG4pID0+ICd0YWdOYW1lJyBpbiBuIHx8IG4udGV4dENvbnRlbnQ/LnRyaW0oKSkpIHtcbiAgICAgICAgdGhpcy5zbG90cy5hZGQoc2xvdE5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zbG90cy5kZWxldGUoc2xvdE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5faG9zdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycpO1xuICAgIGNvbnN0IGpvaW5lZFNsb3ROYW1lcyA9IFsuLi50aGlzLnNsb3RzXS5zb3J0KCkuam9pbignICcpO1xuICAgIGlmICgham9pbmVkU2xvdE5hbWVzKSB7XG4gICAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9ob3N0LmdldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJykgIT09IGpvaW5lZFNsb3ROYW1lcykge1xuICAgICAgdGhpcy5faG9zdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycsIGpvaW5lZFNsb3ROYW1lcyk7XG4gICAgfVxuXG4gICAgaWYgKGpvaW5lZFNsb3ROYW1lcyAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2s/LigpO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImVsZW1lbnQiLCJfYSJdLCJtYXBwaW5ncyI6Ijs7O01BTWEsNEJBQTJC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
318
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2Nvbm5lY3RlZC1hYm9ydC1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvaW5lcnQtY29udHJvbGxlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvZXNjYXBhYmxlLW92ZXJsYXktY29udHJvbGxlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Nsb3Qtc3RhdGUtY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlQ29udHJvbGxlciwgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTm8gcmVwbGFjZW1lbnQgc2hvdWxkIGJlIG5lY2Vzc2FyeSwgYXMgdGhpcyB3YXMgaW50ZW5kZWRcbiAqICAgZm9yIGV2ZW50IGxpc3RlbmVycywgd2hpY2ggc2hvdWxkIGJlIGFwcGxpZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICovXG5leHBvcnQgY2xhc3MgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gIHB1YmxpYyBnZXQgc2lnbmFsKCk6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRDb250cm9sbGVyPy5zaWduYWw7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYWJvcnRDb250cm9sbGVyKSB7XG4gICAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUNvbnRyb2xsZXIsIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG5jb25zdCBJR05PUkVEX0VMRU1FTlRTID0gWydzY3JpcHQnLCAnaGVhZCcsICd0ZW1wbGF0ZScsICdzdHlsZSddO1xuY29uc3QgaW5lcnRFbGVtZW50cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5jb25zdCBpbmVydE92ZXJsYXlzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcblxuZXhwb3J0IGNsYXNzIFNiYkluZXJ0Q29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQsXG4gICAgcHJpdmF0ZSBfaW5lcnRFbGVtZW50cyA9IGluZXJ0RWxlbWVudHMsXG4gICAgcHJpdmF0ZSBfaW5lcnRPdmVybGF5cyA9IGluZXJ0T3ZlcmxheXMsXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcj8uKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNJbmVydCgpKSB7XG4gICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQXBwbGllcyBpbmVydCBzdGF0ZSB0byBldmVyeSBvdGhlciBlbGVtZW50IG9uIHRoZSBwYWdlIGV4Y2VwdCB0aGUgb3ZlcmxheS4gKi9cbiAgcHVibGljIGFjdGl2YXRlKCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSBpbmVydCBzdGF0ZSBmcm9tIHByZXZpb3VzIG9wZW5lZCBvdmVybGF5XG4gICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuc2l6ZSkge1xuICAgICAgdGhpcy5fcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5lcnRPdmVybGF5cy5hZGQodGhpcy5faG9zdCk7XG4gICAgdGhpcy5fYWRkSW5lcnRBdHRyaWJ1dGVzKCk7XG4gIH1cblxuICAvKiogUmVtb3ZlcyBpbmVydCBzdGF0ZS4gKi9cbiAgcHVibGljIGRlYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnRPdmVybGF5KCkgIT09IHRoaXMuX2hvc3QpIHtcbiAgICAgIC8vIElmIGUuZy4gYSBjb21wb25lbnQgZ2V0cyBkaXNjb25uZWN0ZWQsIGl0IGNvdWxkIGJlIHRoYXQgaXQgaXMgbm90IHRoZSB0b3AgbW9zdC5cbiAgICAgIC8vIEluIHRoaXMgY2FzZSwgd2UgY2FuIGRpcmVjdGx5IHJlbW92ZSBpdCwgYXMgdGhlcmUgaXMgY3VycmVudGx5IG5vIGluZXJ0IHN0YXRlIGFwcGxpZWQuXG4gICAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5oYXModGhpcy5faG9zdCkpIHtcbiAgICAgICAgdGhpcy5faW5lcnRPdmVybGF5cy5kZWxldGUodGhpcy5faG9zdCk7XG4gICAgICB9IGVsc2UgaWYgKGltcG9ydC5tZXRhLmVudi5ERVYpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdUcnlpbmcgdG8gcmVtb3ZlIGluZXJ0IHN0YXRlIG9mIGFuIG92ZXJsYXkgd2hpY2ggbmV2ZXIgaGFkIGFuIGFwcGxpZWQgaW5lcnQgc3RhdGUuJyxcbiAgICAgICAgICB0aGlzLl9ob3N0LFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgdGhpcy5faW5lcnRPdmVybGF5cy5kZWxldGUodGhpcy5faG9zdCk7XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhcyBwcmV2aW91cyBvcGVuZWQgb3ZlcmxheSwgc2V0IGl0cyBpbmVydCBzdGF0ZSBhZ2Fpbi5cbiAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5zaXplKSB7XG4gICAgICB0aGlzLl9hZGRJbmVydEF0dHJpYnV0ZXMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYXNzaWduZWQgaG9zdCBpcyBjdXJyZW50bHkgaW5lcnQgKi9cbiAgcHVibGljIGlzSW5lcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2luZXJ0T3ZlcmxheXMuaGFzKHRoaXMuX2hvc3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3VycmVudE92ZXJsYXkoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2luZXJ0T3ZlcmxheXNdLnBvcCgpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVJbmVydEF0dHJpYnV0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcpKSB7XG4gICAgICAgIGVsZW1lbnQuaW5lcnQgPSBmYWxzZTtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWluZXJ0Jyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItYXJpYS1oaWRkZW4nKSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKTtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkSW5lcnRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIGxldCBlbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IHRoaXMuX2N1cnJlbnRPdmVybGF5KCk7XG5cbiAgICB3aGlsZSAoZWxlbWVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIEFycmF5LmZyb20oKGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQgPz8gZWxlbWVudD8uZ2V0Um9vdE5vZGUoKSk/LmNoaWxkTm9kZXMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKGNoaWxkKTogY2hpbGQgaXMgSFRNTEVsZW1lbnQgPT5cbiAgICAgICAgICAgIGNoaWxkICE9PSBlbGVtZW50ICYmXG4gICAgICAgICAgICBjaGlsZCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgIUlHTk9SRURfRUxFTUVOVFMuaW5jbHVkZXMoY2hpbGQubG9jYWxOYW1lKSxcbiAgICAgICAgKVxuICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuYWRkKGVsZW1lbnQpO1xuXG4gICAgICAgICAgaWYgKCFlbGVtZW50LmluZXJ0KSB7XG4gICAgICAgICAgICBlbGVtZW50LmluZXJ0ID0gdHJ1ZTtcbiAgICAgICAgICAgIGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcsIHRydWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJykpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgICAgICAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItYXJpYS1oaWRkZW4nLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBXZSBuZWVkIHRvIHBpZXJjZSB0aHJvdWdoIFNoYWRvdyBET00gYm91bmRhcnlcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50Py5wYXJlbnRFbGVtZW50ID8/IChlbGVtZW50Py5nZXRSb290Tm9kZSgpIGFzIFNoYWRvd1Jvb3QpPy5ob3N0ID8/IG51bGw7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi9jb25maWcuanMnO1xuXG4vKipcbiAqIFRoZSBMYW5ndWFnZUNvbnRyb2xsZXIgaXMgYSByZWFjdGl2ZSBjb250cm9sbGVyIHRoYXQgb2JzZXJ2ZXMgdGhlIFwibGFuZ1wiIGF0dHJpYnV0ZVxuICogb2YgdGhlIDxodG1sPiB0YWcuXG4gKiBPbiBjaGFuZ2Ugb2YgdGhlIFwibGFuZ1wiIGF0dHJpYnV0ZSwgaXQgd2lsbCByZXF1ZXN0IGFuIHVwZGF0ZSBvZiBjb25uZWN0ZWRcbiAqIGNvbXBvbmVudHMuXG4gKlxuICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0dsb2JhbF9hdHRyaWJ1dGVzL2xhbmdcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkxhbmd1YWdlQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9kZWZhdWx0TGFuZ3VhZ2UgPSAnZW4nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfc3VwcG9ydGVkTG9jYWxlcyA9IFsnZW4nLCAnZGUnLCAnZnInLCAnaXQnXTtcblxuICAvKiogQSBzZXQgb2YgY29ubmVjdGVkIGNvbXBvbmVudHMgdGhhdCBzaG91bGQgYmUgbm90aWZpZWQgb24gbGFuZ3VhZ2UgY2hhbmdlLiAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfbGlzdGVuZXJzID0gbmV3IFNldDxTYmJMYW5ndWFnZUNvbnRyb2xsZXI+KCk7XG5cbiAgLyoqIE11dGF0aW9uT2JzZXJ2ZXIgdGhhdCBvYnNlcnZlcyB0aGUgXCJsYW5nXCIgYXR0cmlidXRlIG9mIHRoZSA8aHRtbD4gZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX29ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbnNbMF0ub2xkVmFsdWUgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2xhbmcnKSkge1xuICAgICAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmZvckVhY2goKGwpID0+IGwuX2NhbGxIYW5kbGVycygpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICA6IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlckNvbmZpZyA9IHtcbiAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnbGFuZyddLFxuICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICB9O1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGN1cnJlbnQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9XG4gICAgICAocmVhZENvbmZpZygpLmxhbmd1YWdlID8/XG4gICAgICAgIChpc1NlcnZlclxuICAgICAgICAgID8gU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9kZWZhdWx0TGFuZ3VhZ2VcbiAgICAgICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2xhbmcnKSkpIHx8XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2RlZmF1bHRMYW5ndWFnZTtcblxuICAgIC8vIFN1cHBvcnQgZS5nLiBjYXNlcyBsaWtlIGBkZS1jaGAuXG4gICAgY29uc3QgbGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWQgPSBsYW5ndWFnZS5zcGxpdCgnLScpWzBdO1xuICAgIHJldHVybiBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX3N1cHBvcnRlZExvY2FsZXMuaW5jbHVkZXMobGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWQpXG4gICAgICA/IGxhbmdBdHRyaWJ1dGVOb3JtYWxpemVkXG4gICAgICA6IFNiYkxhbmd1YWdlQ29udHJvbGxlci5fZGVmYXVsdExhbmd1YWdlO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgY3VycmVudCBsYW5ndWFnZS4gKi9cbiAgcHVibGljIGdldCBjdXJyZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJldmlvdXNMYW5ndWFnZT86IHN0cmluZztcbiAgcHJpdmF0ZSBfaGFuZGxlcnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QpIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICAvKiogQWRkIGEgbGFuZ3VhZ2UgY2hhbmdlIGhhbmRsZXIuICovXG4gIHB1YmxpYyB3aXRoSGFuZGxlcihoYW5kbGVyOiAoKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgLy8gV2UgdXNlIHVuc2hpZnQgaGVyZSwgdG8gcHJlcGVuZCBhZGRpdGlvbmFsIGhhbmRsZXJzLlxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHJlcXVlc3RVcGRhdGUgaXMgY2FsbGVkIGFmdGVyIHRoZSBvdGhlciBoYW5kbGVycy5cbiAgICB0aGlzLl9oYW5kbGVycy51bnNoaWZ0KGhhbmRsZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuc2l6ZSkge1xuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlciEub2JzZXJ2ZShcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFxuICAgICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyQ29uZmlnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5hZGQodGhpcyk7XG4gICAgaWYgKHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgIT09IHRoaXMuY3VycmVudCkge1xuICAgICAgdGhpcy5fY2FsbEhhbmRsZXJzKHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgIT09IHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgPSB0aGlzLmN1cnJlbnQ7XG4gICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuZGVsZXRlKHRoaXMpO1xuICAgIGlmICghU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuc2l6ZSkge1xuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlciEuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhbGxIYW5kbGVycyhyZXF1ZXN0VXBkYXRlID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2hhbmRsZXJzLmZvckVhY2goKGgpID0+IGgoKSk7XG4gICAgaWYgKHJlcXVlc3RVcGRhdGUpIHtcbiAgICAgIHRoaXMuX2hvc3QucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgU2JiQnJlYWtwb2ludE1lZGl1bU1pbixcbiAgU2JiQnJlYWtwb2ludFNtYWxsTWF4LFxuICBTYmJUeXBvU2NhbGVEZWZhdWx0LFxufSBmcm9tICdAc2JiLWVzdGEvbHluZS1kZXNpZ24tdG9rZW5zJztcbmltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuY29uc3QgcHhUb1JlbSA9IChweDogbnVtYmVyKTogbnVtYmVyID0+IHB4IC8gU2JiVHlwb1NjYWxlRGVmYXVsdDtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUZvcmNlZENvbG9ycyA9ICcoZm9yY2VkLWNvbG9yczogYWN0aXZlKSc7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUhvdmVyID0gJyhhbnktaG92ZXI6IGhvdmVyKSc7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgPSAnKHBvaW50ZXI6IGNvYXJzZSknO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50TWVkaXVtQW5kQWJvdmUgPSBgKG1pbi13aWR0aDogJHtweFRvUmVtKFNiYkJyZWFrcG9pbnRNZWRpdW1NaW4pfXJlbSlgO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRCZWxvdyA9IGAobWF4LXdpZHRoOiAke3B4VG9SZW0oU2JiQnJlYWtwb2ludFNtYWxsTWF4KX1yZW0pYDtcbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5cbi8qKlxuICogQSBjYWxsYmFjaywgd2hpY2ggaXMgaW52b2tlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIG1lZGlhIHF1ZXJ5IG1hdGNoXG4gKiBzdGF0dXMgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IHR5cGUgU2JiTWVkaWFNYXRjaGVySGFuZGxlciA9IChtYXRjaGVzOiBib29sZWFuKSA9PiB2b2lkO1xuXG5pbnRlcmZhY2UgTWVkaWFRdWVyeUVudHJ5IHtcbiAgbWVkaWFRdWVyeUxpc3Q6IE1lZGlhUXVlcnlMaXN0O1xuICBldmVudEhhbmRsZXI6IChldmVudDogTWVkaWFRdWVyeUxpc3RFdmVudCkgPT4gdm9pZDtcbiAgaGFuZGxlcnM6IFNldDxTYmJNZWRpYU1hdGNoZXJIYW5kbGVyPjtcbn1cblxuLyoqXG4gKiBXZSB3YW50IHRvIGNhY2hlIE1lZGlhUXVlcnlMaXN0IGluc3RhbmNlcyBhbmQgY29ycmVzcG9uZGluZ1xuICogZXZlbnQgaGFuZGxlcnMsIGFzIGEgbXVsdGl0dWRlIG9mIGV2ZW50IGhhbmRsZXJzIG9uIGdsb2JhbCBvYmplY3RzXG4gKiBjYW4gZGVncmFkZSBwZXJmb3JtYW5jZSB3aXRoIHRpbWUuXG4gKi9cbmNvbnN0IG1lZGlhUXVlcnlSZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCBNZWRpYVF1ZXJ5RW50cnk+KCk7XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGFsbG93cyBsaXN0ZW5pbmcgdG8gbWVkaWEgcXVlcnkgY2hhbmdlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogbmV3IFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIodGhpcywge1xuICogICBbU2JiRm9yY2VkQ29sb3JzUXVlcnldOiAobWF0Y2hlcykgPT4gZG9Tb21ldGhpbmcobWF0Y2hlcyksXG4gKiB9KVxuICovXG5leHBvcnQgY2xhc3MgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0LFxuICAgIHByaXZhdGUgX3F1ZXJpZXM6IFJlY29yZDxzdHJpbmcsIFNiYk1lZGlhTWF0Y2hlckhhbmRsZXI+LFxuICApIHtcbiAgICBob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBxdWVyeSBtYXRjaGVzLiBSZXR1cm5zIG51bGwgd2l0aCBTU1IuXG4gICAqIEBwYXJhbSBxdWVyeSBUaGUgcXVlcnkgdG8gY2hlY2sgYWdhaW5zdC5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgcXVlcnkgbWF0Y2hlcyBvciBudWxsIHdpdGggU1NSLlxuICAgKi9cbiAgcHVibGljIG1hdGNoZXMocXVlcnk6IHN0cmluZyk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBtZWRpYVF1ZXJ5ID0gbWVkaWFRdWVyeVJlZ2lzdHJ5LmdldChxdWVyeSk7XG4gICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgIHJldHVybiBtZWRpYVF1ZXJ5Lm1lZGlhUXVlcnlMaXN0Lm1hdGNoZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3F1ZXJ5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9xdWVyaWVzKSkge1xuICAgICAgY29uc3QgbWVkaWFRdWVyeSA9IG1lZGlhUXVlcnlSZWdpc3RyeS5nZXQocXVlcnkpO1xuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgbWVkaWFRdWVyeS5oYW5kbGVycy5hZGQoaGFuZGxlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtZWRpYVF1ZXJ5TGlzdCA9IG1hdGNoTWVkaWEocXVlcnkpO1xuICAgICAgICBjb25zdCBoYW5kbGVycyA9IG5ldyBTZXQoW2hhbmRsZXJdKTtcbiAgICAgICAgY29uc3QgZXZlbnRIYW5kbGVyID0gKGU6IE1lZGlhUXVlcnlMaXN0RXZlbnQpOiB2b2lkID0+XG4gICAgICAgICAgaGFuZGxlcnMuZm9yRWFjaCgoaCkgPT4gaChlLm1hdGNoZXMpKTtcbiAgICAgICAgbWVkaWFRdWVyeUxpc3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZXZlbnRIYW5kbGVyKTtcbiAgICAgICAgbWVkaWFRdWVyeVJlZ2lzdHJ5LnNldChxdWVyeSwgeyBtZWRpYVF1ZXJ5TGlzdCwgaGFuZGxlcnMsIGV2ZW50SGFuZGxlciB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtxdWVyeSwgaGFuZGxlcl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fcXVlcmllcykpIHtcbiAgICAgIGNvbnN0IG1lZGlhUXVlcnkgPSBtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KHF1ZXJ5KTtcbiAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgIG1lZGlhUXVlcnkuaGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgICAgICBpZiAoIW1lZGlhUXVlcnkuaGFuZGxlcnMuc2l6ZSkge1xuICAgICAgICAgIG1lZGlhUXVlcnlSZWdpc3RyeS5kZWxldGUocXVlcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL29wZW4tY2xvc2UtYmFzZS1lbGVtZW50LmpzJztcblxuY29uc3Qgb3ZlcmxheVN0YWNrID0gbmV3IEFycmF5PFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50PigpO1xuXG5pZiAoIWlzU2VydmVyKSB7XG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvdmVybGF5U3RhY2suYXQoLTEpPy5jbG9zZSgpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQsXG4gICAgcHJpdmF0ZSBfb3ZlcmxheVN0YWNrOiBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudFtdID0gb3ZlcmxheVN0YWNrLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXI/Lih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCB3aGVuIHRoZSBvdmVybGF5IGlzIG9wZW5lZFxuICBwdWJsaWMgY29ubmVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9vdmVybGF5U3RhY2sucHVzaCh0aGlzLl9ob3N0KTtcbiAgfVxuXG4gIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBjbG9zZWRcbiAgcHVibGljIGRpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX292ZXJsYXlTdGFjay5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGZpbmRFbEluZGV4ID0gdGhpcy5fb3ZlcmxheVN0YWNrLmZpbmRJbmRleCgoZSkgPT4gZSA9PT0gdGhpcy5faG9zdCk7XG4gICAgICBpZiAoZmluZEVsSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlTdGFjay5zcGxpY2UoZmluZEVsSW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUNvbnRyb2xsZXIsIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG4vKipcbiAqIFRoaXMgY29udHJvbGxlciBjaGVja3MgZm9yIHNsb3R0ZWQgY2hpbGRyZW4uIEZyb20gdGhlc2UgaXQgZ2VuZXJhdGVzXG4gKiBhIGxpc3Qgb2YgdXNlZCBzbG90IG5hbWVzIChgdW5uYW1lZGAgZm9yIGNoaWxkcmVuIHdpdGhvdXQgYSBzbG90IGF0dHJpYnV0ZSlcbiAqIGFuZCBhZGRzIHRoaXMgdG8gdGhlIGBkYXRhLXNsb3QtbmFtZXNgIGF0dHJpYnV0ZSwgYXMgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdC5cbiAqXG4gKiBUaGlzIGFsbG93cyBDU1MgYXR0cmlidXRlIHNlbGVjdG9yIHRvIGRpc3BsYXkvaGlkZS9jb25maWd1cmUgYSBzZWN0aW9uXG4gKiBvZiB0aGUgY29tcG9uZW50IGFzIHJlcXVpcmVkIChzZWUgW2F0dHJ+PXZhbHVlXSBzZWxlY3RvciBzcGVjaWZpY2FsbHkpLlxuICpcbiAqIEBleGFtcGxlXG4gKiAuZXhhbXBsZSB7XG4gKiAgIGRpc3BsYXk6IG5vbmU7XG4gKlxuICogICA6aG9zdChbZGF0YS1zbG90LW5hbWVzfj1cImljb25cIl0pICYge1xuICogICAgIGRpc3BsYXk6IGlubGluZTtcbiAqICAgfVxuICogfVxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9BdHRyaWJ1dGVfc2VsZWN0b3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTbG90U3RhdGVDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHNsb3RzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCxcbiAgICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbCxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgLy8gVE9ETzogQ2hlY2sgaWYgdGhpcyBpcyByZWFsbHkgbmVlZGVkIHdpdGggU1NSLlxuICAgIHRoaXMuX3N5bmNTbG90cyguLi50aGlzLl9ob3N0LnF1ZXJ5U2VsZWN0b3JBbGwhKCdzbG90JykpO1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKTtcbiAgfVxuXG4gIC8vIFdlIGF2b2lkIHVzaW5nIEFib3J0Q29udHJvbGxlciBoZXJlLCBhcyBpdCB3b3VsZCBtZWFuIGNyZWF0aW5nXG4gIC8vIGEgbmV3IGluc3RhbmNlIGZvciBldmVyeSBTYmJTbG90U3RhdGVDb250cm9sbGVyIGluc3RhbmNlLlxuICBwcml2YXRlIF9zbG90Y2hhbmdlSGFuZGxlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9zeW5jU2xvdHMoZXZlbnQudGFyZ2V0IGFzIEhUTUxTbG90RWxlbWVudCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfc3luY1Nsb3RzKC4uLnNsb3RzOiBIVE1MU2xvdEVsZW1lbnRbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc2xvdCBvZiBzbG90cykge1xuICAgICAgY29uc3Qgc2xvdE5hbWUgPSBzbG90Lm5hbWUgfHwgJ3VubmFtZWQnO1xuICAgICAgLy8gV2Ugd2FudCB0byBjaGVjaywgd2hldGhlciBhbiBlbGVtZW50IGlzIHNsb3R0ZWQgb3IgYSB0ZXh0IG5vZGUgd2l0aCBhY3R1YWwgY29udGVudC5cbiAgICAgIGlmIChzbG90LmFzc2lnbmVkTm9kZXMoKS5zb21lKChuKSA9PiAndGFnTmFtZScgaW4gbiB8fCBuLnRleHRDb250ZW50Py50cmltKCkpKSB7XG4gICAgICAgIHRoaXMuc2xvdHMuYWRkKHNsb3ROYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2xvdHMuZGVsZXRlKHNsb3ROYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX2hvc3QuZ2V0QXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnKTtcbiAgICBjb25zdCBqb2luZWRTbG90TmFtZXMgPSBbLi4udGhpcy5zbG90c10uc29ydCgpLmpvaW4oJyAnKTtcbiAgICBpZiAoIWpvaW5lZFNsb3ROYW1lcykge1xuICAgICAgdGhpcy5faG9zdC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycpICE9PSBqb2luZWRTbG90TmFtZXMpIHtcbiAgICAgIHRoaXMuX2hvc3Quc2V0QXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnLCBqb2luZWRTbG90TmFtZXMpO1xuICAgIH1cblxuICAgIGlmIChqb2luZWRTbG90TmFtZXMgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrPy4oKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJlbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7OztNQU1hLDRCQUEyQjtBQUFBLEVBR3RDLElBQVcsU0FBTTs7QUFDZixZQUFPLFVBQUsscUJBQUwsbUJBQXVCO0FBQUEsRUFBQTtBQUFBLEVBR2hDLFlBQTJCLE9BQTZCO0FBQTdCLFNBQUssUUFBTDtBQU5uQixTQUFBLG1CQUFxQyxJQUFJLGdCQUFlO0FBT3pELFNBQUEsTUFBTSxjQUFjLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFHeEIsZ0JBQWE7QUFDZCxRQUFBLENBQUMsS0FBSyxrQkFBa0I7QUFDckIsV0FBQSxtQkFBbUIsSUFBSTs7RUFDOUI7QUFBQSxFQUdLLG1CQUFnQjs7QUFDckIsZUFBSyxxQkFBTCxtQkFBdUI7QUFDdkIsU0FBSyxtQkFBbUI7QUFBQSxFQUFBO0FBRTNCO0FDekJELE1BQU0sbUJBQW1CLENBQUMsVUFBVSxRQUFRLFlBQVksT0FBTztBQUMvRCxNQUFNLG9DQUFvQjtBQUMxQixNQUFNLG9DQUFvQjtNQUViLG1CQUFrQjtBQUFBLEVBQzdCLFlBQ1UsT0FDQSxpQkFBaUIsZUFDakIsaUJBQWlCLGVBQWE7O0FBRjlCLFNBQUssUUFBTDtBQUNBLFNBQWMsaUJBQWQ7QUFDQSxTQUFjLGlCQUFkO0FBRUgscUJBQUEsT0FBTSxrQkFBTiw0QkFB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
@@ -1,8 +1,10 @@
1
1
  export declare const DAYS_PER_ROW: number;
2
2
  export declare const MONTHS_PER_ROW: number;
3
3
  export declare const YEARS_PER_ROW: number;
4
+ export declare const MONTHS_PER_PAGE: number;
4
5
  export declare const YEARS_PER_PAGE: number;
5
6
  export declare const FORMAT_DATE: RegExp;
7
+ export declare const ISO8601_FORMAT_DATE: RegExp;
6
8
  /**
7
9
  * Abstract date functionality.
8
10
  *
@@ -109,14 +111,14 @@ export declare abstract class DateAdapter<T = any> {
109
111
  * @param value The date in the format DD.MM.YYYY.
110
112
  * @param now The current date as Date.
111
113
  */
112
- abstract parse(value: string | null | undefined, now: T): T | null;
114
+ abstract parse(value: string | null | undefined, now?: T): T | null;
113
115
  /**
114
116
  * Format the given date as string.
115
117
  * @param date The date to format.
116
118
  * @param options options object with weekdayStyle as property
117
119
  */
118
120
  format(date: T | null | undefined, options?: {
119
- weekdayStyle?: 'long' | 'short' | 'narrow';
121
+ weekdayStyle?: 'long' | 'short' | 'narrow' | 'none';
120
122
  }): string;
121
123
  /**
122
124
  * Checks whether the given `obj` is a Date.
@@ -1 +1 @@
1
- {"version":3,"file":"date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/date-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/date-adapter.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,7 @@ export declare class NativeDateAdapter extends DateAdapter<Date> {
57
57
  /** Creates a Date from a valid input (Date, string or number in seconds). */
58
58
  deserialize(date: SbbDateLike | null | undefined): Date | null;
59
59
  /** Returns the right format for the `valueAsDate` property. */
60
- parse(value: string | null | undefined, now: Date): Date | null;
60
+ parse(value: string | null | undefined, now?: Date): Date | null;
61
61
  invalid(): Date;
62
62
  /**
63
63
  * Creates an array with the given length and fills it by mapping with the provided function.
@@ -1 +1 @@
1
- {"version":3,"file":"native-date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/native-date-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAU7D,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,IAAI,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAExB,gBAAgB,GAAE,MAAW;IAKhD,uCAAuC;IAChC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,wCAAwC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAInC,sCAAsC;IAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,kDAAkD;IAC3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIvC,yCAAyC;IAClC,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM;IAS9D;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAKlE,iGAAiG;IAC1F,YAAY,IAAI,MAAM,EAAE;IAK/B;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAM/D,iBAAiB,IAAI,MAAM;IAIlC,6EAA6E;IACtE,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI5C,4BAA4B;IACrB,KAAK,IAAI,IAAI;IAIpB,+FAA+F;IACxF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBlE,gDAAgD;IACzC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAIxC,uDAAuD;IAChD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,IAAI;IAI3D,mDAAmD;IAC5C,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI9B;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxD;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ1D,yFAAyF;IAClF,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKtD,6EAA6E;IAC7D,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAkB9E,+DAA+D;IACxD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IA4BtD,OAAO,IAAI,IAAI;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAId,gEAAgE;IAChE,OAAO,CAAC,uBAAuB;CAShC;AAED,eAAO,MAAM,kBAAkB,mBAA0B,CAAC"}
1
+ {"version":3,"file":"native-date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/native-date-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAoC,MAAM,mBAAmB,CAAC;AAUlF,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,IAAI,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAExB,gBAAgB,GAAE,MAAW;IAKhD,uCAAuC;IAChC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,wCAAwC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAInC,sCAAsC;IAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,kDAAkD;IAC3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIvC,yCAAyC;IAClC,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM;IAS9D;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAKlE,iGAAiG;IAC1F,YAAY,IAAI,MAAM,EAAE;IAK/B;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAM/D,iBAAiB,IAAI,MAAM;IAIlC,6EAA6E;IACtE,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI5C,4BAA4B;IACrB,KAAK,IAAI,IAAI;IAIpB,+FAA+F;IACxF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBlE,gDAAgD;IACzC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAIxC,uDAAuD;IAChD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,IAAI;IAI3D,mDAAmD;IAC5C,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI9B;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxD;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ1D,yFAAyF;IAClF,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKtD,6EAA6E;IAC7D,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAkB9E,+DAA+D;IACxD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,GAAE,IAAmB,GAAG,IAAI,GAAG,IAAI;IAkCrE,OAAO,IAAI,IAAI;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAId,gEAAgE;IAChE,OAAO,CAAC,uBAAuB;CAShC;AAED,eAAO,MAAM,kBAAkB,mBAA0B,CAAC"}