@sapudex/web-components 2.55.0 → 2.57.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 (483) hide show
  1. package/README.md +258 -0
  2. package/cypress/specs/HeroBanner.cy.tsx +35 -1
  3. package/cypress/specs/List.cy.tsx +63 -1
  4. package/cypress/specs/ListItem.cy.tsx +44 -0
  5. package/cypress/specs/MastheadShell.cy.tsx +39 -0
  6. package/cypress/specs/PhoneNumberField.cy.tsx +29 -1
  7. package/cypress/specs/SelectBox.cy.tsx +99 -0
  8. package/cypress/specs/TagGroup.cy.tsx +35 -0
  9. package/dist/Carousel.d.ts +9 -3
  10. package/dist/Carousel.js +35 -6
  11. package/dist/Carousel.js.map +1 -1
  12. package/dist/CarouselTemplate.js +3 -3
  13. package/dist/CarouselTemplate.js.map +1 -1
  14. package/dist/CountrySelectorTemplate.js +1 -1
  15. package/dist/CountrySelectorTemplate.js.map +1 -1
  16. package/dist/FilterMenu.js +5 -1
  17. package/dist/FilterMenu.js.map +1 -1
  18. package/dist/HeroBanner.d.ts +12 -0
  19. package/dist/HeroBanner.js +54 -0
  20. package/dist/HeroBanner.js.map +1 -1
  21. package/dist/List.d.ts +5 -0
  22. package/dist/List.js +7 -0
  23. package/dist/List.js.map +1 -1
  24. package/dist/ListItem.js +5 -1
  25. package/dist/ListItem.js.map +1 -1
  26. package/dist/ListTemplate.js +1 -1
  27. package/dist/ListTemplate.js.map +1 -1
  28. package/dist/MastheadShell.d.ts +7 -0
  29. package/dist/MastheadShell.js +38 -0
  30. package/dist/MastheadShell.js.map +1 -1
  31. package/dist/PhoneNumberField.d.ts +3 -3
  32. package/dist/PhoneNumberField.js +18 -21
  33. package/dist/PhoneNumberField.js.map +1 -1
  34. package/dist/PhoneNumberFieldTemplate.d.ts +2 -0
  35. package/dist/PhoneNumberFieldTemplate.js +12 -0
  36. package/dist/PhoneNumberFieldTemplate.js.map +1 -0
  37. package/dist/Search.d.ts +2 -0
  38. package/dist/Search.js +21 -0
  39. package/dist/Search.js.map +1 -1
  40. package/dist/SearchableListBase.d.ts +4 -0
  41. package/dist/SearchableListBase.js +66 -6
  42. package/dist/SearchableListBase.js.map +1 -1
  43. package/dist/SearchableListBaseTemplate.js +1 -1
  44. package/dist/SearchableListBaseTemplate.js.map +1 -1
  45. package/dist/SelectBase.js +14 -22
  46. package/dist/SelectBase.js.map +1 -1
  47. package/dist/SelectBoxTemplate.js +1 -1
  48. package/dist/SelectBoxTemplate.js.map +1 -1
  49. package/dist/StatusMessage.d.ts +2 -2
  50. package/dist/StatusMessage.js +1 -1
  51. package/dist/StatusMessage.js.map +1 -1
  52. package/dist/TabNavigation.d.ts +3 -2
  53. package/dist/TabNavigation.js +3 -2
  54. package/dist/TabNavigation.js.map +1 -1
  55. package/dist/Tag.d.ts +1 -0
  56. package/dist/Tag.js +6 -0
  57. package/dist/Tag.js.map +1 -1
  58. package/dist/TagGroup.js +4 -2
  59. package/dist/TagGroup.js.map +1 -1
  60. package/dist/TextAreaTemplate.js +1 -1
  61. package/dist/TextAreaTemplate.js.map +1 -1
  62. package/dist/TextFieldTemplate.js +1 -1
  63. package/dist/TextFieldTemplate.js.map +1 -1
  64. package/dist/Upload.js +6 -9
  65. package/dist/Upload.js.map +1 -1
  66. package/dist/UploadItem.d.ts +2 -2
  67. package/dist/UploadItem.js +6 -9
  68. package/dist/UploadItem.js.map +1 -1
  69. package/dist/UploadItemTemplate.d.ts +2 -0
  70. package/dist/UploadItemTemplate.js +14 -0
  71. package/dist/UploadItemTemplate.js.map +1 -0
  72. package/dist/UploadTemplate.d.ts +2 -0
  73. package/dist/UploadTemplate.js +11 -0
  74. package/dist/UploadTemplate.js.map +1 -0
  75. package/dist/assets/{InputSuggestions-DPiJnNLn.js → InputSuggestions-C8grDr_8.js} +1 -1
  76. package/dist/assets/{ListItemStandardExpandableTextTemplate-B-v72jL6.js → ListItemStandardExpandableTextTemplate-BQtSr7yg.js} +1 -1
  77. package/dist/assets/{bundle-C7Yft7IG.css → bundle-CdO3MnjQ.css} +1 -1
  78. package/dist/assets/{bundle.esm-DPppjwN7.js → bundle.esm-GvPkDyXP.js} +251 -239
  79. package/dist/assets/messagebundle_ar-BvIvqOKJ.js +1 -0
  80. package/dist/assets/messagebundle_bg-CbE9TJP3.js +1 -0
  81. package/dist/assets/messagebundle_cs-D7sDCnrw.js +1 -0
  82. package/dist/assets/messagebundle_da-BKcG2gb3.js +1 -0
  83. package/dist/assets/messagebundle_de-CqojOAqG.js +1 -0
  84. package/dist/assets/messagebundle_el-DLfp0_Vm.js +1 -0
  85. package/dist/assets/messagebundle_en-DBpf5Il2.js +1 -0
  86. package/dist/assets/messagebundle_es-dcaagZn0.js +1 -0
  87. package/dist/assets/messagebundle_et-XYXhCdvm.js +1 -0
  88. package/dist/assets/messagebundle_fi-Dffg0zEq.js +1 -0
  89. package/dist/assets/messagebundle_fr-CW8ENL86.js +1 -0
  90. package/dist/assets/messagebundle_hr-onMgZwRd.js +1 -0
  91. package/dist/assets/messagebundle_hu-BPDuHAe0.js +1 -0
  92. package/dist/assets/messagebundle_it-BcfXVW1A.js +1 -0
  93. package/dist/assets/messagebundle_ja-EWp-Nkd9.js +1 -0
  94. package/dist/assets/messagebundle_ko-BKQ27UJW.js +1 -0
  95. package/dist/assets/messagebundle_lt-A-f2EeMY.js +1 -0
  96. package/dist/assets/messagebundle_lv-CHVU_rnx.js +1 -0
  97. package/dist/assets/messagebundle_nl-gmf1np1i.js +1 -0
  98. package/dist/assets/messagebundle_no-CazfcIRA.js +1 -0
  99. package/dist/assets/messagebundle_pl-iv_zMkL4.js +1 -0
  100. package/dist/assets/messagebundle_pt-usY49ESJ.js +1 -0
  101. package/dist/assets/messagebundle_pt_PT-DTLEUiTC.js +1 -0
  102. package/dist/assets/messagebundle_ro-BHeGIHaV.js +1 -0
  103. package/dist/assets/messagebundle_ru-DJB1z_R0.js +1 -0
  104. package/dist/assets/messagebundle_sk-DlNIpzr3.js +1 -0
  105. package/dist/assets/messagebundle_sl-Day075Cf.js +1 -0
  106. package/dist/assets/messagebundle_sr-iI_TwIHf.js +1 -0
  107. package/dist/assets/messagebundle_sv-BPj73b5X.js +1 -0
  108. package/dist/assets/messagebundle_tr-DpdBqQtI.js +1 -0
  109. package/dist/assets/messagebundle_uk-CT4EqEBF.js +1 -0
  110. package/dist/assets/messagebundle_zh_CN-B_42cWcu.js +1 -0
  111. package/dist/assets/messagebundle_zh_TW-D25iNCcy.js +1 -0
  112. package/dist/css/themes/AccordionItem.css +1 -1
  113. package/dist/css/themes/AccordionSpotlight.css +1 -1
  114. package/dist/css/themes/Avatar.css +1 -1
  115. package/dist/css/themes/Carousel.css +1 -1
  116. package/dist/css/themes/CountrySelector.css +1 -1
  117. package/dist/css/themes/EventRibbon.css +1 -1
  118. package/dist/css/themes/FilterMenu.css +1 -1
  119. package/dist/css/themes/HeroBanner.css +1 -1
  120. package/dist/css/themes/ImageGridTicker.css +1 -1
  121. package/dist/css/themes/ListItem.css +1 -1
  122. package/dist/css/themes/MastheadCountrySelector.css +1 -1
  123. package/dist/css/themes/MastheadItem.css +1 -1
  124. package/dist/css/themes/MastheadProfileMenu.css +1 -1
  125. package/dist/css/themes/MastheadShell.css +1 -1
  126. package/dist/css/themes/MediaPlayer.css +1 -1
  127. package/dist/css/themes/Modal.css +1 -1
  128. package/dist/css/themes/PhoneNumberField.css +1 -1
  129. package/dist/css/themes/Search.css +1 -1
  130. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  131. package/dist/css/themes/SelectBase.css +1 -1
  132. package/dist/css/themes/StepInput.css +1 -1
  133. package/dist/css/themes/Switch.css +1 -1
  134. package/dist/css/themes/TabInOverflow.css +1 -1
  135. package/dist/css/themes/TabNavigation.css +1 -1
  136. package/dist/css/themes/TableCellBase.css +1 -1
  137. package/dist/css/themes/TagGroup.css +1 -1
  138. package/dist/css/themes/TextArea.css +1 -1
  139. package/dist/css/themes/TextField.css +1 -1
  140. package/dist/css/themes/Tooltip.css +1 -1
  141. package/dist/css/themes/Wizard.css +1 -1
  142. package/dist/custom-elements-internal.json +1119 -98
  143. package/dist/custom-elements.json +745 -128
  144. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  150. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  151. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  152. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  153. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  154. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  155. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  156. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  157. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  158. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  159. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  161. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  164. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  165. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  167. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  168. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  169. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  170. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  171. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  172. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  173. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  174. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  175. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  176. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  177. package/dist/generated/i18n/i18n-defaults.d.ts +1 -9
  178. package/dist/generated/i18n/i18n-defaults.js +1 -9
  179. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  180. package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
  181. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  182. package/dist/generated/themes/AccordionItem.css.d.ts +1 -1
  183. package/dist/generated/themes/AccordionItem.css.js +1 -1
  184. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  185. package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
  186. package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
  187. package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
  188. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  189. package/dist/generated/themes/Avatar.css.js +1 -1
  190. package/dist/generated/themes/Avatar.css.js.map +1 -1
  191. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  192. package/dist/generated/themes/Carousel.css.js +1 -1
  193. package/dist/generated/themes/Carousel.css.js.map +1 -1
  194. package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
  195. package/dist/generated/themes/CountrySelector.css.js +1 -1
  196. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  197. package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
  198. package/dist/generated/themes/EventRibbon.css.js +1 -1
  199. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  200. package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
  201. package/dist/generated/themes/FilterMenu.css.js +1 -1
  202. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  203. package/dist/generated/themes/HeroBanner.css.d.ts +1 -1
  204. package/dist/generated/themes/HeroBanner.css.js +1 -1
  205. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  206. package/dist/generated/themes/ImageGridTicker.css.d.ts +1 -1
  207. package/dist/generated/themes/ImageGridTicker.css.js +1 -1
  208. package/dist/generated/themes/ImageGridTicker.css.js.map +1 -1
  209. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  210. package/dist/generated/themes/ListItem.css.js +1 -1
  211. package/dist/generated/themes/ListItem.css.js.map +1 -1
  212. package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
  213. package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
  214. package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
  215. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  216. package/dist/generated/themes/MastheadItem.css.js +1 -1
  217. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  218. package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
  219. package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
  220. package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
  221. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  222. package/dist/generated/themes/MastheadShell.css.js +1 -1
  223. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  224. package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
  225. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  226. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  227. package/dist/generated/themes/Modal.css.d.ts +1 -1
  228. package/dist/generated/themes/Modal.css.js +1 -1
  229. package/dist/generated/themes/Modal.css.js.map +1 -1
  230. package/dist/generated/themes/PhoneNumberField.css.d.ts +1 -1
  231. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  232. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  233. package/dist/generated/themes/Search.css.d.ts +1 -1
  234. package/dist/generated/themes/Search.css.js +1 -1
  235. package/dist/generated/themes/Search.css.js.map +1 -1
  236. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
  237. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  238. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  239. package/dist/generated/themes/SelectBase.css.d.ts +1 -1
  240. package/dist/generated/themes/SelectBase.css.js +1 -1
  241. package/dist/generated/themes/SelectBase.css.js.map +1 -1
  242. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  243. package/dist/generated/themes/StepInput.css.js +1 -1
  244. package/dist/generated/themes/StepInput.css.js.map +1 -1
  245. package/dist/generated/themes/Switch.css.d.ts +1 -1
  246. package/dist/generated/themes/Switch.css.js +1 -1
  247. package/dist/generated/themes/Switch.css.js.map +1 -1
  248. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  249. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  250. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  251. package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
  252. package/dist/generated/themes/TabNavigation.css.js +1 -1
  253. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  254. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  255. package/dist/generated/themes/TableCellBase.css.js +1 -1
  256. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  257. package/dist/generated/themes/TagGroup.css.d.ts +1 -1
  258. package/dist/generated/themes/TagGroup.css.js +1 -1
  259. package/dist/generated/themes/TagGroup.css.js.map +1 -1
  260. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  261. package/dist/generated/themes/TextArea.css.js +1 -1
  262. package/dist/generated/themes/TextArea.css.js.map +1 -1
  263. package/dist/generated/themes/TextField.css.d.ts +1 -1
  264. package/dist/generated/themes/TextField.css.js +1 -1
  265. package/dist/generated/themes/TextField.css.js.map +1 -1
  266. package/dist/generated/themes/Tooltip.css.d.ts +1 -1
  267. package/dist/generated/themes/Tooltip.css.js +1 -1
  268. package/dist/generated/themes/Tooltip.css.js.map +1 -1
  269. package/dist/generated/themes/Wizard.css.d.ts +1 -1
  270. package/dist/generated/themes/Wizard.css.js +1 -1
  271. package/dist/generated/themes/Wizard.css.js.map +1 -1
  272. package/dist/messagebundle.properties +0 -10
  273. package/dist/messagebundle_ar.properties +0 -6
  274. package/dist/messagebundle_bg.properties +0 -8
  275. package/dist/messagebundle_cs.properties +0 -8
  276. package/dist/messagebundle_da.properties +0 -8
  277. package/dist/messagebundle_de.properties +0 -8
  278. package/dist/messagebundle_el.properties +0 -8
  279. package/dist/messagebundle_en.properties +0 -8
  280. package/dist/messagebundle_es.properties +0 -8
  281. package/dist/messagebundle_et.properties +0 -8
  282. package/dist/messagebundle_fi.properties +0 -8
  283. package/dist/messagebundle_fr.properties +0 -8
  284. package/dist/messagebundle_hr.properties +0 -8
  285. package/dist/messagebundle_hu.properties +0 -8
  286. package/dist/messagebundle_it.properties +0 -8
  287. package/dist/messagebundle_ja.properties +0 -8
  288. package/dist/messagebundle_ko.properties +0 -8
  289. package/dist/messagebundle_lt.properties +0 -8
  290. package/dist/messagebundle_lv.properties +0 -8
  291. package/dist/messagebundle_nl.properties +0 -8
  292. package/dist/messagebundle_no.properties +0 -8
  293. package/dist/messagebundle_pl.properties +0 -8
  294. package/dist/messagebundle_pt.properties +0 -8
  295. package/dist/messagebundle_pt_PT.properties +0 -8
  296. package/dist/messagebundle_ro.properties +0 -8
  297. package/dist/messagebundle_ru.properties +0 -8
  298. package/dist/messagebundle_sk.properties +0 -8
  299. package/dist/messagebundle_sl.properties +0 -7
  300. package/dist/messagebundle_sr.properties +0 -8
  301. package/dist/messagebundle_sv.properties +0 -8
  302. package/dist/messagebundle_tr.properties +0 -8
  303. package/dist/messagebundle_uk.properties +8 -8
  304. package/dist/messagebundle_zh_CN.properties +0 -8
  305. package/dist/messagebundle_zh_TW.properties +0 -8
  306. package/dist/utils/searchBackdrop.d.ts +1 -0
  307. package/dist/utils/searchBackdrop.js +23 -0
  308. package/dist/utils/searchBackdrop.js.map +1 -0
  309. package/dist/vscode.html-custom-data.json +175 -4
  310. package/dist/web-types.json +368 -11
  311. package/package.json +1 -1
  312. package/src/Carousel.ts +51 -8
  313. package/src/CarouselTemplate.tsx +7 -7
  314. package/src/CountrySelectorTemplate.tsx +2 -2
  315. package/src/FilterMenu.ts +5 -1
  316. package/src/HeroBanner.ts +66 -0
  317. package/src/List.ts +8 -0
  318. package/src/ListItem.ts +5 -1
  319. package/src/ListTemplate.tsx +1 -1
  320. package/src/MastheadShell.ts +44 -0
  321. package/src/PhoneNumberField.ts +23 -22
  322. package/src/PhoneNumberFieldTemplate.tsx +128 -0
  323. package/src/Search.ts +21 -1
  324. package/src/SearchableListBase.ts +62 -7
  325. package/src/SearchableListBaseTemplate.tsx +1 -0
  326. package/src/SelectBase.ts +14 -21
  327. package/src/SelectBoxTemplate.tsx +1 -1
  328. package/src/StatusMessage.ts +4 -3
  329. package/src/TabNavigation.hbs +2 -0
  330. package/src/TabNavigation.ts +3 -2
  331. package/src/Tag.ts +7 -0
  332. package/src/TagGroup.ts +4 -2
  333. package/src/TextAreaTemplate.tsx +1 -1
  334. package/src/TextFieldTemplate.tsx +1 -1
  335. package/src/Upload.ts +7 -10
  336. package/src/UploadItem.ts +7 -9
  337. package/src/UploadItemTemplate.tsx +62 -0
  338. package/src/UploadTemplate.tsx +53 -0
  339. package/src/generated/i18n/i18n-defaults.ts +2 -2
  340. package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
  341. package/src/generated/themes/AccordionItem.css.ts +1 -1
  342. package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
  343. package/src/generated/themes/Avatar.css.ts +1 -1
  344. package/src/generated/themes/Carousel.css.ts +1 -1
  345. package/src/generated/themes/CountrySelector.css.ts +1 -1
  346. package/src/generated/themes/EventRibbon.css.ts +1 -1
  347. package/src/generated/themes/FilterMenu.css.ts +1 -1
  348. package/src/generated/themes/HeroBanner.css.ts +1 -1
  349. package/src/generated/themes/ImageGridTicker.css.ts +1 -1
  350. package/src/generated/themes/ListItem.css.ts +1 -1
  351. package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
  352. package/src/generated/themes/MastheadItem.css.ts +1 -1
  353. package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
  354. package/src/generated/themes/MastheadShell.css.ts +1 -1
  355. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  356. package/src/generated/themes/Modal.css.ts +1 -1
  357. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  358. package/src/generated/themes/Search.css.ts +1 -1
  359. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  360. package/src/generated/themes/SelectBase.css.ts +1 -1
  361. package/src/generated/themes/StepInput.css.ts +1 -1
  362. package/src/generated/themes/Switch.css.ts +1 -1
  363. package/src/generated/themes/TabInOverflow.css.ts +1 -1
  364. package/src/generated/themes/TabNavigation.css.ts +1 -1
  365. package/src/generated/themes/TableCellBase.css.ts +1 -1
  366. package/src/generated/themes/TagGroup.css.ts +1 -1
  367. package/src/generated/themes/TextArea.css.ts +1 -1
  368. package/src/generated/themes/TextField.css.ts +1 -1
  369. package/src/generated/themes/Tooltip.css.ts +1 -1
  370. package/src/generated/themes/Wizard.css.ts +1 -1
  371. package/src/i18n/messagebundle.properties +0 -10
  372. package/src/i18n/messagebundle_ar.properties +0 -6
  373. package/src/i18n/messagebundle_bg.properties +0 -8
  374. package/src/i18n/messagebundle_cs.properties +0 -8
  375. package/src/i18n/messagebundle_da.properties +0 -8
  376. package/src/i18n/messagebundle_de.properties +0 -8
  377. package/src/i18n/messagebundle_el.properties +0 -8
  378. package/src/i18n/messagebundle_en.properties +0 -8
  379. package/src/i18n/messagebundle_es.properties +0 -8
  380. package/src/i18n/messagebundle_et.properties +0 -8
  381. package/src/i18n/messagebundle_fi.properties +0 -8
  382. package/src/i18n/messagebundle_fr.properties +0 -8
  383. package/src/i18n/messagebundle_hr.properties +0 -8
  384. package/src/i18n/messagebundle_hu.properties +0 -8
  385. package/src/i18n/messagebundle_it.properties +0 -8
  386. package/src/i18n/messagebundle_ja.properties +0 -8
  387. package/src/i18n/messagebundle_ko.properties +0 -8
  388. package/src/i18n/messagebundle_lt.properties +0 -8
  389. package/src/i18n/messagebundle_lv.properties +0 -8
  390. package/src/i18n/messagebundle_nl.properties +0 -8
  391. package/src/i18n/messagebundle_no.properties +0 -8
  392. package/src/i18n/messagebundle_pl.properties +0 -8
  393. package/src/i18n/messagebundle_pt.properties +0 -8
  394. package/src/i18n/messagebundle_pt_PT.properties +0 -8
  395. package/src/i18n/messagebundle_ro.properties +0 -8
  396. package/src/i18n/messagebundle_ru.properties +0 -8
  397. package/src/i18n/messagebundle_sk.properties +0 -8
  398. package/src/i18n/messagebundle_sl.properties +0 -7
  399. package/src/i18n/messagebundle_sr.properties +0 -8
  400. package/src/i18n/messagebundle_sv.properties +0 -8
  401. package/src/i18n/messagebundle_tr.properties +0 -8
  402. package/src/i18n/messagebundle_uk.properties +8 -8
  403. package/src/i18n/messagebundle_zh_CN.properties +0 -8
  404. package/src/i18n/messagebundle_zh_TW.properties +0 -8
  405. package/src/themes/AccordionItem.css +1 -1
  406. package/src/themes/AccordionSpotlight.css +1 -1
  407. package/src/themes/Avatar.css +1 -1
  408. package/src/themes/Carousel.css +17 -10
  409. package/src/themes/CountrySelector.css +12 -2
  410. package/src/themes/EventRibbon.css +1 -1
  411. package/src/themes/FilterMenu.css +3 -2
  412. package/src/themes/HeroBanner.css +1 -1
  413. package/src/themes/ImageGridTicker.css +1 -1
  414. package/src/themes/ListItem.css +10 -2
  415. package/src/themes/MastheadCountrySelector.css +1 -1
  416. package/src/themes/MastheadItem.css +1 -1
  417. package/src/themes/MastheadProfileMenu.css +1 -1
  418. package/src/themes/MastheadShell.css +1 -1
  419. package/src/themes/MediaPlayer.css +10 -10
  420. package/src/themes/Modal.css +5 -3
  421. package/src/themes/PhoneNumberField.css +16 -6
  422. package/src/themes/Search.css +9 -9
  423. package/src/themes/SecondaryNavigationItem.css +1 -1
  424. package/src/themes/SelectBase.css +2 -2
  425. package/src/themes/StepInput.css +1 -1
  426. package/src/themes/Switch.css +2 -2
  427. package/src/themes/TabInOverflow.css +2 -2
  428. package/src/themes/TabNavigation.css +8 -7
  429. package/src/themes/TableCellBase.css +1 -1
  430. package/src/themes/TagGroup.css +1 -1
  431. package/src/themes/TextArea.css +1 -1
  432. package/src/themes/TextField.css +1 -1
  433. package/src/themes/Tooltip.css +5 -4
  434. package/src/themes/Wizard.css +1 -1
  435. package/src/utils/searchBackdrop.ts +23 -0
  436. package/dist/assets/messagebundle_ar-BUZ_gTvQ.js +0 -1
  437. package/dist/assets/messagebundle_bg-4ainC3nj.js +0 -1
  438. package/dist/assets/messagebundle_cs-CFtmLavu.js +0 -1
  439. package/dist/assets/messagebundle_da-BHL-qTPd.js +0 -1
  440. package/dist/assets/messagebundle_de-SMiMT-ST.js +0 -1
  441. package/dist/assets/messagebundle_el-ChAszJ4A.js +0 -1
  442. package/dist/assets/messagebundle_en-B0P3kkb6.js +0 -1
  443. package/dist/assets/messagebundle_es-LGmRBKqB.js +0 -1
  444. package/dist/assets/messagebundle_et-yYsmBPXN.js +0 -1
  445. package/dist/assets/messagebundle_fi-DeMNrHC9.js +0 -1
  446. package/dist/assets/messagebundle_fr-qEm5Eykz.js +0 -1
  447. package/dist/assets/messagebundle_hr-NBdiYo-T.js +0 -1
  448. package/dist/assets/messagebundle_hu-CBV3ISbF.js +0 -1
  449. package/dist/assets/messagebundle_it-BML2SC0W.js +0 -1
  450. package/dist/assets/messagebundle_ja-zyFfZHcj.js +0 -1
  451. package/dist/assets/messagebundle_ko-BCPaSqNp.js +0 -1
  452. package/dist/assets/messagebundle_lt-DB4b6FVx.js +0 -1
  453. package/dist/assets/messagebundle_lv-tAOia5tU.js +0 -1
  454. package/dist/assets/messagebundle_nl-BKUpVV-D.js +0 -1
  455. package/dist/assets/messagebundle_no-BZQfeWxT.js +0 -1
  456. package/dist/assets/messagebundle_pl-CsXeN1y6.js +0 -1
  457. package/dist/assets/messagebundle_pt-D9rap3lj.js +0 -1
  458. package/dist/assets/messagebundle_pt_PT-CQ5YAsmx.js +0 -1
  459. package/dist/assets/messagebundle_ro-BTNJ9YdP.js +0 -1
  460. package/dist/assets/messagebundle_ru-BTDmH8CB.js +0 -1
  461. package/dist/assets/messagebundle_sk-Lb4jvtpc.js +0 -1
  462. package/dist/assets/messagebundle_sl-BZi2bKSy.js +0 -1
  463. package/dist/assets/messagebundle_sr-B9TYgxO1.js +0 -1
  464. package/dist/assets/messagebundle_sv-DWlY9RTQ.js +0 -1
  465. package/dist/assets/messagebundle_tr-DOeCmUdx.js +0 -1
  466. package/dist/assets/messagebundle_uk-GmdhsMsP.js +0 -1
  467. package/dist/assets/messagebundle_zh_CN-CHwH3F3-.js +0 -1
  468. package/dist/assets/messagebundle_zh_TW-FO0BCkub.js +0 -1
  469. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.d.ts +0 -3
  470. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +0 -16
  471. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +0 -1
  472. package/dist/generated/templates/UploadItemTemplate.lit.d.ts +0 -3
  473. package/dist/generated/templates/UploadItemTemplate.lit.js +0 -12
  474. package/dist/generated/templates/UploadItemTemplate.lit.js.map +0 -1
  475. package/dist/generated/templates/UploadTemplate.lit.d.ts +0 -3
  476. package/dist/generated/templates/UploadTemplate.lit.js +0 -10
  477. package/dist/generated/templates/UploadTemplate.lit.js.map +0 -1
  478. package/src/PhoneNumberField.hbs +0 -119
  479. package/src/Upload.hbs +0 -21
  480. package/src/UploadItem.hbs +0 -32
  481. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +0 -20
  482. package/src/generated/templates/UploadItemTemplate.lit.ts +0 -16
  483. package/src/generated/templates/UploadTemplate.lit.ts +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":"TabNavigation.js","sourceRoot":"","sources":["../src/TabNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { StyleData } from \"@ui5/webcomponents-base/dist/types.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isUp, isDown, isRight, isLeft, isEnter, isSpace, isEscape, isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { ITab } from \"./Tab.js\";\nimport type Tab from \"./Tab.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MORE, PLAY_BUTTON_ACCESSIBLE_NAME, PAUSE_BUTTON_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/play.js\";\nimport \"@ui5/webcomponents-icons/dist/pause.js\";\nimport UDExButton from \"./Button.js\";\n\n// Templates\nimport TabNavigationTemplate from \"./generated/templates/TabNavigationTemplate.lit.js\";\nimport TabNavigationPopoverTemplate from \"./generated/templates/TabNavigationPopoverTemplate.lit.js\";\n\n// Styles\nimport TabNavigationCss from \"./generated/themes/TabNavigation.css.js\";\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\nimport translate from \"./utils/translate.js\";\n\nconst staticAreaTabStyles: Array<StyleData> = [];\n\nexport enum UDExSizeMoreButton {\n Small = \"Small\",\n Medium = \"Medium\",\n}\n\nexport enum Mode {\n Light = \"Light\",\n Dark = \"Dark\",\n}\n\nexport enum UDExTabNavigationOrientation {\n Horizontal = \"Horizontal\",\n Vertical = \"Vertical\",\n}\n\nexport enum UDExTabNavigationPlacement {\n Start = \"Start\",\n End = \"End\",\n}\n\nexport enum UDExTabNavigationVerticalAlignment {\n Top = \"Top\",\n Center = \"Center\",\n}\n\ntype UDExTabNavigationClickDetail = {\n currentPage: number\n}\n\ntype UDExTabContainerTabSelectEventDetail = {\n tab: Tab,\n tabIndex: number\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/TabNavigation.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab-navigation\n * @public\n */\n@customElement({\n tag: \"udex-tab-navigation\",\n renderer: litRender,\n styles: [TabNavigationCss, TabInOverflowCss],\n template: TabNavigationTemplate,\n dependencies: [Popover, Icon, UDExButton],\n})\n\n/**\n * Fires when the tab was clicked.\n *\n * @public\n * @param {number} currentPage The current selected tab index.\n */\n@event(\"click\", { bubbles: true })\n/**\n * Fired when a tab is selected.\n *\n * @public\n * @param {Tab} tab The selected tab.\n * @param {number} tabIndex The index of the selected tab.\n */\n@event(\"tab-select\", { bubbles: true })\n\nclass UDExTabNavigation extends UI5Element {\n eventDetails!: {\n \"click\": UDExTabNavigationClickDetail,\n \"tab-select\": UDExTabContainerTabSelectEventDetail,\n };\n /**\n * Defines the size of the \"More\" button.\n *\n * @public\n * @default \"Small\"\n */\n @property()\n sizeMoreButton: `${UDExSizeMoreButton}` = \"Small\";\n\n /**\n * Defines the mode of the component.\n *\n * @public\n * @default \"Light\"\n */\n @property()\n mode: `${Mode}` = Mode.Light;\n\n /**\n * Defines the orientation of the tab navigation.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. Only `Horizontal` orientation should be used.\n * @public\n * @default \"Horizontal\"\n */\n @property()\n orientation: `${UDExTabNavigationOrientation}` = UDExTabNavigationOrientation.Horizontal;\n\n /**\n * Defines the placement of the tab strip relative to the content area.\n * Applies to Vertical orientation only.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default \"Start\"\n */\n @property()\n placement: `${UDExTabNavigationPlacement}` = UDExTabNavigationPlacement.Start;\n\n /**\n * Defines the vertical alignment of the tab strip relative to the content area.\n * Applies to Vertical orientation only.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default \"Top\"\n */\n @property()\n verticalAlignment: `${UDExTabNavigationVerticalAlignment}` = UDExTabNavigationVerticalAlignment.Top;\n\n /**\n * Enables automatic tab switching for Vertical orientation.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default false\n */\n @property({ type: Boolean })\n autoPlay: boolean = false;\n\n /**\n * Defines the interval in milliseconds between automatic tab switches.\n * Applies only when autoPlay is enabled.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation with autoPlay.\n * @public\n * @default 5000\n */\n @property({ type: Number })\n autoPlayInterval: number = 5000;\n\n /**\n * Indicates whether the auto-play is paused.\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _isPaused: boolean = false;\n\n /**\n * !DEPRECATED! Defines the background color of the component.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconWithoutBackground!: boolean;\n\n /**\n * Enables the Process Tab variant, where each tab displays an icon\n * alongside an optional item count text above the label.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n processTab: boolean = false;\n\n @property({ type: String })\n tabWidth: string = \"auto\";\n\n /**\n * Defines selected tab.\n *\n * @private\n */\n @property({ type: Object })\n _selectedTab!: Tab;\n\n /**\n * Defines the width of component.\n *\n * @private\n */\n @property({ type: Number, noAttribute: true })\n _width?: number;\n\n /**\n * Defines the overflow items.\n *\n * @private\n */\n @property({ type: Object })\n _overflowItems!: Array<ITab>;\n\n /**\n * Defines the tabs and content.\n *\n * @slot items\n * @public\n */\n @slot({\n type: HTMLElement,\n \"default\": true,\n individualSlots: true,\n invalidateOnChildChange: true,\n })\n items!: DefaultSlot<ITab>;\n\n /**\n * Defines optional content rendered below the tab list in Vertical orientation.\n * Use to place a button or any action element beneath the tabs.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This slot only applies to Vertical orientation.\n * @slot footer\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Slot<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: () => void;\n _handleWindowResizeBound: () => void;\n _popover?: Popover;\n _visibleTabs?: Array<ITab | HTMLElement>;\n _isExpanded: boolean = false;\n _maxTitleLength: number = 25;\n _maxTitleLengthInSecondLines: number = this._maxTitleLength * 2;\n _autoPlayTimer?: number;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n this._handleWindowResizeBound = this._handleWindowResize.bind(this);\n }\n\n onAfterRendering(): void {\n if (this.items.length) {\n this.setItemsInHeader();\n this.setVisibleTabs();\n this.applyTabIndex();\n } else {\n console.warn(\"You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.\");\n }\n this.initOutsideClick();\n this.applyTabWidthToVerticalTabs();\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this.getHeader(), this._handleResizeBound);\n window.addEventListener(\"resize\", this._handleWindowResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.showPlayButton) {\n const prefersReducedMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n if (prefersReducedMotion) {\n this._isPaused = true;\n } else {\n this._startAutoPlay();\n }\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this.getHeader(), this._handleResizeBound);\n window.removeEventListener(\"resize\", this._handleWindowResizeBound);\n this._stopAutoPlay();\n }\n\n _handleWindowResize() {\n this.updateMobileState();\n }\n\n _handleResize() {\n this.handleClosePopover();\n this._width = this.offsetWidth;\n this.updateMobileState();\n }\n\n emitClickEvent(pageIndex: number) {\n this.fireDecoratorEvent(\"click\", { currentPage: pageIndex });\n }\n\n onBeforeRendering(): void {\n this.updateOverflowItems();\n this.setSelectedTab();\n this.updateMobileState();\n }\n\n setSelectedTab() {\n if (!this.items.length) {\n return;\n }\n\n this.resetSelectedTabs();\n this.setCurrentSelectedTab();\n this.setRealTabToItems();\n this.setElementInHeader();\n }\n\n resetSelectedTabs() {\n this.items.forEach(tab => {\n tab._selected = false;\n });\n }\n\n setCurrentSelectedTab() {\n const selectedTabs = this.items.filter(tab => tab.selected && !tab.disabled);\n const firstEnabledTab = this.items.find(tab => !tab.disabled) as Tab;\n this._selectedTab = selectedTabs.length ? selectedTabs[0] as Tab : (firstEnabledTab || this.items[0] as Tab);\n this._selectedTab._selected = Boolean(selectedTabs.length ? selectedTabs.length : (firstEnabledTab || this.items[0]));\n }\n\n setRealTabToItems() {\n const isMobile = BreakpointUtils.isAtMost(\"S\");\n this.items.forEach((tab, index, arr) => {\n tab._iconWithoutBackground = this.iconWithoutBackground;\n tab._isProcessTab = this.processTab;\n tab._posinset = index + 1;\n tab._setsize = arr.length;\n tab._contentId = this.getContentId(index);\n tab._realTab = this._selectedTab;\n tab._width = this.tabWidth;\n tab._isMobile = isMobile;\n tab._isVertical = this.isVertical;\n });\n }\n\n getContentId(index: number): string {\n return `udex-${index + 1}-content`;\n }\n\n getContentTabIndex(tab: ITab): string {\n if (tab.selected) {\n const focusableSelectors = [\"a[href]\", \"button\", \"textarea\", \"input\", \"select\", \"details\", \"[tabindex]:not([tabindex='-1']\"];\n const focusableElementsUDExTag = this.getAllCustomTags(tab, \"udex\");\n const focusableElementsCustomTag = this.getAllCustomTags(tab, \"ui5\").concat(focusableElementsUDExTag);\n const focusableElements = Array.from(tab.querySelectorAll(focusableSelectors.join(\",\"))).concat(focusableElementsCustomTag);\n return focusableElements.length ? \"-1\" : \"0\";\n }\n return \"-1\";\n }\n\n getAllCustomTags(tab: ITab, prefix: string): Element[] {\n const allElements = tab.querySelectorAll(\"*\");\n return Array.from(allElements).filter(element => element.tagName.toLowerCase().startsWith(prefix.toLowerCase()));\n }\n\n setElementInHeader() {\n this.items.forEach(item => {\n item.getElementInHeader = () => this.getDomRef()!.querySelector(`[id=\"${item.__id!}\"]`);\n });\n }\n\n initOutsideClick() {\n if (this._popover?.open) {\n this.handleOutsideClick();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", () => {\n if (this.getMoreButton()) {\n (this.getMoreButton() as UDExButton).toggled = false;\n }\n });\n }\n\n onTabClick(e: Event) {\n const tab = this.getTab(e.target as HTMLElement);\n if (!tab) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n const selectedTabIndex = (this.items as unknown as Array<Tab>).findIndex(item => item.__id === tab.id);\n\n if (this.items[selectedTabIndex]?.disabled) {\n return;\n }\n\n this._selectedTab = this.items[selectedTabIndex] as Tab;\n this.updateSelectedTab(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n\n if (this.showPlayButton && !this._isPaused) {\n this._startAutoPlay();\n }\n }\n\n getTab(el: HTMLElement | null): Tab | false {\n const tab = el?.closest<Tab>(\"button[role=\\\"tab\\\"]\");\n return tab || false;\n }\n\n updateSelectedTab(selectedTabIndex: number) {\n this.items.forEach((item, index) => {\n item.selected = selectedTabIndex === index;\n\n if (item._selected) {\n item._selected = false;\n }\n });\n this.setTabsIndex(selectedTabIndex);\n this.fireDecoratorEvent(\"tab-select\", { tab: this._selectedTab, tabIndex: selectedTabIndex });\n }\n\n setItemsInHeader() {\n const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef()!);\n\n // Skip overflow logic for vertical tabs - show all tabs\n if (this.isVertical) {\n return;\n }\n\n const tabHeader = this.getTabHeader();\n let allItemsWidth = 0;\n\n if (!this._selectedTab) {\n return;\n }\n\n this.getMoreButton()?.setAttribute(\"hidden\", \"\");\n this.removeHiddenAttributeInAllTabs(itemsDomRefs);\n allItemsWidth += this.getTotalItemsWidth(itemsDomRefs);\n\n const hasOverflow = tabHeader.offsetWidth < allItemsWidth;\n\n if (!hasOverflow) {\n return;\n }\n\n this.getMoreButton()?.removeAttribute(\"hidden\");\n this.hideLastVisibleTab(itemsDomRefs);\n }\n\n getTabHeader(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header-tabs`)!;\n }\n\n removeHiddenAttributeInAllTabs(itemsDomRefs: Array<ITab>) {\n for (let i = 0; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i]?.removeAttribute(\"hidden\");\n }\n }\n\n getTotalItemsWidth(itemsDomRefs: Array<ITab>): number {\n let totalItemsWidth = 0;\n itemsDomRefs.forEach(item => {\n totalItemsWidth += this.getTabWidth(item);\n });\n return totalItemsWidth;\n }\n\n getTabWidth(itemDomRef: HTMLElement): number {\n const percentWidth = this.tabWidth.match(/[^a-zA-Z\\d]+/g)?.join(\"\");\n\n if (this.tabWidth === \"auto\" || percentWidth || !this.tabWidth) {\n return this.getItemWidth(itemDomRef);\n }\n\n const { marginInlineEnd } = this.getItemIndentation(itemDomRef);\n itemDomRef.style.width = this.tabWidth;\n return this.convertToPx(this.tabWidth, this.getButtonFontSize(itemDomRef)) + marginInlineEnd;\n }\n\n getButtonFontSize(itemDomRef: HTMLElement): number {\n const style = window.getComputedStyle(itemDomRef);\n return parseFloat(style.fontSize);\n }\n\n convertToPx(value: string, baseFontSize: number): number {\n const unit = value.match(/[a-zA-Z]+/)?.[0];\n const numericValue = parseFloat(value);\n\n if (unit === \"px\") {\n return numericValue;\n }\n\n return numericValue * baseFontSize;\n }\n\n getItemWidth(itemDomRef: HTMLElement): number {\n const isProcessTab = itemDomRef.classList.contains(\"udex-tab-navigation__button-tab--process\");\n const tabTitle = isProcessTab\n ? (itemDomRef.querySelector<HTMLElement>(\".udex-tab-navigation__button-text\")?.innerText?.trim() ?? itemDomRef.innerText)\n : itemDomRef.innerText;\n const context = this.getItemContext();\n const { indentation, marginInlineEnd } = this.getItemIndentation(itemDomRef);\n // For process tabs the icon container (32px) + gap (8px) is rendered inline before the text block\n const processTabIconOffset = isProcessTab ? 40 : 0;\n const effectiveIndentation = indentation + processTabIconOffset;\n\n if (tabTitle.length > this._maxTitleLength && tabTitle.length <= this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getMaxWidthItemTitle(tabTitle, context, effectiveIndentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n if (tabTitle.length > this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getOverloadMaxWidthItemTitle(tabTitle, context, effectiveIndentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n const textWidth = context.measureText(tabTitle).width;\n return Math.ceil(textWidth) + effectiveIndentation;\n }\n\n private setItemWidth(itemDomRef: HTMLElement, maxWidth: number, marginInlineEnd: number) {\n itemDomRef.style.maxWidth = `${maxWidth - marginInlineEnd}px`;\n }\n\n private getItemContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = \"700 16px '72 Brand Variable'\";\n return context;\n }\n\n private getItemIndentation(itemDomRef: HTMLElement): { indentation: number, marginInlineEnd: number } {\n const styles = window.getComputedStyle(itemDomRef);\n const paddingInlineStart = Number.parseInt(styles.paddingInlineStart);\n const paddingInlineEnd = Number.parseInt(styles.paddingInlineEnd);\n const marginInlineEnd = Number.parseInt(styles.marginInlineEnd);\n const indentation = paddingInlineStart + paddingInlineEnd + marginInlineEnd;\n return { indentation, marginInlineEnd };\n }\n\n private getMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number): number {\n const slicedFirstLineText = tabTitle.slice(0, this._maxTitleLength);\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getOverloadMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number): number {\n const slicedFirstLineText = tabTitle.slice(0, Math.ceil(tabTitle.length / 2));\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getItemTitleWidth(slicedFirstLineText: string, context: CanvasRenderingContext2D, tabTitle: string, indentation: number): number {\n const findLastSpaceIndex = slicedFirstLineText.lastIndexOf(\" \");\n const firstLineText = slicedFirstLineText.slice(0, findLastSpaceIndex);\n const firstLineWidth = Math.ceil(context.measureText(firstLineText).width);\n\n const secondLineText = tabTitle.slice(findLastSpaceIndex, tabTitle.length);\n const secondLineWidth = Math.ceil(context.measureText(secondLineText).width);\n\n return firstLineWidth > secondLineWidth ? firstLineWidth + indentation : secondLineWidth + indentation;\n }\n\n hideLastVisibleTab(itemsDomRefs: Array<ITab>) {\n const selectedTab = this.getRootTab(this._selectedTab);\n const selectedTabDomRef = selectedTab.getTabInHeaderDomRef()!;\n const containerWidth = this.getTabHeader().offsetWidth;\n const selectedItemWidth = this.getSelectedItemWidth(itemsDomRefs, selectedTabDomRef);\n const lastVisibleTabIndex = this.findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemWidth);\n this.hideInappropriateTabs(lastVisibleTabIndex, itemsDomRefs);\n }\n\n getRootTab(tab: Tab): Tab {\n while (tab.hasAttribute(\"udex-tab\")) {\n if (tab.parentElement!.hasAttribute(\"udex-tab-navigation\")) {\n break;\n }\n\n tab = tab.parentElement as Tab;\n }\n\n return tab;\n }\n\n getSelectedItemWidth(itemsDomRefs: Array<ITab>, selectedTabDomRef: ITab): number {\n const index = itemsDomRefs.indexOf(selectedTabDomRef);\n const width = this.getTabWidth(selectedTabDomRef);\n\n itemsDomRefs.splice(index, 1);\n\n return width;\n }\n\n findLastVisibleItem(itemsDomRefs: Array<ITab>, containerWidth: number, selectedItemWidth: number, startIndex = 0): number {\n let lastVisibleIndex = startIndex - 1;\n let index = startIndex;\n\n for (; index < itemsDomRefs.length; index++) {\n const itemWidth = this.getTabWidth(itemsDomRefs[index]);\n\n if (containerWidth < selectedItemWidth + itemWidth) {\n break;\n }\n\n selectedItemWidth += itemWidth;\n lastVisibleIndex = index;\n }\n\n return lastVisibleIndex;\n }\n\n hideInappropriateTabs(lastVisibleTabIndex: number, itemsDomRefs: Array<ITab>) {\n for (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i].setAttribute(\"hidden\", \"\");\n }\n }\n\n setVisibleTabs() {\n this._visibleTabs = this.items\n .filter(tab => !tab.disabled)\n .map(tab => tab.getTabInHeaderDomRef()!)\n .filter(tab => !tab.hasAttribute(\"hidden\"));\n\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this._visibleTabs.push(this.getMoreButton());\n }\n }\n\n applyTabIndex() {\n if (!this.shadowRoot!.contains(document.activeElement)) {\n const itemsDomRefs = this.getRootTab(this._selectedTab);\n const currentIndex = this.items.indexOf(itemsDomRefs);\n\n this.setTabsIndex(currentIndex);\n }\n }\n\n setTabsIndex(currentIndex: number) {\n this.items.forEach((tab, index) => {\n tab._tabIndex = index === currentIndex && !tab.disabled ? \"0\" : \"-1\";\n });\n }\n\n handleOverflowItemClick(e: Event) {\n if ((e.target as HTMLElement).localName === \"button\") {\n const targetId = (e.target as HTMLElement).id;\n const [targetTab] = this.items.filter(item => item.__id === targetId);\n if (!targetTab?.disabled) {\n e.preventDefault();\n this.onItemSelect(targetId);\n }\n }\n this.handleClosePopover();\n }\n\n onItemSelect(selectedId: string) {\n const [selectedTab] = this.items.filter(item => item.__id === selectedId);\n let selectedTabIndex = 0;\n\n this._selectedTab = selectedTab as Tab;\n\n this.items.forEach((item, index) => {\n item.selected = item.__id === selectedId;\n if (item.__id === selectedId) {\n selectedTabIndex = index;\n }\n });\n\n this.setVisibleTabs();\n this.setTabsIndex(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n this.fireDecoratorEvent(\"tab-select\", { tab: this._selectedTab, tabIndex: selectedTabIndex });\n }\n\n getMoreButton(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-tab-navigation__button-more\")!;\n }\n\n getHeader(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header`)!;\n }\n\n handleMoreButton(e: Event) {\n e.stopPropagation();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleTogglePopover();\n }\n\n updateOverflowItems() {\n this._overflowItems = this.items.filter(item => {\n const headerRef = item.getTabInHeaderDomRef();\n return headerRef && headerRef.hasAttribute(\"hidden\");\n });\n }\n\n handleTogglePopover() {\n if (this._popover?.open) {\n this.handleClosePopover();\n } else {\n this.handleOpenPopover();\n }\n }\n\n handleClosePopover() {\n if (this._popover?.open) {\n this._popover.open = false;\n (this.getMoreButton() as UDExButton).toggled = false;\n this._isExpanded = false;\n }\n }\n\n handleOpenPopover() {\n if (!this._popover?.open) {\n this._popover!.opener = this.getMoreButton();\n this._popover!.open = true;\n (this.getMoreButton() as UDExButton).toggled = true;\n this._isExpanded = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (this.isHorizontal) {\n this.handleRightArrow(e);\n this.handleLeftArrow(e);\n } else {\n this.handleDownArrow(e);\n this.handleUpArrow(e);\n }\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n getTabIndexById(id: string): number {\n return this._visibleTabs!.findIndex(tab => tab.id === id);\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusPreviousItem(e.target as HTMLElement);\n }\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n // For horizontal tabs, right arrow always moves focus to the next tab\n this.onFocusNextItem(e.target as HTMLElement);\n }\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusPreviousItem(e.target as HTMLElement);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n this.onFocusNextItem(e.target as HTMLElement);\n }\n }\n\n onFocusPreviousItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length - 1;\n const previousSelectIndex = previousSelectedIndex - 1 < 0 ? lastIndex : previousSelectedIndex - 1;\n\n this._visibleTabs![previousSelectIndex].focus();\n }\n\n onFocusNextItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length;\n const nextSelectIndex = previousSelectedIndex + 1 < lastIndex ? previousSelectedIndex + 1 : 0;\n\n this._visibleTabs![nextSelectIndex].focus();\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n this.onEndKey();\n }\n }\n\n onEndKey() {\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this.getMoreButton().focus();\n } else {\n const lastVisibleTab = this._visibleTabs!.length - 1;\n this._visibleTabs![lastVisibleTab].focus();\n }\n }\n\n handleFocusMoreButton(e: KeyboardEvent) {\n this.handleDownMoreButton(e);\n this.handleHomeKeyMoreButton(e);\n this.handleEnterKeyMoreButton(e);\n }\n\n handleHomeKeyMoreButton(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n e.stopPropagation();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEnterKeyMoreButton(e: KeyboardEvent) {\n if (isEnter(e)) {\n e.preventDefault();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleOpenPopover();\n }\n }\n\n handleDownMoreButton(e: KeyboardEvent) {\n if (isDown(e) || isEnter(e)) {\n this._popover = this.getResponsePopover();\n this.handleOpenPopover();\n this.updateOverflowItems();\n }\n }\n\n onFocusFirstItemPopover() {\n if (this._popover?.open) {\n const popoverItems = this.getItemsFromPopover();\n const firstPopoverItem = popoverItems[0];\n firstPopoverItem.setAttribute(\"tabindex\", \"0\");\n firstPopoverItem.focus();\n }\n }\n\n handleFocusPopover(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleUp(e);\n this.handleDown(e);\n this.handleEnterOrSpace(e);\n this.handleEscape(e);\n this.handleHome(e);\n this.handleEnd(e);\n this.handleTab(e);\n }\n\n handleTab(e: KeyboardEvent): void {\n if (isTabNext(e) || isTabPrevious(e)) {\n this.handleClosePopover();\n }\n }\n\n handleUp(e: KeyboardEvent) {\n if (isUp(e)) {\n this.onPreviousItemInPopover(e.target as HTMLElement);\n }\n }\n\n onPreviousItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const previousSelectIndex = currentSelectedTabIndex - 1 < 0 ? popoverItems.length - 1 : currentSelectedTabIndex - 1;\n const prevItem = popoverItems[previousSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n prevItem.setAttribute(\"tabIndex\", \"0\");\n prevItem.focus();\n }\n\n onNextItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;\n const nextItem = popoverItems[nextSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n nextItem.setAttribute(\"tabIndex\", \"0\");\n nextItem.focus();\n }\n\n resetTabIndexItem(item: HTMLElement): void {\n item.setAttribute(\"tabIndex\", \"-1\");\n }\n\n getItemsFromPopover(): Array<HTMLElement> {\n const responsivePopover = this.getResponsePopover();\n const [contentFromPopover] = responsivePopover.content;\n return Array.from(contentFromPopover.children) as Array<HTMLElement>;\n }\n\n getPopoverTabIndexById(popoverItems: Array<HTMLElement>, id: string): number {\n return popoverItems.findIndex(tab => tab.id === id);\n }\n\n handleDown(e: KeyboardEvent) {\n if (isDown(e)) {\n this.onNextItemInPopover(e.target as HTMLElement);\n }\n }\n\n handleEnterOrSpace(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n const targetId = (e.target as HTMLElement).id;\n const [targetTab] = this.items.filter(item => item.__id === targetId);\n if (!targetTab?.disabled) {\n this.onItemSelect(targetId);\n this.handleClosePopover();\n }\n }\n }\n\n handleEscape(e: KeyboardEvent) {\n if (isEscape(e)) {\n e.preventDefault();\n this.handleClosePopover();\n this._visibleTabs![this._visibleTabs!.length - 1].focus();\n }\n }\n\n handleHome(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[0].focus();\n }\n }\n\n handleEnd(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n e.stopPropagation();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[popoverItems.length - 1].focus();\n }\n }\n\n getResponsePopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n get isHorizontal(): boolean {\n return this.orientation === UDExTabNavigationOrientation.Horizontal;\n }\n\n get isVertical(): boolean {\n return this.orientation === UDExTabNavigationOrientation.Vertical;\n }\n\n get ariaOrientationValue(): string {\n return this.isVertical ? \"vertical\" : \"horizontal\";\n }\n\n get isDesktop(): boolean {\n return isDesktop();\n }\n\n get moreButtonText(): string {\n return translate(UDExTabNavigation, MORE);\n }\n\n static registerStaticAreaTabStyles(styles: StyleData) {\n staticAreaTabStyles.push(styles);\n }\n\n static get tabNavigationPopoverTemplate() {\n return TabNavigationPopoverTemplate;\n }\n\n get tabNavigationPopover() {\n return executeTemplate(UDExTabNavigation.tabNavigationPopoverTemplate, this);\n }\n\n applyTabWidthToVerticalTabs(): void {\n if (this.isVertical && this.tabWidth && this.tabWidth !== \"auto\") {\n this.style.setProperty(\"--udex-tab-header-width\", this.tabWidth);\n }\n }\n\n updateMobileState(): void {\n const isMobile = BreakpointUtils.isAtMost(\"S\");\n this.items.forEach(tab => {\n tab._isMobile = isMobile;\n });\n }\n\n _startAutoPlay(): void {\n this._stopAutoPlay();\n this._isPaused = false;\n this._autoPlayTimer = window.setInterval(() => {\n this._advanceTab();\n }, this.autoPlayInterval);\n }\n\n _stopAutoPlay(): void {\n if (this._autoPlayTimer !== undefined) {\n window.clearInterval(this._autoPlayTimer);\n this._autoPlayTimer = undefined;\n }\n }\n\n _advanceTab(): void {\n const enabledItems = (this.items as unknown as Array<Tab>).filter(item => !item.disabled);\n if (enabledItems.length === 0) {\n return;\n }\n const currentEnabledIndex = enabledItems.findIndex(item => item === this._selectedTab);\n const nextEnabledIndex = (currentEnabledIndex + 1) % enabledItems.length;\n const nextTab = enabledItems[nextEnabledIndex];\n const nextIndex = (this.items as unknown as Array<Tab>).indexOf(nextTab);\n this._selectedTab = nextTab;\n this.updateSelectedTab(nextIndex);\n this.emitClickEvent(nextIndex + 1);\n }\n\n onPlayButtonClick(): void {\n if (this._isPaused) {\n this._startAutoPlay();\n } else {\n this._stopAutoPlay();\n this._isPaused = true;\n }\n }\n\n get showPlayButton(): boolean {\n return this.isVertical && this.autoPlay;\n }\n\n get showFooterSlot(): boolean {\n return this.isVertical && this.footer?.length > 0;\n }\n\n get playBtnIcon(): string {\n return this._isPaused ? \"play\" : \"pause\";\n }\n\n get playBtnTooltipText(): string {\n return this._isPaused\n ? translate(UDExTabNavigation, PLAY_BUTTON_ACCESSIBLE_NAME)\n : translate(UDExTabNavigation, PAUSE_BUTTON_ACCESSIBLE_NAME);\n }\n}\n\nUDExTabNavigation.define();\n\nexport default UDExTabNavigation;\nexport type { UDExTabNavigationClickDetail, UDExTabContainerTabSelectEventDetail };\n"]}
1
+ {"version":3,"file":"TabNavigation.js","sourceRoot":"","sources":["../src/TabNavigation.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAErF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,OAAO,eAAe,MAAM,0DAA0D,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EACL,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,GACnG,MAAM,sCAAsC,CAAC;AAG9C,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,wDAAwD,CAAC;AAChE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,uCAAuC,CAAC;AAC/C,OAAO,wCAAwC,CAAC;AAChD,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD,YAAY;AACZ,OAAO,qBAAqB,MAAM,oDAAoD,CAAC;AACvF,OAAO,4BAA4B,MAAM,2DAA2D,CAAC;AAErG,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AACvE,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AACvE,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,MAAM,mBAAmB,GAAqB,EAAE,CAAC;AAEjD,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,uCAAiB,CAAA;AACnB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAN,IAAY,IAGX;AAHD,WAAY,IAAI;IACd,uBAAe,CAAA;IACf,qBAAa,CAAA;AACf,CAAC,EAHW,IAAI,KAAJ,IAAI,QAGf;AAED,MAAM,CAAN,IAAY,4BAGX;AAHD,WAAY,4BAA4B;IACtC,yDAAyB,CAAA;IACzB,qDAAqB,CAAA;AACvB,CAAC,EAHW,4BAA4B,KAA5B,4BAA4B,QAGvC;AAED,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,6CAAe,CAAA;IACf,yCAAW,CAAA;AACb,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAED,MAAM,CAAN,IAAY,kCAGX;AAHD,WAAY,kCAAkC;IAC5C,iDAAW,CAAA;IACX,uDAAiB,CAAA;AACnB,CAAC,EAHW,kCAAkC,KAAlC,kCAAkC,QAG7C;AAWD;;;;;;;;;;;;;;;;;GAiBG;AAyBH,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAuKxC;QACE,KAAK,EAAE,CAAC;QAnKV;;;;;UAKE;QAEA,mBAAc,GAAwB,cAAc,CAAC,MAAM,CAAC;QAE9D;;;;;WAKG;QAED,SAAI,GAAc,IAAI,CAAC,KAAK,CAAC;QAE/B;;;;;;WAMG;QAED,gBAAW,GAAsC,4BAA4B,CAAC,UAAU,CAAC;QAE3F;;;;;;;WAOG;QAED,cAAS,GAAoC,0BAA0B,CAAC,KAAK,CAAC;QAEhF;;;;;;;WAOG;QAED,sBAAiB,GAA4C,kCAAkC,CAAC,GAAG,CAAC;QAEtG;;;;;;WAMG;QAED,aAAQ,GAAY,KAAK,CAAC;QAE5B;;;;;;;WAOG;QAED,qBAAgB,GAAW,IAAI,CAAC;QAElC;;;;WAIG;QAED,cAAS,GAAY,KAAK,CAAC;QAW7B;;;;;;WAMG;QAED,eAAU,GAAY,KAAK,CAAC;QAG5B,aAAQ,GAAW,MAAM,CAAC;QA0D5B,gBAAW,GAAY,KAAK,CAAC;QAC7B,oBAAe,GAAW,EAAE,CAAC;QAC7B,iCAA4B,GAAW,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAK9D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,UAAU;QACR,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACjE,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO,CAAC;YAC3F,IAAI,oBAAoB,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS;QACP,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACpE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7E,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAQ,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAQ,CAAC,CAAC;QAC7G,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxH,CAAC;IAED,iBAAiB;QACf,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACrC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACxD,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;YACpC,GAAG,CAAC,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;YAC1B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;YACjC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3B,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;YACzB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,OAAO,QAAQ,KAAK,GAAG,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,kBAAkB,CAAC,GAAS;QAC1B,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gCAAgC,CAAC,CAAC;YAC7H,MAAM,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACpE,MAAM,0BAA0B,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;YACtG,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC5H,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,GAAS,EAAE,MAAc;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAG,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAK,IAAI,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACtC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,EAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,CAAQ;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QAED,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,MAAM,gBAAgB,GAAI,IAAI,CAAC,KAA+B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAEvG,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAQ,CAAC;QACxD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,EAAsB;QAC3B,MAAM,GAAG,GAAG,EAAE,EAAE,OAAO,CAAM,sBAAsB,CAAC,CAAC;QACrD,OAAO,GAAG,IAAI,KAAK,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,gBAAwB;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,KAAK,KAAK,CAAC;YAE3C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,gBAAgB;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAG,CAAC,CAAC;QAE1E,wDAAwD;QACxD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC;QAClD,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,GAAG,aAAa,CAAC;QAE1D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,IAAI,IAAI,CAAC,IAAK,cAAc,CAAE,CAAC;IACpF,CAAC;IAED,8BAA8B,CAAC,YAAyB;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,YAAyB;QAC1C,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,UAAuB;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAChE,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,GAAG,eAAe,CAAC;IAC/F,CAAC;IAED,iBAAiB,CAAC,UAAuB;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,YAAoB;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,UAAuB;QAClC,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QAC/F,MAAM,QAAQ,GAAG,YAAY;YAC3B,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAc,mCAAmC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACzH,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC7E,kGAAkG;QAClG,MAAM,oBAAoB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,oBAAoB,GAAG,WAAW,GAAG,oBAAoB,CAAC;QAEhE,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAEpF,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;YAEzD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAE5F,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;YAEzD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,oBAAoB,CAAC;IACrD,CAAC;IAEO,YAAY,CAAC,UAAuB,EAAE,QAAgB,EAAE,eAAuB;QACrF,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,QAAQ,GAAG,eAAe,IAAI,CAAC;IAChE,CAAC;IAEO,cAAc;QACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;QACzC,OAAO,CAAC,IAAI,GAAG,8BAA8B,CAAC;QAC9C,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,kBAAkB,CAAC,UAAuB;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,eAAe,CAAC;QAC5E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IAC1C,CAAC;IAEO,oBAAoB,CAAC,QAAgB,EAAE,OAAiC,EAAE,WAAmB;QACnG,MAAM,mBAAmB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IAEO,4BAA4B,CAAC,QAAgB,EAAE,OAAiC,EAAE,WAAmB;QAC3G,MAAM,mBAAmB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IAEO,iBAAiB,CAAC,mBAA2B,EAAE,OAAiC,EAAE,QAAgB,EAAE,WAAmB;QAC7H,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;QAE3E,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC;QAE7E,OAAO,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,eAAe,GAAG,WAAW,CAAC;IACzG,CAAC;IAED,kBAAkB,CAAC,YAAyB;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,WAAW,CAAC,oBAAoB,EAAG,CAAC;QAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;QACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACrF,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACtG,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAChE,CAAC;IAED,UAAU,CAAC,GAAQ;QACjB,OAAO,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,aAAc,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC3D,MAAM;YACR,CAAC;YAED,GAAG,GAAG,GAAG,CAAC,aAAoB,CAAC;QACjC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,oBAAoB,CAAC,YAAyB,EAAE,iBAAuB;QACrE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAElD,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB,CAAC,YAAyB,EAAE,cAAsB,EAAE,iBAAyB,EAAE,UAAU,GAAG,CAAC;QAC9G,IAAI,gBAAgB,GAAG,UAAU,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,UAAU,CAAC;QAEvB,OAAO,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAExD,IAAI,cAAc,GAAG,iBAAiB,GAAG,SAAS,EAAE,CAAC;gBACnD,MAAM;YACR,CAAC;YAED,iBAAiB,IAAI,SAAS,CAAC;YAC/B,gBAAgB,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,qBAAqB,CAAC,mBAA2B,EAAE,YAAyB;QAC1E,KAAK,IAAI,CAAC,GAAG,mBAAmB,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;aAC3B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;aAC5B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,oBAAoB,EAAG,CAAC;aACvC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEtD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,YAAY,CAAC,YAAoB;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAChC,GAAG,CAAC,SAAS,GAAG,KAAK,KAAK,YAAY,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CAAC,CAAQ;QAC9B,IAAK,CAAC,CAAC,MAAsB,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAI,CAAC,CAAC,MAAsB,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;gBACzB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,UAAkB;QAC7B,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC1E,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,YAAY,GAAG,WAAkB,CAAC;QAEvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;YACzC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7B,gBAAgB,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,mCAAmC,CAAE,CAAC;IAC3F,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,IAAI,IAAI,CAAC,IAAK,SAAS,CAAE,CAAC;IAC/E,CAAC;IAED,gBAAgB,CAAC,CAAQ;QACvB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9C,OAAO,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,aAAa,EAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,QAAS,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAS,CAAC,IAAI,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,aAAa,EAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,eAAe,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,YAAa,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,sEAAsE;YACtE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YAEpB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,MAAmB;QACrC,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,MAAM,mBAAmB,GAAG,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAElG,IAAI,CAAC,YAAa,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,eAAe,CAAC,MAAmB;QACjC,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAa,CAAC,MAAM,CAAC;QAC5C,MAAM,eAAe,GAAG,qBAAqB,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9F,IAAI,CAAC,YAAa,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,YAAY,CAAC,CAAgB;QAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAG,IAAI,CAAC,YAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YACrD,IAAI,CAAC,YAAa,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,CAAgB;QACpC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,uBAAuB,CAAC,CAAgB;QACtC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,wBAAwB,CAAC,CAAgB;QACvC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,CAAgB;QACnC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,uBAAuB;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAChD,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,gBAAgB,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC/C,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,CAAgB;QACjC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,SAAS,CAAC,CAAgB;QACxB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,CAAgB;QACvB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,MAAmB;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChD,MAAM,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACrF,MAAM,mBAAmB,GAAG,uBAAuB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACpH,MAAM,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAEnD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,mBAAmB,CAAC,MAAmB;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChD,MAAM,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACrF,MAAM,eAAe,GAAG,uBAAuB,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,GAAG,CAAC,CAAC;QAChH,MAAM,QAAQ,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QAE/C,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,iBAAiB,CAAC,IAAiB;QACjC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,mBAAmB;QACjB,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC;QACvD,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAuB,CAAC;IACvE,CAAC;IAED,sBAAsB,CAAC,YAAgC,EAAE,EAAU;QACjE,OAAO,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,CAAgB;QACjC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAI,CAAC,CAAC,MAAsB,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,CAAgB;QAC3B,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAa,CAAC,IAAI,CAAC,YAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAChD,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,SAAS,CAAC,CAAgB;QACxB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAChD,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAU,eAAe,CAAE,CAAC;IACnE,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,WAAW,KAAK,4BAA4B,CAAC,UAAU,CAAC;IACtE,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,KAAK,4BAA4B,CAAC,QAAQ,CAAC;IACpE,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IACrD,CAAC;IAED,IAAI,SAAS;QACX,OAAO,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,SAAS,CAAC,mBAAiB,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAC,MAAiB;QAClD,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,4BAA4B;QACrC,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,eAAe,CAAC,mBAAiB,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,2BAA2B;QACzB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;IAED,WAAW;QACT,MAAM,YAAY,GAAI,IAAI,CAAC,KAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1F,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,mBAAmB,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC;QACvF,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QACzE,MAAM,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAI,IAAI,CAAC,KAA+B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3C,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,SAAS;YACnB,CAAC,CAAC,SAAS,CAAC,mBAAiB,EAAE,2BAA2B,CAAC;YAC3D,CAAC,CAAC,SAAS,CAAC,mBAAiB,EAAE,4BAA4B,CAAC,CAAC;IACjE,CAAC;CACF,CAAA;AAh9BG;IADD,QAAQ,EAAE;yDACmD;AAS5D;IADD,QAAQ,EAAE;+CACoB;AAU7B;IADD,QAAQ,EAAE;sDACgF;AAWzF;IADD,QAAQ,EAAE;oDACqE;AAW9E;IADD,QAAQ,EAAE;4DAC2F;AAUpG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACA;AAW1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DACO;AAQhC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;oDAClB;AAS3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gEACM;AAUhC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qDACE;AAG5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDACC;AAQ1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACN;AAQnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;iDAC5B;AAQhB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACI;AAc7B;IAND,IAAI,CAAC;QACJ,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,uBAAuB,EAAE,IAAI;KAC9B,CAAC;gDAC0B;AAW1B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;iDACC;AAGtB;IADN,IAAI,CAAC,yBAAyB,CAAC;2CACF;AA5J1B,iBAAiB;IAxBtB,aAAa,CAAC;QACb,GAAG,EAAE,qBAAqB;QAC1B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QAC5C,QAAQ,EAAE,qBAAqB;QAC/B,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC;KAC1C,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClC;;;;;;OAMG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAEjC,iBAAiB,CA49BtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { StyleData } from \"@ui5/webcomponents-base/dist/types.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isUp, isDown, isRight, isLeft, isEnter, isSpace, isEscape, isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { ITab } from \"./Tab.js\";\nimport type Tab from \"./Tab.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MORE, PLAY_BUTTON_ACCESSIBLE_NAME, PAUSE_BUTTON_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/play.js\";\nimport \"@ui5/webcomponents-icons/dist/pause.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\n\n// Templates\nimport TabNavigationTemplate from \"./generated/templates/TabNavigationTemplate.lit.js\";\nimport TabNavigationPopoverTemplate from \"./generated/templates/TabNavigationPopoverTemplate.lit.js\";\n\n// Styles\nimport TabNavigationCss from \"./generated/themes/TabNavigation.css.js\";\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\nimport translate from \"./utils/translate.js\";\n\nconst staticAreaTabStyles: Array<StyleData> = [];\n\nexport enum UDExSizeMoreButton {\n Small = \"Small\",\n Medium = \"Medium\",\n}\n\nexport enum Mode {\n Light = \"Light\",\n Dark = \"Dark\",\n}\n\nexport enum UDExTabNavigationOrientation {\n Horizontal = \"Horizontal\",\n Vertical = \"Vertical\",\n}\n\nexport enum UDExTabNavigationPlacement {\n Start = \"Start\",\n End = \"End\",\n}\n\nexport enum UDExTabNavigationVerticalAlignment {\n Top = \"Top\",\n Center = \"Center\",\n}\n\ntype UDExTabNavigationClickDetail = {\n currentPage: number\n}\n\ntype UDExTabContainerTabSelectEventDetail = {\n tab: Tab,\n tabIndex: number\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/TabNavigation.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab-navigation\n * @public\n */\n@customElement({\n tag: \"udex-tab-navigation\",\n renderer: litRender,\n styles: [TabNavigationCss, TabInOverflowCss],\n template: TabNavigationTemplate,\n dependencies: [Popover, Icon, UDExButton],\n})\n\n/**\n * Fires when the tab was clicked.\n *\n * @public\n * @param {number} currentPage The current selected tab index.\n */\n@event(\"click\", { bubbles: true })\n/**\n * Fired when a tab is selected.\n *\n * @public\n * @param {Tab} tab The selected tab.\n * @param {number} tabIndex The index of the selected tab.\n */\n@event(\"tab-select\", { bubbles: true })\n\nclass UDExTabNavigation extends UI5Element {\n eventDetails!: {\n \"click\": UDExTabNavigationClickDetail,\n \"tab-select\": UDExTabContainerTabSelectEventDetail,\n };\n /**\n * Defines the size of the \"More\" button.\n *\n * @public\n * @default \"Medium\"\n */\n @property()\n sizeMoreButton: `${UDExButtonSize}` = UDExButtonSize.Medium;\n\n /**\n * Defines the mode of the component.\n *\n * @public\n * @default \"Light\"\n */\n @property()\n mode: `${Mode}` = Mode.Light;\n\n /**\n * Defines the orientation of the tab navigation.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. Only `Horizontal` orientation should be used.\n * @public\n * @default \"Horizontal\"\n */\n @property()\n orientation: `${UDExTabNavigationOrientation}` = UDExTabNavigationOrientation.Horizontal;\n\n /**\n * Defines the placement of the tab strip relative to the content area.\n * Applies to Vertical orientation only.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default \"Start\"\n */\n @property()\n placement: `${UDExTabNavigationPlacement}` = UDExTabNavigationPlacement.Start;\n\n /**\n * Defines the vertical alignment of the tab strip relative to the content area.\n * Applies to Vertical orientation only.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default \"Top\"\n */\n @property()\n verticalAlignment: `${UDExTabNavigationVerticalAlignment}` = UDExTabNavigationVerticalAlignment.Top;\n\n /**\n * Enables automatic tab switching for Vertical orientation.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default false\n */\n @property({ type: Boolean })\n autoPlay: boolean = false;\n\n /**\n * Defines the interval in milliseconds between automatic tab switches.\n * Applies only when autoPlay is enabled.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation with autoPlay.\n * @public\n * @default 5000\n */\n @property({ type: Number })\n autoPlayInterval: number = 5000;\n\n /**\n * Indicates whether the auto-play is paused.\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _isPaused: boolean = false;\n\n /**\n * !DEPRECATED! Defines the background color of the component.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconWithoutBackground!: boolean;\n\n /**\n * Enables the Process Tab variant, where each tab displays an icon\n * alongside an optional item count text above the label.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n processTab: boolean = false;\n\n @property({ type: String })\n tabWidth: string = \"auto\";\n\n /**\n * Defines selected tab.\n *\n * @private\n */\n @property({ type: Object })\n _selectedTab!: Tab;\n\n /**\n * Defines the width of component.\n *\n * @private\n */\n @property({ type: Number, noAttribute: true })\n _width?: number;\n\n /**\n * Defines the overflow items.\n *\n * @private\n */\n @property({ type: Object })\n _overflowItems!: Array<ITab>;\n\n /**\n * Defines the tabs and content.\n *\n * @slot items\n * @public\n */\n @slot({\n type: HTMLElement,\n \"default\": true,\n individualSlots: true,\n invalidateOnChildChange: true,\n })\n items!: DefaultSlot<ITab>;\n\n /**\n * Defines optional content rendered below the tab list in Vertical orientation.\n * Use to place a button or any action element beneath the tabs.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This slot only applies to Vertical orientation.\n * @slot footer\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Slot<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: () => void;\n _handleWindowResizeBound: () => void;\n _popover?: Popover;\n _visibleTabs?: Array<ITab | HTMLElement>;\n _isExpanded: boolean = false;\n _maxTitleLength: number = 25;\n _maxTitleLengthInSecondLines: number = this._maxTitleLength * 2;\n _autoPlayTimer?: number;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n this._handleWindowResizeBound = this._handleWindowResize.bind(this);\n }\n\n onAfterRendering(): void {\n if (this.items.length) {\n this.setItemsInHeader();\n this.setVisibleTabs();\n this.applyTabIndex();\n } else {\n console.warn(\"You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.\");\n }\n this.initOutsideClick();\n this.applyTabWidthToVerticalTabs();\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this.getHeader(), this._handleResizeBound);\n window.addEventListener(\"resize\", this._handleWindowResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.showPlayButton) {\n const prefersReducedMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n if (prefersReducedMotion) {\n this._isPaused = true;\n } else {\n this._startAutoPlay();\n }\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this.getHeader(), this._handleResizeBound);\n window.removeEventListener(\"resize\", this._handleWindowResizeBound);\n this._stopAutoPlay();\n }\n\n _handleWindowResize() {\n this.updateMobileState();\n }\n\n _handleResize() {\n this.handleClosePopover();\n this._width = this.offsetWidth;\n this.updateMobileState();\n }\n\n emitClickEvent(pageIndex: number) {\n this.fireDecoratorEvent(\"click\", { currentPage: pageIndex });\n }\n\n onBeforeRendering(): void {\n this.updateOverflowItems();\n this.setSelectedTab();\n this.updateMobileState();\n }\n\n setSelectedTab() {\n if (!this.items.length) {\n return;\n }\n\n this.resetSelectedTabs();\n this.setCurrentSelectedTab();\n this.setRealTabToItems();\n this.setElementInHeader();\n }\n\n resetSelectedTabs() {\n this.items.forEach(tab => {\n tab._selected = false;\n });\n }\n\n setCurrentSelectedTab() {\n const selectedTabs = this.items.filter(tab => tab.selected && !tab.disabled);\n const firstEnabledTab = this.items.find(tab => !tab.disabled) as Tab;\n this._selectedTab = selectedTabs.length ? selectedTabs[0] as Tab : (firstEnabledTab || this.items[0] as Tab);\n this._selectedTab._selected = Boolean(selectedTabs.length ? selectedTabs.length : (firstEnabledTab || this.items[0]));\n }\n\n setRealTabToItems() {\n const isMobile = BreakpointUtils.isAtMost(\"S\");\n this.items.forEach((tab, index, arr) => {\n tab._iconWithoutBackground = this.iconWithoutBackground;\n tab._isProcessTab = this.processTab;\n tab._posinset = index + 1;\n tab._setsize = arr.length;\n tab._contentId = this.getContentId(index);\n tab._realTab = this._selectedTab;\n tab._width = this.tabWidth;\n tab._isMobile = isMobile;\n tab._isVertical = this.isVertical;\n });\n }\n\n getContentId(index: number): string {\n return `udex-${index + 1}-content`;\n }\n\n getContentTabIndex(tab: ITab): string {\n if (tab.selected) {\n const focusableSelectors = [\"a[href]\", \"button\", \"textarea\", \"input\", \"select\", \"details\", \"[tabindex]:not([tabindex='-1']\"];\n const focusableElementsUDExTag = this.getAllCustomTags(tab, \"udex\");\n const focusableElementsCustomTag = this.getAllCustomTags(tab, \"ui5\").concat(focusableElementsUDExTag);\n const focusableElements = Array.from(tab.querySelectorAll(focusableSelectors.join(\",\"))).concat(focusableElementsCustomTag);\n return focusableElements.length ? \"-1\" : \"0\";\n }\n return \"-1\";\n }\n\n getAllCustomTags(tab: ITab, prefix: string): Element[] {\n const allElements = tab.querySelectorAll(\"*\");\n return Array.from(allElements).filter(element => element.tagName.toLowerCase().startsWith(prefix.toLowerCase()));\n }\n\n setElementInHeader() {\n this.items.forEach(item => {\n item.getElementInHeader = () => this.getDomRef()!.querySelector(`[id=\"${item.__id!}\"]`);\n });\n }\n\n initOutsideClick() {\n if (this._popover?.open) {\n this.handleOutsideClick();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", () => {\n if (this.getMoreButton()) {\n (this.getMoreButton() as UDExButton).toggled = false;\n }\n });\n }\n\n onTabClick(e: Event) {\n const tab = this.getTab(e.target as HTMLElement);\n if (!tab) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n const selectedTabIndex = (this.items as unknown as Array<Tab>).findIndex(item => item.__id === tab.id);\n\n if (this.items[selectedTabIndex]?.disabled) {\n return;\n }\n\n this._selectedTab = this.items[selectedTabIndex] as Tab;\n this.updateSelectedTab(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n\n if (this.showPlayButton && !this._isPaused) {\n this._startAutoPlay();\n }\n }\n\n getTab(el: HTMLElement | null): Tab | false {\n const tab = el?.closest<Tab>(\"button[role=\\\"tab\\\"]\");\n return tab || false;\n }\n\n updateSelectedTab(selectedTabIndex: number) {\n this.items.forEach((item, index) => {\n item.selected = selectedTabIndex === index;\n\n if (item._selected) {\n item._selected = false;\n }\n });\n this.setTabsIndex(selectedTabIndex);\n this.fireDecoratorEvent(\"tab-select\", { tab: this._selectedTab, tabIndex: selectedTabIndex });\n }\n\n setItemsInHeader() {\n const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef()!);\n\n // Skip overflow logic for vertical tabs - show all tabs\n if (this.isVertical) {\n return;\n }\n\n const tabHeader = this.getTabHeader();\n let allItemsWidth = 0;\n\n if (!this._selectedTab) {\n return;\n }\n\n this.getMoreButton()?.setAttribute(\"hidden\", \"\");\n this.removeHiddenAttributeInAllTabs(itemsDomRefs);\n allItemsWidth += this.getTotalItemsWidth(itemsDomRefs);\n\n const hasOverflow = tabHeader.offsetWidth < allItemsWidth;\n\n if (!hasOverflow) {\n return;\n }\n\n this.getMoreButton()?.removeAttribute(\"hidden\");\n this.hideLastVisibleTab(itemsDomRefs);\n }\n\n getTabHeader(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header-tabs`)!;\n }\n\n removeHiddenAttributeInAllTabs(itemsDomRefs: Array<ITab>) {\n for (let i = 0; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i]?.removeAttribute(\"hidden\");\n }\n }\n\n getTotalItemsWidth(itemsDomRefs: Array<ITab>): number {\n let totalItemsWidth = 0;\n itemsDomRefs.forEach(item => {\n totalItemsWidth += this.getTabWidth(item);\n });\n return totalItemsWidth;\n }\n\n getTabWidth(itemDomRef: HTMLElement): number {\n const percentWidth = this.tabWidth.match(/[^a-zA-Z\\d]+/g)?.join(\"\");\n\n if (this.tabWidth === \"auto\" || percentWidth || !this.tabWidth) {\n return this.getItemWidth(itemDomRef);\n }\n\n const { marginInlineEnd } = this.getItemIndentation(itemDomRef);\n itemDomRef.style.width = this.tabWidth;\n return this.convertToPx(this.tabWidth, this.getButtonFontSize(itemDomRef)) + marginInlineEnd;\n }\n\n getButtonFontSize(itemDomRef: HTMLElement): number {\n const style = window.getComputedStyle(itemDomRef);\n return parseFloat(style.fontSize);\n }\n\n convertToPx(value: string, baseFontSize: number): number {\n const unit = value.match(/[a-zA-Z]+/)?.[0];\n const numericValue = parseFloat(value);\n\n if (unit === \"px\") {\n return numericValue;\n }\n\n return numericValue * baseFontSize;\n }\n\n getItemWidth(itemDomRef: HTMLElement): number {\n const isProcessTab = itemDomRef.classList.contains(\"udex-tab-navigation__button-tab--process\");\n const tabTitle = isProcessTab\n ? (itemDomRef.querySelector<HTMLElement>(\".udex-tab-navigation__button-text\")?.innerText?.trim() ?? itemDomRef.innerText)\n : itemDomRef.innerText;\n const context = this.getItemContext();\n const { indentation, marginInlineEnd } = this.getItemIndentation(itemDomRef);\n // For process tabs the icon container (32px) + gap (8px) is rendered inline before the text block\n const processTabIconOffset = isProcessTab ? 40 : 0;\n const effectiveIndentation = indentation + processTabIconOffset;\n\n if (tabTitle.length > this._maxTitleLength && tabTitle.length <= this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getMaxWidthItemTitle(tabTitle, context, effectiveIndentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n if (tabTitle.length > this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getOverloadMaxWidthItemTitle(tabTitle, context, effectiveIndentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n const textWidth = context.measureText(tabTitle).width;\n return Math.ceil(textWidth) + effectiveIndentation;\n }\n\n private setItemWidth(itemDomRef: HTMLElement, maxWidth: number, marginInlineEnd: number) {\n itemDomRef.style.maxWidth = `${maxWidth - marginInlineEnd}px`;\n }\n\n private getItemContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = \"700 16px '72 Brand Variable'\";\n return context;\n }\n\n private getItemIndentation(itemDomRef: HTMLElement): { indentation: number, marginInlineEnd: number } {\n const styles = window.getComputedStyle(itemDomRef);\n const paddingInlineStart = Number.parseInt(styles.paddingInlineStart);\n const paddingInlineEnd = Number.parseInt(styles.paddingInlineEnd);\n const marginInlineEnd = Number.parseInt(styles.marginInlineEnd);\n const indentation = paddingInlineStart + paddingInlineEnd + marginInlineEnd;\n return { indentation, marginInlineEnd };\n }\n\n private getMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number): number {\n const slicedFirstLineText = tabTitle.slice(0, this._maxTitleLength);\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getOverloadMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number): number {\n const slicedFirstLineText = tabTitle.slice(0, Math.ceil(tabTitle.length / 2));\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getItemTitleWidth(slicedFirstLineText: string, context: CanvasRenderingContext2D, tabTitle: string, indentation: number): number {\n const findLastSpaceIndex = slicedFirstLineText.lastIndexOf(\" \");\n const firstLineText = slicedFirstLineText.slice(0, findLastSpaceIndex);\n const firstLineWidth = Math.ceil(context.measureText(firstLineText).width);\n\n const secondLineText = tabTitle.slice(findLastSpaceIndex, tabTitle.length);\n const secondLineWidth = Math.ceil(context.measureText(secondLineText).width);\n\n return firstLineWidth > secondLineWidth ? firstLineWidth + indentation : secondLineWidth + indentation;\n }\n\n hideLastVisibleTab(itemsDomRefs: Array<ITab>) {\n const selectedTab = this.getRootTab(this._selectedTab);\n const selectedTabDomRef = selectedTab.getTabInHeaderDomRef()!;\n const containerWidth = this.getTabHeader().offsetWidth;\n const selectedItemWidth = this.getSelectedItemWidth(itemsDomRefs, selectedTabDomRef);\n const lastVisibleTabIndex = this.findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemWidth);\n this.hideInappropriateTabs(lastVisibleTabIndex, itemsDomRefs);\n }\n\n getRootTab(tab: Tab): Tab {\n while (tab.hasAttribute(\"udex-tab\")) {\n if (tab.parentElement!.hasAttribute(\"udex-tab-navigation\")) {\n break;\n }\n\n tab = tab.parentElement as Tab;\n }\n\n return tab;\n }\n\n getSelectedItemWidth(itemsDomRefs: Array<ITab>, selectedTabDomRef: ITab): number {\n const index = itemsDomRefs.indexOf(selectedTabDomRef);\n const width = this.getTabWidth(selectedTabDomRef);\n\n itemsDomRefs.splice(index, 1);\n\n return width;\n }\n\n findLastVisibleItem(itemsDomRefs: Array<ITab>, containerWidth: number, selectedItemWidth: number, startIndex = 0): number {\n let lastVisibleIndex = startIndex - 1;\n let index = startIndex;\n\n for (; index < itemsDomRefs.length; index++) {\n const itemWidth = this.getTabWidth(itemsDomRefs[index]);\n\n if (containerWidth < selectedItemWidth + itemWidth) {\n break;\n }\n\n selectedItemWidth += itemWidth;\n lastVisibleIndex = index;\n }\n\n return lastVisibleIndex;\n }\n\n hideInappropriateTabs(lastVisibleTabIndex: number, itemsDomRefs: Array<ITab>) {\n for (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i].setAttribute(\"hidden\", \"\");\n }\n }\n\n setVisibleTabs() {\n this._visibleTabs = this.items\n .filter(tab => !tab.disabled)\n .map(tab => tab.getTabInHeaderDomRef()!)\n .filter(tab => !tab.hasAttribute(\"hidden\"));\n\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this._visibleTabs.push(this.getMoreButton());\n }\n }\n\n applyTabIndex() {\n if (!this.shadowRoot!.contains(document.activeElement)) {\n const itemsDomRefs = this.getRootTab(this._selectedTab);\n const currentIndex = this.items.indexOf(itemsDomRefs);\n\n this.setTabsIndex(currentIndex);\n }\n }\n\n setTabsIndex(currentIndex: number) {\n this.items.forEach((tab, index) => {\n tab._tabIndex = index === currentIndex && !tab.disabled ? \"0\" : \"-1\";\n });\n }\n\n handleOverflowItemClick(e: Event) {\n if ((e.target as HTMLElement).localName === \"button\") {\n const targetId = (e.target as HTMLElement).id;\n const [targetTab] = this.items.filter(item => item.__id === targetId);\n if (!targetTab?.disabled) {\n e.preventDefault();\n this.onItemSelect(targetId);\n }\n }\n this.handleClosePopover();\n }\n\n onItemSelect(selectedId: string) {\n const [selectedTab] = this.items.filter(item => item.__id === selectedId);\n let selectedTabIndex = 0;\n\n this._selectedTab = selectedTab as Tab;\n\n this.items.forEach((item, index) => {\n item.selected = item.__id === selectedId;\n if (item.__id === selectedId) {\n selectedTabIndex = index;\n }\n });\n\n this.setVisibleTabs();\n this.setTabsIndex(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n this.fireDecoratorEvent(\"tab-select\", { tab: this._selectedTab, tabIndex: selectedTabIndex });\n }\n\n getMoreButton(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-tab-navigation__button-more\")!;\n }\n\n getHeader(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header`)!;\n }\n\n handleMoreButton(e: Event) {\n e.stopPropagation();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleTogglePopover();\n }\n\n updateOverflowItems() {\n this._overflowItems = this.items.filter(item => {\n const headerRef = item.getTabInHeaderDomRef();\n return headerRef && headerRef.hasAttribute(\"hidden\");\n });\n }\n\n handleTogglePopover() {\n if (this._popover?.open) {\n this.handleClosePopover();\n } else {\n this.handleOpenPopover();\n }\n }\n\n handleClosePopover() {\n if (this._popover?.open) {\n this._popover.open = false;\n (this.getMoreButton() as UDExButton).toggled = false;\n this._isExpanded = false;\n }\n }\n\n handleOpenPopover() {\n if (!this._popover?.open) {\n this._popover!.opener = this.getMoreButton();\n this._popover!.open = true;\n (this.getMoreButton() as UDExButton).toggled = true;\n this._isExpanded = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (this.isHorizontal) {\n this.handleRightArrow(e);\n this.handleLeftArrow(e);\n } else {\n this.handleDownArrow(e);\n this.handleUpArrow(e);\n }\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n getTabIndexById(id: string): number {\n return this._visibleTabs!.findIndex(tab => tab.id === id);\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusPreviousItem(e.target as HTMLElement);\n }\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n // For horizontal tabs, right arrow always moves focus to the next tab\n this.onFocusNextItem(e.target as HTMLElement);\n }\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusPreviousItem(e.target as HTMLElement);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n this.onFocusNextItem(e.target as HTMLElement);\n }\n }\n\n onFocusPreviousItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length - 1;\n const previousSelectIndex = previousSelectedIndex - 1 < 0 ? lastIndex : previousSelectedIndex - 1;\n\n this._visibleTabs![previousSelectIndex].focus();\n }\n\n onFocusNextItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length;\n const nextSelectIndex = previousSelectedIndex + 1 < lastIndex ? previousSelectedIndex + 1 : 0;\n\n this._visibleTabs![nextSelectIndex].focus();\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n this.onEndKey();\n }\n }\n\n onEndKey() {\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this.getMoreButton().focus();\n } else {\n const lastVisibleTab = this._visibleTabs!.length - 1;\n this._visibleTabs![lastVisibleTab].focus();\n }\n }\n\n handleFocusMoreButton(e: KeyboardEvent) {\n this.handleDownMoreButton(e);\n this.handleHomeKeyMoreButton(e);\n this.handleEnterKeyMoreButton(e);\n }\n\n handleHomeKeyMoreButton(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n e.stopPropagation();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEnterKeyMoreButton(e: KeyboardEvent) {\n if (isEnter(e)) {\n e.preventDefault();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleOpenPopover();\n }\n }\n\n handleDownMoreButton(e: KeyboardEvent) {\n if (isDown(e) || isEnter(e)) {\n this._popover = this.getResponsePopover();\n this.handleOpenPopover();\n this.updateOverflowItems();\n }\n }\n\n onFocusFirstItemPopover() {\n if (this._popover?.open) {\n const popoverItems = this.getItemsFromPopover();\n const firstPopoverItem = popoverItems[0];\n firstPopoverItem.setAttribute(\"tabindex\", \"0\");\n firstPopoverItem.focus();\n }\n }\n\n handleFocusPopover(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleUp(e);\n this.handleDown(e);\n this.handleEnterOrSpace(e);\n this.handleEscape(e);\n this.handleHome(e);\n this.handleEnd(e);\n this.handleTab(e);\n }\n\n handleTab(e: KeyboardEvent): void {\n if (isTabNext(e) || isTabPrevious(e)) {\n this.handleClosePopover();\n }\n }\n\n handleUp(e: KeyboardEvent) {\n if (isUp(e)) {\n this.onPreviousItemInPopover(e.target as HTMLElement);\n }\n }\n\n onPreviousItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const previousSelectIndex = currentSelectedTabIndex - 1 < 0 ? popoverItems.length - 1 : currentSelectedTabIndex - 1;\n const prevItem = popoverItems[previousSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n prevItem.setAttribute(\"tabIndex\", \"0\");\n prevItem.focus();\n }\n\n onNextItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;\n const nextItem = popoverItems[nextSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n nextItem.setAttribute(\"tabIndex\", \"0\");\n nextItem.focus();\n }\n\n resetTabIndexItem(item: HTMLElement): void {\n item.setAttribute(\"tabIndex\", \"-1\");\n }\n\n getItemsFromPopover(): Array<HTMLElement> {\n const responsivePopover = this.getResponsePopover();\n const [contentFromPopover] = responsivePopover.content;\n return Array.from(contentFromPopover.children) as Array<HTMLElement>;\n }\n\n getPopoverTabIndexById(popoverItems: Array<HTMLElement>, id: string): number {\n return popoverItems.findIndex(tab => tab.id === id);\n }\n\n handleDown(e: KeyboardEvent) {\n if (isDown(e)) {\n this.onNextItemInPopover(e.target as HTMLElement);\n }\n }\n\n handleEnterOrSpace(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n const targetId = (e.target as HTMLElement).id;\n const [targetTab] = this.items.filter(item => item.__id === targetId);\n if (!targetTab?.disabled) {\n this.onItemSelect(targetId);\n this.handleClosePopover();\n }\n }\n }\n\n handleEscape(e: KeyboardEvent) {\n if (isEscape(e)) {\n e.preventDefault();\n this.handleClosePopover();\n this._visibleTabs![this._visibleTabs!.length - 1].focus();\n }\n }\n\n handleHome(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[0].focus();\n }\n }\n\n handleEnd(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n e.stopPropagation();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[popoverItems.length - 1].focus();\n }\n }\n\n getResponsePopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n get isHorizontal(): boolean {\n return this.orientation === UDExTabNavigationOrientation.Horizontal;\n }\n\n get isVertical(): boolean {\n return this.orientation === UDExTabNavigationOrientation.Vertical;\n }\n\n get ariaOrientationValue(): string {\n return this.isVertical ? \"vertical\" : \"horizontal\";\n }\n\n get isDesktop(): boolean {\n return isDesktop();\n }\n\n get moreButtonText(): string {\n return translate(UDExTabNavigation, MORE);\n }\n\n static registerStaticAreaTabStyles(styles: StyleData) {\n staticAreaTabStyles.push(styles);\n }\n\n static get tabNavigationPopoverTemplate() {\n return TabNavigationPopoverTemplate;\n }\n\n get tabNavigationPopover() {\n return executeTemplate(UDExTabNavigation.tabNavigationPopoverTemplate, this);\n }\n\n applyTabWidthToVerticalTabs(): void {\n if (this.isVertical && this.tabWidth && this.tabWidth !== \"auto\") {\n this.style.setProperty(\"--udex-tab-header-width\", this.tabWidth);\n }\n }\n\n updateMobileState(): void {\n const isMobile = BreakpointUtils.isAtMost(\"S\");\n this.items.forEach(tab => {\n tab._isMobile = isMobile;\n });\n }\n\n _startAutoPlay(): void {\n this._stopAutoPlay();\n this._isPaused = false;\n this._autoPlayTimer = window.setInterval(() => {\n this._advanceTab();\n }, this.autoPlayInterval);\n }\n\n _stopAutoPlay(): void {\n if (this._autoPlayTimer !== undefined) {\n window.clearInterval(this._autoPlayTimer);\n this._autoPlayTimer = undefined;\n }\n }\n\n _advanceTab(): void {\n const enabledItems = (this.items as unknown as Array<Tab>).filter(item => !item.disabled);\n if (enabledItems.length === 0) {\n return;\n }\n const currentEnabledIndex = enabledItems.findIndex(item => item === this._selectedTab);\n const nextEnabledIndex = (currentEnabledIndex + 1) % enabledItems.length;\n const nextTab = enabledItems[nextEnabledIndex];\n const nextIndex = (this.items as unknown as Array<Tab>).indexOf(nextTab);\n this._selectedTab = nextTab;\n this.updateSelectedTab(nextIndex);\n this.emitClickEvent(nextIndex + 1);\n }\n\n onPlayButtonClick(): void {\n if (this._isPaused) {\n this._startAutoPlay();\n } else {\n this._stopAutoPlay();\n this._isPaused = true;\n }\n }\n\n get showPlayButton(): boolean {\n return this.isVertical && this.autoPlay;\n }\n\n get showFooterSlot(): boolean {\n return this.isVertical && this.footer?.length > 0;\n }\n\n get playBtnIcon(): string {\n return this._isPaused ? \"play\" : \"pause\";\n }\n\n get playBtnTooltipText(): string {\n return this._isPaused\n ? translate(UDExTabNavigation, PLAY_BUTTON_ACCESSIBLE_NAME)\n : translate(UDExTabNavigation, PAUSE_BUTTON_ACCESSIBLE_NAME);\n }\n}\n\nUDExTabNavigation.define();\n\nexport default UDExTabNavigation;\nexport type { UDExTabNavigationClickDetail, UDExTabContainerTabSelectEventDetail };\n"]}
package/dist/Tag.d.ts CHANGED
@@ -156,6 +156,7 @@ declare class UDExTag extends UI5Element {
156
156
  _handleResize(): void;
157
157
  _focusin(): void;
158
158
  _focusout(): void;
159
+ getFocusDomRef(): HTMLElement | undefined;
159
160
  get tagClasses(): string;
160
161
  get startIcon(): boolean;
161
162
  get endIcon(): boolean;
package/dist/Tag.js CHANGED
@@ -147,6 +147,12 @@ let UDExTag = class UDExTag extends UI5Element {
147
147
  _focusout() {
148
148
  this.focused = !this.focused;
149
149
  }
150
+ getFocusDomRef() {
151
+ if (this.nonSelectable) {
152
+ return this.getDomRef()?.querySelector("button") ?? undefined;
153
+ }
154
+ return super.getFocusDomRef();
155
+ }
150
156
  get tagClasses() {
151
157
  const hasIconClass = this.hasIcon ? "udex-tag--has-icon" : "";
152
158
  const readOnlyClass = this.readOnly ? "udex-tag--readonly" : "";
package/dist/Tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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","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-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UDExIconPlacement from \"./types/IconPlacement.js\";\n\nimport TagTemplate from \"./TagTemplate.js\";\n\n// Styles\nimport TagCss from \"./generated/themes/Tag.css.js\";\n\nexport enum UDExTagType {\n Text = \"Text\",\n White = \"White\",\n Outlined = \"Outlined\",\n Grey = \"Grey\"\n}\n\nexport enum UDExTagSize {\n Small = \"Small\",\n Medium = \"Medium\"\n}\n\ntype UDExTagLinkClickEventDetail = {\n originalEvent: Event,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Tag.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tag\n * @public\n */\n@customElement({\n tag: \"udex-tag\",\n renderer: jsxRenderer,\n styles: TagCss,\n template: TagTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Emitted when tag was clicked\n *\n * @public\n */\n@event(\"selectionChange\", { bubbles: true })\n\n/**\n * Emitted when icon in tag was clicked\n *\n * @public\n */\n@event(\"iconClick\", { bubbles: true })\n/**\n * Emitted when tag link was clicked\n *\n * @public\n * @param {Event} originalEvent the original event object\n */\n@event(\"tagLinkClick\", { cancelable: true, bubbles: true })\nclass UDExTag extends UI5Element {\n eventDetails!: {\n \"selectionChange\": void,\n \"iconClick\": void,\n \"tagLinkClick\": UDExTagLinkClickEventDetail,\n };\n /**\n * Defines the text of the tag\n *\n * @default \"\"\n * @public\n */\n @property()\n text: string = \"\";\n /**\n * Defines the href for behavior of the tag as a link\n *\n * @default \"\"\n * @public\n */\n @property()\n href!: string;\n /**\n * Defines the design type of tag\n *\n * @default \"Grey\"\n * @public\n */\n @property()\n design: `${UDExTagType}` = UDExTagType.Grey;\n\n /**\n * Defines the size of the component.\n *\n * @default \"Small\"\n * @public\n */\n @property()\n size: `${UDExTagSize}` = UDExTagSize.Small;\n\n /**\n * Defines icon name\n *\n * @default \"\"\n * @public\n */\n @property()\n icon!: string;\n\n /**\n * Defines icon placement if icon was provided\n *\n * @default \"End\"\n * @public\n */\n @property()\n iconPlacement : `${UDExIconPlacement}` = UDExIconPlacement.End;\n\n /**\n * Defines if tag is in readnly state\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readOnly!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName: string = \"\";\n\n /**\n * Defines the role attribute of component\n *\n * @default \"button\"\n * @public\n */\n @property()\n accessibleRole: string = \"\";\n\n /**\n * Defines if tag is selected\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines whether the component is focused or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines whether the token is being deleted\n * This flag is used in the udex-select-box\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n toBeDeleted!: boolean;\n\n /**\n * Set by the tokenizer when a token is in the \"more\" area (overflowing)\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n overflows!: boolean;\n\n @property({ type: Boolean })\n singleToken!: boolean;\n\n /**\n * Toggle on/off nonSelectable property on tag\n * @default true\n * @public\n */\n @property({ type: Boolean })\n nonSelectable!: boolean;\n\n /**\n * Defined if tag should be nonSelectable and icon should be non-interactive\n * @default true\n * @public\n */\n @property({ type: Boolean })\n nonInteractive!: boolean;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onBeforeRendering(): void {\n this.toBeDeleted = false;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.accessibleRole !== \"button\") {\n this.shadowRoot?.firstElementChild?.removeAttribute(\"aria-pressed\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n setSelected(): void {\n this.selected = !this.selected;\n }\n\n iconClickHandler(e: Event): void {\n e.stopPropagation();\n this.fireDecoratorEvent(\"iconClick\");\n }\n\n tagClickHandler(): void {\n if (this.isInteractiveTag) {\n this.setSelected();\n this.fireDecoratorEvent(\"selectionChange\");\n }\n }\n\n tagKeyDown(e: KeyboardEvent): void {\n if (isEnter(e)) {\n this.tagClickHandler();\n }\n }\n\n _onIconMouseDown(e: MouseEvent): void {\n const target = e.currentTarget as HTMLElement;\n\n if (target === this.shadowRoot?.querySelector(\"[ui5-icon]\")) {\n this.toBeDeleted = true;\n }\n }\n\n _handleResize() {\n if (this.isTruncatable) {\n this.title = this.text;\n } else {\n this.removeAttribute(\"title\");\n }\n }\n\n _focusin(): void {\n this.focused = true;\n }\n\n _focusout(): void {\n this.focused = !this.focused;\n }\n\n get tagClasses(): string {\n const hasIconClass = this.hasIcon ? \"udex-tag--has-icon\" : \"\";\n const readOnlyClass = this.readOnly ? \"udex-tag--readonly\" : \"\";\n const nonSelectableClass = this.nonSelectable && !this.href && !this.nonInteractive ? \"udex-tag--nonselectable\" : \"\";\n const nonInteractiveClass = this.nonInteractive ? \"udex-tag--noninteractive\" : \"\";\n const linkTagClass = this.href ? \"udex-tag--link\" : \"\";\n const selectableClass = this.selected ? \"udex-tag--selected\" : \"\";\n const designClass = `udex-tag-${this.design?.toLowerCase()}`;\n return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${nonInteractiveClass} ${linkTagClass} ${selectableClass}`.trim();\n }\n\n get startIcon(): boolean {\n return this.hasIcon && this.iconPlacement === UDExIconPlacement.Start;\n }\n\n get endIcon(): boolean {\n return this.hasIcon && this.iconPlacement === UDExIconPlacement.End;\n }\n\n get _tabIndex(): number {\n if (this.overflows || this.nonSelectable) {\n return -1;\n }\n return 0;\n }\n\n get textDom(): HTMLElement {\n return this.getDomRef()!.querySelector(\".udex-tag__text\")!;\n }\n\n get isTruncatable(): boolean {\n if (!this.textDom) {\n return false;\n }\n\n return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);\n }\n\n get isInteractiveTag(): boolean {\n return !this.readOnly && !this.toBeDeleted && !this.nonSelectable;\n }\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n get iconAccessibleName(): string {\n return this.accessibleName || this.text;\n }\n\n tagLinkClickHandler(e: Event): void {\n this.fireDecoratorEvent(\"tagLinkClick\", { originalEvent: e });\n }\n}\n\nUDExTag.define();\n\nexport default UDExTag;\nexport type { UDExTagLinkClickEventDetail };\n"]}
1
+ {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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","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-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UDExIconPlacement from \"./types/IconPlacement.js\";\n\nimport TagTemplate from \"./TagTemplate.js\";\n\n// Styles\nimport TagCss from \"./generated/themes/Tag.css.js\";\n\nexport enum UDExTagType {\n Text = \"Text\",\n White = \"White\",\n Outlined = \"Outlined\",\n Grey = \"Grey\"\n}\n\nexport enum UDExTagSize {\n Small = \"Small\",\n Medium = \"Medium\"\n}\n\ntype UDExTagLinkClickEventDetail = {\n originalEvent: Event,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Tag.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tag\n * @public\n */\n@customElement({\n tag: \"udex-tag\",\n renderer: jsxRenderer,\n styles: TagCss,\n template: TagTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Emitted when tag was clicked\n *\n * @public\n */\n@event(\"selectionChange\", { bubbles: true })\n\n/**\n * Emitted when icon in tag was clicked\n *\n * @public\n */\n@event(\"iconClick\", { bubbles: true })\n/**\n * Emitted when tag link was clicked\n *\n * @public\n * @param {Event} originalEvent the original event object\n */\n@event(\"tagLinkClick\", { cancelable: true, bubbles: true })\nclass UDExTag extends UI5Element {\n eventDetails!: {\n \"selectionChange\": void,\n \"iconClick\": void,\n \"tagLinkClick\": UDExTagLinkClickEventDetail,\n };\n /**\n * Defines the text of the tag\n *\n * @default \"\"\n * @public\n */\n @property()\n text: string = \"\";\n /**\n * Defines the href for behavior of the tag as a link\n *\n * @default \"\"\n * @public\n */\n @property()\n href!: string;\n /**\n * Defines the design type of tag\n *\n * @default \"Grey\"\n * @public\n */\n @property()\n design: `${UDExTagType}` = UDExTagType.Grey;\n\n /**\n * Defines the size of the component.\n *\n * @default \"Small\"\n * @public\n */\n @property()\n size: `${UDExTagSize}` = UDExTagSize.Small;\n\n /**\n * Defines icon name\n *\n * @default \"\"\n * @public\n */\n @property()\n icon!: string;\n\n /**\n * Defines icon placement if icon was provided\n *\n * @default \"End\"\n * @public\n */\n @property()\n iconPlacement : `${UDExIconPlacement}` = UDExIconPlacement.End;\n\n /**\n * Defines if tag is in readnly state\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readOnly!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName: string = \"\";\n\n /**\n * Defines the role attribute of component\n *\n * @default \"button\"\n * @public\n */\n @property()\n accessibleRole: string = \"\";\n\n /**\n * Defines if tag is selected\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines whether the component is focused or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines whether the token is being deleted\n * This flag is used in the udex-select-box\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n toBeDeleted!: boolean;\n\n /**\n * Set by the tokenizer when a token is in the \"more\" area (overflowing)\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n overflows!: boolean;\n\n @property({ type: Boolean })\n singleToken!: boolean;\n\n /**\n * Toggle on/off nonSelectable property on tag\n * @default true\n * @public\n */\n @property({ type: Boolean })\n nonSelectable!: boolean;\n\n /**\n * Defined if tag should be nonSelectable and icon should be non-interactive\n * @default true\n * @public\n */\n @property({ type: Boolean })\n nonInteractive!: boolean;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onBeforeRendering(): void {\n this.toBeDeleted = false;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.accessibleRole !== \"button\") {\n this.shadowRoot?.firstElementChild?.removeAttribute(\"aria-pressed\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n setSelected(): void {\n this.selected = !this.selected;\n }\n\n iconClickHandler(e: Event): void {\n e.stopPropagation();\n this.fireDecoratorEvent(\"iconClick\");\n }\n\n tagClickHandler(): void {\n if (this.isInteractiveTag) {\n this.setSelected();\n this.fireDecoratorEvent(\"selectionChange\");\n }\n }\n\n tagKeyDown(e: KeyboardEvent): void {\n if (isEnter(e)) {\n this.tagClickHandler();\n }\n }\n\n _onIconMouseDown(e: MouseEvent): void {\n const target = e.currentTarget as HTMLElement;\n\n if (target === this.shadowRoot?.querySelector(\"[ui5-icon]\")) {\n this.toBeDeleted = true;\n }\n }\n\n _handleResize() {\n if (this.isTruncatable) {\n this.title = this.text;\n } else {\n this.removeAttribute(\"title\");\n }\n }\n\n _focusin(): void {\n this.focused = true;\n }\n\n _focusout(): void {\n this.focused = !this.focused;\n }\n\n override getFocusDomRef(): HTMLElement | undefined {\n if (this.nonSelectable) {\n return this.getDomRef()?.querySelector<HTMLElement>(\"button\") ?? undefined;\n }\n return super.getFocusDomRef();\n }\n\n get tagClasses(): string {\n const hasIconClass = this.hasIcon ? \"udex-tag--has-icon\" : \"\";\n const readOnlyClass = this.readOnly ? \"udex-tag--readonly\" : \"\";\n const nonSelectableClass = this.nonSelectable && !this.href && !this.nonInteractive ? \"udex-tag--nonselectable\" : \"\";\n const nonInteractiveClass = this.nonInteractive ? \"udex-tag--noninteractive\" : \"\";\n const linkTagClass = this.href ? \"udex-tag--link\" : \"\";\n const selectableClass = this.selected ? \"udex-tag--selected\" : \"\";\n const designClass = `udex-tag-${this.design?.toLowerCase()}`;\n return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${nonInteractiveClass} ${linkTagClass} ${selectableClass}`.trim();\n }\n\n get startIcon(): boolean {\n return this.hasIcon && this.iconPlacement === UDExIconPlacement.Start;\n }\n\n get endIcon(): boolean {\n return this.hasIcon && this.iconPlacement === UDExIconPlacement.End;\n }\n\n get _tabIndex(): number {\n if (this.overflows || this.nonSelectable) {\n return -1;\n }\n return 0;\n }\n\n get textDom(): HTMLElement {\n return this.getDomRef()!.querySelector(\".udex-tag__text\")!;\n }\n\n get isTruncatable(): boolean {\n if (!this.textDom) {\n return false;\n }\n\n return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);\n }\n\n get isInteractiveTag(): boolean {\n return !this.readOnly && !this.toBeDeleted && !this.nonSelectable;\n }\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n get iconAccessibleName(): string {\n return this.accessibleName || this.text;\n }\n\n tagLinkClickHandler(e: Event): void {\n this.fireDecoratorEvent(\"tagLinkClick\", { originalEvent: e });\n }\n}\n\nUDExTag.define();\n\nexport default UDExTag;\nexport type { UDExTagLinkClickEventDetail };\n"]}
package/dist/TagGroup.js CHANGED
@@ -112,9 +112,11 @@ let UDExTagGroup = class UDExTagGroup extends UI5Element {
112
112
  const active = getActiveElement();
113
113
  const moreLink = this._tokenizer.moreLink;
114
114
  if (active === moreLink) {
115
- e.preventDefault();
116
115
  const focusDomRef = this._lastVisibleTag?.getFocusDomRef();
117
- focusDomRef?.focus();
116
+ if (focusDomRef) {
117
+ e.preventDefault();
118
+ focusDomRef.focus();
119
+ }
118
120
  }
119
121
  }
120
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TagGroup.js","sourceRoot":"","sources":["../src/TagGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport Tokenizer from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport {\n isEnter, isSpace, isEscape, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport Token from \"@ui5/webcomponents/dist/Token.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExTooltip from \"./Tooltip.js\";\nimport { Placement } from \"./types/Dropdown.js\";\n\nimport TagGroupTemplate from \"./TagGroupTemplate.js\";\n\n// Styles\nimport TagGroupCss from \"./generated/themes/TagGroup.css.js\";\n\ntype UDExTagClickEventDetail = {\n tag: UDExTag,\n}\n\ntype UDExTagIconClickEventDetail = {\n tag: HTMLElement,\n}\n\ntype UDExTagKeydownEventDetail = {\n originalEvent: KeyboardEvent,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag-group</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/TagGroup.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-tag-group\",\n renderer: jsxRenderer,\n styles: TagGroupCss,\n template: TagGroupTemplate,\n dependencies: [UDExTag, UDExTooltip, Tokenizer, Token],\n})\n/**\n * Emitted when tag was clicked\n *\n * @public\n * @param {UDExTag} tag the clicked tag\n */\n@event(\"tag-click\", { bubbles: true })\n/**\n * Emitted when icon in tag was clicked\n *\n * @public\n * @param {HTMLElement} tag the tag containing the clicked icon\n */\n@event(\"tag-icon-click\", { bubbles: true })\n/**\n * Emitted when the tooltip was opened, can be canceled\n *\n * @public\n */\n@event(\"show-more-tags\", { cancelable: true, bubbles: true })\n/**\n * Emitted when a keydown event occurs on a tag, can be canceled\n * Emitted custom event with keycode and tag details\n *\n * @public\n * @param {KeyboardEvent} originalEvent the original keyboard event\n */\n@event(\"tag-keydown\", { cancelable: true, bubbles: true })\nclass UDExTagGroup extends UI5Element {\n eventDetails!: {\n \"tag-click\": UDExTagClickEventDetail,\n \"tag-icon-click\": UDExTagIconClickEventDetail,\n \"show-more-tags\": void,\n \"tag-keydown\": UDExTagKeydownEventDetail,\n };\n /**\n * Defines whether the UI5Tokenizer is expanded.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n tokenizerExpanded: boolean = false;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is readonly.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is displayonly.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the tags.\n *\n * @default \"[]\"\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: DefaultSlot<UDExTag>;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Bottom\"\n * @public\n */\n @property()\n tooltipPlacement: `${Placement}` = Placement.Bottom;\n\n /**\n * Defines the accessible name for the \"Show More\" tooltip, announced by screen readers\n * when the tooltip containing hidden tags is opened.\n *\n * @default undefined\n * @public\n */\n @property()\n tooltipAccessibleName?: string;\n\n /**\n * Determines whether there are hidden tags in the component.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isHiddenTags!: boolean;\n\n /**\n * Determines whether the \"More\" button should skip focus.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _skipMoreButtonFocus!: boolean;\n\n /**\n * Determines whether the tokenizer should scroll to the end.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _scrollToEnd: boolean = false;\n\n _tokenizer!: Tokenizer;\n _nMoreBtn!: HTMLElement | null;\n _resizeHandler: () => void;\n _keydownCaptureHandler: (e: KeyboardEvent) => void;\n\n constructor() {\n super();\n this._resizeHandler = this._onResize.bind(this);\n this._keydownCaptureHandler = this._onKeydownCapture.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._resizeHandler);\n this.addEventListener(\"keydown\", this._keydownCaptureHandler, true);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._resizeHandler);\n this.removeEventListener(\"keydown\", this._keydownCaptureHandler, true);\n this._nMoreBtn?.removeEventListener(\"keydown\", this._nMoreKeyDownHandler);\n }\n\n onAfterRendering(): void {\n this._tokenizer = this.tokenizer;\n const prevMoreBtn = this._nMoreBtn;\n this._nMoreBtn = this._tokenizer.moreLink || null;\n\n if (prevMoreBtn && prevMoreBtn !== this._nMoreBtn) {\n prevMoreBtn.removeEventListener(\"keydown\", this._nMoreKeyDownHandler);\n }\n\n if (!this.disabled && this._nMoreBtn && this._nMoreBtn !== prevMoreBtn) {\n this._nMoreBtn.setAttribute(\"tabindex\", \"0\");\n this._nMoreBtn.addEventListener(\"keydown\", this._nMoreKeyDownHandler);\n }\n\n if (!this.displayonly && this._skipMoreButtonFocus && this._nMoreBtn) {\n this._nMoreBtn.setAttribute(\"tabindex\", \"-1\");\n }\n\n if (this._scrollToEnd) {\n setTimeout(() => {\n this._tokenizer.scrollToEnd();\n }, 50);\n }\n }\n\n _nMoreKeyDownHandler = (e: KeyboardEvent) => {\n if (isSpace(e) || isEnter(e)) {\n this.showMoreItems();\n }\n };\n\n _onKeydownCapture(e: KeyboardEvent): void {\n if (!this._isHiddenTags) {\n return;\n }\n\n if (isTabNext(e) && e.composedPath().includes(this._lastVisibleTag as EventTarget)) {\n e.preventDefault();\n this._nMoreBtn?.focus();\n return;\n }\n\n if (isTabPrevious(e) && !this.isReadOrDisplayOnly) {\n const active = getActiveElement();\n const moreLink = this._tokenizer.moreLink;\n if (active === moreLink) {\n e.preventDefault();\n const focusDomRef = this._lastVisibleTag?.getFocusDomRef();\n focusDomRef?.focus();\n }\n }\n }\n\n handleTagFocusin(e: FocusEvent): void {\n // Only block the Tokenizer's _onfocusin (which sets expanded=true and destroys\n // the \"n more\" span) when there are actually hidden tags. When all tags are\n // visible, let focusin propagate normally so consumers like SelectBox can use\n // the expanded state for arrow-key navigation between tags.\n if (this._isHiddenTags) {\n e.stopPropagation();\n }\n }\n\n _onResize(): void {\n this._isHiddenTags = false;\n this._isHiddenTags = this._tokenizer?._nMoreCount > 0;\n }\n\n tagIconClickHandler(e: CustomEvent): void {\n this.fireDecoratorEvent(\"tag-icon-click\", { tag: e.target as HTMLElement });\n }\n\n handleShowMoreButtonKeydown(e: KeyboardEvent): void {\n if (isEscape(e)) {\n this._nMoreBtn?.focus();\n }\n }\n\n handleTagClick(e: CustomEvent): void {\n this.fireDecoratorEvent(\"tag-click\", { tag: e.target as UDExTag });\n }\n\n handleTagKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n\n if (isEscape(e) && this.tooltip) {\n this.tooltip.open = false;\n this._nMoreBtn?.focus();\n return;\n }\n\n this.fireDecoratorEvent(\"tag-keydown\", { originalEvent: e });\n }\n\n showMoreItems(): void {\n if (this.fireDecoratorEvent(\"show-more-tags\")) {\n const moreBtn = this._tokenizer.moreLink;\n if (moreBtn) {\n this._tokenizer.expanded = false;\n this.tooltip.opener = moreBtn;\n this.tooltip.open = true;\n }\n }\n }\n\n get hiddenTags(): Token[] {\n return this._tokenizer?.overflownTokens || [];\n }\n\n get _lastVisibleTag(): UDExTag | null {\n const tokens = this._tokenizer?._tokens;\n if (!tokens?.length) {\n return null;\n }\n const visibleCount = tokens.length - (this._tokenizer._nMoreCount ?? 0);\n return (tokens[visibleCount - 1] as unknown as UDExTag) ?? null;\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get tokenizer(): Tokenizer {\n return this.shadowRoot!.querySelector<Tokenizer>(`#${this._id}-tag-group-tokenizer`)!;\n }\n\n get tooltip(): UDExTooltip {\n return this.shadowRoot!.querySelector<UDExTooltip>(`#${this._id}-tag-group-tooltip`)!;\n }\n}\n\nUDExTagGroup.define();\n\nexport default UDExTagGroup;\nexport type { UDExTagClickEventDetail, UDExTagKeydownEventDetail, UDExTagIconClickEventDetail };\n"]}
1
+ {"version":3,"file":"TagGroup.js","sourceRoot":"","sources":["../src/TagGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport Tokenizer from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport {\n isEnter, isSpace, isEscape, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport Token from \"@ui5/webcomponents/dist/Token.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExTooltip from \"./Tooltip.js\";\nimport { Placement } from \"./types/Dropdown.js\";\n\nimport TagGroupTemplate from \"./TagGroupTemplate.js\";\n\n// Styles\nimport TagGroupCss from \"./generated/themes/TagGroup.css.js\";\n\ntype UDExTagClickEventDetail = {\n tag: UDExTag,\n}\n\ntype UDExTagIconClickEventDetail = {\n tag: HTMLElement,\n}\n\ntype UDExTagKeydownEventDetail = {\n originalEvent: KeyboardEvent,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag-group</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/TagGroup.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-tag-group\",\n renderer: jsxRenderer,\n styles: TagGroupCss,\n template: TagGroupTemplate,\n dependencies: [UDExTag, UDExTooltip, Tokenizer, Token],\n})\n/**\n * Emitted when tag was clicked\n *\n * @public\n * @param {UDExTag} tag the clicked tag\n */\n@event(\"tag-click\", { bubbles: true })\n/**\n * Emitted when icon in tag was clicked\n *\n * @public\n * @param {HTMLElement} tag the tag containing the clicked icon\n */\n@event(\"tag-icon-click\", { bubbles: true })\n/**\n * Emitted when the tooltip was opened, can be canceled\n *\n * @public\n */\n@event(\"show-more-tags\", { cancelable: true, bubbles: true })\n/**\n * Emitted when a keydown event occurs on a tag, can be canceled\n * Emitted custom event with keycode and tag details\n *\n * @public\n * @param {KeyboardEvent} originalEvent the original keyboard event\n */\n@event(\"tag-keydown\", { cancelable: true, bubbles: true })\nclass UDExTagGroup extends UI5Element {\n eventDetails!: {\n \"tag-click\": UDExTagClickEventDetail,\n \"tag-icon-click\": UDExTagIconClickEventDetail,\n \"show-more-tags\": void,\n \"tag-keydown\": UDExTagKeydownEventDetail,\n };\n /**\n * Defines whether the UI5Tokenizer is expanded.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n tokenizerExpanded: boolean = false;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is readonly.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is displayonly.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the tags.\n *\n * @default \"[]\"\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: DefaultSlot<UDExTag>;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Bottom\"\n * @public\n */\n @property()\n tooltipPlacement: `${Placement}` = Placement.Bottom;\n\n /**\n * Defines the accessible name for the \"Show More\" tooltip, announced by screen readers\n * when the tooltip containing hidden tags is opened.\n *\n * @default undefined\n * @public\n */\n @property()\n tooltipAccessibleName?: string;\n\n /**\n * Determines whether there are hidden tags in the component.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isHiddenTags!: boolean;\n\n /**\n * Determines whether the \"More\" button should skip focus.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _skipMoreButtonFocus!: boolean;\n\n /**\n * Determines whether the tokenizer should scroll to the end.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _scrollToEnd: boolean = false;\n\n _tokenizer!: Tokenizer;\n _nMoreBtn!: HTMLElement | null;\n _resizeHandler: () => void;\n _keydownCaptureHandler: (e: KeyboardEvent) => void;\n\n constructor() {\n super();\n this._resizeHandler = this._onResize.bind(this);\n this._keydownCaptureHandler = this._onKeydownCapture.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._resizeHandler);\n this.addEventListener(\"keydown\", this._keydownCaptureHandler, true);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._resizeHandler);\n this.removeEventListener(\"keydown\", this._keydownCaptureHandler, true);\n this._nMoreBtn?.removeEventListener(\"keydown\", this._nMoreKeyDownHandler);\n }\n\n onAfterRendering(): void {\n this._tokenizer = this.tokenizer;\n const prevMoreBtn = this._nMoreBtn;\n this._nMoreBtn = this._tokenizer.moreLink || null;\n\n if (prevMoreBtn && prevMoreBtn !== this._nMoreBtn) {\n prevMoreBtn.removeEventListener(\"keydown\", this._nMoreKeyDownHandler);\n }\n\n if (!this.disabled && this._nMoreBtn && this._nMoreBtn !== prevMoreBtn) {\n this._nMoreBtn.setAttribute(\"tabindex\", \"0\");\n this._nMoreBtn.addEventListener(\"keydown\", this._nMoreKeyDownHandler);\n }\n\n if (!this.displayonly && this._skipMoreButtonFocus && this._nMoreBtn) {\n this._nMoreBtn.setAttribute(\"tabindex\", \"-1\");\n }\n\n if (this._scrollToEnd) {\n setTimeout(() => {\n this._tokenizer.scrollToEnd();\n }, 50);\n }\n }\n\n _nMoreKeyDownHandler = (e: KeyboardEvent) => {\n if (isSpace(e) || isEnter(e)) {\n this.showMoreItems();\n }\n };\n\n _onKeydownCapture(e: KeyboardEvent): void {\n if (!this._isHiddenTags) {\n return;\n }\n\n if (isTabNext(e) && e.composedPath().includes(this._lastVisibleTag as EventTarget)) {\n e.preventDefault();\n this._nMoreBtn?.focus();\n return;\n }\n\n if (isTabPrevious(e) && !this.isReadOrDisplayOnly) {\n const active = getActiveElement();\n const moreLink = this._tokenizer.moreLink;\n if (active === moreLink) {\n const focusDomRef = this._lastVisibleTag?.getFocusDomRef();\n if (focusDomRef) {\n e.preventDefault();\n focusDomRef.focus();\n }\n }\n }\n }\n\n handleTagFocusin(e: FocusEvent): void {\n // Only block the Tokenizer's _onfocusin (which sets expanded=true and destroys\n // the \"n more\" span) when there are actually hidden tags. When all tags are\n // visible, let focusin propagate normally so consumers like SelectBox can use\n // the expanded state for arrow-key navigation between tags.\n if (this._isHiddenTags) {\n e.stopPropagation();\n }\n }\n\n _onResize(): void {\n this._isHiddenTags = false;\n this._isHiddenTags = this._tokenizer?._nMoreCount > 0;\n }\n\n tagIconClickHandler(e: CustomEvent): void {\n this.fireDecoratorEvent(\"tag-icon-click\", { tag: e.target as HTMLElement });\n }\n\n handleShowMoreButtonKeydown(e: KeyboardEvent): void {\n if (isEscape(e)) {\n this._nMoreBtn?.focus();\n }\n }\n\n handleTagClick(e: CustomEvent): void {\n this.fireDecoratorEvent(\"tag-click\", { tag: e.target as UDExTag });\n }\n\n handleTagKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n\n if (isEscape(e) && this.tooltip) {\n this.tooltip.open = false;\n this._nMoreBtn?.focus();\n return;\n }\n\n this.fireDecoratorEvent(\"tag-keydown\", { originalEvent: e });\n }\n\n showMoreItems(): void {\n if (this.fireDecoratorEvent(\"show-more-tags\")) {\n const moreBtn = this._tokenizer.moreLink;\n if (moreBtn) {\n this._tokenizer.expanded = false;\n this.tooltip.opener = moreBtn;\n this.tooltip.open = true;\n }\n }\n }\n\n get hiddenTags(): Token[] {\n return this._tokenizer?.overflownTokens || [];\n }\n\n get _lastVisibleTag(): UDExTag | null {\n const tokens = this._tokenizer?._tokens;\n if (!tokens?.length) {\n return null;\n }\n const visibleCount = tokens.length - (this._tokenizer._nMoreCount ?? 0);\n return (tokens[visibleCount - 1] as unknown as UDExTag) ?? null;\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get tokenizer(): Tokenizer {\n return this.shadowRoot!.querySelector<Tokenizer>(`#${this._id}-tag-group-tokenizer`)!;\n }\n\n get tooltip(): UDExTooltip {\n return this.shadowRoot!.querySelector<UDExTooltip>(`#${this._id}-tag-group-tooltip`)!;\n }\n}\n\nUDExTagGroup.define();\n\nexport default UDExTagGroup;\nexport type { UDExTagClickEventDetail, UDExTagKeydownEventDetail, UDExTagIconClickEventDetail };\n"]}
@@ -6,7 +6,7 @@ export default function TextAreaTemplate() {
6
6
  return (_jsxs("div", { class: `${rootClass}`, children: [_jsxs("div", { class: `${rootClass}__wrapper`, children: [this.label
7
7
  ? _jsxs("label", { class: this.labelClasses, for: "textarea", part: "label", children: [this.label, this.required && " * "] })
8
8
  : _jsx("label", { class: "hidden-label", for: "textarea", children: this.textHiddenLabel }), _jsx("textarea", { id: "textarea", class: `${rootClass}__field`, part: "textarea", value: this.value, maxlength: this.maxlength, rows: this.rows, disabled: this.disabled, readonly: this.isInputReadonly, required: this.required, "aria-label": this.accessibleName, "aria-describedby": this.ariaDescribedBy, "aria-labelledby": this.accessibleNameRef, "aria-required": this.required, "aria-readonly": this.isInputReadonly, "aria-invalid": this._ariaInvalid, onInput: this.handleInput, onFocus: this.handleFocus, onClick: this.handleClick, onBlur: this.handleBlur, onChange: this.handleChange })] }), this._supportingText &&
9
- _jsxs(_Fragment, { children: [_jsx(UDExStatusMessage, { "supporting-text": this._supportingText, "supporting-text-alignment": "Right", "value-state": this.valueState, disabled: this.disabled ? "true" : undefined }), _jsx("span", { id: `${this._id}-supportingTextDesc`, class: hiddenClass, children: this._supportingText })] }), this.hasValueState &&
9
+ _jsxs(_Fragment, { children: [_jsx(UDExStatusMessage, { "supporting-text": this._supportingText, "supporting-text-alignment": "Right", "value-state": this.valueState, disabled: this.disabled }), _jsx("span", { id: `${this._id}-supportingTextDesc`, class: hiddenClass, children: this._supportingText })] }), this.hasValueState &&
10
10
  _jsx("span", { id: `${this._id}-valueStateDesc`, class: hiddenClass, children: this.ariaValueStateHiddenText }), this.readonly &&
11
11
  _jsx("span", { id: `${this._id}-readonlyDesc`, class: hiddenClass, children: this.readOnlyText })] }));
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextAreaTemplate.js","sourceRoot":"","sources":["../src/TextAreaTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACtC,MAAM,SAAS,GAAG,eAAe,CAAC;IAClC,MAAM,WAAW,GAAG,aAAa,CAAC;IAElC,OAAO,CACL,eAAK,KAAK,EAAE,GAAG,SAAS,EAAE,aACxB,eAAK,KAAK,EAAE,GAAG,SAAS,WAAW,aAChC,IAAI,CAAC,KAAK;wBACT,CAAC,CAAC,iBAAO,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,EAAC,UAAU,EAAC,IAAI,EAAC,OAAO,aAC3D,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,IAC7B;wBACR,CAAC,CAAC,gBAAO,KAAK,EAAC,cAAc,EAAC,GAAG,EAAC,UAAU,YACzC,IAAI,CAAC,eAAe,GACf,EAEV,mBACE,EAAE,EAAC,UAAU,EACb,KAAK,EAAE,GAAG,SAAS,SAAS,EAC5B,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,gBACX,IAAI,CAAC,cAAc,sBACb,IAAI,CAAC,eAAe,qBACrB,IAAI,CAAC,iBAAiB,mBACxB,IAAI,CAAC,QAAQ,mBACb,IAAI,CAAC,eAAe,kBACrB,IAAI,CAAC,YAAY,EAC/B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,GAClB,IACP,EACL,IAAI,CAAC,eAAe;gBACnB,8BACE,KAAC,iBAAiB,uBACC,IAAI,CAAC,eAAe,+BACX,OAAO,iBACpB,IAAI,CAAC,UAAU,EAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAC1B,EACpB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,EAAE,KAAK,EAAE,WAAW,YAC3D,IAAI,CAAC,eAAe,GAChB,IACN,EAEJ,IAAI,CAAC,aAAa;gBACjB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,iBAAiB,EAAE,KAAK,EAAE,WAAW,YACvD,IAAI,CAAC,wBAAwB,GACzB,EAER,IAAI,CAAC,QAAQ;gBACZ,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,eAAe,EAAE,KAAK,EAAE,WAAW,YACrD,IAAI,CAAC,YAAY,GACb,IAEL,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type TextArea from \"./TextArea.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\nexport default function TextAreaTemplate(this: TextArea) {\n const rootClass = \"udex-textarea\";\n const hiddenClass = \"hidden-text\";\n\n return (\n <div class={`${rootClass}`}>\n <div class={`${rootClass}__wrapper`}>\n {this.label\n ? <label class={this.labelClasses} for=\"textarea\" part=\"label\">\n {this.label}{this.required && \" * \"}\n </label>\n : <label class=\"hidden-label\" for=\"textarea\">\n {this.textHiddenLabel}\n </label>\n }\n <textarea\n id=\"textarea\"\n class={`${rootClass}__field`}\n part=\"textarea\"\n value={this.value}\n maxlength={this.maxlength}\n rows={this.rows}\n disabled={this.disabled}\n readonly={this.isInputReadonly}\n required={this.required}\n aria-label={this.accessibleName}\n aria-describedby={this.ariaDescribedBy}\n aria-labelledby={this.accessibleNameRef}\n aria-required={this.required}\n aria-readonly={this.isInputReadonly}\n aria-invalid={this._ariaInvalid}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onClick={this.handleClick}\n onBlur={this.handleBlur}\n onChange={this.handleChange}>\n </textarea>\n </div>\n {this._supportingText &&\n <>\n <UDExStatusMessage\n supporting-text={this._supportingText}\n supporting-text-alignment=\"Right\"\n value-state={this.valueState}\n disabled={this.disabled ? \"true\" : undefined}>\n </UDExStatusMessage>\n <span id={`${this._id}-supportingTextDesc`} class={hiddenClass}>\n {this._supportingText}\n </span>\n </>\n }\n {this.hasValueState &&\n <span id={`${this._id}-valueStateDesc`} class={hiddenClass}>\n {this.ariaValueStateHiddenText}\n </span>\n }\n {this.readonly &&\n <span id={`${this._id}-readonlyDesc`} class={hiddenClass}>\n {this.readOnlyText}\n </span>\n }\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"TextAreaTemplate.js","sourceRoot":"","sources":["../src/TextAreaTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACtC,MAAM,SAAS,GAAG,eAAe,CAAC;IAClC,MAAM,WAAW,GAAG,aAAa,CAAC;IAElC,OAAO,CACL,eAAK,KAAK,EAAE,GAAG,SAAS,EAAE,aACxB,eAAK,KAAK,EAAE,GAAG,SAAS,WAAW,aAChC,IAAI,CAAC,KAAK;wBACT,CAAC,CAAC,iBAAO,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,EAAC,UAAU,EAAC,IAAI,EAAC,OAAO,aAC3D,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,IAC7B;wBACR,CAAC,CAAC,gBAAO,KAAK,EAAC,cAAc,EAAC,GAAG,EAAC,UAAU,YACzC,IAAI,CAAC,eAAe,GACf,EAEV,mBACE,EAAE,EAAC,UAAU,EACb,KAAK,EAAE,GAAG,SAAS,SAAS,EAC5B,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,gBACX,IAAI,CAAC,cAAc,sBACb,IAAI,CAAC,eAAe,qBACrB,IAAI,CAAC,iBAAiB,mBACxB,IAAI,CAAC,QAAQ,mBACb,IAAI,CAAC,eAAe,kBACrB,IAAI,CAAC,YAAY,EAC/B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,GAClB,IACP,EACL,IAAI,CAAC,eAAe;gBACnB,8BACE,KAAC,iBAAiB,uBACC,IAAI,CAAC,eAAe,+BACX,OAAO,iBACpB,IAAI,CAAC,UAAU,EAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACL,EACpB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,EAAE,KAAK,EAAE,WAAW,YAC3D,IAAI,CAAC,eAAe,GAChB,IACN,EAEJ,IAAI,CAAC,aAAa;gBACjB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,iBAAiB,EAAE,KAAK,EAAE,WAAW,YACvD,IAAI,CAAC,wBAAwB,GACzB,EAER,IAAI,CAAC,QAAQ;gBACZ,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,eAAe,EAAE,KAAK,EAAE,WAAW,YACrD,IAAI,CAAC,YAAY,GACb,IAEL,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type TextArea from \"./TextArea.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\nexport default function TextAreaTemplate(this: TextArea) {\n const rootClass = \"udex-textarea\";\n const hiddenClass = \"hidden-text\";\n\n return (\n <div class={`${rootClass}`}>\n <div class={`${rootClass}__wrapper`}>\n {this.label\n ? <label class={this.labelClasses} for=\"textarea\" part=\"label\">\n {this.label}{this.required && \" * \"}\n </label>\n : <label class=\"hidden-label\" for=\"textarea\">\n {this.textHiddenLabel}\n </label>\n }\n <textarea\n id=\"textarea\"\n class={`${rootClass}__field`}\n part=\"textarea\"\n value={this.value}\n maxlength={this.maxlength}\n rows={this.rows}\n disabled={this.disabled}\n readonly={this.isInputReadonly}\n required={this.required}\n aria-label={this.accessibleName}\n aria-describedby={this.ariaDescribedBy}\n aria-labelledby={this.accessibleNameRef}\n aria-required={this.required}\n aria-readonly={this.isInputReadonly}\n aria-invalid={this._ariaInvalid}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onClick={this.handleClick}\n onBlur={this.handleBlur}\n onChange={this.handleChange}>\n </textarea>\n </div>\n {this._supportingText &&\n <>\n <UDExStatusMessage\n supporting-text={this._supportingText}\n supporting-text-alignment=\"Right\"\n value-state={this.valueState}\n disabled={this.disabled}>\n </UDExStatusMessage>\n <span id={`${this._id}-supportingTextDesc`} class={hiddenClass}>\n {this._supportingText}\n </span>\n </>\n }\n {this.hasValueState &&\n <span id={`${this._id}-valueStateDesc`} class={hiddenClass}>\n {this.ariaValueStateHiddenText}\n </span>\n }\n {this.readonly &&\n <span id={`${this._id}-readonlyDesc`} class={hiddenClass}>\n {this.readOnlyText}\n </span>\n }\n </div>\n );\n}\n"]}
@@ -7,7 +7,7 @@ export default function TextFieldTemplate() {
7
7
  return (_jsxs("div", { class: `${rootClass}__container`, children: [this.label &&
8
8
  _jsxs("label", { for: `${this._id}-input`, class: this.labelClasses, part: "label", children: [this.label, this.required && " * "] }), _jsxs("div", { class: `${rootClass}__wrap`, children: [_jsx("input", { id: `${this._id}-input`, class: `${rootClass}__input`, type: this.type, value: this.value, maxlength: this.maxlength, disabled: this.disabled, readonly: this.isInputReadonly, required: this.required, "aria-required": this.required, "aria-readonly": this.isInputReadonly, placeholder: this.active || !this.label ? this.placeholder : undefined, autocomplete: this.autocomplete, role: this.inputRole, name: this.name, ref: this.fieldRef, "aria-disabled": this.readonlyNotDisabled, "aria-invalid": this.accInfo.ariaInvalid, "aria-describedby": this.accInfo.ariaDescribedBy, "aria-haspopup": this.accInfo.ariaHasPopup, "aria-label": this.accInfo.ariaLabel, part: "textfield-input", min: this.min, max: this.max, step: this.step, onChange: this.handleChange, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.handleClick, onKeyDown: this.handleKeydown }), this.icon &&
9
9
  _jsx(UDExControlButton, { part: "textfield-control-btn", class: `${rootClass}__icon-container`, size: "Large", tooltip: this.buttonTooltip, active: this.active, disabled: this.disabled, readonly: this.readonly, "non-interactive": this.readonly, design: this.controlButtonDesign, icon: this.icon, "_is-combobox-role": this._isComboboxRole, "accessible-name": this.buttonAccessibleName, "accessible-description": this.buttonAccessibleDescription, accessibilityAttributes: this.iconAccessibilityAttributes, onClick: this.handleIconClick })] }), this.supportingText &&
10
- _jsxs(_Fragment, { children: [_jsx(UDExStatusMessage, { "supporting-text": this.supportingText, "value-state": this.valueState, disabled: this.disabled ? "true" : undefined }), _jsx("span", { id: `${this._id}-supportingTextDesc`, class: hiddenClass, children: this.supportingText })] }), this.hasValueState &&
10
+ _jsxs(_Fragment, { children: [_jsx(UDExStatusMessage, { "supporting-text": this.supportingText, "value-state": this.valueState, disabled: this.disabled }), _jsx("span", { id: `${this._id}-supportingTextDesc`, class: hiddenClass, children: this.supportingText })] }), this.hasValueState &&
11
11
  _jsx("span", { id: `${this._id}-valueStateDesc`, class: hiddenClass, children: this.valueStateText }), this.readonly &&
12
12
  _jsx("span", { id: `${this._id}-stateReadOnlyDesc`, class: hiddenClass, children: this.readOnlyStateText })] }));
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextFieldTemplate.js","sourceRoot":"","sources":["../src/TextFieldTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type TextField from \"./TextField.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type { Booleanish } from \"@ui5/webcomponents-base/dist/thirdparty/preact/jsx.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\nexport default function TextFieldTemplate(this: TextField) {\n const rootClass = \"udex-text-field\";\n const hiddenClass = \"hidden-text\";\n\n return (\n <div class={`${rootClass}__container`}>\n {this.label &&\n <label for={`${this._id}-input`} class={this.labelClasses} part=\"label\">\n {this.label}{this.required && \" * \"}\n </label>\n }\n <div class={`${rootClass}__wrap`}>\n <input id={`${this._id}-input`} class={`${rootClass}__input`}\n type={this.type}\n value={this.value}\n maxlength={this.maxlength}\n disabled={this.disabled}\n readonly={this.isInputReadonly}\n required={this.required}\n aria-required={this.required}\n aria-readonly={this.isInputReadonly}\n placeholder={this.active || !this.label ? this.placeholder : undefined}\n autocomplete={this.autocomplete}\n role={this.inputRole as AriaRole}\n name={this.name}\n ref={this.fieldRef}\n aria-disabled={this.readonlyNotDisabled}\n aria-invalid={this.accInfo.ariaInvalid as Booleanish}\n aria-describedby={this.accInfo.ariaDescribedBy}\n aria-haspopup={this.accInfo.ariaHasPopup as Booleanish}\n aria-label={this.accInfo.ariaLabel}\n part=\"textfield-input\"\n min={this.min}\n max={this.max}\n step={this.step}\n onChange={this.handleChange}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown} />\n {this.icon &&\n <UDExControlButton\n part=\"textfield-control-btn\"\n class={`${rootClass}__icon-container`}\n size=\"Large\"\n tooltip={this.buttonTooltip}\n active={this.active}\n disabled={this.disabled}\n readonly={this.readonly}\n non-interactive={this.readonly}\n design={this.controlButtonDesign}\n icon={this.icon}\n _is-combobox-role={this._isComboboxRole}\n accessible-name={this.buttonAccessibleName}\n accessible-description={this.buttonAccessibleDescription}\n accessibilityAttributes={this.iconAccessibilityAttributes}\n onClick={this.handleIconClick}>\n </UDExControlButton>\n }\n </div>\n {this.supportingText &&\n <>\n <UDExStatusMessage\n supporting-text={this.supportingText}\n value-state={this.valueState}\n disabled={this.disabled ? \"true\" : undefined}>\n </UDExStatusMessage>\n <span id={`${this._id}-supportingTextDesc`} class={hiddenClass}>\n {this.supportingText}\n </span>\n </>\n }\n {this.hasValueState &&\n <span id={`${this._id}-valueStateDesc`} class={hiddenClass}>\n {this.valueStateText}\n </span>\n }\n {this.readonly &&\n <span id={`${this._id}-stateReadOnlyDesc`} class={hiddenClass}>\n {this.readOnlyStateText}\n </span>\n }\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"TextFieldTemplate.js","sourceRoot":"","sources":["../src/TextFieldTemplate.tsx"],"names":[],"mappings":";AAGA,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AACnD,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC;IACpC,MAAM,WAAW,GAAG,aAAa,CAAC;IAElC,OAAO,CACL,eAAK,KAAK,EAAE,GAAG,SAAS,aAAa,aAClC,IAAI,CAAC,KAAK;gBACT,iBAAO,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAC,OAAO,aACpE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,IAC7B,EAEV,eAAK,KAAK,EAAE,GAAG,SAAS,QAAQ,aAC9B,gBAAO,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS,SAAS,EAC1D,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,mBACR,IAAI,CAAC,QAAQ,mBACb,IAAI,CAAC,eAAe,EACnC,WAAW,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACtE,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,IAAI,EAAE,IAAI,CAAC,SAAqB,EAChC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,GAAG,EAAE,IAAI,CAAC,QAAQ,mBACH,IAAI,CAAC,mBAAmB,kBACzB,IAAI,CAAC,OAAO,CAAC,WAAyB,sBAClC,IAAI,CAAC,OAAO,CAAC,eAAe,mBAC/B,IAAI,CAAC,OAAO,CAAC,YAA0B,gBAC1C,IAAI,CAAC,OAAO,CAAC,SAAS,EAClC,IAAI,EAAC,iBAAiB,EACtB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,GAAI,EAClC,IAAI,CAAC,IAAI;wBACR,KAAC,iBAAiB,IAChB,IAAI,EAAC,uBAAuB,EAC5B,KAAK,EAAE,GAAG,SAAS,kBAAkB,EACrC,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,qBACN,IAAI,CAAC,QAAQ,EAC9B,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAChC,IAAI,EAAE,IAAI,CAAC,IAAI,uBACI,IAAI,CAAC,eAAe,qBACtB,IAAI,CAAC,oBAAoB,4BAClB,IAAI,CAAC,2BAA2B,EACxD,uBAAuB,EAAE,IAAI,CAAC,2BAA2B,EACzD,OAAO,EAAE,IAAI,CAAC,eAAe,GACX,IAElB,EACL,IAAI,CAAC,cAAc;gBAClB,8BACE,KAAC,iBAAiB,uBACC,IAAI,CAAC,cAAc,iBACvB,IAAI,CAAC,UAAU,EAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACL,EACpB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,EAAE,KAAK,EAAE,WAAW,YAC3D,IAAI,CAAC,cAAc,GACf,IACN,EAEJ,IAAI,CAAC,aAAa;gBACjB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,iBAAiB,EAAE,KAAK,EAAE,WAAW,YACvD,IAAI,CAAC,cAAc,GACf,EAER,IAAI,CAAC,QAAQ;gBACZ,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,oBAAoB,EAAE,KAAK,EAAE,WAAW,YAC1D,IAAI,CAAC,iBAAiB,GAClB,IAEL,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type TextField from \"./TextField.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type { Booleanish } from \"@ui5/webcomponents-base/dist/thirdparty/preact/jsx.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\nexport default function TextFieldTemplate(this: TextField) {\n const rootClass = \"udex-text-field\";\n const hiddenClass = \"hidden-text\";\n\n return (\n <div class={`${rootClass}__container`}>\n {this.label &&\n <label for={`${this._id}-input`} class={this.labelClasses} part=\"label\">\n {this.label}{this.required && \" * \"}\n </label>\n }\n <div class={`${rootClass}__wrap`}>\n <input id={`${this._id}-input`} class={`${rootClass}__input`}\n type={this.type}\n value={this.value}\n maxlength={this.maxlength}\n disabled={this.disabled}\n readonly={this.isInputReadonly}\n required={this.required}\n aria-required={this.required}\n aria-readonly={this.isInputReadonly}\n placeholder={this.active || !this.label ? this.placeholder : undefined}\n autocomplete={this.autocomplete}\n role={this.inputRole as AriaRole}\n name={this.name}\n ref={this.fieldRef}\n aria-disabled={this.readonlyNotDisabled}\n aria-invalid={this.accInfo.ariaInvalid as Booleanish}\n aria-describedby={this.accInfo.ariaDescribedBy}\n aria-haspopup={this.accInfo.ariaHasPopup as Booleanish}\n aria-label={this.accInfo.ariaLabel}\n part=\"textfield-input\"\n min={this.min}\n max={this.max}\n step={this.step}\n onChange={this.handleChange}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown} />\n {this.icon &&\n <UDExControlButton\n part=\"textfield-control-btn\"\n class={`${rootClass}__icon-container`}\n size=\"Large\"\n tooltip={this.buttonTooltip}\n active={this.active}\n disabled={this.disabled}\n readonly={this.readonly}\n non-interactive={this.readonly}\n design={this.controlButtonDesign}\n icon={this.icon}\n _is-combobox-role={this._isComboboxRole}\n accessible-name={this.buttonAccessibleName}\n accessible-description={this.buttonAccessibleDescription}\n accessibilityAttributes={this.iconAccessibilityAttributes}\n onClick={this.handleIconClick}>\n </UDExControlButton>\n }\n </div>\n {this.supportingText &&\n <>\n <UDExStatusMessage\n supporting-text={this.supportingText}\n value-state={this.valueState}\n disabled={this.disabled}>\n </UDExStatusMessage>\n <span id={`${this._id}-supportingTextDesc`} class={hiddenClass}>\n {this.supportingText}\n </span>\n </>\n }\n {this.hasValueState &&\n <span id={`${this._id}-valueStateDesc`} class={hiddenClass}>\n {this.valueStateText}\n </span>\n }\n {this.readonly &&\n <span id={`${this._id}-stateReadOnlyDesc`} class={hiddenClass}>\n {this.readOnlyStateText}\n </span>\n }\n </div>\n );\n}\n"]}