@sbb-esta/lyne-elements 1.15.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (680) hide show
  1. package/README.md +6 -6
  2. package/accordion/accordion.d.ts +4 -1
  3. package/accordion/accordion.d.ts.map +1 -1
  4. package/accordion.js +31 -22
  5. package/action-group/action-group.d.ts +6 -4
  6. package/action-group/action-group.d.ts.map +1 -1
  7. package/action-group.js +20 -17
  8. package/alert/alert/alert.d.ts +7 -23
  9. package/alert/alert/alert.d.ts.map +1 -1
  10. package/alert/alert-group/alert-group.d.ts +0 -4
  11. package/alert/alert-group/alert-group.d.ts.map +1 -1
  12. package/alert/alert-group.js +46 -47
  13. package/alert/alert.js +74 -132
  14. package/animation.css +4 -8
  15. package/autocomplete/autocomplete-base-element.d.ts +7 -6
  16. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  17. package/autocomplete/autocomplete.d.ts +0 -1
  18. package/autocomplete/autocomplete.d.ts.map +1 -1
  19. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +0 -1
  20. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  21. package/autocomplete-grid/autocomplete-grid-button.js +11 -11
  22. package/autocomplete-grid/autocomplete-grid.js +0 -3
  23. package/autocomplete.js +68 -67
  24. package/button/accent-button/accent-button.d.ts +19 -0
  25. package/button/accent-button/accent-button.d.ts.map +1 -0
  26. package/button/accent-button-link/accent-button-link.d.ts +19 -0
  27. package/button/accent-button-link/accent-button-link.d.ts.map +1 -0
  28. package/button/accent-button-link.d.ts +2 -0
  29. package/button/accent-button-link.d.ts.map +1 -0
  30. package/button/accent-button-link.js +17 -0
  31. package/button/accent-button-static/accent-button-static.d.ts +19 -0
  32. package/button/accent-button-static/accent-button-static.d.ts.map +1 -0
  33. package/button/accent-button-static.d.ts +2 -0
  34. package/button/accent-button-static.d.ts.map +1 -0
  35. package/button/accent-button-static.js +17 -0
  36. package/button/accent-button.d.ts +2 -0
  37. package/button/accent-button.d.ts.map +1 -0
  38. package/button/accent-button.js +17 -0
  39. package/button/common/button-common.d.ts.map +1 -1
  40. package/button/common.d.ts.map +1 -1
  41. package/button/common.js +20 -16
  42. package/button/mini-button/mini-button.d.ts +4 -3
  43. package/button/mini-button/mini-button.d.ts.map +1 -1
  44. package/button/mini-button-group/mini-button-group.d.ts +4 -1
  45. package/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  46. package/button/mini-button-group.js +12 -8
  47. package/button/mini-button.d.ts +0 -1
  48. package/button/mini-button.d.ts.map +1 -1
  49. package/button/mini-button.js +10 -20
  50. package/button.d.ts +3 -3
  51. package/button.d.ts.map +1 -1
  52. package/button.js +3 -3
  53. package/calendar.js +25 -25
  54. package/card/card/card.d.ts +4 -1
  55. package/card/card/card.d.ts.map +1 -1
  56. package/card/card.js +10 -6
  57. package/checkbox/checkbox/checkbox.d.ts +4 -6
  58. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  59. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -1
  60. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  61. package/checkbox/checkbox-group.js +14 -10
  62. package/checkbox/checkbox-panel/checkbox-panel.d.ts +4 -4
  63. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  64. package/checkbox/checkbox-panel.js +21 -18
  65. package/checkbox/checkbox.js +28 -26
  66. package/{chip/chip.d.ts → chip-label/chip-label.d.ts} +4 -4
  67. package/chip-label/chip-label.d.ts.map +1 -0
  68. package/chip-label.d.ts +2 -0
  69. package/chip-label.d.ts.map +1 -0
  70. package/chip-label.js +54 -0
  71. package/clock.js +1 -1
  72. package/container/container.js +21 -21
  73. package/container/sticky-bar/sticky-bar.d.ts +1 -0
  74. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  75. package/container/sticky-bar.js +20 -12
  76. package/core/base-elements/button-base-element.d.ts +27 -18
  77. package/core/base-elements/button-base-element.d.ts.map +1 -1
  78. package/core/base-elements/open-close-base-element.d.ts.map +1 -1
  79. package/core/base-elements.js +135 -138
  80. package/core/datetime/date-adapter.d.ts +2 -1
  81. package/core/datetime/date-adapter.d.ts.map +1 -1
  82. package/core/datetime/native-date-adapter.d.ts +1 -1
  83. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  84. package/core/datetime.js +29 -28
  85. package/core/dom/animation.d.ts +2 -0
  86. package/core/dom/animation.d.ts.map +1 -0
  87. package/core/dom/lean-context.d.ts +5 -0
  88. package/core/dom/lean-context.d.ts.map +1 -0
  89. package/core/dom.d.ts +2 -2
  90. package/core/dom.d.ts.map +1 -1
  91. package/core/dom.js +50 -55
  92. package/core/eventing/form-element-handlers.d.ts +0 -7
  93. package/core/eventing/form-element-handlers.d.ts.map +1 -1
  94. package/core/eventing.d.ts +0 -1
  95. package/core/eventing.d.ts.map +1 -1
  96. package/core/eventing.js +28 -49
  97. package/core/i18n/i18n.d.ts +4 -2
  98. package/core/i18n/i18n.d.ts.map +1 -1
  99. package/core/i18n.js +147 -140
  100. package/core/mixins/disabled-mixin.d.ts +2 -7
  101. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  102. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  103. package/core/mixins/form-associated-mixin.d.ts +1 -1
  104. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  105. package/core/mixins/form-associated-radio-button-mixin.d.ts +35 -0
  106. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -0
  107. package/core/mixins.d.ts +1 -0
  108. package/core/mixins.d.ts.map +1 -1
  109. package/core/mixins.js +347 -220
  110. package/core/styles/_index.scss +1 -0
  111. package/core/styles/core.scss +148 -0
  112. package/core/styles/image.scss +66 -0
  113. package/core/styles/mixins/animation.scss +2 -4
  114. package/core/styles/mixins/buttons.scss +7 -4
  115. package/core/styles/mixins/card.scss +1 -1
  116. package/core/styles/mixins/chip.scss +35 -35
  117. package/core/styles/mixins/image.scss +34 -0
  118. package/core/styles/mixins/overlay.scss +1 -1
  119. package/core/styles/mixins/panel.scss +1 -1
  120. package/core/styles/scrollbar.scss +44 -0
  121. package/core/styles/standard-theme.scss +2 -0
  122. package/core/styles/table.scss +4 -0
  123. package/core/testing/event-spy.d.ts +2 -1
  124. package/core/testing/event-spy.d.ts.map +1 -1
  125. package/core/testing.d.ts +0 -1
  126. package/core/testing.d.ts.map +1 -1
  127. package/core/testing.js +48 -57
  128. package/core.css +112 -0
  129. package/custom-elements.json +25961 -21672
  130. package/datepicker/common/datepicker-button.d.ts +3 -5
  131. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  132. package/datepicker/common.js +30 -29
  133. package/datepicker/datepicker/datepicker.d.ts +25 -72
  134. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  135. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -3
  136. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  137. package/datepicker/datepicker-next-day.js +10 -12
  138. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -3
  139. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  140. package/datepicker/datepicker-previous-day.js +11 -13
  141. package/datepicker/datepicker.js +129 -157
  142. package/development/accordion/accordion.d.ts +4 -1
  143. package/development/accordion/accordion.d.ts.map +1 -1
  144. package/development/accordion.js +16 -5
  145. package/development/action-group/action-group.d.ts +6 -4
  146. package/development/action-group/action-group.d.ts.map +1 -1
  147. package/development/action-group.js +10 -7
  148. package/development/alert/alert/alert.d.ts +7 -23
  149. package/development/alert/alert/alert.d.ts.map +1 -1
  150. package/development/alert/alert-group/alert-group.d.ts +0 -4
  151. package/development/alert/alert-group/alert-group.d.ts.map +1 -1
  152. package/development/alert/alert-group.js +10 -12
  153. package/development/alert/alert.js +38 -122
  154. package/development/autocomplete/autocomplete-base-element.d.ts +7 -6
  155. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  156. package/development/autocomplete/autocomplete.d.ts +0 -1
  157. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  158. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +0 -1
  159. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  160. package/development/autocomplete-grid/autocomplete-grid-button.js +6 -6
  161. package/development/autocomplete-grid/autocomplete-grid.js +1 -7
  162. package/development/autocomplete.js +23 -19
  163. package/development/button/accent-button/accent-button.d.ts +19 -0
  164. package/development/button/accent-button/accent-button.d.ts.map +1 -0
  165. package/development/button/accent-button-link/accent-button-link.d.ts +19 -0
  166. package/development/button/accent-button-link/accent-button-link.d.ts.map +1 -0
  167. package/development/button/accent-button-link.d.ts +2 -0
  168. package/development/button/accent-button-link.d.ts.map +1 -0
  169. package/development/button/accent-button-link.js +25 -0
  170. package/development/button/accent-button-static/accent-button-static.d.ts +19 -0
  171. package/development/button/accent-button-static/accent-button-static.d.ts.map +1 -0
  172. package/development/button/accent-button-static.d.ts +2 -0
  173. package/development/button/accent-button-static.d.ts.map +1 -0
  174. package/development/button/accent-button-static.js +25 -0
  175. package/development/button/accent-button.d.ts +2 -0
  176. package/development/button/accent-button.d.ts.map +1 -0
  177. package/development/button/accent-button.js +25 -0
  178. package/development/button/common/button-common.d.ts.map +1 -1
  179. package/development/button/common.d.ts.map +1 -1
  180. package/development/button/common.js +20 -16
  181. package/development/button/mini-button/mini-button.d.ts +4 -3
  182. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  183. package/development/button/mini-button-group/mini-button-group.d.ts +4 -1
  184. package/development/button/mini-button-group/mini-button-group.d.ts.map +1 -1
  185. package/development/button/mini-button-group.js +7 -3
  186. package/development/button/mini-button.d.ts +0 -1
  187. package/development/button/mini-button.d.ts.map +1 -1
  188. package/development/button/mini-button.js +14 -32
  189. package/development/button.d.ts +3 -3
  190. package/development/button.d.ts.map +1 -1
  191. package/development/button.js +3 -3
  192. package/development/calendar.js +1 -1
  193. package/development/card/card/card.d.ts +4 -1
  194. package/development/card/card/card.d.ts.map +1 -1
  195. package/development/card/card.js +8 -4
  196. package/development/checkbox/checkbox/checkbox.d.ts +4 -6
  197. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  198. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -1
  199. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  200. package/development/checkbox/checkbox-group.js +7 -3
  201. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +4 -4
  202. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  203. package/development/checkbox/checkbox-panel.js +7 -4
  204. package/development/checkbox/checkbox.js +8 -6
  205. package/development/{chip/chip.d.ts → chip-label/chip-label.d.ts} +4 -4
  206. package/development/chip-label/chip-label.d.ts.map +1 -0
  207. package/development/chip-label.d.ts +2 -0
  208. package/development/chip-label.d.ts.map +1 -0
  209. package/development/{chip.js → chip-label.js} +26 -26
  210. package/development/clock.js +1 -1
  211. package/development/container/container.js +8 -12
  212. package/development/container/sticky-bar/sticky-bar.d.ts +1 -0
  213. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  214. package/development/container/sticky-bar.js +18 -10
  215. package/development/core/base-elements/button-base-element.d.ts +27 -18
  216. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  217. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  218. package/development/core/base-elements.js +66 -74
  219. package/development/core/datetime/date-adapter.d.ts +2 -1
  220. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  221. package/development/core/datetime/native-date-adapter.d.ts +1 -1
  222. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  223. package/development/core/datetime.js +4 -3
  224. package/development/core/dom/animation.d.ts +2 -0
  225. package/development/core/dom/animation.d.ts.map +1 -0
  226. package/development/core/dom/lean-context.d.ts +5 -0
  227. package/development/core/dom/lean-context.d.ts.map +1 -0
  228. package/development/core/dom.d.ts +2 -2
  229. package/development/core/dom.d.ts.map +1 -1
  230. package/development/core/dom.js +13 -21
  231. package/development/core/eventing/form-element-handlers.d.ts +0 -7
  232. package/development/core/eventing/form-element-handlers.d.ts.map +1 -1
  233. package/development/core/eventing.d.ts +0 -1
  234. package/development/core/eventing.d.ts.map +1 -1
  235. package/development/core/eventing.js +1 -25
  236. package/development/core/i18n/i18n.d.ts +4 -2
  237. package/development/core/i18n/i18n.d.ts.map +1 -1
  238. package/development/core/i18n.js +27 -23
  239. package/development/core/mixins/disabled-mixin.d.ts +2 -7
  240. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  241. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  242. package/development/core/mixins/form-associated-mixin.d.ts +1 -1
  243. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  244. package/development/core/mixins/form-associated-radio-button-mixin.d.ts +35 -0
  245. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -0
  246. package/development/core/mixins.d.ts +1 -0
  247. package/development/core/mixins.d.ts.map +1 -1
  248. package/development/core/mixins.js +221 -30
  249. package/development/core/testing/event-spy.d.ts +2 -1
  250. package/development/core/testing/event-spy.d.ts.map +1 -1
  251. package/development/core/testing.d.ts +0 -1
  252. package/development/core/testing.d.ts.map +1 -1
  253. package/development/core/testing.js +4 -15
  254. package/development/datepicker/common/datepicker-button.d.ts +3 -5
  255. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  256. package/development/datepicker/common.js +13 -12
  257. package/development/datepicker/datepicker/datepicker.d.ts +25 -72
  258. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  259. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -3
  260. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  261. package/development/datepicker/datepicker-next-day.js +9 -15
  262. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -3
  263. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  264. package/development/datepicker/datepicker-previous-day.js +9 -15
  265. package/development/datepicker/datepicker.js +74 -115
  266. package/development/dialog/dialog/dialog.d.ts +3 -0
  267. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  268. package/development/dialog/dialog-title.js +2 -1
  269. package/development/dialog/dialog.js +46 -39
  270. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +7 -1
  271. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  272. package/development/expansion-panel/expansion-panel-header.js +3 -3
  273. package/development/expansion-panel/expansion-panel.js +32 -17
  274. package/development/file-selector/common/file-selector-common.d.ts +23 -0
  275. package/development/file-selector/common/file-selector-common.d.ts.map +1 -0
  276. package/development/file-selector/common.d.ts +2 -0
  277. package/development/file-selector/common.d.ts.map +1 -0
  278. package/development/file-selector/common.js +382 -0
  279. package/development/file-selector/file-selector/file-selector.d.ts +24 -0
  280. package/development/file-selector/file-selector/file-selector.d.ts.map +1 -0
  281. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts +33 -0
  282. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts.map +1 -0
  283. package/development/file-selector/file-selector-dropzone.d.ts +2 -0
  284. package/development/file-selector/file-selector-dropzone.d.ts.map +1 -0
  285. package/development/file-selector/file-selector-dropzone.js +181 -0
  286. package/development/file-selector/file-selector.d.ts +1 -87
  287. package/development/file-selector/file-selector.d.ts.map +1 -1
  288. package/development/file-selector/file-selector.js +52 -0
  289. package/development/file-selector.d.ts +2 -0
  290. package/development/file-selector.d.ts.map +1 -1
  291. package/development/file-selector.js +4 -552
  292. package/development/flip-card/flip-card-details.js +1 -1
  293. package/development/flip-card/flip-card-summary.js +3 -11
  294. package/development/flip-card/flip-card.js +6 -6
  295. package/development/form-field/form-field/form-field.d.ts +7 -10
  296. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  297. package/development/form-field/form-field-clear.js +6 -6
  298. package/development/form-field/form-field.js +74 -42
  299. package/development/header/common.js +2 -2
  300. package/development/header/header/header.d.ts +5 -3
  301. package/development/header/header/header.d.ts.map +1 -1
  302. package/development/header/header.js +15 -20
  303. package/development/image/image.d.ts +0 -30
  304. package/development/image/image.d.ts.map +1 -1
  305. package/development/image.js +62 -273
  306. package/development/journey-header/journey-header.d.ts +4 -1
  307. package/development/journey-header/journey-header.d.ts.map +1 -1
  308. package/development/journey-header.js +7 -3
  309. package/development/lead-container.js +2 -10
  310. package/development/link/common/link-common.d.ts.map +1 -1
  311. package/development/link/common.js +9 -8
  312. package/development/link-list/common/link-list-base.d.ts +1 -0
  313. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  314. package/development/link-list/common.js +4 -2
  315. package/development/link-list/link-list-anchor.js +4 -4
  316. package/development/loading-indicator/loading-indicator.d.ts +1 -3
  317. package/development/loading-indicator/loading-indicator.d.ts.map +1 -1
  318. package/development/loading-indicator-circle/loading-indicator-circle.d.ts +16 -0
  319. package/development/loading-indicator-circle/loading-indicator-circle.d.ts.map +1 -0
  320. package/development/loading-indicator-circle.d.ts +2 -0
  321. package/development/loading-indicator-circle.d.ts.map +1 -0
  322. package/development/loading-indicator-circle.js +146 -0
  323. package/development/loading-indicator.js +81 -182
  324. package/development/map-container/map-container.d.ts.map +1 -1
  325. package/development/map-container.js +5 -5
  326. package/development/menu/common.js +5 -5
  327. package/development/menu/menu/menu.d.ts +3 -0
  328. package/development/menu/menu/menu.d.ts.map +1 -1
  329. package/development/menu/menu.js +39 -24
  330. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  331. package/development/navigation/common.js +9 -5
  332. package/development/navigation/navigation/navigation.d.ts +3 -0
  333. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  334. package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  335. package/development/navigation/navigation-list.js +3 -2
  336. package/development/navigation/navigation-marker/navigation-marker.d.ts +2 -1
  337. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  338. package/development/navigation/navigation-marker.js +6 -4
  339. package/development/navigation/navigation-section/navigation-section.d.ts +3 -0
  340. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  341. package/development/navigation/navigation-section.js +38 -22
  342. package/development/navigation/navigation.js +42 -27
  343. package/development/notification/notification.d.ts +6 -2
  344. package/development/notification/notification.d.ts.map +1 -1
  345. package/development/notification.js +27 -21
  346. package/development/option/option/option-base-element.d.ts +0 -7
  347. package/development/option/option/option-base-element.d.ts.map +1 -1
  348. package/development/option/option.js +5 -26
  349. package/development/overlay/overlay-base-element.d.ts +2 -0
  350. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  351. package/development/overlay/overlay.d.ts +3 -0
  352. package/development/overlay/overlay.d.ts.map +1 -1
  353. package/development/overlay.js +43 -31
  354. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  355. package/development/paginator/common.js +7 -3
  356. package/development/paginator/paginator.js +1 -1
  357. package/development/popover/popover/popover.d.ts +3 -0
  358. package/development/popover/popover/popover.d.ts.map +1 -1
  359. package/development/popover/popover-trigger.js +9 -9
  360. package/development/popover/popover.js +41 -26
  361. package/development/radio-button/common/radio-button-common.d.ts +3 -10
  362. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  363. package/development/radio-button/common.js +44 -121
  364. package/development/radio-button/radio-button/radio-button.d.ts +9 -1
  365. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  366. package/development/radio-button/radio-button-group/radio-button-group.d.ts +19 -26
  367. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  368. package/development/radio-button/radio-button-group.js +87 -123
  369. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +20 -2
  370. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  371. package/development/radio-button/radio-button-panel.js +35 -15
  372. package/development/radio-button/radio-button.js +11 -15
  373. package/development/select/select.d.ts +3 -9
  374. package/development/select/select.d.ts.map +1 -1
  375. package/development/select.js +27 -25
  376. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +4 -1
  377. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  378. package/development/selection-expansion-panel.js +28 -16
  379. package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
  380. package/development/skiplink-list.js +3 -2
  381. package/development/slider/slider.d.ts +0 -1
  382. package/development/slider/slider.d.ts.map +1 -1
  383. package/development/slider.js +2 -2
  384. package/development/stepper/step-label/step-label.d.ts +0 -2
  385. package/development/stepper/step-label/step-label.d.ts.map +1 -1
  386. package/development/stepper/step-label.js +10 -11
  387. package/development/stepper/step.js +1 -1
  388. package/development/stepper/stepper/stepper.d.ts +4 -1
  389. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  390. package/development/stepper/stepper.js +9 -7
  391. package/development/tabs/tab-group/tab-group.d.ts +4 -1
  392. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  393. package/development/tabs/tab-group.js +14 -5
  394. package/development/tabs/tab-label.js +1 -1
  395. package/development/tag/tag/tag.d.ts +4 -1
  396. package/development/tag/tag/tag.d.ts.map +1 -1
  397. package/development/tag/tag-group/tag-group.d.ts +5 -2
  398. package/development/tag/tag-group/tag-group.d.ts.map +1 -1
  399. package/development/tag/tag-group.js +7 -4
  400. package/development/tag/tag.js +16 -12
  401. package/development/teaser/teaser.d.ts +2 -2
  402. package/development/teaser/teaser.d.ts.map +1 -1
  403. package/development/teaser-hero/teaser-hero.d.ts +2 -6
  404. package/development/teaser-hero/teaser-hero.d.ts.map +1 -1
  405. package/development/teaser-hero.js +9 -60
  406. package/development/teaser-product/common.js +7 -14
  407. package/development/teaser-product/teaser-product.js +1 -21
  408. package/development/teaser.js +12 -31
  409. package/development/time-input/time-input.d.ts +3 -6
  410. package/development/time-input/time-input.d.ts.map +1 -1
  411. package/development/time-input.js +33 -27
  412. package/development/toast/toast.d.ts +3 -0
  413. package/development/toast/toast.d.ts.map +1 -1
  414. package/development/toast.js +27 -13
  415. package/development/toggle/toggle/toggle.d.ts +4 -8
  416. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  417. package/development/toggle/toggle.js +9 -12
  418. package/development/toggle-check/toggle-check.d.ts +4 -6
  419. package/development/toggle-check/toggle-check.d.ts.map +1 -1
  420. package/development/toggle-check.js +9 -7
  421. package/development/train/train/train.d.ts.map +1 -1
  422. package/development/train/train-blocked-passage.js +2 -2
  423. package/development/train/train-formation/train-formation.d.ts +3 -11
  424. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  425. package/development/train/train-formation.js +43 -74
  426. package/development/train/train-wagon/train-wagon.d.ts +11 -8
  427. package/development/train/train-wagon/train-wagon.d.ts.map +1 -1
  428. package/development/train/train-wagon.js +149 -124
  429. package/development/train/train.js +35 -112
  430. package/development/visual-checkbox/visual-checkbox.d.ts +4 -1
  431. package/development/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  432. package/development/visual-checkbox.js +7 -3
  433. package/dialog/dialog/dialog.d.ts +3 -0
  434. package/dialog/dialog/dialog.d.ts.map +1 -1
  435. package/dialog/dialog-title.js +9 -9
  436. package/dialog/dialog.js +56 -51
  437. package/expansion-panel/expansion-panel/expansion-panel.d.ts +7 -1
  438. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  439. package/expansion-panel/expansion-panel-header.js +1 -1
  440. package/expansion-panel/expansion-panel.js +41 -28
  441. package/file-selector/common/file-selector-common.d.ts +23 -0
  442. package/file-selector/common/file-selector-common.d.ts.map +1 -0
  443. package/file-selector/common.d.ts +2 -0
  444. package/file-selector/common.d.ts.map +1 -0
  445. package/file-selector/common.js +210 -0
  446. package/file-selector/file-selector/file-selector.d.ts +24 -0
  447. package/file-selector/file-selector/file-selector.d.ts.map +1 -0
  448. package/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts +33 -0
  449. package/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts.map +1 -0
  450. package/file-selector/file-selector-dropzone.d.ts +2 -0
  451. package/file-selector/file-selector-dropzone.d.ts.map +1 -0
  452. package/file-selector/file-selector-dropzone.js +97 -0
  453. package/file-selector/file-selector.d.ts +1 -87
  454. package/file-selector/file-selector.d.ts.map +1 -1
  455. package/file-selector/file-selector.js +44 -0
  456. package/file-selector.d.ts +2 -0
  457. package/file-selector.d.ts.map +1 -1
  458. package/file-selector.js +3 -301
  459. package/flip-card/flip-card-details.js +5 -5
  460. package/flip-card/flip-card-summary.js +7 -7
  461. package/flip-card/flip-card.js +9 -9
  462. package/form-field/form-field/form-field.d.ts +7 -10
  463. package/form-field/form-field/form-field.d.ts.map +1 -1
  464. package/form-field/form-field-clear.js +12 -12
  465. package/form-field/form-field.js +118 -93
  466. package/header/common.js +10 -10
  467. package/header/header/header.d.ts +5 -3
  468. package/header/header/header.d.ts.map +1 -1
  469. package/header/header.js +28 -31
  470. package/image/image.d.ts +0 -30
  471. package/image/image.d.ts.map +1 -1
  472. package/image.js +187 -281
  473. package/index.d.ts +13 -9
  474. package/index.js +13 -9
  475. package/journey-header/journey-header.d.ts +4 -1
  476. package/journey-header/journey-header.d.ts.map +1 -1
  477. package/journey-header.js +29 -25
  478. package/lead-container.js +5 -5
  479. package/link/common/link-common.d.ts.map +1 -1
  480. package/link/common.js +18 -16
  481. package/link-list/common/link-list-base.d.ts +1 -0
  482. package/link-list/common/link-list-base.d.ts.map +1 -1
  483. package/link-list/common.js +11 -9
  484. package/link-list/link-list-anchor.js +8 -8
  485. package/loading-indicator/loading-indicator.d.ts +1 -3
  486. package/loading-indicator/loading-indicator.d.ts.map +1 -1
  487. package/loading-indicator-circle/loading-indicator-circle.d.ts +16 -0
  488. package/loading-indicator-circle/loading-indicator-circle.d.ts.map +1 -0
  489. package/loading-indicator-circle.d.ts +2 -0
  490. package/loading-indicator-circle.d.ts.map +1 -0
  491. package/loading-indicator-circle.js +46 -0
  492. package/loading-indicator.js +41 -51
  493. package/map-container/map-container.d.ts.map +1 -1
  494. package/map-container.js +7 -7
  495. package/menu/common.js +8 -8
  496. package/menu/menu/menu.d.ts +3 -0
  497. package/menu/menu/menu.d.ts.map +1 -1
  498. package/menu/menu.js +52 -43
  499. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  500. package/navigation/common.js +10 -6
  501. package/navigation/navigation/navigation.d.ts +3 -0
  502. package/navigation/navigation/navigation.d.ts.map +1 -1
  503. package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  504. package/navigation/navigation-list.js +17 -16
  505. package/navigation/navigation-marker/navigation-marker.d.ts +2 -1
  506. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  507. package/navigation/navigation-marker.js +12 -10
  508. package/navigation/navigation-section/navigation-section.d.ts +3 -0
  509. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  510. package/navigation/navigation-section.js +46 -37
  511. package/navigation/navigation.js +30 -21
  512. package/notification/notification.d.ts +6 -2
  513. package/notification/notification.d.ts.map +1 -1
  514. package/notification.js +55 -51
  515. package/option/option/option-base-element.d.ts +0 -7
  516. package/option/option/option-base-element.d.ts.map +1 -1
  517. package/option/option.js +110 -125
  518. package/overlay/overlay-base-element.d.ts +2 -0
  519. package/overlay/overlay-base-element.d.ts.map +1 -1
  520. package/overlay/overlay.d.ts +3 -0
  521. package/overlay/overlay.d.ts.map +1 -1
  522. package/overlay.js +83 -77
  523. package/package.json +52 -29
  524. package/paginator/common/paginator-common.d.ts.map +1 -1
  525. package/paginator/common.js +21 -17
  526. package/paginator/paginator.js +1 -1
  527. package/popover/popover/popover.d.ts +3 -0
  528. package/popover/popover/popover.d.ts.map +1 -1
  529. package/popover/popover-trigger.js +6 -6
  530. package/popover/popover.js +114 -109
  531. package/radio-button/common/radio-button-common.d.ts +3 -10
  532. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  533. package/radio-button/common.js +43 -90
  534. package/radio-button/radio-button/radio-button.d.ts +9 -1
  535. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  536. package/radio-button/radio-button-group/radio-button-group.d.ts +19 -26
  537. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  538. package/radio-button/radio-button-group.js +112 -131
  539. package/radio-button/radio-button-panel/radio-button-panel.d.ts +20 -2
  540. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  541. package/radio-button/radio-button-panel.js +56 -44
  542. package/radio-button/radio-button.js +34 -38
  543. package/scrollbar.css +158 -0
  544. package/select/select.d.ts +3 -9
  545. package/select/select.d.ts.map +1 -1
  546. package/select.js +65 -66
  547. package/selection-expansion-panel/selection-expansion-panel.d.ts +4 -1
  548. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  549. package/selection-expansion-panel.js +41 -31
  550. package/skiplink-list/skiplink-list.d.ts.map +1 -1
  551. package/skiplink-list.js +14 -13
  552. package/slider/slider.d.ts +0 -1
  553. package/slider/slider.d.ts.map +1 -1
  554. package/slider.js +1 -1
  555. package/standard-theme.css +396 -8
  556. package/stepper/step-label/step-label.d.ts +0 -2
  557. package/stepper/step-label/step-label.d.ts.map +1 -1
  558. package/stepper/step-label.js +6 -6
  559. package/stepper/step.js +4 -4
  560. package/stepper/stepper/stepper.d.ts +4 -1
  561. package/stepper/stepper/stepper.d.ts.map +1 -1
  562. package/stepper/stepper.js +22 -19
  563. package/table.css +232 -0
  564. package/tabs/tab-group/tab-group.d.ts +4 -1
  565. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  566. package/tabs/tab-group.js +80 -74
  567. package/tabs/tab-label.js +1 -1
  568. package/tag/tag/tag.d.ts +4 -1
  569. package/tag/tag/tag.d.ts.map +1 -1
  570. package/tag/tag-group/tag-group.d.ts +5 -2
  571. package/tag/tag-group/tag-group.d.ts.map +1 -1
  572. package/tag/tag-group.js +13 -10
  573. package/tag/tag.js +25 -21
  574. package/teaser/teaser.d.ts +2 -2
  575. package/teaser/teaser.d.ts.map +1 -1
  576. package/teaser-hero/teaser-hero.d.ts +2 -6
  577. package/teaser-hero/teaser-hero.d.ts.map +1 -1
  578. package/teaser-hero.js +32 -57
  579. package/teaser-product/common.js +1 -1
  580. package/teaser-product/teaser-product.js +13 -13
  581. package/teaser.js +28 -28
  582. package/time-input/time-input.d.ts +3 -6
  583. package/time-input/time-input.d.ts.map +1 -1
  584. package/time-input.js +56 -55
  585. package/toast/toast.d.ts +3 -0
  586. package/toast/toast.d.ts.map +1 -1
  587. package/toast.js +51 -42
  588. package/toggle/toggle/toggle.d.ts +4 -8
  589. package/toggle/toggle/toggle.d.ts.map +1 -1
  590. package/toggle/toggle.js +48 -48
  591. package/toggle-check/toggle-check.d.ts +4 -6
  592. package/toggle-check/toggle-check.d.ts.map +1 -1
  593. package/toggle-check.js +23 -21
  594. package/train/train/train.d.ts.map +1 -1
  595. package/train/train-blocked-passage.js +1 -1
  596. package/train/train-formation/train-formation.d.ts +3 -11
  597. package/train/train-formation/train-formation.d.ts.map +1 -1
  598. package/train/train-formation.js +47 -65
  599. package/train/train-wagon/train-wagon.d.ts +11 -8
  600. package/train/train-wagon/train-wagon.d.ts.map +1 -1
  601. package/train/train-wagon.js +123 -134
  602. package/train/train.js +74 -78
  603. package/visual-checkbox/visual-checkbox.d.ts +4 -1
  604. package/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  605. package/visual-checkbox.js +21 -17
  606. package/button/mini-button/mini-button-base-element.d.ts +0 -8
  607. package/button/mini-button/mini-button-base-element.d.ts.map +0 -1
  608. package/button/tertiary-button/tertiary-button.d.ts +0 -19
  609. package/button/tertiary-button/tertiary-button.d.ts.map +0 -1
  610. package/button/tertiary-button-link/tertiary-button-link.d.ts +0 -19
  611. package/button/tertiary-button-link/tertiary-button-link.d.ts.map +0 -1
  612. package/button/tertiary-button-link.d.ts +0 -2
  613. package/button/tertiary-button-link.d.ts.map +0 -1
  614. package/button/tertiary-button-link.js +0 -17
  615. package/button/tertiary-button-static/tertiary-button-static.d.ts +0 -19
  616. package/button/tertiary-button-static/tertiary-button-static.d.ts.map +0 -1
  617. package/button/tertiary-button-static.d.ts +0 -2
  618. package/button/tertiary-button-static.d.ts.map +0 -1
  619. package/button/tertiary-button-static.js +0 -17
  620. package/button/tertiary-button.d.ts +0 -2
  621. package/button/tertiary-button.d.ts.map +0 -1
  622. package/button/tertiary-button.js +0 -17
  623. package/chip/chip.d.ts.map +0 -1
  624. package/chip.d.ts +0 -2
  625. package/chip.d.ts.map +0 -1
  626. package/chip.js +0 -54
  627. package/core/dom/get-document-writing-mode.d.ts +0 -5
  628. package/core/dom/get-document-writing-mode.d.ts.map +0 -1
  629. package/core/dom/ssr.d.ts +0 -13
  630. package/core/dom/ssr.d.ts.map +0 -1
  631. package/core/eventing/handler-repository.d.ts +0 -28
  632. package/core/eventing/handler-repository.d.ts.map +0 -1
  633. package/core/observers/intersection-observer.d.ts +0 -20
  634. package/core/observers/intersection-observer.d.ts.map +0 -1
  635. package/core/observers/mutation-observer.d.ts +0 -13
  636. package/core/observers/mutation-observer.d.ts.map +0 -1
  637. package/core/observers/resize-observer.d.ts +0 -16
  638. package/core/observers/resize-observer.d.ts.map +0 -1
  639. package/core/observers.d.ts +0 -4
  640. package/core/observers.d.ts.map +0 -1
  641. package/core/observers.js +0 -38
  642. package/core/testing/wait-for-event.d.ts +0 -2
  643. package/core/testing/wait-for-event.d.ts.map +0 -1
  644. package/development/button/mini-button/mini-button-base-element.d.ts +0 -8
  645. package/development/button/mini-button/mini-button-base-element.d.ts.map +0 -1
  646. package/development/button/tertiary-button/tertiary-button.d.ts +0 -19
  647. package/development/button/tertiary-button/tertiary-button.d.ts.map +0 -1
  648. package/development/button/tertiary-button-link/tertiary-button-link.d.ts +0 -19
  649. package/development/button/tertiary-button-link/tertiary-button-link.d.ts.map +0 -1
  650. package/development/button/tertiary-button-link.d.ts +0 -2
  651. package/development/button/tertiary-button-link.d.ts.map +0 -1
  652. package/development/button/tertiary-button-link.js +0 -25
  653. package/development/button/tertiary-button-static/tertiary-button-static.d.ts +0 -19
  654. package/development/button/tertiary-button-static/tertiary-button-static.d.ts.map +0 -1
  655. package/development/button/tertiary-button-static.d.ts +0 -2
  656. package/development/button/tertiary-button-static.d.ts.map +0 -1
  657. package/development/button/tertiary-button-static.js +0 -25
  658. package/development/button/tertiary-button.d.ts +0 -2
  659. package/development/button/tertiary-button.d.ts.map +0 -1
  660. package/development/button/tertiary-button.js +0 -25
  661. package/development/chip/chip.d.ts.map +0 -1
  662. package/development/chip.d.ts +0 -2
  663. package/development/chip.d.ts.map +0 -1
  664. package/development/core/dom/get-document-writing-mode.d.ts +0 -5
  665. package/development/core/dom/get-document-writing-mode.d.ts.map +0 -1
  666. package/development/core/dom/ssr.d.ts +0 -13
  667. package/development/core/dom/ssr.d.ts.map +0 -1
  668. package/development/core/eventing/handler-repository.d.ts +0 -28
  669. package/development/core/eventing/handler-repository.d.ts.map +0 -1
  670. package/development/core/observers/intersection-observer.d.ts +0 -20
  671. package/development/core/observers/intersection-observer.d.ts.map +0 -1
  672. package/development/core/observers/mutation-observer.d.ts +0 -13
  673. package/development/core/observers/mutation-observer.d.ts.map +0 -1
  674. package/development/core/observers/resize-observer.d.ts +0 -16
  675. package/development/core/observers/resize-observer.d.ts.map +0 -1
  676. package/development/core/observers.d.ts +0 -4
  677. package/development/core/observers.d.ts.map +0 -1
  678. package/development/core/observers.js +0 -39
  679. package/development/core/testing/wait-for-event.d.ts +0 -2
  680. package/development/core/testing/wait-for-event.d.ts.map +0 -1
@@ -1,552 +1,4 @@
1
- var __typeError = (msg) => {
2
- throw TypeError(msg);
3
- };
4
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
- import { __runInitializers, __esDecorate } from "tslib";
9
- import { css, LitElement, nothing } from "lit";
10
- import { customElement, property } from "lit/decorators.js";
11
- import { ref } from "lit/directives/ref.js";
12
- import { html, unsafeStatic } from "lit/static-html.js";
13
- import { sbbInputModalityDetector } from "./core/a11y.js";
14
- import { SbbLanguageController } from "./core/controllers.js";
15
- import { slotState, forceType } from "./core/decorators.js";
16
- import { EventEmitter, forwardEventToHost } from "./core/eventing.js";
17
- import { i18nFileSelectorCurrentlySelected, i18nFileSelectorButtonLabel, i18nFileSelectorSubtitleLabel, i18nFileSelectorDeleteFile } from "./core/i18n.js";
18
- import { SbbDisabledMixin, SbbFormAssociatedMixin } from "./core/mixins.js";
19
- import "./button/secondary-button.js";
20
- import "./button/secondary-button-static.js";
21
- import "./icon.js";
22
- const style = css`*,
23
- ::before,
24
- ::after {
25
- box-sizing: border-box;
26
- }
27
-
28
- :host {
29
- --sbb-file-selector-color: var(--sbb-color-black);
30
- --sbb-file-selector-subtitle-color: var(--sbb-color-granite);
31
- --sbb-file-selector-background-color: var(--sbb-color-white);
32
- --sbb-file-selector-border-color: var(--sbb-color-cloud);
33
- --sbb-file-selector-transition-duration: var(
34
- --sbb-disable-animation-zero-time,
35
- var(--sbb-animation-duration-2x)
36
- );
37
- --sbb-file-selector-transition-easing-function: var(--sbb-animation-easing);
38
- display: block;
39
- width: 20rem;
40
- }
41
-
42
- @media (forced-colors: active) {
43
- :host(:disabled) {
44
- --sbb-file-selector-color: GrayText;
45
- --sbb-file-selector-subtitle-color: GrayText;
46
- --sbb-file-selector-border-color: GrayText;
47
- }
48
- }
49
-
50
- :host([data-active]) {
51
- --sbb-file-selector-background-color: var(--sbb-color-milk);
52
- --sbb-file-selector-border-color: var(--sbb-color-storm);
53
- }
54
- @media (forced-colors: active) {
55
- :host([data-active]) {
56
- --sbb-file-selector-border-color: Highlight;
57
- }
58
- }
59
-
60
- .sbb-file-selector__input-container {
61
- -webkit-tap-highlight-color: transparent;
62
- display: flex;
63
- flex-direction: column;
64
- }
65
-
66
- .sbb-file-selector__visually-hidden {
67
- border: 0;
68
- clip: rect(0 0 0 0);
69
- height: 1px;
70
- margin: -1px;
71
- overflow: hidden;
72
- padding: 0;
73
- position: absolute;
74
- white-space: nowrap;
75
- width: 1px;
76
- }
77
-
78
- .sbb-file-selector__dropzone-area {
79
- display: flex;
80
- flex-direction: column;
81
- align-items: center;
82
- padding: var(--sbb-spacing-responsive-s);
83
- background-color: var(--sbb-file-selector-background-color);
84
- border: var(--sbb-border-width-1x) dashed var(--sbb-file-selector-border-color);
85
- border-radius: var(--sbb-border-radius-4x);
86
- transition-duration: var(--sbb-file-selector-transition-duration);
87
- transition-timing-function: var(--sbb-file-selector-transition-easing-function);
88
- transition-property: background-color, border-color;
89
- }
90
-
91
- .sbb-file-selector__dropzone-area--icon {
92
- color: var(--sbb-file-selector-color);
93
- line-height: 0;
94
- }
95
-
96
- .sbb-file-selector__dropzone-area--title {
97
- font-weight: bold;
98
- --sbb-title-line-height: var(--sbb-typo-line-height-titles);
99
- --sbb-title-margin-block-start: 0;
100
- --sbb-title-margin-block-end: 0;
101
- margin: 0;
102
- margin-block: var(--sbb-title-margin-block-start) var(--sbb-title-margin-block-end);
103
- font-family: var(--sbb-typo-font-family);
104
- font-weight: bold;
105
- line-height: var(--sbb-title-line-height);
106
- letter-spacing: var(--sbb-typo-letter-spacing-titles);
107
- font-size: var(--sbb-title-font-size);
108
- --sbb-title-font-size: var(--sbb-font-size-title-6);
109
- --sbb-title-line-height: var(--sbb-typo-line-height-body-text);
110
- text-align: center;
111
- color: var(--sbb-file-selector-color);
112
- }
113
-
114
- .sbb-file-selector__dropzone-area--subtitle {
115
- --sbb-text-font-size: var(--sbb-font-size-text-xs);
116
- font-family: var(--sbb-typo-font-family);
117
- font-weight: normal;
118
- line-height: var(--sbb-typo-line-height-body-text);
119
- letter-spacing: var(--sbb-typo-letter-spacing-body-text);
120
- font-size: var(--sbb-text-font-size);
121
- text-align: center;
122
- color: var(--sbb-file-selector-subtitle-color);
123
- margin-block-end: var(--sbb-spacing-fixed-4x);
124
- }
125
-
126
- .sbb-file-selector__file-list {
127
- display: flex;
128
- flex-direction: column;
129
- row-gap: var(--sbb-spacing-fixed-3x);
130
- margin-block: 0;
131
- padding-inline: 0;
132
- padding-block: var(--sbb-spacing-fixed-6x) var(--sbb-spacing-fixed-1x);
133
- }
134
-
135
- .sbb-file-selector__file {
136
- --sbb-text-font-size: var(--sbb-font-size-text-s);
137
- font-family: var(--sbb-typo-font-family);
138
- font-weight: normal;
139
- line-height: var(--sbb-typo-line-height-body-text);
140
- letter-spacing: var(--sbb-typo-letter-spacing-body-text);
141
- font-size: var(--sbb-text-font-size);
142
- display: flex;
143
- gap: var(--sbb-spacing-fixed-4x);
144
- align-items: center;
145
- justify-content: space-between;
146
- }
147
-
148
- .sbb-file-selector__file-details {
149
- display: flex;
150
- flex: 1;
151
- justify-content: space-between;
152
- gap: var(--sbb-spacing-fixed-4x);
153
- overflow: auto;
154
- }
155
-
156
- .sbb-file-selector__file-name {
157
- overflow: hidden;
158
- white-space: nowrap;
159
- text-overflow: ellipsis;
160
- }
161
-
162
- .sbb-file-selector__file-size {
163
- white-space: nowrap;
164
- color: var(--sbb-color-metal);
165
- }
166
-
167
- :host(:not([data-slot-names~=error])) .sbb-file-selector__error {
168
- display: none;
169
- }`;
170
- let SbbFileSelectorElement = (() => {
171
- var _variant_accessor_storage, _size_accessor_storage, _multiple_accessor_storage, _multipleMode_accessor_storage, _accept_accessor_storage, _titleContent_accessor_storage, _accessibilityLabel_accessor_storage, _a;
172
- let _classDecorators = [customElement("sbb-file-selector"), slotState()];
173
- let _classDescriptor;
174
- let _classExtraInitializers = [];
175
- let _classThis;
176
- let _classSuper = SbbDisabledMixin(SbbFormAssociatedMixin(LitElement));
177
- let _instanceExtraInitializers = [];
178
- let _variant_decorators;
179
- let _variant_initializers = [];
180
- let _variant_extraInitializers = [];
181
- let _size_decorators;
182
- let _size_initializers = [];
183
- let _size_extraInitializers = [];
184
- let _multiple_decorators;
185
- let _multiple_initializers = [];
186
- let _multiple_extraInitializers = [];
187
- let _multipleMode_decorators;
188
- let _multipleMode_initializers = [];
189
- let _multipleMode_extraInitializers = [];
190
- let _accept_decorators;
191
- let _accept_initializers = [];
192
- let _accept_extraInitializers = [];
193
- let _titleContent_decorators;
194
- let _titleContent_initializers = [];
195
- let _titleContent_extraInitializers = [];
196
- let _accessibilityLabel_decorators;
197
- let _accessibilityLabel_initializers = [];
198
- let _accessibilityLabel_extraInitializers = [];
199
- let _set_value_decorators;
200
- let _set_files_decorators;
201
- var SbbFileSelectorElement2 = (_a = class extends _classSuper {
202
- constructor() {
203
- super(...arguments);
204
- __privateAdd(this, _variant_accessor_storage);
205
- __privateAdd(this, _size_accessor_storage);
206
- __privateAdd(this, _multiple_accessor_storage);
207
- __privateAdd(this, _multipleMode_accessor_storage);
208
- __privateAdd(this, _accept_accessor_storage);
209
- __privateAdd(this, _titleContent_accessor_storage);
210
- __privateAdd(this, _accessibilityLabel_accessor_storage);
211
- __privateSet(this, _variant_accessor_storage, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _variant_initializers, "default")));
212
- __privateSet(this, _size_accessor_storage, (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _size_initializers, "m")));
213
- __privateSet(this, _multiple_accessor_storage, (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _multiple_initializers, false)));
214
- __privateSet(this, _multipleMode_accessor_storage, (__runInitializers(this, _multiple_extraInitializers), __runInitializers(this, _multipleMode_initializers, "default")));
215
- __privateSet(this, _accept_accessor_storage, (__runInitializers(this, _multipleMode_extraInitializers), __runInitializers(this, _accept_initializers, "")));
216
- __privateSet(this, _titleContent_accessor_storage, (__runInitializers(this, _accept_extraInitializers), __runInitializers(this, _titleContent_initializers, "")));
217
- __privateSet(this, _accessibilityLabel_accessor_storage, (__runInitializers(this, _titleContent_extraInitializers), __runInitializers(this, _accessibilityLabel_initializers, "")));
218
- this._files = (__runInitializers(this, _accessibilityLabel_extraInitializers), []);
219
- this._fileChangedEvent = new EventEmitter(this, SbbFileSelectorElement2.events.fileChangedEvent);
220
- this._counter = 0;
221
- this._suffixes = ["B", "kB", "MB", "GB", "TB"];
222
- this._language = new SbbLanguageController(this);
223
- }
224
- /** Whether the component has a dropzone area or not. */
225
- get variant() {
226
- return __privateGet(this, _variant_accessor_storage);
227
- }
228
- set variant(value) {
229
- __privateSet(this, _variant_accessor_storage, value);
230
- }
231
- /** Size variant, either s or m. */
232
- get size() {
233
- return __privateGet(this, _size_accessor_storage);
234
- }
235
- set size(value) {
236
- __privateSet(this, _size_accessor_storage, value);
237
- }
238
- /** Whether more than one file can be selected. */
239
- get multiple() {
240
- return __privateGet(this, _multiple_accessor_storage);
241
- }
242
- set multiple(value) {
243
- __privateSet(this, _multiple_accessor_storage, value);
244
- }
245
- /** Whether the newly added files should override the previously added ones. */
246
- get multipleMode() {
247
- return __privateGet(this, _multipleMode_accessor_storage);
248
- }
249
- set multipleMode(value) {
250
- __privateSet(this, _multipleMode_accessor_storage, value);
251
- }
252
- /** A comma-separated list of allowed unique file type specifiers. */
253
- get accept() {
254
- return __privateGet(this, _accept_accessor_storage);
255
- }
256
- set accept(value) {
257
- __privateSet(this, _accept_accessor_storage, value);
258
- }
259
- /** The title displayed in `dropzone` variant. */
260
- get titleContent() {
261
- return __privateGet(this, _titleContent_accessor_storage);
262
- }
263
- set titleContent(value) {
264
- __privateSet(this, _titleContent_accessor_storage, value);
265
- }
266
- /** This will be forwarded as aria-label to the native input element. */
267
- get accessibilityLabel() {
268
- return __privateGet(this, _accessibilityLabel_accessor_storage);
269
- }
270
- set accessibilityLabel(value) {
271
- __privateSet(this, _accessibilityLabel_accessor_storage, value);
272
- }
273
- /** The path of the first selected file. Empty string ('') if no file is selected */
274
- set value(value) {
275
- this._hiddenInput.value = value ?? "";
276
- if (!value) {
277
- this.files = [];
278
- }
279
- }
280
- get value() {
281
- var _a2;
282
- return (_a2 = this._hiddenInput) == null ? void 0 : _a2.value;
283
- }
284
- /**
285
- * The list of selected files.
286
- */
287
- set files(value) {
288
- this._files = value ?? [];
289
- const dt = new DataTransfer();
290
- this.files.forEach((e) => dt.items.add(e));
291
- this._hiddenInput.files = dt.files;
292
- this.updateFormValue();
293
- }
294
- get files() {
295
- return this._files;
296
- }
297
- /**
298
- * Form type of element.
299
- * @default 'file'
300
- */
301
- get type() {
302
- return "file";
303
- }
304
- /**
305
- * @deprecated use the 'files' property instead
306
- */
307
- getFiles() {
308
- return this.files;
309
- }
310
- formResetCallback() {
311
- this.files = [];
312
- }
313
- formStateRestoreCallback(state, _reason) {
314
- if (!state) {
315
- return;
316
- }
317
- this.files = state.map(([_, value]) => value);
318
- }
319
- updateFormValue() {
320
- const formValue = new FormData();
321
- this.files.forEach((file) => formValue.append(this.name, file));
322
- this.internals.setFormValue(formValue);
323
- }
324
- _blockEvent(event) {
325
- event.stopPropagation();
326
- event.preventDefault();
327
- }
328
- _checkFileEquality(file1, file2) {
329
- return file1.name === file2.name && file1.size === file2.size && file1.lastModified === file2.lastModified;
330
- }
331
- _onDragEnter(event) {
332
- this._counter++;
333
- if (!this.disabled && !this.formDisabled) {
334
- this._setDragState(event.target, true);
335
- this._blockEvent(event);
336
- }
337
- }
338
- _onDragLeave(event) {
339
- this._counter--;
340
- if (!this.disabled && !this.formDisabled && event.target === this._dragTarget && this._counter === 0) {
341
- this._setDragState();
342
- this._blockEvent(event);
343
- }
344
- }
345
- _onFileDrop(event) {
346
- this._counter = 0;
347
- if (!this.disabled && !this.formDisabled) {
348
- this._setDragState();
349
- this._blockEvent(event);
350
- this._createFileList(event.dataTransfer.files);
351
- }
352
- }
353
- _onFocus() {
354
- if (sbbInputModalityDetector.mostRecentModality === "keyboard") {
355
- this._loadButton.toggleAttribute("data-focus-visible", true);
356
- }
357
- }
358
- _onBlur() {
359
- if (sbbInputModalityDetector.mostRecentModality === "keyboard") {
360
- this._loadButton.removeAttribute("data-focus-visible");
361
- }
362
- }
363
- _setDragState(dragTarget = void 0, isDragEnter = false) {
364
- this._dragTarget = dragTarget;
365
- this.toggleAttribute("data-active", isDragEnter);
366
- this._loadButton.toggleAttribute("data-active", isDragEnter);
367
- }
368
- _readFiles(event) {
369
- const fileInput = event.target;
370
- if (fileInput.files) {
371
- this._createFileList(fileInput.files);
372
- }
373
- forwardEventToHost(event, this);
374
- }
375
- _createFileList(files) {
376
- if (!this.multiple || this.multipleMode !== "persistent" || this.files.length === 0) {
377
- this.files = Array.from(files);
378
- } else {
379
- this.files = Array.from(files).filter(
380
- // Remove duplicates
381
- (newFile) => this.files.findIndex((oldFile) => this._checkFileEquality(newFile, oldFile)) === -1
382
- ).concat(this.files);
383
- }
384
- this._updateA11yLiveRegion();
385
- this._fileChangedEvent.emit(this.files);
386
- }
387
- _removeFile(file) {
388
- this.files = this.files.filter((f) => !this._checkFileEquality(file, f));
389
- this._updateA11yLiveRegion();
390
- this.dispatchEvent(new Event("input", { composed: true, bubbles: true }));
391
- this.dispatchEvent(new Event("change", { bubbles: true }));
392
- this._fileChangedEvent.emit(this.files);
393
- }
394
- /** Calculates the correct unit for the file's size. */
395
- _formatFileSize(size) {
396
- const i = Math.floor(Math.log(size) / Math.log(1024));
397
- return `${(size / Math.pow(1024, i)).toFixed(0)} ${this._suffixes[i]}`;
398
- }
399
- _updateA11yLiveRegion() {
400
- this._liveRegion.innerText = i18nFileSelectorCurrentlySelected(this.files.map((e) => e.name))[this._language.current];
401
- }
402
- _renderDefaultMode() {
403
- return html`
404
- <sbb-secondary-button-static
405
- size=${this.size}
406
- icon-name="folder-open-small"
407
- ?disabled=${this.disabled || this.formDisabled}
408
- ${ref((el) => {
409
- this._loadButton = el;
410
- })}
411
- >
412
- ${i18nFileSelectorButtonLabel[this._language.current]}
413
- </sbb-secondary-button-static>
414
- `;
415
- }
416
- _renderDropzoneArea() {
417
- return html`
418
- <span class="sbb-file-selector__dropzone-area">
419
- <span class="sbb-file-selector__dropzone-area--icon">
420
- <sbb-icon
421
- name=${this.size === "m" ? "folder-open-medium" : "folder-open-small"}
422
- ></sbb-icon>
423
- </span>
424
- <span class="sbb-file-selector__dropzone-area--title">${this.titleContent}</span>
425
- <span class="sbb-file-selector__dropzone-area--subtitle">
426
- ${i18nFileSelectorSubtitleLabel[this._language.current]}
427
- </span>
428
- <span class="sbb-file-selector__dropzone-area--button">
429
- <sbb-secondary-button-static
430
- size=${this.size}
431
- ?disabled=${this.disabled || this.formDisabled}
432
- ${ref((el) => {
433
- this._loadButton = el;
434
- })}
435
- >
436
- ${i18nFileSelectorButtonLabel[this._language.current]}
437
- </sbb-secondary-button-static>
438
- </span>
439
- </span>
440
- `;
441
- }
442
- _renderFileList() {
443
- const TAG_NAME = this.files.length > 1 ? { WRAPPER: "ul", ELEMENT: "li" } : { WRAPPER: "div", ELEMENT: "span" };
444
- return html`
445
- <${unsafeStatic(TAG_NAME.WRAPPER)} class="sbb-file-selector__file-list">
446
- ${this.files.map((file) => html`
447
- <${unsafeStatic(TAG_NAME.ELEMENT)} class="sbb-file-selector__file">
448
- <span class="sbb-file-selector__file-details">
449
- <span class="sbb-file-selector__file-name">${file.name}</span>
450
- <span class="sbb-file-selector__file-size">${this._formatFileSize(file.size)}</span>
451
- </span>
452
- <sbb-secondary-button
453
- size=${this.size}
454
- icon-name="trash-small"
455
- @click=${() => this._removeFile(file)}
456
- aria-label=${`${i18nFileSelectorDeleteFile[this._language.current]} - ${file.name}`}
457
- ></sbb-secondary-button>
458
- </${unsafeStatic(TAG_NAME.ELEMENT)}>`)}
459
- </${unsafeStatic(TAG_NAME.WRAPPER)}>
460
- `;
461
- }
462
- render() {
463
- const ariaLabel = this.accessibilityLabel ? `${i18nFileSelectorButtonLabel[this._language.current]} - ${this.accessibilityLabel}` : void 0;
464
- return html`
465
- <div class="sbb-file-selector">
466
- <div
467
- class="sbb-file-selector__input-container"
468
- @dragenter=${this._onDragEnter}
469
- @dragover=${this._blockEvent}
470
- @dragleave=${this._onDragLeave}
471
- @drop=${this._onFileDrop}
472
- >
473
- <label>
474
- ${this.variant === "default" ? this._renderDefaultMode() : this._renderDropzoneArea()}
475
- <input
476
- class="sbb-file-selector__visually-hidden"
477
- type="file"
478
- ?disabled=${this.disabled || this.formDisabled}
479
- ?multiple=${this.multiple}
480
- accept=${this.accept || nothing}
481
- aria-label=${ariaLabel || nothing}
482
- @change=${this._readFiles}
483
- @focus=${this._onFocus}
484
- @blur=${this._onBlur}
485
- ${ref((el) => {
486
- this._hiddenInput = el;
487
- })}
488
- />
489
- </label>
490
- </div>
491
- <p
492
- role="status"
493
- class="sbb-file-selector__visually-hidden"
494
- ${ref((p) => this._liveRegion = p)}
495
- ></p>
496
- ${this.files.length > 0 ? this._renderFileList() : nothing}
497
- <div class="sbb-file-selector__error">
498
- <slot name="error"></slot>
499
- </div>
500
- </div>
501
- `;
502
- }
503
- }, _variant_accessor_storage = new WeakMap(), _size_accessor_storage = new WeakMap(), _multiple_accessor_storage = new WeakMap(), _multipleMode_accessor_storage = new WeakMap(), _accept_accessor_storage = new WeakMap(), _titleContent_accessor_storage = new WeakMap(), _accessibilityLabel_accessor_storage = new WeakMap(), _classThis = _a, (() => {
504
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
505
- _variant_decorators = [property()];
506
- _size_decorators = [property({ reflect: true })];
507
- _multiple_decorators = [forceType(), property({ type: Boolean })];
508
- _multipleMode_decorators = [property({ attribute: "multiple-mode" })];
509
- _accept_decorators = [forceType(), property()];
510
- _titleContent_decorators = [forceType(), property({ attribute: "title-content" })];
511
- _accessibilityLabel_decorators = [forceType(), property({ attribute: "accessibility-label" })];
512
- _set_value_decorators = [property({ attribute: false })];
513
- _set_files_decorators = [property({ attribute: false })];
514
- __esDecorate(_a, null, _variant_decorators, { kind: "accessor", name: "variant", static: false, private: false, access: { has: (obj) => "variant" in obj, get: (obj) => obj.variant, set: (obj, value) => {
515
- obj.variant = value;
516
- } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
517
- __esDecorate(_a, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: (obj) => "size" in obj, get: (obj) => obj.size, set: (obj, value) => {
518
- obj.size = value;
519
- } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
520
- __esDecorate(_a, null, _multiple_decorators, { kind: "accessor", name: "multiple", static: false, private: false, access: { has: (obj) => "multiple" in obj, get: (obj) => obj.multiple, set: (obj, value) => {
521
- obj.multiple = value;
522
- } }, metadata: _metadata }, _multiple_initializers, _multiple_extraInitializers);
523
- __esDecorate(_a, null, _multipleMode_decorators, { kind: "accessor", name: "multipleMode", static: false, private: false, access: { has: (obj) => "multipleMode" in obj, get: (obj) => obj.multipleMode, set: (obj, value) => {
524
- obj.multipleMode = value;
525
- } }, metadata: _metadata }, _multipleMode_initializers, _multipleMode_extraInitializers);
526
- __esDecorate(_a, null, _accept_decorators, { kind: "accessor", name: "accept", static: false, private: false, access: { has: (obj) => "accept" in obj, get: (obj) => obj.accept, set: (obj, value) => {
527
- obj.accept = value;
528
- } }, metadata: _metadata }, _accept_initializers, _accept_extraInitializers);
529
- __esDecorate(_a, null, _titleContent_decorators, { kind: "accessor", name: "titleContent", static: false, private: false, access: { has: (obj) => "titleContent" in obj, get: (obj) => obj.titleContent, set: (obj, value) => {
530
- obj.titleContent = value;
531
- } }, metadata: _metadata }, _titleContent_initializers, _titleContent_extraInitializers);
532
- __esDecorate(_a, null, _accessibilityLabel_decorators, { kind: "accessor", name: "accessibilityLabel", static: false, private: false, access: { has: (obj) => "accessibilityLabel" in obj, get: (obj) => obj.accessibilityLabel, set: (obj, value) => {
533
- obj.accessibilityLabel = value;
534
- } }, metadata: _metadata }, _accessibilityLabel_initializers, _accessibilityLabel_extraInitializers);
535
- __esDecorate(_a, null, _set_value_decorators, { kind: "setter", name: "value", static: false, private: false, access: { has: (obj) => "value" in obj, set: (obj, value) => {
536
- obj.value = value;
537
- } }, metadata: _metadata }, null, _instanceExtraInitializers);
538
- __esDecorate(_a, null, _set_files_decorators, { kind: "setter", name: "files", static: false, private: false, access: { has: (obj) => "files" in obj, set: (obj, value) => {
539
- obj.files = value;
540
- } }, metadata: _metadata }, null, _instanceExtraInitializers);
541
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
542
- SbbFileSelectorElement2 = _classThis = _classDescriptor.value;
543
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
544
- })(), _a.styles = style, _a.events = {
545
- fileChangedEvent: "fileChanged"
546
- }, __runInitializers(_classThis, _classExtraInitializers), _a);
547
- return SbbFileSelectorElement2 = _classThis;
548
- })();
549
- export {
550
- SbbFileSelectorElement
551
- };
552
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2ZpbGUtc2VsZWN0b3IvZmlsZS1zZWxlY3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2J1dHRvbi5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIHNsb3RTdGF0ZSB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIGZvcndhcmRFdmVudFRvSG9zdCB9IGZyb20gJy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsLFxuICBpMThuRmlsZVNlbGVjdG9yQ3VycmVudGx5U2VsZWN0ZWQsXG4gIGkxOG5GaWxlU2VsZWN0b3JEZWxldGVGaWxlLFxuICBpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbCxcbn0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbn0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9maWxlLXNlbGVjdG9yLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24uanMnO1xuaW1wb3J0ICcuLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWMuanMnO1xuaW1wb3J0ICcuLi9pY29uLmpzJztcblxuZXhwb3J0IHR5cGUgRE9NRXZlbnQgPSBnbG9iYWxUaGlzLkV2ZW50O1xuXG4vKipcbiAqIEl0IGFsbG93cyB0byBzZWxlY3Qgb25lIG9yIG1vcmUgZmlsZSBmcm9tIHN0b3JhZ2UgZGV2aWNlcyBhbmQgZGlzcGxheSB0aGVtLlxuICpcbiAqIEBzbG90IGVycm9yIC0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIGBzYmItZm9ybS1lcnJvcmAgdG8gc2hvdyBhbiBlcnJvciBtZXNzYWdlLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxGaWxlW10+fSBmaWxlQ2hhbmdlZCAtIEFuIGV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGxpc3QgY2hhbmdlcy5cbiAqIEBldmVudCBjaGFuZ2UgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgdXNlciBtb2RpZmllcyB0aGUgdmFsdWUuIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlXG4gKiBAZXZlbnQgaW5wdXQgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgdmFsdWUgY2hhbmdlcyBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSBzdHJpbmcgfCBudWxsXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1maWxlLXNlbGVjdG9yJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiRmlsZVNlbGVjdG9yRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZmlsZUNoYW5nZWRFdmVudDogJ2ZpbGVDaGFuZ2VkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBhIGRyb3B6b25lIGFyZWEgb3Igbm90LiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ2Ryb3B6b25lJyA9ICdkZWZhdWx0JztcblxuICAvKiogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcyBvciBtLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAncycgfCAnbScgPSAnbSc7XG5cbiAgLyoqIFdoZXRoZXIgbW9yZSB0aGFuIG9uZSBmaWxlIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG5ld2x5IGFkZGVkIGZpbGVzIHNob3VsZCBvdmVycmlkZSB0aGUgcHJldmlvdXNseSBhZGRlZCBvbmVzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdtdWx0aXBsZS1tb2RlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbXVsdGlwbGVNb2RlOiAnZGVmYXVsdCcgfCAncGVyc2lzdGVudCcgPSAnZGVmYXVsdCc7XG5cbiAgLyoqIEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWxsb3dlZCB1bmlxdWUgZmlsZSB0eXBlIHNwZWNpZmllcnMuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXB0OiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhlIHRpdGxlIGRpc3BsYXllZCBpbiBgZHJvcHpvbmVgIHZhcmlhbnQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1jb250ZW50JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgcGF0aCBvZiB0aGUgZmlyc3Qgc2VsZWN0ZWQgZmlsZS4gRW1wdHkgc3RyaW5nICgnJykgaWYgbm8gZmlsZSBpcyBzZWxlY3RlZCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9oaWRkZW5JbnB1dC52YWx1ZSA9IHZhbHVlID8/ICcnO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9oaWRkZW5JbnB1dD8udmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmlsZXMuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgZmlsZXModmFsdWU6IEZpbGVbXSkge1xuICAgIHRoaXMuX2ZpbGVzID0gdmFsdWUgPz8gW107XG5cbiAgICAvLyB1cGRhdGUgdGhlIGlubmVyIGlucHV0XG4gICAgY29uc3QgZHQ6IERhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJhbnNmZXIoKTtcbiAgICB0aGlzLmZpbGVzLmZvckVhY2goKGU6IEZpbGUpID0+IGR0Lml0ZW1zLmFkZChlKSk7XG4gICAgdGhpcy5faGlkZGVuSW5wdXQuZmlsZXMgPSBkdC5maWxlcztcblxuICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgfVxuICBwcml2YXRlIF9maWxlczogRmlsZVtdID0gW107XG5cbiAgLyoqXG4gICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgKiBAZGVmYXVsdCAnZmlsZSdcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZmlsZSc7XG4gIH1cblxuICAvKiogQW4gZXZlbnQgd2hpY2ggaXMgZW1pdHRlZCBlYWNoIHRpbWUgdGhlIGZpbGUgbGlzdCBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9maWxlQ2hhbmdlZEV2ZW50OiBFdmVudEVtaXR0ZXI8RmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJGaWxlU2VsZWN0b3JFbGVtZW50LmV2ZW50cy5maWxlQ2hhbmdlZEV2ZW50LFxuICApO1xuXG4gIC8vIFNhZmFyaSBoYXMgYSBwZWN1bGlhciBiZWhhdmlvciB3aGVuIGRyYWdnaW5nIGZpbGVzIG9uIHRoZSBpbm5lciBidXR0b24gaW4gJ2Ryb3B6b25lJyB2YXJpYW50O1xuICAvLyB0aGlzIHdpbGwgcmVxdWlyZSBhIGNvdW50ZXIgdG8gY29ycmVjdGx5IGhhbmRsZSB0aGUgZHJhZ0VudGVyL2RyYWdMZWF2ZS5cbiAgcHJpdmF0ZSBfY291bnRlcjogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIF9sb2FkQnV0dG9uITogU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgcHJpdmF0ZSBfZHJhZ1RhcmdldD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9oaWRkZW5JbnB1dCE6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIHByaXZhdGUgX3N1ZmZpeGVzOiBzdHJpbmdbXSA9IFsnQicsICdrQicsICdNQicsICdHQicsICdUQiddO1xuICBwcml2YXRlIF9saXZlUmVnaW9uITogSFRNTFBhcmFncmFwaEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgdGhlICdmaWxlcycgcHJvcGVydHkgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIGdldEZpbGVzKCk6IEZpbGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZXM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5maWxlcyA9IFtdO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgX3JlYXNvbj86IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXN0YXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlsZXMgPSAoc3RhdGUgYXMgW3N0cmluZywgRm9ybURhdGFFbnRyeVZhbHVlXVtdKS5tYXAoKFtfLCB2YWx1ZV0pID0+IHZhbHVlIGFzIEZpbGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtVmFsdWUgPSBuZXcgRm9ybURhdGEoKTtcbiAgICB0aGlzLmZpbGVzLmZvckVhY2goKGZpbGUpID0+IGZvcm1WYWx1ZS5hcHBlbmQodGhpcy5uYW1lLCBmaWxlKSk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKGZvcm1WYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9ibG9ja0V2ZW50KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tGaWxlRXF1YWxpdHkoZmlsZTE6IEZpbGUsIGZpbGUyOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZpbGUxLm5hbWUgPT09IGZpbGUyLm5hbWUgJiZcbiAgICAgIGZpbGUxLnNpemUgPT09IGZpbGUyLnNpemUgJiZcbiAgICAgIGZpbGUxLmxhc3RNb2RpZmllZCA9PT0gZmlsZTIubGFzdE1vZGlmaWVkXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uRHJhZ0VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb3VudGVyKys7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmZvcm1EaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCwgdHJ1ZSk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlci0tO1xuICAgIGlmIChcbiAgICAgICF0aGlzLmRpc2FibGVkICYmXG4gICAgICAhdGhpcy5mb3JtRGlzYWJsZWQgJiZcbiAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fZHJhZ1RhcmdldCAmJlxuICAgICAgdGhpcy5fY291bnRlciA9PT0gMFxuICAgICkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKCk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkZpbGVEcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb3VudGVyID0gMDtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuZm9ybURpc2FibGVkKSB7XG4gICAgICB0aGlzLl9zZXREcmFnU3RhdGUoKTtcbiAgICAgIHRoaXMuX2Jsb2NrRXZlbnQoZXZlbnQpO1xuICAgICAgdGhpcy5fY3JlYXRlRmlsZUxpc3QoZXZlbnQuZGF0YVRyYW5zZmVyIS5maWxlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgdGhpcy5fbG9hZEJ1dHRvbi50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtdmlzaWJsZScsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uQmx1cigpOiB2b2lkIHtcbiAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgdGhpcy5fbG9hZEJ1dHRvbi5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtdmlzaWJsZScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldERyYWdTdGF0ZShcbiAgICBkcmFnVGFyZ2V0OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBpc0RyYWdFbnRlcjogYm9vbGVhbiA9IGZhbHNlLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnVGFyZ2V0ID0gZHJhZ1RhcmdldDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnLCBpc0RyYWdFbnRlcik7XG4gICAgdGhpcy5fbG9hZEJ1dHRvbi50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgaXNEcmFnRW50ZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVhZEZpbGVzKGV2ZW50OiBET01FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVJbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmIChmaWxlSW5wdXQuZmlsZXMpIHtcbiAgICAgIHRoaXMuX2NyZWF0ZUZpbGVMaXN0KGZpbGVJbnB1dC5maWxlcyk7XG4gICAgfVxuICAgIGZvcndhcmRFdmVudFRvSG9zdChldmVudCwgdGhpcyk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVGaWxlTGlzdChmaWxlczogRmlsZUxpc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgfHwgdGhpcy5tdWx0aXBsZU1vZGUgIT09ICdwZXJzaXN0ZW50JyB8fCB0aGlzLmZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5maWxlcyA9IEFycmF5LmZyb20oZmlsZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbGVzID0gQXJyYXkuZnJvbShmaWxlcylcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAvLyBSZW1vdmUgZHVwbGljYXRlc1xuICAgICAgICAgIChuZXdGaWxlOiBGaWxlKTogYm9vbGVhbiA9PlxuICAgICAgICAgICAgdGhpcy5maWxlcyEuZmluZEluZGV4KChvbGRGaWxlOiBGaWxlKSA9PiB0aGlzLl9jaGVja0ZpbGVFcXVhbGl0eShuZXdGaWxlLCBvbGRGaWxlKSkgPT09XG4gICAgICAgICAgICAtMSxcbiAgICAgICAgKVxuICAgICAgICAuY29uY2F0KHRoaXMuZmlsZXMpO1xuICAgIH1cbiAgICB0aGlzLl91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpO1xuICAgIHRoaXMuX2ZpbGVDaGFuZ2VkRXZlbnQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIHRoaXMuZmlsZXMgPSB0aGlzLmZpbGVzLmZpbHRlcigoZjogRmlsZSkgPT4gIXRoaXMuX2NoZWNrRmlsZUVxdWFsaXR5KGZpbGUsIGYpKTtcbiAgICB0aGlzLl91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpO1xuXG4gICAgLy8gRGlzcGF0Y2ggbmF0aXZlIGV2ZW50cyBhcyBpZiB0aGUgcmVzZXQgaXMgZG9uZSB2aWEgdGhlIGZpbGUgc2VsZWN0aW9uIHdpbmRvdy5cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgdGhpcy5fZmlsZUNoYW5nZWRFdmVudC5lbWl0KHRoaXMuZmlsZXMpO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIGNvcnJlY3QgdW5pdCBmb3IgdGhlIGZpbGUncyBzaXplLiAqL1xuICBwcml2YXRlIF9mb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGk6IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5sb2coc2l6ZSkgLyBNYXRoLmxvZygxMDI0KSk7XG4gICAgcmV0dXJuIGAkeyhzaXplIC8gTWF0aC5wb3coMTAyNCwgaSkpLnRvRml4ZWQoMCl9ICR7dGhpcy5fc3VmZml4ZXNbaV19YDtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUExMXlMaXZlUmVnaW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2xpdmVSZWdpb24uaW5uZXJUZXh0ID0gaTE4bkZpbGVTZWxlY3RvckN1cnJlbnRseVNlbGVjdGVkKHRoaXMuZmlsZXMubWFwKChlKSA9PiBlLm5hbWUpKVtcbiAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnRcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyRGVmYXVsdE1vZGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uLXN0YXRpY1xuICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICBpY29uLW5hbWU9XCJmb2xkZXItb3Blbi1zbWFsbFwiXG4gICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLl9sb2FkQnV0dG9uID0gZWwgYXMgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICAgICAgfSl9XG4gICAgICA+XG4gICAgICAgICR7aTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgPC9zYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWM+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckRyb3B6b25lQXJlYSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWEtLWljb25cIj5cbiAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgIG5hbWU9JHt0aGlzLnNpemUgPT09ICdtJyA/ICdmb2xkZXItb3Blbi1tZWRpdW0nIDogJ2ZvbGRlci1vcGVuLXNtYWxsJ31cbiAgICAgICAgICA+PC9zYmItaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS10aXRsZVwiPiR7dGhpcy50aXRsZUNvbnRlbnR9PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS1zdWJ0aXRsZVwiPlxuICAgICAgICAgICR7aTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tYnV0dG9uXCI+XG4gICAgICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uLXN0YXRpY1xuICAgICAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZX1cbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2xvYWRCdXR0b24gPSBlbCBhcyBTYmJTZWNvbmRhcnlCdXR0b25TdGF0aWNFbGVtZW50O1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHtpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgPC9zYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWM+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyRmlsZUxpc3QoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IFRBR19OQU1FOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID1cbiAgICAgIHRoaXMuZmlsZXMubGVuZ3RoID4gMVxuICAgICAgICA/IHsgV1JBUFBFUjogJ3VsJywgRUxFTUVOVDogJ2xpJyB9XG4gICAgICAgIDogeyBXUkFQUEVSOiAnZGl2JywgRUxFTUVOVDogJ3NwYW4nIH07XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5XUkFQUEVSKX0gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1saXN0XCI+XG4gICAgICAgICR7dGhpcy5maWxlcy5tYXAoXG4gICAgICAgICAgKGZpbGU6IEZpbGUpID0+IGh0bWxgXG4gICAgICAgICAgPCR7dW5zYWZlU3RhdGljKFRBR19OQU1FLkVMRU1FTlQpfSBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19maWxlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19maWxlLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1uYW1lXCI+JHtmaWxlLm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19maWxlLXNpemVcIj4ke3RoaXMuX2Zvcm1hdEZpbGVTaXplKGZpbGUuc2l6ZSl9PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uXG4gICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICAgIGljb24tbmFtZT1cInRyYXNoLXNtYWxsXCJcbiAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fcmVtb3ZlRmlsZShmaWxlKX1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2Ake2kxOG5GaWxlU2VsZWN0b3JEZWxldGVGaWxlW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAtICR7ZmlsZS5uYW1lfWB9XG4gICAgICAgICAgICA+PC9zYmItc2Vjb25kYXJ5LWJ1dHRvbj5cbiAgICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRBR19OQU1FLkVMRU1FTlQpfT5gLFxuICAgICAgICApfVxuICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5XUkFQUEVSKX0+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGFyaWFMYWJlbCA9IHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsXG4gICAgICA/IGAke2kxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gLSAke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsfWBcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19pbnB1dC1jb250YWluZXJcIlxuICAgICAgICAgIEBkcmFnZW50ZXI9JHt0aGlzLl9vbkRyYWdFbnRlcn1cbiAgICAgICAgICBAZHJhZ292ZXI9JHt0aGlzLl9ibG9ja0V2ZW50fVxuICAgICAgICAgIEBkcmFnbGVhdmU9JHt0aGlzLl9vbkRyYWdMZWF2ZX1cbiAgICAgICAgICBAZHJvcD0ke3RoaXMuX29uRmlsZURyb3B9XG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAke3RoaXMudmFyaWFudCA9PT0gJ2RlZmF1bHQnID8gdGhpcy5fcmVuZGVyRGVmYXVsdE1vZGUoKSA6IHRoaXMuX3JlbmRlckRyb3B6b25lQXJlYSgpfVxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX3Zpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZH1cbiAgICAgICAgICAgICAgP211bHRpcGxlPSR7dGhpcy5tdWx0aXBsZX1cbiAgICAgICAgICAgICAgYWNjZXB0PSR7dGhpcy5hY2NlcHQgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2FyaWFMYWJlbCB8fCBub3RoaW5nfVxuICAgICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5fcmVhZEZpbGVzfVxuICAgICAgICAgICAgICBAZm9jdXM9JHt0aGlzLl9vbkZvY3VzfVxuICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuX29uQmx1cn1cbiAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hpZGRlbklucHV0ID0gZWwgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cFxuICAgICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX3Zpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgJHtyZWYoKHA/OiBFbGVtZW50KSA9PiAodGhpcy5fbGl2ZVJlZ2lvbiA9IHAgYXMgSFRNTFBhcmFncmFwaEVsZW1lbnQpKX1cbiAgICAgICAgPjwvcD5cbiAgICAgICAgJHt0aGlzLmZpbGVzLmxlbmd0aCA+IDAgPyB0aGlzLl9yZW5kZXJGaWxlTGlzdCgpIDogbm90aGluZ31cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19lcnJvclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJlcnJvclwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZmlsZS1zZWxlY3Rvcic6IFNiYkZpbGVTZWxlY3RvckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTYmJGaWxlU2VsZWN0b3JFbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUEyQ00sMEJBQXNCLE1BQUE7O0FBRjNCLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLG1CQUFtQixHQUNqQyxXQUFXOzs7O0FBQ3lCLE1BQUEsY0FBQSxpQkFBaUIsdUJBQXVCLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEzREEsTUFBQUEsMkJBQUEsbUJBQVEsWUFBb0Q7QUFBQTs7QUFPM0U7QUFHaUI7QUFLN0I7QUFJQTtBQUtBO0FBS0E7QUFLQTtBQWxDSSx5QkFBQSw0QkFBQSxrQkFBQSxNQUFBLDBCQUFBLEdBTzBELGtCQUFBLE1BQUEsdUJBQUEsU0FBUztBQUcxQix5QkFBQSx5QkFBQSxrQkFBQSxNQUFBLDBCQUFBLEdBQUEsa0JBQUEsTUFBQSxvQkFBa0IsR0FBRztBQUtsRCx5QkFBQSw2QkFBQSxrQkFBQSxNQUFBLHVCQUFBLEdBQUEsa0JBQUEsTUFBQSx3QkFBb0IsS0FBSztBQUl6Qix5QkFBQSxpQ0FBQSxrQkFBQSxNQUFBLDJCQUFBLEdBQUEsa0JBQUEsTUFBQSw0QkFBeUMsU0FBUztBQUtsRCx5QkFB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
1
+ export * from "./file-selector/common.js";
2
+ export * from "./file-selector/file-selector-dropzone.js";
3
+ export * from "./file-selector/file-selector.js";
4
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OzsifQ==
@@ -14,7 +14,7 @@ const style = css`*,
14
14
  --sbb-flip-card-details-opacity: 0;
15
15
  --sbb-flip-card-details-translate-y: var(--sbb-spacing-fixed-2x);
16
16
  --sbb-flip-card-details-transition-delay: var(
17
- --sbb-disable-animation-zero-time,
17
+ --sbb-disable-animation-duration,
18
18
  var(--sbb-animation-duration-5x)
19
19
  );
20
20
  --sbb-flip-card-details-padding: var(--sbb-spacing-responsive-s);