@sbb-esta/lyne-elements 3.12.0 → 4.0.0-next

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 (758) hide show
  1. package/accordion/accordion.component.d.ts.map +1 -1
  2. package/accordion/accordion.component.js +18 -17
  3. package/action-group/action-group.component.d.ts.map +1 -1
  4. package/action-group/action-group.component.js +52 -51
  5. package/alert/alert/alert.component.d.ts +1 -6
  6. package/alert/alert/alert.component.d.ts.map +1 -1
  7. package/alert/alert/alert.component.js +44 -55
  8. package/alert/alert-group/alert-group.component.d.ts.map +1 -1
  9. package/alert/alert-group/alert-group.component.js +21 -20
  10. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  11. package/autocomplete/autocomplete-base-element.js +59 -58
  12. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
  13. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +26 -25
  14. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -1
  15. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +13 -12
  16. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
  17. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +8 -7
  18. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -1
  19. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +8 -7
  20. package/breadcrumb/breadcrumb/breadcrumb.component.d.ts.map +1 -1
  21. package/breadcrumb/breadcrumb/breadcrumb.component.js +8 -8
  22. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  23. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +13 -12
  24. package/button/accent-button/accent-button.component.d.ts.map +1 -1
  25. package/button/accent-button/accent-button.component.js +12 -7
  26. package/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
  27. package/button/accent-button-link/accent-button-link.component.js +10 -5
  28. package/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
  29. package/button/accent-button-static/accent-button-static.component.js +13 -8
  30. package/button/button/button.component.d.ts.map +1 -1
  31. package/button/button/button.component.js +15 -10
  32. package/button/button-link/button-link.component.d.ts.map +1 -1
  33. package/button/button-link/button-link.component.js +14 -9
  34. package/button/button-static/button-static.component.d.ts.map +1 -1
  35. package/button/button-static/button-static.component.js +14 -9
  36. package/button/common/button-common.d.ts.map +1 -1
  37. package/button/common/button-common.js +12 -12
  38. package/button/common.d.ts.map +1 -1
  39. package/button/common.js +8 -7
  40. package/button/mini-button/mini-button.component.d.ts.map +1 -1
  41. package/button/mini-button/mini-button.component.js +19 -18
  42. package/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
  43. package/button/mini-button-group/mini-button-group.component.js +23 -22
  44. package/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  45. package/button/secondary-button/secondary-button.component.js +12 -7
  46. package/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
  47. package/button/secondary-button-link/secondary-button-link.component.js +13 -8
  48. package/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
  49. package/button/secondary-button-static/secondary-button-static.component.js +14 -9
  50. package/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  51. package/button/transparent-button/transparent-button.component.js +13 -8
  52. package/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
  53. package/button/transparent-button-link/transparent-button-link.component.js +13 -8
  54. package/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
  55. package/button/transparent-button-static/transparent-button-static.component.js +16 -11
  56. package/button.js +11 -10
  57. package/calendar/calendar.component.d.ts.map +1 -1
  58. package/calendar/calendar.component.js +150 -149
  59. package/card/card/card.component.d.ts.map +1 -1
  60. package/card/card/card.component.js +17 -16
  61. package/card/card-badge/card-badge.component.d.ts.map +1 -1
  62. package/card/card-badge/card-badge.component.js +17 -16
  63. package/card/common/card-action-common.d.ts.map +1 -1
  64. package/card/common/card-action-common.js +4 -3
  65. package/carousel/carousel/carousel.component.d.ts.map +1 -1
  66. package/carousel/carousel/carousel.component.js +33 -32
  67. package/carousel/carousel-item/carousel-item.component.js +8 -8
  68. package/carousel/carousel-list/carousel-list.component.js +4 -4
  69. package/checkbox/checkbox/checkbox.component.d.ts +1 -1
  70. package/checkbox/checkbox/checkbox.component.d.ts.map +1 -1
  71. package/checkbox/checkbox/checkbox.component.js +22 -17
  72. package/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
  73. package/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  74. package/checkbox/checkbox-group/checkbox-group.component.js +37 -36
  75. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  76. package/checkbox/checkbox-panel/checkbox-panel.component.js +20 -15
  77. package/checkbox/common.js +1 -1
  78. package/checkbox-common-BGA_q9nc.js +5 -0
  79. package/checkbox.js +1 -1
  80. package/chip/chip/chip.component.d.ts.map +1 -1
  81. package/chip/chip/chip.component.js +20 -19
  82. package/chip/chip-group/chip-group.component.d.ts.map +1 -1
  83. package/chip/chip-group/chip-group.component.js +11 -10
  84. package/chip-label/chip-label.component.d.ts.map +1 -1
  85. package/chip-label/chip-label.component.js +5 -4
  86. package/clock/clock.component.d.ts.map +1 -1
  87. package/clock/clock.component.js +24 -23
  88. package/container/container/container.component.d.ts +3 -1
  89. package/container/container/container.component.d.ts.map +1 -1
  90. package/container/container/container.component.js +27 -25
  91. package/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  92. package/container/sticky-bar/sticky-bar.component.js +25 -24
  93. package/core/controllers/media-matchers-controller.d.ts +2 -2
  94. package/core/controllers/media-matchers-controller.d.ts.map +1 -1
  95. package/core/controllers/media-matchers-controller.js +22 -22
  96. package/core/controllers/slot-state-controller.d.ts +26 -14
  97. package/core/controllers/slot-state-controller.d.ts.map +1 -1
  98. package/core/controllers/slot-state-controller.js +28 -22
  99. package/core/controllers.js +17 -16
  100. package/core/decorators.d.ts +0 -1
  101. package/core/decorators.d.ts.map +1 -1
  102. package/core/decorators.js +5 -7
  103. package/core/dom/breakpoint.d.ts +1 -1
  104. package/core/dom/breakpoint.d.ts.map +1 -1
  105. package/core/dom/breakpoint.js +4 -4
  106. package/core/i18n/i18n.js +6 -6
  107. package/core/interfaces/types.d.ts +1 -1
  108. package/core/interfaces/types.d.ts.map +1 -1
  109. package/core/mixins/element-internals-mixin.d.ts.map +1 -1
  110. package/core/mixins/element-internals-mixin.js +9 -8
  111. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  112. package/core/mixins/form-associated-input-mixin.js +55 -38
  113. package/core/mixins.js +5 -5
  114. package/core/styles/_index.scss +0 -1
  115. package/core/styles/box-sizing.scss +3 -0
  116. package/core/styles/core/mediaqueries.scss +6 -12
  117. package/core/styles/core.scss +85 -74
  118. package/core/styles/mixins/buttons.scss +0 -171
  119. package/core/styles/mixins/card.scss +1 -2
  120. package/core/styles/mixins/lists.scss +1 -1
  121. package/core/styles/mixins/panel.scss +1 -1
  122. package/core/styles/{node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss → node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables-as-css.scss} +194 -460
  123. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +10 -217
  124. package/core/styles.d.ts +4 -0
  125. package/core/styles.d.ts.map +1 -0
  126. package/core/styles.js +5 -0
  127. package/core.css +163 -475
  128. package/custom-elements.json +2978 -2171
  129. package/date-input/date-input.component.js +1 -1
  130. package/datepicker/datepicker/datepicker.component.d.ts +1 -1
  131. package/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  132. package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +1 -1
  133. package/datepicker/datepicker-next-day/datepicker-next-day.component.js +24 -22
  134. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +1 -1
  135. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +25 -23
  136. package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +1 -1
  137. package/datepicker/datepicker-toggle/datepicker-toggle.component.js +29 -27
  138. package/development/accordion/accordion.component.d.ts.map +1 -1
  139. package/development/accordion/accordion.component.js +4 -9
  140. package/development/action-group/action-group.component.d.ts.map +1 -1
  141. package/development/action-group/action-group.component.js +5 -88
  142. package/development/alert/alert/alert.component.d.ts +1 -6
  143. package/development/alert/alert/alert.component.d.ts.map +1 -1
  144. package/development/alert/alert/alert.component.js +12 -35
  145. package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
  146. package/development/alert/alert-group/alert-group.component.js +4 -9
  147. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  148. package/development/autocomplete/autocomplete-base-element.js +8 -13
  149. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
  150. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +7 -120
  151. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -1
  152. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +4 -9
  153. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
  154. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +5 -10
  155. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -1
  156. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +6 -11
  157. package/development/breadcrumb/breadcrumb/breadcrumb.component.d.ts.map +1 -1
  158. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +7 -13
  159. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  160. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +5 -10
  161. package/development/button/accent-button/accent-button.component.d.ts.map +1 -1
  162. package/development/button/accent-button/accent-button.component.js +7 -2
  163. package/development/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
  164. package/development/button/accent-button-link/accent-button-link.component.js +7 -2
  165. package/development/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
  166. package/development/button/accent-button-static/accent-button-static.component.js +7 -2
  167. package/development/button/button/button.component.d.ts.map +1 -1
  168. package/development/button/button/button.component.js +7 -2
  169. package/development/button/button-link/button-link.component.d.ts.map +1 -1
  170. package/development/button/button-link/button-link.component.js +7 -2
  171. package/development/button/button-static/button-static.component.d.ts.map +1 -1
  172. package/development/button/button-static/button-static.component.js +7 -2
  173. package/development/button/common/button-common.d.ts.map +1 -1
  174. package/development/button/common/button-common.js +3 -3
  175. package/development/button/common.d.ts.map +1 -1
  176. package/development/button/common.js +3 -2
  177. package/development/button/mini-button/mini-button.component.d.ts.map +1 -1
  178. package/development/button/mini-button/mini-button.component.js +11 -126
  179. package/development/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
  180. package/development/button/mini-button-group/mini-button-group.component.js +4 -9
  181. package/development/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  182. package/development/button/secondary-button/secondary-button.component.js +7 -2
  183. package/development/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
  184. package/development/button/secondary-button-link/secondary-button-link.component.js +7 -2
  185. package/development/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
  186. package/development/button/secondary-button-static/secondary-button-static.component.js +7 -2
  187. package/development/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  188. package/development/button/transparent-button/transparent-button.component.js +7 -2
  189. package/development/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
  190. package/development/button/transparent-button-link/transparent-button-link.component.js +7 -2
  191. package/development/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
  192. package/development/button/transparent-button-static/transparent-button-static.component.js +7 -2
  193. package/development/button.js +3 -2
  194. package/development/calendar/calendar.component.d.ts.map +1 -1
  195. package/development/calendar/calendar.component.js +10 -15
  196. package/development/card/card/card.component.d.ts.map +1 -1
  197. package/development/card/card/card.component.js +5 -10
  198. package/development/card/card-badge/card-badge.component.d.ts.map +1 -1
  199. package/development/card/card-badge/card-badge.component.js +4 -9
  200. package/development/card/common/card-action-common.d.ts.map +1 -1
  201. package/development/card/common/card-action-common.js +5 -10
  202. package/development/carousel/carousel/carousel.component.d.ts.map +1 -1
  203. package/development/carousel/carousel/carousel.component.js +5 -10
  204. package/development/carousel/carousel-item/carousel-item.component.js +2 -8
  205. package/development/carousel/carousel-list/carousel-list.component.js +2 -8
  206. package/development/checkbox/checkbox/checkbox.component.d.ts +1 -1
  207. package/development/checkbox/checkbox/checkbox.component.d.ts.map +1 -1
  208. package/development/checkbox/checkbox/checkbox.component.js +13 -8
  209. package/development/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
  210. package/development/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  211. package/development/checkbox/checkbox-group/checkbox-group.component.js +9 -50
  212. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  213. package/development/checkbox/checkbox-panel/checkbox-panel.component.js +9 -4
  214. package/development/checkbox/common.js +1 -1
  215. package/development/{checkbox-common-Dy_ofVhp.js → checkbox-common-BZFJgZd7.js} +3 -9
  216. package/development/checkbox.js +1 -1
  217. package/development/chip/chip/chip.component.d.ts.map +1 -1
  218. package/development/chip/chip/chip.component.js +9 -14
  219. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  220. package/development/chip/chip-group/chip-group.component.js +5 -10
  221. package/development/chip-label/chip-label.component.d.ts.map +1 -1
  222. package/development/chip-label/chip-label.component.js +4 -9
  223. package/development/clock/clock.component.d.ts.map +1 -1
  224. package/development/clock/clock.component.js +4 -9
  225. package/development/container/container/container.component.d.ts +3 -1
  226. package/development/container/container/container.component.d.ts.map +1 -1
  227. package/development/container/container/container.component.js +11 -15
  228. package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  229. package/development/container/sticky-bar/sticky-bar.component.js +5 -10
  230. package/development/core/controllers/media-matchers-controller.d.ts +2 -2
  231. package/development/core/controllers/media-matchers-controller.d.ts.map +1 -1
  232. package/development/core/controllers/media-matchers-controller.js +6 -6
  233. package/development/core/controllers/slot-state-controller.d.ts +26 -14
  234. package/development/core/controllers/slot-state-controller.d.ts.map +1 -1
  235. package/development/core/controllers/slot-state-controller.js +48 -41
  236. package/development/core/controllers.js +6 -5
  237. package/development/core/decorators.d.ts +0 -1
  238. package/development/core/decorators.d.ts.map +1 -1
  239. package/development/core/decorators.js +2 -4
  240. package/development/core/dom/breakpoint.d.ts +1 -1
  241. package/development/core/dom/breakpoint.d.ts.map +1 -1
  242. package/development/core/dom/breakpoint.js +2 -2
  243. package/development/core/i18n/i18n.js +7 -7
  244. package/development/core/interfaces/types.d.ts +1 -1
  245. package/development/core/interfaces/types.d.ts.map +1 -1
  246. package/development/core/mixins/element-internals-mixin.d.ts.map +1 -1
  247. package/development/core/mixins/element-internals-mixin.js +3 -1
  248. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  249. package/development/core/mixins/form-associated-input-mixin.js +47 -12
  250. package/development/core/mixins.js +3 -3
  251. package/development/core/styles.d.ts +4 -0
  252. package/development/core/styles.d.ts.map +1 -0
  253. package/development/core/styles.js +10 -0
  254. package/development/date-input/date-input.component.js +1 -1
  255. package/development/datepicker/datepicker/datepicker.component.d.ts +1 -1
  256. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  257. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  258. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +1 -1
  259. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +5 -113
  260. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +1 -1
  261. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +5 -113
  262. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +1 -1
  263. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +5 -113
  264. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  265. package/development/dialog/dialog/dialog.component.js +9 -19
  266. package/development/dialog/dialog-actions/dialog-actions.component.js +2 -8
  267. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts +1 -0
  268. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -1
  269. package/development/dialog/dialog-close-button/dialog-close-button.component.js +5 -9
  270. package/development/dialog/dialog-content/dialog-content.component.js +2 -8
  271. package/development/divider/divider.component.d.ts.map +1 -1
  272. package/development/divider/divider.component.js +4 -9
  273. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  274. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +5 -10
  275. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  276. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +6 -11
  277. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +2 -3
  278. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  279. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +13 -18
  280. package/development/file-selector/common.js +1 -1
  281. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  282. package/development/file-selector/file-selector/file-selector.component.js +4 -4
  283. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  284. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +6 -11
  285. package/development/{file-selector-common-CRNAWFM_.js → file-selector-common-CsFa5XJ-.js} +3 -9
  286. package/development/file-selector.js +1 -1
  287. package/development/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
  288. package/development/flip-card/flip-card/flip-card.component.js +9 -14
  289. package/development/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
  290. package/development/flip-card/flip-card-details/flip-card-details.component.js +4 -9
  291. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  292. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +7 -12
  293. package/development/footer/footer.component.d.ts.map +1 -1
  294. package/development/footer/footer.component.js +8 -13
  295. package/development/form-error/form-error.component.d.ts.map +1 -1
  296. package/development/form-error/form-error.component.js +4 -9
  297. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  298. package/development/form-field/form-field/form-field.component.js +11 -16
  299. package/development/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
  300. package/development/form-field/form-field-clear/form-field-clear.component.js +6 -118
  301. package/development/header/common/header-action-common.d.ts.map +1 -1
  302. package/development/header/common/header-action-common.js +24 -109
  303. package/development/header/header/header.component.d.ts +1 -1
  304. package/development/header/header/header.component.d.ts.map +1 -1
  305. package/development/header/header/header.component.js +6 -11
  306. package/development/header/header-environment/header-environment.component.d.ts.map +1 -1
  307. package/development/header/header-environment/header-environment.component.js +4 -9
  308. package/development/icon/icon-base.d.ts.map +1 -1
  309. package/development/icon/icon-base.js +4 -9
  310. package/development/icon/icon-name-mixin.d.ts +3 -2
  311. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  312. package/development/icon/icon-name-mixin.js +12 -3
  313. package/development/{icon-sidebar-button-common-BGrKtvyM.js → icon-sidebar-button-common-C6QChtaa.js} +5 -23
  314. package/development/image/image.component.d.ts +1 -1
  315. package/development/image/image.component.d.ts.map +1 -1
  316. package/development/image/image.component.js +7 -18
  317. package/development/journey-header/journey-header.component.d.ts.map +1 -1
  318. package/development/journey-header/journey-header.component.js +4 -9
  319. package/development/lead-container/lead-container.component.d.ts.map +1 -1
  320. package/development/lead-container/lead-container.component.js +6 -24
  321. package/development/link/common/block-link-common.d.ts.map +1 -1
  322. package/development/link/common/block-link-common.js +5 -4
  323. package/development/link/common/inline-link-common.d.ts.map +1 -1
  324. package/development/link/common/inline-link-common.js +4 -3
  325. package/development/link/common/link-common.d.ts.map +1 -1
  326. package/development/link/common/link-common.js +1 -1
  327. package/development/link/common.js +1 -1
  328. package/development/{link-common-BDFF9Oiz.js → link-common-DYZHRSSJ.js} +6 -12
  329. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  330. package/development/link-list/common/link-list-base.js +7 -15
  331. package/development/link-list/common.js +1 -1
  332. package/development/link-list/link-list/link-list.component.d.ts.map +1 -1
  333. package/development/link-list/link-list/link-list.component.js +3 -50
  334. package/development/link-list/link-list-anchor/link-list-anchor.component.d.ts.map +1 -1
  335. package/development/link-list/link-list-anchor/link-list-anchor.component.js +3 -2
  336. package/development/{link-list-base-DC9sc7q5.js → link-list-base-CJJ3qdD7.js} +3 -9
  337. package/development/link-list.js +1 -1
  338. package/development/link.js +1 -1
  339. package/development/loading-indicator/loading-indicator.component.d.ts.map +1 -1
  340. package/development/loading-indicator/loading-indicator.component.js +3 -8
  341. package/development/loading-indicator-circle/loading-indicator-circle.component.d.ts.map +1 -1
  342. package/development/loading-indicator-circle/loading-indicator-circle.component.js +4 -9
  343. package/development/logo/logo.component.d.ts.map +1 -1
  344. package/development/logo/logo.component.js +4 -9
  345. package/development/map-container/map-container.component.d.ts +1 -1
  346. package/development/map-container/map-container.component.d.ts.map +1 -1
  347. package/development/map-container/map-container.component.js +10 -15
  348. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  349. package/development/menu/common/menu-action-common.js +16 -35
  350. package/development/menu/menu/menu.component.d.ts +1 -12
  351. package/development/menu/menu/menu.component.d.ts.map +1 -1
  352. package/development/menu/menu/menu.component.js +17 -65
  353. package/development/message/message.component.d.ts.map +1 -1
  354. package/development/message/message.component.js +4 -9
  355. package/development/{transparent-button-DdSaBp_-.js → mini-button-common-Di32bSJj.js} +114 -17
  356. package/development/mini-calendar/mini-calendar/mini-calendar.component.js +2 -8
  357. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +2 -8
  358. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts.map +1 -1
  359. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +4 -9
  360. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  361. package/development/navigation/common/navigation-action-common.js +5 -10
  362. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  363. package/development/navigation/navigation/navigation.component.js +5 -15
  364. package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
  365. package/development/navigation/navigation-list/navigation-list.component.js +9 -14
  366. package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  367. package/development/navigation/navigation-marker/navigation-marker.component.js +4 -9
  368. package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  369. package/development/navigation/navigation-section/navigation-section.component.js +10 -20
  370. package/development/notification/notification.component.d.ts +4 -2
  371. package/development/notification/notification.component.d.ts.map +1 -1
  372. package/development/notification/notification.component.js +22 -18
  373. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  374. package/development/option/optgroup/optgroup-base-element.js +5 -9
  375. package/development/option/option/option-base-element.d.ts.map +1 -1
  376. package/development/option/option/option-base-element.js +6 -14
  377. package/development/option/option/option.component.d.ts.map +1 -1
  378. package/development/option/option/option.component.js +7 -12
  379. package/development/option/option-hint/option-hint.component.d.ts.map +1 -1
  380. package/development/option/option-hint/option-hint.component.js +4 -9
  381. package/development/overlay/overlay.component.d.ts.map +1 -1
  382. package/development/overlay/overlay.component.js +5 -10
  383. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  384. package/development/paginator/compact-paginator/compact-paginator.component.js +4 -9
  385. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  386. package/development/paginator/paginator/paginator.component.js +6 -11
  387. package/development/popover/popover/popover.component.d.ts +2 -0
  388. package/development/popover/popover/popover.component.d.ts.map +1 -1
  389. package/development/popover/popover/popover.component.js +20 -11
  390. package/development/popover.d.ts +0 -1
  391. package/development/popover.d.ts.map +1 -1
  392. package/development/popover.js +2 -4
  393. package/development/radio-button/common.js +1 -1
  394. package/development/radio-button/radio-button/radio-button.component.d.ts.map +1 -1
  395. package/development/radio-button/radio-button/radio-button.component.js +10 -11
  396. package/development/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
  397. package/development/radio-button/radio-button-group/radio-button-group.component.js +7 -45
  398. package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  399. package/development/radio-button/radio-button-panel/radio-button-panel.component.js +9 -4
  400. package/development/{radio-button-common-CgM3kQSW.js → radio-button-common-5uawgCpB.js} +4 -10
  401. package/development/radio-button.js +1 -1
  402. package/development/sbb-tokens-DXgmy_b-.js +21 -0
  403. package/development/select/select.component.d.ts +12 -8
  404. package/development/select/select.component.d.ts.map +1 -1
  405. package/development/select/select.component.js +105 -98
  406. package/development/selection-action-panel/selection-action-panel.component.d.ts.map +1 -1
  407. package/development/selection-action-panel/selection-action-panel.component.js +4 -9
  408. package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  409. package/development/selection-expansion-panel/selection-expansion-panel.component.js +9 -14
  410. package/development/sidebar/common.js +1 -1
  411. package/development/sidebar/icon-sidebar/icon-sidebar.component.js +2 -8
  412. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +1 -1
  413. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.js +3 -2
  414. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +1 -1
  415. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.js +3 -2
  416. package/development/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
  417. package/development/sidebar/sidebar/sidebar.component.js +5 -10
  418. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +1 -0
  419. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
  420. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +5 -9
  421. package/development/sidebar/sidebar-container/sidebar-container.component.d.ts.map +1 -1
  422. package/development/sidebar/sidebar-container/sidebar-container.component.js +7 -2
  423. package/development/sidebar.js +1 -1
  424. package/development/signet/signet.component.d.ts.map +1 -1
  425. package/development/signet/signet.component.js +4 -9
  426. package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  427. package/development/skiplink-list/skiplink-list.component.js +5 -10
  428. package/development/slider/slider.component.d.ts.map +1 -1
  429. package/development/slider/slider.component.js +4 -9
  430. package/development/status/status.component.d.ts +2 -2
  431. package/development/status/status.component.d.ts.map +1 -1
  432. package/development/status/status.component.js +8 -16
  433. package/development/stepper/step/step.component.d.ts.map +1 -1
  434. package/development/stepper/step/step.component.js +4 -9
  435. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  436. package/development/stepper/step-label/step-label.component.js +5 -10
  437. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  438. package/development/stepper/stepper/stepper.component.js +4 -9
  439. package/development/table/table-wrapper/table-wrapper.component.js +2 -8
  440. package/development/tabs/tab/tab.component.js +1 -7
  441. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  442. package/development/tabs/tab-group/tab-group.component.js +4 -9
  443. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  444. package/development/tabs/tab-label/tab-label.component.js +10 -15
  445. package/development/tag/tag/tag.component.d.ts.map +1 -1
  446. package/development/tag/tag/tag.component.js +9 -14
  447. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  448. package/development/tag/tag-group/tag-group.component.js +4 -9
  449. package/development/teaser/teaser.component.d.ts.map +1 -1
  450. package/development/teaser/teaser.component.js +5 -10
  451. package/development/teaser-hero/teaser-hero.component.d.ts.map +1 -1
  452. package/development/teaser-hero/teaser-hero.component.js +8 -13
  453. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  454. package/development/teaser-product/common/teaser-product-common.js +4 -13
  455. package/development/teaser-product/common.js +1 -1
  456. package/development/teaser-product/teaser-product/teaser-product.component.d.ts.map +1 -1
  457. package/development/teaser-product/teaser-product/teaser-product.component.js +7 -2
  458. package/development/teaser-product/teaser-product-static/teaser-product-static.component.d.ts.map +1 -1
  459. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +3 -2
  460. package/development/{teaser-product-common-DvlBRkE_.js → teaser-product-common-B1KK4iNu.js} +3 -9
  461. package/development/teaser-product.js +1 -1
  462. package/development/time-input/time-input.component.js +3 -9
  463. package/development/timetable-form/timetable-form/timetable-form.component.js +2 -8
  464. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +2 -8
  465. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +2 -8
  466. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +1 -0
  467. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -1
  468. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +5 -9
  469. package/development/timetable-occupancy/timetable-occupancy.component.d.ts.map +1 -1
  470. package/development/timetable-occupancy/timetable-occupancy.component.js +5 -10
  471. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  472. package/development/title/title-base.js +2 -8
  473. package/development/toast/toast.component.d.ts.map +1 -1
  474. package/development/toast/toast.component.js +4 -9
  475. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  476. package/development/toggle/toggle/toggle.component.js +4 -9
  477. package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  478. package/development/toggle/toggle-option/toggle-option.component.js +7 -12
  479. package/development/toggle-check/toggle-check.component.d.ts +2 -3
  480. package/development/toggle-check/toggle-check.component.d.ts.map +1 -1
  481. package/development/toggle-check/toggle-check.component.js +15 -33
  482. package/development/tooltip/tooltip.component.d.ts.map +1 -1
  483. package/development/tooltip/tooltip.component.js +5 -10
  484. package/development/train/train/train.component.d.ts.map +1 -1
  485. package/development/train/train/train.component.js +4 -9
  486. package/development/train/train-blocked-passage/train-blocked-passage.component.d.ts.map +1 -1
  487. package/development/train/train-blocked-passage/train-blocked-passage.component.js +4 -9
  488. package/development/train/train-formation/train-formation.component.d.ts.map +1 -1
  489. package/development/train/train-formation/train-formation.component.js +4 -9
  490. package/development/train/train-wagon/train-wagon.component.d.ts.map +1 -1
  491. package/development/train/train-wagon/train-wagon.component.js +4 -9
  492. package/development/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  493. package/development/visual-checkbox/visual-checkbox.component.js +6 -11
  494. package/dialog/dialog/dialog.component.d.ts.map +1 -1
  495. package/dialog/dialog/dialog.component.js +39 -38
  496. package/dialog/dialog-actions/dialog-actions.component.js +9 -9
  497. package/dialog/dialog-close-button/dialog-close-button.component.d.ts +1 -0
  498. package/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -1
  499. package/dialog/dialog-close-button/dialog-close-button.component.js +14 -11
  500. package/dialog/dialog-content/dialog-content.component.js +9 -9
  501. package/divider/divider.component.d.ts.map +1 -1
  502. package/divider/divider.component.js +16 -15
  503. package/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  504. package/expansion-panel/expansion-panel/expansion-panel.component.js +18 -17
  505. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  506. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +12 -11
  507. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +2 -3
  508. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  509. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +18 -17
  510. package/file-selector/common.js +1 -1
  511. package/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  512. package/file-selector/file-selector/file-selector.component.js +12 -12
  513. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  514. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +15 -14
  515. package/file-selector-common-CUp299VH.js +5 -0
  516. package/file-selector.js +1 -1
  517. package/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
  518. package/flip-card/flip-card/flip-card.component.js +15 -14
  519. package/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
  520. package/flip-card/flip-card-details/flip-card-details.component.js +13 -12
  521. package/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  522. package/flip-card/flip-card-summary/flip-card-summary.component.js +5 -4
  523. package/footer/footer.component.d.ts.map +1 -1
  524. package/footer/footer.component.js +5 -4
  525. package/form-error/form-error.component.d.ts.map +1 -1
  526. package/form-error/form-error.component.js +10 -9
  527. package/form-field/form-field/form-field.component.d.ts.map +1 -1
  528. package/form-field/form-field/form-field.component.js +17 -16
  529. package/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
  530. package/form-field/form-field-clear/form-field-clear.component.js +18 -17
  531. package/header/common/header-action-common.d.ts.map +1 -1
  532. package/header/common/header-action-common.js +27 -27
  533. package/header/header/header.component.d.ts +1 -1
  534. package/header/header/header.component.d.ts.map +1 -1
  535. package/header/header/header.component.js +39 -38
  536. package/header/header-environment/header-environment.component.d.ts.map +1 -1
  537. package/header/header-environment/header-environment.component.js +5 -4
  538. package/icon/icon-base.d.ts.map +1 -1
  539. package/icon/icon-base.js +22 -21
  540. package/icon/icon-name-mixin.d.ts +3 -2
  541. package/icon/icon-name-mixin.d.ts.map +1 -1
  542. package/icon/icon-name-mixin.js +30 -22
  543. package/icon-sidebar-button-common-W6GYJbVt.js +7 -0
  544. package/image/image.component.d.ts +1 -1
  545. package/image/image.component.d.ts.map +1 -1
  546. package/image/image.component.js +72 -77
  547. package/index.d.ts +0 -3
  548. package/index.js +0 -3
  549. package/journey-header/journey-header.component.d.ts.map +1 -1
  550. package/journey-header/journey-header.component.js +19 -18
  551. package/lead-container/lead-container.component.d.ts.map +1 -1
  552. package/lead-container/lead-container.component.js +8 -7
  553. package/link/common/block-link-common.d.ts.map +1 -1
  554. package/link/common/block-link-common.js +14 -13
  555. package/link/common/inline-link-common.d.ts.map +1 -1
  556. package/link/common/inline-link-common.js +7 -6
  557. package/link/common/link-common.d.ts.map +1 -1
  558. package/link/common/link-common.js +1 -1
  559. package/link/common.js +1 -1
  560. package/link-common-CdQBSga7.js +46 -0
  561. package/link-list/common/link-list-base.d.ts.map +1 -1
  562. package/link-list/common/link-list-base.js +34 -34
  563. package/link-list/common.js +1 -1
  564. package/link-list/link-list/link-list.component.d.ts.map +1 -1
  565. package/link-list/link-list/link-list.component.js +23 -22
  566. package/link-list/link-list-anchor/link-list-anchor.component.d.ts.map +1 -1
  567. package/link-list/link-list-anchor/link-list-anchor.component.js +11 -10
  568. package/link-list-base-3v7CHEei.js +5 -0
  569. package/link-list.js +1 -1
  570. package/link.js +1 -1
  571. package/lists.css +1 -1
  572. package/loading-indicator/loading-indicator.component.d.ts.map +1 -1
  573. package/loading-indicator/loading-indicator.component.js +9 -8
  574. package/loading-indicator-circle/loading-indicator-circle.component.d.ts.map +1 -1
  575. package/loading-indicator-circle/loading-indicator-circle.component.js +8 -7
  576. package/logo/logo.component.d.ts.map +1 -1
  577. package/logo/logo.component.js +10 -9
  578. package/map-container/map-container.component.d.ts +1 -1
  579. package/map-container/map-container.component.d.ts.map +1 -1
  580. package/map-container/map-container.component.js +21 -20
  581. package/menu/common/menu-action-common.d.ts.map +1 -1
  582. package/menu/common/menu-action-common.js +14 -17
  583. package/menu/menu/menu.component.d.ts +1 -12
  584. package/menu/menu/menu.component.d.ts.map +1 -1
  585. package/menu/menu/menu.component.js +62 -82
  586. package/message/message.component.d.ts.map +1 -1
  587. package/message/message.component.js +5 -4
  588. package/mini-button-common-DBnJfrBZ.js +10 -0
  589. package/mini-calendar/mini-calendar/mini-calendar.component.js +7 -7
  590. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +10 -10
  591. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts.map +1 -1
  592. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +13 -12
  593. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  594. package/navigation/common/navigation-action-common.js +4 -3
  595. package/navigation/navigation/navigation.component.d.ts.map +1 -1
  596. package/navigation/navigation/navigation.component.js +10 -9
  597. package/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
  598. package/navigation/navigation-list/navigation-list.component.js +17 -16
  599. package/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  600. package/navigation/navigation-marker/navigation-marker.component.js +11 -10
  601. package/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  602. package/navigation/navigation-section/navigation-section.component.js +7 -6
  603. package/notification/notification.component.d.ts +4 -2
  604. package/notification/notification.component.d.ts.map +1 -1
  605. package/notification/notification.component.js +37 -35
  606. package/off-brand-theme.css +164 -476
  607. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  608. package/option/optgroup/optgroup-base-element.js +24 -23
  609. package/option/option/option-base-element.d.ts.map +1 -1
  610. package/option/option/option-base-element.js +59 -60
  611. package/option/option/option.component.d.ts.map +1 -1
  612. package/option/option/option.component.js +7 -6
  613. package/option/option-hint/option-hint.component.d.ts.map +1 -1
  614. package/option/option-hint/option-hint.component.js +5 -4
  615. package/overlay/overlay.component.d.ts.map +1 -1
  616. package/overlay/overlay.component.js +10 -9
  617. package/package.json +6 -6
  618. package/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  619. package/paginator/compact-paginator/compact-paginator.component.js +9 -8
  620. package/paginator/paginator/paginator.component.d.ts.map +1 -1
  621. package/paginator/paginator/paginator.component.js +14 -13
  622. package/popover/popover/popover.component.d.ts +2 -0
  623. package/popover/popover/popover.component.d.ts.map +1 -1
  624. package/popover/popover/popover.component.js +79 -68
  625. package/popover.d.ts +0 -1
  626. package/popover.d.ts.map +1 -1
  627. package/popover.js +3 -5
  628. package/radio-button/common.js +1 -1
  629. package/radio-button/radio-button/radio-button.component.d.ts.map +1 -1
  630. package/radio-button/radio-button/radio-button.component.js +28 -23
  631. package/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
  632. package/radio-button/radio-button-group/radio-button-group.component.js +47 -46
  633. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  634. package/radio-button/radio-button-panel/radio-button-panel.component.js +19 -14
  635. package/radio-button-common-BT3VkZLM.js +5 -0
  636. package/radio-button.js +1 -1
  637. package/safety-theme.css +164 -476
  638. package/sbb-tokens-CB1Hgctn.js +12 -0
  639. package/select/select.component.d.ts +12 -8
  640. package/select/select.component.d.ts.map +1 -1
  641. package/select/select.component.js +136 -127
  642. package/selection-action-panel/selection-action-panel.component.d.ts.map +1 -1
  643. package/selection-action-panel/selection-action-panel.component.js +5 -4
  644. package/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  645. package/selection-expansion-panel/selection-expansion-panel.component.js +24 -23
  646. package/sidebar/common.js +1 -1
  647. package/sidebar/icon-sidebar/icon-sidebar.component.js +4 -4
  648. package/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +1 -1
  649. package/sidebar/icon-sidebar-button/icon-sidebar-button.component.js +11 -10
  650. package/sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +1 -1
  651. package/sidebar/icon-sidebar-link/icon-sidebar-link.component.js +11 -10
  652. package/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
  653. package/sidebar/sidebar/sidebar.component.js +20 -19
  654. package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +1 -0
  655. package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
  656. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +14 -11
  657. package/sidebar/sidebar-container/sidebar-container.component.d.ts.map +1 -1
  658. package/sidebar/sidebar-container/sidebar-container.component.js +16 -11
  659. package/sidebar.js +1 -1
  660. package/signet/signet.component.d.ts.map +1 -1
  661. package/signet/signet.component.js +11 -10
  662. package/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  663. package/skiplink-list/skiplink-list.component.js +36 -35
  664. package/slider/slider.component.d.ts.map +1 -1
  665. package/slider/slider.component.js +25 -24
  666. package/standard-theme.css +164 -476
  667. package/status/status.component.d.ts +2 -2
  668. package/status/status.component.d.ts.map +1 -1
  669. package/status/status.component.js +22 -24
  670. package/stepper/step/step.component.d.ts.map +1 -1
  671. package/stepper/step/step.component.js +10 -9
  672. package/stepper/step-label/step-label.component.d.ts.map +1 -1
  673. package/stepper/step-label/step-label.component.js +8 -7
  674. package/stepper/stepper/stepper.component.d.ts.map +1 -1
  675. package/stepper/stepper/stepper.component.js +11 -10
  676. package/table/table-wrapper/table-wrapper.component.js +5 -5
  677. package/tabs/tab/tab.component.js +1 -1
  678. package/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  679. package/tabs/tab-group/tab-group.component.js +8 -7
  680. package/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  681. package/tabs/tab-label/tab-label.component.js +13 -12
  682. package/tag/tag/tag.component.d.ts.map +1 -1
  683. package/tag/tag/tag.component.js +14 -13
  684. package/tag/tag-group/tag-group.component.d.ts.map +1 -1
  685. package/tag/tag-group/tag-group.component.js +27 -26
  686. package/teaser/teaser.component.d.ts.map +1 -1
  687. package/teaser/teaser.component.js +19 -18
  688. package/teaser-hero/teaser-hero.component.d.ts.map +1 -1
  689. package/teaser-hero/teaser-hero.component.js +12 -11
  690. package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  691. package/teaser-product/common/teaser-product-common.js +24 -25
  692. package/teaser-product/common.js +1 -1
  693. package/teaser-product/teaser-product/teaser-product.component.d.ts.map +1 -1
  694. package/teaser-product/teaser-product/teaser-product.component.js +12 -7
  695. package/teaser-product/teaser-product-static/teaser-product-static.component.d.ts.map +1 -1
  696. package/teaser-product/teaser-product-static/teaser-product-static.component.js +6 -5
  697. package/teaser-product-common-BwqWqRrK.js +5 -0
  698. package/teaser-product.js +1 -1
  699. package/time-input/time-input.component.js +5 -5
  700. package/timetable-form/timetable-form/timetable-form.component.js +6 -6
  701. package/timetable-form/timetable-form-details/timetable-form-details.component.js +4 -4
  702. package/timetable-form/timetable-form-field/timetable-form-field.component.js +7 -7
  703. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +1 -0
  704. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -1
  705. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +12 -9
  706. package/timetable-occupancy/timetable-occupancy.component.d.ts.map +1 -1
  707. package/timetable-occupancy/timetable-occupancy.component.js +5 -4
  708. package/title/title-base.js +5 -5
  709. package/toast/toast.component.d.ts.map +1 -1
  710. package/toast/toast.component.js +10 -9
  711. package/toggle/toggle/toggle.component.d.ts.map +1 -1
  712. package/toggle/toggle/toggle.component.js +9 -8
  713. package/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  714. package/toggle/toggle-option/toggle-option.component.js +24 -23
  715. package/toggle-check/toggle-check.component.d.ts +2 -3
  716. package/toggle-check/toggle-check.component.d.ts.map +1 -1
  717. package/toggle-check/toggle-check.component.js +46 -53
  718. package/tooltip/tooltip.component.d.ts.map +1 -1
  719. package/tooltip/tooltip.component.js +40 -39
  720. package/train/train/train.component.d.ts.map +1 -1
  721. package/train/train/train.component.js +22 -21
  722. package/train/train-blocked-passage/train-blocked-passage.component.d.ts.map +1 -1
  723. package/train/train-blocked-passage/train-blocked-passage.component.js +9 -8
  724. package/train/train-formation/train-formation.component.d.ts.map +1 -1
  725. package/train/train-formation/train-formation.component.js +10 -9
  726. package/train/train-wagon/train-wagon.component.d.ts.map +1 -1
  727. package/train/train-wagon/train-wagon.component.js +10 -9
  728. package/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  729. package/visual-checkbox/visual-checkbox.component.js +14 -13
  730. package/checkbox-common-gjHkSAmN.js +0 -5
  731. package/core/decorators/slot-state.d.ts +0 -17
  732. package/core/decorators/slot-state.d.ts.map +0 -1
  733. package/core/decorators/slot-state.js +0 -8
  734. package/core/styles/mixins/shadows.scss +0 -191
  735. package/development/core/decorators/slot-state.d.ts +0 -17
  736. package/development/core/decorators/slot-state.d.ts.map +0 -1
  737. package/development/core/decorators/slot-state.js +0 -11
  738. package/development/popover/popover-trigger/popover-trigger.component.d.ts +0 -20
  739. package/development/popover/popover-trigger/popover-trigger.component.d.ts.map +0 -1
  740. package/development/popover/popover-trigger/popover-trigger.component.js +0 -216
  741. package/development/popover/popover-trigger.d.ts +0 -5
  742. package/development/popover/popover-trigger.d.ts.map +0 -1
  743. package/development/popover/popover-trigger.js +0 -5
  744. package/development/sbb-tokens-CVLcOi-S.js +0 -33
  745. package/file-selector-common-BEWjyy75.js +0 -5
  746. package/icon-sidebar-button-common-XcKoF2SP.js +0 -7
  747. package/link-common-nA3q92jp.js +0 -46
  748. package/link-list-base-BdOBGhxe.js +0 -5
  749. package/popover/popover-trigger/popover-trigger.component.d.ts +0 -20
  750. package/popover/popover-trigger/popover-trigger.component.d.ts.map +0 -1
  751. package/popover/popover-trigger/popover-trigger.component.js +0 -32
  752. package/popover/popover-trigger.d.ts +0 -5
  753. package/popover/popover-trigger.d.ts.map +0 -1
  754. package/popover/popover-trigger.js +0 -4
  755. package/radio-button-common-Bw2t3Sxz.js +0 -5
  756. package/sbb-tokens-B3Eka-Tz.js +0 -18
  757. package/teaser-product-common-Du28QCY3.js +0 -5
  758. package/transparent-button-DJIkG5hj.js +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"element-internals-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/element-internals-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAA2B,MAAM,KAAK,CAAC;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA8C5D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,SAAS;QACjB,2BAA2B,EAAE,OAAO,GAAG,IAAI,CAAC;QAC5C,oBAAoB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAChD,uBAAuB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACnD,mBAAmB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/C,wBAAwB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACpD,sBAAsB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAClD,gBAAgB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;KAC7C;CACF;AAyKD,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,4BAA4B;IACxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC/C,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;CAC5D;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACjC,OAAO,EAAE,GAAG,IAGd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACvC,OAAO,EAAE,GAAG,IAId,CAAC;AAEF;;;GAGG;AAEH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EAChF,YAAY,CAAC,KACZ,mBAAmB,CAAC,4BAA4B,CAAC,GAAG,CAAC,GAAG,8BA2C1D,CAAC"}
1
+ {"version":3,"file":"element-internals-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/element-internals-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAA2B,MAAM,KAAK,CAAC;AAIzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA8C5D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,SAAS;QACjB,2BAA2B,EAAE,OAAO,GAAG,IAAI,CAAC;QAC5C,oBAAoB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAChD,uBAAuB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACnD,mBAAmB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/C,wBAAwB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACpD,sBAAsB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAClD,gBAAgB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;KAC7C;CACF;AAyKD,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,4BAA4B;IACxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC/C,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;CAC5D;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACjC,OAAO,EAAE,GAAG,IAGd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACvC,OAAO,EAAE,GAAG,IAId,CAAC;AAEF;;;GAGG;AAEH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EAChF,YAAY,CAAC,KACZ,mBAAmB,CAAC,4BAA4B,CAAC,GAAG,CAAC,GAAG,8BA4C1D,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { isServer } from "lit";
2
+ import { SbbSlotStateController } from "../controllers.js";
2
3
  const CustomStateSetPolyfill = isServer || !CSS.supports("selector(:state(loading))") ? class CustomStateSet extends Set {
3
4
  constructor(_host) {
4
5
  super();
@@ -166,6 +167,7 @@ const SbbElementInternalsMixin = (superClass) => {
166
167
  if (role) {
167
168
  this.internals.role = role;
168
169
  }
170
+ this.addController(new SbbSlotStateController(this, this.internals));
169
171
  }
170
172
  toggleState(state, force) {
171
173
  if (force || force !== false && !this.internals.states.has(state)) {
@@ -182,4 +184,4 @@ export {
182
184
  appendAriaElements,
183
185
  removeAriaElements
184
186
  };
185
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9lbGVtZW50LWludGVybmFscy1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuXG4vLyBNb3N0IG9mIG91ciB0YXJnZXQgYnJvd3NlcnMgc3VwcG9ydCB0aGUgOnN0YXRlKCkgcHNldWRvIGNsYXNzLCBidXQgbm90IGFsbCBvZiB0aGVtLlxuLy8gV2UgcGF0Y2ggdGhlIHN0YXRlcyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBpbnRlcm5hbHMgdG8gdXNlIGF0dHJpYnV0ZXMgaW5zdGVhZCxcbi8vIGlmIDpzdGF0ZSgpIGlzIG5vdCBzdXBwb3J0ZWQuXG4vLyBOb3RlIHRoYXQgZm9yIFNTUiwgdGhlIHN0YXRlcyBwcm9wZXJ0eSBpcyBhIHNpbXBsZSBTZXQsIGltcGxlbWVudGVkIGluIExpdCBTU1IuXG4vLyBUT0RPOiBSZW1vdmUgaW4gMjAyNi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICBpc1NlcnZlciB8fCAhQ1NTLnN1cHBvcnRzKCdzZWxlY3Rvcig6c3RhdGUobG9hZGluZykpJylcbiAgICA/IGNsYXNzIEN1c3RvbVN0YXRlU2V0XG4gICAgICAgIGV4dGVuZHMgU2V0PHN0cmluZz5cbiAgICAgICAgaW1wbGVtZW50cyBDdXN0b21TdGF0ZVNldEludGVyZmFjZSwgUmVhY3RpdmVDb250cm9sbGVyXG4gICAgICB7XG4gICAgICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBMaXRFbGVtZW50KSB7XG4gICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYWRkKHN0YXRlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgICBpZiAodGhpcy5faG9zdC5pc0Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3VwZXIuYWRkKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBkZWxldGUoc3RhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCBmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5mb3JFYWNoKChzdGF0ZSkgPT4gdGhpcy5kZWxldGUoc3RhdGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF90b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3N0YXRlfWAsIGVuYWJsZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiBudWxsO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBBUklBTWl4aW4ge1xuICAgIGFyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudDogRWxlbWVudCB8IG51bGw7XG4gICAgYXJpYUNvbnRyb2xzRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYURlc2NyaWJlZEJ5RWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYURldGFpbHNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYUxhYmVsbGVkQnlFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhT3duc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICB9XG59XG5cbmlmICghaXNTZXJ2ZXIpIHtcbiAgLy8gVGhpcyBpcyBhIHBvbHlmaWxsIGZvciB0aGUgYXJpYSBlbGVtZW50cyBwcm9wZXJ0aWVzIG9uIEVsZW1lbnRJbnRlcm5hbHMgYW5kIEVsZW1lbnQuXG4gIGxldCBuZXh0SWQgPSAwO1xuICBjb25zdCByZXNvbHZlSG9zdCA9IChvcmlnaW46IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogRWxlbWVudCA9PlxuICAgIG9yaWdpbi5zaGFkb3dSb290Py5ob3N0ID8/XG4gICAgKG9yaWdpbiBpbnN0YW5jZW9mIEVsZW1lbnRcbiAgICAgID8gb3JpZ2luXG4gICAgICA6ICgoKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcmVzb2x2ZSByZWxhdGVkIGVsZW1lbnQhIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4nKTtcbiAgICAgICAgfSkoKSk7XG4gIGNvbnN0IG9ic2VydmVyT3B0aW9uczogTXV0YXRpb25PYnNlcnZlckluaXQgPSB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogWydpZCddIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnQgPSAoXG4gICAgaG9zdDogRWxlbWVudCxcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgICBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB0aGUgZWxlbWVudCByZWZlcmVuY2UgZnJvbSBFbGVtZW50IGhhcyBwcmlvcml0eS5cbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZWxlbWVudHNbRWxlbWVudC5uYW1lXSA/PyBlbGVtZW50c1tFbGVtZW50SW50ZXJuYWxzLm5hbWVdO1xuICAgIGhvc3Quc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgKGFjdGl2ZUVsZW1lbnQuaWQgfHw9IGBhcmlhLXJlZi0ke25leHRJZCsrfWApKTtcbiAgfTtcbiAgY29uc3QgYXNzaWduRWxlbWVudHMgPSAoXG4gICAgaG9zdDogRWxlbWVudCxcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgICBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPixcbiAgKTogdm9pZCA9PiB7XG4gICAgLy8gSW4gY2FzZSBib3RoIEVsZW1lbnQgYW5kIEVsZW1lbnRJbnRlcm5hbHMgcHJvcGVydGllcyBhcmUgc2V0LFxuICAgIC8vIHdlIGNvbWJpbmUgdGhlIGVsZW1lbnQgcmVmZXJlbmNlcy5cbiAgICBob3N0LnNldEF0dHJpYnV0ZShcbiAgICAgIGF0dHJpYnV0ZSxcbiAgICAgIE9iamVjdC52YWx1ZXMoZWxlbWVudHMpXG4gICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpXG4gICAgICAgIC5tYXAoKGUpID0+IGUuaWQgfHwgKGUuaWQgPSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSlcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICApO1xuICB9O1xuXG4gIGZvciAoY29uc3QgdHlwZSBvZiBbRWxlbWVudEludGVybmFscywgRWxlbWVudF0pIHtcbiAgICBjb25zdCBwcm90b3R5cGUgPSB0eXBlLnByb3RvdHlwZTtcbiAgICBpZiAoISgnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50JyBpbiBwcm90b3R5cGUpKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSAnYXJpYS1hY3RpdmVkZXNjZW5kYW50JztcbiAgICAgIGNvbnN0IHN0b3JhZ2UgPSBuZXcgV2Vha01hcDxcbiAgICAgICAgRWxlbWVudCxcbiAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD47IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIH1cbiAgICAgID4oKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90b3R5cGUsICdhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQnLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogRWxlbWVudCB8IG51bGwge1xuICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICBjb25zdCBpZCA9IGhvc3QuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk/LnNwbGl0KC9cXHMrLylbMF0gPz8gbnVsbDtcbiAgICAgICAgICByZXR1cm4gaWRcbiAgICAgICAgICAgID8gKChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSA/PyBudWxsKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50IHwgbnVsbCkge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2V0IHRoZSAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICBjb25zdCBlbnRyeSA9IHN0b3JhZ2UuZ2V0KGhvc3QpO1xuICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKGVudHJ5KS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzdG9yYWdlLmRlbGV0ZShob3N0KTtcbiAgICAgICAgICAgICAgICBob3N0LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylbMF0sIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgIGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cykpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh2YWx1ZSwgb2JzZXJ2ZXJPcHRpb25zKTtcbiAgICAgICAgICAgIHN0b3JhZ2Uuc2V0KGhvc3QsIHsgZWxlbWVudHMsIG9ic2VydmVyIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cykuZm9yRWFjaCgoZSkgPT5cbiAgICAgICAgICAgICAgZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIFtcbiAgICAgICdhcmlhQ29udHJvbHNFbGVtZW50cycsXG4gICAgICAnYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXRhaWxzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFFcnJvck1lc3NhZ2VFbGVtZW50cycsXG4gICAgICAnYXJpYUxhYmVsbGVkQnlFbGVtZW50cycsXG4gICAgICAnYXJpYU93bnNFbGVtZW50cycsXG4gICAgXSkge1xuICAgICAgaWYgKCEocHJvcGVydHkgaW4gcHJvdG90eXBlKSkge1xuICAgICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgICAgRWxlbWVudCxcbiAgICAgICAgICB7IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICAgID4oKTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYGFyaWEtJHtwcm9wZXJ0eS5zbGljZSg0LCAtOCkudG9Mb3dlckNhc2UoKX1gO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCBwcm9wZXJ0eSwge1xuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGwge1xuICAgICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBob3N0XG4gICAgICAgICAgICAgIC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKVxuICAgICAgICAgICAgICA/LnNwbGl0KC9cXHMrLylcbiAgICAgICAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAgICAgICAubWFwKChpZCkgPT4gKGhvc3QuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmdldEVsZW1lbnRCeUlkPy4oaWQpKVxuICAgICAgICAgICAgICAuZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgRWxlbWVudCk7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudHM/Lmxlbmd0aCA/IE9iamVjdC5mcmVlemUoZWxlbWVudHMpIDogbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCwgdmFsdWU6IEVsZW1lbnRbXSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAoIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLnNvbWUoKGVsZW1lbnQpID0+ICEoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2V0IHRoZSAnJHtwcm9wZXJ0eX0nIHByb3BlcnR5IG9uICcke3R5cGUubmFtZX0nOiBGYWlsZWQgdG8gY29udmVydCB2YWx1ZSB0byAnRWxlbWVudCcuYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZT8uZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpID8/IG51bGw7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHN0b3JhZ2UuZ2V0KGhvc3QpO1xuICAgICAgICAgICAgZW50cnk/Lm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV07XG4gICAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeS5lbGVtZW50cykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICBzdG9yYWdlLmRlbGV0ZShob3N0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4gPSB7IFt0eXBlLm5hbWVdOiB2YWx1ZSB9O1xuICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PlxuICAgICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChlbGVtZW50KSA9PiBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbnRyeS5lbGVtZW50cyk7XG4gICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGUpID0+IGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yIHtcbiAgcm9sZT86IEVsZW1lbnRJbnRlcm5hbHNbJ3JvbGUnXTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbnRlcm5hbHM6IEVsZW1lbnRJbnRlcm5hbHM7XG4gIHByb3RlY3RlZCB0b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIEFwcGVuZHMgdGhlIGdpdmVuIGVsZW1lbnRzIHRvIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zIHRoZVxuICogY29tYmluZWQgdmFsdWUgYXMgYSBuZXcgYXJyYXkgb3IgbnVsbCwgaWYgYm90aCB2YWx1ZXMgd2VyZSBlbXB0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IGFwcGVuZEFyaWFFbGVtZW50cyA9IChcbiAgYXJpYVZhbHVlOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsLFxuICAuLi5uZXdFbGVtZW50czogKEVsZW1lbnQgfCBudWxsKVtdXG4pOiBFbGVtZW50W10gfCBudWxsID0+IHtcbiAgY29uc3QgZWxlbWVudHMgPSBuZXdFbGVtZW50cy5maWx0ZXIoKHYpOiB2IGlzIEVsZW1lbnQgPT4gISF2KTtcbiAgcmV0dXJuIGFyaWFWYWx1ZT8ubGVuZ3RoID8gYXJpYVZhbHVlLmNvbmNhdChlbGVtZW50cykgOiBuZXdFbGVtZW50cy5sZW5ndGggPyBlbGVtZW50cyA6IG51bGw7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGdpdmVuIGVsZW1lbnRzIGZyb20gdGhlIGdpdmVuIGFyaWEgdmFsdWUgYW5kIHJldHVybnNcbiAqIHRoZSByZW1haW5pbmcgZWxlbWVudHMgYXMgYSBuZXcgYXJyYXkgb3IgbnVsbCwgaWYgdGhlIHJlc3VsdCBpcyBlbXB0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbW92ZUFyaWFFbGVtZW50cyA9IChcbiAgYXJpYVZhbHVlOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsLFxuICAuLi5yZW1vdmFibGVFbGVtZW50czogKEVsZW1lbnQgfCBudWxsKVtdXG4pOiBFbGVtZW50W10gfCBudWxsID0+IHtcbiAgcmVtb3ZhYmxlRWxlbWVudHMgPSByZW1vdmFibGVFbGVtZW50cy5maWx0ZXIoKHYpID0+ICEhdik7XG4gIGNvbnN0IGVsZW1lbnRzID0gYXJpYVZhbHVlPy5maWx0ZXIoKHYpID0+ICFyZW1vdmFibGVFbGVtZW50cy5pbmNsdWRlcyh2KSkgPz8gbnVsbDtcbiAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBlbGVtZW50cyA6IG51bGw7XG59O1xuXG4vKipcbiAqIFRoZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYXR0YWNoZXMgRWxlbWVudEludGVybmFscyB0byB0aGUgZWxlbWVudCBhbmQgc2V0c1xuICogdGhlIHJvbGUsIGlmIGRlZmluZWQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmIFQgJiBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJFbGVtZW50SW50ZXJuYWxFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+XG4gIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgaWYgKEN1c3RvbVN0YXRlU2V0UG9seWZpbGwpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuaW50ZXJuYWxzLCAnc3RhdGVzJywge1xuICAgICAgICAgIHZhbHVlOiBuZXcgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbCh0aGlzKSxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSB1c2UgdGhlIEN1c3RvbVN0YXRlU2V0IHBvbHlmaWxsIGluIFNTUiwgd2hpY2ggcmVuZGVycyB0aGUgc3RhdGUgYXMgYXR0cmlidXRlc1xuICAgICAgICAvLyB3aGljaCBjYW4gYmUgdHJhbnNmZXJyZWQgdG8gY2xpZW50IHNpZGUsIHdoZXJlIHdlIGNhbiB0aGVuIGNvbnZlcnQgW3N0YXRlLS0qXVxuICAgICAgICAvLyBhdHRyaWJ1dGVzIHRvIGludGVybmFsIHN0YXRlLlxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZpbHRlcigobikgPT4gbi5zdGFydHNXaXRoKCdzdGF0ZS0tJykpKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChuYW1lLnNsaWNlKDcpKTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgcm9sZSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcikucm9sZTtcbiAgICAgIGlmIChyb2xlKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSByb2xlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIGlmIChmb3JjZSB8fCAoZm9yY2UgIT09IGZhbHNlICYmICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKHN0YXRlKSkpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChzdGF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHN0YXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkVsZW1lbnRJbnRlcm5hbEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+ICZcbiAgICBUICZcbiAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3I7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFXQSxNQUFNLHlCQUNKLFlBQVksQ0FBQyxJQUFJLFNBQVMsMkJBQTJCLElBQ2pELE1BQU0sdUJBQ0ksSUFBVztBQUFBLEVBR25CLFlBQTJCLE9BQWlCO0FBQzFDLFVBQUE7QUFEeUIsU0FBQSxRQUFBO0FBRXpCLFNBQUssTUFBTSxjQUFjLElBQUk7QUFBQSxFQUMvQjtBQUFBLEVBRWdCLElBQUksT0FBYTtB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
187
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9lbGVtZW50LWludGVybmFscy1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuXG4vLyBNb3N0IG9mIG91ciB0YXJnZXQgYnJvd3NlcnMgc3VwcG9ydCB0aGUgOnN0YXRlKCkgcHNldWRvIGNsYXNzLCBidXQgbm90IGFsbCBvZiB0aGVtLlxuLy8gV2UgcGF0Y2ggdGhlIHN0YXRlcyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBpbnRlcm5hbHMgdG8gdXNlIGF0dHJpYnV0ZXMgaW5zdGVhZCxcbi8vIGlmIDpzdGF0ZSgpIGlzIG5vdCBzdXBwb3J0ZWQuXG4vLyBOb3RlIHRoYXQgZm9yIFNTUiwgdGhlIHN0YXRlcyBwcm9wZXJ0eSBpcyBhIHNpbXBsZSBTZXQsIGltcGxlbWVudGVkIGluIExpdCBTU1IuXG4vLyBUT0RPOiBSZW1vdmUgaW4gMjAyNi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICBpc1NlcnZlciB8fCAhQ1NTLnN1cHBvcnRzKCdzZWxlY3Rvcig6c3RhdGUobG9hZGluZykpJylcbiAgICA/IGNsYXNzIEN1c3RvbVN0YXRlU2V0XG4gICAgICAgIGV4dGVuZHMgU2V0PHN0cmluZz5cbiAgICAgICAgaW1wbGVtZW50cyBDdXN0b21TdGF0ZVNldEludGVyZmFjZSwgUmVhY3RpdmVDb250cm9sbGVyXG4gICAgICB7XG4gICAgICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBMaXRFbGVtZW50KSB7XG4gICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYWRkKHN0YXRlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgICBpZiAodGhpcy5faG9zdC5pc0Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3VwZXIuYWRkKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBkZWxldGUoc3RhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCBmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5mb3JFYWNoKChzdGF0ZSkgPT4gdGhpcy5kZWxldGUoc3RhdGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF90b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3N0YXRlfWAsIGVuYWJsZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiBudWxsO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBBUklBTWl4aW4ge1xuICAgIGFyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudDogRWxlbWVudCB8IG51bGw7XG4gICAgYXJpYUNvbnRyb2xzRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYURlc2NyaWJlZEJ5RWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYURldGFpbHNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYUxhYmVsbGVkQnlFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhT3duc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICB9XG59XG5cbmlmICghaXNTZXJ2ZXIpIHtcbiAgLy8gVGhpcyBpcyBhIHBvbHlmaWxsIGZvciB0aGUgYXJpYSBlbGVtZW50cyBwcm9wZXJ0aWVzIG9uIEVsZW1lbnRJbnRlcm5hbHMgYW5kIEVsZW1lbnQuXG4gIGxldCBuZXh0SWQgPSAwO1xuICBjb25zdCByZXNvbHZlSG9zdCA9IChvcmlnaW46IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogRWxlbWVudCA9PlxuICAgIG9yaWdpbi5zaGFkb3dSb290Py5ob3N0ID8/XG4gICAgKG9yaWdpbiBpbnN0YW5jZW9mIEVsZW1lbnRcbiAgICAgID8gb3JpZ2luXG4gICAgICA6ICgoKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcmVzb2x2ZSByZWxhdGVkIGVsZW1lbnQhIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4nKTtcbiAgICAgICAgfSkoKSk7XG4gIGNvbnN0IG9ic2VydmVyT3B0aW9uczogTXV0YXRpb25PYnNlcnZlckluaXQgPSB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogWydpZCddIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnQgPSAoXG4gICAgaG9zdDogRWxlbWVudCxcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgICBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB0aGUgZWxlbWVudCByZWZlcmVuY2UgZnJvbSBFbGVtZW50IGhhcyBwcmlvcml0eS5cbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZWxlbWVudHNbRWxlbWVudC5uYW1lXSA/PyBlbGVtZW50c1tFbGVtZW50SW50ZXJuYWxzLm5hbWVdO1xuICAgIGhvc3Quc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgKGFjdGl2ZUVsZW1lbnQuaWQgfHw9IGBhcmlhLXJlZi0ke25leHRJZCsrfWApKTtcbiAgfTtcbiAgY29uc3QgYXNzaWduRWxlbWVudHMgPSAoXG4gICAgaG9zdDogRWxlbWVudCxcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgICBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPixcbiAgKTogdm9pZCA9PiB7XG4gICAgLy8gSW4gY2FzZSBib3RoIEVsZW1lbnQgYW5kIEVsZW1lbnRJbnRlcm5hbHMgcHJvcGVydGllcyBhcmUgc2V0LFxuICAgIC8vIHdlIGNvbWJpbmUgdGhlIGVsZW1lbnQgcmVmZXJlbmNlcy5cbiAgICBob3N0LnNldEF0dHJpYnV0ZShcbiAgICAgIGF0dHJpYnV0ZSxcbiAgICAgIE9iamVjdC52YWx1ZXMoZWxlbWVudHMpXG4gICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpXG4gICAgICAgIC5tYXAoKGUpID0+IGUuaWQgfHwgKGUuaWQgPSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSlcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICApO1xuICB9O1xuXG4gIGZvciAoY29uc3QgdHlwZSBvZiBbRWxlbWVudEludGVybmFscywgRWxlbWVudF0pIHtcbiAgICBjb25zdCBwcm90b3R5cGUgPSB0eXBlLnByb3RvdHlwZTtcbiAgICBpZiAoISgnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50JyBpbiBwcm90b3R5cGUpKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSAnYXJpYS1hY3RpdmVkZXNjZW5kYW50JztcbiAgICAgIGNvbnN0IHN0b3JhZ2UgPSBuZXcgV2Vha01hcDxcbiAgICAgICAgRWxlbWVudCxcbiAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD47IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIH1cbiAgICAgID4oKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90b3R5cGUsICdhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQnLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogRWxlbWVudCB8IG51bGwge1xuICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICBjb25zdCBpZCA9IGhvc3QuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk/LnNwbGl0KC9cXHMrLylbMF0gPz8gbnVsbDtcbiAgICAgICAgICByZXR1cm4gaWRcbiAgICAgICAgICAgID8gKChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSA/PyBudWxsKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50IHwgbnVsbCkge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2V0IHRoZSAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICBjb25zdCBlbnRyeSA9IHN0b3JhZ2UuZ2V0KGhvc3QpO1xuICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKGVudHJ5KS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzdG9yYWdlLmRlbGV0ZShob3N0KTtcbiAgICAgICAgICAgICAgICBob3N0LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylbMF0sIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgIGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cykpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh2YWx1ZSwgb2JzZXJ2ZXJPcHRpb25zKTtcbiAgICAgICAgICAgIHN0b3JhZ2Uuc2V0KGhvc3QsIHsgZWxlbWVudHMsIG9ic2VydmVyIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cykuZm9yRWFjaCgoZSkgPT5cbiAgICAgICAgICAgICAgZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIFtcbiAgICAgICdhcmlhQ29udHJvbHNFbGVtZW50cycsXG4gICAgICAnYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXRhaWxzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFFcnJvck1lc3NhZ2VFbGVtZW50cycsXG4gICAgICAnYXJpYUxhYmVsbGVkQnlFbGVtZW50cycsXG4gICAgICAnYXJpYU93bnNFbGVtZW50cycsXG4gICAgXSkge1xuICAgICAgaWYgKCEocHJvcGVydHkgaW4gcHJvdG90eXBlKSkge1xuICAgICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgICAgRWxlbWVudCxcbiAgICAgICAgICB7IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICAgID4oKTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYGFyaWEtJHtwcm9wZXJ0eS5zbGljZSg0LCAtOCkudG9Mb3dlckNhc2UoKX1gO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCBwcm9wZXJ0eSwge1xuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGwge1xuICAgICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBob3N0XG4gICAgICAgICAgICAgIC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKVxuICAgICAgICAgICAgICA/LnNwbGl0KC9cXHMrLylcbiAgICAgICAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAgICAgICAubWFwKChpZCkgPT4gKGhvc3QuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmdldEVsZW1lbnRCeUlkPy4oaWQpKVxuICAgICAgICAgICAgICAuZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgRWxlbWVudCk7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudHM/Lmxlbmd0aCA/IE9iamVjdC5mcmVlemUoZWxlbWVudHMpIDogbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCwgdmFsdWU6IEVsZW1lbnRbXSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAoIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLnNvbWUoKGVsZW1lbnQpID0+ICEoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2V0IHRoZSAnJHtwcm9wZXJ0eX0nIHByb3BlcnR5IG9uICcke3R5cGUubmFtZX0nOiBGYWlsZWQgdG8gY29udmVydCB2YWx1ZSB0byAnRWxlbWVudCcuYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZT8uZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpID8/IG51bGw7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHN0b3JhZ2UuZ2V0KGhvc3QpO1xuICAgICAgICAgICAgZW50cnk/Lm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV07XG4gICAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeS5lbGVtZW50cykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICBzdG9yYWdlLmRlbGV0ZShob3N0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4gPSB7IFt0eXBlLm5hbWVdOiB2YWx1ZSB9O1xuICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PlxuICAgICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChlbGVtZW50KSA9PiBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbnRyeS5lbGVtZW50cyk7XG4gICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGUpID0+IGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yIHtcbiAgcm9sZT86IEVsZW1lbnRJbnRlcm5hbHNbJ3JvbGUnXTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbnRlcm5hbHM6IEVsZW1lbnRJbnRlcm5hbHM7XG4gIHByb3RlY3RlZCB0b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIEFwcGVuZHMgdGhlIGdpdmVuIGVsZW1lbnRzIHRvIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zIHRoZVxuICogY29tYmluZWQgdmFsdWUgYXMgYSBuZXcgYXJyYXkgb3IgbnVsbCwgaWYgYm90aCB2YWx1ZXMgd2VyZSBlbXB0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IGFwcGVuZEFyaWFFbGVtZW50cyA9IChcbiAgYXJpYVZhbHVlOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsLFxuICAuLi5uZXdFbGVtZW50czogKEVsZW1lbnQgfCBudWxsKVtdXG4pOiBFbGVtZW50W10gfCBudWxsID0+IHtcbiAgY29uc3QgZWxlbWVudHMgPSBuZXdFbGVtZW50cy5maWx0ZXIoKHYpOiB2IGlzIEVsZW1lbnQgPT4gISF2KTtcbiAgcmV0dXJuIGFyaWFWYWx1ZT8ubGVuZ3RoID8gYXJpYVZhbHVlLmNvbmNhdChlbGVtZW50cykgOiBuZXdFbGVtZW50cy5sZW5ndGggPyBlbGVtZW50cyA6IG51bGw7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGdpdmVuIGVsZW1lbnRzIGZyb20gdGhlIGdpdmVuIGFyaWEgdmFsdWUgYW5kIHJldHVybnNcbiAqIHRoZSByZW1haW5pbmcgZWxlbWVudHMgYXMgYSBuZXcgYXJyYXkgb3IgbnVsbCwgaWYgdGhlIHJlc3VsdCBpcyBlbXB0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbW92ZUFyaWFFbGVtZW50cyA9IChcbiAgYXJpYVZhbHVlOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsLFxuICAuLi5yZW1vdmFibGVFbGVtZW50czogKEVsZW1lbnQgfCBudWxsKVtdXG4pOiBFbGVtZW50W10gfCBudWxsID0+IHtcbiAgcmVtb3ZhYmxlRWxlbWVudHMgPSByZW1vdmFibGVFbGVtZW50cy5maWx0ZXIoKHYpID0+ICEhdik7XG4gIGNvbnN0IGVsZW1lbnRzID0gYXJpYVZhbHVlPy5maWx0ZXIoKHYpID0+ICFyZW1vdmFibGVFbGVtZW50cy5pbmNsdWRlcyh2KSkgPz8gbnVsbDtcbiAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBlbGVtZW50cyA6IG51bGw7XG59O1xuXG4vKipcbiAqIFRoZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYXR0YWNoZXMgRWxlbWVudEludGVybmFscyB0byB0aGUgZWxlbWVudCBhbmQgc2V0c1xuICogdGhlIHJvbGUsIGlmIGRlZmluZWQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmIFQgJiBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJFbGVtZW50SW50ZXJuYWxFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+XG4gIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgaWYgKEN1c3RvbVN0YXRlU2V0UG9seWZpbGwpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuaW50ZXJuYWxzLCAnc3RhdGVzJywge1xuICAgICAgICAgIHZhbHVlOiBuZXcgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbCh0aGlzKSxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSB1c2UgdGhlIEN1c3RvbVN0YXRlU2V0IHBvbHlmaWxsIGluIFNTUiwgd2hpY2ggcmVuZGVycyB0aGUgc3RhdGUgYXMgYXR0cmlidXRlc1xuICAgICAgICAvLyB3aGljaCBjYW4gYmUgdHJhbnNmZXJyZWQgdG8gY2xpZW50IHNpZGUsIHdoZXJlIHdlIGNhbiB0aGVuIGNvbnZlcnQgW3N0YXRlLS0qXVxuICAgICAgICAvLyBhdHRyaWJ1dGVzIHRvIGludGVybmFsIHN0YXRlLlxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZpbHRlcigobikgPT4gbi5zdGFydHNXaXRoKCdzdGF0ZS0tJykpKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChuYW1lLnNsaWNlKDcpKTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgcm9sZSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcikucm9sZTtcbiAgICAgIGlmIChyb2xlKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSByb2xlO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMsIHRoaXMuaW50ZXJuYWxzKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRvZ2dsZVN0YXRlKHN0YXRlOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgaWYgKGZvcmNlIHx8IChmb3JjZSAhPT0gZmFsc2UgJiYgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoc3RhdGUpKSkge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHN0YXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoc3RhdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRWxlbWVudEludGVybmFsRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJlxuICAgIFQgJlxuICAgIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSxNQUFNLHlCQUNKLFlBQVksQ0FBQyxJQUFJLFNB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
@@ -1 +1 @@
1
- {"version":3,"file":"form-associated-input-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-input-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAGhB,MAAM,KAAK,CAAC;AAIb,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAEtB,MAAM,4BAA4B,CAAC;;AAIpC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,+BAAgC,SAAQ,oCAErE;IACC,gBAAuB,mBAAmB,QAAQ;IAElD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;IAChC,IAAW,KAAK,IAAI,MAAM,CAAC;IAE3B,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IACpC,IAAW,QAAQ,IAAI,OAAO,CAAC;IAE/B,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IACpC,IAAW,QAAQ,IAAI,OAAO,CAAC;IAE/B,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;IACtC,IAAW,WAAW,IAAI,MAAM,CAAC;IAEjC;;;;OAIG;IACI,MAAM,IAAI,IAAI;IAEd,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAEhG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IACjD,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC;CAC3C;AAgBD;;GAEG;AAEH,eAAO,MAAM,2BAA2B,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EACnF,YAAY,CAAC,KACZ,mBAAmB,CAAC,+BAA+B,CAAC,GAAG,CAqXzD,CAAC"}
1
+ {"version":3,"file":"form-associated-input-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-input-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAGhB,MAAM,KAAK,CAAC;AAIb,OAAO,EAAE,qBAAqB,EAA8B,MAAM,mBAAmB,CAAC;AAItF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAEtB,MAAM,4BAA4B,CAAC;;AAIpC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,+BAAgC,SAAQ,oCAErE;IACC,gBAAuB,mBAAmB,QAAQ;IAElD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;IAChC,IAAW,KAAK,IAAI,MAAM,CAAC;IAE3B,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IACpC,IAAW,QAAQ,IAAI,OAAO,CAAC;IAE/B,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IACpC,IAAW,QAAQ,IAAI,OAAO,CAAC;IAE/B,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;IACtC,IAAW,WAAW,IAAI,MAAM,CAAC;IAEjC;;;;OAIG;IACI,MAAM,IAAI,IAAI;IAEd,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAEhG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IACjD,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC;CAC3C;AAgBD;;GAEG;AAEH,eAAO,MAAM,2BAA2B,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EACnF,YAAY,CAAC,KACZ,mBAAmB,CAAC,+BAA+B,CAAC,GAAG,CAmazD,CAAC"}
@@ -2,8 +2,8 @@ import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { isServer, html } from "lit";
3
3
  import { property, eventOptions } from "lit/decorators.js";
4
4
  import { sbbInputModalityDetector } from "../a11y.js";
5
- import { SbbLanguageController } from "../controllers.js";
6
- import { isWebkit } from "../dom.js";
5
+ import { SbbLanguageController, SbbMediaQueryPointerCoarse } from "../controllers.js";
6
+ import { isWebkit, isBlink } from "../dom.js";
7
7
  import { i18nInputRequired } from "../i18n.js";
8
8
  import { SbbDisabledMixin } from "./disabled-mixin.js";
9
9
  import { SbbElementInternalsMixin } from "./element-internals-mixin.js";
@@ -41,7 +41,7 @@ const SbbFormAssociatedInputMixin = (superClass) => {
41
41
  set value(value) {
42
42
  this._value = this._cleanText(value);
43
43
  if (this.hasUpdated) {
44
- this.innerHTML = this._value;
44
+ this._assignValue(this._value);
45
45
  }
46
46
  this.dispatchEvent(new Event("displayvaluechange", { bubbles: true, composed: true }));
47
47
  }
@@ -74,6 +74,9 @@ const SbbFormAssociatedInputMixin = (superClass) => {
74
74
  }, { capture: true });
75
75
  this.addEventListener?.("change", () => this._shouldEmitChange = false, { capture: true });
76
76
  this.addEventListener?.("keydown", (event) => {
77
+ if (this._requiresEmptyPatch()) {
78
+ this._assignValue("");
79
+ }
77
80
  if ((event.key === "Enter" || event.key === "\n") && event.isTrusted) {
78
81
  event.preventDefault();
79
82
  event.stopImmediatePropagation();
@@ -109,10 +112,15 @@ const SbbFormAssociatedInputMixin = (superClass) => {
109
112
  this._shouldTriggerSubmit = false;
110
113
  this.form?.requestSubmit();
111
114
  }
115
+ } else if (this._requiresEmptyPatch()) {
116
+ this._setCursorAt(0);
112
117
  }
113
118
  }, { capture: true });
114
119
  this.addEventListener?.("paste", (e) => {
115
120
  e.preventDefault();
121
+ if (this._requiresEmptyPatch()) {
122
+ this._assignValue("");
123
+ }
116
124
  const text = this._cleanText(e.clipboardData?.getData("text/plain") ?? "");
117
125
  const selectedRange = window.getSelection()?.getRangeAt(0);
118
126
  if (!selectedRange || !text) {
@@ -128,8 +136,22 @@ const SbbFormAssociatedInputMixin = (superClass) => {
128
136
  window.getSelection()?.selectAllChildren(this);
129
137
  }
130
138
  });
139
+ this.addEventListener?.("touchend", () => {
140
+ if (this._requiresEmptyPatch()) {
141
+ this._assignValue(" ");
142
+ this._setCursorAt(0);
143
+ }
144
+ });
145
+ this.addEventListener?.("click", () => {
146
+ if (this._requiresEmptyPatch() && sbbInputModalityDetector.mostRecentModality === "touch") {
147
+ this._setCursorAt(0);
148
+ }
149
+ });
131
150
  this.addEventListener?.("blur", () => {
132
151
  window.getSelection()?.removeAllRanges();
152
+ if (this.value === "") {
153
+ this._assignValue("");
154
+ }
133
155
  this._emitChangeIfNecessary();
134
156
  this.scrollLeft = 0;
135
157
  }, { capture: true });
@@ -141,7 +163,7 @@ const SbbFormAssociatedInputMixin = (superClass) => {
141
163
  super.connectedCallback();
142
164
  this.internals.ariaMultiLine = "false";
143
165
  this._updateContenteditable();
144
- this.innerHTML = this.value;
166
+ this._assignValue(this.value);
145
167
  }
146
168
  focus(options) {
147
169
  super.focus(options);
@@ -150,15 +172,11 @@ const SbbFormAssociatedInputMixin = (superClass) => {
150
172
  if (!selection) {
151
173
  return;
152
174
  }
153
- let range = selection.rangeCount > 0 ? selection.getRangeAt(0) : null;
175
+ const range = selection.rangeCount > 0 ? selection.getRangeAt(0) : null;
154
176
  if (range && range.startOffset !== 0) {
155
177
  return;
156
178
  }
157
- range = document.createRange();
158
- range.setStart(this.firstChild, this.textContent.length);
159
- range.collapse(true);
160
- selection.removeAllRanges();
161
- selection.addRange(range);
179
+ this._setCursorAt(this.textContent.length);
162
180
  }
163
181
  }
164
182
  attributeChangedCallback(name, old, value) {
@@ -200,7 +218,7 @@ const SbbFormAssociatedInputMixin = (superClass) => {
200
218
  firstUpdated(changedProperties) {
201
219
  super.firstUpdated(changedProperties);
202
220
  if (this.value && !this.innerHTML.length) {
203
- this.innerHTML = this.value;
221
+ this._assignValue(this.value);
204
222
  }
205
223
  }
206
224
  requestUpdate(name, oldValue, options) {
@@ -223,6 +241,23 @@ const SbbFormAssociatedInputMixin = (superClass) => {
223
241
  preparePastedText(text) {
224
242
  return text;
225
243
  }
244
+ _requiresEmptyPatch() {
245
+ return isServer ? false : isBlink && this.value === "" && window.matchMedia(SbbMediaQueryPointerCoarse).matches;
246
+ }
247
+ _assignValue(value) {
248
+ this.innerHTML = value;
249
+ }
250
+ _setCursorAt(position) {
251
+ const selection = window.getSelection();
252
+ if (!selection) {
253
+ return;
254
+ }
255
+ const range = document.createRange();
256
+ range.setStart(this.firstChild, position);
257
+ range.collapse(true);
258
+ selection.removeAllRanges();
259
+ selection.addRange(range);
260
+ }
226
261
  _cleanText(value) {
227
262
  return value === null ? "" : `${value}`.replace(/[\n\r]+/g, "");
228
263
  }
@@ -281,4 +316,4 @@ const SbbFormAssociatedInputMixin = (superClass) => {
281
316
  export {
282
317
  SbbFormAssociatedInputMixin
283
318
  };
284
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaXNXZWJraXQgfSBmcm9tICcuLi9kb20uanMnO1xuaW1wb3J0IHsgaTE4bklucHV0UmVxdWlyZWQgfSBmcm9tICcuLi9pMThuLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi5qcyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gfSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbn0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVhZG9ubHlNaXhpbiB9IGZyb20gJy4vcmVhZG9ubHktbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVxdWlyZWRNaXhpbiB9IGZyb20gJy4vcmVxdWlyZWQtbWl4aW4uanMnO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlIGV4dGVuZHMgU2JiUmVxdWlyZWRNaXhpbihcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZm9ybUZpZWxkQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmc7XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHJlYWRPbmx5KHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCByZWFkT25seSgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZyk7XG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICpcbiAgICogW01ETiBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdClcbiAgICovXG4gIHB1YmxpYyBzZWxlY3QoKTogdm9pZDtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBsYW5ndWFnZTogU2JiTGFuZ3VhZ2VDb250cm9sbGVyO1xufVxuXG5jb25zdCBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0ID0gKCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgZGl2LnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ1BMQUlOVEVYVC1PTkxZJyk7XG5cbiAgLy8gSWYgcGxhaW50ZXh0LW9ubHkgaXMgc3VwcG9ydGVkLCB0aGUgYXR0cmlidXRlIHZhbHVlIGlzXG4gIC8vIHJldHVybmVkIGFzIGxvd2VyLWNhc2UgZnJvbSB0aGUgcHJvcGVydHkgYWNjZXNzLlxuICByZXR1cm4gZGl2LmNvbnRlbnRFZGl0YWJsZSA9PT0gJ3BsYWludGV4dC1vbmx5Jztcbn07XG5jb25zdCBwbGFpbnRleHRPbmx5U3VwcG9ydGVkID0gY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCgpO1xuXG4vKipcbiAqIFRoZSBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gZW5hYmxlcyBuYXRpdmUgZm9ybSBzdXBwb3J0IGZvciB0ZXh0IGlucHV0IGNvbnRyb2xzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oXG4gICAgICBTYmJEaXNhYmxlZE1peGluKFxuICAgICAgICBTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKHN1cGVyQ2xhc3MpKSksXG4gICAgICApLFxuICAgIClcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLmlubmVySFRNTCA9IHRoaXMuX3ZhbHVlO1xuICAgICAgfVxuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZGlzcGxheXZhbHVlY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVBsYWNlaG9sZGVyID0gdmFsdWUgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHRoaXMudGV4dENvbnRlbnQgPz8gJycpO1xuICAgICAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndmFsdWUnLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW50ZXJhY3RlZCcpO1xuICAgICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZSksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljayB0aGF0IGJ5IHJlc2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uLlxuICAgICAgLy8gV2UgYWxzbyB1bnNldCBhbnkgc2VsZWN0aW9uIHRvIGFsaWduIHdpdGggdGhlIG5hdGl2ZSB0ZXh0IGlucHV0LlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgc3VwZXIuZm9jdXMob3B0aW9ucyk7XG4gICAgICAvLyBCeSBkZWZhdWx0LCB3aGVuIGNhbGxpbmcgZm9jdXMgb24gYW4gaW5wdXQgZWxlbWVudCwgdGhlIGN1cnNvciBpcyBwbGFjZWRcbiAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0IHRleHQuIEhvd2V2ZXIsIHdpdGggY29udGVudGVkaXRhYmxlLCB0aGUgY3Vyc29yXG4gICAgICAvLyBpcyBwbGFjZWQgYXQgdGhlIGJlZ2lubmluZywgc28gd2UgbW92ZSBpdCB0byB0aGUgZW5kLCBpZiB0aGF0IGlzIHRoZSBjYXNlLlxuICAgICAgaWYgKHRoaXMuX2NhblNlbGVjdCgpKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHRoaXMudGV4dENvbnRlbnQhLmxlbmd0aCk7XG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIG9sZDogc3RyaW5nIHwgbnVsbCxcbiAgICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICAgICk6IHZvaWQge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmF0aXZlIHRleHQgaW5wdXQgY2hhbmdlcyB0aGUgdmFsdWUgcHJvcGVydHkgd2hlbiB0aGUgdmFsdWUgYXR0cmlidXRlIGlzXG4gICAgICAgKiBjaGFuZ2VkIHVuZGVyIHRoZSBjb25kaXRpb24gdGhhdCBubyBpbnB1dCBldmVudCBoYXMgb2NjdXJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ2ludGVyYWN0ZWQnKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCAmJlxuICAgICAgICAobmFtZSA9PT0gJ2Rpc2FibGVkJyB8fCBuYW1lID09PSAnZm9ybURpc2FibGVkJyB8fCBuYW1lID09PSAncmVhZE9ubHknKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYW5UZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgLy8gVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHJlbW92ZXMgYWxsIG5ld2xpbmUgY2hhcmFjdGVycyBpZiBwYXNzZWQgdG8gdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyAnJyA6IGAke3ZhbHVlfWAucmVwbGFjZSgvW1xcblxccl0rL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnQoKTogdm9pZCB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgICBwcml2YXRlIF9jbGVhbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hpbGRFbGVtZW50Q291bnQpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQ29udGVudGVkaXRhYmxlKCk6IHZvaWQge1xuICAgICAgaWYgKCFpc1NlcnZlciAmJiB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IHRoaXMucmVhZE9ubHkgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgLy8gVE9ETygyMDI2KTogRmlyZWZveCBzdXBwb3J0cyBwbGFpbnRleHQtb25seSBzaW5jZSB2ZXJzaW9uIDEzNiAoTWFyY2ggMjAyNSkuXG4gICAgICAgIC8vIFVudGlsIHRoaXMgaXMgcGFydCBvZiBvdXIgYmFzZWxpbmUsIHdlIHNob3VsZCBmZWF0dXJlIGNoZWNrIHRvIGVuYWJsZSBpdC5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyAnZmFsc2UnXG4gICAgICAgICAgICA6IHBsYWludGV4dE9ubHlTdXBwb3J0ZWRcbiAgICAgICAgICAgICAgPyAncGxhaW50ZXh0LW9ubHknXG4gICAgICAgICAgICAgIDogJ3RydWUnO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdmFsdWUpO1xuICAgICAgICAvLyBJbiB0aGUgcmVhZG9ubHkgY2FzZSwgd2UgZGlzYWJsZSBjb250ZW50ZWRpdGFibGUsIGJ1dCBpdCBzdGlsbFxuICAgICAgICAvLyBuZWVkcyB0byBiZSBmb2N1c2FibGUuIFdlIGFjaGlldmUgdGhpcyBieSBzZXR0aW5nIHRhYmluZGV4IGluIHRoYXQgY2FzZS5cbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NhblNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhaXNTZXJ2ZXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogdW5rbm93biB7XG4gICAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2NsZWFuQ2hpbGRyZW59Pjwvc2xvdD5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJGb3JtQXNzb2NpYXRlZElucHV0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQXdEQSxNQUFNLDRCQUE0QixNQUFjO0FBQzlDLE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxNQUFNLFNBQVMsY0FBYyxLQUFLO0FBQ3hDLE1BQUksYUFBYSxtQkFBbUIsZ0JBQWdCO0FBSXBELFNBQU8sSUFBSSxvQkFBb0I7QUFDakM7QUFDQSxNQUFNLHlCQUF5QiwwQkFBQTtBQU14QixNQUFNLDhCQUE4QixDQUN6QyxlQUM0RDtNQUM3QyxpQ0FBNkIsTUFBQTs7QUFDbEMsUUFBQSxjQUFBLGlCQUNOLGlCQUNFLGlCQUFpQix1QkFBdUIseUJBQXlCLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDL0U7Ozs7O0FBSlUsV0FBQSxtQkFDTCxZQUlQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQTBCRCxJQUFvQixPQUFJO0FBQ3RCLGVBQU87QUFBQSxNQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFNQSxJQUFXLE1BQU0sT0FBYTtBQUM1QixhQUFLLFNBQVMsS0FBSyxXQUFXLEtBQUs7QUFDbkMsWUFBSSxLQUFLLFlBQVk7QUFDbkIsZUFBSyxZQUFZLEtBQUs7QUFBQSxRQUN4QjtBQUVBLGFBQUssY0FBYyxJQUFJLE1BQU0sc0JBQXNCLEVBQUUsU0FBUyxNQUFNLFVBQVUsS0FBQSxDQUFNLENBQUM7QUFBQSxNQUN2RjtBQUFBLE1BQ0EsSUFBVyxRQUFLO0FBQ2QsZUFBTyxLQUFLLFVBQVU7QUFBQSxNQUN4QjtBQUFBLE1BSUEsSUFBVyxZQUFZLE9BQWE7QUFDbEMsWUFBSSxPQUFPO0FBQ1QsZUFBSyxhQUFhLGVBQWUsS0FBSztBQUFBLFFBQ3hDLE9BQU87QUFDTCxlQUFLLGdCQUFnQixhQUFhO0FBQUEsUUFDcEM7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
319
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLCBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tLmpzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiRWxlbWVudEludGVybmFsc01peGluIH0gZnJvbSAnLi9lbGVtZW50LWludGVybmFscy1taXhpbi5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyk7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZztcblxuICAvKipcbiAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAqXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3QpXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2U6IFNiYkxhbmd1YWdlQ29udHJvbGxlcjtcbn1cblxuY29uc3QgY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdQTEFJTlRFWFQtT05MWScpO1xuXG4gIC8vIElmIHBsYWludGV4dC1vbmx5IGlzIHN1cHBvcnRlZCwgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpc1xuICAvLyByZXR1cm5lZCBhcyBsb3dlci1jYXNlIGZyb20gdGhlIHByb3BlcnR5IGFjY2Vzcy5cbiAgcmV0dXJuIGRpdi5jb250ZW50RWRpdGFibGUgPT09ICdwbGFpbnRleHQtb25seSc7XG59O1xuY29uc3QgcGxhaW50ZXh0T25seVN1cHBvcnRlZCA9IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQoKTtcblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgdGV4dCBpbnB1dCBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJSZWFkb25seU1peGluKFxuICAgICAgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgICAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihzdXBlckNsYXNzKSkpLFxuICAgICAgKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAndGV4dGJveCc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEFuIGVsZW1lbnQgd2l0aCBjb250ZW50ZWRpdGFibGUgd2lsbCBub3QgZW1pdCBhIGNoYW5nZSBldmVudC4gVG8gYWNoaWV2ZSBwYXJpdHlcbiAgICAgKiB3aXRoIGEgbmF0aXZlIHRleHQgaW5wdXQsIHdlIG5lZWQgdG8gdHJhY2sgd2hldGhlciBhIGNoYW5nZSBldmVudCBzaG91bGQgYmVcbiAgICAgKiBlbWl0dGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBIG5hdGl2ZSB0ZXh0IGlucHV0IGF0dGVtcHRzIHRvIHN1Ym1pdCB0aGUgZm9ybSB3aGVuIHByZXNzaW5nIEVudGVyLlxuICAgICAqIFRoaXMgY2FuIGJlIHByZXZlbnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZhdWx0IG9uIHRoZSBrZXlkb3duIGV2ZW50LlxuICAgICAqIFdlIHRyYWNrIHdoZXRoZXIgdG8gcmVxdWVzdCBzdWJtaXQsIHdoaWNoIHNob3VsZCBvY2N1ciBiZWZvcmUgdGhlIGtleXVwXG4gICAgICogZXZlbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICd0ZXh0J1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0LiBSZWZsZWN0cyB0aGUgY3VycmVudCB0ZXh0IHZhbHVlIG9mIHRoaXMgaW5wdXQuXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZGlzcGxheXZhbHVlY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVBsYWNlaG9sZGVyID0gdmFsdWUgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHRoaXMudGV4dENvbnRlbnQgPz8gJycpO1xuICAgICAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndmFsdWUnLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW50ZXJhY3RlZCcpO1xuICAgICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZSksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBXZSBwcmV2ZW50IHJlY3Vyc2l2ZSBldmVudHMgYnkgY2hlY2tpbmcgdGhlIG9yaWdpbmFsIGV2ZW50IGZvciBpc1RydXN0ZWRcbiAgICAgICAgICAvLyB3aGljaCBpcyBmYWxzZSBmb3IgbWFudWFsbHkgZGlzcGF0Y2hlZCBldmVudHMgKHdoaWNoIHdlIGRpc3BhdGNoIGJlbG93KS5cbiAgICAgICAgICBpZiAoKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSAmJiBldmVudC5pc1RydXN0ZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBpc1dlYmtpdCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZSAmJlxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09PSAnRGVsZXRlJykgJiZcbiAgICAgICAgICAgIGV2ZW50LmlzVHJ1c3RlZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gSW4gV2Via2l0IHByZXNzaW5nIEJhY2tzcGFjZSBvciBEZWxldGUgY29tcGxldGVseSByZW1vdmVzIGFsbCB0aGUgY29udGVudFxuICAgICAgICAgICAgLy8gaWYgY29udGVudGVkaXRhYmxlIGlzIHNldCBvbiBhIHdlYiBjb21wb25lbnQgaG9zdC5cbiAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gcmVwbGljYXRlIHRoZSBub3JtYWwgZGVsZXRlIGJlaGF2aW9yLlxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgIT09IHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KSB7XG4gICAgICAgICAgICAgIC8vIElmIGEgdGV4dCByYW5nZSBpcyBzZWxlY3RlZCwgdGhlbiBkZWxldGUgdGhpcyByYW5nZVxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnICYmIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgQmFja3NwYWNlLCB3ZSBzZWxlY3QgdGhlIHByZXZpb3VzIGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2Uuc3RhcnRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgLSAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJyAmJiBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCA8IHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgRGVsZXRlLCB3ZSBzZWxlY3QgdGhlIG5leHQgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0RW5kKHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCArIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXl1cCcsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCkge1xuICAgICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybT8ucmVxdWVzdFN1Ym1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgLy8gY29udGVudGVkaXRhYmxlIGFsbG93cyBwYXN0aW5nIHJpY2ggY29udGVudCBpbnRvIGl0cyBob3N0LlxuICAgICAgLy8gV2UgcHJldmVudCB0aGlzIGJ5IGxpc3RlbmluZyB0byB0aGUgcGFzdGUgZXZlbnQgYW5kXG4gICAgICAvLyBleHRyYWN0aW5nIHRoZSBwbGFpbiB0ZXh0IGZyb20gdGhlIHBhc3RlZCBjb250ZW50XG4gICAgICAvLyBhbmQgaW5zZXJ0aW5nIGl0IGludG8gdGhlIHNlbGVjdGVkIHJhbmdlIChjdXJzb3IgcG9zaXRpb25cbiAgICAgIC8vIG9yIHNlbGVjdGlvbikuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncGFzdGUnLCAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLl9jbGVhblRleHQoZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgPz8gJycpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UgfHwgIXRleHQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuaW5zZXJ0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLnByZXBhcmVQYXN0ZWRUZXh0KHRleHQpKSk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICB9KTtcbiAgICAgIC8vIFdoZW4gZm9jdXNpbmcgYSB0ZXh0IGlucHV0IHZpYSBrZXlib2FyZCwgdGhlIHRleHQgY29udGVudCBzaG91bGQgYmUgc2VsZWN0ZWQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgIGlmIChzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgLy8gVE9ETzogVGhpcyBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gRmlyZWZveCB3aXRoIHJlYWRvbmx5LlxuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uc2VsZWN0QWxsQ2hpbGRyZW4odGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3RvdWNoZW5kJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJm5ic3A7Jyk7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkgJiYgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ3RvdWNoJykge1xuICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gT24gYmx1ciB0aGUgbmF0aXZlIHRleHQgaW5wdXQgc2Nyb2xscyB0aGUgdGV4dCB0byB0aGUgc3RhcnQgb2YgdGhlIHRleHQuXG4gICAgICAvLyBXZSBtaW1pY2sgdGhhdCBieSByZXNldHRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi5cbiAgICAgIC8vIFdlIGFsc28gdW5zZXQgYW55IHNlbGVjdGlvbiB0byBhbGlnbiB3aXRoIHRoZSBuYXRpdmUgdGV4dCBpbnB1dC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnYmx1cicsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTXVsdGlMaW5lID0gJ2ZhbHNlJztcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIHJlcGxhY2UgYW55IGNvbnRlbnQgYnkganVzdCB0aGUgdGV4dCBjb250ZW50LlxuICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZvY3VzKG9wdGlvbnMpO1xuICAgICAgLy8gQnkgZGVmYXVsdCwgd2hlbiBjYWxsaW5nIGZvY3VzIG9uIGFuIGlucHV0IGVsZW1lbnQsIHRoZSBjdXJzb3IgaXMgcGxhY2VkXG4gICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCB0ZXh0LiBIb3dldmVyLCB3aXRoIGNvbnRlbnRlZGl0YWJsZSwgdGhlIGN1cnNvclxuICAgICAgLy8gaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcsIHNvIHdlIG1vdmUgaXQgdG8gdGhlIGVuZCwgaWYgdGhhdCBpcyB0aGUgY2FzZS5cbiAgICAgIGlmICh0aGlzLl9jYW5TZWxlY3QoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCh0aGlzLnRleHRDb250ZW50IS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IGNoYW5nZXMgdGhlIHZhbHVlIHByb3BlcnR5IHdoZW4gdGhlIHZhbHVlIGF0dHJpYnV0ZSBpc1xuICAgICAgICogY2hhbmdlZCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgbm8gaW5wdXQgZXZlbnQgaGFzIG9jY3VyZWQgc2luY2UgY3JlYXRpb25cbiAgICAgICAqIG9yIHRoZSBsYXN0IGZvcm0gcmVzZXQuXG4gICAgICAgKi9cbiAgICAgIGlmIChuYW1lICE9PSAndmFsdWUnIHx8ICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKCdpbnRlcmFjdGVkJykpIHtcbiAgICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCB3aGVuZXZlciB0aGUgZm9ybSBpcyBiZWluZyByZXNldC5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2ludGVyYWN0ZWQnKTtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA/PyAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMgXCJyZXN0b3JlXCIsIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICAgKiAgSW4gdGhlIGNhc2Ugb2YgXCJyZXN0b3JlXCIsIHN0YXRlIGlzIGEgc3RyaW5nLCBGaWxlLCBvciBGb3JtRGF0YSBvYmplY3RcbiAgICAgKiAgcHJldmlvdXNseSBzZXQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBzZXRGb3JtVmFsdWUuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAoc3RhdGUgJiYgdHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnZhbHVlID0gc3RhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgLy8gSWYgdGhlIHZhbHVlIHdhcyBhc3NpZ25lZCBiZWZvcmUgZmlyc3RVcGRhdGUsIHdlIGhhdmUgdG9cbiAgICAgIC8vIHdyaXRlIGl0IHRoZSBkb2N1bWVudCB0byBiZSB2aXN1YWxseSBzZWVuXG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiAhdGhpcy5pbm5lckhUTUwubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCAmJlxuICAgICAgICAobmFtZSA9PT0gJ2Rpc2FibGVkJyB8fCBuYW1lID09PSAnZm9ybURpc2FibGVkJyB8fCBuYW1lID09PSAncmVhZE9ubHknKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWlyZXNFbXB0eVBhdGNoKCk6IGJvb2xlYW4ge1xuICAgICAgLy8gSW4gQmxpbmssIGEgY29udGVudGVkaXRhYmxlIGVsZW1lbnQgd2l0aCBlbXB0eSBjb250ZW50IHdpbGwgY3Jhc2hcbiAgICAgIC8vIHVwb24gcmVjZWl2aW5nIGZvY3VzLCB3aGVuIGluIE1vYmlsZSBtb2RlLlxuICAgICAgLy8gVG8gcHJldmVudCB0aGlzLCB3ZSBwYXRjaCB0aGUgZW1wdHkgc3RhdGUgYnkgaW5zZXJ0aW5nIGEgbm9uLWJyZWFraW5nIHNwYWNlLlxuICAgICAgcmV0dXJuIGlzU2VydmVyXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiBpc0JsaW5rICYmIHRoaXMudmFsdWUgPT09ICcnICYmIHdpbmRvdy5tYXRjaE1lZGlhKFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlKS5tYXRjaGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Fzc2lnblZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW5uZXJIVE1MID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Q3Vyc29yQXQocG9zaXRpb246IG51bWJlcik6IHZvaWQge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICByYW5nZS5zZXRTdGFydCh0aGlzLmZpcnN0Q2hpbGQhLCBwb3NpdGlvbik7XG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTtcbiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYW5UZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgLy8gVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHJlbW92ZXMgYWxsIG5ld2xpbmUgY2hhcmFjdGVycyBpZiBwYXNzZWQgdG8gdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyAnJyA6IGAke3ZhbHVlfWAucmVwbGFjZSgvW1xcblxccl0rL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnQoKTogdm9pZCB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgICBwcml2YXRlIF9jbGVhbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hpbGRFbGVtZW50Q291bnQpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQ29udGVudGVkaXRhYmxlKCk6IHZvaWQge1xuICAgICAgaWYgKCFpc1NlcnZlciAmJiB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IHRoaXMucmVhZE9ubHkgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgLy8gVE9ETygyMDI2KTogRmlyZWZveCBzdXBwb3J0cyBwbGFpbnRleHQtb25seSBzaW5jZSB2ZXJzaW9uIDEzNiAoTWFyY2ggMjAyNSkuXG4gICAgICAgIC8vIFVudGlsIHRoaXMgaXMgcGFydCBvZiBvdXIgYmFzZWxpbmUsIHdlIHNob3VsZCBmZWF0dXJlIGNoZWNrIHRvIGVuYWJsZSBpdC5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyAnZmFsc2UnXG4gICAgICAgICAgICA6IHBsYWludGV4dE9ubHlTdXBwb3J0ZWRcbiAgICAgICAgICAgICAgPyAncGxhaW50ZXh0LW9ubHknXG4gICAgICAgICAgICAgIDogJ3RydWUnO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdmFsdWUpO1xuICAgICAgICAvLyBJbiB0aGUgcmVhZG9ubHkgY2FzZSwgd2UgZGlzYWJsZSBjb250ZW50ZWRpdGFibGUsIGJ1dCBpdCBzdGlsbFxuICAgICAgICAvLyBuZWVkcyB0byBiZSBmb2N1c2FibGUuIFdlIGFjaGlldmUgdGhpcyBieSBzZXR0aW5nIHRhYmluZGV4IGluIHRoYXQgY2FzZS5cbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NhblNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhaXNTZXJ2ZXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogdW5rbm93biB7XG4gICAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2NsZWFuQ2hpbGRyZW59Pjwvc2xvdD5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJGb3JtQXNzb2NpYXRlZElucHV0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQXdEQSxNQUFNLDRCQUE0QixNQUFjO0FBQzlDLE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxNQUFNLFNBQVMsY0FBYyxLQUFLO0FBQ3hDLE1BQUksYUFBYSxtQkFBbUIsZ0JBQWdCO0FBSXBELFNBQU8sSUFBSSxvQkFBb0I7QUFDakM7QUFDQSxNQUFNLHlC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
@@ -34,7 +34,7 @@ const panelCommon = css`:host {
34
34
  --sbb-disable-animation-duration,
35
35
  var(--sbb-animation-duration-4x)
36
36
  );
37
- --sbb-selection-panel-cursor: pointer;
37
+ --sbb-selection-panel-cursor: var(--sbb-cursor-pointer);
38
38
  --sbb-selection-panel-suffix-color: var(--sbb-color-3);
39
39
  --sbb-selection-panel-subtext-color: var(--sbb-color-granite);
40
40
  --sbb-selection-panel-subtext-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
@@ -67,7 +67,7 @@ const panelCommon = css`:host {
67
67
  }
68
68
 
69
69
  :host(:is(:disabled, [disabled])) {
70
- --sbb-selection-panel-cursor: default;
70
+ --sbb-selection-panel-cursor: var(--sbb-cursor-default);
71
71
  }
72
72
 
73
73
  .sbb-selection-panel {
@@ -116,7 +116,7 @@ slot[name=subtext] {
116
116
  color: var(--sbb-selection-panel-subtext-color);
117
117
  padding-inline-start: var(--sbb-spacing-fixed-8x);
118
118
  }
119
- :host(:not([data-slot-names~=subtext])) slot[name=subtext] {
119
+ :host(:not(:is(:state(slotted-subtext),[state--slotted-subtext]))) slot[name=subtext] {
120
120
  display: none;
121
121
  }`;
122
122
  export {
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @entrypoint
3
+ */
4
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { css } from "lit";
2
+ const boxSizing = css`*,
3
+ ::before,
4
+ ::after {
5
+ box-sizing: border-box;
6
+ }`;
7
+ export {
8
+ boxSizing as boxSizingStyles
9
+ };
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OyJ9
@@ -27,7 +27,7 @@ const style = css`:host {
27
27
  }
28
28
 
29
29
  :host(:disabled) {
30
- cursor: default;
30
+ cursor: var(--sbb-cursor-default);
31
31
  }
32
32
 
33
33
  :host(:focus) {
@@ -1,6 +1,6 @@
1
1
  import { CSSResultGroup, PropertyDeclaration, PropertyValues, TemplateResult } from 'lit';
2
2
  import { CalendarView } from '../../calendar.js';
3
- import { SbbDateInputElement, SbbDateInputAssociated } from '../../date-input.js';
3
+ import { SbbDateInputAssociated, SbbDateInputElement } from '../../date-input.js';
4
4
  import { SbbPopoverBaseElement } from '../../popover.js';
5
5
  declare const SbbDatepickerElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbUpdateSchedulerMixinType> & typeof SbbPopoverBaseElement;
6
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker/datepicker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,OAAO,EAAE,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAKzD,OAAO,mBAAmB,CAAC;;AAI3B;;;GAGG;AACH,qBAEM,oBAAoB,CAAC,CAAC,GAAG,IAAI,CACjC,SAAQ,yBACR,YAAW,sBAAsB,CAAC,CAAC,CAAC;IAEpC,OAAuB,MAAM,EAAE,cAAc,CAAyC;IACtF,gBAAuB,sBAAsB,QAAQ;IAErD,gDAAgD;IAChD,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC;;;;OAIG;IACH,SAEgB,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE5D,yEAAyE;IACzE,SAA4B,IAAI,EAAE,YAAY,CAAS;IAEvD,OAAO,CAAC,qBAAqB,CAAC,CAAkB;IAChD,OAAO,CAAC,YAAY,CAA4E;IAChG,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAAS;;IAaP,iBAAiB,IAAI,IAAI;IAezB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAkBY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW9E,OAAO,CAAC,aAAa;cAmBF,aAAa,IAAI,cAAc;cAwB/B,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
1
+ {"version":3,"file":"datepicker.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker/datepicker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,OAAO,EAAE,KAAK,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAKzD,OAAO,mBAAmB,CAAC;;AAI3B;;;GAGG;AACH,qBAEM,oBAAoB,CAAC,CAAC,GAAG,IAAI,CACjC,SAAQ,yBACR,YAAW,sBAAsB,CAAC,CAAC,CAAC;IAEpC,OAAuB,MAAM,EAAE,cAAc,CAAyC;IACtF,gBAAuB,sBAAsB,QAAQ;IAErD,gDAAgD;IAChD,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC;;;;OAIG;IACH,SAEgB,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE5D,yEAAyE;IACzE,SAA4B,IAAI,EAAE,YAAY,CAAS;IAEvD,OAAO,CAAC,qBAAqB,CAAC,CAAkB;IAChD,OAAO,CAAC,YAAY,CAA4E;IAChG,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAAS;;IAaP,iBAAiB,IAAI,IAAI;IAezB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAkBY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW9E,OAAO,CAAC,aAAa;cAmBF,aAAa,IAAI,cAAc;cAwB/B,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
@@ -183,4 +183,4 @@ let SbbDatepickerElement = (() => {
183
183
  export {
184
184
  SbbDatepickerElement
185
185
  };
186
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IENhbGVuZGFyVmlldyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLmpzJztcbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IHR5cGUgRGF0ZUFkYXB0ZXIsIGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZXRpbWUuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBpZFJlZmVyZW5jZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbyB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkRhdGVJbnB1dEVsZW1lbnQsIHR5cGUgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZCB9IGZyb20gJy4uLy4uL2RhdGUtaW5wdXQuanMnO1xuaW1wb3J0IHsgU2JiUG9wb3ZlckJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vcG9wb3Zlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci10b2dnbGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kYXRlcGlja2VyLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vY2FsZW5kYXIuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBBIGRhdGVwaWNrZXIgY29tcG9uZW50IHRoYXQgYWxsb3dzIHVzZXJzIHRvIHNlbGVjdCBhIGRhdGUgZnJvbSBhIGNhbGVuZGFyIHZpZXcuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFQ+fSBkYXRlc2VsZWN0ZWQgLSBFdmVudCBlbWl0dGVkIG9uIGRhdGUgc2VsZWN0aW9uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZXBpY2tlcicpXG5jbGFzcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUID0gRGF0ZT5cbiAgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJQb3BvdmVyQmFzZUVsZW1lbnQpXG4gIGltcGxlbWVudHMgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZDxUPlxue1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbU2JiUG9wb3ZlckJhc2VFbGVtZW50LnN0eWxlcywgc3R5bGVdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNiYkRhdGVJbnB1dEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdHdvIG1vbnRocyBhcmUgZGlzcGxheWVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igd2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIHNiYi1kYXRlLWlucHV0IGluc3RhbmNlIG9yIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciBpbnB1dDogU2JiRGF0ZUlucHV0RWxlbWVudDxUPiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIHByaXZhdGUgX2lucHV0QWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9yZWFkeSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoU2JiUG9wb3ZlckJhc2VFbGVtZW50LmV2ZW50cy5iZWZvcmVvcGVuLCAoKSA9PiB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jYWxlbmRhcicpPy5yZXNldFBvc2l0aW9uPy4oKTtcbiAgICB9KTtcbiAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaWQgfHw9IGBzYmItZGF0ZXBpY2tlci0keysrbmV4dElkfWA7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIFNiYkRhdGVJbnB1dEVsZW1lbnQucmVzb2x2ZUFzc29jaWF0aW9uKHRoaXMpO1xuICAgICAgY29uc3QgdG9nZ2xlID1cbiAgICAgICAgZm9ybUZpZWxkLnF1ZXJ5U2VsZWN0b3I8U2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ8VD4+KCdzYmItZGF0ZXBpY2tlci10b2dnbGUnKTtcbiAgICAgIGlmICh0b2dnbGUgJiYgIXRvZ2dsZS5oYXNBdHRyaWJ1dGUoJ2RhdGVwaWNrZXInKSkge1xuICAgICAgICB0b2dnbGUuZGF0ZXBpY2tlciA/Pz0gdGhpcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAobmFtZSA9PT0gJ2lucHV0JyAmJiB0aGlzLmlucHV0ICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICBjb25zdCB7IHNpZ25hbCB9ID0gKHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpKTtcbiAgICAgICAgdGhpcy5pbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAnybVjaGFuZ2UnLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXR1cygpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBzaWduYWwgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBXZSB3YW50IHRvIGRlbGF5IHRoZSByZW5kZXJpbmcgb2YgdGhlIGNhbGVuZGFyIHRvIGF2b2lkIGEgc2xvdyBpbml0aWFsIHJlbmRlci5cbiAgICAgIC8vIFRoZSBzbG93IHJlbmRlciBjYW4gYmUgYSBwcm9ibGVtIGlmIGEgbGFyZ2UgYW1vdW50IG9mIGRhdGVwaWNrZXJzIGFyZSByZW5kZXJlZCBhdCBvbmNlLlxuICAgICAgdGhpcy5fcmVhZHkgPSB0cnVlO1xuICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTdGF0dXMoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc3RhdHVzLWNvbnRhaW5lcicpO1xuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5pbnB1dD8udmFsdWVBc0RhdGUpXG4gICAgICA/IGAke2kxOG5EYXRlQ2hhbmdlZFRvW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdChcbiAgICAgICAgICB0aGlzLmlucHV0IS52YWx1ZUFzRGF0ZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3ZWVrZGF5U3R5bGU6ICdsb25nJyxcbiAgICAgICAgICB9LFxuICAgICAgICApfWBcbiAgICAgIDogJyc7XG4gICAgaWYgKHN0YXR1cy50ZXh0Q29udGVudCAhPT0gdGV4dCkge1xuICAgICAgc3RhdHVzLnRleHRDb250ZW50ID0gdGV4dDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyQ29udGVudCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cCBpZD1cInN0YXR1cy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCI+PC9wPlxuICAgICAgPHNiYi1jYWxlbmRhclxuICAgICAgICAudmlldz0ke3RoaXMudmlld31cbiAgICAgICAgLm1pbj0ke3RoaXMuaW5wdXQ/Lm1pbiA/PyBudWxsfVxuICAgICAgICAubWF4PSR7dGhpcy5pbnB1dD8ubWF4ID8/IG51bGx9XG4gICAgICAgIC5kYXRlRmlsdGVyPSR7dGhpcy5pbnB1dD8uZGF0ZUZpbHRlciA/PyBudWxsfVxuICAgICAgICAuc2VsZWN0ZWQ9JHt0aGlzLmlucHV0Py52YWx1ZUFzRGF0ZSA/PyBudWxsfVxuICAgICAgICA/d2lkZT0ke3RoaXMud2lkZX1cbiAgICAgICAgQGRhdGVzZWxlY3RlZD0keyhkOiBDdXN0b21FdmVudDxUPikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlQXNEYXRlID0gZC5kZXRhaWw7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIC8vIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAgICAgICAgIC8vIGZyYW1ld29ya3MgdGhhdCByZWx5IG9uIHRoYXQgZXZlbnQgdG8gdXBkYXRlIGZvcm0gc3RhdHVzLlxuICAgICAgICAgICAgdGhpcy5pbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgID48L3NiYi1jYWxlbmRhcj5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGlzU2VydmVyIHx8IHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQgfHwgIXRoaXMuX3JlYWR5ID8gaHRtbGAke25vdGhpbmd9YCA6IHN1cGVyLnJlbmRlcigpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlcic6IFNiYkRhdGVwaWNrZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLElBQUksU0FBUztJQVFQLHdCQUFvQixNQUFBOzswQkFEekIs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
186
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IENhbGVuZGFyVmlldyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLmpzJztcbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IHR5cGUgRGF0ZUFkYXB0ZXIsIGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZXRpbWUuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBpZFJlZmVyZW5jZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbyB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IHR5cGUgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZCwgU2JiRGF0ZUlucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2RhdGUtaW5wdXQuanMnO1xuaW1wb3J0IHsgU2JiUG9wb3ZlckJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vcG9wb3Zlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci10b2dnbGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kYXRlcGlja2VyLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vY2FsZW5kYXIuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBBIGRhdGVwaWNrZXIgY29tcG9uZW50IHRoYXQgYWxsb3dzIHVzZXJzIHRvIHNlbGVjdCBhIGRhdGUgZnJvbSBhIGNhbGVuZGFyIHZpZXcuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFQ+fSBkYXRlc2VsZWN0ZWQgLSBFdmVudCBlbWl0dGVkIG9uIGRhdGUgc2VsZWN0aW9uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZXBpY2tlcicpXG5jbGFzcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUID0gRGF0ZT5cbiAgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJQb3BvdmVyQmFzZUVsZW1lbnQpXG4gIGltcGxlbWVudHMgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZDxUPlxue1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbU2JiUG9wb3ZlckJhc2VFbGVtZW50LnN0eWxlcywgc3R5bGVdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNiYkRhdGVJbnB1dEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdHdvIG1vbnRocyBhcmUgZGlzcGxheWVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igd2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIHNiYi1kYXRlLWlucHV0IGluc3RhbmNlIG9yIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciBpbnB1dDogU2JiRGF0ZUlucHV0RWxlbWVudDxUPiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIHByaXZhdGUgX2lucHV0QWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9yZWFkeSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoU2JiUG9wb3ZlckJhc2VFbGVtZW50LmV2ZW50cy5iZWZvcmVvcGVuLCAoKSA9PiB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jYWxlbmRhcicpPy5yZXNldFBvc2l0aW9uPy4oKTtcbiAgICB9KTtcbiAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaWQgfHw9IGBzYmItZGF0ZXBpY2tlci0keysrbmV4dElkfWA7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIFNiYkRhdGVJbnB1dEVsZW1lbnQucmVzb2x2ZUFzc29jaWF0aW9uKHRoaXMpO1xuICAgICAgY29uc3QgdG9nZ2xlID1cbiAgICAgICAgZm9ybUZpZWxkLnF1ZXJ5U2VsZWN0b3I8U2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ8VD4+KCdzYmItZGF0ZXBpY2tlci10b2dnbGUnKTtcbiAgICAgIGlmICh0b2dnbGUgJiYgIXRvZ2dsZS5oYXNBdHRyaWJ1dGUoJ2RhdGVwaWNrZXInKSkge1xuICAgICAgICB0b2dnbGUuZGF0ZXBpY2tlciA/Pz0gdGhpcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAobmFtZSA9PT0gJ2lucHV0JyAmJiB0aGlzLmlucHV0ICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICBjb25zdCB7IHNpZ25hbCB9ID0gKHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpKTtcbiAgICAgICAgdGhpcy5pbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAnybVjaGFuZ2UnLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXR1cygpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBzaWduYWwgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBXZSB3YW50IHRvIGRlbGF5IHRoZSByZW5kZXJpbmcgb2YgdGhlIGNhbGVuZGFyIHRvIGF2b2lkIGEgc2xvdyBpbml0aWFsIHJlbmRlci5cbiAgICAgIC8vIFRoZSBzbG93IHJlbmRlciBjYW4gYmUgYSBwcm9ibGVtIGlmIGEgbGFyZ2UgYW1vdW50IG9mIGRhdGVwaWNrZXJzIGFyZSByZW5kZXJlZCBhdCBvbmNlLlxuICAgICAgdGhpcy5fcmVhZHkgPSB0cnVlO1xuICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTdGF0dXMoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc3RhdHVzLWNvbnRhaW5lcicpO1xuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5pbnB1dD8udmFsdWVBc0RhdGUpXG4gICAgICA/IGAke2kxOG5EYXRlQ2hhbmdlZFRvW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdChcbiAgICAgICAgICB0aGlzLmlucHV0IS52YWx1ZUFzRGF0ZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3ZWVrZGF5U3R5bGU6ICdsb25nJyxcbiAgICAgICAgICB9LFxuICAgICAgICApfWBcbiAgICAgIDogJyc7XG4gICAgaWYgKHN0YXR1cy50ZXh0Q29udGVudCAhPT0gdGV4dCkge1xuICAgICAgc3RhdHVzLnRleHRDb250ZW50ID0gdGV4dDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyQ29udGVudCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cCBpZD1cInN0YXR1cy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCI+PC9wPlxuICAgICAgPHNiYi1jYWxlbmRhclxuICAgICAgICAudmlldz0ke3RoaXMudmlld31cbiAgICAgICAgLm1pbj0ke3RoaXMuaW5wdXQ/Lm1pbiA/PyBudWxsfVxuICAgICAgICAubWF4PSR7dGhpcy5pbnB1dD8ubWF4ID8/IG51bGx9XG4gICAgICAgIC5kYXRlRmlsdGVyPSR7dGhpcy5pbnB1dD8uZGF0ZUZpbHRlciA/PyBudWxsfVxuICAgICAgICAuc2VsZWN0ZWQ9JHt0aGlzLmlucHV0Py52YWx1ZUFzRGF0ZSA/PyBudWxsfVxuICAgICAgICA/d2lkZT0ke3RoaXMud2lkZX1cbiAgICAgICAgQGRhdGVzZWxlY3RlZD0keyhkOiBDdXN0b21FdmVudDxUPikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlQXNEYXRlID0gZC5kZXRhaWw7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIC8vIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAgICAgICAgIC8vIGZyYW1ld29ya3MgdGhhdCByZWx5IG9uIHRoYXQgZXZlbnQgdG8gdXBkYXRlIGZvcm0gc3RhdHVzLlxuICAgICAgICAgICAgdGhpcy5pbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgID48L3NiYi1jYWxlbmRhcj5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGlzU2VydmVyIHx8IHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQgfHwgIXRoaXMuX3JlYWR5ID8gaHRtbGAke25vdGhpbmd9YCA6IHN1cGVyLnJlbmRlcigpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlcic6IFNiYkRhdGVwaWNrZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLElBQUksU0FBUztJQVFQLHdCQUFvQixNQUFBOzswQkFEekIs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
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker-next-day.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker-next-day/datepicker-next-day.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAEM,2BAA2B,CAAC,CAAC,GAAG,IAAI,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IACxE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAA+B;IACzD,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAe;IACnE,SAAS,CAAC,wBAAwB,kDAAqB;IAEvD,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAmB9C,OAAO,CAAC,eAAe;CAGxB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,yBAAyB,EAAE,2BAA2B,CAAC;KACxD;CACF"}
1
+ {"version":3,"file":"datepicker-next-day.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker-next-day/datepicker-next-day.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAEM,2BAA2B,CAAC,CAAC,GAAG,IAAI,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IACxE,OAAuB,MAAM,EAAE,cAAc,CAA6C;IAE1F,SAAS,CAAC,QAAQ,EAAE,MAAM,CAA+B;IACzD,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAe;IACnE,SAAS,CAAC,wBAAwB,kDAAqB;IAEvD,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAmB9C,OAAO,CAAC,eAAe;CAGxB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,yBAAyB,EAAE,2BAA2B,CAAC;KACxD;CACF"}