@sbb-esta/lyne-elements 1.16.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/accordion/accordion.d.ts +4 -1
  2. package/accordion/accordion.d.ts.map +1 -1
  3. package/accordion.js +31 -22
  4. package/action-group/action-group.d.ts +6 -4
  5. package/action-group/action-group.d.ts.map +1 -1
  6. package/action-group.js +20 -17
  7. package/alert/alert/alert.d.ts +7 -23
  8. package/alert/alert/alert.d.ts.map +1 -1
  9. package/alert/alert-group/alert-group.d.ts +0 -4
  10. package/alert/alert-group/alert-group.d.ts.map +1 -1
  11. package/alert/alert-group.js +46 -47
  12. package/alert/alert.js +74 -132
  13. package/animation.css +4 -8
  14. package/autocomplete/autocomplete-base-element.d.ts +7 -6
  15. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  16. package/autocomplete/autocomplete.d.ts +0 -1
  17. package/autocomplete/autocomplete.d.ts.map +1 -1
  18. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +0 -1
  19. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  20. package/autocomplete-grid/autocomplete-grid-button.js +11 -11
  21. package/autocomplete-grid/autocomplete-grid.js +0 -3
  22. package/autocomplete.js +68 -67
  23. package/button/accent-button/accent-button.d.ts +19 -0
  24. package/button/accent-button/accent-button.d.ts.map +1 -0
  25. package/button/accent-button-link/accent-button-link.d.ts +19 -0
  26. package/button/accent-button-link/accent-button-link.d.ts.map +1 -0
  27. package/button/accent-button-link.d.ts +2 -0
  28. package/button/accent-button-link.d.ts.map +1 -0
  29. package/button/accent-button-link.js +17 -0
  30. package/button/accent-button-static/accent-button-static.d.ts +19 -0
  31. package/button/accent-button-static/accent-button-static.d.ts.map +1 -0
  32. package/button/accent-button-static.d.ts +2 -0
  33. package/button/accent-button-static.d.ts.map +1 -0
  34. package/button/accent-button-static.js +17 -0
  35. package/button/accent-button.d.ts +2 -0
  36. package/button/accent-button.d.ts.map +1 -0
  37. package/button/accent-button.js +17 -0
  38. package/button/common/button-common.d.ts.map +1 -1
  39. package/button/common.d.ts.map +1 -1
  40. package/button/common.js +20 -16
  41. package/button/mini-button/mini-button.d.ts +4 -3
  42. package/button/mini-button/mini-button.d.ts.map +1 -1
  43. package/button/mini-button-group/mini-button-group.d.ts +4 -1
  44. package/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  45. package/button/mini-button-group.js +12 -8
  46. package/button/mini-button.d.ts +0 -1
  47. package/button/mini-button.d.ts.map +1 -1
  48. package/button/mini-button.js +10 -20
  49. package/button.d.ts +3 -3
  50. package/button.d.ts.map +1 -1
  51. package/button.js +3 -3
  52. package/calendar.js +25 -25
  53. package/card/card/card.d.ts +4 -1
  54. package/card/card/card.d.ts.map +1 -1
  55. package/card/card.js +10 -6
  56. package/checkbox/checkbox/checkbox.d.ts +4 -6
  57. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  58. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -1
  59. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  60. package/checkbox/checkbox-group.js +14 -10
  61. package/checkbox/checkbox-panel/checkbox-panel.d.ts +4 -4
  62. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  63. package/checkbox/checkbox-panel.js +21 -18
  64. package/checkbox/checkbox.js +28 -26
  65. package/{chip/chip.d.ts → chip-label/chip-label.d.ts} +4 -4
  66. package/chip-label/chip-label.d.ts.map +1 -0
  67. package/chip-label.d.ts +2 -0
  68. package/chip-label.d.ts.map +1 -0
  69. package/chip-label.js +54 -0
  70. package/clock.js +1 -1
  71. package/container/container.js +21 -21
  72. package/container/sticky-bar/sticky-bar.d.ts +1 -0
  73. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  74. package/container/sticky-bar.js +20 -12
  75. package/core/base-elements/button-base-element.d.ts +27 -18
  76. package/core/base-elements/button-base-element.d.ts.map +1 -1
  77. package/core/base-elements/open-close-base-element.d.ts.map +1 -1
  78. package/core/base-elements.js +135 -138
  79. package/core/datetime/date-adapter.d.ts +2 -1
  80. package/core/datetime/date-adapter.d.ts.map +1 -1
  81. package/core/datetime/native-date-adapter.d.ts +1 -1
  82. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  83. package/core/datetime.js +29 -28
  84. package/core/dom/animation.d.ts +2 -0
  85. package/core/dom/animation.d.ts.map +1 -0
  86. package/core/dom/lean-context.d.ts +5 -0
  87. package/core/dom/lean-context.d.ts.map +1 -0
  88. package/core/dom.d.ts +2 -2
  89. package/core/dom.d.ts.map +1 -1
  90. package/core/dom.js +50 -55
  91. package/core/eventing/form-element-handlers.d.ts +0 -7
  92. package/core/eventing/form-element-handlers.d.ts.map +1 -1
  93. package/core/eventing.d.ts +0 -1
  94. package/core/eventing.d.ts.map +1 -1
  95. package/core/eventing.js +28 -49
  96. package/core/i18n/i18n.d.ts +4 -2
  97. package/core/i18n/i18n.d.ts.map +1 -1
  98. package/core/i18n.js +147 -140
  99. package/core/mixins/disabled-mixin.d.ts +2 -7
  100. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  101. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  102. package/core/mixins/form-associated-radio-button-mixin.d.ts +35 -0
  103. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -0
  104. package/core/mixins.d.ts +1 -0
  105. package/core/mixins.d.ts.map +1 -1
  106. package/core/mixins.js +347 -220
  107. package/core/styles/_index.scss +1 -0
  108. package/core/styles/core.scss +150 -0
  109. package/core/styles/image.scss +66 -0
  110. package/core/styles/mixins/animation.scss +2 -4
  111. package/core/styles/mixins/buttons.scss +7 -4
  112. package/core/styles/mixins/card.scss +1 -1
  113. package/core/styles/mixins/chip.scss +35 -35
  114. package/core/styles/mixins/image.scss +34 -0
  115. package/core/styles/mixins/overlay.scss +1 -1
  116. package/core/styles/mixins/panel.scss +1 -1
  117. package/core/styles/standard-theme.scss +1 -0
  118. package/core/styles/table.scss +4 -0
  119. package/core/testing/event-spy.d.ts +2 -1
  120. package/core/testing/event-spy.d.ts.map +1 -1
  121. package/core/testing.d.ts +0 -1
  122. package/core/testing.d.ts.map +1 -1
  123. package/core/testing.js +48 -57
  124. package/core.css +113 -0
  125. package/custom-elements.json +25946 -21671
  126. package/datepicker/common/datepicker-button.d.ts +3 -5
  127. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  128. package/datepicker/common.js +30 -29
  129. package/datepicker/datepicker/datepicker.d.ts +25 -72
  130. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  131. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -3
  132. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  133. package/datepicker/datepicker-next-day.js +10 -12
  134. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -3
  135. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  136. package/datepicker/datepicker-previous-day.js +11 -13
  137. package/datepicker/datepicker.js +129 -157
  138. package/development/accordion/accordion.d.ts +4 -1
  139. package/development/accordion/accordion.d.ts.map +1 -1
  140. package/development/accordion.js +16 -5
  141. package/development/action-group/action-group.d.ts +6 -4
  142. package/development/action-group/action-group.d.ts.map +1 -1
  143. package/development/action-group.js +10 -7
  144. package/development/alert/alert/alert.d.ts +7 -23
  145. package/development/alert/alert/alert.d.ts.map +1 -1
  146. package/development/alert/alert-group/alert-group.d.ts +0 -4
  147. package/development/alert/alert-group/alert-group.d.ts.map +1 -1
  148. package/development/alert/alert-group.js +10 -12
  149. package/development/alert/alert.js +38 -122
  150. package/development/autocomplete/autocomplete-base-element.d.ts +7 -6
  151. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  152. package/development/autocomplete/autocomplete.d.ts +0 -1
  153. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  154. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +0 -1
  155. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  156. package/development/autocomplete-grid/autocomplete-grid-button.js +6 -6
  157. package/development/autocomplete-grid/autocomplete-grid.js +1 -7
  158. package/development/autocomplete.js +23 -19
  159. package/development/button/accent-button/accent-button.d.ts +19 -0
  160. package/development/button/accent-button/accent-button.d.ts.map +1 -0
  161. package/development/button/accent-button-link/accent-button-link.d.ts +19 -0
  162. package/development/button/accent-button-link/accent-button-link.d.ts.map +1 -0
  163. package/development/button/accent-button-link.d.ts +2 -0
  164. package/development/button/accent-button-link.d.ts.map +1 -0
  165. package/development/button/accent-button-link.js +25 -0
  166. package/development/button/accent-button-static/accent-button-static.d.ts +19 -0
  167. package/development/button/accent-button-static/accent-button-static.d.ts.map +1 -0
  168. package/development/button/accent-button-static.d.ts +2 -0
  169. package/development/button/accent-button-static.d.ts.map +1 -0
  170. package/development/button/accent-button-static.js +25 -0
  171. package/development/button/accent-button.d.ts +2 -0
  172. package/development/button/accent-button.d.ts.map +1 -0
  173. package/development/button/accent-button.js +25 -0
  174. package/development/button/common/button-common.d.ts.map +1 -1
  175. package/development/button/common.d.ts.map +1 -1
  176. package/development/button/common.js +20 -16
  177. package/development/button/mini-button/mini-button.d.ts +4 -3
  178. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  179. package/development/button/mini-button-group/mini-button-group.d.ts +4 -1
  180. package/development/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  181. package/development/button/mini-button-group.js +7 -3
  182. package/development/button/mini-button.d.ts +0 -1
  183. package/development/button/mini-button.d.ts.map +1 -1
  184. package/development/button/mini-button.js +14 -32
  185. package/development/button.d.ts +3 -3
  186. package/development/button.d.ts.map +1 -1
  187. package/development/button.js +3 -3
  188. package/development/calendar.js +1 -1
  189. package/development/card/card/card.d.ts +4 -1
  190. package/development/card/card/card.d.ts.map +1 -1
  191. package/development/card/card.js +8 -4
  192. package/development/checkbox/checkbox/checkbox.d.ts +4 -6
  193. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  194. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -1
  195. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  196. package/development/checkbox/checkbox-group.js +7 -3
  197. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +4 -4
  198. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  199. package/development/checkbox/checkbox-panel.js +7 -4
  200. package/development/checkbox/checkbox.js +8 -6
  201. package/development/{chip/chip.d.ts → chip-label/chip-label.d.ts} +4 -4
  202. package/development/chip-label/chip-label.d.ts.map +1 -0
  203. package/development/chip-label.d.ts +2 -0
  204. package/development/chip-label.d.ts.map +1 -0
  205. package/development/{chip.js → chip-label.js} +26 -26
  206. package/development/clock.js +1 -1
  207. package/development/container/container.js +8 -12
  208. package/development/container/sticky-bar/sticky-bar.d.ts +1 -0
  209. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  210. package/development/container/sticky-bar.js +18 -10
  211. package/development/core/base-elements/button-base-element.d.ts +27 -18
  212. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  213. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  214. package/development/core/base-elements.js +66 -74
  215. package/development/core/datetime/date-adapter.d.ts +2 -1
  216. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  217. package/development/core/datetime/native-date-adapter.d.ts +1 -1
  218. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  219. package/development/core/datetime.js +4 -3
  220. package/development/core/dom/animation.d.ts +2 -0
  221. package/development/core/dom/animation.d.ts.map +1 -0
  222. package/development/core/dom/lean-context.d.ts +5 -0
  223. package/development/core/dom/lean-context.d.ts.map +1 -0
  224. package/development/core/dom.d.ts +2 -2
  225. package/development/core/dom.d.ts.map +1 -1
  226. package/development/core/dom.js +13 -21
  227. package/development/core/eventing/form-element-handlers.d.ts +0 -7
  228. package/development/core/eventing/form-element-handlers.d.ts.map +1 -1
  229. package/development/core/eventing.d.ts +0 -1
  230. package/development/core/eventing.d.ts.map +1 -1
  231. package/development/core/eventing.js +1 -25
  232. package/development/core/i18n/i18n.d.ts +4 -2
  233. package/development/core/i18n/i18n.d.ts.map +1 -1
  234. package/development/core/i18n.js +27 -23
  235. package/development/core/mixins/disabled-mixin.d.ts +2 -7
  236. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  237. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  238. package/development/core/mixins/form-associated-radio-button-mixin.d.ts +35 -0
  239. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -0
  240. package/development/core/mixins.d.ts +1 -0
  241. package/development/core/mixins.d.ts.map +1 -1
  242. package/development/core/mixins.js +221 -30
  243. package/development/core/testing/event-spy.d.ts +2 -1
  244. package/development/core/testing/event-spy.d.ts.map +1 -1
  245. package/development/core/testing.d.ts +0 -1
  246. package/development/core/testing.d.ts.map +1 -1
  247. package/development/core/testing.js +4 -15
  248. package/development/datepicker/common/datepicker-button.d.ts +3 -5
  249. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  250. package/development/datepicker/common.js +13 -12
  251. package/development/datepicker/datepicker/datepicker.d.ts +25 -72
  252. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  253. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -3
  254. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  255. package/development/datepicker/datepicker-next-day.js +9 -15
  256. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -3
  257. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  258. package/development/datepicker/datepicker-previous-day.js +9 -15
  259. package/development/datepicker/datepicker.js +74 -115
  260. package/development/dialog/dialog/dialog.d.ts +3 -0
  261. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  262. package/development/dialog/dialog-title.js +2 -1
  263. package/development/dialog/dialog.js +46 -39
  264. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +7 -1
  265. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  266. package/development/expansion-panel/expansion-panel-header.js +3 -3
  267. package/development/expansion-panel/expansion-panel.js +32 -17
  268. package/development/file-selector/common/file-selector-common.d.ts +23 -0
  269. package/development/file-selector/common/file-selector-common.d.ts.map +1 -0
  270. package/development/file-selector/common.d.ts +2 -0
  271. package/development/file-selector/common.d.ts.map +1 -0
  272. package/development/file-selector/common.js +382 -0
  273. package/development/file-selector/file-selector/file-selector.d.ts +24 -0
  274. package/development/file-selector/file-selector/file-selector.d.ts.map +1 -0
  275. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts +33 -0
  276. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts.map +1 -0
  277. package/development/file-selector/file-selector-dropzone.d.ts +2 -0
  278. package/development/file-selector/file-selector-dropzone.d.ts.map +1 -0
  279. package/development/file-selector/file-selector-dropzone.js +181 -0
  280. package/development/file-selector/file-selector.d.ts +1 -87
  281. package/development/file-selector/file-selector.d.ts.map +1 -1
  282. package/development/file-selector/file-selector.js +52 -0
  283. package/development/file-selector.d.ts +2 -0
  284. package/development/file-selector.d.ts.map +1 -1
  285. package/development/file-selector.js +4 -552
  286. package/development/flip-card/flip-card-details.js +1 -1
  287. package/development/flip-card/flip-card-summary.js +3 -11
  288. package/development/flip-card/flip-card.js +6 -6
  289. package/development/form-field/form-field/form-field.d.ts +5 -10
  290. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  291. package/development/form-field/form-field-clear.js +6 -6
  292. package/development/form-field/form-field.js +32 -40
  293. package/development/header/common.js +2 -2
  294. package/development/header/header/header.d.ts +5 -3
  295. package/development/header/header/header.d.ts.map +1 -1
  296. package/development/header/header.js +15 -20
  297. package/development/image/image.d.ts +0 -30
  298. package/development/image/image.d.ts.map +1 -1
  299. package/development/image.js +62 -273
  300. package/development/journey-header/journey-header.d.ts +4 -1
  301. package/development/journey-header/journey-header.d.ts.map +1 -1
  302. package/development/journey-header.js +7 -3
  303. package/development/lead-container.js +2 -10
  304. package/development/link/common/link-common.d.ts.map +1 -1
  305. package/development/link/common.js +9 -8
  306. package/development/link-list/common/link-list-base.d.ts +1 -0
  307. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  308. package/development/link-list/common.js +4 -2
  309. package/development/link-list/link-list-anchor.js +4 -4
  310. package/development/loading-indicator/loading-indicator.d.ts +1 -3
  311. package/development/loading-indicator/loading-indicator.d.ts.map +1 -1
  312. package/development/loading-indicator-circle/loading-indicator-circle.d.ts +16 -0
  313. package/development/loading-indicator-circle/loading-indicator-circle.d.ts.map +1 -0
  314. package/development/loading-indicator-circle.d.ts +2 -0
  315. package/development/loading-indicator-circle.d.ts.map +1 -0
  316. package/development/loading-indicator-circle.js +146 -0
  317. package/development/loading-indicator.js +81 -182
  318. package/development/map-container/map-container.d.ts.map +1 -1
  319. package/development/map-container.js +5 -5
  320. package/development/menu/common.js +5 -5
  321. package/development/menu/menu/menu.d.ts +3 -0
  322. package/development/menu/menu/menu.d.ts.map +1 -1
  323. package/development/menu/menu.js +39 -24
  324. package/development/message.js +4 -2
  325. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  326. package/development/navigation/common.js +9 -5
  327. package/development/navigation/navigation/navigation.d.ts +3 -0
  328. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  329. package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  330. package/development/navigation/navigation-list.js +3 -2
  331. package/development/navigation/navigation-marker/navigation-marker.d.ts +2 -1
  332. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  333. package/development/navigation/navigation-marker.js +6 -4
  334. package/development/navigation/navigation-section/navigation-section.d.ts +3 -0
  335. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  336. package/development/navigation/navigation-section.js +38 -22
  337. package/development/navigation/navigation.js +42 -27
  338. package/development/notification/notification.d.ts +6 -2
  339. package/development/notification/notification.d.ts.map +1 -1
  340. package/development/notification.js +27 -21
  341. package/development/option/option/option-base-element.d.ts +0 -7
  342. package/development/option/option/option-base-element.d.ts.map +1 -1
  343. package/development/option/option.js +5 -26
  344. package/development/overlay/overlay-base-element.d.ts +2 -0
  345. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  346. package/development/overlay/overlay.d.ts +3 -0
  347. package/development/overlay/overlay.d.ts.map +1 -1
  348. package/development/overlay.js +43 -31
  349. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  350. package/development/paginator/common.js +7 -3
  351. package/development/paginator/paginator.js +1 -1
  352. package/development/popover/popover/popover.d.ts +3 -0
  353. package/development/popover/popover/popover.d.ts.map +1 -1
  354. package/development/popover/popover-trigger.js +9 -9
  355. package/development/popover/popover.js +41 -26
  356. package/development/radio-button/common/radio-button-common.d.ts +3 -10
  357. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  358. package/development/radio-button/common.js +44 -121
  359. package/development/radio-button/radio-button/radio-button.d.ts +9 -1
  360. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  361. package/development/radio-button/radio-button-group/radio-button-group.d.ts +19 -26
  362. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  363. package/development/radio-button/radio-button-group.js +87 -123
  364. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +19 -1
  365. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  366. package/development/radio-button/radio-button-panel.js +35 -15
  367. package/development/radio-button/radio-button.js +11 -15
  368. package/development/select/select.d.ts +3 -9
  369. package/development/select/select.d.ts.map +1 -1
  370. package/development/select.js +27 -25
  371. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +4 -1
  372. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  373. package/development/selection-expansion-panel.js +28 -16
  374. package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
  375. package/development/skiplink-list.js +3 -2
  376. package/development/slider/slider.d.ts +0 -1
  377. package/development/slider/slider.d.ts.map +1 -1
  378. package/development/slider.js +2 -2
  379. package/development/stepper/step-label/step-label.d.ts +0 -2
  380. package/development/stepper/step-label/step-label.d.ts.map +1 -1
  381. package/development/stepper/step-label.js +10 -11
  382. package/development/stepper/step.js +1 -1
  383. package/development/stepper/stepper/stepper.d.ts +4 -1
  384. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  385. package/development/stepper/stepper.js +9 -7
  386. package/development/tabs/tab-group/tab-group.d.ts +4 -1
  387. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  388. package/development/tabs/tab-group.js +8 -4
  389. package/development/tabs/tab-label.js +1 -1
  390. package/development/tag/tag/tag.d.ts +4 -1
  391. package/development/tag/tag/tag.d.ts.map +1 -1
  392. package/development/tag/tag-group/tag-group.d.ts +5 -2
  393. package/development/tag/tag-group/tag-group.d.ts.map +1 -1
  394. package/development/tag/tag-group.js +7 -4
  395. package/development/tag/tag.js +16 -12
  396. package/development/teaser/teaser.d.ts +2 -2
  397. package/development/teaser/teaser.d.ts.map +1 -1
  398. package/development/teaser-hero/teaser-hero.d.ts +2 -6
  399. package/development/teaser-hero/teaser-hero.d.ts.map +1 -1
  400. package/development/teaser-hero.js +9 -60
  401. package/development/teaser-product/common.js +7 -14
  402. package/development/teaser-product/teaser-product.js +1 -21
  403. package/development/teaser.js +14 -32
  404. package/development/time-input/time-input.d.ts +3 -6
  405. package/development/time-input/time-input.d.ts.map +1 -1
  406. package/development/time-input.js +33 -27
  407. package/development/toast/toast.d.ts +3 -0
  408. package/development/toast/toast.d.ts.map +1 -1
  409. package/development/toast.js +27 -13
  410. package/development/toggle/toggle/toggle.d.ts +4 -8
  411. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  412. package/development/toggle/toggle.js +9 -12
  413. package/development/toggle-check/toggle-check.d.ts +4 -6
  414. package/development/toggle-check/toggle-check.d.ts.map +1 -1
  415. package/development/toggle-check.js +9 -7
  416. package/development/train/train/train.d.ts.map +1 -1
  417. package/development/train/train-blocked-passage.js +2 -2
  418. package/development/train/train-formation/train-formation.d.ts +3 -11
  419. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  420. package/development/train/train-formation.js +43 -74
  421. package/development/train/train-wagon/train-wagon.d.ts +11 -8
  422. package/development/train/train-wagon/train-wagon.d.ts.map +1 -1
  423. package/development/train/train-wagon.js +149 -124
  424. package/development/train/train.js +35 -112
  425. package/development/visual-checkbox/visual-checkbox.d.ts +4 -1
  426. package/development/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  427. package/development/visual-checkbox.js +7 -3
  428. package/dialog/dialog/dialog.d.ts +3 -0
  429. package/dialog/dialog/dialog.d.ts.map +1 -1
  430. package/dialog/dialog-title.js +9 -9
  431. package/dialog/dialog.js +56 -51
  432. package/expansion-panel/expansion-panel/expansion-panel.d.ts +7 -1
  433. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  434. package/expansion-panel/expansion-panel-header.js +1 -1
  435. package/expansion-panel/expansion-panel.js +41 -28
  436. package/file-selector/common/file-selector-common.d.ts +23 -0
  437. package/file-selector/common/file-selector-common.d.ts.map +1 -0
  438. package/file-selector/common.d.ts +2 -0
  439. package/file-selector/common.d.ts.map +1 -0
  440. package/file-selector/common.js +210 -0
  441. package/file-selector/file-selector/file-selector.d.ts +24 -0
  442. package/file-selector/file-selector/file-selector.d.ts.map +1 -0
  443. package/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts +33 -0
  444. package/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts.map +1 -0
  445. package/file-selector/file-selector-dropzone.d.ts +2 -0
  446. package/file-selector/file-selector-dropzone.d.ts.map +1 -0
  447. package/file-selector/file-selector-dropzone.js +97 -0
  448. package/file-selector/file-selector.d.ts +1 -87
  449. package/file-selector/file-selector.d.ts.map +1 -1
  450. package/file-selector/file-selector.js +44 -0
  451. package/file-selector.d.ts +2 -0
  452. package/file-selector.d.ts.map +1 -1
  453. package/file-selector.js +3 -301
  454. package/flip-card/flip-card-details.js +5 -5
  455. package/flip-card/flip-card-summary.js +7 -7
  456. package/flip-card/flip-card.js +9 -9
  457. package/form-field/form-field/form-field.d.ts +5 -10
  458. package/form-field/form-field/form-field.d.ts.map +1 -1
  459. package/form-field/form-field-clear.js +12 -12
  460. package/form-field/form-field.js +143 -141
  461. package/header/common.js +10 -10
  462. package/header/header/header.d.ts +5 -3
  463. package/header/header/header.d.ts.map +1 -1
  464. package/header/header.js +28 -31
  465. package/image/image.d.ts +0 -30
  466. package/image/image.d.ts.map +1 -1
  467. package/image.js +187 -281
  468. package/index.d.ts +13 -9
  469. package/index.js +13 -9
  470. package/journey-header/journey-header.d.ts +4 -1
  471. package/journey-header/journey-header.d.ts.map +1 -1
  472. package/journey-header.js +29 -25
  473. package/lead-container.js +5 -5
  474. package/link/common/link-common.d.ts.map +1 -1
  475. package/link/common.js +18 -16
  476. package/link-list/common/link-list-base.d.ts +1 -0
  477. package/link-list/common/link-list-base.d.ts.map +1 -1
  478. package/link-list/common.js +11 -9
  479. package/link-list/link-list-anchor.js +8 -8
  480. package/loading-indicator/loading-indicator.d.ts +1 -3
  481. package/loading-indicator/loading-indicator.d.ts.map +1 -1
  482. package/loading-indicator-circle/loading-indicator-circle.d.ts +16 -0
  483. package/loading-indicator-circle/loading-indicator-circle.d.ts.map +1 -0
  484. package/loading-indicator-circle.d.ts +2 -0
  485. package/loading-indicator-circle.d.ts.map +1 -0
  486. package/loading-indicator-circle.js +46 -0
  487. package/loading-indicator.js +41 -51
  488. package/map-container/map-container.d.ts.map +1 -1
  489. package/map-container.js +7 -7
  490. package/menu/common.js +8 -8
  491. package/menu/menu/menu.d.ts +3 -0
  492. package/menu/menu/menu.d.ts.map +1 -1
  493. package/menu/menu.js +52 -43
  494. package/message.js +12 -12
  495. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  496. package/navigation/common.js +10 -6
  497. package/navigation/navigation/navigation.d.ts +3 -0
  498. package/navigation/navigation/navigation.d.ts.map +1 -1
  499. package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  500. package/navigation/navigation-list.js +17 -16
  501. package/navigation/navigation-marker/navigation-marker.d.ts +2 -1
  502. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  503. package/navigation/navigation-marker.js +12 -10
  504. package/navigation/navigation-section/navigation-section.d.ts +3 -0
  505. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  506. package/navigation/navigation-section.js +46 -37
  507. package/navigation/navigation.js +30 -21
  508. package/notification/notification.d.ts +6 -2
  509. package/notification/notification.d.ts.map +1 -1
  510. package/notification.js +55 -51
  511. package/option/option/option-base-element.d.ts +0 -7
  512. package/option/option/option-base-element.d.ts.map +1 -1
  513. package/option/option.js +110 -125
  514. package/overlay/overlay-base-element.d.ts +2 -0
  515. package/overlay/overlay-base-element.d.ts.map +1 -1
  516. package/overlay/overlay.d.ts +3 -0
  517. package/overlay/overlay.d.ts.map +1 -1
  518. package/overlay.js +83 -77
  519. package/package.json +40 -25
  520. package/paginator/common/paginator-common.d.ts.map +1 -1
  521. package/paginator/common.js +21 -17
  522. package/paginator/paginator.js +1 -1
  523. package/popover/popover/popover.d.ts +3 -0
  524. package/popover/popover/popover.d.ts.map +1 -1
  525. package/popover/popover-trigger.js +6 -6
  526. package/popover/popover.js +114 -109
  527. package/radio-button/common/radio-button-common.d.ts +3 -10
  528. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  529. package/radio-button/common.js +43 -90
  530. package/radio-button/radio-button/radio-button.d.ts +9 -1
  531. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  532. package/radio-button/radio-button-group/radio-button-group.d.ts +19 -26
  533. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  534. package/radio-button/radio-button-group.js +112 -131
  535. package/radio-button/radio-button-panel/radio-button-panel.d.ts +19 -1
  536. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  537. package/radio-button/radio-button-panel.js +56 -44
  538. package/radio-button/radio-button.js +34 -38
  539. package/select/select.d.ts +3 -9
  540. package/select/select.d.ts.map +1 -1
  541. package/select.js +65 -66
  542. package/selection-expansion-panel/selection-expansion-panel.d.ts +4 -1
  543. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  544. package/selection-expansion-panel.js +41 -31
  545. package/skiplink-list/skiplink-list.d.ts.map +1 -1
  546. package/skiplink-list.js +14 -13
  547. package/slider/slider.d.ts +0 -1
  548. package/slider/slider.d.ts.map +1 -1
  549. package/slider.js +1 -1
  550. package/standard-theme.css +238 -8
  551. package/stepper/step-label/step-label.d.ts +0 -2
  552. package/stepper/step-label/step-label.d.ts.map +1 -1
  553. package/stepper/step-label.js +6 -6
  554. package/stepper/step.js +4 -4
  555. package/stepper/stepper/stepper.d.ts +4 -1
  556. package/stepper/stepper/stepper.d.ts.map +1 -1
  557. package/stepper/stepper.js +22 -19
  558. package/table.css +15 -0
  559. package/tabs/tab-group/tab-group.d.ts +4 -1
  560. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  561. package/tabs/tab-group.js +24 -20
  562. package/tabs/tab-label.js +1 -1
  563. package/tag/tag/tag.d.ts +4 -1
  564. package/tag/tag/tag.d.ts.map +1 -1
  565. package/tag/tag-group/tag-group.d.ts +5 -2
  566. package/tag/tag-group/tag-group.d.ts.map +1 -1
  567. package/tag/tag-group.js +13 -10
  568. package/tag/tag.js +25 -21
  569. package/teaser/teaser.d.ts +2 -2
  570. package/teaser/teaser.d.ts.map +1 -1
  571. package/teaser-hero/teaser-hero.d.ts +2 -6
  572. package/teaser-hero/teaser-hero.d.ts.map +1 -1
  573. package/teaser-hero.js +32 -57
  574. package/teaser-product/common.js +1 -1
  575. package/teaser-product/teaser-product.js +13 -13
  576. package/teaser.js +28 -28
  577. package/time-input/time-input.d.ts +3 -6
  578. package/time-input/time-input.d.ts.map +1 -1
  579. package/time-input.js +56 -55
  580. package/toast/toast.d.ts +3 -0
  581. package/toast/toast.d.ts.map +1 -1
  582. package/toast.js +51 -42
  583. package/toggle/toggle/toggle.d.ts +4 -8
  584. package/toggle/toggle/toggle.d.ts.map +1 -1
  585. package/toggle/toggle.js +48 -48
  586. package/toggle-check/toggle-check.d.ts +4 -6
  587. package/toggle-check/toggle-check.d.ts.map +1 -1
  588. package/toggle-check.js +23 -21
  589. package/train/train/train.d.ts.map +1 -1
  590. package/train/train-blocked-passage.js +1 -1
  591. package/train/train-formation/train-formation.d.ts +3 -11
  592. package/train/train-formation/train-formation.d.ts.map +1 -1
  593. package/train/train-formation.js +47 -65
  594. package/train/train-wagon/train-wagon.d.ts +11 -8
  595. package/train/train-wagon/train-wagon.d.ts.map +1 -1
  596. package/train/train-wagon.js +123 -134
  597. package/train/train.js +74 -78
  598. package/visual-checkbox/visual-checkbox.d.ts +4 -1
  599. package/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  600. package/visual-checkbox.js +21 -17
  601. package/button/mini-button/mini-button-base-element.d.ts +0 -8
  602. package/button/mini-button/mini-button-base-element.d.ts.map +0 -1
  603. package/button/tertiary-button/tertiary-button.d.ts +0 -19
  604. package/button/tertiary-button/tertiary-button.d.ts.map +0 -1
  605. package/button/tertiary-button-link/tertiary-button-link.d.ts +0 -19
  606. package/button/tertiary-button-link/tertiary-button-link.d.ts.map +0 -1
  607. package/button/tertiary-button-link.d.ts +0 -2
  608. package/button/tertiary-button-link.d.ts.map +0 -1
  609. package/button/tertiary-button-link.js +0 -17
  610. package/button/tertiary-button-static/tertiary-button-static.d.ts +0 -19
  611. package/button/tertiary-button-static/tertiary-button-static.d.ts.map +0 -1
  612. package/button/tertiary-button-static.d.ts +0 -2
  613. package/button/tertiary-button-static.d.ts.map +0 -1
  614. package/button/tertiary-button-static.js +0 -17
  615. package/button/tertiary-button.d.ts +0 -2
  616. package/button/tertiary-button.d.ts.map +0 -1
  617. package/button/tertiary-button.js +0 -17
  618. package/chip/chip.d.ts.map +0 -1
  619. package/chip.d.ts +0 -2
  620. package/chip.d.ts.map +0 -1
  621. package/chip.js +0 -54
  622. package/core/dom/get-document-writing-mode.d.ts +0 -5
  623. package/core/dom/get-document-writing-mode.d.ts.map +0 -1
  624. package/core/dom/ssr.d.ts +0 -13
  625. package/core/dom/ssr.d.ts.map +0 -1
  626. package/core/eventing/handler-repository.d.ts +0 -28
  627. package/core/eventing/handler-repository.d.ts.map +0 -1
  628. package/core/observers/intersection-observer.d.ts +0 -20
  629. package/core/observers/intersection-observer.d.ts.map +0 -1
  630. package/core/observers/mutation-observer.d.ts +0 -13
  631. package/core/observers/mutation-observer.d.ts.map +0 -1
  632. package/core/observers/resize-observer.d.ts +0 -16
  633. package/core/observers/resize-observer.d.ts.map +0 -1
  634. package/core/observers.d.ts +0 -4
  635. package/core/observers.d.ts.map +0 -1
  636. package/core/observers.js +0 -38
  637. package/core/testing/wait-for-event.d.ts +0 -2
  638. package/core/testing/wait-for-event.d.ts.map +0 -1
  639. package/development/button/mini-button/mini-button-base-element.d.ts +0 -8
  640. package/development/button/mini-button/mini-button-base-element.d.ts.map +0 -1
  641. package/development/button/tertiary-button/tertiary-button.d.ts +0 -19
  642. package/development/button/tertiary-button/tertiary-button.d.ts.map +0 -1
  643. package/development/button/tertiary-button-link/tertiary-button-link.d.ts +0 -19
  644. package/development/button/tertiary-button-link/tertiary-button-link.d.ts.map +0 -1
  645. package/development/button/tertiary-button-link.d.ts +0 -2
  646. package/development/button/tertiary-button-link.d.ts.map +0 -1
  647. package/development/button/tertiary-button-link.js +0 -25
  648. package/development/button/tertiary-button-static/tertiary-button-static.d.ts +0 -19
  649. package/development/button/tertiary-button-static/tertiary-button-static.d.ts.map +0 -1
  650. package/development/button/tertiary-button-static.d.ts +0 -2
  651. package/development/button/tertiary-button-static.d.ts.map +0 -1
  652. package/development/button/tertiary-button-static.js +0 -25
  653. package/development/button/tertiary-button.d.ts +0 -2
  654. package/development/button/tertiary-button.d.ts.map +0 -1
  655. package/development/button/tertiary-button.js +0 -25
  656. package/development/chip/chip.d.ts.map +0 -1
  657. package/development/chip.d.ts +0 -2
  658. package/development/chip.d.ts.map +0 -1
  659. package/development/core/dom/get-document-writing-mode.d.ts +0 -5
  660. package/development/core/dom/get-document-writing-mode.d.ts.map +0 -1
  661. package/development/core/dom/ssr.d.ts +0 -13
  662. package/development/core/dom/ssr.d.ts.map +0 -1
  663. package/development/core/eventing/handler-repository.d.ts +0 -28
  664. package/development/core/eventing/handler-repository.d.ts.map +0 -1
  665. package/development/core/observers/intersection-observer.d.ts +0 -20
  666. package/development/core/observers/intersection-observer.d.ts.map +0 -1
  667. package/development/core/observers/mutation-observer.d.ts +0 -13
  668. package/development/core/observers/mutation-observer.d.ts.map +0 -1
  669. package/development/core/observers/resize-observer.d.ts +0 -16
  670. package/development/core/observers/resize-observer.d.ts.map +0 -1
  671. package/development/core/observers.d.ts +0 -4
  672. package/development/core/observers.d.ts.map +0 -1
  673. package/development/core/observers.js +0 -39
  674. package/development/core/testing/wait-for-event.d.ts +0 -2
  675. package/development/core/testing/wait-for-event.d.ts.map +0 -1
@@ -17,6 +17,9 @@ export declare class SbbTimeInputElement extends LitElement {
17
17
  get input(): string | HTMLElement | null;
18
18
  private _input;
19
19
  private accessor _inputElement;
20
+ /** Formats the current input's value as date. */
21
+ set valueAsDate(date: SbbDateLike | null);
22
+ get valueAsDate(): Date | null;
20
23
  /**
21
24
  * @deprecated only used for React. Will probably be removed once React 19 is available.
22
25
  */
@@ -28,14 +31,8 @@ export declare class SbbTimeInputElement extends LitElement {
28
31
  private _language;
29
32
  connectedCallback(): void;
30
33
  disconnectedCallback(): void;
31
- /** Gets the input value with the correct date format. */
32
- getValueAsDate(): Date | null;
33
- /** Set the input value to the correctly formatted value. */
34
- setValueAsDate(date: SbbDateLike): void;
35
34
  private _findInputElement;
36
35
  private _registerInputElement;
37
- /** Applies the correct format to values and triggers event dispatch. */
38
- private _updateValueAndEmitChange;
39
36
  /**
40
37
  * Updates `value` and `valueAsDate`. The direct update on the `_inputElement` is required
41
38
  * to force the input change when the typed value is the same of the current one.
@@ -1 +1 @@
1
- {"version":3,"file":"time-input.d.ts","sourceRoot":"","sources":["../../../../src/elements/time-input/time-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAQvC,OAAO,KAAK,EAAE,WAAW,EAA4B,MAAM,uBAAuB,CAAC;AAanF;;;;;GAKG;AACH,qBAEM,mBAAoB,SAAQ,UAAU;IAC1C,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;MAGlB;IAEX,iEAAiE;IACjE,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAG3C;IACD,IAAW,KAAK,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAE9C;IACD,OAAO,CAAC,MAAM,CAAqC;IAE1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAExE;;OAEG;IACH,OAAO,CAAC,UAAU,CAGf;IAEH,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB,CAOvB;IAEF,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,SAAS,CAAmC;IAEpC,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAK5C,yDAAyD;IAElD,cAAc,IAAI,IAAI,GAAG,IAAI;IAIpC,4DAA4D;IACrD,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAgB9C,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,qBAAqB;IAqC7B,wEAAwE;IACxE,OAAO,CAAC,yBAAyB;IAMjC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAuBpB,8BAA8B;IAC9B,OAAO,CAAC,WAAW;IAKnB,yDAAyD;IACzD,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,uFAAuF;IACvF,OAAO,CAAC,YAAY;IAIpB,kDAAkD;IAClD,OAAO,CAAC,WAAW;IAoBnB,qDAAqD;IACrD,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,2BAA2B;cAWhB,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,mBAAmB,CAAC;KACvC;CACF"}
1
+ {"version":3,"file":"time-input.d.ts","sourceRoot":"","sources":["../../../../src/elements/time-input/time-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAQvC,OAAO,KAAK,EAAE,WAAW,EAA4B,MAAM,uBAAuB,CAAC;AAanF;;;;;GAKG;AACH,qBAEM,mBAAoB,SAAQ,UAAU;IAC1C,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;MAGlB;IAEX,iEAAiE;IACjE,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAG3C;IACD,IAAW,KAAK,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAE9C;IACD,OAAO,CAAC,MAAM,CAAqC;IAE1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAExE,iDAAiD;IACjD,IACW,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAc9C;IACD,IAAW,WAAW,IAAI,IAAI,GAAG,IAAI,CAEpC;IAED;;OAEG;IACH,OAAO,CAAC,UAAU,CAGf;IAEH,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB,CAOvB;IAEF,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,SAAS,CAAmC;IAEpC,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAK5C,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,qBAAqB;IAgD7B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA4BpB,8BAA8B;IAC9B,OAAO,CAAC,WAAW;IAKnB,yDAAyD;IACzD,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,uFAAuF;IACvF,OAAO,CAAC,YAAY;IAIpB,kDAAkD;IAClD,OAAO,CAAC,WAAW;IAoBnB,qDAAqD;IACrD,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,2BAA2B;cAWhB,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,mBAAmB,CAAC;KACvC;CACF"}
@@ -40,6 +40,7 @@ let SbbTimeInputElement = (() => {
40
40
  let __inputElement_decorators;
41
41
  let __inputElement_initializers = [];
42
42
  let __inputElement_extraInitializers = [];
43
+ let _set_valueAsDate_decorators;
43
44
  var SbbTimeInputElement2 = (_a = class extends _classSuper {
44
45
  constructor() {
45
46
  super(...arguments);
@@ -71,6 +72,22 @@ let SbbTimeInputElement = (() => {
71
72
  set _inputElement(value) {
72
73
  __privateSet(this, __inputElement_accessor_storage, value);
73
74
  }
75
+ /** Formats the current input's value as date. */
76
+ set valueAsDate(date) {
77
+ if (!date || !this._inputElement) {
78
+ return;
79
+ }
80
+ const dateObj = date instanceof Date ? date : new Date(date);
81
+ this._inputElement.value = this._formatValue({
82
+ hours: dateObj.getHours(),
83
+ minutes: dateObj.getMinutes()
84
+ });
85
+ this._inputElement.dispatchEvent(new FocusEvent("blur", { composed: true }));
86
+ }
87
+ get valueAsDate() {
88
+ var _a2;
89
+ return this._formatValueAsDate(this._parseInput((_a2 = this._inputElement) == null ? void 0 : _a2.value)) ?? null;
90
+ }
74
91
  connectedCallback() {
75
92
  super.connectedCallback();
76
93
  this._findInputElement();
@@ -83,24 +100,6 @@ let SbbTimeInputElement = (() => {
83
100
  super.disconnectedCallback();
84
101
  (_a2 = this._abortController) == null ? void 0 : _a2.abort();
85
102
  }
86
- /** Gets the input value with the correct date format. */
87
- // TODO: refactor this to be a get/set
88
- getValueAsDate() {
89
- var _a2;
90
- return this._formatValueAsDate(this._parseInput((_a2 = this._inputElement) == null ? void 0 : _a2.value));
91
- }
92
- /** Set the input value to the correctly formatted value. */
93
- setValueAsDate(date) {
94
- if (!date || !this._inputElement) {
95
- return;
96
- }
97
- const dateObj = date instanceof Date ? date : new Date(date);
98
- this._inputElement.value = this._formatValue({
99
- hours: dateObj.getHours(),
100
- minutes: dateObj.getMinutes()
101
- });
102
- this._inputElement.dispatchEvent(new FocusEvent("blur", { composed: true }));
103
- }
104
103
  _findInputElement() {
105
104
  const oldInput = this._inputElement;
106
105
  this._inputElement = findInput(this, this.input);
@@ -124,16 +123,17 @@ let SbbTimeInputElement = (() => {
124
123
  }
125
124
  this._inputElement.addEventListener("input", (event) => forwardEventToHost(event, this), { signal: this._abortController.signal });
126
125
  this._inputElement.addEventListener("keydown", (event) => this._preventCharInsert(event), { signal: this._abortController.signal });
127
- this._inputElement.addEventListener("change", (event) => this._updateValueAndEmitChange(event), {
126
+ this._inputElement.addEventListener("change", (event) => this._updateValue(event.target.value), {
127
+ signal: this._abortController.signal,
128
+ capture: true
129
+ });
130
+ this._inputElement.addEventListener("change", (event) => {
131
+ this._emitChange(event);
132
+ this._updateAccessibilityMessage();
133
+ }, {
128
134
  signal: this._abortController.signal
129
135
  });
130
136
  }
131
- /** Applies the correct format to values and triggers event dispatch. */
132
- _updateValueAndEmitChange(event) {
133
- this._updateValue(event.target.value);
134
- this._emitChange(event);
135
- this._updateAccessibilityMessage();
136
- }
137
137
  /**
138
138
  * Updates `value` and `valueAsDate`. The direct update on the `_inputElement` is required
139
139
  * to force the input change when the typed value is the same of the current one.
@@ -149,7 +149,9 @@ let SbbTimeInputElement = (() => {
149
149
  const isTimeValid = !!time && this._isTimeValid(time);
150
150
  const isEmptyOrValid = !value || value.trim() === "" || isTimeValid;
151
151
  if (isEmptyOrValid && time) {
152
- this._inputElement.value = this._formatValue(time);
152
+ const setValue = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value").set;
153
+ setValue.call(this._inputElement, this._formatValue(time));
154
+ this._inputElement.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true }));
153
155
  }
154
156
  const wasValid = !this._inputElement.hasAttribute("data-sbb-invalid");
155
157
  this._inputElement.toggleAttribute("data-sbb-invalid", !isEmptyOrValid);
@@ -240,12 +242,16 @@ let SbbTimeInputElement = (() => {
240
242
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
241
243
  _set_input_decorators = [property()];
242
244
  __inputElement_decorators = [state()];
245
+ _set_valueAsDate_decorators = [property({ attribute: false })];
243
246
  __esDecorate(_a, null, _set_input_decorators, { kind: "setter", name: "input", static: false, private: false, access: { has: (obj) => "input" in obj, set: (obj, value) => {
244
247
  obj.input = value;
245
248
  } }, metadata: _metadata }, null, _instanceExtraInitializers);
246
249
  __esDecorate(_a, null, __inputElement_decorators, { kind: "accessor", name: "_inputElement", static: false, private: false, access: { has: (obj) => "_inputElement" in obj, get: (obj) => obj._inputElement, set: (obj, value) => {
247
250
  obj._inputElement = value;
248
251
  } }, metadata: _metadata }, __inputElement_initializers, __inputElement_extraInitializers);
252
+ __esDecorate(_a, null, _set_valueAsDate_decorators, { kind: "setter", name: "valueAsDate", static: false, private: false, access: { has: (obj) => "valueAsDate" in obj, set: (obj, value) => {
253
+ obj.valueAsDate = value;
254
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
249
255
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
250
256
  SbbTimeInputElement2 = _classThis = _classDescriptor.value;
251
257
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -258,4 +264,4 @@ let SbbTimeInputElement = (() => {
258
264
  export {
259
265
  SbbTimeInputElement
260
266
  };
261
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1pbnB1dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RpbWUtaW5wdXQvdGltZS1pbnB1dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZmluZElucHV0IH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBmb3J3YXJkRXZlbnRUb0hvc3QgfSBmcm9tICcuLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5UaW1lSW5wdXRDaGFuZ2UgfSBmcm9tICcuLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlTGlrZSwgU2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGltZS1pbnB1dC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5jb25zdCBSRUdFWF9BTExPV0VEX0NIQVJBQ1RFUlMgPSAvWzAtOS46LFxcLTtfaEhdLztcbmNvbnN0IFJFR0VYX0dST1VQU19XSVRIT1VUX0NPTE9OID0gL14oWzAtOV17MSwyfSkoWzAtOV17Mn0pJC87XG5jb25zdCBSRUdFWF9HUk9VUFNfV0lUSF9DT0xPTiA9IC9eKFswLTldezEsMn0pP1suOixcXC07X2hIXT8oWzAtOV17MSwyfSk/JC87XG5cbmludGVyZmFjZSBUaW1lIHtcbiAgaG91cnM6IG51bWJlcjtcbiAgbWludXRlczogbnVtYmVyO1xufVxuXG4vKipcbiAqICogQ29tYmluZWQgd2l0aCBhIG5hdGl2ZSBpbnB1dCwgaXQgZGlzcGxheXMgdGhlIGlucHV0J3MgdmFsdWUgYXMgYSBmb3JtYXR0ZWQgdGltZS5cbiAqXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDaGFuZ2UgLSBEZXByZWNhdGVkLiB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+fSB2YWxpZGF0aW9uQ2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlcy5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRpbWUtaW5wdXQnKVxuY2xhc3MgU2JiVGltZUlucHV0RWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZGlkQ2hhbmdlOiAnZGlkQ2hhbmdlJyxcbiAgICB2YWxpZGF0aW9uQ2hhbmdlOiAndmFsaWRhdGlvbkNoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFJlZmVyZW5jZSBvZiB0aGUgbmF0aXZlIGlucHV0IGNvbm5lY3RlZCB0byB0aGUgZGF0ZXBpY2tlci4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBpbnB1dCh2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9pbnB1dCA9IHZhbHVlO1xuICAgIHRoaXMuX2ZpbmRJbnB1dEVsZW1lbnQoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlucHV0KCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0O1xuICB9XG4gIHByaXZhdGUgX2lucHV0OiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2lucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBvbmx5IHVzZWQgZm9yIFJlYWN0LiBXaWxsIHByb2JhYmx5IGJlIHJlbW92ZWQgb25jZSBSZWFjdCAxOSBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBwcml2YXRlIF9kaWRDaGFuZ2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiVGltZUlucHV0RWxlbWVudC5ldmVudHMuZGlkQ2hhbmdlLCB7XG4gICAgYnViYmxlczogdHJ1ZSxcbiAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICB9KTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFNiYlZhbGlkYXRpb25DaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiVGltZUlucHV0RWxlbWVudC5ldmVudHMudmFsaWRhdGlvbkNoYW5nZSxcbiAgICB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IGZhbHNlLFxuICAgIH0sXG4gICk7XG5cbiAgcHJpdmF0ZSBfc3RhdHVzQ29udGFpbmVyITogSFRNTFBhcmFncmFwaEVsZW1lbnQ7XG4gIHByaXZhdGUgX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgdGhpcy5fZmluZElucHV0RWxlbWVudCgpO1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGlucHV0IHZhbHVlIHdpdGggdGhlIGNvcnJlY3QgZGF0ZSBmb3JtYXQuICovXG4gIC8vIFRPRE86IHJlZmFjdG9yIHRoaXMgdG8gYmUgYSBnZXQvc2V0XG4gIHB1YmxpYyBnZXRWYWx1ZUFzRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdFZhbHVlQXNEYXRlKHRoaXMuX3BhcnNlSW5wdXQodGhpcy5faW5wdXRFbGVtZW50Py52YWx1ZSkpO1xuICB9XG5cbiAgLyoqIFNldCB0aGUgaW5wdXQgdmFsdWUgdG8gdGhlIGNvcnJlY3RseSBmb3JtYXR0ZWQgdmFsdWUuICovXG4gIHB1YmxpYyBzZXRWYWx1ZUFzRGF0ZShkYXRlOiBTYmJEYXRlTGlrZSk6IHZvaWQge1xuICAgIGlmICghZGF0ZSB8fCAhdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRhdGVPYmogPSBkYXRlIGluc3RhbmNlb2YgRGF0ZSA/IGRhdGUgOiBuZXcgRGF0ZShkYXRlKTtcblxuICAgIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdFZhbHVlKHtcbiAgICAgIGhvdXJzOiBkYXRlT2JqLmdldEhvdXJzKCksXG4gICAgICBtaW51dGVzOiBkYXRlT2JqLmdldE1pbnV0ZXMoKSxcbiAgICB9KTtcblxuICAgIC8vIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAvLyBmcmFtZXdvcmtzIHRoYXQgcmVseSBvbiB0aGF0IGV2ZW50IHRvIHVwZGF0ZSBmb3JtIHN0YXR1cy5cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRm9jdXNFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluZElucHV0RWxlbWVudCgpOiB2b2lkIHtcbiAgICBjb25zdCBvbGRJbnB1dCA9IHRoaXMuX2lucHV0RWxlbWVudDtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQgPSBmaW5kSW5wdXQodGhpcywgdGhpcy5pbnB1dCk7XG5cbiAgICBpZiAob2xkSW5wdXQgIT09IHRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5fcmVnaXN0ZXJJbnB1dEVsZW1lbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZWdpc3RlcklucHV0RWxlbWVudCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG5cbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIC8vIENvbmZpZ3VyZSBpbnB1dFxuICAgIHRoaXMuX2lucHV0RWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLXRpbWUtaW5wdXQnLCB0cnVlKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQudHlwZSA9ICd0ZXh0JztcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuaW5wdXRNb2RlID0gJ251bWVyaWMnO1xuICAgIHRoaXMuX2lucHV0RWxlbWVudC5tYXhMZW5ndGggPSA1O1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyKSB7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIgPSAnSEg6TU0nO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2lucHV0JyxcbiAgICAgIChldmVudDogRXZlbnQpID0+IGZvcndhcmRFdmVudFRvSG9zdChldmVudCwgdGhpcyksXG4gICAgICB7IHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX3ByZXZlbnRDaGFySW5zZXJ0KGV2ZW50KSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjaGFuZ2UnLFxuICAgICAgKGV2ZW50OiBFdmVudCkgPT4gdGhpcy5fdXBkYXRlVmFsdWVBbmRFbWl0Q2hhbmdlKGV2ZW50KSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIEFwcGxpZXMgdGhlIGNvcnJlY3QgZm9ybWF0IHRvIHZhbHVlcyBhbmQgdHJpZ2dlcnMgZXZlbnQgZGlzcGF0Y2guICovXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlQW5kRW1pdENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKGV2ZW50KTtcbiAgICB0aGlzLl91cGRhdGVBY2Nlc3NpYmlsaXR5TWVzc2FnZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYHZhbHVlYCBhbmQgYHZhbHVlQXNEYXRlYC4gVGhlIGRpcmVjdCB1cGRhdGUgb24gdGhlIGBfaW5wdXRFbGVtZW50YCBpcyByZXF1aXJlZFxuICAgKiB0byBmb3JjZSB0aGUgaW5wdXQgY2hhbmdlIHdoZW4gdGhlIHR5cGVkIHZhbHVlIGlzIHRoZSBzYW1lIG9mIHRoZSBjdXJyZW50IG9uZS5cbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBSZXNldCBhY2Nlc3NpYmlsaXR5IG1lc3NhZ2VcbiAgICBpZiAodGhpcy5fc3RhdHVzQ29udGFpbmVyKSB7XG4gICAgICB0aGlzLl9zdGF0dXNDb250YWluZXIuaW5uZXJUZXh0ID0gJyc7XG4gICAgfVxuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGltZSA9IHRoaXMuX3BhcnNlSW5wdXQodmFsdWUpO1xuICAgIGNvbnN0IGlzVGltZVZhbGlkID0gISF0aW1lICYmIHRoaXMuX2lzVGltZVZhbGlkKHRpbWUpO1xuICAgIGNvbnN0IGlzRW1wdHlPclZhbGlkID0gIXZhbHVlIHx8IHZhbHVlLnRyaW0oKSA9PT0gJycgfHwgaXNUaW1lVmFsaWQ7XG4gICAgaWYgKGlzRW1wdHlPclZhbGlkICYmIHRpbWUpIHtcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdFZhbHVlKHRpbWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdhc1ZhbGlkID0gIXRoaXMuX2lucHV0RWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWludmFsaWQnKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJywgIWlzRW1wdHlPclZhbGlkKTtcbiAgICBpZiAod2FzVmFsaWQgIT09IGlzRW1wdHlPclZhbGlkKSB7XG4gICAgICB0aGlzLl92YWxpZGF0aW9uQ2hhbmdlLmVtaXQoeyB2YWxpZDogaXNFbXB0eU9yVmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEVtaXRzIHRoZSBjaGFuZ2UgZXZlbnQuICovXG4gIHByaXZhdGUgX2VtaXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZm9yd2FyZEV2ZW50VG9Ib3N0KGV2ZW50LCB0aGlzKTtcbiAgICB0aGlzLl9kaWRDaGFuZ2UuZW1pdCgpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIHJpZ2h0IGZvcm1hdCBmb3IgdGhlIGB2YWx1ZWAgcHJvcGVydHkuICovXG4gIHByaXZhdGUgX2Zvcm1hdFZhbHVlKHRpbWU6IFRpbWUpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhvdXJzID0gU3RyaW5nKHRpbWUuaG91cnMpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgY29uc3QgbWludXRlcyA9IFN0cmluZyh0aW1lLm1pbnV0ZXMpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgcmV0dXJuIGAke2hvdXJzfToke21pbnV0ZXN9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByaWdodCBmb3JtYXQgZm9yIHRoZSBgdmFsdWVBc0RhdGVgIHByb3BlcnR5OlxuICAgKiBzZXRzIHRoZSBzdGFydCBkYXRlIGF0IDAxLjAxLjE5NzAsIHRoZW4gYWRkcyB0aGUgdHlwZWQgaG91cnMvbWludXRlcy5cbiAgICovXG4gIHByaXZhdGUgX2Zvcm1hdFZhbHVlQXNEYXRlKHRpbWU6IFRpbWUgfCBudWxsIHwgdW5kZWZpbmVkKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICghdGltZSB8fCAhdGhpcy5faXNUaW1lVmFsaWQodGltZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZSgwKS5zZXRIb3Vycyh0aW1lLmhvdXJzLCB0aW1lLm1pbnV0ZXMsIDAsIDApKTtcbiAgfVxuXG4gIC8qKiBDaGVja3MgaWYgdmFsdWVzIG9mIGhvdXJzIGFuZCBtaW51dGVzIGFyZSBwb3NzaWJsZSwgdG8gYXZvaWQgbm9uLWV4aXN0ZW50IHRpbWVzLiAqL1xuICBwcml2YXRlIF9pc1RpbWVWYWxpZCh0aW1lOiBUaW1lKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRpbWUuaG91cnMgPCAyNCAmJiB0aW1lLm1pbnV0ZXMgPCA2MDtcbiAgfVxuXG4gIC8qKiBWYWxpZGF0ZSBpbnB1dCBhZ2FpbnN0IHRoZSBkZWZpbmVkIFJlZ0V4cHMuICovXG4gIHByaXZhdGUgX3BhcnNlSW5wdXQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IFRpbWUgfCBudWxsIHtcbiAgICBjb25zdCB0cmltbWVkVmFsdWUgPSB2YWx1ZT8udHJpbSgpO1xuICAgIGlmICghdHJpbW1lZFZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBTcGVjaWFsIGNhc2U6IHRoZSBpbnB1dCBpcyAzIG9yIDQgZGlnaXRzOyBzcGxpdCBsaWtlOiBBQj86Q0RcbiAgICBjb25zdCBtYXRjaCA9IHRyaW1tZWRWYWx1ZS5tYXRjaChSRUdFWF9HUk9VUFNfV0lUSE9VVF9DT0xPTik7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4geyBob3VyczogK21hdGNoWzFdIHx8IDAsIG1pbnV0ZXM6ICttYXRjaFsyXSB8fCAwIH07XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hDb2xvbiA9IHRyaW1tZWRWYWx1ZS5tYXRjaChSRUdFWF9HUk9VUFNfV0lUSF9DT0xPTik7XG4gICAgaWYgKG1hdGNoQ29sb24pIHtcbiAgICAgIHJldHVybiB7IGhvdXJzOiArbWF0Y2hDb2xvblsxXSB8fCAwLCBtaW51dGVzOiArbWF0Y2hDb2xvblsyXSB8fCAwIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiogIE9ubHkgYWxsb3cgdHlwaW5nIG51bWJlcnMgYW5kIHNlcGFyYXRvciBrZXlzLiAqL1xuICBwcml2YXRlIF9wcmV2ZW50Q2hhckluc2VydChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGFsd2F5c0FsbG93ZWQgPSBbXG4gICAgICAnQmFja3NwYWNlJyxcbiAgICAgICdUYWInLFxuICAgICAgJ0VudGVyJyxcbiAgICAgICdBcnJvd1VwJyxcbiAgICAgICdBcnJvd0Rvd24nLFxuICAgICAgJ0Fycm93TGVmdCcsXG4gICAgICAnQXJyb3dSaWdodCcsXG4gICAgICAnSG9tZScsXG4gICAgICAnRW5kJyxcbiAgICAgICdQYWdlVXAnLFxuICAgICAgJ1BhZ2VEb3duJyxcbiAgICAgICdEZWxldGUnLFxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICAhZXZlbnQuY3RybEtleSAmJlxuICAgICAgIWV2ZW50LmFsdEtleSAmJlxuICAgICAgIWV2ZW50Lm1ldGFLZXkgJiZcbiAgICAgICFhbHdheXNBbGxvd2VkLmluY2x1ZGVzKGV2ZW50LmtleSkgJiZcbiAgICAgICFSRUdFWF9BTExPV0VEX0NIQVJBQ1RFUlMudGVzdChldmVudC5rZXkpXG4gICAgKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhIHByb2dyYW1tYXRpYyBhcHByb2FjaCB0byBhdm9pZCBpbml0aWFsIHNldHRpbmcgdGhlIG1lc3NhZ2VcbiAgLy8gYW5kIHRvIG5vdCBpbW1lZGlhdGVseSBjaGFuZ2Ugb3V0cHV0IGlmIGxhbmd1YWdlIHNob3VsZCBjaGFuZ2UgKG5vIHJlYXNvbiB0byByZWFkIG91dCBtZXNzYWdlKS5cbiAgcHJpdmF0ZSBfdXBkYXRlQWNjZXNzaWJpbGl0eU1lc3NhZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWQgPSAhdGhpcy5faW5wdXRFbGVtZW50IS5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWludmFsaWQnKTtcbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdHVzQ29udGFpbmVyLmlubmVyVGV4dCA9IGAke2kxOG5UaW1lSW5wdXRDaGFuZ2VbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQ/LnZhbHVlXG4gICAgfS5gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cFxuICAgICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX3N0YXR1c0NvbnRhaW5lciA9IGVsIGFzIEhUTUxQYXJhZ3JhcGhFbGVtZW50KSl9XG4gICAgICA+PC9wPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10aW1lLWlucHV0JzogU2JiVGltZUlucHV0RWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNiYlRpbWVJbnB1dEVsZW1lbnQiLCJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYUEsTUFBTSwyQkFBMkI7QUFDakMsTUFBTSw2QkFBNkI7QUFDbkMsTUFBTSwwQkFBMEI7SUFlMUIsdUJBQW1CLE1BQUE7OzBCQUR4QixjQUFjLGdCQUFnQixDQUFDOzs7O29CQUNFOzs7Ozs7QUFBUkEsTUFBQUEsd0JBQUEsbUJBQVEsWUFBVTtBQUFBOztBQWtCakM7QUFGRCxXQUFBLFVBaEJKLGtCQUFBLE1BQUEsMEJBQUEsR0FnQjBDO0FBRXBCLHlCQUFBLGlDQUFBLGtCQUFBLE1BQUEsNkJBQXlDLElBQUk7QUFLckQsV0FBQSxj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
267
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1pbnB1dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RpbWUtaW5wdXQvdGltZS1pbnB1dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZmluZElucHV0IH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBmb3J3YXJkRXZlbnRUb0hvc3QgfSBmcm9tICcuLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5UaW1lSW5wdXRDaGFuZ2UgfSBmcm9tICcuLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlTGlrZSwgU2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGltZS1pbnB1dC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5jb25zdCBSRUdFWF9BTExPV0VEX0NIQVJBQ1RFUlMgPSAvWzAtOS46LFxcLTtfaEhdLztcbmNvbnN0IFJFR0VYX0dST1VQU19XSVRIT1VUX0NPTE9OID0gL14oWzAtOV17MSwyfSkoWzAtOV17Mn0pJC87XG5jb25zdCBSRUdFWF9HUk9VUFNfV0lUSF9DT0xPTiA9IC9eKFswLTldezEsMn0pP1suOixcXC07X2hIXT8oWzAtOV17MSwyfSk/JC87XG5cbmludGVyZmFjZSBUaW1lIHtcbiAgaG91cnM6IG51bWJlcjtcbiAgbWludXRlczogbnVtYmVyO1xufVxuXG4vKipcbiAqICogQ29tYmluZWQgd2l0aCBhIG5hdGl2ZSBpbnB1dCwgaXQgZGlzcGxheXMgdGhlIGlucHV0J3MgdmFsdWUgYXMgYSBmb3JtYXR0ZWQgdGltZS5cbiAqXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDaGFuZ2UgLSBEZXByZWNhdGVkLiB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+fSB2YWxpZGF0aW9uQ2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlcy5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRpbWUtaW5wdXQnKVxuY2xhc3MgU2JiVGltZUlucHV0RWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZGlkQ2hhbmdlOiAnZGlkQ2hhbmdlJyxcbiAgICB2YWxpZGF0aW9uQ2hhbmdlOiAndmFsaWRhdGlvbkNoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFJlZmVyZW5jZSBvZiB0aGUgbmF0aXZlIGlucHV0IGNvbm5lY3RlZCB0byB0aGUgZGF0ZXBpY2tlci4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBpbnB1dCh2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9pbnB1dCA9IHZhbHVlO1xuICAgIHRoaXMuX2ZpbmRJbnB1dEVsZW1lbnQoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlucHV0KCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0O1xuICB9XG4gIHByaXZhdGUgX2lucHV0OiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2lucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBGb3JtYXRzIHRoZSBjdXJyZW50IGlucHV0J3MgdmFsdWUgYXMgZGF0ZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IHZhbHVlQXNEYXRlKGRhdGU6IFNiYkRhdGVMaWtlIHwgbnVsbCkge1xuICAgIGlmICghZGF0ZSB8fCAhdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRhdGVPYmogPSBkYXRlIGluc3RhbmNlb2YgRGF0ZSA/IGRhdGUgOiBuZXcgRGF0ZShkYXRlKTtcblxuICAgIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdFZhbHVlKHtcbiAgICAgIGhvdXJzOiBkYXRlT2JqLmdldEhvdXJzKCksXG4gICAgICBtaW51dGVzOiBkYXRlT2JqLmdldE1pbnV0ZXMoKSxcbiAgICB9KTtcblxuICAgIC8vIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAvLyBmcmFtZXdvcmtzIHRoYXQgcmVseSBvbiB0aGF0IGV2ZW50IHRvIHVwZGF0ZSBmb3JtIHN0YXR1cy5cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRm9jdXNFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWVBc0RhdGUoKTogRGF0ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9mb3JtYXRWYWx1ZUFzRGF0ZSh0aGlzLl9wYXJzZUlucHV0KHRoaXMuX2lucHV0RWxlbWVudD8udmFsdWUpKSA/PyBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIG9ubHkgdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIHByaXZhdGUgX2RpZENoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJUaW1lSW5wdXRFbGVtZW50LmV2ZW50cy5kaWRDaGFuZ2UsIHtcbiAgICBidWJibGVzOiB0cnVlLFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgaW50ZXJuYWwgdmFsaWRhdGlvbiBzdGF0ZSBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF92YWxpZGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJUaW1lSW5wdXRFbGVtZW50LmV2ZW50cy52YWxpZGF0aW9uQ2hhbmdlLFxuICAgIHtcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogZmFsc2UsXG4gICAgfSxcbiAgKTtcblxuICBwcml2YXRlIF9zdGF0dXNDb250YWluZXIhOiBIVE1MUGFyYWdyYXBoRWxlbWVudDtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICB0aGlzLl9maW5kSW5wdXRFbGVtZW50KCk7XG4gICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5fdXBkYXRlVmFsdWUodGhpcy5faW5wdXRFbGVtZW50LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcml2YXRlIF9maW5kSW5wdXRFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IG9sZElucHV0ID0gdGhpcy5faW5wdXRFbGVtZW50O1xuICAgIHRoaXMuX2lucHV0RWxlbWVudCA9IGZpbmRJbnB1dCh0aGlzLCB0aGlzLmlucHV0KTtcblxuICAgIGlmIChvbGRJbnB1dCAhPT0gdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLl9yZWdpc3RlcklucHV0RWxlbWVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlZ2lzdGVySW5wdXRFbGVtZW50KCk6IHZvaWQge1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gQ29uZmlndXJlIGlucHV0XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItdGltZS1pbnB1dCcsIHRydWUpO1xuICAgIHRoaXMuX2lucHV0RWxlbWVudC50eXBlID0gJ3RleHQnO1xuICAgIHRoaXMuX2lucHV0RWxlbWVudC5pbnB1dE1vZGUgPSAnbnVtZXJpYyc7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50Lm1heExlbmd0aCA9IDU7XG4gICAgaWYgKCF0aGlzLl9pbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIpIHtcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9ICdISDpNTSc7XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnaW5wdXQnLFxuICAgICAgKGV2ZW50OiBFdmVudCkgPT4gZm9yd2FyZEV2ZW50VG9Ib3N0KGV2ZW50LCB0aGlzKSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5fcHJldmVudENoYXJJbnNlcnQoZXZlbnQpLFxuICAgICAgeyBzaWduYWw6IHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwgfSxcbiAgICApO1xuICAgIHRoaXMuX2lucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NoYW5nZScsXG4gICAgICAoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl91cGRhdGVWYWx1ZSgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMuX2lucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NoYW5nZScsXG4gICAgICAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFuZ2UoZXZlbnQpO1xuICAgICAgICB0aGlzLl91cGRhdGVBY2Nlc3NpYmlsaXR5TWVzc2FnZSgpO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYHZhbHVlYCBhbmQgYHZhbHVlQXNEYXRlYC4gVGhlIGRpcmVjdCB1cGRhdGUgb24gdGhlIGBfaW5wdXRFbGVtZW50YCBpcyByZXF1aXJlZFxuICAgKiB0byBmb3JjZSB0aGUgaW5wdXQgY2hhbmdlIHdoZW4gdGhlIHR5cGVkIHZhbHVlIGlzIHRoZSBzYW1lIG9mIHRoZSBjdXJyZW50IG9uZS5cbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBSZXNldCBhY2Nlc3NpYmlsaXR5IG1lc3NhZ2VcbiAgICBpZiAodGhpcy5fc3RhdHVzQ29udGFpbmVyKSB7XG4gICAgICB0aGlzLl9zdGF0dXNDb250YWluZXIuaW5uZXJUZXh0ID0gJyc7XG4gICAgfVxuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGltZSA9IHRoaXMuX3BhcnNlSW5wdXQodmFsdWUpO1xuICAgIGNvbnN0IGlzVGltZVZhbGlkID0gISF0aW1lICYmIHRoaXMuX2lzVGltZVZhbGlkKHRpbWUpO1xuICAgIGNvbnN0IGlzRW1wdHlPclZhbGlkID0gIXZhbHVlIHx8IHZhbHVlLnRyaW0oKSA9PT0gJycgfHwgaXNUaW1lVmFsaWQ7XG4gICAgaWYgKGlzRW1wdHlPclZhbGlkICYmIHRpbWUpIHtcbiAgICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgUmVhY3Qgb25DaGFuZ2UgZXZlbnQsIHdlIGhhdmUgdG8gZ2V0IHRoZSBzZXR0ZXIgYW5kIGNhbGwgaXQuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExNjAwI2lzc3VlY29tbWVudC0zNDU4MTMxMzBcbiAgICAgIGNvbnN0IHNldFZhbHVlID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZSwgJ3ZhbHVlJykhLnNldCE7XG4gICAgICBzZXRWYWx1ZS5jYWxsKHRoaXMuX2lucHV0RWxlbWVudCwgdGhpcy5fZm9ybWF0VmFsdWUodGltZSkpO1xuXG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBjb25zdCB3YXNWYWxpZCA9ICF0aGlzLl9pbnB1dEVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJyk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW52YWxpZCcsICFpc0VtcHR5T3JWYWxpZCk7XG4gICAgaWYgKHdhc1ZhbGlkICE9PSBpc0VtcHR5T3JWYWxpZCkge1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbkNoYW5nZS5lbWl0KHsgdmFsaWQ6IGlzRW1wdHlPclZhbGlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbWl0cyB0aGUgY2hhbmdlIGV2ZW50LiAqL1xuICBwcml2YXRlIF9lbWl0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGZvcndhcmRFdmVudFRvSG9zdChldmVudCwgdGhpcyk7XG4gICAgdGhpcy5fZGlkQ2hhbmdlLmVtaXQoKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSByaWdodCBmb3JtYXQgZm9yIHRoZSBgdmFsdWVgIHByb3BlcnR5LiAqL1xuICBwcml2YXRlIF9mb3JtYXRWYWx1ZSh0aW1lOiBUaW1lKTogc3RyaW5nIHtcbiAgICBjb25zdCBob3VycyA9IFN0cmluZyh0aW1lLmhvdXJzKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBTdHJpbmcodGltZS5taW51dGVzKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBgJHtob3Vyc306JHttaW51dGVzfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmlnaHQgZm9ybWF0IGZvciB0aGUgYHZhbHVlQXNEYXRlYCBwcm9wZXJ0eTpcbiAgICogc2V0cyB0aGUgc3RhcnQgZGF0ZSBhdCAwMS4wMS4xOTcwLCB0aGVuIGFkZHMgdGhlIHR5cGVkIGhvdXJzL21pbnV0ZXMuXG4gICAqL1xuICBwcml2YXRlIF9mb3JtYXRWYWx1ZUFzRGF0ZSh0aW1lOiBUaW1lIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXRpbWUgfHwgIXRoaXMuX2lzVGltZVZhbGlkKHRpbWUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUobmV3IERhdGUoMCkuc2V0SG91cnModGltZS5ob3VycywgdGltZS5taW51dGVzLCAwLCAwKSk7XG4gIH1cblxuICAvKiogQ2hlY2tzIGlmIHZhbHVlcyBvZiBob3VycyBhbmQgbWludXRlcyBhcmUgcG9zc2libGUsIHRvIGF2b2lkIG5vbi1leGlzdGVudCB0aW1lcy4gKi9cbiAgcHJpdmF0ZSBfaXNUaW1lVmFsaWQodGltZTogVGltZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aW1lLmhvdXJzIDwgMjQgJiYgdGltZS5taW51dGVzIDwgNjA7XG4gIH1cblxuICAvKiogVmFsaWRhdGUgaW5wdXQgYWdhaW5zdCB0aGUgZGVmaW5lZCBSZWdFeHBzLiAqL1xuICBwcml2YXRlIF9wYXJzZUlucHV0KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBUaW1lIHwgbnVsbCB7XG4gICAgY29uc3QgdHJpbW1lZFZhbHVlID0gdmFsdWU/LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRWYWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBjYXNlOiB0aGUgaW5wdXQgaXMgMyBvciA0IGRpZ2l0czsgc3BsaXQgbGlrZTogQUI/OkNEXG4gICAgY29uc3QgbWF0Y2ggPSB0cmltbWVkVmFsdWUubWF0Y2goUkVHRVhfR1JPVVBTX1dJVEhPVVRfQ09MT04pO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgcmV0dXJuIHsgaG91cnM6ICttYXRjaFsxXSB8fCAwLCBtaW51dGVzOiArbWF0Y2hbMl0gfHwgMCB9O1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoQ29sb24gPSB0cmltbWVkVmFsdWUubWF0Y2goUkVHRVhfR1JPVVBTX1dJVEhfQ09MT04pO1xuICAgIGlmIChtYXRjaENvbG9uKSB7XG4gICAgICByZXR1cm4geyBob3VyczogK21hdGNoQ29sb25bMV0gfHwgMCwgbWludXRlczogK21hdGNoQ29sb25bMl0gfHwgMCB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqICBPbmx5IGFsbG93IHR5cGluZyBudW1iZXJzIGFuZCBzZXBhcmF0b3Iga2V5cy4gKi9cbiAgcHJpdmF0ZSBfcHJldmVudENoYXJJbnNlcnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBhbHdheXNBbGxvd2VkID0gW1xuICAgICAgJ0JhY2tzcGFjZScsXG4gICAgICAnVGFiJyxcbiAgICAgICdFbnRlcicsXG4gICAgICAnQXJyb3dVcCcsXG4gICAgICAnQXJyb3dEb3duJyxcbiAgICAgICdBcnJvd0xlZnQnLFxuICAgICAgJ0Fycm93UmlnaHQnLFxuICAgICAgJ0hvbWUnLFxuICAgICAgJ0VuZCcsXG4gICAgICAnUGFnZVVwJyxcbiAgICAgICdQYWdlRG93bicsXG4gICAgICAnRGVsZXRlJyxcbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgIWV2ZW50LmN0cmxLZXkgJiZcbiAgICAgICFldmVudC5hbHRLZXkgJiZcbiAgICAgICFldmVudC5tZXRhS2V5ICYmXG4gICAgICAhYWx3YXlzQWxsb3dlZC5pbmNsdWRlcyhldmVudC5rZXkpICYmXG4gICAgICAhUkVHRVhfQUxMT1dFRF9DSEFSQUNURVJTLnRlc3QoZXZlbnQua2V5KVxuICAgICkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYSBwcm9ncmFtbWF0aWMgYXBwcm9hY2ggdG8gYXZvaWQgaW5pdGlhbCBzZXR0aW5nIHRoZSBtZXNzYWdlXG4gIC8vIGFuZCB0byBub3QgaW1tZWRpYXRlbHkgY2hhbmdlIG91dHB1dCBpZiBsYW5ndWFnZSBzaG91bGQgY2hhbmdlIChubyByZWFzb24gdG8gcmVhZCBvdXQgbWVzc2FnZSkuXG4gIHByaXZhdGUgX3VwZGF0ZUFjY2Vzc2liaWxpdHlNZXNzYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkID0gIXRoaXMuX2lucHV0RWxlbWVudCEuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJyk7XG4gICAgaWYgKCF2YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXR1c0NvbnRhaW5lci5pbm5lclRleHQgPSBgJHtpMThuVGltZUlucHV0Q2hhbmdlW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50Py52YWx1ZVxuICAgIH0uYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHBcbiAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9zdGF0dXNDb250YWluZXIgPSBlbCBhcyBIVE1MUGFyYWdyYXBoRWxlbWVudCkpfVxuICAgICAgPjwvcD5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdGltZS1pbnB1dCc6IFNiYlRpbWVJbnB1dEVsZW1lbnQ7XG4gIH1c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
@@ -47,10 +47,13 @@ export declare class SbbToastElement extends SbbToastElement_base {
47
47
  * If there are other opened toasts in the page, close them first.
48
48
  */
49
49
  open(): void;
50
+ private _isZeroAnimationDuration;
50
51
  /**
51
52
  * Close the toast.
52
53
  */
53
54
  close(): void;
55
+ private _handleClosing;
56
+ private _handleOpening;
54
57
  private _onClick;
55
58
  connectedCallback(): void;
56
59
  disconnectedCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../../src/elements/toast/toast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAK1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAYnE,OAAO,iCAAiC,CAAC;AAEzC,KAAK,wBAAwB,GAAG,KAAK,GAAG,QAAQ,CAAC;AACjD,KAAK,0BAA0B,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,GAAG,wBAAwB,IAAI,0BAA0B,EAAE,CAAC;;AAK3F;;;;;;;;;;;;;GAaG;AACH,qBAGM,eAAgB,SAAQ,oBAA4D;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;OAGG;IACH,SAEgB,OAAO,EAAE,MAAM,CAAQ;IAEvC,6CAA6C;IAC7C,SAA6C,QAAQ,EAAE,gBAAgB,CAAmB;IAE1F,4CAA4C;IAC5C,SAEgB,WAAW,EAAE,OAAO,CAAS;IAE7C;;;OAGG;IACH,SAA4B,UAAU,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAY;IAElF,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IAEpD;;;OAGG;IACH,OAAO,KAAK,KAAK,GAUhB;IAED;;;OAGG;IACI,IAAI,IAAI,IAAI;IAYnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAapB,OAAO,CAAC,QAAQ;IAQA,iBAAiB,IAAI,IAAI;IAUzB,oBAAoB,IAAI,IAAI;IAQ5C;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;cAQN,MAAM,IAAI,cAAc;CAiC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../../src/elements/toast/toast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAK1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAYnE,OAAO,iCAAiC,CAAC;AAEzC,KAAK,wBAAwB,GAAG,KAAK,GAAG,QAAQ,CAAC;AACjD,KAAK,0BAA0B,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,GAAG,wBAAwB,IAAI,0BAA0B,EAAE,CAAC;;AAK3F;;;;;;;;;;;;;GAaG;AACH,qBAGM,eAAgB,SAAQ,oBAA4D;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;OAGG;IACH,SAEgB,OAAO,EAAE,MAAM,CAAQ;IAEvC,6CAA6C;IAC7C,SAA6C,QAAQ,EAAE,gBAAgB,CAAmB;IAE1F,4CAA4C;IAC5C,SAEgB,WAAW,EAAE,OAAO,CAAS;IAE7C;;;OAGG;IACH,SAA4B,UAAU,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAY;IAElF,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IAEpD;;;OAGG;IACH,OAAO,KAAK,KAAK,GAUhB;IAED;;;OAGG;IACI,IAAI,IAAI,IAAI;IAkBnB,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;IACI,KAAK,IAAI,IAAI;IAkBpB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,QAAQ;IAQA,iBAAiB,IAAI,IAAI;IAUzB,oBAAoB,IAAI,IAAI;IAQ5C;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;cAQN,MAAM,IAAI,cAAc;CAiC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF"}
@@ -11,7 +11,7 @@ import { customElement, property } from "lit/decorators.js";
11
11
  import { SbbOpenCloseBaseElement } from "./core/base-elements.js";
12
12
  import { SbbConnectedAbortController, SbbLanguageController } from "./core/controllers.js";
13
13
  import { slotState, forceType } from "./core/decorators.js";
14
- import { isFirefox } from "./core/dom.js";
14
+ import { isFirefox, isZeroAnimationDuration, isLean } from "./core/dom.js";
15
15
  import { composedPathHasAttribute } from "./core/eventing.js";
16
16
  import { i18nCloseAlert } from "./core/i18n.js";
17
17
  import { SbbHydrationMixin } from "./core/mixins.js";
@@ -26,7 +26,7 @@ const style = css`*,
26
26
  :host {
27
27
  --sbb-toast-max-width: 25rem;
28
28
  --sbb-toast-animation-duration: var(
29
- --sbb-disable-animation-zero-time,
29
+ --sbb-disable-animation-duration,
30
30
  var(--sbb-animation-duration-6x)
31
31
  );
32
32
  --sbb-toast-animation-timing-function: ease;
@@ -280,6 +280,12 @@ let SbbToastElement = (() => {
280
280
  }
281
281
  this.state = "opening";
282
282
  this._closeOtherToasts();
283
+ if (this._isZeroAnimationDuration()) {
284
+ this._handleOpening();
285
+ }
286
+ }
287
+ _isZeroAnimationDuration() {
288
+ return isZeroAnimationDuration(this, "--sbb-toast-animation-duration");
283
289
  }
284
290
  /**
285
291
  * Close the toast.
@@ -293,6 +299,20 @@ let SbbToastElement = (() => {
293
299
  }
294
300
  clearTimeout(this._closeTimeout);
295
301
  this.state = "closing";
302
+ if (this._isZeroAnimationDuration()) {
303
+ this._handleClosing();
304
+ }
305
+ }
306
+ _handleClosing() {
307
+ this.state = "closed";
308
+ this.didClose.emit();
309
+ }
310
+ _handleOpening() {
311
+ this.state = "opened";
312
+ this.didOpen.emit();
313
+ if (this.timeout) {
314
+ this._closeTimeout = setTimeout(() => this.close(), this.timeout);
315
+ }
296
316
  }
297
317
  // Close the toast on click of any element that has the 'sbb-toast-close' attribute.
298
318
  _onClick(event) {
@@ -330,7 +350,7 @@ let SbbToastElement = (() => {
330
350
  const buttons = slotNodes.filter((el) => el.nodeName === "SBB-TRANSPARENT-BUTTON" || el.nodeName === "SBB-TRANSPARENT-BUTTON-LINK");
331
351
  buttons.forEach((btn) => {
332
352
  btn.negative = true;
333
- btn.size = "m";
353
+ btn.size = isLean() ? "s" : "m";
334
354
  });
335
355
  const links = slotNodes.filter((el) => ["SBB-LINK", "SBB-LINK-BUTTON", "SBB-LINK-STATIC"].includes(el.nodeName));
336
356
  links.forEach((link) => {
@@ -341,15 +361,9 @@ let SbbToastElement = (() => {
341
361
  // To avoid entering a corrupt state, exit when state is not expected.
342
362
  _onToastAnimationEnd(event) {
343
363
  if (event.animationName === "open" && this.state === "opening") {
344
- this.state = "opened";
345
- this.didOpen.emit();
346
- if (this.timeout) {
347
- this._closeTimeout = setTimeout(() => this.close(), this.timeout);
348
- }
349
- }
350
- if (event.animationName === "close" && this.state === "closing") {
351
- this.state = "closed";
352
- this.didClose.emit();
364
+ this._handleOpening();
365
+ } else if (event.animationName === "close" && this.state === "closing") {
366
+ this._handleClosing();
353
367
  }
354
368
  }
355
369
  /**
@@ -421,4 +435,4 @@ let SbbToastElement = (() => {
421
435
  export {
422
436
  SbbToastElement
423
437
  };
424
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2FzdC90b2FzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCwgU2JiVHJhbnNwYXJlbnRCdXR0b25MaW5rRWxlbWVudCB9IGZyb20gJy4uL2J1dHRvbi5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIsIFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBzbG90U3RhdGUgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNGaXJlZm94IH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlIH0gZnJvbSAnLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VBbGVydCB9IGZyb20gJy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi9pY29uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiTGlua0J1dHRvbkVsZW1lbnQsIFNiYkxpbmtFbGVtZW50LCBTYmJMaW5rU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2xpbmsuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90b2FzdC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uL2J1dHRvbi90cmFuc3BhcmVudC1idXR0b24uanMnO1xuXG50eXBlIFNiYlRvYXN0UG9zaXRpb25WZXJ0aWNhbCA9ICd0b3AnIHwgJ2JvdHRvbSc7XG50eXBlIFNiYlRvYXN0UG9zaXRpb25Ib3Jpem9udGFsID0gJ2xlZnQnIHwgJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyB8ICdlbmQnO1xuZXhwb3J0IHR5cGUgU2JiVG9hc3RQb3NpdGlvbiA9IGAke1NiYlRvYXN0UG9zaXRpb25WZXJ0aWNhbH0tJHtTYmJUb2FzdFBvc2l0aW9uSG9yaXpvbnRhbH1gO1xuXG4vLyBBIGdsb2JhbCBjb2xsZWN0aW9uIG9mIGV4aXN0aW5nIHRvYXN0c1xuY29uc3QgdG9hc3RSZWZzID0gbmV3IFNldDxTYmJUb2FzdEVsZW1lbnQ+KCk7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0b2FzdCBub3RpZmljYXRpb24uXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi10b2FzdGAuXG4gKiBAc2xvdCBpY29uIC0gQXNzaWduIGEgY3VzdG9tIGljb24gdmlhIHNsb3QuXG4gKiBAc2xvdCBhY3Rpb24gLSBQcm92aWRlIGEgY3VzdG9tIGFjdGlvbiBmb3IgdGhpcyB0b2FzdC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItdG9hc3RgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItdG9hc3RgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXRvYXN0YCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi10b2FzdGAgaXMgY2xvc2VkLlxuICogQGNzc3Byb3AgWy0tc2JiLXRvYXN0LXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRvYXN0JylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiVG9hc3RFbGVtZW50IGV4dGVuZHMgU2JiSWNvbk5hbWVNaXhpbihTYmJIeWRyYXRpb25NaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsZW5ndGggb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgYXV0b21hdGljYWxseSBkaXNtaXNzaW5nIHRoZSB0b2FzdC5cbiAgICogSWYgMCwgaXQgc3RheXMgb3BlbiBpbmRlZmluaXRlbHkuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aW1lb3V0OiBudW1iZXIgPSA2MDAwO1xuXG4gIC8qKiBUaGUgcG9zaXRpb24gd2hlcmUgdG8gcGxhY2UgdGhlIHRvYXN0LiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBwb3NpdGlvbjogU2JiVG9hc3RQb3NpdGlvbiA9ICdib3R0b20tY2VudGVyJztcblxuICAvKiogV2hldGhlciB0aGUgdG9hc3QgaGFzIGEgY2xvc2UgYnV0dG9uLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGlzbWlzc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIEFSSUEgcG9saXRlbmVzcyBsZXZlbC5cbiAgICogQ2hlY2sgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQWNjZXNzaWJpbGl0eS9BUklBL0FSSUFfTGl2ZV9SZWdpb25zI2xpdmVfcmVnaW9ucyBmb3IgZnVydGhlciBpbmZvXG4gICAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgcG9saXRlbmVzczogJ3BvbGl0ZScgfCAnYXNzZXJ0aXZlJyB8ICdvZmYnID0gJ3BvbGl0ZSc7XG5cbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBSb2xlIG9mIHRoZSBsaXZlIHJlZ2lvbi4gVGhpcyBpcyBvbmx5IGZvciBGaXJlZm94IGFzIHRoZXJlIGlzIGEga25vd24gaXNzdWUgd2hlcmUgRmlyZWZveCArXG4gICAqIEpBV1MgZG9lcyBub3QgcmVhZCBvdXQgYXJpYS1saXZlIG1lc3NhZ2UuXG4gICAqL1xuICBwcml2YXRlIGdldCBfcm9sZSgpOiAnc3RhdHVzJyB8ICdhbGVydCcgfCB1bmRlZmluZWQge1xuICAgIGlmICghaXNGaXJlZm94KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucG9saXRlbmVzcyA9PT0gJ3BvbGl0ZScpIHtcbiAgICAgIHJldHVybiAnc3RhdHVzJztcbiAgICB9IGVsc2UgaWYgKHRoaXMucG9saXRlbmVzcyA9PT0gJ2Fzc2VydGl2ZScpIHtcbiAgICAgIHJldHVybiAnYWxlcnQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSB0b2FzdC5cbiAgICogSWYgdGhlcmUgYXJlIG90aGVyIG9wZW5lZCB0b2FzdHMgaW4gdGhlIHBhZ2UsIGNsb3NlIHRoZW0gZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fY2xvc2VPdGhlclRvYXN0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSB0b2FzdC5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbENsb3NlLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICB9XG5cbiAgLy8gQ2xvc2UgdGhlIHRvYXN0IG9uIGNsaWNrIG9mIGFueSBlbGVtZW50IHRoYXQgaGFzIHRoZSAnc2JiLXRvYXN0LWNsb3NlJyBhdHRyaWJ1dGUuXG4gIHByaXZhdGUgX29uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2xvc2VFbGVtZW50ID0gY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlKGV2ZW50LCAnc2JiLXRvYXN0LWNsb3NlJywgdGhpcyk7XG5cbiAgICBpZiAoY2xvc2VFbGVtZW50ICYmICFjbG9zZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLl9hYm9ydC5zaWduYWw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB0aGlzLl9vbkNsaWNrKGUpLCB7IHNpZ25hbCB9KTtcblxuICAgIC8vIEFkZCB0aGlzIHRvYXN0IHRvIHRoZSBnbG9iYWwgY29sbGVjdGlvblxuICAgIHRvYXN0UmVmcy5hZGQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcblxuICAgIC8vIFJlbW92ZSB0aGlzIGluc3RhbmNlXG4gICAgdG9hc3RSZWZzLmRlbGV0ZSh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTbG90dGVkIHRleHQgbm9kZXMgYXJlIG5vdCByZWFkIGNvcnJlY3RseSBieSBzY3JlZW4gcmVhZGVycyBvbiBDaHJvbWUuXG4gICAqIFRvIGFkZHJlc3MgdGhlIHByb2JsZW0sIGlmIHRoZXJlIGlzIGF0IGxlYXN0IGEgcm9vdCB0ZXh0IG5vZGUsXG4gICAqIHdlIHdyYXAgdGhlIHdob2xlIGNvbnRlbnQgaW4gYSA8c3Bhbj4gdGFnXG4gICAqL1xuICBwcml2YXRlIF9vbkNvbnRlbnRTbG90Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZE5vZGVzKCk7XG5cbiAgICBpZiAoc2xvdE5vZGVzLnNvbWUoKGVsKSA9PiBlbC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpKSB7XG4gICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgdGhpcy5hcHBlbmRDaGlsZChzcGFuKTtcbiAgICAgIHNwYW4uYXBwZW5kKC4uLnNsb3ROb2Rlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25BY3Rpb25TbG90Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZE5vZGVzKCk7XG5cbiAgICAvLyBGb3JjZSB0aGUgdmlzdWFsIHN0YXRlIG9uIHNsb3R0ZWQgYnV0dG9uc1xuICAgIGNvbnN0IGJ1dHRvbnM6IChTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnQgfCBTYmJUcmFuc3BhcmVudEJ1dHRvbkxpbmtFbGVtZW50KVtdID1cbiAgICAgIHNsb3ROb2Rlcy5maWx0ZXIoXG4gICAgICAgIChlbCkgPT5cbiAgICAgICAgICBlbC5ub2RlTmFtZSA9PT0gJ1NCQi1UUkFOU1BBUkVOVC1CVVRUT04nIHx8IGVsLm5vZGVOYW1lID09PSAnU0JCLVRSQU5TUEFSRU5ULUJVVFRPTi1MSU5LJyxcbiAgICAgICkgYXMgKFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCB8IFNiYlRyYW5zcGFyZW50QnV0dG9uTGlua0VsZW1lbnQpW107XG4gICAgYnV0dG9ucy5mb3JFYWNoKChidG46IFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCB8IFNiYlRyYW5zcGFyZW50QnV0dG9uTGlua0VsZW1lbnQpID0+IHtcbiAgICAgIGJ0bi5uZWdhdGl2ZSA9IHRydWU7XG4gICAgICBidG4uc2l6ZSA9ICdtJztcbiAgICB9KTtcblxuICAgIC8vIEZvcmNlIG5lZ2F0aXZlIG9uIGlubGluZSBzbG90dGVkIGxpbmtzXG4gICAgY29uc3QgbGlua3MgPSBzbG90Tm9kZXMuZmlsdGVyKChlbCkgPT5cbiAgICAgIFsnU0JCLUxJTksnLCAnU0JCLUxJTkstQlVUVE9OJywgJ1NCQi1MSU5LLVNUQVRJQyddLmluY2x1ZGVzKGVsLm5vZGVOYW1lKSxcbiAgICApIGFzIChTYmJMaW5rRWxlbWVudCB8IFNiYkxpbmtCdXR0b25FbGVtZW50IHwgU2JiTGlua1N0YXRpY0VsZW1lbnQpW107XG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgbGluay5uZWdhdGl2ZSA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uVG9hc3RBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgLy8gT24gdG9hc3Qgb3BlbmVkXG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuZGlkT3Blbi5lbWl0KCk7XG5cbiAgICAgIC8vIFN0YXJ0IHRoZSBjb3VudGRvd24gdG8gY2xvc2UgaXRcbiAgICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcbiAgICAgICAgdGhpcy5fY2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMudGltZW91dCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gT24gdG9hc3QgY2xvc2VkXG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLmRpZENsb3NlLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2luY2Ugd2UgZG8gbm90IHN0YWNrIHRvYXN0cywgd2UgZm9yY2UgdGhlIGNsb3Npbmcgb24gb3RoZXIgZXhpc3Rpbmcgb3BlbmVkIG9uZXNcbiAgICovXG4gIHByaXZhdGUgX2Nsb3NlT3RoZXJUb2FzdHMoKTogdm9pZCB7XG4gICAgdG9hc3RSZWZzLmZvckVhY2goKHQpID0+IHtcbiAgICAgIGlmICh0LmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpID09PSAnb3BlbmVkJykge1xuICAgICAgICB0LmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItdG9hc3RfX292ZXJsYXktY29udGFpbmVyXCI+XG4gICAgICAgICR7LyogRmlyZWZveCBuZWVkcyAncm9sZScgdG8gZW5hYmxlIHNjcmVlbiByZWFkZXJzICovICcnfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzYmItdG9hc3RcIlxuICAgICAgICAgIHJvbGU9JHt0aGlzLl9yb2xlID8/IG5vdGhpbmd9XG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uVG9hc3RBbmltYXRpb25FbmR9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRvYXN0X19pY29uXCI+JHt0aGlzLnJlbmRlckljb25TbG90KCl9PC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRvYXN0X19jb250ZW50XCIgYXJpYS1saXZlPSR7dGhpcy5wb2xpdGVuZXNzfT5cbiAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fb25Db250ZW50U2xvdENoYW5nZX0+PC9zbG90PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10b2FzdF9fYWN0aW9uXCI+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwiYWN0aW9uXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9vbkFjdGlvblNsb3RDaGFuZ2V9PlxuICAgICAgICAgICAgICAke3RoaXMuZGlzbWlzc2libGVcbiAgICAgICAgICAgICAgICA/IGh0bWxgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRvYXN0X19hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtpMThuQ2xvc2VBbGVydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICAgc2JiLXRvYXN0LWNsb3NlXG4gICAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPmBcbiAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICA8L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvYXN0JzogU2JiVG9hc3RFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLE1BQU0sZ0NBQWdCO0lBbUJoQixtQkFBZSxNQUFBOztBQUZwQixNQUFBLG1CQUFBLENBQUEsY0FBYyxXQUFXLEdBQ3pCLFdBQVc7Ozs7QUFDa0IsTUFBQSxjQUFBLGlCQUFpQixrQkFBa0IsdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFBbkUsRUFBQSxtQkFBUSxZQUE0RDtBQUFBOztBQVN4RjtBQUc2QjtBQUs3QjtBQU1ZO0FBZEkseUJBQUEsMkJBQUEsa0JBQUEsTUFBQSx1QkFBa0IsR0FBSTtBQUdPLHlCQUFBLDZCQUFBLGtCQUFBLE1BQUEsMEJBQUEsR0FBQSxrQkFBQSxNQUFBLHdCQUE2QixlQUFlO0FBS3pFLHlCQUFBLGdDQUFBLGtCQUFBLE1BQUEsMkJBQUEsR0FBQSxrQkFBQSxNQUFBLDJCQUF1QixLQUFLO0FBTWhCLHlCQUFBLCtCQUFBLGtCQUFBLE1BQUEsOEJBQUEsR0FBQSxrQkFBQSxNQUFBLDBCQUE2QyxRQUFRO0FBRXpFLFdBQUEsZ0JBQThDLGtCQUFBLE1BQUEsNkJBQUE7QUFDOUMsV0FBQSxTQUFTLElBQUksNEJBQTRCLElBQUk7QUFDN0MsV0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQWxCbEQsSUFBZ0IsVUFBdUI7QUFBQSxh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
438
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2FzdC90b2FzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCwgU2JiVHJhbnNwYXJlbnRCdXR0b25MaW5rRWxlbWVudCB9IGZyb20gJy4uL2J1dHRvbi5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIsIFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBzbG90U3RhdGUgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNGaXJlZm94LCBpc0xlYW4sIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlIH0gZnJvbSAnLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VBbGVydCB9IGZyb20gJy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi9pY29uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiTGlua0J1dHRvbkVsZW1lbnQsIFNiYkxpbmtFbGVtZW50LCBTYmJMaW5rU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2xpbmsuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90b2FzdC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uL2J1dHRvbi90cmFuc3BhcmVudC1idXR0b24uanMnO1xuXG50eXBlIFNiYlRvYXN0UG9zaXRpb25WZXJ0aWNhbCA9ICd0b3AnIHwgJ2JvdHRvbSc7XG50eXBlIFNiYlRvYXN0UG9zaXRpb25Ib3Jpem9udGFsID0gJ2xlZnQnIHwgJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyB8ICdlbmQnO1xuZXhwb3J0IHR5cGUgU2JiVG9hc3RQb3NpdGlvbiA9IGAke1NiYlRvYXN0UG9zaXRpb25WZXJ0aWNhbH0tJHtTYmJUb2FzdFBvc2l0aW9uSG9yaXpvbnRhbH1gO1xuXG4vLyBBIGdsb2JhbCBjb2xsZWN0aW9uIG9mIGV4aXN0aW5nIHRvYXN0c1xuY29uc3QgdG9hc3RSZWZzID0gbmV3IFNldDxTYmJUb2FzdEVsZW1lbnQ+KCk7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0b2FzdCBub3RpZmljYXRpb24uXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi10b2FzdGAuXG4gKiBAc2xvdCBpY29uIC0gQXNzaWduIGEgY3VzdG9tIGljb24gdmlhIHNsb3QuXG4gKiBAc2xvdCBhY3Rpb24gLSBQcm92aWRlIGEgY3VzdG9tIGFjdGlvbiBmb3IgdGhpcyB0b2FzdC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItdG9hc3RgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItdG9hc3RgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXRvYXN0YCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi10b2FzdGAgaXMgY2xvc2VkLlxuICogQGNzc3Byb3AgWy0tc2JiLXRvYXN0LXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRvYXN0JylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiVG9hc3RFbGVtZW50IGV4dGVuZHMgU2JiSWNvbk5hbWVNaXhpbihTYmJIeWRyYXRpb25NaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsZW5ndGggb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgYXV0b21hdGljYWxseSBkaXNtaXNzaW5nIHRoZSB0b2FzdC5cbiAgICogSWYgMCwgaXQgc3RheXMgb3BlbiBpbmRlZmluaXRlbHkuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aW1lb3V0OiBudW1iZXIgPSA2MDAwO1xuXG4gIC8qKiBUaGUgcG9zaXRpb24gd2hlcmUgdG8gcGxhY2UgdGhlIHRvYXN0LiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBwb3NpdGlvbjogU2JiVG9hc3RQb3NpdGlvbiA9ICdib3R0b20tY2VudGVyJztcblxuICAvKiogV2hldGhlciB0aGUgdG9hc3QgaGFzIGEgY2xvc2UgYnV0dG9uLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGlzbWlzc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIEFSSUEgcG9saXRlbmVzcyBsZXZlbC5cbiAgICogQ2hlY2sgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQWNjZXNzaWJpbGl0eS9BUklBL0FSSUFfTGl2ZV9SZWdpb25zI2xpdmVfcmVnaW9ucyBmb3IgZnVydGhlciBpbmZvXG4gICAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgcG9saXRlbmVzczogJ3BvbGl0ZScgfCAnYXNzZXJ0aXZlJyB8ICdvZmYnID0gJ3BvbGl0ZSc7XG5cbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBSb2xlIG9mIHRoZSBsaXZlIHJlZ2lvbi4gVGhpcyBpcyBvbmx5IGZvciBGaXJlZm94IGFzIHRoZXJlIGlzIGEga25vd24gaXNzdWUgd2hlcmUgRmlyZWZveCArXG4gICAqIEpBV1MgZG9lcyBub3QgcmVhZCBvdXQgYXJpYS1saXZlIG1lc3NhZ2UuXG4gICAqL1xuICBwcml2YXRlIGdldCBfcm9sZSgpOiAnc3RhdHVzJyB8ICdhbGVydCcgfCB1bmRlZmluZWQge1xuICAgIGlmICghaXNGaXJlZm94KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucG9saXRlbmVzcyA9PT0gJ3BvbGl0ZScpIHtcbiAgICAgIHJldHVybiAnc3RhdHVzJztcbiAgICB9IGVsc2UgaWYgKHRoaXMucG9saXRlbmVzcyA9PT0gJ2Fzc2VydGl2ZScpIHtcbiAgICAgIHJldHVybiAnYWxlcnQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSB0b2FzdC5cbiAgICogSWYgdGhlcmUgYXJlIG90aGVyIG9wZW5lZCB0b2FzdHMgaW4gdGhlIHBhZ2UsIGNsb3NlIHRoZW0gZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fY2xvc2VPdGhlclRvYXN0cygpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXRvYXN0LWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSB0b2FzdC5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbENsb3NlLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbG9zaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICB0aGlzLmRpZENsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuZGlkT3Blbi5lbWl0KCk7XG5cbiAgICAvLyBTdGFydCB0aGUgY291bnRkb3duIHRvIGNsb3NlIGl0XG4gICAgaWYgKHRoaXMudGltZW91dCkge1xuICAgICAgdGhpcy5fY2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMudGltZW91dCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2xvc2UgdGhlIHRvYXN0IG9uIGNsaWNrIG9mIGFueSBlbGVtZW50IHRoYXQgaGFzIHRoZSAnc2JiLXRvYXN0LWNsb3NlJyBhdHRyaWJ1dGUuXG4gIHByaXZhdGUgX29uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2xvc2VFbGVtZW50ID0gY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlKGV2ZW50LCAnc2JiLXRvYXN0LWNsb3NlJywgdGhpcyk7XG5cbiAgICBpZiAoY2xvc2VFbGVtZW50ICYmICFjbG9zZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLl9hYm9ydC5zaWduYWw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB0aGlzLl9vbkNsaWNrKGUpLCB7IHNpZ25hbCB9KTtcblxuICAgIC8vIEFkZCB0aGlzIHRvYXN0IHRvIHRoZSBnbG9iYWwgY29sbGVjdGlvblxuICAgIHRvYXN0UmVmcy5hZGQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcblxuICAgIC8vIFJlbW92ZSB0aGlzIGluc3RhbmNlXG4gICAgdG9hc3RSZWZzLmRlbGV0ZSh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTbG90dGVkIHRleHQgbm9kZXMgYXJlIG5vdCByZWFkIGNvcnJlY3RseSBieSBzY3JlZW4gcmVhZGVycyBvbiBDaHJvbWUuXG4gICAqIFRvIGFkZHJlc3MgdGhlIHByb2JsZW0sIGlmIHRoZXJlIGlzIGF0IGxlYXN0IGEgcm9vdCB0ZXh0IG5vZGUsXG4gICAqIHdlIHdyYXAgdGhlIHdob2xlIGNvbnRlbnQgaW4gYSA8c3Bhbj4gdGFnXG4gICAqL1xuICBwcml2YXRlIF9vbkNvbnRlbnRTbG90Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZE5vZGVzKCk7XG5cbiAgICBpZiAoc2xvdE5vZGVzLnNvbWUoKGVsKSA9PiBlbC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpKSB7XG4gICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgdGhpcy5hcHBlbmRDaGlsZChzcGFuKTtcbiAgICAgIHNwYW4uYXBwZW5kKC4uLnNsb3ROb2Rlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25BY3Rpb25TbG90Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZE5vZGVzKCk7XG5cbiAgICAvLyBGb3JjZSB0aGUgdmlzdWFsIHN0YXRlIG9uIHNsb3R0ZWQgYnV0dG9uc1xuICAgIGNvbnN0IGJ1dHRvbnM6IChTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnQgfCBTYmJUcmFuc3BhcmVudEJ1dHRvbkxpbmtFbGVtZW50KVtdID1cbiAgICAgIHNsb3ROb2Rlcy5maWx0ZXIoXG4gICAgICAgIChlbCkgPT5cbiAgICAgICAgICBlbC5ub2RlTmFtZSA9PT0gJ1NCQi1UUkFOU1BBUkVOVC1CVVRUT04nIHx8IGVsLm5vZGVOYW1lID09PSAnU0JCLVRSQU5TUEFSRU5ULUJVVFRPTi1MSU5LJyxcbiAgICAgICkgYXMgKFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCB8IFNiYlRyYW5zcGFyZW50QnV0dG9uTGlua0VsZW1lbnQpW107XG4gICAgYnV0dG9ucy5mb3JFYWNoKChidG46IFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCB8IFNiYlRyYW5zcGFyZW50QnV0dG9uTGlua0VsZW1lbnQpID0+IHtcbiAgICAgIGJ0bi5uZWdhdGl2ZSA9IHRydWU7XG4gICAgICBidG4uc2l6ZSA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuICAgIH0pO1xuXG4gICAgLy8gRm9yY2UgbmVnYXRpdmUgb24gaW5saW5lIHNsb3R0ZWQgbGlua3NcbiAgICBjb25zdCBsaW5rcyA9IHNsb3ROb2Rlcy5maWx0ZXIoKGVsKSA9PlxuICAgICAgWydTQkItTElOSycsICdTQkItTElOSy1CVVRUT04nLCAnU0JCLUxJTkstU1RBVElDJ10uaW5jbHVkZXMoZWwubm9kZU5hbWUpLFxuICAgICkgYXMgKFNiYkxpbmtFbGVtZW50IHwgU2JiTGlua0J1dHRvbkVsZW1lbnQgfCBTYmJMaW5rU3RhdGljRWxlbWVudClbXTtcbiAgICBsaW5rcy5mb3JFYWNoKChsaW5rKSA9PiB7XG4gICAgICBsaW5rLm5lZ2F0aXZlID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25Ub2FzdEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBPbiB0b2FzdCBvcGVuZWRcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2luY2Ugd2UgZG8gbm90IHN0YWNrIHRvYXN0cywgd2UgZm9yY2UgdGhlIGNsb3Npbmcgb24gb3RoZXIgZXhpc3Rpbmcgb3BlbmVkIG9uZXNcbiAgICovXG4gIHByaXZhdGUgX2Nsb3NlT3RoZXJUb2FzdHMoKTogdm9pZCB7XG4gICAgdG9hc3RSZWZzLmZvckVhY2goKHQpID0+IHtcbiAgICAgIGlmICh0LmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpID09PSAnb3BlbmVkJykge1xuICAgICAgICB0LmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItdG9hc3RfX292ZXJsYXktY29udGFpbmVyXCI+XG4gICAgICAgICR7LyogRmlyZWZveCBuZWVkcyAncm9sZScgdG8gZW5hYmxlIHNjcmVlbiByZWFkZXJzICovICcnfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzYmItdG9hc3RcIlxuICAgICAgICAgIHJvbGU9JHt0aGlzLl9yb2xlID8/IG5vdGhpbmd9XG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uVG9hc3RBbmltYXRpb25FbmR9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRvYXN0X19pY29uXCI+JHt0aGlzLnJlbmRlckljb25TbG90KCl9PC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRvYXN0X19jb250ZW50XCIgYXJpYS1saXZlPSR7dGhpcy5wb2xpdGVuZXNzfT5cbiAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fb25Db250ZW50U2xvdENoYW5nZX0+PC9zbG90PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10b2FzdF9fYWN0aW9uXCI+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwiYWN0aW9uXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9vbkFjdGlvblNsb3RDaGFuZ2V9PlxuICAgICAgICAgICAgICAke3RoaXMuZGlzbWlzc2libGVcbiAgICAgICAgICAgICAgICA/IGh0bWxgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRvYXN0X19hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtpMThuQ2xvc2VBbGVydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICAgc2JiLXRvYXN0LWNsb3NlXG4gICAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPmBcbiAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICA8L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvYXN0JzogU2JiVG9hc3RFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7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
@@ -4,13 +4,11 @@ import { SbbToggleOptionElement } from '../toggle-option.js';
4
4
  * It can be used as a container for two `sbb-toggle-option`, acting as a toggle button.
5
5
  *
6
6
  * @slot - Use the unnamed slot to add `<sbb-toggle-option>` elements to the toggle.
7
- * @event {CustomEvent<void>} didChange - Deprecated. used for React. Will probably be removed once React 19 is available.
8
7
  * @event {CustomEvent<void>} change - Emits whenever the toggle value changes.
9
8
  */
10
9
  export declare class SbbToggleElement extends LitElement {
11
10
  static styles: CSSResultGroup;
12
11
  static readonly events: {
13
- readonly didChange: "didChange";
14
12
  readonly change: "change";
15
13
  };
16
14
  /** Whether the toggle is disabled. */
@@ -20,7 +18,10 @@ export declare class SbbToggleElement extends LitElement {
20
18
  * the width is dynamic based on the label of the sbb-toggle-option.
21
19
  */
22
20
  accessor even: boolean;
23
- /** Size variant, either m or s. */
21
+ /**
22
+ * Size variant, either m or s.
23
+ * @default 'm' / 's' (lean)
24
+ */
24
25
  accessor size: 's' | 'm';
25
26
  /**
26
27
  * The value of the toggle. It needs to be mutable since it is updated whenever
@@ -33,11 +34,6 @@ export declare class SbbToggleElement extends LitElement {
33
34
  get options(): SbbToggleOptionElement[];
34
35
  private _loaded;
35
36
  private _toggleResizeObserver;
36
- /**
37
- * @deprecated only used for React. Will probably be removed once React 19 is available.
38
- * Emits whenever the toggle value changes.
39
- */
40
- private _didChange;
41
37
  /** Emits whenever the toggle value changes. */
42
38
  private _change;
43
39
  private _abort;
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../../../src/elements/toggle/toggle/toggle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAGnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAOb,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIlE;;;;;;GAMG;AACH,qBAKM,gBAAiB,SAAQ,UAAU;IACvC,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;MAGlB;IAEX,sCAAsC;IACtC,SAGgB,QAAQ,EAAE,OAAO,CAAS;IAE1C;;;OAGG;IACH,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC,mCAAmC;IACnC,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,CAAO;IAEnE;;;OAGG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,EAM7B;IACD,IAAW,KAAK,IAAI,MAAM,CAIzB;IACD,OAAO,CAAC,MAAM,CAAuB;IAErC,4DAA4D;IAC5D,IAAW,OAAO,IAAI,sBAAsB,EAAE,CAE7C;IAED,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,qBAAqB,CAI1B;IAEH;;;OAGG;IACH,OAAO,CAAC,UAAU,CAGf;IAEH,+CAA+C;IAC/C,OAAO,CAAC,OAAO,CAGZ;IAEH,OAAO,CAAC,MAAM,CAAyC;IAEvD,gBAAgB;IACT,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IA6BlC,iBAAiB,IAAI,IAAI;cAShB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7F,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;cA6BH,MAAM,IAAI,cAAc;CAO5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../../../src/elements/toggle/toggle/toggle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAGnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAQb,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIlE;;;;;GAKG;AACH,qBAKM,gBAAiB,SAAQ,UAAU;IACvC,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,sCAAsC;IACtC,SAGgB,QAAQ,EAAE,OAAO,CAAS;IAE1C;;;OAGG;IACH,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC;;;OAGG;IACH,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,CAAwB;IAEpF;;;OAGG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,EAM7B;IACD,IAAW,KAAK,IAAI,MAAM,CAIzB;IACD,OAAO,CAAC,MAAM,CAAuB;IAErC,4DAA4D;IAC5D,IAAW,OAAO,IAAI,sBAAsB,EAAE,CAE7C;IAED,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,qBAAqB,CAI1B;IAEH,+CAA+C;IAC/C,OAAO,CAAC,OAAO,CAGZ;IAEH,OAAO,CAAC,MAAM,CAAyC;IAEvD,gBAAgB;IACT,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IA6BlC,iBAAiB,IAAI,IAAI;cAShB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7F,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,cAAc;cA6BH,MAAM,IAAI,cAAc;CAO5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}