@ui5/webcomponents 1.22.0-rc.2 → 1.22.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 (519) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Avatar.d.ts +6 -6
  4. package/dist/Avatar.js +5 -5
  5. package/dist/Avatar.js.map +1 -1
  6. package/dist/AvatarGroup.d.ts +17 -5
  7. package/dist/AvatarGroup.js +7 -8
  8. package/dist/AvatarGroup.js.map +1 -1
  9. package/dist/Badge.d.ts +2 -2
  10. package/dist/Badge.js.map +1 -1
  11. package/dist/Breadcrumbs.d.ts +1 -15
  12. package/dist/Breadcrumbs.js +12 -81
  13. package/dist/Breadcrumbs.js.map +1 -1
  14. package/dist/BreadcrumbsItem.d.ts +4 -0
  15. package/dist/BreadcrumbsItem.js +5 -0
  16. package/dist/BreadcrumbsItem.js.map +1 -1
  17. package/dist/Button.d.ts +20 -9
  18. package/dist/Button.js +3 -2
  19. package/dist/Button.js.map +1 -1
  20. package/dist/Card.d.ts +12 -1
  21. package/dist/Card.js.map +1 -1
  22. package/dist/CardHeader.d.ts +1 -1
  23. package/dist/CardHeader.js.map +1 -1
  24. package/dist/CheckBox.js +4 -2
  25. package/dist/CheckBox.js.map +1 -1
  26. package/dist/ColorPalette.d.ts +11 -2
  27. package/dist/ColorPalette.js.map +1 -1
  28. package/dist/ColorPaletteItem.d.ts +2 -3
  29. package/dist/ColorPaletteItem.js +1 -2
  30. package/dist/ColorPaletteItem.js.map +1 -1
  31. package/dist/ColorPalettePopover.d.ts +1 -2
  32. package/dist/ColorPalettePopover.js +0 -1
  33. package/dist/ColorPalettePopover.js.map +1 -1
  34. package/dist/ComboBox.d.ts +13 -1
  35. package/dist/ComboBox.js.map +1 -1
  36. package/dist/DatePicker.d.ts +5 -1
  37. package/dist/DatePicker.js +33 -6
  38. package/dist/DatePicker.js.map +1 -1
  39. package/dist/DateTimePicker.d.ts +1 -7
  40. package/dist/DateTimePicker.js +6 -17
  41. package/dist/DateTimePicker.js.map +1 -1
  42. package/dist/Icon.d.ts +8 -1
  43. package/dist/Icon.js.map +1 -1
  44. package/dist/Input.d.ts +18 -3
  45. package/dist/Input.js +0 -1
  46. package/dist/Input.js.map +1 -1
  47. package/dist/Link.d.ts +9 -7
  48. package/dist/Link.js +4 -3
  49. package/dist/Link.js.map +1 -1
  50. package/dist/ListItem.d.ts +4 -3
  51. package/dist/ListItem.js +1 -1
  52. package/dist/ListItem.js.map +1 -1
  53. package/dist/ListItemBase.d.ts +2 -1
  54. package/dist/ListItemBase.js +3 -2
  55. package/dist/ListItemBase.js.map +1 -1
  56. package/dist/MessageStrip.d.ts +1 -1
  57. package/dist/MessageStrip.js.map +1 -1
  58. package/dist/MultiComboBox.d.ts +12 -1
  59. package/dist/MultiComboBox.js.map +1 -1
  60. package/dist/MultiInput.d.ts +8 -2
  61. package/dist/MultiInput.js.map +1 -1
  62. package/dist/Option.d.ts +3 -2
  63. package/dist/Option.js +2 -1
  64. package/dist/Option.js.map +1 -1
  65. package/dist/Popover.js +6 -6
  66. package/dist/Popover.js.map +1 -1
  67. package/dist/SegmentedButton.d.ts +11 -3
  68. package/dist/SegmentedButton.js.map +1 -1
  69. package/dist/SegmentedButtonItem.d.ts +1 -2
  70. package/dist/SegmentedButtonItem.js +0 -1
  71. package/dist/SegmentedButtonItem.js.map +1 -1
  72. package/dist/Select.d.ts +17 -1
  73. package/dist/Select.js +6 -9
  74. package/dist/Select.js.map +1 -1
  75. package/dist/SelectMenu.d.ts +1 -1
  76. package/dist/SelectMenu.js +0 -1
  77. package/dist/SelectMenu.js.map +1 -1
  78. package/dist/SelectMenuOption.d.ts +2 -1
  79. package/dist/SelectMenuOption.js +0 -1
  80. package/dist/SelectMenuOption.js.map +1 -1
  81. package/dist/SuggestionGroupItem.d.ts +1 -1
  82. package/dist/SuggestionGroupItem.js.map +1 -1
  83. package/dist/SuggestionItem.d.ts +1 -1
  84. package/dist/SuggestionItem.js.map +1 -1
  85. package/dist/Tab.d.ts +12 -12
  86. package/dist/Tab.js +22 -23
  87. package/dist/Tab.js.map +1 -1
  88. package/dist/TabContainer.d.ts +33 -2
  89. package/dist/TabContainer.js +30 -30
  90. package/dist/TabContainer.js.map +1 -1
  91. package/dist/TabSeparator.d.ts +2 -2
  92. package/dist/TabSeparator.js +2 -2
  93. package/dist/TabSeparator.js.map +1 -1
  94. package/dist/Table.d.ts +14 -1
  95. package/dist/Table.js +8 -8
  96. package/dist/Table.js.map +1 -1
  97. package/dist/TableGroupRow.d.ts +4 -4
  98. package/dist/TableGroupRow.js +5 -5
  99. package/dist/TableGroupRow.js.map +1 -1
  100. package/dist/TableRow.d.ts +4 -4
  101. package/dist/TableRow.js +6 -6
  102. package/dist/TableRow.js.map +1 -1
  103. package/dist/TimePickerInternals.d.ts +1 -0
  104. package/dist/TimePickerInternals.js.map +1 -1
  105. package/dist/TimeSelectionClocks.d.ts +18 -17
  106. package/dist/TimeSelectionClocks.js +48 -18
  107. package/dist/TimeSelectionClocks.js.map +1 -1
  108. package/dist/Toast.d.ts +1 -8
  109. package/dist/Toast.js +21 -19
  110. package/dist/Toast.js.map +1 -1
  111. package/dist/ToggleSpinButton.d.ts +0 -1
  112. package/dist/ToggleSpinButton.js +0 -1
  113. package/dist/ToggleSpinButton.js.map +1 -1
  114. package/dist/Token.d.ts +3 -2
  115. package/dist/Token.js +1 -1
  116. package/dist/Token.js.map +1 -1
  117. package/dist/Tokenizer.d.ts +1 -1
  118. package/dist/Tokenizer.js.map +1 -1
  119. package/dist/Toolbar.d.ts +1 -1
  120. package/dist/Toolbar.js +3 -3
  121. package/dist/Toolbar.js.map +1 -1
  122. package/dist/ToolbarButton.d.ts +5 -6
  123. package/dist/ToolbarButton.js.map +1 -1
  124. package/dist/ToolbarSelect.js +4 -4
  125. package/dist/ToolbarSelect.js.map +1 -1
  126. package/dist/Tree.js +2 -2
  127. package/dist/Tree.js.map +1 -1
  128. package/dist/TreeItemBase.d.ts +2 -2
  129. package/dist/TreeItemBase.js +4 -4
  130. package/dist/TreeItemBase.js.map +1 -1
  131. package/dist/bundle.esm.js.map +1 -1
  132. package/dist/css/themes/Avatar.css +1 -1
  133. package/dist/css/themes/AvatarGroup.css +1 -1
  134. package/dist/css/themes/Badge.css +1 -1
  135. package/dist/css/themes/Breadcrumbs.css +1 -1
  136. package/dist/css/themes/BusyIndicator.css +1 -1
  137. package/dist/css/themes/Button.css +1 -1
  138. package/dist/css/themes/Calendar.css +1 -1
  139. package/dist/css/themes/CalendarHeader.css +1 -1
  140. package/dist/css/themes/Card.css +1 -1
  141. package/dist/css/themes/CardHeader.css +1 -1
  142. package/dist/css/themes/Carousel.css +1 -1
  143. package/dist/css/themes/CheckBox.css +1 -1
  144. package/dist/css/themes/ColorPalette.css +1 -1
  145. package/dist/css/themes/ColorPaletteItem.css +1 -1
  146. package/dist/css/themes/ColorPalettePopover.css +1 -1
  147. package/dist/css/themes/ColorPicker.css +1 -1
  148. package/dist/css/themes/ComboBox.css +1 -1
  149. package/dist/css/themes/CustomListItem.css +1 -1
  150. package/dist/css/themes/DatePicker.css +1 -1
  151. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  152. package/dist/css/themes/DayPicker.css +1 -1
  153. package/dist/css/themes/Dialog.css +1 -1
  154. package/dist/css/themes/FileUploader.css +1 -1
  155. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  156. package/dist/css/themes/GrowingButton.css +1 -1
  157. package/dist/css/themes/Icon.css +1 -1
  158. package/dist/css/themes/Input.css +1 -1
  159. package/dist/css/themes/InputIcon.css +1 -1
  160. package/dist/css/themes/InputSharedStyles.css +1 -1
  161. package/dist/css/themes/Link.css +1 -1
  162. package/dist/css/themes/List.css +1 -1
  163. package/dist/css/themes/ListItem.css +1 -1
  164. package/dist/css/themes/ListItemBase.css +1 -1
  165. package/dist/css/themes/Menu.css +1 -1
  166. package/dist/css/themes/MessageStrip.css +1 -1
  167. package/dist/css/themes/MonthPicker.css +1 -1
  168. package/dist/css/themes/MultiComboBox.css +1 -1
  169. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  170. package/dist/css/themes/MultiInput.css +1 -1
  171. package/dist/css/themes/NavigationMenu.css +1 -1
  172. package/dist/css/themes/Panel.css +1 -1
  173. package/dist/css/themes/Popover.css +1 -1
  174. package/dist/css/themes/PopupStaticAreaStyles.css +1 -1
  175. package/dist/css/themes/PopupsCommon.css +1 -1
  176. package/dist/css/themes/ProgressIndicator.css +1 -1
  177. package/dist/css/themes/RadioButton.css +1 -1
  178. package/dist/css/themes/RangeSlider.css +1 -1
  179. package/dist/css/themes/RatingIndicator.css +1 -1
  180. package/dist/css/themes/ResponsivePopover.css +1 -1
  181. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  182. package/dist/css/themes/SegmentedButton.css +1 -1
  183. package/dist/css/themes/Select.css +1 -1
  184. package/dist/css/themes/SelectMenu.css +1 -1
  185. package/dist/css/themes/SelectPopover.css +1 -1
  186. package/dist/css/themes/SliderBase.css +1 -1
  187. package/dist/css/themes/SplitButton.css +1 -1
  188. package/dist/css/themes/StepInput.css +1 -1
  189. package/dist/css/themes/Switch.css +1 -1
  190. package/dist/css/themes/TabContainer.css +1 -1
  191. package/dist/css/themes/TabInOverflow.css +1 -1
  192. package/dist/css/themes/TabInStrip.css +1 -1
  193. package/dist/css/themes/TabSemanticIcon.css +1 -1
  194. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  195. package/dist/css/themes/Table.css +1 -1
  196. package/dist/css/themes/TableCell.css +1 -1
  197. package/dist/css/themes/TableColumn.css +1 -1
  198. package/dist/css/themes/TableGroupRow.css +1 -1
  199. package/dist/css/themes/TableRow.css +1 -1
  200. package/dist/css/themes/TextArea.css +1 -1
  201. package/dist/css/themes/TimePicker.css +1 -1
  202. package/dist/css/themes/TimePickerPopover.css +1 -1
  203. package/dist/css/themes/TimeSelectionClocks.css +1 -1
  204. package/dist/css/themes/Toast.css +1 -1
  205. package/dist/css/themes/ToggleButton.css +1 -1
  206. package/dist/css/themes/Token.css +1 -1
  207. package/dist/css/themes/Tokenizer.css +1 -1
  208. package/dist/css/themes/TokenizerPopover.css +1 -1
  209. package/dist/css/themes/Toolbar.css +1 -1
  210. package/dist/css/themes/ToolbarPopover.css +1 -1
  211. package/dist/css/themes/TreeItem.css +1 -1
  212. package/dist/css/themes/ValueStateMessage.css +1 -1
  213. package/dist/css/themes/WheelSlider.css +1 -1
  214. package/dist/css/themes/YearPicker.css +1 -1
  215. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  216. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  217. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  218. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  219. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  220. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  221. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  222. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  223. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  224. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  225. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  226. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  227. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  228. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  229. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  230. package/dist/custom-elements-internal.json +306 -79
  231. package/dist/custom-elements.json +119 -26
  232. package/dist/features/InputSuggestions.d.ts +2 -2
  233. package/dist/features/InputSuggestions.js.map +1 -1
  234. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  235. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  236. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  237. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  238. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  239. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  240. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  241. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  242. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  243. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  244. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  245. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  246. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  247. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  248. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  249. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  250. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  251. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  252. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  253. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +3 -3
  254. package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +1 -1
  255. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +1 -1
  256. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js.map +1 -1
  257. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  258. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js.map +1 -1
  259. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +1 -1
  260. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js.map +1 -1
  261. package/dist/generated/templates/TabInOverflowTemplate.lit.js +1 -1
  262. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  263. package/dist/generated/templates/TabInStripTemplate.lit.js +1 -1
  264. package/dist/generated/templates/TabInStripTemplate.lit.js.map +1 -1
  265. package/dist/generated/templates/TableGroupRowTemplate.lit.js +1 -1
  266. package/dist/generated/templates/TableGroupRowTemplate.lit.js.map +1 -1
  267. package/dist/generated/templates/TableRowTemplate.lit.js +1 -1
  268. package/dist/generated/templates/TableRowTemplate.lit.js.map +1 -1
  269. package/dist/generated/templates/TableTemplate.lit.js +1 -1
  270. package/dist/generated/templates/TableTemplate.lit.js.map +1 -1
  271. package/dist/generated/templates/TimeSelectionClocksTemplate.lit.js +3 -3
  272. package/dist/generated/templates/TimeSelectionClocksTemplate.lit.js.map +1 -1
  273. package/dist/generated/templates/ToastTemplate.lit.js +2 -2
  274. package/dist/generated/templates/ToastTemplate.lit.js.map +1 -1
  275. package/dist/generated/templates/TokenTemplate.lit.js +1 -1
  276. package/dist/generated/templates/TokenTemplate.lit.js.map +1 -1
  277. package/dist/generated/themes/Avatar.css.js +1 -1
  278. package/dist/generated/themes/Avatar.css.js.map +1 -1
  279. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  280. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  281. package/dist/generated/themes/Badge.css.js +1 -1
  282. package/dist/generated/themes/Badge.css.js.map +1 -1
  283. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  284. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  285. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  286. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  287. package/dist/generated/themes/Button.css.js +1 -1
  288. package/dist/generated/themes/Button.css.js.map +1 -1
  289. package/dist/generated/themes/Calendar.css.js +1 -1
  290. package/dist/generated/themes/Calendar.css.js.map +1 -1
  291. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  292. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  293. package/dist/generated/themes/Card.css.js +1 -1
  294. package/dist/generated/themes/Card.css.js.map +1 -1
  295. package/dist/generated/themes/CardHeader.css.js +1 -1
  296. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  297. package/dist/generated/themes/Carousel.css.js +1 -1
  298. package/dist/generated/themes/Carousel.css.js.map +1 -1
  299. package/dist/generated/themes/CheckBox.css.js +1 -1
  300. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  301. package/dist/generated/themes/ColorPalette.css.js +1 -1
  302. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  303. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  304. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  305. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  306. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  307. package/dist/generated/themes/ColorPicker.css.js +1 -1
  308. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  309. package/dist/generated/themes/ComboBox.css.js +1 -1
  310. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  311. package/dist/generated/themes/CustomListItem.css.js +1 -1
  312. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  313. package/dist/generated/themes/DatePicker.css.js +1 -1
  314. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  315. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  316. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  317. package/dist/generated/themes/DayPicker.css.js +1 -1
  318. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  319. package/dist/generated/themes/Dialog.css.js +1 -1
  320. package/dist/generated/themes/Dialog.css.js.map +1 -1
  321. package/dist/generated/themes/FileUploader.css.js +1 -1
  322. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  323. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  324. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  325. package/dist/generated/themes/GrowingButton.css.js +1 -1
  326. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  327. package/dist/generated/themes/Icon.css.js +1 -1
  328. package/dist/generated/themes/Icon.css.js.map +1 -1
  329. package/dist/generated/themes/Input.css.js +1 -1
  330. package/dist/generated/themes/Input.css.js.map +1 -1
  331. package/dist/generated/themes/InputIcon.css.js +1 -1
  332. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  333. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  334. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  335. package/dist/generated/themes/Link.css.js +1 -1
  336. package/dist/generated/themes/Link.css.js.map +1 -1
  337. package/dist/generated/themes/List.css.js +1 -1
  338. package/dist/generated/themes/List.css.js.map +1 -1
  339. package/dist/generated/themes/ListItem.css.js +1 -1
  340. package/dist/generated/themes/ListItem.css.js.map +1 -1
  341. package/dist/generated/themes/ListItemBase.css.js +1 -1
  342. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  343. package/dist/generated/themes/Menu.css.js +1 -1
  344. package/dist/generated/themes/Menu.css.js.map +1 -1
  345. package/dist/generated/themes/MessageStrip.css.js +1 -1
  346. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  347. package/dist/generated/themes/MonthPicker.css.js +1 -1
  348. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  349. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  350. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  351. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  352. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  353. package/dist/generated/themes/MultiInput.css.js +1 -1
  354. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  355. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  356. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  357. package/dist/generated/themes/Panel.css.js +1 -1
  358. package/dist/generated/themes/Panel.css.js.map +1 -1
  359. package/dist/generated/themes/Popover.css.js +1 -1
  360. package/dist/generated/themes/Popover.css.js.map +1 -1
  361. package/dist/generated/themes/PopupStaticAreaStyles.css.js +1 -1
  362. package/dist/generated/themes/PopupStaticAreaStyles.css.js.map +1 -1
  363. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  364. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  365. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  366. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  367. package/dist/generated/themes/RadioButton.css.js +1 -1
  368. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  369. package/dist/generated/themes/RangeSlider.css.js +1 -1
  370. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  371. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  372. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  373. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  374. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  375. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  376. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  377. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  378. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  379. package/dist/generated/themes/Select.css.js +1 -1
  380. package/dist/generated/themes/Select.css.js.map +1 -1
  381. package/dist/generated/themes/SelectMenu.css.js +1 -1
  382. package/dist/generated/themes/SelectMenu.css.js.map +1 -1
  383. package/dist/generated/themes/SelectPopover.css.js +1 -1
  384. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  385. package/dist/generated/themes/SliderBase.css.js +1 -1
  386. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  387. package/dist/generated/themes/SplitButton.css.js +1 -1
  388. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  389. package/dist/generated/themes/StepInput.css.js +1 -1
  390. package/dist/generated/themes/StepInput.css.js.map +1 -1
  391. package/dist/generated/themes/Switch.css.js +1 -1
  392. package/dist/generated/themes/Switch.css.js.map +1 -1
  393. package/dist/generated/themes/TabContainer.css.js +1 -1
  394. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  395. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  396. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  397. package/dist/generated/themes/TabInStrip.css.js +1 -1
  398. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  399. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  400. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  401. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  402. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  403. package/dist/generated/themes/Table.css.js +1 -1
  404. package/dist/generated/themes/Table.css.js.map +1 -1
  405. package/dist/generated/themes/TableCell.css.js +1 -1
  406. package/dist/generated/themes/TableCell.css.js.map +1 -1
  407. package/dist/generated/themes/TableColumn.css.js +1 -1
  408. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  409. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  410. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  411. package/dist/generated/themes/TableRow.css.js +1 -1
  412. package/dist/generated/themes/TableRow.css.js.map +1 -1
  413. package/dist/generated/themes/TextArea.css.js +1 -1
  414. package/dist/generated/themes/TextArea.css.js.map +1 -1
  415. package/dist/generated/themes/TimePicker.css.js +1 -1
  416. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  417. package/dist/generated/themes/TimePickerPopover.css.js +1 -1
  418. package/dist/generated/themes/TimePickerPopover.css.js.map +1 -1
  419. package/dist/generated/themes/TimeSelectionClocks.css.js +1 -1
  420. package/dist/generated/themes/TimeSelectionClocks.css.js.map +1 -1
  421. package/dist/generated/themes/Toast.css.js +1 -1
  422. package/dist/generated/themes/Toast.css.js.map +1 -1
  423. package/dist/generated/themes/ToggleButton.css.js +1 -1
  424. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  425. package/dist/generated/themes/Token.css.js +1 -1
  426. package/dist/generated/themes/Token.css.js.map +1 -1
  427. package/dist/generated/themes/Tokenizer.css.js +1 -1
  428. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  429. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  430. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  431. package/dist/generated/themes/Toolbar.css.js +1 -1
  432. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  433. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  434. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  435. package/dist/generated/themes/TreeItem.css.js +1 -1
  436. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  437. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  438. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  439. package/dist/generated/themes/WheelSlider.css.js +1 -1
  440. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  441. package/dist/generated/themes/YearPicker.css.js +1 -1
  442. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  443. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  444. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  445. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  446. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  447. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  448. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  449. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  450. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  451. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  452. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  453. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  454. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  455. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  456. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  457. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  458. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  459. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  460. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  461. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  462. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  463. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  464. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  465. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  466. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  467. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  468. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  469. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  470. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  471. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  472. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  473. package/package.json +12 -11
  474. package/src/Breadcrumbs.hbs +4 -16
  475. package/src/ColorPaletteItem.hbs +1 -1
  476. package/src/DateTimePickerPopover.hbs +8 -11
  477. package/src/GroupHeaderListItem.hbs +1 -1
  478. package/src/TabInOverflow.hbs +1 -1
  479. package/src/TabInStrip.hbs +3 -3
  480. package/src/Table.hbs +1 -1
  481. package/src/TableGroupRow.hbs +1 -1
  482. package/src/TableRow.hbs +1 -1
  483. package/src/TimeSelectionClocks.hbs +5 -1
  484. package/src/Toast.hbs +2 -10
  485. package/src/Token.hbs +1 -1
  486. package/src/i18n/messagebundle_en.properties +4 -0
  487. package/src/i18n/messagebundle_en_US_saprigi.properties +4 -0
  488. package/src/i18n/messagebundle_sv.properties +2 -2
  489. package/src/i18n/messagebundle_uk.properties +3 -3
  490. package/src/themes/Breadcrumbs.css +1 -16
  491. package/src/themes/DateTimePickerPopover.css +10 -1
  492. package/src/themes/List.css +1 -1
  493. package/src/themes/PopupStaticAreaStyles.css +1 -2
  494. package/src/themes/PopupsCommon.css +2 -0
  495. package/src/themes/SplitButton.css +3 -3
  496. package/src/themes/TabInStrip.css +1 -1
  497. package/src/themes/TimePickerPopover.css +4 -0
  498. package/src/themes/TimeSelectionClocks.css +3 -5
  499. package/src/themes/Toast.css +24 -23
  500. package/src/themes/base/PopupStaticAreaStyles-parameters.css +3 -0
  501. package/src/themes/base/sizes-parameters.css +6 -2
  502. package/src/themes/sap_belize/parameters-bundle.css +1 -0
  503. package/src/themes/sap_belize_hcb/parameters-bundle.css +1 -0
  504. package/src/themes/sap_belize_hcw/parameters-bundle.css +1 -0
  505. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
  506. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
  507. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
  508. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
  509. package/src/themes/sap_horizon/Breadcrumbs-parameters.css +1 -1
  510. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  511. package/src/themes/sap_horizon_dark/Breadcrumbs-parameters.css +1 -1
  512. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -0
  513. package/src/themes/sap_horizon_dark_exp/Breadcrumbs-parameters.css +1 -1
  514. package/src/themes/sap_horizon_exp/Breadcrumbs-parameters.css +1 -1
  515. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -0
  516. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -0
  517. package/dist/Interfaces.d.ts +0 -180
  518. package/dist/Interfaces.js +0 -2
  519. package/dist/Interfaces.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,UAAU,MAAM,kDAAkD,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,OAAO,MAAM,+CAA+C,CAAC;AACpE,OAAO,oBAAoB,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,QAAQ,MAAM,uDAAuD,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,kDAAkD,CAAC;AAC1D,OAAO,0CAA0C,CAAC;AAClD,OAAO,+CAA+C,CAAC;AACvD,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AAC9E,OAAO,EACN,WAAW,EACX,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,GACL,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,OAAO,EACN,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,GACzB,MAAM,mCAAmC,CAAC;AAE3C,YAAY;AACZ,OAAO,gBAAgB,MAAM,+CAA+C,CAAC;AAC7E,OAAO,uBAAuB,MAAM,sDAAsD,CAAC;AAE3F,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAC7D,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAC3F,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAC/E,OAAO,cAAc,MAAM,uCAAuC,CAAC;AAEnE,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAA2B,MAAM,YAAY,CAAC;AACrD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,eAAe,GAAG,EAAE,CAAC;AAS3B,IAAK,qBAKJ;AALD,WAAK,qBAAqB;IACzB,wCAAe,CAAA;IACf,0CAAiB,CAAA;IACjB,gDAAuB,CAAA;IACvB,oDAA2B,CAAA;AAC5B,CAAC,EALI,qBAAqB,KAArB,qBAAqB,QAKzB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AA0DH,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,UAAU;IA6MhC;QACC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,uEAAuE;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QAChB,MAAM,OAAO,GAAwB,IAAI,CAAC,iBAAiB,CAAC;QAE5D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAsB,aAAa,CAAC,CAAC;QAElE,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExG,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YACrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;SACjC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC1D;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC9F,OAAO,EAAE,KAAK,EAAE,CAAC;SACjB;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,UAAU;QACb,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElD,OAAO,iBAAiB,GAAG,cAAc,GAAG,mBAAmB,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,MAAM,MAAM,GAAsB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAE1D,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACpD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC1B;QAED,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACtE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,OAAO,EAAE,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC3B;IACF,CAAC;IAED,KAAK,CAAC,kBAAkB;QACvB,MAAM,OAAO,GAAsB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAE3D,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAC5F,CAAC;IAED,QAAQ,CAAC,CAAa;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,CAAC,OAAO,EAAE,IAAK,CAAC,CAAC,MAA2B,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,SAAS,CAAC,CAAa;QACtB,MAAM,WAAW,GAAG,CAAC,CAAC,aAA4B,CAAC;QACnD,MAAM,6BAA6B,GAAG,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,6BAA6B,CAAC,CAAC;QAC5G,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QACzF,MAAM,qBAAqB,GAAG,gBAAgB,KAAK,WAAW,IAAI,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1G,IAAI,IAAI,CAAC,uBAAuB,IAAI,qBAAqB,EAAE;YAC1D,OAAO;SACP;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,6BAA6B,EAAE;YAClC,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,OAAO;SACP;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE;YAC3F,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACxC;IACF,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,qDAAqD;QACrD,IAAI,OAAO,EAAE,EAAE;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;SACZ;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SACjC;IACF,CAAC;IAED,KAAK,CAAC,kBAAkB;QACvB,MAAM,MAAM,GAAsB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAE1D,IAAI,MAAM,CAAC,MAAM,EAAE;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;aAAM;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;IACF,CAAC;IAED,KAAK,CAAC,2BAA2B;QAChC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC;SACxD;IACF,CAAC;IAED,uBAAuB,CAAC,IAAa;QACpC,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC7B;aAAM;YACN,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC9B;IACF,CAAC;IAED,KAAK,CAAC,qBAAqB;QAC1B,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC3B,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,qBAAqB;QAC1B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAY,cAAe,CAAC,aAAa,CAAU,gCAAgC,CAAE,CAAC;QAEnG,yBAAyB;QACzB,gDAAgD;QAChD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QAEjC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,YAAY;QACX,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;IAED,WAAW;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;SAC7B;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED,kBAAkB,CAAC,CAAgC;QAClD,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAI,MAAgB,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAI,MAAgB,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,CAAa;QACnB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;YAC5B,iEAAiE;YACjE,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SAClC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,eAAe;QACf,IAAI,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,IAAI,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAE9D,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAClE,IAAI,CAAC,SAAS,CAAqC,kBAAkB,EAAE;oBACtE,IAAI;iBACJ,CAAC,CAAC;aACH;SACD;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExB,IAAI,OAAO,EAAE,EAAE;YACd,OAAO;SACP;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,KAAK,KAAK,EAAE,EAAE;YAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;aAAM;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;IACF,CAAC;IACD,kBAAkB,CAAC,CAAa;QAC/B,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAC9B,MAAM,iBAAiB,GAAG;YACzB,oBAAoB;YACpB,mBAAmB;YACnB,wBAAwB;YACxB,uBAAuB;YACvB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,cAAc;YACd,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,sBAAsB;YACtB,aAAa;SACb,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,wBAAwB,CAAC,GAAW;QACnC,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW;QACV,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,CAAgB;QACjC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1D,OAAO;SACP;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhF,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;YACxE,OAAO;SACP;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,KAAK,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YAChE,OAAO;SACP;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IACC,CAAC,CAAC,GAAG,KAAK,WAAW;eAClB,CAAC,CAAC,GAAG,KAAK,SAAS;eACnB,CAAC,CAAC,GAAG,KAAK,QAAQ;eAClB,CAAC,CAAC,GAAG,KAAK,UAAU;eACpB,CAAC,CAAC,GAAG,KAAK,MAAM;eAChB,CAAC,CAAC,GAAG,KAAK,KAAK,EACjB;YACD,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;SACxC;IACF,CAAC;IAED,qBAAqB,CAAC,CAAgB,EAAE,WAAmB,EAAE,SAAkB;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACzG,MAAM,WAAW,GAAG,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC;QAE3D,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;YAChF,OAAO;SACP;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;YACjD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;SAC3B;aAAM;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5D,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;SAC5B;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE3C,IAAI,WAAW,IAAI,MAAM,EAAE;YAC1B,OAAO;SACP;QAED,eAAe;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,IAAI,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAEhG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAqC,kBAAkB,EAAE;gBACtE,IAAI;aACJ,CAAC,CAAC;SACH;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB,CAAC,CAAgB,EAAE,WAAmB;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,EAAE;YAC3E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,OAAO;SACP;QAED,WAAW,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAEpF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CAAC,CAAgB,EAAE,WAAmB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzB,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,OAAO;SACP;QAED,IAAI,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,EAAE;YAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxC,OAAO;SACP;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,OAAO;SACP;QAED,WAAW,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACpF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,aAAa,CAAC,CAAgB,EAAE,WAAmB;QAClD,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC;QAChE,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAErF,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE;YACjE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;SACP;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CAAC,CAAgB,EAAE,WAAmB;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAC/C,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,WAAW,CAAC;QAEzE,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QACrF,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAErF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,WAAW,CAAC,CAAgB;QAC3B,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE3E,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;SACP;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACrF,CAAC;IAED,MAAM;QACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEtC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAE9B,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC7D,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SAC1B;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACnD,OAAO,IAAI,CAAC,OAAO,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,MAAM,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE;gBAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACpB;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;aACzC;SACD;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACvD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SAClC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;YACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClD,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpD,OAAO,IAAI,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACrB;iBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;gBACnD,2EAA2E;gBAC3E,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aACvD;iBAAM;gBACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACpB;SACD;IACF,CAAC;IAED,MAAM;QACL,IAAI,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;IACF,CAAC;IAED,iBAAiB,CAAC,CAAS;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEtC,IAAI,CAAC,IAAK,CAAC,CAAC,MAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,kCAAkC,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACpH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;SAC1C;QAED,IAAI,CAAC,IAAK,CAAC,CAAC,MAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE;YAC1F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;SACzC;QAED,IAAI,OAAO,EAAE,EAAE;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,MAAM,EAAE,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,CAAC,GAAW;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAEtG,kDAAkD;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,UAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1J,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAmB,EAAE,GAAW,EAAE,QAA8B,EAAE,aAAmC;QAC5H,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,qBAAqB,CAAC;YAE1B,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,qBAAqB,EAAE;gBAC7E,qBAAqB,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpE,GAAG,EAAE,CAAC;aACN;YAED,OAAO,qBAAqB,CAAC;SAC7B;IACF,CAAC;IAED,qBAAqB,CAAC,OAAe;QACpC,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;QAE5E,IAAI,oBAAoB,EAAE,WAAW,EAAE;YACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,OAAO;SACP;QAED,MAAM,aAAa,GAAyB,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAyB,CAAC;QAE7I,IAAI,aAAa,CAAC,MAAM,EAAE;YACzB,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;SACxB;IACF,CAAC;IAED,6BAA6B,CAAC,IAAkB,EAAE,WAAmB,EAAE,cAAuB;QAC7F,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,IAAI,cAAc,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,mBAAmB;QAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,wBAAwB,GAAG,oBAAoB,IAAI,oBAAoB,CAAC,WAAW,CAAC;QAE1F,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxD,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,gBAAgB,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;SAC7B;IACF,CAAC;IAED,YAAY,CAAC,CAAQ;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,CAAa;QAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,CAAwC;QACnD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAwB,CAAC;QAEnD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC;QAC/D,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAE3F,IAAI,gBAAgB,IAAI,sBAAsB,EAAE;YAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,0FAA0F;YACnH,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAChC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEpC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,SAAS,CAAqC,kBAAkB,EAAE;gBACtE,IAAI,EAAE,QAAQ,CAAC,UAAU;aACzB,CAAC,CAAC;SACH;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,kBAAkB;QAClB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,YAAY;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,qBAAqB,CAAC,WAAmB;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5E,MAAM,yBAAyB,GAAG,WAAW,CAAC,cAAc,IAAI,EAAE,CAAC;QACnE,MAAM,WAAW,GAAG,WAAW,EAAE,WAAW,CAAC;QAC7C,MAAM,gBAAgB,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACvI,MAAM,eAAe,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAE5E,IAAI,WAAW,EAAE;YAChB,QAAQ,CAAC,GAAG,eAAe,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;SAChF;aAAM;YACN,QAAQ,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACjG;IACF,CAAC;IAED,MAAM;QACL,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAA+B,CAAC;QAE1F,IAAI,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACzB;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACzB;aAAM;YACN,IAAI,CAAC,KAAK,EAAE,CAAC;SACb;IACF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,OAAgB;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAS,CAAC;QACtE,MAAM,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAI,QAAQ,EAAE;YACb,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACtD,MAAM,uBAAuB,GAAG,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,IAAI,YAAY,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;YAE/G,IAAI,CAAC,uBAAuB,EAAE;gBAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;aACtG;SACD;IACF,CAAC;IAED,uBAAuB;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhK,IAAI,cAAc,EAAE;YACnB,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACtD;IACF,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK;QACR,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAkB,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,eAAe,CAAE,CAAC;IACjK,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,cAAe,CAAC,aAAa,CAAoB,0BAA0B,CAAE,CAAC;QAE7F,yBAAyB;QACzB,gDAAgD;QAChD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAEhC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC;IACrE,CAAC;IAED,IAAI,wBAAwB;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,OAAO,EAAE,CAAC;SACV;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE;YACxC,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACpD;QAED,IAAI,IAAI,CAAC,qCAAqC,EAAE;YAC/C,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,qBAAqB,IAAI,EAAE,EAAE,CAAC;SACrD;QAED,OAAO,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,qBAAqB;QACxB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE;YACxC,OAAO;SACP;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO;YACN,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACtE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAClE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACtE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC;SAC9E,CAAC;IACH,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO;YACN,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;YAC3E,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC;YACnF,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC;YACvE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;SAC3E,CAAC;IACH,CAAC;IAED,IAAI,kCAAkC;QACrC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,YAAY;eACjF,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,IAAI,qCAAqC;QACxC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC;IACjE,CAAC;IAED,IAAI,iCAAiC;QACpC,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,IAAI,sBAAsB;QACzB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,EAAE,iBAAiB,EAAE,MAAM,IAAI,KAAK,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,YAAY;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ;QACpB,UAAQ,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,MAAM;QACT,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClF,OAAO;YACN,aAAa,EAAE;gBACd,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI;aAChC;YACD,uBAAuB,EAAE;gBACxB,SAAS,EAAE,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;gBAC1D,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;aACrC;YACD,kBAAkB,EAAE;gBACnB,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI;gBACzC,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO;aACtF;SACD,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,OAAO,EAAE;gBACR,yBAAyB,EAAE,IAAI;gBAC/B,2CAA2C,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;gBACpF,qCAAqC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;aAC/E;YACD,iBAAiB,EAAE;gBAClB,8BAA8B,EAAE,IAAI;gBACpC,4BAA4B,EAAE,IAAI;gBAClC,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO;gBACxE,8BAA8B,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK;gBACpE,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO;gBACxE,oCAAoC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW;aAChF;SACD,CAAC;IACH,CAAC;CACD,CAAA;AAniCA;IADC,QAAQ,EAAE;uCACI;AAUf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACN;AActB;IADC,QAAQ,EAAE;6CACU;AAUrB;IADC,QAAQ,EAAE;6CACU;AAWrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACT;AASnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;4CACjC;AAY7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACT;AASnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACT;AASnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACV;AASlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,CAAC,iBAAiB,EAAE,CAAC;wCACtD;AAU7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACJ;AAOxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACV;AAOlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACG;AAU/B;IADC,QAAQ,EAAE;gDACa;AASxB;IADC,QAAQ,EAAE;mDACgB;AAG3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8CACxB;AAGvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gDACxB;AAGtC;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;4CAChC;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;yDACb;AAQlC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;uCAC/C;AAc7B;IADC,IAAI,EAAE;mDACgC;AASvC;IADC,IAAI,EAAE;sCACa;AA7Lf,QAAQ;IAzDb,aAAa,CAAC;QACd,GAAG,EAAE,cAAc;QACnB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,WAAW;QACnB,gBAAgB,EAAE;YACjB,0BAA0B;YAC1B,oBAAoB;YACpB,kBAAkB;YAClB,cAAc;SACd;QACD,QAAQ,EAAE,gBAAgB;QAC1B,kBAAkB,EAAE,uBAAuB;QAC3C,YAAY,EAAE;YACb,YAAY;YACZ,IAAI;YACJ,iBAAiB;YACjB,IAAI;YACJ,aAAa;YACb,MAAM;YACN,gBAAgB;YAChB,mBAAmB;YACnB,OAAO;YACP,iBAAiB;YACjB,KAAK;YACL,cAAc;SACd;KACD,CAAC;IACF;;;;OAIG;;IACF,KAAK,CAAC,QAAQ,CAAC;IAEhB;;;;;OAKG;;IACF,KAAK,CAAC,OAAO,CAAC;IACf;;;;;OAKG;;IACF,KAAK,CAAqC,kBAAkB,EAAE;QAC9D,MAAM,EAAE;YACP;;cAEE;YACF,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;KACD,CAAC;GAEI,QAAQ,CA6iCb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { isPhone, isAndroid } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/not-editable.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport {\n\tisBackSpace,\n\tisDelete,\n\tisShow,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisTabNext,\n\tisTabPrevious,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IIcon, IComboBoxItem } from \"./Interfaces.js\";\nimport * as Filters from \"./Filters.js\";\n\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_TYPE_SUCCESS,\n\tVALUE_STATE_TYPE_INFORMATION,\n\tVALUE_STATE_TYPE_ERROR,\n\tVALUE_STATE_TYPE_WARNING,\n\tINPUT_SUGGESTIONS_TITLE,\n\tSELECT_OPTIONS,\n\tLIST_ITEM_POSITION,\n\tLIST_ITEM_GROUP_HEADER,\n\tINPUT_CLEAR_ICON_ACC_NAME,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport ComboBoxTemplate from \"./generated/templates/ComboBoxTemplate.lit.js\";\nimport ComboBoxPopoverTemplate from \"./generated/templates/ComboBoxPopoverTemplate.lit.js\";\n\n// Styles\nimport ComboBoxCss from \"./generated/themes/ComboBox.css.js\";\nimport ComboBoxPopoverCss from \"./generated/themes/ComboBoxPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\n\nimport ComboBoxItem from \"./ComboBoxItem.js\";\nimport Icon from \"./Icon.js\";\nimport Popover from \"./Popover.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport Button from \"./Button.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport ComboBoxGroupItem from \"./ComboBoxGroupItem.js\";\nimport GroupHeaderListItem from \"./GroupHeaderListItem.js\";\nimport ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport type FormSupportT from \"./features/InputElementsFormSupport.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport Input, { InputEventDetail } from \"./Input.js\";\nimport SuggestionItem from \"./SuggestionItem.js\";\n\nconst SKIP_ITEMS_SIZE = 10;\n\ntype ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\ntype ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\n\ntype ComboBoxListItem = StandardListItem & {\n\tmappedItem: ComboBoxItem\n};\n\nenum ValueStateIconMapping {\n\tError = \"error\",\n\tWarning = \"alert\",\n\tSuccess = \"sys-enter-2\",\n\tInformation = \"information\",\n}\n\ntype ComboBoxSelectionChangeEventDetail = {\n\titem: ComboBoxItem,\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-combobox</code> component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.\n *\n * It is commonly used to enable users to select an option from a predefined list.\n *\n * <h3>Structure</h3>\n * The <code>ui5-combobox</code> consists of the following elements:\n *\n * <ul>\n * <li> Input field - displays the selected option or a custom user entry. Users can type to narrow down the list or enter their own value.</li>\n * <li> Drop-down arrow - expands\\collapses the option list.</li>\n * <li> Option list - the list of available options.</li>\n * </ul>\n *\n * <h3>Keyboard Handling</h3>\n *\n * The <code>ui5-combobox</code> provides advanced keyboard handling.\n * <br>\n *\n * <ul>\n * <li>[F4], [ALT]+[UP], or [ALT]+[DOWN] - Toggles the picker.</li>\n * <li>[ESC] - Closes the picker, if open. If closed, cancels changes and reverts the typed in value.</li>\n * <li>[ENTER] or [RETURN] - If picker is open, takes over the currently selected item and closes it.</li>\n * <li>[DOWN] - Selects the next matching item in the picker.</li>\n * <li>[UP] - Selects the previous matching item in the picker.</li>\n * <li>[PAGEDOWN] - Moves selection down by page size (10 items by default).</li>\n * <li>[PAGEUP] - Moves selection up by page size (10 items by default). </li>\n * <li>[HOME] - If focus is in the ComboBox, moves cursor at the beginning of text. If focus is in the picker, selects the first item.</li>\n * <li>[END] - If focus is in the ComboBox, moves cursor at the end of text. If focus is in the picker, selects the last item.</li>\n * </ul>\n *\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/ComboBox\";</code>\n *\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.6\n */\n@customElement({\n\ttag: \"ui5-combobox\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\tstyles: ComboBoxCss,\n\tstaticAreaStyles: [\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tComboBoxPopoverCss,\n\t\tSuggestionsCss,\n\t],\n\ttemplate: ComboBoxTemplate,\n\tstaticAreaTemplate: ComboBoxPopoverTemplate,\n\tdependencies: [\n\t\tComboBoxItem,\n\t\tIcon,\n\t\tResponsivePopover,\n\t\tList,\n\t\tBusyIndicator,\n\t\tButton,\n\t\tStandardListItem,\n\t\tGroupHeaderListItem,\n\t\tPopover,\n\t\tComboBoxGroupItem,\n\t\tInput,\n\t\tSuggestionItem,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter, focusout or an item is selected.\n *\n * @public\n */\n@event(\"change\")\n\n/**\n * Fired when typing in input or clear icon is pressed.\n * <br><br>\n * <b>Note:</b> filterValue property is updated, input is changed.\n * @public\n */\n@event(\"input\")\n/**\n * Fired when selection is changed by user interaction\n *\n * @param {IComboBoxItem} item item to be selected.\n * @public\n */\n@event<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\titem: { type: HTMLElement },\n\t},\n})\n\nclass ComboBox extends UI5Element {\n\t/**\n\t * Defines the value of the component.\n\t *\n\t * @default \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines whether the value will be autocompleted to match an item\n\t *\n\t * @default false\n\t * @public\n\t * @since 1.19.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead!: boolean;\n\n\t/**\n\t * Defines the \"live\" value of the component.\n\t * <br><br>\n\t * <b>Note:</b> If we have an item e.g. \"Bulgaria\", \"B\" is typed, \"ulgaria\" is typed ahead, value will be \"Bulgaria\", filterValue will be \"B\".\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Initially the filter value is synced with value.\n\t *\n\t * @default \"\"\n\t * @private\n\t */\n\t@property()\n\tfilterValue!: string;\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the\n\t * component has no value.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tplaceholder!: string;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * <br><br>\n\t * <b>Note:</b> A disabled component is completely noninteractive.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the value state of the component.\n\t *\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t * <br><br>\n\t * <b>Note:</b> A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is required.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the picker.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading!: boolean;\n\n\t/**\n\t * Defines the filter type of the component.\n\t *\n\t * @default \"StartsWithPerTerm\"\n\t * @public\n\t */\n\t@property({ type: ComboBoxFilter, defaultValue: ComboBoxFilter.StartsWithPerTerm })\n\tfilter!: `${ComboBoxFilter}`;\n\n\t/**\n\t * Defines whether the clear icon of the combobox will be shown.\n\t *\n\t * @default false\n\t * @public\n\t * @since 1.20.1\n\t */\n\t@property({ type: Boolean })\n\tshowClearIcon!: boolean;\n\n\t/**\n\t * Indicates whether the input is focssed\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t/**\n\t * Indicates whether the visual focus is on the value state header\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isValueStateFocused!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component\n\t * @default \"\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed!: boolean;\n\n\t@property({ type: Object, noAttribute: true, multiple: true })\n\t_filteredItems!: Array<IComboBoxItem>;\n\n\t@property({ validator: Integer, noAttribute: true })\n\t_listWidth!: number;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_effectiveShowClearIcon!: boolean;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n\titems!: Array<IComboBoxItem>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t * <br>\n\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t * when the <code>ui5-combobox</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the icon to be displayed in the input field.\n\t *\n\t * @public\n\t * @since 1.0.0-rc.9\n\t */\n\t@slot()\n\ticon!: Array<IIcon>;\n\n\t_initialRendering: boolean;\n\t_itemFocused: boolean;\n\t// used only for Safari fix (check onAfterRendering)\n\t_autocomplete: boolean;\n\t_isKeyNavigation: boolean;\n\t_selectionPerformed: boolean;\n\t_lastValue: string;\n\t_selectedItemText: string;\n\t_userTypedValue: string;\n\tresponsivePopover?: ResponsivePopover;\n\tvalueStatePopover?: Popover;\n\tFormSupport?: typeof FormSupportT;\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._filteredItems = [];\n\t\tthis._initialRendering = true;\n\t\tthis._itemFocused = false;\n\t\tthis._autocomplete = false;\n\t\tthis._isKeyNavigation = false;\n\t\t// when an initial value is set it should be considered as a _lastValue\n\t\tthis._lastValue = this.getAttribute(\"value\") || \"\";\n\t\tthis._selectionPerformed = false;\n\t\tthis._selectedItemText = \"\";\n\t\tthis._userTypedValue = \"\";\n\t}\n\n\tonBeforeRendering() {\n\t\tconst popover: Popover | undefined = this.valueStatePopover;\n\n\t\tthis.FormSupport = getFeature<typeof FormSupportT>(\"FormSupport\");\n\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);\n\n\t\tif (this._initialRendering || this.filter === \"None\") {\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.open && !this._isKeyNavigation) {\n\t\t\tthis._filteredItems = this._filterItems(this.filterValue);\n\t\t}\n\n\t\tif (!this._initialRendering && document.activeElement === this && !this._filteredItems.length) {\n\t\t\tpopover?.close();\n\t\t}\n\n\t\tthis._selectMatchingItem();\n\t\tthis._initialRendering = false;\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5-input-icons-count\"), `${this.iconsCount}`);\n\t}\n\n\tget iconsCount() {\n\t\tconst slottedIconsCount = this.icon?.length || 0;\n\t\tconst clearIconCount = Number(this._effectiveShowClearIcon) ?? 0;\n\t\tconst arrowDownIconsCount = this.readonly ? 0 : 1;\n\n\t\treturn slottedIconsCount + clearIconCount + arrowDownIconsCount;\n\t}\n\n\tasync onAfterRendering() {\n\t\tconst picker: ResponsivePopover = await this._getPicker();\n\n\t\tif ((await this.shouldClosePopover()) && !isPhone()) {\n\t\t\tpicker.close(false, false, true);\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t}\n\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\t\tthis.storeResponsivePopoverWidth();\n\n\t\tif (isPhone()) {\n\t\t\tthis.value = this.inner.value;\n\t\t\tthis._selectMatchingItem();\n\t\t}\n\t}\n\n\tasync shouldClosePopover(): Promise<boolean> {\n\t\tconst popover: ResponsivePopover = await this._getPicker();\n\n\t\treturn popover.opened && !this.focused && !this._itemFocused && !this._isValueStateFocused;\n\t}\n\n\t_focusin(e: FocusEvent) {\n\t\tthis.focused = true;\n\t\tthis._autocomplete = false;\n\n\t\t!isPhone() && (e.target as HTMLInputElement).setSelectionRange(0, this.value.length);\n\t}\n\n\t_focusout(e: FocusEvent) {\n\t\tconst toBeFocused = e.relatedTarget as HTMLElement;\n\t\tconst focusedOutToValueStateMessage = toBeFocused?.shadowRoot?.querySelector(\".ui5-valuestatemessage-root\");\n\t\tconst clearIconWrapper = this.shadowRoot!.querySelector(\".ui5-input-clear-icon-wrapper\");\n\t\tconst focusedOutToClearIcon = clearIconWrapper === toBeFocused || clearIconWrapper?.contains(toBeFocused);\n\n\t\tif (this._effectiveShowClearIcon && focusedOutToClearIcon) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\n\t\tif (focusedOutToValueStateMessage) {\n\t\t\te.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!(this.shadowRoot!.contains(toBeFocused)) && (this.staticAreaItem !== e.relatedTarget)) {\n\t\t\tthis.focused = false;\n\t\t\t!isPhone() && this._closeRespPopover(e);\n\t\t}\n\t}\n\n\t_afterOpenPopover() {\n\t\tthis._iconPressed = true;\n\t\tthis.inner.focus();\n\t}\n\n\t_afterClosePopover() {\n\t\tthis._iconPressed = false;\n\t\tthis._filteredItems = this.items;\n\t\tthis.filterValue = \"\";\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t}\n\n\t\tif (this._selectionPerformed) {\n\t\t\tthis._lastValue = this.value;\n\t\t\tthis._selectionPerformed = false;\n\t\t}\n\t}\n\n\tasync _toggleRespPopover() {\n\t\tconst picker: ResponsivePopover = await this._getPicker();\n\n\t\tif (picker.opened) {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tasync storeResponsivePopoverWidth() {\n\t\tif (this.open && !this._listWidth) {\n\t\t\tthis._listWidth = (await this._getPicker()).offsetWidth;\n\t\t}\n\t}\n\n\ttoggleValueStatePopover(open: boolean) {\n\t\tif (open) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\t}\n\n\tasync openValueStatePopover() {\n\t\t(await this._getValueStatePopover())?.showAt(this);\n\t}\n\n\tasync closeValueStatePopover() {\n\t\t(await this._getValueStatePopover())?.close();\n\t}\n\n\tasync _getValueStatePopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tconst popover: Popover = staticAreaItem!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\n\t\t// backward compatibility\n\t\t// rework all methods to work with async getters\n\t\tthis.valueStatePopover = popover;\n\n\t\treturn popover;\n\t}\n\n\t_resetFilter() {\n\t\tthis._userTypedValue = \"\";\n\t\tthis.inner.setSelectionRange(0, this.value.length);\n\t\tthis._filteredItems = this._filterItems(\"\");\n\t\tthis._selectMatchingItem();\n\t}\n\n\t_arrowClick() {\n\t\tthis.inner.focus();\n\t\tthis._resetFilter();\n\n\t\tif (isPhone() && this.value && !this._lastValue) {\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tconst { target } = e;\n\t\tthis.filterValue = (target as Input).value;\n\t\tthis.value = (target as Input).value;\n\t\tthis.fireEvent(\"input\");\n\t}\n\n\t_input(e: InputEvent) {\n\t\tconst { value } = e.target as HTMLInputElement;\n\t\tconst shouldAutocomplete = this.shouldAutocomplete(e);\n\n\t\tif (e.target === this.inner) {\n\t\t\t// stop the native event, as the semantic \"input\" would be fired.\n\t\t\te.stopImmediatePropagation();\n\t\t\tthis.focused = true;\n\t\t\tthis._isValueStateFocused = false;\n\t\t}\n\n\t\tthis._filteredItems = this._filterItems(value);\n\n\t\tthis.value = value;\n\t\tthis.filterValue = value;\n\n\t\tthis._clearFocus();\n\n\t\t// autocomplete\n\t\tif (shouldAutocomplete && !isAndroid()) {\n\t\t\tconst item = this._getFirstMatchingItem(value);\n\t\t\titem && this._applyAtomicValueAndSelection(item, value, true);\n\n\t\t\tif (value !== \"\" && (item && !item.selected && !item.isGroupItem)) {\n\t\t\t\tthis.fireEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\t\titem,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.fireEvent(\"input\");\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._filteredItems.length || value === \"\") {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\tshouldAutocomplete(e: InputEvent): boolean {\n\t\tconst eventType = e.inputType;\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(eventType);\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<IComboBoxItem> {\n\t\treturn Filters.StartsWith(str, this._filteredItems, \"text\");\n\t}\n\n\t_clearFocus() {\n\t\tthis._filteredItems.map(item => {\n\t\t\titem.focused = false;\n\n\t\t\treturn item;\n\t\t});\n\t}\n\n\thandleNavKeyPress(e: KeyboardEvent) {\n\t\tif (this.focused && (isHome(e) || isEnd(e)) && this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isOpen = this.open;\n\t\tconst currentItem = this._filteredItems.find(item => {\n\t\t\treturn isOpen ? item.focused : item.selected;\n\t\t});\n\n\t\tconst indexOfItem = currentItem ? this._filteredItems.indexOf(currentItem) : -1;\n\n\t\te.preventDefault();\n\n\t\tif (this.focused && isOpen && (isUp(e) || isPageUp(e) || isPageDown(e))) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._filteredItems.length - 1 === indexOfItem && isDown(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isKeyNavigation = true;\n\n\t\tif (\n\t\t\te.key === \"ArrowDown\"\n\t\t\t|| e.key === \"ArrowUp\"\n\t\t\t|| e.key === \"PageUp\"\n\t\t\t|| e.key === \"PageDown\"\n\t\t\t|| e.key === \"Home\"\n\t\t\t|| e.key === \"End\"\n\t\t) {\n\t\t\tthis[`_handle${e.key}`](e, indexOfItem);\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, indexOfItem: number, isForward: boolean) {\n\t\tconst isOpen = this.open;\n\t\tconst currentItem = this._filteredItems[indexOfItem];\n\t\tconst nextItem = isForward ? this._filteredItems[indexOfItem + 1] : this._filteredItems[indexOfItem - 1];\n\t\tconst isGroupItem = currentItem && currentItem.isGroupItem;\n\n\t\tif ((!isOpen) && ((isGroupItem && !nextItem) || (!isGroupItem && !currentItem))) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._clearFocus();\n\n\t\tif (isOpen) {\n\t\t\tthis._itemFocused = true;\n\t\t\tthis.value = isGroupItem ? \"\" : currentItem.text;\n\t\t\tthis.focused = false;\n\t\t\tcurrentItem.focused = true;\n\t\t} else {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = isGroupItem ? nextItem.text : currentItem.text;\n\t\t\tcurrentItem.focused = false;\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\n\t\tthis._announceSelectedItem(indexOfItem);\n\t\tthis._scrollToItem(indexOfItem, isForward);\n\n\t\tif (isGroupItem && isOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\t// autocomplete\n\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\titem && this._applyAtomicValueAndSelection(item, (this.open ? this._userTypedValue : \"\"), true);\n\n\t\tif ((item && !item.selected)) {\n\t\t\tthis.fireEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\titem,\n\t\t\t});\n\t\t}\n\n\t\tthis.fireEvent(\"input\");\n\t\tthis._fireChangeEvent();\n\t}\n\n\t_handleArrowDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (this.focused && indexOfItem === -1 && this.hasValueStateText && isOpen) {\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\tthis.focused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tindexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\n\t\tthis._handleItemNavigation(e, ++indexOfItem, true /* isForward */);\n\t}\n\n\t_handleArrowUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (indexOfItem === 0 && !this.hasValueStateText) {\n\t\t\tthis._clearFocus();\n\t\t\tthis.focused = true;\n\t\t\tthis._itemFocused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (indexOfItem === 0 && this.hasValueStateText && isOpen) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\tthis._filteredItems[0].selected = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isValueStateFocused) {\n\t\t\tthis.focused = true;\n\t\t\tthis._isValueStateFocused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tindexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\t\tthis._handleItemNavigation(e, --indexOfItem, false /* isForward */);\n\t}\n\n\t_handlePageUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isProposedIndexValid = indexOfItem - SKIP_ITEMS_SIZE > -1;\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem - SKIP_ITEMS_SIZE : 0;\n\t\tconst shouldMoveForward = this._filteredItems[indexOfItem].isGroupItem && !this.open;\n\n\t\tif (!isProposedIndexValid && this.hasValueStateText && this.open) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handlePageDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst itemsLength = this._filteredItems.length;\n\t\tconst isProposedIndexValid = indexOfItem + SKIP_ITEMS_SIZE < itemsLength;\n\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem + SKIP_ITEMS_SIZE : itemsLength - 1;\n\t\tconst shouldMoveForward = this._filteredItems[indexOfItem].isGroupItem && !this.open;\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handleHome(e: KeyboardEvent) {\n\t\tconst shouldMoveForward = this._filteredItems[0].isGroupItem && !this.open;\n\n\t\tif (this.hasValueStateText && this.open) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, 0, shouldMoveForward);\n\t}\n\n\t_handleEnd(e: KeyboardEvent) {\n\t\tthis._handleItemNavigation(e, this._filteredItems.length - 1, true /* isForward */);\n\t}\n\n\t_keyup() {\n\t\tthis._userTypedValue = this.value.substring(0, this.inner.selectionStart || 0);\n\t}\n\n\t_keydown(e: KeyboardEvent) {\n\t\tconst isNavKey = isDown(e) || isUp(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e);\n\t\tconst picker = this.responsivePopover;\n\n\t\tthis._autocomplete = !(isBackSpace(e) || isDelete(e));\n\t\tthis._isKeyNavigation = false;\n\n\t\tif (isNavKey && !this.readonly && this._filteredItems.length) {\n\t\t\tthis.handleNavKeyPress(e);\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tconst focusedItem = this._filteredItems.find(item => {\n\t\t\t\treturn item.focused;\n\t\t\t});\n\n\t\t\tthis._fireChangeEvent();\n\n\t\t\tif (picker?.opened && !focusedItem?.isGroupItem) {\n\t\t\t\tthis._closeRespPopover();\n\t\t\t\tthis.focused = true;\n\t\t\t} else if (this.FormSupport) {\n\t\t\t\tthis.FormSupport.triggerFormSubmit(this);\n\t\t\t}\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = !this.open ? this._lastValue : this.value;\n\t\t\tthis._isValueStateFocused = false;\n\t\t}\n\n\t\tif ((isTabNext(e) || isTabPrevious(e)) && this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\n\t\tif (isShow(e) && !this.readonly && !this.disabled) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._resetFilter();\n\t\t\tthis._toggleRespPopover();\n\n\t\t\tconst selectedItem = this._filteredItems.find(item => {\n\t\t\t\treturn item.selected;\n\t\t\t});\n\n\t\t\tif (selectedItem && this.open) {\n\t\t\t\tthis._itemFocused = true;\n\t\t\t\tselectedItem.focused = true;\n\t\t\t\tthis.focused = false;\n\t\t\t} else if (this.open && this._filteredItems.length) {\n\t\t\t\t// If no item is selected, select the first one on \"Show\" (F4, Alt+Up/Down)\n\t\t\t\tthis._handleItemNavigation(e, 0, true /* isForward */);\n\t\t\t} else {\n\t\t\t\tthis.focused = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t_click() {\n\t\tif (isPhone() && !this.readonly) {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t_closeRespPopover(e?: Event) {\n\t\tconst picker = this.responsivePopover;\n\n\t\tif (e && (e.target as HTMLElement).classList.contains(\"ui5-responsive-popover-close-btn\") && this._selectedItemText) {\n\t\t\tthis.value = this._selectedItemText;\n\t\t\tthis.filterValue = this._selectedItemText;\n\t\t}\n\n\t\tif (e && (e.target as HTMLElement).classList.contains(\"ui5-responsive-popover-close-btn\")) {\n\t\t\tthis.value = this._lastValue || \"\";\n\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t}\n\n\t\tif (isPhone()) {\n\t\t\tthis._fireChangeEvent();\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\t\tthis._clearFocus();\n\n\t\tpicker?.close();\n\t}\n\n\tasync _openRespPopover() {\n\t\t(await this._getPicker()).showAt(this, true);\n\t}\n\n\t_filterItems(str: string) {\n\t\tconst itemsToFilter = this.items.filter(item => !item.isGroupItem);\n\t\tconst filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter, \"text\");\n\n\t\t// Return the filtered items and their group items\n\t\treturn this.items.filter((item, idx, allItems) => ComboBox._groupItemFilter(item, ++idx, allItems, filteredItems) || filteredItems.indexOf(item) !== -1);\n\t}\n\n\t/**\n\t * Returns true if the group header should be shown (if there is a filtered suggestion item for this group item)\n\t *\n\t * @private\n\t */\n\tstatic _groupItemFilter(item: IComboBoxItem, idx: number, allItems: Array<IComboBoxItem>, filteredItems: Array<IComboBoxItem>) {\n\t\tif (item.isGroupItem) {\n\t\t\tlet groupHasFilteredItems;\n\n\t\t\twhile (allItems[idx] && !allItems[idx].isGroupItem && !groupHasFilteredItems) {\n\t\t\t\tgroupHasFilteredItems = filteredItems.indexOf(allItems[idx]) !== -1;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\treturn groupHasFilteredItems;\n\t\t}\n\t}\n\n\t_getFirstMatchingItem(current: string): ComboBoxItem | undefined {\n\t\tconst currentlyFocusedItem = this.items.find(item => item.focused === true);\n\n\t\tif (currentlyFocusedItem?.isGroupItem) {\n\t\t\tthis.value = this.filterValue;\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems: Array<ComboBoxItem> = (this._startsWithMatchingItems(current).filter(item => !item.isGroupItem) as Array<ComboBoxItem>);\n\n\t\tif (matchingItems.length) {\n\t\t\treturn matchingItems[0];\n\t\t}\n\t}\n\n\t_applyAtomicValueAndSelection(item: ComboBoxItem, filterValue: string, highlightValue: boolean) {\n\t\tconst value = (item && item.text) || \"\";\n\n\t\tthis.inner.value = value;\n\t\tif (highlightValue) {\n\t\t\tthis.inner.setSelectionRange(filterValue.length, value.length);\n\t\t}\n\t\tthis.value = value;\n\t}\n\n\t_selectMatchingItem() {\n\t\tconst currentlyFocusedItem = this.items.find(item => item.focused);\n\t\tconst shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;\n\n\t\tconst itemToBeSelected = this._filteredItems.find(item => {\n\t\t\treturn !item.isGroupItem && (item.text === this.value) && !shouldSelectionBeCleared;\n\t\t});\n\n\t\tthis._filteredItems = this._filteredItems.map(item => {\n\t\t\titem.selected = item === itemToBeSelected;\n\t\t\treturn item;\n\t\t});\n\t}\n\n\t_fireChangeEvent() {\n\t\tif (this.value !== this._lastValue) {\n\t\t\tthis.fireEvent(\"change\");\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\t}\n\n\t_inputChange(e: Event) {\n\t\te.preventDefault();\n\t}\n\n\t_itemMousedown(e: MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_selectItem(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst listItem = e.detail.item as ComboBoxListItem;\n\n\t\tthis._selectedItemText = listItem.mappedItem.text;\n\t\tthis._selectionPerformed = true;\n\n\t\tconst sameItemSelected = this.value === this._selectedItemText;\n\t\tconst sameSelectionPerformed = this.value.toLowerCase() === this.filterValue.toLowerCase();\n\n\t\tif (sameItemSelected && sameSelectionPerformed) {\n\t\t\tthis._fireChangeEvent(); // Click on an already typed, but not memoized value shouold also trigger the change event\n\t\t\treturn this._closeRespPopover();\n\t\t}\n\n\t\tthis.value = this._selectedItemText;\n\n\t\tif (!listItem.mappedItem.selected) {\n\t\t\tthis.fireEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\titem: listItem.mappedItem,\n\t\t\t});\n\t\t}\n\n\t\tthis._filteredItems.map(item => {\n\t\t\titem.selected = (item === listItem.mappedItem && !item.isGroupItem);\n\t\t\treturn item;\n\t\t});\n\n\t\tthis._fireChangeEvent();\n\t\tthis._closeRespPopover();\n\n\t\t// reset selection\n\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t}\n\n\t_onItemFocus() {\n\t\tthis._itemFocused = true;\n\t}\n\n\t_announceSelectedItem(indexOfItem: number) {\n\t\tconst currentItem = this._filteredItems[indexOfItem];\n\t\tconst nonGroupItems = this._filteredItems.filter(item => !item.isGroupItem);\n\t\tconst currentItemAdditionalText = currentItem.additionalText || \"\";\n\t\tconst isGroupItem = currentItem?.isGroupItem;\n\t\tconst itemPositionText = ComboBox.i18nBundle.getText(LIST_ITEM_POSITION, nonGroupItems.indexOf(currentItem) + 1, nonGroupItems.length);\n\t\tconst groupHeaderText = ComboBox.i18nBundle.getText(LIST_ITEM_GROUP_HEADER);\n\n\t\tif (isGroupItem) {\n\t\t\tannounce(`${groupHeaderText} ${currentItem.text}`, InvisibleMessageMode.Polite);\n\t\t} else {\n\t\t\tannounce(`${currentItemAdditionalText} ${itemPositionText}`.trim(), InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\t_clear() {\n\t\tconst selectedItem = this.items.find(item => item.selected) as (ComboBoxItem | undefined);\n\n\t\tif (selectedItem?.text === this.value) {\n\t\t\tthis.fireEvent(\"change\");\n\t\t}\n\n\t\tthis.value = \"\";\n\t\tthis.fireEvent(\"input\");\n\n\t\tif (this._isPhone) {\n\t\t\tthis._lastValue = \"\";\n\t\t\tthis.fireEvent(\"change\");\n\t\t} else {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\tasync _scrollToItem(indexOfItem: number, forward: boolean) {\n\t\tconst picker = await this._getPicker();\n\t\tconst list = picker.querySelector(\".ui5-combobox-items-list\") as List;\n\t\tconst listItem = list?.items[indexOfItem];\n\n\t\tif (listItem) {\n\t\t\tconst pickerRect = picker.getBoundingClientRect();\n\t\t\tconst listItemRect = listItem.getBoundingClientRect();\n\t\t\tconst isListItemInVisibleArea = listItemRect.top >= pickerRect.top && listItemRect.bottom <= pickerRect.bottom;\n\n\t\t\tif (!isListItemInVisibleArea) {\n\t\t\t\tlistItem.scrollIntoView({ behavior: \"instant\", block: forward ? \"end\" : \"start\", inline: \"nearest\" });\n\t\t\t}\n\t\t}\n\t}\n\n\t_announceValueStateText() {\n\t\tconst valueStateText = this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : this.valueStateMessageText.map(el => el.textContent).join(\" \");\n\n\t\tif (valueStateText) {\n\t\t\tannounce(valueStateText, InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\tget _headerTitleText() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _iconAccessibleNameText() {\n\t\treturn ComboBox.i18nBundle.getText(SELECT_OPTIONS);\n\t}\n\n\tget inner(): HTMLInputElement {\n\t\treturn isPhone() ? this.responsivePopover!.querySelector(\"[ui5-input]\")!.shadowRoot!.querySelector(\"input\")! : this.shadowRoot!.querySelector(\"[inner-input]\")!;\n\t}\n\n\tasync _getPicker() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tconst picker = staticAreaItem!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\n\t\t// backward compatibility\n\t\t// rework all methods to work with async getters\n\t\tthis.responsivePopover = picker;\n\n\t\treturn picker;\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success;\n\t}\n\n\tget ariaValueStateHiddenText(): string {\n\t\tif (!this.hasValueState) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tlet text = \"\";\n\n\t\tif (this.valueState !== ValueState.None) {\n\t\t\ttext = this.valueStateTypeMappings[this.valueState];\n\t\t}\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\treturn `${text} ${this.valueStateDefaultText || \"\"}`;\n\t\t}\n\n\t\treturn `${text}`.concat(\" \", this.valueStateMessageText.map(el => el.textContent).join(\" \"));\n\t}\n\n\tget valueStateDefaultText(): string | undefined {\n\t\tif (this.valueState === ValueState.None) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget valueStateMessageText(): Array<Node> {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget valueStateTextMappings(): ValueStateAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Success]: ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Error]: ComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Warning]: ComboBox.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Success]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Error]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Warning]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && !this.readonly && this.hasValueStateText && !this._iconPressed\n\t\t\t&& !this.open && !this._isPhone;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget _valueStatePopoverHorizontalAlign(): `${PopoverHorizontalAlign}` {\n\t\treturn this.effectiveDir !== \"rtl\" ? PopoverHorizontalAlign.Left : PopoverHorizontalAlign.Right;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageIcon(): string {\n\t\treturn this.valueState !== ValueState.None ? ValueStateIconMapping[this.valueState] : \"\";\n\t}\n\n\tget open(): boolean {\n\t\treturn this?.responsivePopover?.opened || false;\n\t}\n\n\tget _isPhone(): boolean {\n\t\treturn isPhone();\n\t}\n\n\tget itemTabIndex() {\n\t\treturn undefined;\n\t}\n\n\tget ariaLabelText(): string | undefined {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget clearIconAccessibleName() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_CLEAR_ICON_ACC_NAME);\n\t}\n\n\tstatic async onDefine() {\n\t\tComboBox.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tget styles() {\n\t\tconst remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"width\": `${this.offsetWidth}px`,\n\t\t\t},\n\t\t\tsuggestionPopoverHeader: {\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._listWidth || \"\"}px`,\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth || 0}px`,\n\t\t\t\t\"max-width\": (this.offsetWidth / remSizeInPx) > 40 ? `${this.offsetWidth}px` : \"40rem\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\t\"ui5-popover-with-value-state-header-phone\": this._isPhone && this.hasValueStateText,\n\t\t\t\t\"ui5-popover-with-value-state-header\": !this._isPhone && this.hasValueStateText,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n}\n\nComboBox.define();\n\nexport default ComboBox;\n\nexport type {\n\tComboBoxSelectionChangeEventDetail,\n\tIComboBoxItem,\n};\n"]}
1
+ {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,UAAU,MAAM,kDAAkD,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,OAAO,MAAM,+CAA+C,CAAC;AACpE,OAAO,oBAAoB,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,QAAQ,MAAM,uDAAuD,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,kDAAkD,CAAC;AAC1D,OAAO,0CAA0C,CAAC;AAClD,OAAO,+CAA+C,CAAC;AACvD,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AAC9E,OAAO,EACN,WAAW,EACX,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,GACL,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,OAAO,EACN,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,GACzB,MAAM,mCAAmC,CAAC;AAE3C,YAAY;AACZ,OAAO,gBAAgB,MAAM,+CAA+C,CAAC;AAC7E,OAAO,uBAAuB,MAAM,sDAAsD,CAAC;AAE3F,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAC7D,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAC3F,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAC/E,OAAO,cAAc,MAAM,uCAAuC,CAAC;AAEnE,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAA2B,MAAM,YAAY,CAAC;AACrD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,eAAe,GAAG,EAAE,CAAC;AAsB3B,IAAK,qBAKJ;AALD,WAAK,qBAAqB;IACzB,wCAAe,CAAA;IACf,0CAAiB,CAAA;IACjB,gDAAuB,CAAA;IACvB,oDAA2B,CAAA;AAC5B,CAAC,EALI,qBAAqB,KAArB,qBAAqB,QAKzB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AA0DH,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,UAAU;IA6MhC;QACC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,uEAAuE;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QAChB,MAAM,OAAO,GAAwB,IAAI,CAAC,iBAAiB,CAAC;QAE5D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAsB,aAAa,CAAC,CAAC;QAElE,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExG,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YACrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;SACjC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC1D;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC9F,OAAO,EAAE,KAAK,EAAE,CAAC;SACjB;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,UAAU;QACb,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElD,OAAO,iBAAiB,GAAG,cAAc,GAAG,mBAAmB,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,MAAM,MAAM,GAAsB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAE1D,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACpD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC1B;QAED,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACtE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,OAAO,EAAE,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC3B;IACF,CAAC;IAED,KAAK,CAAC,kBAAkB;QACvB,MAAM,OAAO,GAAsB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAE3D,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAC5F,CAAC;IAED,QAAQ,CAAC,CAAa;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,CAAC,OAAO,EAAE,IAAK,CAAC,CAAC,MAA2B,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,SAAS,CAAC,CAAa;QACtB,MAAM,WAAW,GAAG,CAAC,CAAC,aAA4B,CAAC;QACnD,MAAM,6BAA6B,GAAG,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,6BAA6B,CAAC,CAAC;QAC5G,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QACzF,MAAM,qBAAqB,GAAG,gBAAgB,KAAK,WAAW,IAAI,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1G,IAAI,IAAI,CAAC,uBAAuB,IAAI,qBAAqB,EAAE;YAC1D,OAAO;SACP;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,6BAA6B,EAAE;YAClC,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,OAAO;SACP;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE;YAC3F,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACxC;IACF,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,qDAAqD;QACrD,IAAI,OAAO,EAAE,EAAE;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;SACZ;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SACjC;IACF,CAAC;IAED,KAAK,CAAC,kBAAkB;QACvB,MAAM,MAAM,GAAsB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAE1D,IAAI,MAAM,CAAC,MAAM,EAAE;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;aAAM;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;IACF,CAAC;IAED,KAAK,CAAC,2BAA2B;QAChC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC;SACxD;IACF,CAAC;IAED,uBAAuB,CAAC,IAAa;QACpC,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC7B;aAAM;YACN,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC9B;IACF,CAAC;IAED,KAAK,CAAC,qBAAqB;QAC1B,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC3B,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,qBAAqB;QAC1B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAY,cAAe,CAAC,aAAa,CAAU,gCAAgC,CAAE,CAAC;QAEnG,yBAAyB;QACzB,gDAAgD;QAChD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QAEjC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,YAAY;QACX,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;IAED,WAAW;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;SAC7B;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED,kBAAkB,CAAC,CAAgC;QAClD,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAI,MAAgB,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAI,MAAgB,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,CAAa;QACnB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;YAC5B,iEAAiE;YACjE,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SAClC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,eAAe;QACf,IAAI,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,IAAI,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAE9D,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAClE,IAAI,CAAC,SAAS,CAAqC,kBAAkB,EAAE;oBACtE,IAAI;iBACJ,CAAC,CAAC;aACH;SACD;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExB,IAAI,OAAO,EAAE,EAAE;YACd,OAAO;SACP;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,KAAK,KAAK,EAAE,EAAE;YAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;aAAM;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;IACF,CAAC;IACD,kBAAkB,CAAC,CAAa;QAC/B,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAC9B,MAAM,iBAAiB,GAAG;YACzB,oBAAoB;YACpB,mBAAmB;YACnB,wBAAwB;YACxB,uBAAuB;YACvB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,cAAc;YACd,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,sBAAsB;YACtB,aAAa;SACb,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,wBAAwB,CAAC,GAAW;QACnC,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW;QACV,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,CAAgB;QACjC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1D,OAAO;SACP;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhF,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;YACxE,OAAO;SACP;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,KAAK,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YAChE,OAAO;SACP;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IACC,CAAC,CAAC,GAAG,KAAK,WAAW;eAClB,CAAC,CAAC,GAAG,KAAK,SAAS;eACnB,CAAC,CAAC,GAAG,KAAK,QAAQ;eAClB,CAAC,CAAC,GAAG,KAAK,UAAU;eACpB,CAAC,CAAC,GAAG,KAAK,MAAM;eAChB,CAAC,CAAC,GAAG,KAAK,KAAK,EACjB;YACD,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;SACxC;IACF,CAAC;IAED,qBAAqB,CAAC,CAAgB,EAAE,WAAmB,EAAE,SAAkB;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACzG,MAAM,WAAW,GAAG,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC;QAE3D,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;YAChF,OAAO;SACP;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;YACjD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;SAC3B;aAAM;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5D,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;SAC5B;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE3C,IAAI,WAAW,IAAI,MAAM,EAAE;YAC1B,OAAO;SACP;QAED,eAAe;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,IAAI,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAEhG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAqC,kBAAkB,EAAE;gBACtE,IAAI;aACJ,CAAC,CAAC;SACH;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB,CAAC,CAAgB,EAAE,WAAmB;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,EAAE;YAC3E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,OAAO;SACP;QAED,WAAW,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAEpF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CAAC,CAAgB,EAAE,WAAmB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzB,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,OAAO;SACP;QAED,IAAI,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,EAAE;YAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxC,OAAO;SACP;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,OAAO;SACP;QAED,WAAW,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACpF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,aAAa,CAAC,CAAgB,EAAE,WAAmB;QAClD,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC;QAChE,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAErF,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE;YACjE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;SACP;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CAAC,CAAgB,EAAE,WAAmB;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAC/C,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,WAAW,CAAC;QAEzE,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QACrF,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAErF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,WAAW,CAAC,CAAgB;QAC3B,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE3E,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;SACP;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACrF,CAAC;IAED,MAAM;QACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEtC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAE9B,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC7D,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SAC1B;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACnD,OAAO,IAAI,CAAC,OAAO,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,MAAM,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE;gBAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACpB;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;aACzC;SACD;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACvD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SAClC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;YACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClD,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpD,OAAO,IAAI,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACrB;iBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;gBACnD,2EAA2E;gBAC3E,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aACvD;iBAAM;gBACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACpB;SACD;IACF,CAAC;IAED,MAAM;QACL,IAAI,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;IACF,CAAC;IAED,iBAAiB,CAAC,CAAS;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEtC,IAAI,CAAC,IAAK,CAAC,CAAC,MAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,kCAAkC,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACpH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;SAC1C;QAED,IAAI,CAAC,IAAK,CAAC,CAAC,MAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE;YAC1F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;SACzC;QAED,IAAI,OAAO,EAAE,EAAE;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,MAAM,EAAE,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,CAAC,GAAW;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAEtG,kDAAkD;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,UAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1J,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAmB,EAAE,GAAW,EAAE,QAA8B,EAAE,aAAmC;QAC5H,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,qBAAqB,CAAC;YAE1B,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,qBAAqB,EAAE;gBAC7E,qBAAqB,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpE,GAAG,EAAE,CAAC;aACN;YAED,OAAO,qBAAqB,CAAC;SAC7B;IACF,CAAC;IAED,qBAAqB,CAAC,OAAe;QACpC,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;QAE5E,IAAI,oBAAoB,EAAE,WAAW,EAAE;YACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,OAAO;SACP;QAED,MAAM,aAAa,GAAyB,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAyB,CAAC;QAE7I,IAAI,aAAa,CAAC,MAAM,EAAE;YACzB,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;SACxB;IACF,CAAC;IAED,6BAA6B,CAAC,IAAkB,EAAE,WAAmB,EAAE,cAAuB;QAC7F,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,IAAI,cAAc,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,mBAAmB;QAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,wBAAwB,GAAG,oBAAoB,IAAI,oBAAoB,CAAC,WAAW,CAAC;QAE1F,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxD,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,gBAAgB,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;SAC7B;IACF,CAAC;IAED,YAAY,CAAC,CAAQ;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,CAAa;QAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,CAAwC;QACnD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAwB,CAAC;QAEnD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC;QAC/D,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAE3F,IAAI,gBAAgB,IAAI,sBAAsB,EAAE;YAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,0FAA0F;YACnH,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAChC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEpC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,SAAS,CAAqC,kBAAkB,EAAE;gBACtE,IAAI,EAAE,QAAQ,CAAC,UAAU;aACzB,CAAC,CAAC;SACH;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,kBAAkB;QAClB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,YAAY;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,qBAAqB,CAAC,WAAmB;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5E,MAAM,yBAAyB,GAAG,WAAW,CAAC,cAAc,IAAI,EAAE,CAAC;QACnE,MAAM,WAAW,GAAG,WAAW,EAAE,WAAW,CAAC;QAC7C,MAAM,gBAAgB,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACvI,MAAM,eAAe,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAE5E,IAAI,WAAW,EAAE;YAChB,QAAQ,CAAC,GAAG,eAAe,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;SAChF;aAAM;YACN,QAAQ,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACjG;IACF,CAAC;IAED,MAAM;QACL,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAA+B,CAAC;QAE1F,IAAI,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACzB;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACzB;aAAM;YACN,IAAI,CAAC,KAAK,EAAE,CAAC;SACb;IACF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,OAAgB;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAS,CAAC;QACtE,MAAM,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAI,QAAQ,EAAE;YACb,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACtD,MAAM,uBAAuB,GAAG,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,IAAI,YAAY,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;YAE/G,IAAI,CAAC,uBAAuB,EAAE;gBAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;aACtG;SACD;IACF,CAAC;IAED,uBAAuB;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhK,IAAI,cAAc,EAAE;YACnB,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACtD;IACF,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK;QACR,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAkB,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,eAAe,CAAE,CAAC;IACjK,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,cAAe,CAAC,aAAa,CAAoB,0BAA0B,CAAE,CAAC;QAE7F,yBAAyB;QACzB,gDAAgD;QAChD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAEhC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC;IACrE,CAAC;IAED,IAAI,wBAAwB;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,OAAO,EAAE,CAAC;SACV;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE;YACxC,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACpD;QAED,IAAI,IAAI,CAAC,qCAAqC,EAAE;YAC/C,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,qBAAqB,IAAI,EAAE,EAAE,CAAC;SACrD;QAED,OAAO,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,qBAAqB;QACxB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE;YACxC,OAAO;SACP;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO;YACN,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACtE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAClE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACtE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC;SAC9E,CAAC;IACH,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO;YACN,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;YAC3E,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC;YACnF,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC;YACvE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;SAC3E,CAAC;IACH,CAAC;IAED,IAAI,kCAAkC;QACrC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,YAAY;eACjF,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,IAAI,qCAAqC;QACxC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC;IACjE,CAAC;IAED,IAAI,iCAAiC;QACpC,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,IAAI,sBAAsB;QACzB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,EAAE,iBAAiB,EAAE,MAAM,IAAI,KAAK,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,YAAY;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ;QACpB,UAAQ,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,MAAM;QACT,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClF,OAAO;YACN,aAAa,EAAE;gBACd,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI;aAChC;YACD,uBAAuB,EAAE;gBACxB,SAAS,EAAE,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;gBAC1D,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;aACrC;YACD,kBAAkB,EAAE;gBACnB,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI;gBACzC,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO;aACtF;SACD,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,OAAO,EAAE;gBACR,yBAAyB,EAAE,IAAI;gBAC/B,2CAA2C,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;gBACpF,qCAAqC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;aAC/E;YACD,iBAAiB,EAAE;gBAClB,8BAA8B,EAAE,IAAI;gBACpC,4BAA4B,EAAE,IAAI;gBAClC,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO;gBACxE,8BAA8B,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK;gBACpE,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO;gBACxE,oCAAoC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW;aAChF;SACD,CAAC;IACH,CAAC;CACD,CAAA;AAniCA;IADC,QAAQ,EAAE;uCACI;AAUf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACN;AActB;IADC,QAAQ,EAAE;6CACU;AAUrB;IADC,QAAQ,EAAE;6CACU;AAWrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACT;AASnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;4CACjC;AAY7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACT;AASnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACT;AASnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACV;AASlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,CAAC,iBAAiB,EAAE,CAAC;wCACtD;AAU7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACJ;AAOxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACV;AAOlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACG;AAU/B;IADC,QAAQ,EAAE;gDACa;AASxB;IADC,QAAQ,EAAE;mDACgB;AAG3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8CACxB;AAGvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gDACxB;AAGtC;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;4CAChC;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;yDACb;AAQlC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;uCAC/C;AAc7B;IADC,IAAI,EAAE;mDACgC;AASvC;IADC,IAAI,EAAE;sCACa;AA7Lf,QAAQ;IAzDb,aAAa,CAAC;QACd,GAAG,EAAE,cAAc;QACnB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,WAAW;QACnB,gBAAgB,EAAE;YACjB,0BAA0B;YAC1B,oBAAoB;YACpB,kBAAkB;YAClB,cAAc;SACd;QACD,QAAQ,EAAE,gBAAgB;QAC1B,kBAAkB,EAAE,uBAAuB;QAC3C,YAAY,EAAE;YACb,YAAY;YACZ,IAAI;YACJ,iBAAiB;YACjB,IAAI;YACJ,aAAa;YACb,MAAM;YACN,gBAAgB;YAChB,mBAAmB;YACnB,OAAO;YACP,iBAAiB;YACjB,KAAK;YACL,cAAc;SACd;KACD,CAAC;IACF;;;;OAIG;;IACF,KAAK,CAAC,QAAQ,CAAC;IAEhB;;;;;OAKG;;IACF,KAAK,CAAC,OAAO,CAAC;IACf;;;;;OAKG;;IACF,KAAK,CAAqC,kBAAkB,EAAE;QAC9D,MAAM,EAAE;YACP;;cAEE;YACF,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;KACD,CAAC;GAEI,QAAQ,CA6iCb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { isPhone, isAndroid } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/not-editable.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport {\n\tisBackSpace,\n\tisDelete,\n\tisShow,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisTabNext,\n\tisTabPrevious,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IIcon } from \"./Icon.js\";\nimport * as Filters from \"./Filters.js\";\n\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_TYPE_SUCCESS,\n\tVALUE_STATE_TYPE_INFORMATION,\n\tVALUE_STATE_TYPE_ERROR,\n\tVALUE_STATE_TYPE_WARNING,\n\tINPUT_SUGGESTIONS_TITLE,\n\tSELECT_OPTIONS,\n\tLIST_ITEM_POSITION,\n\tLIST_ITEM_GROUP_HEADER,\n\tINPUT_CLEAR_ICON_ACC_NAME,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport ComboBoxTemplate from \"./generated/templates/ComboBoxTemplate.lit.js\";\nimport ComboBoxPopoverTemplate from \"./generated/templates/ComboBoxPopoverTemplate.lit.js\";\n\n// Styles\nimport ComboBoxCss from \"./generated/themes/ComboBox.css.js\";\nimport ComboBoxPopoverCss from \"./generated/themes/ComboBoxPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\n\nimport ComboBoxItem from \"./ComboBoxItem.js\";\nimport Icon from \"./Icon.js\";\nimport Popover from \"./Popover.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport Button from \"./Button.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport ComboBoxGroupItem from \"./ComboBoxGroupItem.js\";\nimport GroupHeaderListItem from \"./GroupHeaderListItem.js\";\nimport ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport type FormSupportT from \"./features/InputElementsFormSupport.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport Input, { InputEventDetail } from \"./Input.js\";\nimport SuggestionItem from \"./SuggestionItem.js\";\n\nconst SKIP_ITEMS_SIZE = 10;\n\n/**\n * Interface for components that may be slotted inside a <code>ui5-combobox</code>\n *\n * @public\n */\ninterface IComboBoxItem {\n\ttext: string,\n\tfocused: boolean,\n\tisGroupItem: boolean,\n\tselected?: boolean,\n\tadditionalText?: string,\n}\n\ntype ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\ntype ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\n\ntype ComboBoxListItem = StandardListItem & {\n\tmappedItem: ComboBoxItem\n};\n\nenum ValueStateIconMapping {\n\tError = \"error\",\n\tWarning = \"alert\",\n\tSuccess = \"sys-enter-2\",\n\tInformation = \"information\",\n}\n\ntype ComboBoxSelectionChangeEventDetail = {\n\titem: ComboBoxItem,\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-combobox</code> component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.\n *\n * It is commonly used to enable users to select an option from a predefined list.\n *\n * <h3>Structure</h3>\n * The <code>ui5-combobox</code> consists of the following elements:\n *\n * <ul>\n * <li> Input field - displays the selected option or a custom user entry. Users can type to narrow down the list or enter their own value.</li>\n * <li> Drop-down arrow - expands\\collapses the option list.</li>\n * <li> Option list - the list of available options.</li>\n * </ul>\n *\n * <h3>Keyboard Handling</h3>\n *\n * The <code>ui5-combobox</code> provides advanced keyboard handling.\n * <br>\n *\n * <ul>\n * <li>[F4], [ALT]+[UP], or [ALT]+[DOWN] - Toggles the picker.</li>\n * <li>[ESC] - Closes the picker, if open. If closed, cancels changes and reverts the typed in value.</li>\n * <li>[ENTER] or [RETURN] - If picker is open, takes over the currently selected item and closes it.</li>\n * <li>[DOWN] - Selects the next matching item in the picker.</li>\n * <li>[UP] - Selects the previous matching item in the picker.</li>\n * <li>[PAGEDOWN] - Moves selection down by page size (10 items by default).</li>\n * <li>[PAGEUP] - Moves selection up by page size (10 items by default). </li>\n * <li>[HOME] - If focus is in the ComboBox, moves cursor at the beginning of text. If focus is in the picker, selects the first item.</li>\n * <li>[END] - If focus is in the ComboBox, moves cursor at the end of text. If focus is in the picker, selects the last item.</li>\n * </ul>\n *\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/ComboBox\";</code>\n *\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.6\n */\n@customElement({\n\ttag: \"ui5-combobox\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\tstyles: ComboBoxCss,\n\tstaticAreaStyles: [\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tComboBoxPopoverCss,\n\t\tSuggestionsCss,\n\t],\n\ttemplate: ComboBoxTemplate,\n\tstaticAreaTemplate: ComboBoxPopoverTemplate,\n\tdependencies: [\n\t\tComboBoxItem,\n\t\tIcon,\n\t\tResponsivePopover,\n\t\tList,\n\t\tBusyIndicator,\n\t\tButton,\n\t\tStandardListItem,\n\t\tGroupHeaderListItem,\n\t\tPopover,\n\t\tComboBoxGroupItem,\n\t\tInput,\n\t\tSuggestionItem,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter, focusout or an item is selected.\n *\n * @public\n */\n@event(\"change\")\n\n/**\n * Fired when typing in input or clear icon is pressed.\n * <br><br>\n * <b>Note:</b> filterValue property is updated, input is changed.\n * @public\n */\n@event(\"input\")\n/**\n * Fired when selection is changed by user interaction\n *\n * @param {IComboBoxItem} item item to be selected.\n * @public\n */\n@event<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\titem: { type: HTMLElement },\n\t},\n})\n\nclass ComboBox extends UI5Element {\n\t/**\n\t * Defines the value of the component.\n\t *\n\t * @default \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines whether the value will be autocompleted to match an item\n\t *\n\t * @default false\n\t * @public\n\t * @since 1.19.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead!: boolean;\n\n\t/**\n\t * Defines the \"live\" value of the component.\n\t * <br><br>\n\t * <b>Note:</b> If we have an item e.g. \"Bulgaria\", \"B\" is typed, \"ulgaria\" is typed ahead, value will be \"Bulgaria\", filterValue will be \"B\".\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Initially the filter value is synced with value.\n\t *\n\t * @default \"\"\n\t * @private\n\t */\n\t@property()\n\tfilterValue!: string;\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the\n\t * component has no value.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tplaceholder!: string;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * <br><br>\n\t * <b>Note:</b> A disabled component is completely noninteractive.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the value state of the component.\n\t *\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t * <br><br>\n\t * <b>Note:</b> A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is required.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the picker.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading!: boolean;\n\n\t/**\n\t * Defines the filter type of the component.\n\t *\n\t * @default \"StartsWithPerTerm\"\n\t * @public\n\t */\n\t@property({ type: ComboBoxFilter, defaultValue: ComboBoxFilter.StartsWithPerTerm })\n\tfilter!: `${ComboBoxFilter}`;\n\n\t/**\n\t * Defines whether the clear icon of the combobox will be shown.\n\t *\n\t * @default false\n\t * @public\n\t * @since 1.20.1\n\t */\n\t@property({ type: Boolean })\n\tshowClearIcon!: boolean;\n\n\t/**\n\t * Indicates whether the input is focssed\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t/**\n\t * Indicates whether the visual focus is on the value state header\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isValueStateFocused!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component\n\t * @default \"\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed!: boolean;\n\n\t@property({ type: Object, noAttribute: true, multiple: true })\n\t_filteredItems!: Array<IComboBoxItem>;\n\n\t@property({ validator: Integer, noAttribute: true })\n\t_listWidth!: number;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_effectiveShowClearIcon!: boolean;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n\titems!: Array<IComboBoxItem>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t * <br>\n\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t * when the <code>ui5-combobox</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the icon to be displayed in the input field.\n\t *\n\t * @public\n\t * @since 1.0.0-rc.9\n\t */\n\t@slot()\n\ticon!: Array<IIcon>;\n\n\t_initialRendering: boolean;\n\t_itemFocused: boolean;\n\t// used only for Safari fix (check onAfterRendering)\n\t_autocomplete: boolean;\n\t_isKeyNavigation: boolean;\n\t_selectionPerformed: boolean;\n\t_lastValue: string;\n\t_selectedItemText: string;\n\t_userTypedValue: string;\n\tresponsivePopover?: ResponsivePopover;\n\tvalueStatePopover?: Popover;\n\tFormSupport?: typeof FormSupportT;\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._filteredItems = [];\n\t\tthis._initialRendering = true;\n\t\tthis._itemFocused = false;\n\t\tthis._autocomplete = false;\n\t\tthis._isKeyNavigation = false;\n\t\t// when an initial value is set it should be considered as a _lastValue\n\t\tthis._lastValue = this.getAttribute(\"value\") || \"\";\n\t\tthis._selectionPerformed = false;\n\t\tthis._selectedItemText = \"\";\n\t\tthis._userTypedValue = \"\";\n\t}\n\n\tonBeforeRendering() {\n\t\tconst popover: Popover | undefined = this.valueStatePopover;\n\n\t\tthis.FormSupport = getFeature<typeof FormSupportT>(\"FormSupport\");\n\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);\n\n\t\tif (this._initialRendering || this.filter === \"None\") {\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.open && !this._isKeyNavigation) {\n\t\t\tthis._filteredItems = this._filterItems(this.filterValue);\n\t\t}\n\n\t\tif (!this._initialRendering && document.activeElement === this && !this._filteredItems.length) {\n\t\t\tpopover?.close();\n\t\t}\n\n\t\tthis._selectMatchingItem();\n\t\tthis._initialRendering = false;\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5-input-icons-count\"), `${this.iconsCount}`);\n\t}\n\n\tget iconsCount() {\n\t\tconst slottedIconsCount = this.icon?.length || 0;\n\t\tconst clearIconCount = Number(this._effectiveShowClearIcon) ?? 0;\n\t\tconst arrowDownIconsCount = this.readonly ? 0 : 1;\n\n\t\treturn slottedIconsCount + clearIconCount + arrowDownIconsCount;\n\t}\n\n\tasync onAfterRendering() {\n\t\tconst picker: ResponsivePopover = await this._getPicker();\n\n\t\tif ((await this.shouldClosePopover()) && !isPhone()) {\n\t\t\tpicker.close(false, false, true);\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t}\n\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\t\tthis.storeResponsivePopoverWidth();\n\n\t\tif (isPhone()) {\n\t\t\tthis.value = this.inner.value;\n\t\t\tthis._selectMatchingItem();\n\t\t}\n\t}\n\n\tasync shouldClosePopover(): Promise<boolean> {\n\t\tconst popover: ResponsivePopover = await this._getPicker();\n\n\t\treturn popover.opened && !this.focused && !this._itemFocused && !this._isValueStateFocused;\n\t}\n\n\t_focusin(e: FocusEvent) {\n\t\tthis.focused = true;\n\t\tthis._autocomplete = false;\n\n\t\t!isPhone() && (e.target as HTMLInputElement).setSelectionRange(0, this.value.length);\n\t}\n\n\t_focusout(e: FocusEvent) {\n\t\tconst toBeFocused = e.relatedTarget as HTMLElement;\n\t\tconst focusedOutToValueStateMessage = toBeFocused?.shadowRoot?.querySelector(\".ui5-valuestatemessage-root\");\n\t\tconst clearIconWrapper = this.shadowRoot!.querySelector(\".ui5-input-clear-icon-wrapper\");\n\t\tconst focusedOutToClearIcon = clearIconWrapper === toBeFocused || clearIconWrapper?.contains(toBeFocused);\n\n\t\tif (this._effectiveShowClearIcon && focusedOutToClearIcon) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\n\t\tif (focusedOutToValueStateMessage) {\n\t\t\te.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!(this.shadowRoot!.contains(toBeFocused)) && (this.staticAreaItem !== e.relatedTarget)) {\n\t\t\tthis.focused = false;\n\t\t\t!isPhone() && this._closeRespPopover(e);\n\t\t}\n\t}\n\n\t_afterOpenPopover() {\n\t\tthis._iconPressed = true;\n\t\tthis.inner.focus();\n\t}\n\n\t_afterClosePopover() {\n\t\tthis._iconPressed = false;\n\t\tthis._filteredItems = this.items;\n\t\tthis.filterValue = \"\";\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t}\n\n\t\tif (this._selectionPerformed) {\n\t\t\tthis._lastValue = this.value;\n\t\t\tthis._selectionPerformed = false;\n\t\t}\n\t}\n\n\tasync _toggleRespPopover() {\n\t\tconst picker: ResponsivePopover = await this._getPicker();\n\n\t\tif (picker.opened) {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tasync storeResponsivePopoverWidth() {\n\t\tif (this.open && !this._listWidth) {\n\t\t\tthis._listWidth = (await this._getPicker()).offsetWidth;\n\t\t}\n\t}\n\n\ttoggleValueStatePopover(open: boolean) {\n\t\tif (open) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\t}\n\n\tasync openValueStatePopover() {\n\t\t(await this._getValueStatePopover())?.showAt(this);\n\t}\n\n\tasync closeValueStatePopover() {\n\t\t(await this._getValueStatePopover())?.close();\n\t}\n\n\tasync _getValueStatePopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tconst popover: Popover = staticAreaItem!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\n\t\t// backward compatibility\n\t\t// rework all methods to work with async getters\n\t\tthis.valueStatePopover = popover;\n\n\t\treturn popover;\n\t}\n\n\t_resetFilter() {\n\t\tthis._userTypedValue = \"\";\n\t\tthis.inner.setSelectionRange(0, this.value.length);\n\t\tthis._filteredItems = this._filterItems(\"\");\n\t\tthis._selectMatchingItem();\n\t}\n\n\t_arrowClick() {\n\t\tthis.inner.focus();\n\t\tthis._resetFilter();\n\n\t\tif (isPhone() && this.value && !this._lastValue) {\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tconst { target } = e;\n\t\tthis.filterValue = (target as Input).value;\n\t\tthis.value = (target as Input).value;\n\t\tthis.fireEvent(\"input\");\n\t}\n\n\t_input(e: InputEvent) {\n\t\tconst { value } = e.target as HTMLInputElement;\n\t\tconst shouldAutocomplete = this.shouldAutocomplete(e);\n\n\t\tif (e.target === this.inner) {\n\t\t\t// stop the native event, as the semantic \"input\" would be fired.\n\t\t\te.stopImmediatePropagation();\n\t\t\tthis.focused = true;\n\t\t\tthis._isValueStateFocused = false;\n\t\t}\n\n\t\tthis._filteredItems = this._filterItems(value);\n\n\t\tthis.value = value;\n\t\tthis.filterValue = value;\n\n\t\tthis._clearFocus();\n\n\t\t// autocomplete\n\t\tif (shouldAutocomplete && !isAndroid()) {\n\t\t\tconst item = this._getFirstMatchingItem(value);\n\t\t\titem && this._applyAtomicValueAndSelection(item, value, true);\n\n\t\t\tif (value !== \"\" && (item && !item.selected && !item.isGroupItem)) {\n\t\t\t\tthis.fireEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\t\titem,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.fireEvent(\"input\");\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._filteredItems.length || value === \"\") {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\tshouldAutocomplete(e: InputEvent): boolean {\n\t\tconst eventType = e.inputType;\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(eventType);\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<IComboBoxItem> {\n\t\treturn Filters.StartsWith(str, this._filteredItems, \"text\");\n\t}\n\n\t_clearFocus() {\n\t\tthis._filteredItems.map(item => {\n\t\t\titem.focused = false;\n\n\t\t\treturn item;\n\t\t});\n\t}\n\n\thandleNavKeyPress(e: KeyboardEvent) {\n\t\tif (this.focused && (isHome(e) || isEnd(e)) && this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isOpen = this.open;\n\t\tconst currentItem = this._filteredItems.find(item => {\n\t\t\treturn isOpen ? item.focused : item.selected;\n\t\t});\n\n\t\tconst indexOfItem = currentItem ? this._filteredItems.indexOf(currentItem) : -1;\n\n\t\te.preventDefault();\n\n\t\tif (this.focused && isOpen && (isUp(e) || isPageUp(e) || isPageDown(e))) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._filteredItems.length - 1 === indexOfItem && isDown(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isKeyNavigation = true;\n\n\t\tif (\n\t\t\te.key === \"ArrowDown\"\n\t\t\t|| e.key === \"ArrowUp\"\n\t\t\t|| e.key === \"PageUp\"\n\t\t\t|| e.key === \"PageDown\"\n\t\t\t|| e.key === \"Home\"\n\t\t\t|| e.key === \"End\"\n\t\t) {\n\t\t\tthis[`_handle${e.key}`](e, indexOfItem);\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, indexOfItem: number, isForward: boolean) {\n\t\tconst isOpen = this.open;\n\t\tconst currentItem = this._filteredItems[indexOfItem];\n\t\tconst nextItem = isForward ? this._filteredItems[indexOfItem + 1] : this._filteredItems[indexOfItem - 1];\n\t\tconst isGroupItem = currentItem && currentItem.isGroupItem;\n\n\t\tif ((!isOpen) && ((isGroupItem && !nextItem) || (!isGroupItem && !currentItem))) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._clearFocus();\n\n\t\tif (isOpen) {\n\t\t\tthis._itemFocused = true;\n\t\t\tthis.value = isGroupItem ? \"\" : currentItem.text;\n\t\t\tthis.focused = false;\n\t\t\tcurrentItem.focused = true;\n\t\t} else {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = isGroupItem ? nextItem.text : currentItem.text;\n\t\t\tcurrentItem.focused = false;\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\n\t\tthis._announceSelectedItem(indexOfItem);\n\t\tthis._scrollToItem(indexOfItem, isForward);\n\n\t\tif (isGroupItem && isOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\t// autocomplete\n\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\titem && this._applyAtomicValueAndSelection(item, (this.open ? this._userTypedValue : \"\"), true);\n\n\t\tif ((item && !item.selected)) {\n\t\t\tthis.fireEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\titem,\n\t\t\t});\n\t\t}\n\n\t\tthis.fireEvent(\"input\");\n\t\tthis._fireChangeEvent();\n\t}\n\n\t_handleArrowDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (this.focused && indexOfItem === -1 && this.hasValueStateText && isOpen) {\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\tthis.focused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tindexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\n\t\tthis._handleItemNavigation(e, ++indexOfItem, true /* isForward */);\n\t}\n\n\t_handleArrowUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (indexOfItem === 0 && !this.hasValueStateText) {\n\t\t\tthis._clearFocus();\n\t\t\tthis.focused = true;\n\t\t\tthis._itemFocused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (indexOfItem === 0 && this.hasValueStateText && isOpen) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\tthis._filteredItems[0].selected = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isValueStateFocused) {\n\t\t\tthis.focused = true;\n\t\t\tthis._isValueStateFocused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tindexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\t\tthis._handleItemNavigation(e, --indexOfItem, false /* isForward */);\n\t}\n\n\t_handlePageUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isProposedIndexValid = indexOfItem - SKIP_ITEMS_SIZE > -1;\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem - SKIP_ITEMS_SIZE : 0;\n\t\tconst shouldMoveForward = this._filteredItems[indexOfItem].isGroupItem && !this.open;\n\n\t\tif (!isProposedIndexValid && this.hasValueStateText && this.open) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handlePageDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst itemsLength = this._filteredItems.length;\n\t\tconst isProposedIndexValid = indexOfItem + SKIP_ITEMS_SIZE < itemsLength;\n\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem + SKIP_ITEMS_SIZE : itemsLength - 1;\n\t\tconst shouldMoveForward = this._filteredItems[indexOfItem].isGroupItem && !this.open;\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handleHome(e: KeyboardEvent) {\n\t\tconst shouldMoveForward = this._filteredItems[0].isGroupItem && !this.open;\n\n\t\tif (this.hasValueStateText && this.open) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, 0, shouldMoveForward);\n\t}\n\n\t_handleEnd(e: KeyboardEvent) {\n\t\tthis._handleItemNavigation(e, this._filteredItems.length - 1, true /* isForward */);\n\t}\n\n\t_keyup() {\n\t\tthis._userTypedValue = this.value.substring(0, this.inner.selectionStart || 0);\n\t}\n\n\t_keydown(e: KeyboardEvent) {\n\t\tconst isNavKey = isDown(e) || isUp(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e);\n\t\tconst picker = this.responsivePopover;\n\n\t\tthis._autocomplete = !(isBackSpace(e) || isDelete(e));\n\t\tthis._isKeyNavigation = false;\n\n\t\tif (isNavKey && !this.readonly && this._filteredItems.length) {\n\t\t\tthis.handleNavKeyPress(e);\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tconst focusedItem = this._filteredItems.find(item => {\n\t\t\t\treturn item.focused;\n\t\t\t});\n\n\t\t\tthis._fireChangeEvent();\n\n\t\t\tif (picker?.opened && !focusedItem?.isGroupItem) {\n\t\t\t\tthis._closeRespPopover();\n\t\t\t\tthis.focused = true;\n\t\t\t} else if (this.FormSupport) {\n\t\t\t\tthis.FormSupport.triggerFormSubmit(this);\n\t\t\t}\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = !this.open ? this._lastValue : this.value;\n\t\t\tthis._isValueStateFocused = false;\n\t\t}\n\n\t\tif ((isTabNext(e) || isTabPrevious(e)) && this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\n\t\tif (isShow(e) && !this.readonly && !this.disabled) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._resetFilter();\n\t\t\tthis._toggleRespPopover();\n\n\t\t\tconst selectedItem = this._filteredItems.find(item => {\n\t\t\t\treturn item.selected;\n\t\t\t});\n\n\t\t\tif (selectedItem && this.open) {\n\t\t\t\tthis._itemFocused = true;\n\t\t\t\tselectedItem.focused = true;\n\t\t\t\tthis.focused = false;\n\t\t\t} else if (this.open && this._filteredItems.length) {\n\t\t\t\t// If no item is selected, select the first one on \"Show\" (F4, Alt+Up/Down)\n\t\t\t\tthis._handleItemNavigation(e, 0, true /* isForward */);\n\t\t\t} else {\n\t\t\t\tthis.focused = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t_click() {\n\t\tif (isPhone() && !this.readonly) {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t_closeRespPopover(e?: Event) {\n\t\tconst picker = this.responsivePopover;\n\n\t\tif (e && (e.target as HTMLElement).classList.contains(\"ui5-responsive-popover-close-btn\") && this._selectedItemText) {\n\t\t\tthis.value = this._selectedItemText;\n\t\t\tthis.filterValue = this._selectedItemText;\n\t\t}\n\n\t\tif (e && (e.target as HTMLElement).classList.contains(\"ui5-responsive-popover-close-btn\")) {\n\t\t\tthis.value = this._lastValue || \"\";\n\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t}\n\n\t\tif (isPhone()) {\n\t\t\tthis._fireChangeEvent();\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\t\tthis._clearFocus();\n\n\t\tpicker?.close();\n\t}\n\n\tasync _openRespPopover() {\n\t\t(await this._getPicker()).showAt(this, true);\n\t}\n\n\t_filterItems(str: string) {\n\t\tconst itemsToFilter = this.items.filter(item => !item.isGroupItem);\n\t\tconst filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter, \"text\");\n\n\t\t// Return the filtered items and their group items\n\t\treturn this.items.filter((item, idx, allItems) => ComboBox._groupItemFilter(item, ++idx, allItems, filteredItems) || filteredItems.indexOf(item) !== -1);\n\t}\n\n\t/**\n\t * Returns true if the group header should be shown (if there is a filtered suggestion item for this group item)\n\t *\n\t * @private\n\t */\n\tstatic _groupItemFilter(item: IComboBoxItem, idx: number, allItems: Array<IComboBoxItem>, filteredItems: Array<IComboBoxItem>) {\n\t\tif (item.isGroupItem) {\n\t\t\tlet groupHasFilteredItems;\n\n\t\t\twhile (allItems[idx] && !allItems[idx].isGroupItem && !groupHasFilteredItems) {\n\t\t\t\tgroupHasFilteredItems = filteredItems.indexOf(allItems[idx]) !== -1;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\treturn groupHasFilteredItems;\n\t\t}\n\t}\n\n\t_getFirstMatchingItem(current: string): ComboBoxItem | undefined {\n\t\tconst currentlyFocusedItem = this.items.find(item => item.focused === true);\n\n\t\tif (currentlyFocusedItem?.isGroupItem) {\n\t\t\tthis.value = this.filterValue;\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems: Array<ComboBoxItem> = (this._startsWithMatchingItems(current).filter(item => !item.isGroupItem) as Array<ComboBoxItem>);\n\n\t\tif (matchingItems.length) {\n\t\t\treturn matchingItems[0];\n\t\t}\n\t}\n\n\t_applyAtomicValueAndSelection(item: ComboBoxItem, filterValue: string, highlightValue: boolean) {\n\t\tconst value = (item && item.text) || \"\";\n\n\t\tthis.inner.value = value;\n\t\tif (highlightValue) {\n\t\t\tthis.inner.setSelectionRange(filterValue.length, value.length);\n\t\t}\n\t\tthis.value = value;\n\t}\n\n\t_selectMatchingItem() {\n\t\tconst currentlyFocusedItem = this.items.find(item => item.focused);\n\t\tconst shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;\n\n\t\tconst itemToBeSelected = this._filteredItems.find(item => {\n\t\t\treturn !item.isGroupItem && (item.text === this.value) && !shouldSelectionBeCleared;\n\t\t});\n\n\t\tthis._filteredItems = this._filteredItems.map(item => {\n\t\t\titem.selected = item === itemToBeSelected;\n\t\t\treturn item;\n\t\t});\n\t}\n\n\t_fireChangeEvent() {\n\t\tif (this.value !== this._lastValue) {\n\t\t\tthis.fireEvent(\"change\");\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\t}\n\n\t_inputChange(e: Event) {\n\t\te.preventDefault();\n\t}\n\n\t_itemMousedown(e: MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_selectItem(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst listItem = e.detail.item as ComboBoxListItem;\n\n\t\tthis._selectedItemText = listItem.mappedItem.text;\n\t\tthis._selectionPerformed = true;\n\n\t\tconst sameItemSelected = this.value === this._selectedItemText;\n\t\tconst sameSelectionPerformed = this.value.toLowerCase() === this.filterValue.toLowerCase();\n\n\t\tif (sameItemSelected && sameSelectionPerformed) {\n\t\t\tthis._fireChangeEvent(); // Click on an already typed, but not memoized value shouold also trigger the change event\n\t\t\treturn this._closeRespPopover();\n\t\t}\n\n\t\tthis.value = this._selectedItemText;\n\n\t\tif (!listItem.mappedItem.selected) {\n\t\t\tthis.fireEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\titem: listItem.mappedItem,\n\t\t\t});\n\t\t}\n\n\t\tthis._filteredItems.map(item => {\n\t\t\titem.selected = (item === listItem.mappedItem && !item.isGroupItem);\n\t\t\treturn item;\n\t\t});\n\n\t\tthis._fireChangeEvent();\n\t\tthis._closeRespPopover();\n\n\t\t// reset selection\n\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t}\n\n\t_onItemFocus() {\n\t\tthis._itemFocused = true;\n\t}\n\n\t_announceSelectedItem(indexOfItem: number) {\n\t\tconst currentItem = this._filteredItems[indexOfItem];\n\t\tconst nonGroupItems = this._filteredItems.filter(item => !item.isGroupItem);\n\t\tconst currentItemAdditionalText = currentItem.additionalText || \"\";\n\t\tconst isGroupItem = currentItem?.isGroupItem;\n\t\tconst itemPositionText = ComboBox.i18nBundle.getText(LIST_ITEM_POSITION, nonGroupItems.indexOf(currentItem) + 1, nonGroupItems.length);\n\t\tconst groupHeaderText = ComboBox.i18nBundle.getText(LIST_ITEM_GROUP_HEADER);\n\n\t\tif (isGroupItem) {\n\t\t\tannounce(`${groupHeaderText} ${currentItem.text}`, InvisibleMessageMode.Polite);\n\t\t} else {\n\t\t\tannounce(`${currentItemAdditionalText} ${itemPositionText}`.trim(), InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\t_clear() {\n\t\tconst selectedItem = this.items.find(item => item.selected) as (ComboBoxItem | undefined);\n\n\t\tif (selectedItem?.text === this.value) {\n\t\t\tthis.fireEvent(\"change\");\n\t\t}\n\n\t\tthis.value = \"\";\n\t\tthis.fireEvent(\"input\");\n\n\t\tif (this._isPhone) {\n\t\t\tthis._lastValue = \"\";\n\t\t\tthis.fireEvent(\"change\");\n\t\t} else {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\tasync _scrollToItem(indexOfItem: number, forward: boolean) {\n\t\tconst picker = await this._getPicker();\n\t\tconst list = picker.querySelector(\".ui5-combobox-items-list\") as List;\n\t\tconst listItem = list?.items[indexOfItem];\n\n\t\tif (listItem) {\n\t\t\tconst pickerRect = picker.getBoundingClientRect();\n\t\t\tconst listItemRect = listItem.getBoundingClientRect();\n\t\t\tconst isListItemInVisibleArea = listItemRect.top >= pickerRect.top && listItemRect.bottom <= pickerRect.bottom;\n\n\t\t\tif (!isListItemInVisibleArea) {\n\t\t\t\tlistItem.scrollIntoView({ behavior: \"instant\", block: forward ? \"end\" : \"start\", inline: \"nearest\" });\n\t\t\t}\n\t\t}\n\t}\n\n\t_announceValueStateText() {\n\t\tconst valueStateText = this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : this.valueStateMessageText.map(el => el.textContent).join(\" \");\n\n\t\tif (valueStateText) {\n\t\t\tannounce(valueStateText, InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\tget _headerTitleText() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _iconAccessibleNameText() {\n\t\treturn ComboBox.i18nBundle.getText(SELECT_OPTIONS);\n\t}\n\n\tget inner(): HTMLInputElement {\n\t\treturn isPhone() ? this.responsivePopover!.querySelector(\"[ui5-input]\")!.shadowRoot!.querySelector(\"input\")! : this.shadowRoot!.querySelector(\"[inner-input]\")!;\n\t}\n\n\tasync _getPicker() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tconst picker = staticAreaItem!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\n\t\t// backward compatibility\n\t\t// rework all methods to work with async getters\n\t\tthis.responsivePopover = picker;\n\n\t\treturn picker;\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success;\n\t}\n\n\tget ariaValueStateHiddenText(): string {\n\t\tif (!this.hasValueState) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tlet text = \"\";\n\n\t\tif (this.valueState !== ValueState.None) {\n\t\t\ttext = this.valueStateTypeMappings[this.valueState];\n\t\t}\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\treturn `${text} ${this.valueStateDefaultText || \"\"}`;\n\t\t}\n\n\t\treturn `${text}`.concat(\" \", this.valueStateMessageText.map(el => el.textContent).join(\" \"));\n\t}\n\n\tget valueStateDefaultText(): string | undefined {\n\t\tif (this.valueState === ValueState.None) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget valueStateMessageText(): Array<Node> {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget valueStateTextMappings(): ValueStateAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Success]: ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Error]: ComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Warning]: ComboBox.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Success]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Error]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Warning]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && !this.readonly && this.hasValueStateText && !this._iconPressed\n\t\t\t&& !this.open && !this._isPhone;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget _valueStatePopoverHorizontalAlign(): `${PopoverHorizontalAlign}` {\n\t\treturn this.effectiveDir !== \"rtl\" ? PopoverHorizontalAlign.Left : PopoverHorizontalAlign.Right;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageIcon(): string {\n\t\treturn this.valueState !== ValueState.None ? ValueStateIconMapping[this.valueState] : \"\";\n\t}\n\n\tget open(): boolean {\n\t\treturn this?.responsivePopover?.opened || false;\n\t}\n\n\tget _isPhone(): boolean {\n\t\treturn isPhone();\n\t}\n\n\tget itemTabIndex() {\n\t\treturn undefined;\n\t}\n\n\tget ariaLabelText(): string | undefined {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget clearIconAccessibleName() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_CLEAR_ICON_ACC_NAME);\n\t}\n\n\tstatic async onDefine() {\n\t\tComboBox.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tget styles() {\n\t\tconst remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"width\": `${this.offsetWidth}px`,\n\t\t\t},\n\t\t\tsuggestionPopoverHeader: {\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._listWidth || \"\"}px`,\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth || 0}px`,\n\t\t\t\t\"max-width\": (this.offsetWidth / remSizeInPx) > 40 ? `${this.offsetWidth}px` : \"40rem\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\t\"ui5-popover-with-value-state-header-phone\": this._isPhone && this.hasValueStateText,\n\t\t\t\t\"ui5-popover-with-value-state-header\": !this._isPhone && this.hasValueStateText,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n}\n\nComboBox.define();\n\nexport default ComboBox;\n\nexport type {\n\tComboBoxSelectionChangeEventDetail,\n\tIComboBoxItem,\n};\n"]}
@@ -16,6 +16,10 @@ type DatePickerChangeEventDetail = {
16
16
  value: string;
17
17
  valid: boolean;
18
18
  };
19
+ type DatePickerValueStateChangeEventDetail = {
20
+ valueState: `${ValueState}`;
21
+ valid: boolean;
22
+ };
19
23
  type DatePickerInputEventDetail = {
20
24
  value: string;
21
25
  valid: boolean;
@@ -406,4 +410,4 @@ declare class DatePicker extends DateComponentBase implements IFormElement {
406
410
  get type(): InputType;
407
411
  }
408
412
  export default DatePicker;
409
- export type { DatePickerChangeEventDetail, DatePickerInputEventDetail, };
413
+ export type { DatePickerChangeEventDetail, DatePickerInputEventDetail, DatePickerValueStateChangeEventDetail, };
@@ -278,12 +278,12 @@ let DatePicker = DatePicker_1 = class DatePicker extends DateComponentBase {
278
278
  }
279
279
  }
280
280
  _updateValueState() {
281
- const isValid = this._checkValueValidity(this.value);
282
- if (isValid && this.valueState === ValueState.Error) { // If not valid - always set Error regardless of the current value state
283
- this.valueState = ValueState.None;
284
- }
285
- else if (!isValid) { // However if valid, change only Error (but not the others) to None
286
- this.valueState = ValueState.Error;
281
+ const valid = this._checkValueValidity(this.value);
282
+ const previousValueState = this.valueState;
283
+ this.valueState = valid ? ValueState.None : ValueState.Error;
284
+ const eventPrevented = !this.fireEvent("value-state-change", { valueState: this.valueState, valid }, true);
285
+ if (eventPrevented) {
286
+ this.valueState = previousValueState;
287
287
  }
288
288
  }
289
289
  _toggleAndFocusInput() {
@@ -658,6 +658,33 @@ DatePicker = DatePicker_1 = __decorate([
658
658
  },
659
659
  },
660
660
  })
661
+ /**
662
+ * Fired before the value state of the component is updated internally.
663
+ * The event is preventable, meaning that if it's default action is
664
+ * prevented, the component will not update the value state.
665
+ *
666
+ * @allowPreventDefault
667
+ * @public
668
+ * @param {string} valueState The new <code>valueState</code> that will be set.
669
+ * @param {boolean} valid Indicator if the value is in correct format pattern and in valid range.
670
+ */
671
+ ,
672
+ event("value-state-change", {
673
+ detail: {
674
+ /**
675
+ * @public
676
+ */
677
+ valueState: {
678
+ type: String,
679
+ },
680
+ /**
681
+ * @public
682
+ */
683
+ valid: {
684
+ type: Boolean,
685
+ },
686
+ },
687
+ })
661
688
  ], DatePicker);
662
689
  DatePicker.define();
663
690
  export default DatePicker;