@sapudex/web-components 0.127.6 → 0.138.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 (366) hide show
  1. package/bundle.esm.js +2 -0
  2. package/dist/Accordion.d.ts +1 -1
  3. package/dist/Accordion.js +1 -1
  4. package/dist/Accordion.js.map +1 -1
  5. package/dist/AccordionItem.d.ts +1 -1
  6. package/dist/AccordionItem.js +2 -2
  7. package/dist/AccordionItem.js.map +1 -1
  8. package/dist/Checkbox.d.ts +1 -1
  9. package/dist/Checkbox.js +1 -1
  10. package/dist/Checkbox.js.map +1 -1
  11. package/dist/CountrySelector.d.ts +24 -6
  12. package/dist/CountrySelector.js +25 -7
  13. package/dist/CountrySelector.js.map +1 -1
  14. package/dist/DatePicker.d.ts +1 -0
  15. package/dist/DatePicker.js +4 -1
  16. package/dist/DatePicker.js.map +1 -1
  17. package/dist/Dropdown.d.ts +1 -1
  18. package/dist/Dropdown.js +3 -3
  19. package/dist/Dropdown.js.map +1 -1
  20. package/dist/FilterMenu.d.ts +19 -5
  21. package/dist/FilterMenu.js +57 -20
  22. package/dist/FilterMenu.js.map +1 -1
  23. package/dist/Footer.d.ts +9 -1
  24. package/dist/Footer.js +8 -1
  25. package/dist/Footer.js.map +1 -1
  26. package/dist/Link.d.ts +1 -1
  27. package/dist/Link.js +1 -1
  28. package/dist/Link.js.map +1 -1
  29. package/dist/List.d.ts +1 -1
  30. package/dist/List.js +17 -1
  31. package/dist/List.js.map +1 -1
  32. package/dist/ListGroupHeader.d.ts +2 -2
  33. package/dist/ListGroupHeader.js +2 -2
  34. package/dist/ListGroupHeader.js.map +1 -1
  35. package/dist/ListItem.d.ts +3 -3
  36. package/dist/ListItem.js +6 -7
  37. package/dist/ListItem.js.map +1 -1
  38. package/dist/ListSelectAll.d.ts +1 -1
  39. package/dist/ListSelectAll.js +1 -1
  40. package/dist/ListSelectAll.js.map +1 -1
  41. package/dist/MastheadItem.d.ts +9 -1
  42. package/dist/MastheadItem.js +26 -9
  43. package/dist/MastheadItem.js.map +1 -1
  44. package/dist/MastheadMenu.d.ts +5 -0
  45. package/dist/MastheadMenu.js +24 -0
  46. package/dist/MastheadMenu.js.map +1 -1
  47. package/dist/MastheadMenuItem.d.ts +2 -3
  48. package/dist/MastheadMenuItem.js +2 -17
  49. package/dist/MastheadMenuItem.js.map +1 -1
  50. package/dist/MastheadMobileMenu.d.ts +25 -5
  51. package/dist/MastheadMobileMenu.js +135 -21
  52. package/dist/MastheadMobileMenu.js.map +1 -1
  53. package/dist/MastheadProfileMenu.d.ts +13 -4
  54. package/dist/MastheadProfileMenu.js +40 -9
  55. package/dist/MastheadProfileMenu.js.map +1 -1
  56. package/dist/MastheadShell.d.ts +3 -0
  57. package/dist/MastheadShell.js +42 -8
  58. package/dist/MastheadShell.js.map +1 -1
  59. package/dist/MediaPlayer.d.ts +3 -3
  60. package/dist/MediaPlayer.js +115 -25
  61. package/dist/MediaPlayer.js.map +1 -1
  62. package/dist/PhoneNumberField.d.ts +26 -0
  63. package/dist/PhoneNumberField.js +46 -2
  64. package/dist/PhoneNumberField.js.map +1 -1
  65. package/dist/ReviewItem.d.ts +105 -0
  66. package/dist/ReviewItem.js +157 -0
  67. package/dist/ReviewItem.js.map +1 -0
  68. package/dist/Search.d.ts +15 -1
  69. package/dist/Search.js +30 -5
  70. package/dist/Search.js.map +1 -1
  71. package/dist/SecondaryNavigation.d.ts +1 -0
  72. package/dist/SecondaryNavigation.js +11 -10
  73. package/dist/SecondaryNavigation.js.map +1 -1
  74. package/dist/SecondaryNavigationItem.js +1 -1
  75. package/dist/SecondaryNavigationItem.js.map +1 -1
  76. package/dist/SecondaryNavigationItemBase.js +1 -1
  77. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  78. package/dist/SelectBox.d.ts +33 -9
  79. package/dist/SelectBox.js +119 -60
  80. package/dist/SelectBox.js.map +1 -1
  81. package/dist/Switch.d.ts +19 -0
  82. package/dist/Switch.js +19 -0
  83. package/dist/Switch.js.map +1 -1
  84. package/dist/Tab.d.ts +1 -1
  85. package/dist/Tab.js +1 -1
  86. package/dist/Tab.js.map +1 -1
  87. package/dist/TabNavigation.d.ts +1 -1
  88. package/dist/TabNavigation.js +1 -1
  89. package/dist/TabNavigation.js.map +1 -1
  90. package/dist/Tag.d.ts +9 -1
  91. package/dist/Tag.js +20 -3
  92. package/dist/Tag.js.map +1 -1
  93. package/dist/TagGroup.d.ts +94 -0
  94. package/dist/TagGroup.js +174 -0
  95. package/dist/TagGroup.js.map +1 -0
  96. package/dist/TextArea.d.ts +13 -0
  97. package/dist/TextArea.js +15 -0
  98. package/dist/TextArea.js.map +1 -1
  99. package/dist/TextField.d.ts +23 -13
  100. package/dist/TextField.js +16 -2
  101. package/dist/TextField.js.map +1 -1
  102. package/dist/Tooltip.d.ts +1 -1
  103. package/dist/Tooltip.js +1 -1
  104. package/dist/Tooltip.js.map +1 -1
  105. package/dist/assets/{bundle.esm-7d53f4f2.js → bundle.esm-bb1c7413.js} +190 -188
  106. package/dist/assets/messagebundle_en-c677773a.js +1 -0
  107. package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
  108. package/dist/assets/video.es-60bfb78c.js +228 -0
  109. package/dist/css/themes/CountrySelector.css +1 -1
  110. package/dist/css/themes/FilterMenu.css +1 -1
  111. package/dist/css/themes/ListItem.css +1 -1
  112. package/dist/css/themes/MastheadItem.css +1 -1
  113. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  114. package/dist/css/themes/PhoneNumberField.css +1 -1
  115. package/dist/css/themes/RatingIndicator.css +1 -1
  116. package/dist/css/themes/ReviewItem.css +1 -0
  117. package/dist/css/themes/Search.css +1 -1
  118. package/dist/css/themes/SecondaryNavigation.css +1 -1
  119. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  120. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  121. package/dist/css/themes/SelectBox.css +1 -1
  122. package/dist/css/themes/Slider.css +1 -1
  123. package/dist/css/themes/Tag.css +1 -1
  124. package/dist/css/themes/TagGroup.css +1 -0
  125. package/dist/css/themes/TextArea.css +1 -1
  126. package/dist/css/themes/TextField.css +1 -1
  127. package/dist/css/themes/Toast.css +1 -1
  128. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  129. package/dist/custom-elements-internal.json +783 -362
  130. package/dist/custom-elements.json +751 -369
  131. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  132. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  133. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  134. package/dist/generated/i18n/i18n-defaults.js +6 -4
  135. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  136. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  137. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  138. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  139. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  140. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  141. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  142. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  143. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  144. package/dist/generated/templates/FooterTemplate.lit.js +9 -9
  145. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  146. package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -8
  147. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  148. package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
  149. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  150. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  151. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  152. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  153. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  155. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
  157. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
  159. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
  161. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/MastheadShellTemplate.lit.js +7 -7
  163. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
  165. package/dist/generated/templates/MediaPlayerTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +5 -2
  167. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +4 -0
  169. package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
  170. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -0
  171. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
  172. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  173. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  174. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  175. package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
  176. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  177. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
  178. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  179. package/dist/generated/templates/TabNavigationTemplate.lit.js +3 -1
  180. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  181. package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
  182. package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
  183. package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
  184. package/dist/generated/templates/TagTemplate.lit.js +11 -7
  185. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  187. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
  189. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  190. package/dist/generated/themes/CountrySelector.css.js +1 -1
  191. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  192. package/dist/generated/themes/FilterMenu.css.js +1 -1
  193. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  194. package/dist/generated/themes/ListItem.css.js +1 -1
  195. package/dist/generated/themes/ListItem.css.js.map +1 -1
  196. package/dist/generated/themes/MastheadItem.css.js +1 -1
  197. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  198. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  199. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  200. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  201. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  202. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  203. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  204. package/dist/generated/themes/ReviewItem.css.d.ts +3 -0
  205. package/dist/generated/themes/ReviewItem.css.js +9 -0
  206. package/dist/generated/themes/ReviewItem.css.js.map +1 -0
  207. package/dist/generated/themes/Search.css.js +1 -1
  208. package/dist/generated/themes/Search.css.js.map +1 -1
  209. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  210. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  211. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  212. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  213. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  214. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  215. package/dist/generated/themes/SelectBox.css.js +1 -1
  216. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  217. package/dist/generated/themes/Slider.css.js +1 -1
  218. package/dist/generated/themes/Slider.css.js.map +1 -1
  219. package/dist/generated/themes/Tag.css.js +1 -1
  220. package/dist/generated/themes/Tag.css.js.map +1 -1
  221. package/dist/generated/themes/TagGroup.css.d.ts +3 -0
  222. package/dist/generated/themes/TagGroup.css.js +9 -0
  223. package/dist/generated/themes/TagGroup.css.js.map +1 -0
  224. package/dist/generated/themes/TextArea.css.js +1 -1
  225. package/dist/generated/themes/TextArea.css.js.map +1 -1
  226. package/dist/generated/themes/TextField.css.js +1 -1
  227. package/dist/generated/themes/TextField.css.js.map +1 -1
  228. package/dist/generated/themes/Toast.css.js +1 -1
  229. package/dist/generated/themes/Toast.css.js.map +1 -1
  230. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  231. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  232. package/dist/i18n/messagebundle.properties +7 -3
  233. package/dist/i18n/messagebundle_en.properties +5 -3
  234. package/dist/vscode.html-custom-data.json +148 -78
  235. package/dist/web-types.json +382 -142
  236. package/package.json +8 -8
  237. package/src/Accordion.ts +1 -1
  238. package/src/AccordionItem.ts +2 -2
  239. package/src/Checkbox.ts +1 -1
  240. package/src/CountrySelector.hbs +19 -15
  241. package/src/CountrySelector.ts +42 -9
  242. package/src/DatePicker.hbs +7 -8
  243. package/src/DatePicker.ts +14 -10
  244. package/src/Dropdown.hbs +3 -0
  245. package/src/Dropdown.ts +3 -3
  246. package/src/FilterMenu.hbs +58 -59
  247. package/src/FilterMenu.ts +91 -37
  248. package/src/Footer.hbs +9 -0
  249. package/src/Footer.ts +10 -1
  250. package/src/HeroBanner.hbs +4 -1
  251. package/src/Link.ts +1 -1
  252. package/src/List.ts +43 -23
  253. package/src/ListGroupHeader.ts +2 -2
  254. package/src/ListItem.hbs +4 -2
  255. package/src/ListItem.ts +8 -10
  256. package/src/ListSelectAll.hbs +1 -1
  257. package/src/ListSelectAll.ts +1 -1
  258. package/src/MastheadItem.hbs +5 -3
  259. package/src/MastheadItem.ts +35 -8
  260. package/src/MastheadMenu.hbs +4 -2
  261. package/src/MastheadMenu.ts +30 -0
  262. package/src/MastheadMenuItem.hbs +0 -2
  263. package/src/MastheadMenuItem.ts +2 -16
  264. package/src/MastheadMobileMenu.hbs +36 -10
  265. package/src/MastheadMobileMenu.ts +162 -22
  266. package/src/MastheadProfileMenu.hbs +6 -2
  267. package/src/MastheadProfileMenu.ts +66 -20
  268. package/src/MastheadShell.hbs +10 -4
  269. package/src/MastheadShell.ts +49 -8
  270. package/src/MediaPlayer.hbs +1 -3
  271. package/src/MediaPlayer.ts +122 -26
  272. package/src/PhoneNumberField.hbs +18 -3
  273. package/src/PhoneNumberField.ts +67 -2
  274. package/src/ReviewItem.hbs +20 -0
  275. package/src/ReviewItem.ts +227 -0
  276. package/src/Search.ts +41 -4
  277. package/src/SecondaryNavigation.hbs +9 -7
  278. package/src/SecondaryNavigation.ts +13 -11
  279. package/src/SecondaryNavigationItem.ts +1 -1
  280. package/src/SecondaryNavigationItemBase.ts +1 -1
  281. package/src/SelectBox.hbs +9 -7
  282. package/src/SelectBox.ts +153 -72
  283. package/src/Switch.ts +21 -0
  284. package/src/Tab.ts +1 -1
  285. package/src/TabHeader.hbs +3 -1
  286. package/src/TabInOverflow.hbs +16 -4
  287. package/src/TabNavigation.hbs +15 -7
  288. package/src/TabNavigation.ts +1 -1
  289. package/src/Tag.hbs +28 -12
  290. package/src/Tag.ts +25 -4
  291. package/src/TagGroup.hbs +48 -0
  292. package/src/TagGroup.ts +222 -0
  293. package/src/TextArea.hbs +36 -33
  294. package/src/TextArea.ts +25 -0
  295. package/src/TextField.hbs +8 -6
  296. package/src/TextField.ts +50 -18
  297. package/src/Tooltip.ts +1 -1
  298. package/src/generated/i18n/i18n-defaults.ts +2 -2
  299. package/src/generated/templates/CountrySelectorTemplate.lit.ts +3 -3
  300. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  301. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  302. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  303. package/src/generated/templates/FooterTemplate.lit.ts +9 -9
  304. package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -8
  305. package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
  306. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  307. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  308. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  309. package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
  310. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
  311. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
  312. package/src/generated/templates/MastheadShellTemplate.lit.ts +7 -7
  313. package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
  314. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +5 -2
  315. package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
  316. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
  317. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  318. package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
  319. package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
  320. package/src/generated/templates/TabNavigationTemplate.lit.ts +3 -1
  321. package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
  322. package/src/generated/templates/TagTemplate.lit.ts +11 -7
  323. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  324. package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
  325. package/src/generated/themes/CountrySelector.css.ts +1 -1
  326. package/src/generated/themes/FilterMenu.css.ts +1 -1
  327. package/src/generated/themes/ListItem.css.ts +1 -1
  328. package/src/generated/themes/MastheadItem.css.ts +1 -1
  329. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  330. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  331. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  332. package/src/generated/themes/ReviewItem.css.ts +13 -0
  333. package/src/generated/themes/Search.css.ts +1 -1
  334. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  335. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  336. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  337. package/src/generated/themes/SelectBox.css.ts +1 -1
  338. package/src/generated/themes/Slider.css.ts +1 -1
  339. package/src/generated/themes/Tag.css.ts +1 -1
  340. package/src/generated/themes/TagGroup.css.ts +13 -0
  341. package/src/generated/themes/TextArea.css.ts +1 -1
  342. package/src/generated/themes/TextField.css.ts +1 -1
  343. package/src/generated/themes/Toast.css.ts +1 -1
  344. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  345. package/src/i18n/messagebundle.properties +7 -3
  346. package/src/i18n/messagebundle_en.properties +5 -3
  347. package/src/themes/CountrySelector.css +49 -26
  348. package/src/themes/FilterMenu.css +52 -15
  349. package/src/themes/ListItem.css +4 -0
  350. package/src/themes/MastheadItem.css +12 -2
  351. package/src/themes/MastheadMobileMenu.css +4 -0
  352. package/src/themes/PhoneNumberField.css +14 -1
  353. package/src/themes/ReviewItem.css +121 -0
  354. package/src/themes/Search.css +9 -0
  355. package/src/themes/SecondaryNavigation.css +13 -14
  356. package/src/themes/SecondaryNavigationItem.css +3 -2
  357. package/src/themes/SecondaryNavigationSubItem.css +5 -5
  358. package/src/themes/SelectBox.css +34 -0
  359. package/src/themes/Tag.css +20 -0
  360. package/src/themes/TagGroup.css +90 -0
  361. package/src/themes/TextArea.css +13 -0
  362. package/src/themes/TextField.css +25 -8
  363. package/src/themes/Toast.css +4 -0
  364. package/dist/assets/messagebundle_en-6dcc9ab4.js +0 -1
  365. package/dist/assets/parameters-bundle.css-de55cf62.js +0 -2
  366. package/dist/assets/video.es-17aecf95.js +0 -219
@@ -0,0 +1,174 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
+ import Tokenizer from "@ui5/webcomponents/dist/Tokenizer.js";
9
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
11
+ import { isEnter, isSpace, isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
12
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
13
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
14
+ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
15
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
16
+ import Token from "@ui5/webcomponents/dist/Token.js";
17
+ import UDExTag from "./Tag.js";
18
+ import UDExTooltip from "./Tooltip.js";
19
+ import TagGroupTemplate from "./generated/templates/TagGroupTemplate.lit.js";
20
+ // Styles
21
+ import TagGroupCss from "./generated/themes/TagGroup.css";
22
+ export var PlacementType;
23
+ (function (PlacementType) {
24
+ PlacementType["Left"] = "Left";
25
+ PlacementType["Right"] = "Right";
26
+ PlacementType["Top"] = "Top";
27
+ PlacementType["Bottom"] = "Bottom";
28
+ })(PlacementType || (PlacementType = {}));
29
+ /**
30
+ * @class
31
+ *
32
+ * <h3 class="comment-api-title">Overview</h3>
33
+ *
34
+ *
35
+ * <h3>Usage</h3>
36
+ *
37
+ * For the <code>udex-tag-group</code>
38
+ * <h3>ES6 Module Import</h3>
39
+ *
40
+ * <code>import "@udex/web-components/dist/TagGroup.js";</code>
41
+ *
42
+ * @constructor
43
+ * @extends UI5Element
44
+ * @public
45
+ */
46
+ let UDExTagGroup = class UDExTagGroup extends UI5Element {
47
+ constructor() {
48
+ super();
49
+ this._resizeHandler = this._onResize.bind(this);
50
+ }
51
+ get hiddenTags() {
52
+ return this._tokenizer?.overflownTokens || [];
53
+ }
54
+ get isReadOrDisplayOnly() {
55
+ return this.readonly || this.displayonly;
56
+ }
57
+ get tagTabIndex() {
58
+ return this.disabled ? "-1" : "";
59
+ }
60
+ get tokenizer() {
61
+ return this.shadowRoot.querySelector(`#${this._id}-tag-group-tokenizer`);
62
+ }
63
+ get tagRole() {
64
+ return this.displayonly || this.readonly ? "option" : "";
65
+ }
66
+ onAfterRendering() {
67
+ this._tokenizer = this.tokenizer;
68
+ this._nMoreBtn = this._tokenizer.shadowRoot?.querySelector(`.ui5-tokenizer-more-text`) || null;
69
+ if (!this.readonly && !this.disabled && this._nMoreBtn && !this._nMoreBtn.hasAttribute("tabindex")) {
70
+ this._nMoreBtn.setAttribute("tabindex", "0");
71
+ this._nMoreBtn.addEventListener("keydown", this._nMoreKeyDownHandler.bind(this));
72
+ }
73
+ }
74
+ _nMoreKeyDownHandler(e) {
75
+ if (isSpace(e) || isEnter(e)) {
76
+ this.showMoreItems();
77
+ }
78
+ }
79
+ onEnterDOM() {
80
+ ResizeHandler.register(this, this._resizeHandler);
81
+ }
82
+ onExitDOM() {
83
+ ResizeHandler.deregister(this, this._resizeHandler);
84
+ this._nMoreBtn?.removeEventListener("keydown", this._nMoreKeyDownHandler.bind(this));
85
+ }
86
+ _onResize() {
87
+ this._isHiddenTags = false;
88
+ this._isHiddenTags = this._tokenizer?._nMoreCount > 0;
89
+ }
90
+ tagClickHandler(e) {
91
+ this.fireEvent("tag-click", { tag: e.target });
92
+ }
93
+ tagIconClickHandler(e) {
94
+ this.fireEvent("tag-icon-click", { tag: e.target });
95
+ }
96
+ handleShowMoreButtonKeydown(e) {
97
+ if (isEscape(e)) {
98
+ this._nMoreBtn?.focus();
99
+ }
100
+ }
101
+ handleTagKeyDown(e) {
102
+ this.fireEvent("tag-keydown", { originalEvent: e }, true);
103
+ }
104
+ showMoreItems() {
105
+ if (this.fireEvent("show-more-tags", {}, true)) {
106
+ const tooltip = this.shadowRoot.querySelector(`#${this._id}-tag-group-tooltip`);
107
+ if (this._nMoreBtn) {
108
+ tooltip?.onOpen(this._nMoreBtn);
109
+ }
110
+ }
111
+ }
112
+ };
113
+ __decorate([
114
+ property({ type: Boolean })
115
+ ], UDExTagGroup.prototype, "tokenizerExpanded", void 0);
116
+ __decorate([
117
+ property({ type: Boolean })
118
+ ], UDExTagGroup.prototype, "disabled", void 0);
119
+ __decorate([
120
+ property({ type: Boolean })
121
+ ], UDExTagGroup.prototype, "readonly", void 0);
122
+ __decorate([
123
+ property({ type: Boolean })
124
+ ], UDExTagGroup.prototype, "displayonly", void 0);
125
+ __decorate([
126
+ slot({ type: HTMLElement, "default": true })
127
+ ], UDExTagGroup.prototype, "items", void 0);
128
+ __decorate([
129
+ property({ type: PlacementType, defaultValue: PlacementType.Bottom })
130
+ ], UDExTagGroup.prototype, "tooltipPlacement", void 0);
131
+ __decorate([
132
+ property({ type: Boolean })
133
+ ], UDExTagGroup.prototype, "_isHiddenTags", void 0);
134
+ UDExTagGroup = __decorate([
135
+ customElement({
136
+ tag: "udex-tag-group",
137
+ renderer: litRender,
138
+ styles: TagGroupCss,
139
+ template: TagGroupTemplate,
140
+ dependencies: [UDExTag, UDExTooltip, Tokenizer, Token],
141
+ })
142
+ /**
143
+ * Emitted when tag was clicked
144
+ *
145
+ * @public
146
+ */
147
+ ,
148
+ event("tag-click")
149
+ /**
150
+ * Emitted when icon in tag was clicked
151
+ *
152
+ * @public
153
+ */
154
+ ,
155
+ event("tag-icon-click")
156
+ /**
157
+ * Emitted when the tooltip was opened, can be canceled
158
+ *
159
+ * @public
160
+ */
161
+ ,
162
+ event("show-more-tags")
163
+ /**
164
+ * Emitted when a keydown event occurs on a tag, can be canceled
165
+ * Emitted custom event with keycode and tag details
166
+ *
167
+ * @public
168
+ */
169
+ ,
170
+ event("tag-keydown")
171
+ ], UDExTagGroup);
172
+ UDExTagGroup.define();
173
+ export default UDExTagGroup;
174
+ //# sourceMappingURL=TagGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagGroup.js","sourceRoot":"","sources":["../src/TagGroup.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,SAAS,MAAM,sCAAsC,CAAC;AAC7D,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,KAAK,MAAM,kCAAkC,CAAC;AACrD,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,gBAAgB,MAAM,+CAA+C,CAAC;AAE7E,SAAS;AACT,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAE1D,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,gCAAe,CAAA;IACf,4BAAW,CAAA;IACX,kCAAiB,CAAA;AACnB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED;;;;;;;;;;;;;;;;GAgBG;AAiCH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IA+DnC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,UAAU,EAAE,eAAe,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAY,IAAI,IAAI,CAAC,GAAG,sBAAsB,CAAE,CAAC;IACxF,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAC;QAC/F,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;YAClG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAClF;IACH,CAAC;IAED,oBAAoB,CAAC,CAAQ;QAC3B,IAAI,OAAO,CAAC,CAAkB,CAAC,IAAI,OAAO,CAAC,CAAkB,CAAC,EAAE;YAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED,UAAU;QACR,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,SAAS;QACP,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,SAAS;QACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,eAAe,CAAC,CAAc;QAC5B,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAqB,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,mBAAmB,CAAC,CAAc;QAChC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAqB,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,2BAA2B,CAAC,CAAgB;QAC1C,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;SACzB;IACH,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAC/B,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,IAAI,IAAI,CAAC,GAAG,oBAAoB,CAAE,CAAC;YAC/F,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACjC;SACF;IACH,CAAC;CACF,CAAA;AAvIG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACE;AAQ5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACP;AASnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACP;AASnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACJ;AAQtB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;2CACpB;AASvB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;sDAC9B;AAMtC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACF;AAzDtB,YAAY;IAhCjB,aAAa,CAAC;QACb,GAAG,EAAE,gBAAgB;QACrB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC;KACvD,CAAC;IACF;;;;OAIG;;IACF,KAAK,CAAC,WAAW,CAAC;IACnB;;;;OAIG;;IACF,KAAK,CAAC,gBAAgB,CAAC;IACxB;;;;OAIG;;IACF,KAAK,CAAC,gBAAgB,CAAC;IACxB;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,CAAC;GACf,YAAY,CA+IjB;AAED,YAAY,CAAC,MAAM,EAAE,CAAC;AAEtB,eAAe,YAAY,CAAC","sourcesContent":["import UI5Element 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 { isEnter, isSpace, isEscape } 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.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Token from \"@ui5/webcomponents/dist/Token.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExTooltip from \"./Tooltip.js\";\n\nimport TagGroupTemplate from \"./generated/templates/TagGroupTemplate.lit.js\";\n\n// Styles\nimport TagGroupCss from \"./generated/themes/TagGroup.css\";\n\nexport enum PlacementType {\n Left = \"Left\",\n Right = \"Right\",\n Top = \"Top\",\n Bottom = \"Bottom\",\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 \"@udex/web-components/dist/TagGroup.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-tag-group\",\n renderer: litRender,\n styles: TagGroupCss,\n template: TagGroupTemplate,\n dependencies: [UDExTag, UDExTooltip, Tokenizer, Token],\n})\n/**\n * Emitted when tag was clicked\n *\n * @public\n */\n@event(\"tag-click\")\n/**\n * Emitted when icon in tag was clicked\n *\n * @public\n */\n@event(\"tag-icon-click\")\n/**\n * Emitted when the tooltip was opened, can be canceled\n *\n * @public\n */\n@event(\"show-more-tags\")\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 */\n@event(\"tag-keydown\")\nclass UDExTagGroup extends UI5Element {\n /**\n * Defines whether the UI5Tokenizer is expanded.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n tokenizerExpanded!: boolean;\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 * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExTag>;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n tooltipPlacement!: `${PlacementType}`;\n\n /**\n * @private\n */\n @property({ type: Boolean })\n _isHiddenTags!: boolean;\n\n _tokenizer!: Tokenizer;\n _nMoreBtn!: HTMLElement | null;\n _resizeHandler: () => void;\n\n constructor() {\n super();\n this._resizeHandler = this._onResize.bind(this);\n }\n\n get hiddenTags(): Token[] {\n return this._tokenizer?.overflownTokens || [];\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get tagTabIndex(): string {\n return this.disabled ? \"-1\" : \"\";\n }\n\n get tokenizer(): Tokenizer {\n return this.shadowRoot!.querySelector<Tokenizer>(`#${this._id}-tag-group-tokenizer`)!;\n }\n\n get tagRole(): string {\n return this.displayonly || this.readonly ? \"option\" : \"\";\n }\n\n onAfterRendering(): void {\n this._tokenizer = this.tokenizer;\n this._nMoreBtn = this._tokenizer.shadowRoot?.querySelector(`.ui5-tokenizer-more-text`) || null;\n if (!this.readonly && !this.disabled && this._nMoreBtn && !this._nMoreBtn.hasAttribute(\"tabindex\")) {\n this._nMoreBtn.setAttribute(\"tabindex\", \"0\");\n this._nMoreBtn.addEventListener(\"keydown\", this._nMoreKeyDownHandler.bind(this));\n }\n }\n\n _nMoreKeyDownHandler(e: Event) {\n if (isSpace(e as KeyboardEvent) || isEnter(e as KeyboardEvent)) {\n this.showMoreItems();\n }\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._resizeHandler);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._resizeHandler);\n this._nMoreBtn?.removeEventListener(\"keydown\", this._nMoreKeyDownHandler.bind(this));\n }\n\n _onResize(): void {\n this._isHiddenTags = false;\n this._isHiddenTags = this._tokenizer?._nMoreCount > 0;\n }\n\n tagClickHandler(e: CustomEvent): void {\n this.fireEvent(\"tag-click\", { tag: e.target as HTMLElement });\n }\n\n tagIconClickHandler(e: CustomEvent): void {\n this.fireEvent(\"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 handleTagKeyDown(e: KeyboardEvent): void {\n this.fireEvent(\"tag-keydown\", { originalEvent: e }, true);\n }\n\n showMoreItems(): void {\n if (this.fireEvent(\"show-more-tags\", {}, true)) {\n const tooltip = this.shadowRoot!.querySelector<UDExTooltip>(`#${this._id}-tag-group-tooltip`)!;\n if (this._nMoreBtn) {\n tooltip?.onOpen(this._nMoreBtn);\n }\n }\n }\n}\n\nUDExTagGroup.define();\n\nexport default UDExTagGroup;\n"]}
@@ -153,6 +153,18 @@ declare class UDExTextArea extends UI5Element {
153
153
  * @public
154
154
  */
155
155
  accessibleNameRef: string;
156
+ /**
157
+ * Defines the active (focus)
158
+ * @default false
159
+ * @private
160
+ */
161
+ active: boolean;
162
+ /**
163
+ * Defines is it the touch of the textarea (only for mobile devices).
164
+ * @default false
165
+ * @private
166
+ */
167
+ _isTouched: boolean;
156
168
  static i18nBundle: I18nBundle;
157
169
  static onDefine(): Promise<void>;
158
170
  getInputDomRef(): HTMLTextAreaElement;
@@ -171,6 +183,7 @@ declare class UDExTextArea extends UI5Element {
171
183
  handleChange: () => void;
172
184
  handleGrowing: () => void;
173
185
  handleFocus: () => void;
186
+ handleClick(): void;
174
187
  handleBlur: () => void;
175
188
  get ariaInvalid(): "true" | null;
176
189
  onBeforeRendering(): void;
package/dist/TextArea.js CHANGED
@@ -12,6 +12,7 @@ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
12
12
  import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
13
13
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
14
14
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
15
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
15
16
  import { READ_ONLY, TEXTAREA_CHARACTERS_LEFT, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_STANDARD, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_WARNING, } from "./generated/i18n/i18n-defaults.js";
16
17
  import "@ui5/webcomponents/dist/Icon.js";
17
18
  import "@ui5/webcomponents-icons/dist/accept.js";
@@ -69,16 +70,19 @@ let UDExTextArea = UDExTextArea_1 = class UDExTextArea extends UI5Element {
69
70
  };
70
71
  this.handleFocus = () => {
71
72
  if (!this.disabled && !this.readonly && !this.displayonly) {
73
+ this.active = true;
72
74
  this.labelActiveClass = this._labelActiveClassName;
73
75
  }
74
76
  };
75
77
  this.handleBlur = () => {
78
+ this._isTouched = false;
76
79
  if (this.value) {
77
80
  this.labelActiveClass = this._labelActiveClassName;
78
81
  }
79
82
  else {
80
83
  this.labelActiveClass = "";
81
84
  }
85
+ this.active = false;
82
86
  };
83
87
  }
84
88
  static async onDefine() {
@@ -131,6 +135,11 @@ let UDExTextArea = UDExTextArea_1 = class UDExTextArea extends UI5Element {
131
135
  }
132
136
  }
133
137
  }
138
+ handleClick() {
139
+ if (!isDesktop()) {
140
+ this._isTouched = true;
141
+ }
142
+ }
134
143
  get ariaInvalid() {
135
144
  return this.fieldState === FieldState.Error ? "true" : null;
136
145
  }
@@ -196,6 +205,12 @@ __decorate([
196
205
  __decorate([
197
206
  property({ defaultValue: "" })
198
207
  ], UDExTextArea.prototype, "accessibleNameRef", void 0);
208
+ __decorate([
209
+ property({ type: Boolean })
210
+ ], UDExTextArea.prototype, "active", void 0);
211
+ __decorate([
212
+ property({ type: Boolean })
213
+ ], UDExTextArea.prototype, "_isTouched", void 0);
199
214
  UDExTextArea = UDExTextArea_1 = __decorate([
200
215
  customElement({
201
216
  tag: "udex-textarea",
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../src/TextArea.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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n READ_ONLY, TEXTAREA_CHARACTERS_LEFT, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_STANDARD, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/accept.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\n\nimport TextAreaTemplate from \"./generated/templates/TextAreaTemplate.lit.js\";\n\n// Styles\nimport TextAreaCss from \"./generated/themes/TextArea.css.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\nexport enum FieldState {\n Standard = \"Standard\",\n Warning = \"Warning\",\n Error = \"Error\",\n Success = \"Success\",\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-text-area\n * @public\n */\n@customElement({\n tag: \"udex-textarea\",\n renderer: litRender,\n styles: [TextAreaCss, getEffectiveScrollbarStyle()],\n template: TextAreaTemplate,\n dependencies: [UDExStatusMessage],\n})\n\nclass UDExTextArea extends UI5Element {\n _labelActiveClassName = \"udex-textarea__label--active\";\n\n /**\n * Defines label text for the textarea field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n label!: string;\n\n /**\n * Defines the value of the component.\n * <br><br>\n * <b>Note:</b> The property is updated upon typing.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n value!: string;\n\n /**\n * Defines the number of visible text lines for the component.\n * <br><br>\n * <b>Notes:</b>\n * <ul>\n * <li>If the <code>growing</code> property is enabled, this property defines the minimum rows to be displayed\n * in the textarea.</li>\n * <li>The CSS <code>height</code> property wins over the <code>rows</code> property, if both are set.</li>\n * </ul>\n *\n * @public\n */\n @property({ validator: Integer })\n rows!: number;\n\n /**\n * Enables the component to automatically grow and shrink dynamically with its content.\n * <br><br>\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n growing!: boolean;\n\n /**\n * Defines the maximum number of lines that the component can grow.\n *\n * @default 0\n * @public\n */\n @property({ validator: Integer, defaultValue: 0 })\n growingMaxLines!: number;\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n supportingText!: string;\n\n /**\n * Sets the maximum number of characters available in the textarea.\n *\n * @public\n */\n @property({ validator: Integer })\n maxlength?: number;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: FieldState, defaultValue: FieldState.Standard })\n fieldState!: `${FieldState}`;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the inner stored value of the readonly attribute of the input.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isInputReadonly!: boolean;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelClasses!: string;\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelActiveClass!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExTextArea.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n getInputDomRef() {\n return this.getDomRef()!.querySelector<HTMLTextAreaElement>(\"textarea\")!;\n }\n\n get hasValueState() {\n return this.fieldState === FieldState.Error || this.fieldState === FieldState.Warning || this.fieldState === FieldState.Success;\n }\n\n get fieldStateTypeMappings() {\n return {\n \"Success\": UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n \"Standard\": UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_STANDARD),\n \"Error\": UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n \"Warning\": UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n };\n }\n\n get ariaValueStateHiddenText() {\n if (!this.hasValueState) {\n return;\n }\n\n if (this.fieldState === FieldState.Standard) {\n return;\n }\n\n return `${this.fieldStateTypeMappings[this.fieldState]}`;\n }\n\n get readOnlyText() {\n return UDExTextArea.i18nBundle.getText(READ_ONLY);\n }\n\n get ariaDescribedBy() {\n const valueStateTextDescId = this.hasValueState ? `${this._id}-valueStateDesc` : \"\";\n const readonlyTextDescId = this.readonly ? `${this._id}-readonlyDesc` : \"\";\n const supportingTextDescId = this._supportingText ? `${this._id}-supportingTextDesc` : \"\";\n if (!valueStateTextDescId && !supportingTextDescId && !readonlyTextDescId) {\n return;\n }\n return `${valueStateTextDescId} ${supportingTextDescId} ${readonlyTextDescId}`;\n }\n\n get _supportingText() {\n if (this.supportingText.length) {\n return this.supportingText;\n }\n\n const maxLength = this.maxlength;\n\n if (maxLength !== null && maxLength !== undefined) {\n const leftCharactersCount = maxLength - this.value.length;\n\n if (leftCharactersCount >= 0) {\n return UDExTextArea.i18nBundle.getText(TEXTAREA_CHARACTERS_LEFT, leftCharactersCount);\n }\n }\n }\n\n handleInput = (event: InputEvent) => {\n this.value = (event.target as HTMLInputElement)?.value;\n };\n\n handleChange = () => {\n this.fireEvent(\"change\");\n };\n\n handleGrowing = () => {\n if (this.growing) {\n const nativeTextArea = this.getInputDomRef();\n\n if (!this.rows) {\n this.rows = 1;\n }\n nativeTextArea.style.height = \"auto\";\n // 2px - to avoid an unnecessary scrollbar, the border needs to be taken into account\n nativeTextArea.style.height = `${nativeTextArea.scrollHeight + 2}px`;\n\n if (this.growingMaxLines) {\n const style = getComputedStyle(nativeTextArea);\n\n const lineHeight = parseInt(style.lineHeight);\n const paddingTop = parseInt(style.paddingTop);\n const paddingBottom = parseInt(style.paddingBottom);\n\n const heightRatio = this.growingMaxLines > this.rows ? this.growingMaxLines : this.rows;\n\n const growingMaxHeight = lineHeight * heightRatio + paddingTop + paddingBottom;\n\n // 2px - to avoid an unnecessary scrollbar, the border needs to be taken into account\n nativeTextArea.style.maxHeight = `${growingMaxHeight + 2}px`;\n }\n }\n };\n\n handleFocus = () => {\n if (!this.disabled && !this.readonly && !this.displayonly) {\n this.labelActiveClass = this._labelActiveClassName;\n }\n };\n\n handleBlur = () => {\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n };\n\n get ariaInvalid() {\n return this.fieldState === FieldState.Error ? \"true\" : null;\n }\n\n onBeforeRendering() {\n if (this.value && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n }\n\n this.isInputReadonly = this.readonly || this.displayonly;\n\n this.labelClasses = `udex-textarea__label ${this.labelActiveClass}`;\n }\n\n onAfterRendering() {\n this.handleGrowing();\n }\n}\n\nUDExTextArea.define();\n\nexport default UDExTextArea;\n"]}
1
+ {"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../src/TextArea.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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n READ_ONLY, TEXTAREA_CHARACTERS_LEFT, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_STANDARD, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/accept.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\n\nimport TextAreaTemplate from \"./generated/templates/TextAreaTemplate.lit.js\";\n\n// Styles\nimport TextAreaCss from \"./generated/themes/TextArea.css.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\nexport enum FieldState {\n Standard = \"Standard\",\n Warning = \"Warning\",\n Error = \"Error\",\n Success = \"Success\",\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-text-area\n * @public\n */\n@customElement({\n tag: \"udex-textarea\",\n renderer: litRender,\n styles: [TextAreaCss, getEffectiveScrollbarStyle()],\n template: TextAreaTemplate,\n dependencies: [UDExStatusMessage],\n})\n\nclass UDExTextArea extends UI5Element {\n _labelActiveClassName = \"udex-textarea__label--active\";\n\n /**\n * Defines label text for the textarea field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n label!: string;\n\n /**\n * Defines the value of the component.\n * <br><br>\n * <b>Note:</b> The property is updated upon typing.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n value!: string;\n\n /**\n * Defines the number of visible text lines for the component.\n * <br><br>\n * <b>Notes:</b>\n * <ul>\n * <li>If the <code>growing</code> property is enabled, this property defines the minimum rows to be displayed\n * in the textarea.</li>\n * <li>The CSS <code>height</code> property wins over the <code>rows</code> property, if both are set.</li>\n * </ul>\n *\n * @public\n */\n @property({ validator: Integer })\n rows!: number;\n\n /**\n * Enables the component to automatically grow and shrink dynamically with its content.\n * <br><br>\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n growing!: boolean;\n\n /**\n * Defines the maximum number of lines that the component can grow.\n *\n * @default 0\n * @public\n */\n @property({ validator: Integer, defaultValue: 0 })\n growingMaxLines!: number;\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n supportingText!: string;\n\n /**\n * Sets the maximum number of characters available in the textarea.\n *\n * @public\n */\n @property({ validator: Integer })\n maxlength?: number;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: FieldState, defaultValue: FieldState.Standard })\n fieldState!: `${FieldState}`;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the inner stored value of the readonly attribute of the input.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isInputReadonly!: boolean;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelClasses!: string;\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelActiveClass!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n /**\n * Defines the active (focus)\n * @default false\n * @private\n */\n @property({ type: Boolean })\n active!: boolean;\n /**\n * Defines is it the touch of the textarea (only for mobile devices).\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isTouched!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExTextArea.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n getInputDomRef() {\n return this.getDomRef()!.querySelector<HTMLTextAreaElement>(\"textarea\")!;\n }\n\n get hasValueState() {\n return this.fieldState === FieldState.Error || this.fieldState === FieldState.Warning || this.fieldState === FieldState.Success;\n }\n\n get fieldStateTypeMappings() {\n return {\n \"Success\": UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n \"Standard\": UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_STANDARD),\n \"Error\": UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n \"Warning\": UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n };\n }\n\n get ariaValueStateHiddenText() {\n if (!this.hasValueState) {\n return;\n }\n\n if (this.fieldState === FieldState.Standard) {\n return;\n }\n\n return `${this.fieldStateTypeMappings[this.fieldState]}`;\n }\n\n get readOnlyText() {\n return UDExTextArea.i18nBundle.getText(READ_ONLY);\n }\n\n get ariaDescribedBy() {\n const valueStateTextDescId = this.hasValueState ? `${this._id}-valueStateDesc` : \"\";\n const readonlyTextDescId = this.readonly ? `${this._id}-readonlyDesc` : \"\";\n const supportingTextDescId = this._supportingText ? `${this._id}-supportingTextDesc` : \"\";\n if (!valueStateTextDescId && !supportingTextDescId && !readonlyTextDescId) {\n return;\n }\n return `${valueStateTextDescId} ${supportingTextDescId} ${readonlyTextDescId}`;\n }\n\n get _supportingText() {\n if (this.supportingText.length) {\n return this.supportingText;\n }\n\n const maxLength = this.maxlength;\n\n if (maxLength !== null && maxLength !== undefined) {\n const leftCharactersCount = maxLength - this.value.length;\n\n if (leftCharactersCount >= 0) {\n return UDExTextArea.i18nBundle.getText(TEXTAREA_CHARACTERS_LEFT, leftCharactersCount);\n }\n }\n }\n\n handleInput = (event: InputEvent) => {\n this.value = (event.target as HTMLInputElement)?.value;\n };\n\n handleChange = () => {\n this.fireEvent(\"change\");\n };\n\n handleGrowing = () => {\n if (this.growing) {\n const nativeTextArea = this.getInputDomRef();\n\n if (!this.rows) {\n this.rows = 1;\n }\n nativeTextArea.style.height = \"auto\";\n // 2px - to avoid an unnecessary scrollbar, the border needs to be taken into account\n nativeTextArea.style.height = `${nativeTextArea.scrollHeight + 2}px`;\n\n if (this.growingMaxLines) {\n const style = getComputedStyle(nativeTextArea);\n\n const lineHeight = parseInt(style.lineHeight);\n const paddingTop = parseInt(style.paddingTop);\n const paddingBottom = parseInt(style.paddingBottom);\n\n const heightRatio = this.growingMaxLines > this.rows ? this.growingMaxLines : this.rows;\n\n const growingMaxHeight = lineHeight * heightRatio + paddingTop + paddingBottom;\n\n // 2px - to avoid an unnecessary scrollbar, the border needs to be taken into account\n nativeTextArea.style.maxHeight = `${growingMaxHeight + 2}px`;\n }\n }\n };\n\n handleFocus = () => {\n if (!this.disabled && !this.readonly && !this.displayonly) {\n this.active = true;\n this.labelActiveClass = this._labelActiveClassName;\n }\n };\n\n handleClick(): void {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n }\n\n handleBlur = () => {\n this._isTouched = false;\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n this.active = false;\n };\n\n get ariaInvalid() {\n return this.fieldState === FieldState.Error ? \"true\" : null;\n }\n\n onBeforeRendering() {\n if (this.value && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n }\n\n this.isInputReadonly = this.readonly || this.displayonly;\n\n this.labelClasses = `udex-textarea__label ${this.labelActiveClass}`;\n }\n\n onAfterRendering() {\n this.handleGrowing();\n }\n}\n\nUDExTextArea.define();\n\nexport default UDExTextArea;\n"]}
@@ -1,5 +1,13 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
3
+ import ValueState from "./types/common.js";
4
+ type AccInfo = {
5
+ ariaInvalid?: string;
6
+ ariaDescribedBy?: string;
7
+ ariaLabelledBy?: string;
8
+ ariaLabel?: string;
9
+ ariaHasPopup?: string;
10
+ };
3
11
  /**
4
12
  * @class
5
13
  *
@@ -98,7 +106,7 @@ declare class UDExTextField extends UI5Element {
98
106
  * @default "Standard"
99
107
  * @public
100
108
  */
101
- valueState: "Standard" | "Warning" | "Error" | "Success";
109
+ valueState: `${ValueState}`;
102
110
  /**
103
111
  * Defines supporting text under the input field.
104
112
  *
@@ -180,14 +188,20 @@ declare class UDExTextField extends UI5Element {
180
188
  * @public
181
189
  */
182
190
  ariaDescribedBy?: string;
191
+ /**
192
+ * Defines the aria-has-popup attribute of the input.
193
+ * @private
194
+ */
195
+ _ariaHasPopup?: string;
196
+ /**
197
+ * Defines is it the touch of the input field (only for mobile devices).
198
+ * @default false
199
+ * @private
200
+ */
201
+ _isTouched: boolean;
183
202
  static i18nBundle: I18nBundle;
184
203
  static onDefine(): Promise<void>;
185
- get valueStateTypeMappings(): {
186
- Success: string;
187
- Standard: string;
188
- Error: string;
189
- Warning: string;
190
- };
204
+ get valueStateTypeMappings(): Record<string, string>;
191
205
  get hasValueState(): boolean;
192
206
  get valueStateText(): string | undefined;
193
207
  get readOnlyStateText(): string;
@@ -195,14 +209,10 @@ declare class UDExTextField extends UI5Element {
195
209
  get supportingTextId(): string;
196
210
  get valueStateTextId(): string;
197
211
  get readOnlyStateTextId(): string;
198
- get accInfo(): {
199
- ariaInvalid: string | undefined;
200
- ariaDescribedBy: string | undefined;
201
- ariaLabelledBy: string;
202
- ariaLabel: string | undefined;
203
- };
212
+ get accInfo(): AccInfo;
204
213
  handleChange: () => void;
205
214
  handleInput: (inputEvent: InputEvent) => void;
215
+ handleClick: () => void;
206
216
  handleFocus: () => void;
207
217
  handleBlur: () => void;
208
218
  handleKeyDown: (keyboardEvent: KeyboardEvent) => void;
package/dist/TextField.js CHANGED
@@ -14,14 +14,15 @@ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
14
14
  import Icon from "@ui5/webcomponents/dist/Icon.js";
15
15
  import Float from "@ui5/webcomponents-base/dist/types/Float.js";
16
16
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
17
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
17
18
  import { VALUE_STATE_SUCCESS, VALUE_STATE_INFORMATION, VALUE_STATE_WARNING, VALUE_STATE_ERROR, READ_ONLY, } from "./generated/i18n/i18n-defaults.js";
18
19
  import UDExControlButton from "./ControlButton.js";
19
20
  import ValueState from "./types/common.js";
21
+ import UDExStatusMessage from "./StatusMessage.js";
20
22
  // Template
21
23
  import TextFieldTemplate from "./generated/templates/TextFieldTemplate.lit";
22
24
  // Styles
23
25
  import TextFieldCss from "./generated/themes/TextField.css.js";
24
- import UDExStatusMessage from "./StatusMessage.js";
25
26
  /**
26
27
  * @class
27
28
  *
@@ -41,6 +42,11 @@ let UDExTextField = UDExTextField_1 = class UDExTextField extends UI5Element {
41
42
  this.value = inputEvent.target?.value;
42
43
  this.fireEvent("input");
43
44
  };
45
+ this.handleClick = () => {
46
+ if (!isDesktop()) {
47
+ this._isTouched = true;
48
+ }
49
+ };
44
50
  this.handleFocus = () => {
45
51
  if (!this.disabled && !this.readonly && !this.displayonly) {
46
52
  this.labelActiveClass = this._labelActiveClassName;
@@ -55,6 +61,7 @@ let UDExTextField = UDExTextField_1 = class UDExTextField extends UI5Element {
55
61
  else {
56
62
  this.labelActiveClass = "";
57
63
  }
64
+ this._isTouched = false;
58
65
  };
59
66
  this.handleKeyDown = (keyboardEvent) => {
60
67
  keyboardEvent.stopPropagation();
@@ -99,6 +106,7 @@ let UDExTextField = UDExTextField_1 = class UDExTextField extends UI5Element {
99
106
  "ariaDescribedBy": this.ariaDescribedBy ? this.ariaDescribedBy : this.ariaDescribedById || undefined,
100
107
  "ariaLabelledBy": this.accessibleNameRef,
101
108
  "ariaLabel": this.accessibleName || undefined,
109
+ "ariaHasPopup": this._ariaHasPopup || undefined,
102
110
  };
103
111
  }
104
112
  handleIconClick() {
@@ -160,7 +168,7 @@ __decorate([
160
168
  property({ type: Boolean })
161
169
  ], UDExTextField.prototype, "required", void 0);
162
170
  __decorate([
163
- property({ type: ValueState, defaultValue: "Standard" })
171
+ property({ type: ValueState, defaultValue: ValueState.Standard })
164
172
  ], UDExTextField.prototype, "valueState", void 0);
165
173
  __decorate([
166
174
  property({ type: String })
@@ -201,6 +209,12 @@ __decorate([
201
209
  __decorate([
202
210
  property()
203
211
  ], UDExTextField.prototype, "ariaDescribedBy", void 0);
212
+ __decorate([
213
+ property({ type: String })
214
+ ], UDExTextField.prototype, "_ariaHasPopup", void 0);
215
+ __decorate([
216
+ property({ type: Boolean })
217
+ ], UDExTextField.prototype, "_isTouched", void 0);
204
218
  UDExTextField = UDExTextField_1 = __decorate([
205
219
  customElement({
206
220
  tag: "udex-text-field",
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../src/TextField.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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Float from \"@ui5/webcomponents-base/dist/types/Float.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n VALUE_STATE_SUCCESS,\n VALUE_STATE_INFORMATION,\n VALUE_STATE_WARNING,\n VALUE_STATE_ERROR,\n READ_ONLY,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport ValueState from \"./types/common.js\";\n\n// Template\nimport TextFieldTemplate from \"./generated/templates/TextFieldTemplate.lit\";\n\n// Styles\nimport TextFieldCss from \"./generated/themes/TextField.css.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-text-field\n * @public\n */\n@customElement({\n tag: \"udex-text-field\",\n renderer: litRender,\n styles: TextFieldCss,\n template: TextFieldTemplate,\n dependencies: [UDExControlButton, Icon, UDExStatusMessage],\n})\n\n/**\n * Fired event when the user clicks the trigger.\n *\n * @public\n */\n@event(\"click-trigger\")\n/**\n * Fired when the value of the component changes at each keystroke.\n *\n * @public\n */\n@event(\"input\")\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n *\n * @public\n */\n@event(\"change\")\n/**\n * Fired event when the user clicks the icon.\n *\n * @private\n */\n@event(\"click-icon\")\nclass UDExTextField extends UI5Element {\n _labelActiveClassName = \"udex-text-field__label_active\";\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the value of the component.\n * <br><br>\n * <b>Note:</b> The property is updated upon typing.\n *\n * @default \"\"\n * @formEvents input\n * @formProperty\n * @public\n */\n @property({ type: String })\n value!: string;\n\n /**\n * Sets the maximum number of characters available in the input field.\n * <br><br>\n * <b>Note:</b> This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.\n *\n * @public\n */\n @property({ validator: Integer })\n maxlength?: number;\n\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleIconName!: string;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: ValueState, defaultValue: \"Standard\" })\n valueState!: \"Standard\" | \"Warning\" | \"Error\" | \"Success\";\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Defines the icon name in the text-field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines if the text-field is active\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n active!: boolean;\n\n /**\n * Defines the inner stored show password button tooltip.\n *\n * @default \"\"\n * @private\n */\n\n @property({ type: String, defaultValue: \"\" })\n showButtonTooltip!: string;\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelActiveClass!: string;\n\n /**\n * Defines the inner stored value of the readonly attribute of the input.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isInputReadonly!: boolean;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelClasses!: string;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"text\"\n * @private\n */\n @property({ type: String, defaultValue: \"text\" })\n type!: string;\n\n /**\n * Defines direction of the input.\n *\n * @public\n */\n @property({ type: String, noAttribute: true })\n direction?: string;\n\n /**\n * Defines the max value for the \"number\" type of the input.\n */\n @property({ validator: Float })\n max?: number;\n\n /**\n * Defines the min value for the \"number\" type of the input.\n */\n @property({ validator: Float })\n min?: number;\n\n /**\n * Defines the step for the \"number\" type of the input.\n */\n @property({ validator: Float })\n step?: number;\n\n /**\n * Allows setting the aria-describedby property on the internal input node.\n *\n * @default \"\"\n * @public\n */\n @property()\n ariaDescribedBy?: string;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExTextField.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n get valueStateTypeMappings() {\n return {\n \"Success\": UDExTextField.i18nBundle.getText(VALUE_STATE_SUCCESS),\n \"Standard\": UDExTextField.i18nBundle.getText(VALUE_STATE_INFORMATION),\n \"Error\": UDExTextField.i18nBundle.getText(VALUE_STATE_ERROR),\n \"Warning\": UDExTextField.i18nBundle.getText(VALUE_STATE_WARNING),\n };\n }\n\n get hasValueState() {\n return this.valueState !== ValueState.Standard;\n }\n\n get valueStateText() {\n return this.valueState !== ValueState.Standard ? this.valueStateTypeMappings[this.valueState] : undefined;\n }\n\n get readOnlyStateText() {\n return UDExTextField.i18nBundle.getText(READ_ONLY);\n }\n\n get ariaDescribedById(): string {\n return `${this.supportingTextId} ${this.valueStateTextId} ${this.readOnlyStateTextId}`.trim();\n }\n\n get supportingTextId():string {\n return this.supportingText ? `${this._id}-supportingTextDesc` : \"\";\n }\n\n get valueStateTextId():string {\n return this.hasValueState ? `${this._id}-valueStateDesc` : \"\";\n }\n\n get readOnlyStateTextId():string {\n return this.readonly ? `${this._id}-stateReadOnlyDesc` : \"\";\n }\n\n get accInfo() {\n return {\n \"ariaInvalid\": this.valueState === ValueState.Error ? \"true\" : undefined,\n \"ariaDescribedBy\": this.ariaDescribedBy ? this.ariaDescribedBy : this.ariaDescribedById || undefined,\n \"ariaLabelledBy\": this.accessibleNameRef,\n \"ariaLabel\": this.accessibleName || undefined,\n };\n }\n\n handleChange = () => {\n this.fireEvent(\"change\");\n };\n\n handleInput = (inputEvent: InputEvent) => {\n this.value = (inputEvent.target as HTMLInputElement)?.value;\n this.fireEvent(\"input\");\n };\n\n handleFocus = () => {\n if (!this.disabled && !this.readonly && !this.displayonly) {\n this.labelActiveClass = this._labelActiveClassName;\n this.active = true;\n }\n };\n\n handleBlur = () => {\n this.active = false;\n\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n };\n\n handleKeyDown = (keyboardEvent: KeyboardEvent) => {\n keyboardEvent.stopPropagation();\n this.fireEvent(\"click-trigger\", keyboardEvent);\n };\n\n handleIconClick(): void {\n this.fireEvent(\"click-icon\");\n }\n\n onBeforeRendering() {\n if ((this.value || this.active) && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n } else if (!this.active && !this.value && this.labelActiveClass.length) {\n this.labelActiveClass = \"\";\n }\n\n this.isInputReadonly = this.readonly || this.displayonly;\n\n this.labelClasses = `udex-text-field__label ${this.labelActiveClass}`;\n }\n\n onAfterRendering(): void {\n const directionStyles: string = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n\n if (!directionStyles) {\n this.direction = \"ltr\";\n } else {\n this.direction = directionStyles;\n }\n }\n\n get readonlyNotDisabled() {\n return this.isInputReadonly && !this.disabled;\n }\n}\n\nUDExTextField.define();\n\nexport default UDExTextField;\n"]}
1
+ {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../src/TextField.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,OAAO,MAAM,+CAA+C,CAAC;AACpE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,KAAK,MAAM,6CAA6C,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,GACV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AACnD,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AAEnD,WAAW;AACX,OAAO,iBAAiB,MAAM,6CAA6C,CAAC;AAE5E,SAAS;AACT,OAAO,YAAY,MAAM,qCAAqC,CAAC;AAU/D;;;;;;;GAOG;AAiCH,IAAM,aAAa,qBAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QACE,0BAAqB,GAAG,+BAA+B,CAAC;QAiSxD,iBAAY,GAAG,GAAS,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,UAAsB,EAAE,EAAE;YACvC,IAAI,CAAC,KAAK,GAAI,UAAU,CAAC,MAA2B,EAAE,KAAK,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,gBAAW,GAAG,GAAS,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE,EAAE;gBAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;QACH,CAAC,CAAC;QAEF,gBAAW,GAAG,GAAS,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACpB;QACH,CAAC,CAAC;QAEF,eAAU,GAAG,GAAS,EAAE;YACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC;aACpD;iBAAM;gBACL,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;aAC5B;YACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,aAA4B,EAAQ,EAAE;YACrD,aAAa,CAAC,eAAe,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACjD,CAAC,CAAC;IAiCJ,CAAC;IAxHC,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,eAAa,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO;YACL,SAAS,EAAE,eAAa,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YAChE,UAAU,EAAE,eAAa,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC;YACrE,OAAO,EAAE,eAAa,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAC5D,SAAS,EAAE,eAAa,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;SACjE,CAAC;IACJ,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,CAAC;IACjD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,eAAa,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,CAAC;IAChG,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO;QACT,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACxE,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS;YACpG,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;YACxC,WAAW,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS;YAC7C,cAAc,EAAE,IAAI,CAAC,aAAa,IAAI,SAAS;SAChD,CAAC;IACJ,CAAC;IAwCD,eAAe;QACb,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,EAAE,EAAE;YAC/D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC;SACpD;aAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YACtE,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC5B;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC;QAEzD,IAAI,CAAC,YAAY,GAAG,0BAA0B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxE,CAAC;IAED,gBAAgB;QACd,MAAM,eAAe,GAAW,MAAM;aACnC,gBAAgB,CAAC,IAAI,CAAC;aACtB,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEjC,IAAI,CAAC,eAAe,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;SAClC;IACH,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChD,CAAC;CACF,CAAA;AA3VG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACP;AAanB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACV;AAUf;IADD,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;gDACZ;AASnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACV;AASf;IADD,QAAQ,EAAE;qDACe;AAQxB;IADD,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;wDACF;AAS3B;IADD,QAAQ,EAAE;yDACmB;AAY5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACP;AAYnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACJ;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACP;AASnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;iDACnC;AAS7B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDACD;AASxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CACX;AASd;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACT;AAUjB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;wDAChB;AAS3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;uDACpC;AAS1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;sDACnB;AAS1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;mDACxC;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;2CACjC;AAQd;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gDACzB;AAMnB;IADD,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;0CAChB;AAMb;IADD,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;0CAChB;AAMb;IADD,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;2CACf;AASd;IADD,QAAQ,EAAE;sDACgB;AAOzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDACF;AAQvB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACL;AA3OnB,aAAa;IAhClB,aAAa,CAAC;QACb,GAAG,EAAE,iBAAiB;QACtB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,iBAAiB;QAC3B,YAAY,EAAE,CAAC,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,CAAC;KAC3D,CAAC;IAEF;;;;SAIK;;IACJ,KAAK,CAAC,eAAe,CAAC;IACvB;;;;SAIK;;IACJ,KAAK,CAAC,OAAO,CAAC;IACf;;;;SAIK;;IACJ,KAAK,CAAC,QAAQ,CAAC;IAChB;;;;OAIG;;IACF,KAAK,CAAC,YAAY,CAAC;GACd,aAAa,CAuWlB;AAED,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Float from \"@ui5/webcomponents-base/dist/types/Float.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n VALUE_STATE_SUCCESS,\n VALUE_STATE_INFORMATION,\n VALUE_STATE_WARNING,\n VALUE_STATE_ERROR,\n READ_ONLY,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport ValueState from \"./types/common.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\n// Template\nimport TextFieldTemplate from \"./generated/templates/TextFieldTemplate.lit\";\n\n// Styles\nimport TextFieldCss from \"./generated/themes/TextField.css.js\";\n\ntype AccInfo = {\n ariaInvalid?: string;\n ariaDescribedBy?: string;\n ariaLabelledBy?: string;\n ariaLabel?: string;\n ariaHasPopup?: string,\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-text-field\n * @public\n */\n@customElement({\n tag: \"udex-text-field\",\n renderer: litRender,\n styles: TextFieldCss,\n template: TextFieldTemplate,\n dependencies: [UDExControlButton, Icon, UDExStatusMessage],\n})\n\n/**\n * Fired event when the user clicks the trigger.\n *\n * @public\n */\n@event(\"click-trigger\")\n/**\n * Fired when the value of the component changes at each keystroke.\n *\n * @public\n */\n@event(\"input\")\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n *\n * @public\n */\n@event(\"change\")\n/**\n * Fired event when the user clicks the icon.\n *\n * @private\n */\n@event(\"click-icon\")\nclass UDExTextField extends UI5Element {\n _labelActiveClassName = \"udex-text-field__label_active\";\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the value of the component.\n * <br><br>\n * <b>Note:</b> The property is updated upon typing.\n *\n * @default \"\"\n * @formEvents input\n * @formProperty\n * @public\n */\n @property({ type: String })\n value!: string;\n\n /**\n * Sets the maximum number of characters available in the input field.\n * <br><br>\n * <b>Note:</b> This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.\n *\n * @public\n */\n @property({ validator: Integer })\n maxlength?: number;\n\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleIconName!: string;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: ValueState, defaultValue: ValueState.Standard })\n valueState!: `${ValueState}`;\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Defines the icon name in the text-field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines if the text-field is active\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n active!: boolean;\n\n /**\n * Defines the inner stored show password button tooltip.\n *\n * @default \"\"\n * @private\n */\n\n @property({ type: String, defaultValue: \"\" })\n showButtonTooltip!: string;\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelActiveClass!: string;\n\n /**\n * Defines the inner stored value of the readonly attribute of the input.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isInputReadonly!: boolean;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelClasses!: string;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"text\"\n * @private\n */\n @property({ type: String, defaultValue: \"text\" })\n type!: string;\n\n /**\n * Defines direction of the input.\n *\n * @public\n */\n @property({ type: String, noAttribute: true })\n direction?: string;\n\n /**\n * Defines the max value for the \"number\" type of the input.\n */\n @property({ validator: Float })\n max?: number;\n\n /**\n * Defines the min value for the \"number\" type of the input.\n */\n @property({ validator: Float })\n min?: number;\n\n /**\n * Defines the step for the \"number\" type of the input.\n */\n @property({ validator: Float })\n step?: number;\n\n /**\n * Allows setting the aria-describedby property on the internal input node.\n *\n * @default \"\"\n * @public\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * Defines the aria-has-popup attribute of the input.\n * @private\n */\n @property({ type: String })\n _ariaHasPopup?: string;\n\n /**\n * Defines is it the touch of the input field (only for mobile devices).\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isTouched!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExTextField.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n get valueStateTypeMappings(): Record<string, string> {\n return {\n \"Success\": UDExTextField.i18nBundle.getText(VALUE_STATE_SUCCESS),\n \"Standard\": UDExTextField.i18nBundle.getText(VALUE_STATE_INFORMATION),\n \"Error\": UDExTextField.i18nBundle.getText(VALUE_STATE_ERROR),\n \"Warning\": UDExTextField.i18nBundle.getText(VALUE_STATE_WARNING),\n };\n }\n\n get hasValueState(): boolean {\n return this.valueState !== ValueState.Standard;\n }\n\n get valueStateText(): string | undefined {\n return this.valueState !== ValueState.Standard ? this.valueStateTypeMappings[this.valueState] : undefined;\n }\n\n get readOnlyStateText(): string {\n return UDExTextField.i18nBundle.getText(READ_ONLY);\n }\n\n get ariaDescribedById(): string {\n return `${this.supportingTextId} ${this.valueStateTextId} ${this.readOnlyStateTextId}`.trim();\n }\n\n get supportingTextId(): string {\n return this.supportingText ? `${this._id}-supportingTextDesc` : \"\";\n }\n\n get valueStateTextId(): string {\n return this.hasValueState ? `${this._id}-valueStateDesc` : \"\";\n }\n\n get readOnlyStateTextId(): string {\n return this.readonly ? `${this._id}-stateReadOnlyDesc` : \"\";\n }\n\n get accInfo(): AccInfo {\n return {\n \"ariaInvalid\": this.valueState === ValueState.Error ? \"true\" : undefined,\n \"ariaDescribedBy\": this.ariaDescribedBy ? this.ariaDescribedBy : this.ariaDescribedById || undefined,\n \"ariaLabelledBy\": this.accessibleNameRef,\n \"ariaLabel\": this.accessibleName || undefined,\n \"ariaHasPopup\": this._ariaHasPopup || undefined,\n };\n }\n\n handleChange = (): void => {\n this.fireEvent(\"change\");\n };\n\n handleInput = (inputEvent: InputEvent) => {\n this.value = (inputEvent.target as HTMLInputElement)?.value;\n this.fireEvent(\"input\");\n };\n\n handleClick = (): void => {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n };\n\n handleFocus = (): void => {\n if (!this.disabled && !this.readonly && !this.displayonly) {\n this.labelActiveClass = this._labelActiveClassName;\n this.active = true;\n }\n };\n\n handleBlur = (): void => {\n this.active = false;\n\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n this._isTouched = false;\n };\n\n handleKeyDown = (keyboardEvent: KeyboardEvent): void => {\n keyboardEvent.stopPropagation();\n this.fireEvent(\"click-trigger\", keyboardEvent);\n };\n\n handleIconClick(): void {\n this.fireEvent(\"click-icon\");\n }\n\n onBeforeRendering(): void {\n if ((this.value || this.active) && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n } else if (!this.active && !this.value && this.labelActiveClass.length) {\n this.labelActiveClass = \"\";\n }\n\n this.isInputReadonly = this.readonly || this.displayonly;\n\n this.labelClasses = `udex-text-field__label ${this.labelActiveClass}`;\n }\n\n onAfterRendering(): void {\n const directionStyles: string = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n\n if (!directionStyles) {\n this.direction = \"ltr\";\n } else {\n this.direction = directionStyles;\n }\n }\n\n get readonlyNotDisabled(): boolean {\n return this.isInputReadonly && !this.disabled;\n }\n}\n\nUDExTextField.define();\n\nexport default UDExTextField;\n"]}
package/dist/Tooltip.d.ts CHANGED
@@ -19,7 +19,7 @@ export declare enum PlacementType {
19
19
  * For the <code>udex-tooltip</code>
20
20
  * <h3>ES6 Module Import</h3>
21
21
  *
22
- * <code>import @udex/web-components/dist/Tooltip.js";</code>
22
+ * <code>import "@udex/web-components/dist/Tooltip.js";</code>
23
23
  *
24
24
  * @constructor
25
25
  * @author SAP SE
package/dist/Tooltip.js CHANGED
@@ -34,7 +34,7 @@ export var PlacementType;
34
34
  * For the <code>udex-tooltip</code>
35
35
  * <h3>ES6 Module Import</h3>
36
36
  *
37
- * <code>import @udex/web-components/dist/Tooltip.js";</code>
37
+ * <code>import "@udex/web-components/dist/Tooltip.js";</code>
38
38
  *
39
39
  * @constructor
40
40
  * @author SAP SE
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../src/Tooltip.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,OAAO,oBAAoB,MAAM,uDAAuD,CAAC;AACzF,OAAO,sBAAsB,MAAM,yDAAyD,CAAC;AAC7F,OAAO,mBAAmB,MAAM,sDAAsD,CAAC;AAEvF,WAAW;AACX,OAAO,eAAe,MAAM,8CAA8C,CAAC;AAE3E,SAAS;AACT,OAAO,UAAU,MAAM,gCAAgC,CAAC;AAExD,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,gCAAe,CAAA;IACf,4BAAW,CAAA;IACX,kCAAiB,CAAA;AACnB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AAQH,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IA0ElC,UAAU;QACR,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CACnC,eAAe,CACf,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAmB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;AAnGuB;IAArB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;4CAAgB;AAQS;IAA7C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;0CAAgB;AAS3D;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACN;AASpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;8CACpC;AAO/B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC;oDACxC;AAQ9C;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,oBAAoB,CAAC,MAAM,EAAE,CAAC;kDACxC;AAQ1C;IADD,QAAQ,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;mDACZ;AAQxB;IADD,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;sDACF;AAQ3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC;mDACtC;AAxExC,WAAW;IAPhB,aAAa,CAAC;QACb,GAAG,EAAE,cAAc;QACnB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,eAAe;QACzB,YAAY,EAAE,CAAC,OAAO,CAAC;KACxB,CAAC;GACI,WAAW,CA0GhB;AAED,WAAW,CAAC,MAAM,EAAE,CAAC;AAErB,eAAe,WAAW,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport PopoverVerticalAlign from \"@ui5/webcomponents/dist/types/PopoverVerticalAlign.js\";\nimport PopoverHorizontalAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\n\n// Template\nimport TooltipTemplate from \"./generated/templates/TooltipTemplate.lit.js\";\n\n// Styles\nimport TooltipCss from \"./generated/themes/Tooltip.css\";\n\nexport enum PlacementType {\n Left = \"Left\",\n Right = \"Right\",\n Top = \"Top\",\n Bottom = \"Bottom\",\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-tooltip</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Tooltip.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tooltip\n * @public\n */\n@customElement({\n tag: \"udex-tooltip\",\n renderer: litRender,\n styles: TooltipCss,\n template: TooltipTemplate,\n dependencies: [Popover],\n})\nclass UDExTooltip extends UI5Element {\n /**\n * Defines the content of the component.\n *\n * @slot\n * @public\n */\n @slot({ type: Node }) default!: Node;\n\n /**\n * Defines the Tooltip title.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" }) title!: string;\n\n /**\n * Defines if Tooltip has an arrow or not.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideArrow!: boolean;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Right\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Right })\n placement!: `${PlacementType}`;\n /**\n * Determines the horizontal alignment of the component.\n * @default \"Center\"\n * @public\n */\n @property({ type: PopoverHorizontalAlign, defaultValue: PopoverHorizontalAlign.Center })\n horizontalAlign!: `${PopoverHorizontalAlign}`;\n\n /**\n * Determines the vertical alignment of the component.\n * @default \"Center\"\n * @public\n */\n @property({ type: PopoverVerticalAlign, defaultValue: PopoverVerticalAlign.Center })\n verticalAlign!: `${PopoverVerticalAlign}`;\n\n /**\n * Defines the accessible name of the component.\n * @default undefined\n * @public\n */\n @property({ defaultValue: undefined })\n accessibleName?: string;\n\n /**\n * Defines the IDs of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n /**\n * Allows setting a custom role.\n * @default \"Dialog\"\n * @public\n */\n @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })\n accessibleRole!: `${PopupAccessibleRole}`;\n\n getPopover() {\n return this.shadowRoot!.querySelector<Popover>(\n \"[ui5-popover]\",\n )!;\n }\n\n /** Returns whether the tooltip is currently open.\n * @public\n */\n isOpen(): boolean {\n const popover = this.getPopover();\n return popover.isOpen();\n }\n\n /**\n * Used to open tooltip\n * @param opener element at which the popover is shown\n * @public\n */\n onOpen(opener: HTMLElement): void {\n const popover = this.getPopover();\n popover.showAt(opener);\n }\n\n /**\n * Used to close tooltip\n * @public\n */\n onClose(): void {\n const popover = this.getPopover();\n popover.close(true);\n }\n}\n\nUDExTooltip.define();\n\nexport default UDExTooltip;\n"]}
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../src/Tooltip.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,OAAO,oBAAoB,MAAM,uDAAuD,CAAC;AACzF,OAAO,sBAAsB,MAAM,yDAAyD,CAAC;AAC7F,OAAO,mBAAmB,MAAM,sDAAsD,CAAC;AAEvF,WAAW;AACX,OAAO,eAAe,MAAM,8CAA8C,CAAC;AAE3E,SAAS;AACT,OAAO,UAAU,MAAM,gCAAgC,CAAC;AAExD,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,gCAAe,CAAA;IACf,4BAAW,CAAA;IACX,kCAAiB,CAAA;AACnB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AAQH,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IA0ElC,UAAU;QACR,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CACnC,eAAe,CACf,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAmB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;AAnGuB;IAArB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;4CAAgB;AAQS;IAA7C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;0CAAgB;AAS3D;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACN;AASpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;8CACpC;AAO/B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC;oDACxC;AAQ9C;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,oBAAoB,CAAC,MAAM,EAAE,CAAC;kDACxC;AAQ1C;IADD,QAAQ,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;mDACZ;AAQxB;IADD,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;sDACF;AAQ3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC;mDACtC;AAxExC,WAAW;IAPhB,aAAa,CAAC;QACb,GAAG,EAAE,cAAc;QACnB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,eAAe;QACzB,YAAY,EAAE,CAAC,OAAO,CAAC;KACxB,CAAC;GACI,WAAW,CA0GhB;AAED,WAAW,CAAC,MAAM,EAAE,CAAC;AAErB,eAAe,WAAW,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport PopoverVerticalAlign from \"@ui5/webcomponents/dist/types/PopoverVerticalAlign.js\";\nimport PopoverHorizontalAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\n\n// Template\nimport TooltipTemplate from \"./generated/templates/TooltipTemplate.lit.js\";\n\n// Styles\nimport TooltipCss from \"./generated/themes/Tooltip.css\";\n\nexport enum PlacementType {\n Left = \"Left\",\n Right = \"Right\",\n Top = \"Top\",\n Bottom = \"Bottom\",\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-tooltip</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Tooltip.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tooltip\n * @public\n */\n@customElement({\n tag: \"udex-tooltip\",\n renderer: litRender,\n styles: TooltipCss,\n template: TooltipTemplate,\n dependencies: [Popover],\n})\nclass UDExTooltip extends UI5Element {\n /**\n * Defines the content of the component.\n *\n * @slot\n * @public\n */\n @slot({ type: Node }) default!: Node;\n\n /**\n * Defines the Tooltip title.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" }) title!: string;\n\n /**\n * Defines if Tooltip has an arrow or not.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideArrow!: boolean;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Right\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Right })\n placement!: `${PlacementType}`;\n /**\n * Determines the horizontal alignment of the component.\n * @default \"Center\"\n * @public\n */\n @property({ type: PopoverHorizontalAlign, defaultValue: PopoverHorizontalAlign.Center })\n horizontalAlign!: `${PopoverHorizontalAlign}`;\n\n /**\n * Determines the vertical alignment of the component.\n * @default \"Center\"\n * @public\n */\n @property({ type: PopoverVerticalAlign, defaultValue: PopoverVerticalAlign.Center })\n verticalAlign!: `${PopoverVerticalAlign}`;\n\n /**\n * Defines the accessible name of the component.\n * @default undefined\n * @public\n */\n @property({ defaultValue: undefined })\n accessibleName?: string;\n\n /**\n * Defines the IDs of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n /**\n * Allows setting a custom role.\n * @default \"Dialog\"\n * @public\n */\n @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })\n accessibleRole!: `${PopupAccessibleRole}`;\n\n getPopover() {\n return this.shadowRoot!.querySelector<Popover>(\n \"[ui5-popover]\",\n )!;\n }\n\n /** Returns whether the tooltip is currently open.\n * @public\n */\n isOpen(): boolean {\n const popover = this.getPopover();\n return popover.isOpen();\n }\n\n /**\n * Used to open tooltip\n * @param opener element at which the popover is shown\n * @public\n */\n onOpen(opener: HTMLElement): void {\n const popover = this.getPopover();\n popover.showAt(opener);\n }\n\n /**\n * Used to close tooltip\n * @public\n */\n onClose(): void {\n const popover = this.getPopover();\n popover.close(true);\n }\n}\n\nUDExTooltip.define();\n\nexport default UDExTooltip;\n"]}