@sapudex/web-components 0.111.0 → 0.117.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/.npmrc +1 -2
  2. package/bundle.esm.js +4 -0
  3. package/dist/AccordionItem.d.ts +7 -0
  4. package/dist/AccordionItem.js +6 -2
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/Avatar.d.ts +8 -1
  7. package/dist/Avatar.js +5 -2
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/CountrySelector.d.ts +6 -7
  10. package/dist/CountrySelector.js +15 -7
  11. package/dist/CountrySelector.js.map +1 -1
  12. package/dist/Dropdown.d.ts +10 -0
  13. package/dist/Dropdown.js +10 -0
  14. package/dist/Dropdown.js.map +1 -1
  15. package/dist/FilterMenu.d.ts +14 -4
  16. package/dist/FilterMenu.js +46 -7
  17. package/dist/FilterMenu.js.map +1 -1
  18. package/dist/Footer.d.ts +40 -1
  19. package/dist/Footer.js +151 -1
  20. package/dist/Footer.js.map +1 -1
  21. package/dist/InputGroup.d.ts +75 -0
  22. package/dist/InputGroup.js +101 -0
  23. package/dist/InputGroup.js.map +1 -0
  24. package/dist/List.d.ts +7 -0
  25. package/dist/List.js +78 -18
  26. package/dist/List.js.map +1 -1
  27. package/dist/ListItem.d.ts +0 -1
  28. package/dist/ListItem.js +0 -6
  29. package/dist/ListItem.js.map +1 -1
  30. package/dist/ListItemBase.d.ts +3 -0
  31. package/dist/ListItemBase.js +12 -0
  32. package/dist/ListItemBase.js.map +1 -1
  33. package/dist/MastheadMobileMenu.d.ts +4 -1
  34. package/dist/MastheadMobileMenu.js +10 -3
  35. package/dist/MastheadMobileMenu.js.map +1 -1
  36. package/dist/PhoneNumberField.d.ts +8 -0
  37. package/dist/PhoneNumberField.js +23 -10
  38. package/dist/PhoneNumberField.js.map +1 -1
  39. package/dist/Search.d.ts +60 -1
  40. package/dist/Search.js +191 -19
  41. package/dist/Search.js.map +1 -1
  42. package/dist/SecondaryNavigation.d.ts +37 -45
  43. package/dist/SecondaryNavigation.js +148 -153
  44. package/dist/SecondaryNavigation.js.map +1 -1
  45. package/dist/SecondaryNavigationItem.d.ts +101 -0
  46. package/dist/SecondaryNavigationItem.js +287 -0
  47. package/dist/SecondaryNavigationItem.js.map +1 -0
  48. package/dist/SecondaryNavigationItemBase.d.ts +68 -0
  49. package/dist/SecondaryNavigationItemBase.js +78 -0
  50. package/dist/SecondaryNavigationItemBase.js.map +1 -0
  51. package/dist/SecondaryNavigationSubItem.d.ts +52 -0
  52. package/dist/SecondaryNavigationSubItem.js +102 -0
  53. package/dist/SecondaryNavigationSubItem.js.map +1 -0
  54. package/dist/SelectBox.d.ts +7 -0
  55. package/dist/SelectBox.js +27 -2
  56. package/dist/SelectBox.js.map +1 -1
  57. package/dist/StatusBadge.d.ts +67 -0
  58. package/dist/StatusBadge.js +104 -0
  59. package/dist/StatusBadge.js.map +1 -0
  60. package/dist/Tab.js +1 -1
  61. package/dist/Tab.js.map +1 -1
  62. package/dist/Table.d.ts +5 -5
  63. package/dist/Table.js +5 -5
  64. package/dist/Table.js.map +1 -1
  65. package/dist/Tag.d.ts +7 -1
  66. package/dist/Tag.js +6 -2
  67. package/dist/Tag.js.map +1 -1
  68. package/dist/TextArea.js.map +1 -1
  69. package/dist/assets/{bundle.esm-b7920968.js → bundle.esm-f65ae7da.js} +189 -184
  70. package/dist/assets/messagebundle_en-7249941b.js +1 -0
  71. package/dist/css/themes/AccordionItem.css +1 -1
  72. package/dist/css/themes/Avatar.css +1 -1
  73. package/dist/css/themes/Breadcrumbs.css +1 -1
  74. package/dist/css/themes/Checkbox.css +1 -1
  75. package/dist/css/themes/CountrySelector.css +1 -1
  76. package/dist/css/themes/DatePicker.css +1 -1
  77. package/dist/css/themes/Dropdown.css +1 -1
  78. package/dist/css/themes/FilterMenu.css +1 -1
  79. package/dist/css/themes/HeroBanner.css +1 -1
  80. package/dist/css/themes/InputGroup.css +1 -0
  81. package/dist/css/themes/MastheadItem.css +1 -1
  82. package/dist/css/themes/MastheadMenuItem.css +1 -1
  83. package/dist/css/themes/MastheadShell.css +1 -1
  84. package/dist/css/themes/MediaPlayer.css +1 -1
  85. package/dist/css/themes/PhoneNumberField.css +1 -1
  86. package/dist/css/themes/RatingIndicator.css +1 -1
  87. package/dist/css/themes/Search.css +1 -1
  88. package/dist/css/themes/SearchSuggestions.css +1 -1
  89. package/dist/css/themes/SecondaryNavigation.css +1 -1
  90. package/dist/css/themes/SecondaryNavigationItem.css +1 -0
  91. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -0
  92. package/dist/css/themes/Slider.css +1 -1
  93. package/dist/css/themes/StatusBadge.css +1 -0
  94. package/dist/css/themes/Tag.css +1 -1
  95. package/dist/css/themes/TextField.css +1 -1
  96. package/dist/custom-elements-internal.json +1070 -116
  97. package/dist/custom-elements.json +1047 -169
  98. package/dist/features/SearchSuggestionsPopover.d.ts +3 -3
  99. package/dist/features/SearchSuggestionsPopover.js +16 -18
  100. package/dist/features/SearchSuggestionsPopover.js.map +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  102. package/dist/generated/i18n/i18n-defaults.d.ts +8 -1
  103. package/dist/generated/i18n/i18n-defaults.js +8 -1
  104. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  105. package/dist/generated/templates/AccordionItemTemplate.lit.js +2 -1
  106. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  107. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  108. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  109. package/dist/generated/templates/DropdownTemplate.lit.js +1 -1
  110. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  111. package/dist/generated/templates/FilterMenuTemplate.lit.js +3 -3
  112. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  113. package/dist/generated/templates/FooterTemplate.lit.js +15 -15
  114. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  115. package/dist/generated/templates/HeroBannerTemplate.lit.js +2 -2
  116. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  117. package/dist/generated/templates/InputGroupTemplate.lit.d.ts +4 -0
  118. package/dist/generated/templates/InputGroupTemplate.lit.js +7 -0
  119. package/dist/generated/templates/InputGroupTemplate.lit.js.map +1 -0
  120. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +4 -4
  121. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
  122. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  123. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  124. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  125. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  126. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +15 -10
  127. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  128. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +1 -1
  129. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  130. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +11 -10
  131. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  132. package/dist/generated/templates/SearchTemplate.lit.js +11 -10
  133. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  134. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  135. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  136. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +4 -0
  137. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +11 -0
  138. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -0
  139. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +4 -0
  140. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +9 -0
  141. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -0
  142. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -9
  143. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  144. package/dist/generated/templates/SelectBoxTemplate.lit.js +1 -1
  145. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  146. package/dist/generated/templates/StatusBadgeTemplate.lit.d.ts +4 -0
  147. package/dist/generated/templates/StatusBadgeTemplate.lit.js +5 -0
  148. package/dist/generated/templates/StatusBadgeTemplate.lit.js.map +1 -0
  149. package/dist/generated/themes/AccordionItem.css.js +1 -1
  150. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  151. package/dist/generated/themes/Avatar.css.js +1 -1
  152. package/dist/generated/themes/Avatar.css.js.map +1 -1
  153. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  154. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  155. package/dist/generated/themes/Checkbox.css.js +1 -1
  156. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  157. package/dist/generated/themes/CountrySelector.css.js +1 -1
  158. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  159. package/dist/generated/themes/DatePicker.css.js +1 -1
  160. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  161. package/dist/generated/themes/Dropdown.css.js +1 -1
  162. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  163. package/dist/generated/themes/FilterMenu.css.js +1 -1
  164. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  165. package/dist/generated/themes/HeroBanner.css.js +1 -1
  166. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  167. package/dist/generated/themes/InputGroup.css.d.ts +3 -0
  168. package/dist/generated/themes/InputGroup.css.js +9 -0
  169. package/dist/generated/themes/InputGroup.css.js.map +1 -0
  170. package/dist/generated/themes/MastheadItem.css.js +1 -1
  171. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  172. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  173. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  174. package/dist/generated/themes/MastheadShell.css.js +1 -1
  175. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  176. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  177. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  178. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  179. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  180. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  181. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  182. package/dist/generated/themes/Search.css.js +1 -1
  183. package/dist/generated/themes/Search.css.js.map +1 -1
  184. package/dist/generated/themes/SearchSuggestions.css.js +1 -1
  185. package/dist/generated/themes/SearchSuggestions.css.js.map +1 -1
  186. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  187. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  188. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +3 -0
  189. package/dist/generated/themes/SecondaryNavigationItem.css.js +9 -0
  190. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -0
  191. package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +3 -0
  192. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +9 -0
  193. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -0
  194. package/dist/generated/themes/Slider.css.js +1 -1
  195. package/dist/generated/themes/Slider.css.js.map +1 -1
  196. package/dist/generated/themes/StatusBadge.css.d.ts +3 -0
  197. package/dist/generated/themes/StatusBadge.css.js +9 -0
  198. package/dist/generated/themes/StatusBadge.css.js.map +1 -0
  199. package/dist/generated/themes/Tag.css.js +1 -1
  200. package/dist/generated/themes/Tag.css.js.map +1 -1
  201. package/dist/generated/themes/TextField.css.js +1 -1
  202. package/dist/generated/themes/TextField.css.js.map +1 -1
  203. package/dist/i18n/messagebundle.properties +12 -1
  204. package/dist/i18n/messagebundle_en.properties +8 -1
  205. package/dist/types/callback.d.ts +2 -0
  206. package/dist/types/callback.js +2 -0
  207. package/dist/types/callback.js.map +1 -0
  208. package/dist/utils/debounce.d.ts +2 -2
  209. package/dist/utils/debounce.js.map +1 -1
  210. package/dist/utils/retryUntilSuccessful.d.ts +3 -0
  211. package/dist/utils/retryUntilSuccessful.js +21 -0
  212. package/dist/utils/retryUntilSuccessful.js.map +1 -0
  213. package/dist/vscode.html-custom-data.json +178 -14
  214. package/dist/web-types.json +406 -32
  215. package/package.json +1 -1
  216. package/src/AccordionItem.hbs +12 -1
  217. package/src/AccordionItem.ts +11 -2
  218. package/src/Avatar.ts +12 -3
  219. package/src/CountrySelector.hbs +3 -3
  220. package/src/CountrySelector.ts +22 -21
  221. package/src/Dropdown.hbs +0 -1
  222. package/src/Dropdown.ts +10 -0
  223. package/src/FilterMenu.hbs +5 -1
  224. package/src/FilterMenu.ts +60 -10
  225. package/src/Footer.hbs +154 -91
  226. package/src/Footer.ts +158 -1
  227. package/src/HeroBanner.hbs +24 -21
  228. package/src/InputGroup.hbs +20 -0
  229. package/src/InputGroup.ts +137 -0
  230. package/src/List.ts +92 -21
  231. package/src/ListGroupHeader.hbs +9 -5
  232. package/src/ListItem.hbs +2 -1
  233. package/src/ListItem.ts +0 -7
  234. package/src/ListItemBase.ts +14 -0
  235. package/src/ListSelectAll.hbs +1 -0
  236. package/src/MastheadMobileMenu.hbs +51 -28
  237. package/src/MastheadMobileMenu.ts +12 -3
  238. package/src/MastheadProfileMenu.hbs +1 -1
  239. package/src/PhoneNumberField.ts +27 -3
  240. package/src/Search.hbs +26 -3
  241. package/src/Search.ts +236 -21
  242. package/src/SearchSuggestions.hbs +47 -49
  243. package/src/SearchableListBase.hbs +2 -0
  244. package/src/SecondaryNavigation.hbs +52 -72
  245. package/src/SecondaryNavigation.ts +182 -186
  246. package/src/SecondaryNavigationItem.hbs +63 -0
  247. package/src/SecondaryNavigationItem.ts +358 -0
  248. package/src/SecondaryNavigationItemBase.ts +115 -0
  249. package/src/SecondaryNavigationSubItem.hbs +41 -0
  250. package/src/SecondaryNavigationSubItem.ts +123 -0
  251. package/src/SelectBox.hbs +1 -0
  252. package/src/SelectBox.ts +38 -1
  253. package/src/StatusBadge.hbs +9 -0
  254. package/src/StatusBadge.ts +129 -0
  255. package/src/Tab.ts +1 -1
  256. package/src/Table.ts +7 -7
  257. package/src/Tag.ts +12 -3
  258. package/src/TextArea.ts +1 -1
  259. package/src/features/SearchSuggestionsPopover.ts +18 -20
  260. package/src/generated/i18n/i18n-defaults.ts +2 -2
  261. package/src/generated/templates/AccordionItemTemplate.lit.ts +2 -1
  262. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  263. package/src/generated/templates/DropdownTemplate.lit.ts +1 -1
  264. package/src/generated/templates/FilterMenuTemplate.lit.ts +3 -3
  265. package/src/generated/templates/FooterTemplate.lit.ts +15 -15
  266. package/src/generated/templates/HeroBannerTemplate.lit.ts +2 -2
  267. package/src/generated/templates/InputGroupTemplate.lit.ts +12 -0
  268. package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +4 -4
  269. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  270. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  271. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +15 -10
  272. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +1 -1
  273. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +11 -10
  274. package/src/generated/templates/SearchTemplate.lit.ts +10 -9
  275. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  276. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +16 -0
  277. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +14 -0
  278. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -9
  279. package/src/generated/templates/SelectBoxTemplate.lit.ts +1 -1
  280. package/src/generated/templates/StatusBadgeTemplate.lit.ts +10 -0
  281. package/src/generated/themes/AccordionItem.css.ts +1 -1
  282. package/src/generated/themes/Avatar.css.ts +1 -1
  283. package/src/generated/themes/Breadcrumbs.css.ts +1 -1
  284. package/src/generated/themes/Checkbox.css.ts +1 -1
  285. package/src/generated/themes/CountrySelector.css.ts +1 -1
  286. package/src/generated/themes/DatePicker.css.ts +1 -1
  287. package/src/generated/themes/Dropdown.css.ts +1 -1
  288. package/src/generated/themes/FilterMenu.css.ts +1 -1
  289. package/src/generated/themes/HeroBanner.css.ts +1 -1
  290. package/src/generated/themes/InputGroup.css.ts +13 -0
  291. package/src/generated/themes/MastheadItem.css.ts +1 -1
  292. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  293. package/src/generated/themes/MastheadShell.css.ts +1 -1
  294. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  295. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  296. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  297. package/src/generated/themes/Search.css.ts +1 -1
  298. package/src/generated/themes/SearchSuggestions.css.ts +1 -1
  299. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  300. package/src/generated/themes/SecondaryNavigationItem.css.ts +13 -0
  301. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +13 -0
  302. package/src/generated/themes/Slider.css.ts +1 -1
  303. package/src/generated/themes/StatusBadge.css.ts +13 -0
  304. package/src/generated/themes/Tag.css.ts +1 -1
  305. package/src/generated/themes/TextField.css.ts +1 -1
  306. package/src/i18n/messagebundle.properties +12 -1
  307. package/src/i18n/messagebundle_en.properties +8 -1
  308. package/src/themes/AccordionItem.css +20 -15
  309. package/src/themes/Avatar.css +20 -0
  310. package/src/themes/Breadcrumbs.css +4 -2
  311. package/src/themes/Checkbox.css +12 -0
  312. package/src/themes/CountrySelector.css +16 -1
  313. package/src/themes/DatePicker.css +1 -1
  314. package/src/themes/Dropdown.css +3 -1
  315. package/src/themes/FilterMenu.css +10 -0
  316. package/src/themes/HeroBanner.css +42 -6
  317. package/src/themes/InputGroup.css +19 -0
  318. package/src/themes/MastheadItem.css +2 -7
  319. package/src/themes/MastheadMenuItem.css +0 -4
  320. package/src/themes/MastheadShell.css +9 -10
  321. package/src/themes/MediaPlayer.css +3 -2
  322. package/src/themes/PhoneNumberField.css +17 -3
  323. package/src/themes/Search.css +168 -21
  324. package/src/themes/SearchSuggestions.css +7 -1
  325. package/src/themes/SecondaryNavigation.css +44 -302
  326. package/src/themes/SecondaryNavigationItem.css +220 -0
  327. package/src/themes/SecondaryNavigationSubItem.css +118 -0
  328. package/src/themes/StatusBadge.css +135 -0
  329. package/src/themes/Tag.css +6 -1
  330. package/src/themes/TextField.css +10 -1
  331. package/src/types/callback.ts +3 -0
  332. package/src/utils/debounce.ts +1 -1
  333. package/src/utils/retryUntilSuccessful.ts +23 -0
  334. package/dist/assets/messagebundle_en-26cd7a92.js +0 -1
@@ -0,0 +1,104 @@
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
+ var UDExStatusBadge_1;
8
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
9
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
10
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
12
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
13
+ import "@ui5/webcomponents-icons/dist/error.js";
14
+ import "@ui5/webcomponents-icons/dist/alert.js";
15
+ import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
16
+ import "@ui5/webcomponents-icons/dist/edit.js";
17
+ import "@ui5/webcomponents-icons/dist/information.js";
18
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
19
+ import { STATUS_BADGE_TEXT, STATUS_BADGE_EDIT_TITLE, STATUS_BADGE_INFORMATION_TITLE, STATUS_BADGE_ERROR_TITLE, STATUS_BADGE_SUCCESS_TITLE, STATUS_BADGE_WARNING_TITLE, } from "./generated/i18n/i18n-defaults.js";
20
+ import StatusBadgeTemplate from "./generated/templates/StatusBadgeTemplate.lit.js";
21
+ // Styles
22
+ import StatusBadgeCss from "./generated/themes/StatusBadge.css.js";
23
+ export var IconMapping;
24
+ (function (IconMapping) {
25
+ IconMapping["Success"] = "sys-enter-2";
26
+ IconMapping["Error"] = "error";
27
+ IconMapping["Warning"] = "alert";
28
+ IconMapping["Edit"] = "edit";
29
+ IconMapping["Information"] = "information";
30
+ })(IconMapping || (IconMapping = {}));
31
+ export var BadgeSize;
32
+ (function (BadgeSize) {
33
+ BadgeSize["XS"] = "XS";
34
+ BadgeSize["S"] = "S";
35
+ BadgeSize["M"] = "M";
36
+ BadgeSize["L"] = "L";
37
+ BadgeSize["XL"] = "XL";
38
+ })(BadgeSize || (BadgeSize = {}));
39
+ /**
40
+ * @class
41
+ *
42
+ * <h3 class="comment-api-title">Overview</h3>
43
+ *
44
+ *
45
+ * <h3>Usage</h3>
46
+ *
47
+ * For the <code>udex-status-badge</code>
48
+ * <h3>ES6 Module Import</h3>
49
+ *
50
+ * <code>import "@udex/web-components/dist/StatusBadge.js";</code>
51
+ *
52
+ * @constructor
53
+ * @extends UI5Element
54
+ * @public
55
+ */
56
+ let UDExStatusBadge = UDExStatusBadge_1 = class UDExStatusBadge extends UI5Element {
57
+ static async onDefine() {
58
+ UDExStatusBadge_1.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
59
+ }
60
+ get iconFieldName() {
61
+ if (!IconMapping[this.valueState]) {
62
+ return IconMapping.Information;
63
+ }
64
+ return IconMapping[this.valueState];
65
+ }
66
+ get badgeAccessibleName() {
67
+ return `${this.accessibleName ? this.accessibleName : UDExStatusBadge_1.i18nBundle.getText(STATUS_BADGE_TEXT)}`;
68
+ }
69
+ get ariaTitle() {
70
+ switch (IconMapping[this.valueState]) {
71
+ case IconMapping.Edit:
72
+ return UDExStatusBadge_1.i18nBundle.getText(STATUS_BADGE_EDIT_TITLE);
73
+ case IconMapping.Information:
74
+ return UDExStatusBadge_1.i18nBundle.getText(STATUS_BADGE_INFORMATION_TITLE);
75
+ case IconMapping.Success:
76
+ return UDExStatusBadge_1.i18nBundle.getText(STATUS_BADGE_SUCCESS_TITLE);
77
+ case IconMapping.Error:
78
+ return UDExStatusBadge_1.i18nBundle.getText(STATUS_BADGE_ERROR_TITLE);
79
+ case IconMapping.Warning:
80
+ return UDExStatusBadge_1.i18nBundle.getText(STATUS_BADGE_WARNING_TITLE);
81
+ }
82
+ }
83
+ };
84
+ __decorate([
85
+ property({ type: IconMapping, defaultValue: IconMapping.Information })
86
+ ], UDExStatusBadge.prototype, "valueState", void 0);
87
+ __decorate([
88
+ property({ type: BadgeSize, defaultValue: BadgeSize.S })
89
+ ], UDExStatusBadge.prototype, "size", void 0);
90
+ __decorate([
91
+ property({ type: String, defaultValue: "" })
92
+ ], UDExStatusBadge.prototype, "accessibleName", void 0);
93
+ UDExStatusBadge = UDExStatusBadge_1 = __decorate([
94
+ customElement({
95
+ tag: "udex-status-badge",
96
+ renderer: litRender,
97
+ styles: StatusBadgeCss,
98
+ template: StatusBadgeTemplate,
99
+ dependencies: [Icon],
100
+ })
101
+ ], UDExStatusBadge);
102
+ UDExStatusBadge.define();
103
+ export default UDExStatusBadge;
104
+ //# sourceMappingURL=StatusBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.js","sourceRoot":"","sources":["../src/StatusBadge.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 Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n STATUS_BADGE_TEXT,\n STATUS_BADGE_EDIT_TITLE,\n STATUS_BADGE_INFORMATION_TITLE,\n STATUS_BADGE_ERROR_TITLE,\n STATUS_BADGE_SUCCESS_TITLE,\n STATUS_BADGE_WARNING_TITLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport StatusBadgeTemplate from \"./generated/templates/StatusBadgeTemplate.lit.js\";\n\n// Styles\nimport StatusBadgeCss from \"./generated/themes/StatusBadge.css.js\";\n\nexport enum IconMapping {\n Success = \"sys-enter-2\",\n Error = \"error\",\n Warning = \"alert\",\n Edit = \"edit\",\n Information = \"information\",\n}\n\nexport enum BadgeSize {\n XS = \"XS\",\n S = \"S\",\n M = \"M\",\n L = \"L\",\n XL = \"XL\",\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-status-badge</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/StatusBadge.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-status-badge\",\n renderer: litRender,\n styles: StatusBadgeCss,\n template: StatusBadgeTemplate,\n dependencies: [Icon],\n})\nclass UDExStatusBadge extends UI5Element {\n /**\n * Defines the value state of the component.\n *\n * @default \"Information\"\n * @public\n */\n @property({ type: IconMapping, defaultValue: IconMapping.Information })\n valueState!: \"Information\" | \"Warning\" | \"Error\" | \"Success\" | \"Edit\";\n\n /**\n * Defines predefined size of the component.\n *\n * @default \"S\"\n * @public\n */\n @property({ type: BadgeSize, defaultValue: BadgeSize.S })\n size!: `${BadgeSize}`;\n\n /**\n * Defines the text alternative of the component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n accessibleName!: string;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExStatusBadge.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n get iconFieldName(): string {\n if (!IconMapping[this.valueState]) {\n return IconMapping.Information;\n }\n return IconMapping[this.valueState];\n }\n\n get badgeAccessibleName(): string {\n return `${this.accessibleName ? this.accessibleName : UDExStatusBadge.i18nBundle.getText(STATUS_BADGE_TEXT)}`;\n }\n\n get ariaTitle() {\n switch (IconMapping[this.valueState]) {\n case IconMapping.Edit:\n return UDExStatusBadge.i18nBundle.getText(STATUS_BADGE_EDIT_TITLE);\n case IconMapping.Information:\n return UDExStatusBadge.i18nBundle.getText(STATUS_BADGE_INFORMATION_TITLE);\n case IconMapping.Success:\n return UDExStatusBadge.i18nBundle.getText(STATUS_BADGE_SUCCESS_TITLE);\n case IconMapping.Error:\n return UDExStatusBadge.i18nBundle.getText(STATUS_BADGE_ERROR_TITLE);\n case IconMapping.Warning:\n return UDExStatusBadge.i18nBundle.getText(STATUS_BADGE_WARNING_TITLE);\n }\n }\n}\n\nUDExStatusBadge.define();\n\nexport default UDExStatusBadge;\n"]}
package/dist/Tab.js CHANGED
@@ -109,7 +109,7 @@ let UDExTab = UDExTab_1 = class UDExTab extends UI5Element {
109
109
  return labels.join(" ");
110
110
  }
111
111
  get accessibleNameText() {
112
- return this.accessibleName || (this.showAttentionBadge ? `, Attention badge ${UDExTab_1.i18nBundle.getText(ATTENTION_BADGE)}` : "");
112
+ return this.accessibleName || (this.showAttentionBadge ? `, ${UDExTab_1.i18nBundle.getText(ATTENTION_BADGE)}` : "");
113
113
  }
114
114
  static get headerTemplate() {
115
115
  return TabHeaderTemplate;
package/dist/Tab.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../src/Tab.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,eAAe,MAAM,0DAA0D,CAAC;AACvF,OAAmB,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,iBAAiB,MAAM,gDAAgD,CAAC;AAC/E,OAAO,qBAAqB,MAAM,oDAAoD,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAEvE,MAAM,CAAN,IAAY,MAKX;AALD,WAAY,MAAM;IAChB,2BAAiB,CAAA;IACjB,6BAAmB,CAAA;IACnB,yBAAe,CAAA;IACf,uBAAa,CAAA;AACf,CAAC,EALW,MAAM,KAAN,MAAM,QAKjB;AAkCD;;;;;;;;;;;;;;;;;;GAkBG;AAQH,IAAM,OAAO,eAAb,MAAM,OAAQ,SAAQ,UAAU;IAiH9B,oBAAoB;QAClB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAClC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,SAAO,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAChC,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;IAC1F,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC;IAC/C,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;IACzC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,IAAI,8BAA8B;QAChC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1G,CAAC;IAED,IAAI,aAAa;QACf,OAAO,eAAe,CAAC,SAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,eAAe,CAAC,SAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;IAC1F,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;IACzC,CAAC;IAED,IAAI,cAAc;QAChB,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAK,OAAO,CAAC,CAAC;SACnC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAK,OAAO,CAAC,CAAC;SACnC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB,SAAO,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpI,CAAC;IAED,MAAM,KAAK,cAAc;QACvB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,gBAAgB;QACzB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;CACF,CAAA;AAzMG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACJ;AAQrB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCACX;AAOd;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACD;AASxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACP;AASnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACG;AAQ7B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCACX;AAQd;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCACX;AAQd;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;uCAChC;AAQrB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCACN;AASnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACN;AASpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACN;AASnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACO;AASjC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;wCACd;AA5GpB,OAAO;IAPZ,aAAa,CAAC;QACb,GAAG,EAAE,UAAU;QACf,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,CAAC,SAAS,CAAC;KAC1B,CAAC;GAEI,OAAO,CAgNZ;AAED,OAAO,CAAC,MAAM,EAAE,CAAC;AAEjB,aAAa,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;AAE5D,eAAe,OAAO,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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\n\nimport TabTemplate from \"./generated/templates/TabTemplate.lit.js\";\nimport TabHeaderTemplate from \"./generated/templates/TabHeaderTemplate.lit.js\";\nimport TabInOverflowTemplate from \"./generated/templates/TabInOverflowTemplate.lit.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\n\nexport enum Target {\n _blank = \"_blank\",\n _parent = \"_parent\",\n _self = \"_self\",\n _top = \"_top\",\n}\n\ninterface ITab extends UI5Element {\n getTabInHeaderDomRef: () => ITab | null;\n disabled?: boolean;\n icon?: string;\n selected?: boolean;\n numberBadge?: string;\n text?: string;\n showAttentionBadge?: boolean;\n accessibleName?: string;\n href?: string;\n content?: Array<Node>;\n hasIcon: boolean;\n isOnSelectedTab: boolean;\n hasNotIcon: boolean;\n hasNotHref: boolean;\n isSelected: boolean;\n selectedClass: string;\n tabNavigation: any;\n _individualSlot: string;\n _effectiveSlotName: string;\n _slotName: string;\n _selected?: boolean;\n _tabIndex: string;\n _iconWithoutBackground: boolean;\n _posinset?: number;\n _setsize?: number;\n _contentId?: string;\n getElementInHeader?: () => ITab | null;\n _realTab?: UDExTab;\n _width?: string;\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-tab</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Tab.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab\n * @public\n */\n@customElement({\n tag: \"udex-tab\",\n renderer: litRender,\n template: TabTemplate,\n dependencies: [UDExBadge],\n})\n\nclass UDExTab extends UI5Element implements ITab {\n /**\n * Defines the Badge at the end of the Tab item.\n *\n * @public\n */\n @property({ type: String })\n numberBadge?: string;\n\n /**\n * Defines the text of tab.\n *\n * @public\n */\n @property({ type: String })\n text!: string;\n /**\n * Accessible name for tab.\n *\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Defines the selected tab.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Defines the icon in the tab.\n *\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines the href of the tab.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the tab\n *\n * @public\n */\n @property({ type: Target, defaultValue: Target._self })\n target!: `${Target}`;\n\n /**\n * Defines the tab.\n *\n * @private\n */\n @property({ type: Object })\n _realTab!: UDExTab;\n\n /**\n * Defines the selected tab for private use.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _selected!: boolean;\n\n /**\n * Defines the tabindex of the tab.\n *\n * @private\n * @default false\n */\n @property({ type: String })\n _tabIndex!: string;\n\n /**\n * Defines the background color of the component.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _iconWithoutBackground!: boolean;\n\n /**\n * Defines the content of the tab.\n *\n * @slot content\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: Array<Node>;\n\n getElementInHeader?: () => ITab | null;\n _individualSlot!: string;\n\n getTabInHeaderDomRef(): ITab | null {\n if (this.getElementInHeader) {\n return this.getElementInHeader();\n }\n\n return null;\n }\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExTab.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n get isOnSelectedTab(): boolean {\n return this._realTab === this;\n }\n\n get _effectiveSlotName() {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n get classWithIcon(): string {\n return this.hasIcon ? \"udex-tab-navigation__button-text--icon\" : \"\";\n }\n\n get buttonClassWithIcon(): string {\n return this.hasIcon ? \" udex-tab-navigation__button-tab--icon\" : \"\";\n }\n\n get hasNotIcon(): boolean {\n return !this.icon && this.showAttentionBadge;\n }\n\n get hasNotHref(): boolean {\n return !this.href;\n }\n\n get isSelected() {\n return this.selected || this._selected;\n }\n\n get selectedClass(): string {\n return this.isSelected ? \"udex-tab-navigation__button-tab--active\" : \"\";\n }\n\n get classWithIconWithoutBackground(): string {\n return this.hasIcon && !this._iconWithoutBackground ? \" udex-tab-navigation__button-tab--icon-tab\" : \"\";\n }\n\n get tabNavigation() {\n return executeTemplate(UDExTab.headerTemplate, this);\n }\n\n get tabInOverflow() {\n return executeTemplate(UDExTab.overflowTemplate, this);\n }\n\n get _slotName() {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get effectiveSelected() {\n return this.selected || this._selected;\n }\n\n get ariaLabelledBy() {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id!}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id!}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get accessibleNameText() {\n return this.accessibleName || (this.showAttentionBadge ? `, Attention badge ${UDExTab.i18nBundle.getText(ATTENTION_BADGE)}` : \"\");\n }\n\n static get headerTemplate() {\n return TabHeaderTemplate;\n }\n\n static get overflowTemplate() {\n return TabInOverflowTemplate;\n }\n}\n\nUDExTab.define();\n\nTabNavigation.registerStaticAreaTabStyles(TabInOverflowCss);\n\nexport default UDExTab;\nexport { ITab };\n"]}
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../src/Tab.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\n\nimport TabTemplate from \"./generated/templates/TabTemplate.lit.js\";\nimport TabHeaderTemplate from \"./generated/templates/TabHeaderTemplate.lit.js\";\nimport TabInOverflowTemplate from \"./generated/templates/TabInOverflowTemplate.lit.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\n\nexport enum Target {\n _blank = \"_blank\",\n _parent = \"_parent\",\n _self = \"_self\",\n _top = \"_top\",\n}\n\ninterface ITab extends UI5Element {\n getTabInHeaderDomRef: () => ITab | null;\n disabled?: boolean;\n icon?: string;\n selected?: boolean;\n numberBadge?: string;\n text?: string;\n showAttentionBadge?: boolean;\n accessibleName?: string;\n href?: string;\n content?: Array<Node>;\n hasIcon: boolean;\n isOnSelectedTab: boolean;\n hasNotIcon: boolean;\n hasNotHref: boolean;\n isSelected: boolean;\n selectedClass: string;\n tabNavigation: any;\n _individualSlot: string;\n _effectiveSlotName: string;\n _slotName: string;\n _selected?: boolean;\n _tabIndex: string;\n _iconWithoutBackground: boolean;\n _posinset?: number;\n _setsize?: number;\n _contentId?: string;\n getElementInHeader?: () => ITab | null;\n _realTab?: UDExTab;\n _width?: string;\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-tab</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Tab.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab\n * @public\n */\n@customElement({\n tag: \"udex-tab\",\n renderer: litRender,\n template: TabTemplate,\n dependencies: [UDExBadge],\n})\n\nclass UDExTab extends UI5Element implements ITab {\n /**\n * Defines the Badge at the end of the Tab item.\n *\n * @public\n */\n @property({ type: String })\n numberBadge?: string;\n\n /**\n * Defines the text of tab.\n *\n * @public\n */\n @property({ type: String })\n text!: string;\n /**\n * Accessible name for tab.\n *\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Defines the selected tab.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Defines the icon in the tab.\n *\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines the href of the tab.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the tab\n *\n * @public\n */\n @property({ type: Target, defaultValue: Target._self })\n target!: `${Target}`;\n\n /**\n * Defines the tab.\n *\n * @private\n */\n @property({ type: Object })\n _realTab!: UDExTab;\n\n /**\n * Defines the selected tab for private use.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _selected!: boolean;\n\n /**\n * Defines the tabindex of the tab.\n *\n * @private\n * @default false\n */\n @property({ type: String })\n _tabIndex!: string;\n\n /**\n * Defines the background color of the component.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _iconWithoutBackground!: boolean;\n\n /**\n * Defines the content of the tab.\n *\n * @slot content\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: Array<Node>;\n\n getElementInHeader?: () => ITab | null;\n _individualSlot!: string;\n\n getTabInHeaderDomRef(): ITab | null {\n if (this.getElementInHeader) {\n return this.getElementInHeader();\n }\n\n return null;\n }\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExTab.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n get isOnSelectedTab(): boolean {\n return this._realTab === this;\n }\n\n get _effectiveSlotName() {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n get classWithIcon(): string {\n return this.hasIcon ? \"udex-tab-navigation__button-text--icon\" : \"\";\n }\n\n get buttonClassWithIcon(): string {\n return this.hasIcon ? \" udex-tab-navigation__button-tab--icon\" : \"\";\n }\n\n get hasNotIcon(): boolean {\n return !this.icon && this.showAttentionBadge;\n }\n\n get hasNotHref(): boolean {\n return !this.href;\n }\n\n get isSelected() {\n return this.selected || this._selected;\n }\n\n get selectedClass(): string {\n return this.isSelected ? \"udex-tab-navigation__button-tab--active\" : \"\";\n }\n\n get classWithIconWithoutBackground(): string {\n return this.hasIcon && !this._iconWithoutBackground ? \" udex-tab-navigation__button-tab--icon-tab\" : \"\";\n }\n\n get tabNavigation() {\n return executeTemplate(UDExTab.headerTemplate, this);\n }\n\n get tabInOverflow() {\n return executeTemplate(UDExTab.overflowTemplate, this);\n }\n\n get _slotName() {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get effectiveSelected() {\n return this.selected || this._selected;\n }\n\n get ariaLabelledBy() {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id!}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id!}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get accessibleNameText() {\n return this.accessibleName || (this.showAttentionBadge ? `, ${UDExTab.i18nBundle.getText(ATTENTION_BADGE)}` : \"\");\n }\n\n static get headerTemplate() {\n return TabHeaderTemplate;\n }\n\n static get overflowTemplate() {\n return TabInOverflowTemplate;\n }\n}\n\nUDExTab.define();\n\nTabNavigation.registerStaticAreaTabStyles(TabInOverflowCss);\n\nexport default UDExTab;\nexport { ITab };\n"]}
package/dist/Table.d.ts CHANGED
@@ -28,12 +28,12 @@ type KeyBoardItem = {
28
28
  declare class UDExTable extends UI5Element {
29
29
  /**
30
30
  * Defines the height of the table.
31
- * Allows control over the height.
31
+ * Allows control over the maximum height.
32
32
  *
33
- * @default undefined
33
+ * @default ""
34
34
  * @public
35
35
  */
36
- height?: string;
36
+ maxHeight: string;
37
37
  /**
38
38
  * Defines the accessible ARIA name of the table.
39
39
  *
@@ -129,13 +129,13 @@ declare class UDExTable extends UI5Element {
129
129
  getInteractiveElements(el: TableBaseRow): Array<HTMLElement>;
130
130
  get _effectiveNoDataText(): string;
131
131
  get _hasToolbar(): boolean;
132
- get _tableHeight(): string;
132
+ get _tableMaxHeight(): string;
133
133
  get _tableHolder(): HTMLElement;
134
134
  get _gridTemplateColumns(): string;
135
135
  get _styles(): {
136
136
  table: {
137
137
  "grid-template-columns": string;
138
- height: string;
138
+ "max-height": string;
139
139
  };
140
140
  };
141
141
  }
package/dist/Table.js CHANGED
@@ -194,8 +194,8 @@ let UDExTable = UDExTable_1 = class UDExTable extends UI5Element {
194
194
  get _hasToolbar() {
195
195
  return this.heading.length > 0 || this.actions.length > 0;
196
196
  }
197
- get _tableHeight() {
198
- return this.height ? this.height : "auto";
197
+ get _tableMaxHeight() {
198
+ return this.maxHeight ? this.maxHeight : "auto";
199
199
  }
200
200
  get _tableHolder() {
201
201
  return this.shadowRoot?.getElementById("table");
@@ -214,15 +214,15 @@ let UDExTable = UDExTable_1 = class UDExTable extends UI5Element {
214
214
  return {
215
215
  table: {
216
216
  "grid-template-columns": this._gridTemplateColumns,
217
- "height": this._tableHeight,
217
+ "max-height": this._tableMaxHeight,
218
218
  ...headerStyleMap,
219
219
  },
220
220
  };
221
221
  }
222
222
  };
223
223
  __decorate([
224
- property({ type: String })
225
- ], UDExTable.prototype, "height", void 0);
224
+ property()
225
+ ], UDExTable.prototype, "maxHeight", void 0);
226
226
  __decorate([
227
227
  property({ type: String })
228
228
  ], UDExTable.prototype, "accessibleName", void 0);
package/dist/Table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport {\n isUp, isDown, isLeft, isRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExTableHeaderRow from \"./TableHeaderRow.js\";\nimport UDExTableRow from \"./TableRow.js\";\nimport UDExTableCell from \"./TableCell.js\";\nimport UDExTableGroupRow from \"./TableGroupRow.js\";\nimport UDExTableHeaderCell from \"./TableHeaderCell.js\";\nimport { TABLE_NO_DATA_FOUND } from \"./generated/i18n/i18n-defaults.js\";\nimport TableTemplate from \"./generated/templates/TableTemplate.lit.js\";\n\n// Styles\nimport TableCss from \"./generated/themes/Table.css.js\";\n\ntype TableBaseRow = UDExTableHeaderRow | UDExTableRow;\n\ntype KeyBoardItem = {\n id: string;\n group?: boolean;\n elements: Array<HTMLElement>;\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-table</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Table.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-table\",\n renderer: litRender,\n styles: [TableCss, getEffectiveScrollbarStyle()],\n template: TableTemplate,\n dependencies: [\n BusyIndicator,\n UDExTableHeaderRow,\n UDExTableRow,\n UDExTableCell,\n UDExTableGroupRow,\n ],\n})\n\nclass UDExTable extends UI5Element {\n /**\n * Defines the height of the table.\n * Allows control over the height.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines the accessible ARIA name of the table.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Defines the heading of the table.\n * @public\n */\n @property({ type: String })\n heading!: string;\n\n /**\n * Defines the text to be displayed when there are no rows in the component.\n * @public\n */\n @property()\n noDataText?: string;\n\n /**\n * Defines if the loading indicator should be shown.\n * @default false\n * @public\n */\n @property({ type: String })\n loading!: string;\n\n /**\n * Defines the delay in milliseconds, after which the loading indicator will show up for this component.\n * @default 1000\n * @public\n */\n @property({ defaultValue: 1000, type: Integer })\n loadingDelay!: string;\n\n /**\n * Sticks the toolbar and header row to the top of the table.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyHeader!: boolean;\n\n /**\n * Sticks the first column to the left of the table.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyColumn!: boolean;\n\n /**\n * Defines the rows of the table.\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n rows!: Array<UDExTableRow | UDExTableGroupRow>;\n\n /**\n * Defines the header row of the table.\n * @public\n */\n @slot({ type: HTMLElement })\n headerRow!: Array<UDExTableHeaderRow>;\n\n /**\n * Defines the actions of the table.\n * @public\n */\n @slot({ type: HTMLElement })\n actions!: Array<HTMLElement>;\n\n /**\n * Defines the custom visualization if there is no data available.\n * @public\n */\n @slot()\n noData!: Array<HTMLElement>;\n\n /**\n * Defines the footnotes of the table.\n * @public\n */\n @slot()\n footnotes!: Array<HTMLElement>;\n\n /**\n * Defines the table has vertical scrolling.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _verticalOffset?: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExTable.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n onAfterRendering() {\n if (this.stickyColumn) {\n this._setStickyAttrToCells();\n }\n\n this._setIndexToCells();\n\n if (this.headerRow) {\n this._setCellsHighlighter();\n }\n }\n\n _handleKeyDown(e: KeyboardEvent) {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n this.navigateRows(-1);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n this.navigateRows(1);\n }\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n this.navigateCells(1);\n }\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n this.navigateCells(-1);\n }\n }\n\n navigateRows(offset: number) {\n const items = this.getKeyboardNavigationItems();\n const activeItem = items.find(item => item.id === this.getParentRow()._id) as KeyBoardItem;\n const activeIndex = items.indexOf(activeItem);\n const nextItem = items[activeIndex + offset];\n\n nextItem?.elements[0]?.focus();\n }\n\n navigateCells(offset: number) {\n const parentRow = this.getParentRow();\n\n if (!(parentRow as UDExTableGroupRow).isGroup) {\n const interactiveElements = this.getInteractiveElements(parentRow as TableBaseRow);\n const currentIndex = interactiveElements.indexOf(<HTMLElement>document.activeElement);\n const targetIndex = currentIndex + offset;\n if (targetIndex >= 0 && targetIndex < interactiveElements.length) {\n interactiveElements[targetIndex]?.focus();\n }\n }\n }\n\n _onScroll() {\n const { scrollLeft, scrollTop } = this._tableHolder;\n\n if (this.stickyHeader) {\n this._verticalOffset = scrollTop > 0;\n }\n\n if (this.stickyColumn) {\n this._setHorizontalOffsetToCells(scrollLeft);\n }\n }\n\n _setCellsHighlighter(): void {\n const highlightedHeaderCells = this.headerRow.flatMap(header => {\n return header.cells\n .filter(cell => (cell as UDExTableHeaderCell).highlighted === true)\n .map(cell => cell._individualSlot);\n });\n\n this.rows.forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells.forEach(cell => {\n if (highlightedHeaderCells.includes(cell._individualSlot)) {\n cell.setAttribute(\"_highlighted\", \"\");\n }\n });\n }\n });\n }\n\n _setStickyAttrToCells():void {\n [...this.headerRow, ...this.rows].forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells[0]._sticky = true;\n }\n });\n }\n\n _setIndexToCells(): void {\n [...this.headerRow, ...this.rows].forEach((row, index) => {\n row._index = index;\n });\n }\n\n _setHorizontalOffsetToCells(scrollLeft: number):void {\n [...this.headerRow, ...this.rows].forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells[0]._horizontalOffset = scrollLeft > 0;\n }\n });\n }\n\n getParentRow(): UDExTableRow | UDExTableHeaderRow | UDExTableGroupRow {\n const focusedElement = document.activeElement as HTMLElement;\n return focusedElement.closest(\"udex-table-row, udex-table-header-row, udex-table-group-row\")!;\n }\n\n getKeyboardNavigationItems(): Array<KeyBoardItem> {\n const items: Array<KeyBoardItem> = [];\n\n const pushItemGroupToItems = (row: UDExTableHeaderRow | UDExTableRow | UDExTableGroupRow, collapsible: boolean | undefined) => {\n if (collapsible) {\n items.push(<KeyBoardItem>{\n id: row._id,\n elements: [row.shadowRoot?.querySelector(\"button\")],\n });\n }\n (row as UDExTableGroupRow).rows.forEach(rowGroup => {\n items.push({\n id: rowGroup._id,\n group: true,\n elements: this.getInteractiveElements(rowGroup),\n });\n });\n };\n\n const pushItemBaseToItems = (row: UDExTableHeaderRow | UDExTableRow | UDExTableGroupRow) => {\n items.push(<KeyBoardItem>{\n id: row._id,\n group: false,\n elements: row.isGroup\n ? [row.shadowRoot?.querySelector(\"button\")]\n : this.getInteractiveElements(row as TableBaseRow),\n });\n };\n\n [...this.headerRow, ...this.rows].forEach(row => {\n const { isGroup, _isOpen, collapsible } = row as UDExTableGroupRow;\n if (isGroup && _isOpen) {\n pushItemGroupToItems(row, collapsible);\n } else {\n pushItemBaseToItems(row);\n }\n });\n\n return items.filter(({ elements }) => elements.length);\n }\n\n getInteractiveElements(el: TableBaseRow): Array<HTMLElement> {\n return el.cells.flatMap(cell => Array.from(\n cell.querySelectorAll(\"button, a, udex-button, udex-link, udex-rating-indicator\"),\n ));\n }\n\n get _effectiveNoDataText() {\n return this.noDataText || UDExTable.i18nBundle.getText(TABLE_NO_DATA_FOUND);\n }\n\n get _hasToolbar(): boolean {\n return this.heading.length > 0 || this.actions.length > 0;\n }\n\n get _tableHeight(): string {\n return this.height ? this.height : \"auto\";\n }\n\n get _tableHolder(): HTMLElement {\n return this.shadowRoot?.getElementById(\"table\") as HTMLElement;\n }\n\n get _gridTemplateColumns(): string {\n const cellsLength = this.headerRow?.[0]?.cells.length || (this.rows?.[0] as TableBaseRow).cells.length;\n return `repeat(${cellsLength}, auto)`;\n }\n\n get _styles() {\n const headerStyleMap = this.headerRow?.[0]?.cells?.reduce((headerStyles, headerCell) => {\n if (headerCell.horizontalAlign !== undefined) {\n headerStyles[`--horizontal-align-${headerCell._individualSlot}`] = headerCell.horizontalAlign;\n }\n return headerStyles;\n }, {} as { [key: string]: string });\n\n return {\n table: {\n \"grid-template-columns\": this._gridTemplateColumns,\n \"height\": this._tableHeight,\n ...headerStyleMap,\n },\n };\n }\n}\n\nUDExTable.define();\n\nexport default UDExTable;\n"]}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport {\n isUp, isDown, isLeft, isRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExTableHeaderRow from \"./TableHeaderRow.js\";\nimport UDExTableRow from \"./TableRow.js\";\nimport UDExTableCell from \"./TableCell.js\";\nimport UDExTableGroupRow from \"./TableGroupRow.js\";\nimport UDExTableHeaderCell from \"./TableHeaderCell.js\";\nimport { TABLE_NO_DATA_FOUND } from \"./generated/i18n/i18n-defaults.js\";\nimport TableTemplate from \"./generated/templates/TableTemplate.lit.js\";\n\n// Styles\nimport TableCss from \"./generated/themes/Table.css.js\";\n\ntype TableBaseRow = UDExTableHeaderRow | UDExTableRow;\n\ntype KeyBoardItem = {\n id: string;\n group?: boolean;\n elements: Array<HTMLElement>;\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-table</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Table.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-table\",\n renderer: litRender,\n styles: [TableCss, getEffectiveScrollbarStyle()],\n template: TableTemplate,\n dependencies: [\n BusyIndicator,\n UDExTableHeaderRow,\n UDExTableRow,\n UDExTableCell,\n UDExTableGroupRow,\n ],\n})\n\nclass UDExTable extends UI5Element {\n /**\n * Defines the height of the table.\n * Allows control over the maximum height.\n *\n * @default \"\"\n * @public\n */\n @property()\n maxHeight!: string;\n\n /**\n * Defines the accessible ARIA name of the table.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Defines the heading of the table.\n * @public\n */\n @property({ type: String })\n heading!: string;\n\n /**\n * Defines the text to be displayed when there are no rows in the component.\n * @public\n */\n @property()\n noDataText?: string;\n\n /**\n * Defines if the loading indicator should be shown.\n * @default false\n * @public\n */\n @property({ type: String })\n loading!: string;\n\n /**\n * Defines the delay in milliseconds, after which the loading indicator will show up for this component.\n * @default 1000\n * @public\n */\n @property({ defaultValue: 1000, type: Integer })\n loadingDelay!: string;\n\n /**\n * Sticks the toolbar and header row to the top of the table.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyHeader!: boolean;\n\n /**\n * Sticks the first column to the left of the table.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyColumn!: boolean;\n\n /**\n * Defines the rows of the table.\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n rows!: Array<UDExTableRow | UDExTableGroupRow>;\n\n /**\n * Defines the header row of the table.\n * @public\n */\n @slot({ type: HTMLElement })\n headerRow!: Array<UDExTableHeaderRow>;\n\n /**\n * Defines the actions of the table.\n * @public\n */\n @slot({ type: HTMLElement })\n actions!: Array<HTMLElement>;\n\n /**\n * Defines the custom visualization if there is no data available.\n * @public\n */\n @slot()\n noData!: Array<HTMLElement>;\n\n /**\n * Defines the footnotes of the table.\n * @public\n */\n @slot()\n footnotes!: Array<HTMLElement>;\n\n /**\n * Defines the table has vertical scrolling.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _verticalOffset?: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExTable.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n onAfterRendering() {\n if (this.stickyColumn) {\n this._setStickyAttrToCells();\n }\n\n this._setIndexToCells();\n\n if (this.headerRow) {\n this._setCellsHighlighter();\n }\n }\n\n _handleKeyDown(e: KeyboardEvent) {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n this.navigateRows(-1);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n this.navigateRows(1);\n }\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n this.navigateCells(1);\n }\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n this.navigateCells(-1);\n }\n }\n\n navigateRows(offset: number) {\n const items = this.getKeyboardNavigationItems();\n const activeItem = items.find(item => item.id === this.getParentRow()._id) as KeyBoardItem;\n const activeIndex = items.indexOf(activeItem);\n const nextItem = items[activeIndex + offset];\n\n nextItem?.elements[0]?.focus();\n }\n\n navigateCells(offset: number) {\n const parentRow = this.getParentRow();\n\n if (!(parentRow as UDExTableGroupRow).isGroup) {\n const interactiveElements = this.getInteractiveElements(parentRow as TableBaseRow);\n const currentIndex = interactiveElements.indexOf(<HTMLElement>document.activeElement);\n const targetIndex = currentIndex + offset;\n if (targetIndex >= 0 && targetIndex < interactiveElements.length) {\n interactiveElements[targetIndex]?.focus();\n }\n }\n }\n\n _onScroll() {\n const { scrollLeft, scrollTop } = this._tableHolder;\n\n if (this.stickyHeader) {\n this._verticalOffset = scrollTop > 0;\n }\n\n if (this.stickyColumn) {\n this._setHorizontalOffsetToCells(scrollLeft);\n }\n }\n\n _setCellsHighlighter(): void {\n const highlightedHeaderCells = this.headerRow.flatMap(header => {\n return header.cells\n .filter(cell => (cell as UDExTableHeaderCell).highlighted === true)\n .map(cell => cell._individualSlot);\n });\n\n this.rows.forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells.forEach(cell => {\n if (highlightedHeaderCells.includes(cell._individualSlot)) {\n cell.setAttribute(\"_highlighted\", \"\");\n }\n });\n }\n });\n }\n\n _setStickyAttrToCells():void {\n [...this.headerRow, ...this.rows].forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells[0]._sticky = true;\n }\n });\n }\n\n _setIndexToCells(): void {\n [...this.headerRow, ...this.rows].forEach((row, index) => {\n row._index = index;\n });\n }\n\n _setHorizontalOffsetToCells(scrollLeft: number):void {\n [...this.headerRow, ...this.rows].forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells[0]._horizontalOffset = scrollLeft > 0;\n }\n });\n }\n\n getParentRow(): UDExTableRow | UDExTableHeaderRow | UDExTableGroupRow {\n const focusedElement = document.activeElement as HTMLElement;\n return focusedElement.closest(\"udex-table-row, udex-table-header-row, udex-table-group-row\")!;\n }\n\n getKeyboardNavigationItems(): Array<KeyBoardItem> {\n const items: Array<KeyBoardItem> = [];\n\n const pushItemGroupToItems = (row: UDExTableHeaderRow | UDExTableRow | UDExTableGroupRow, collapsible: boolean | undefined) => {\n if (collapsible) {\n items.push(<KeyBoardItem>{\n id: row._id,\n elements: [row.shadowRoot?.querySelector(\"button\")],\n });\n }\n (row as UDExTableGroupRow).rows.forEach(rowGroup => {\n items.push({\n id: rowGroup._id,\n group: true,\n elements: this.getInteractiveElements(rowGroup),\n });\n });\n };\n\n const pushItemBaseToItems = (row: UDExTableHeaderRow | UDExTableRow | UDExTableGroupRow) => {\n items.push(<KeyBoardItem>{\n id: row._id,\n group: false,\n elements: row.isGroup\n ? [row.shadowRoot?.querySelector(\"button\")]\n : this.getInteractiveElements(row as TableBaseRow),\n });\n };\n\n [...this.headerRow, ...this.rows].forEach(row => {\n const { isGroup, _isOpen, collapsible } = row as UDExTableGroupRow;\n if (isGroup && _isOpen) {\n pushItemGroupToItems(row, collapsible);\n } else {\n pushItemBaseToItems(row);\n }\n });\n\n return items.filter(({ elements }) => elements.length);\n }\n\n getInteractiveElements(el: TableBaseRow): Array<HTMLElement> {\n return el.cells.flatMap(cell => Array.from(\n cell.querySelectorAll(\"button, a, udex-button, udex-link, udex-rating-indicator\"),\n ));\n }\n\n get _effectiveNoDataText() {\n return this.noDataText || UDExTable.i18nBundle.getText(TABLE_NO_DATA_FOUND);\n }\n\n get _hasToolbar(): boolean {\n return this.heading.length > 0 || this.actions.length > 0;\n }\n\n get _tableMaxHeight(): string {\n return this.maxHeight ? this.maxHeight : \"auto\";\n }\n\n get _tableHolder(): HTMLElement {\n return this.shadowRoot?.getElementById(\"table\") as HTMLElement;\n }\n\n get _gridTemplateColumns(): string {\n const cellsLength = this.headerRow?.[0]?.cells.length || (this.rows?.[0] as TableBaseRow).cells.length;\n return `repeat(${cellsLength}, auto)`;\n }\n\n get _styles() {\n const headerStyleMap = this.headerRow?.[0]?.cells?.reduce((headerStyles, headerCell) => {\n if (headerCell.horizontalAlign !== undefined) {\n headerStyles[`--horizontal-align-${headerCell._individualSlot}`] = headerCell.horizontalAlign;\n }\n return headerStyles;\n }, {} as { [key: string]: string });\n\n return {\n table: {\n \"grid-template-columns\": this._gridTemplateColumns,\n \"max-height\": this._tableMaxHeight,\n ...headerStyleMap,\n },\n };\n }\n}\n\nUDExTable.define();\n\nexport default UDExTable;\n"]}
package/dist/Tag.d.ts CHANGED
@@ -65,7 +65,7 @@ declare class UDExTag extends UI5Element {
65
65
  */
66
66
  iconPlacement?: `${IconPlacement}`;
67
67
  /**
68
- * Defines if tag is in readonly state
68
+ * Defines if tag is in readnly state
69
69
  *
70
70
  * @default false
71
71
  * @public
@@ -114,6 +114,12 @@ declare class UDExTag extends UI5Element {
114
114
  */
115
115
  overflows: boolean;
116
116
  singleToken: boolean;
117
+ /**
118
+ * Toggle on/off nonSelectable property on tag
119
+ * @default true
120
+ * @private
121
+ */
122
+ nonSelectable: boolean;
117
123
  onBeforeRendering(): void;
118
124
  onEnterDOM(): void;
119
125
  get tagClasses(): string;
package/dist/Tag.js CHANGED
@@ -58,6 +58,7 @@ let UDExTag = class UDExTag extends UI5Element {
58
58
  get tagClasses() {
59
59
  return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} udex-tag-${this.design?.toLowerCase()}
60
60
  ${this.readOnly ? "udex-tag--readonly" : ""}
61
+ ${this.nonSelectable ? "udex-tag--nonselectable" : ""}
61
62
  ${this.selected ? "udex-tag--selected" : ""}`;
62
63
  }
63
64
  get startIcon() {
@@ -76,7 +77,7 @@ let UDExTag = class UDExTag extends UI5Element {
76
77
  }
77
78
  }
78
79
  tagClickHandler() {
79
- if (!this.readOnly && !this.toBeDeleted) {
80
+ if (!this.readOnly && !this.toBeDeleted && !this.nonSelectable) {
80
81
  this.setSelected();
81
82
  this.fireEvent("selectionChange");
82
83
  }
@@ -93,7 +94,7 @@ let UDExTag = class UDExTag extends UI5Element {
93
94
  this.focused = !this.focused;
94
95
  }
95
96
  get _tabIndex() {
96
- if (this.readOnly || this.overflows) {
97
+ if (this.readOnly || this.overflows || this.nonSelectable) {
97
98
  return -1;
98
99
  }
99
100
  return 0;
@@ -147,6 +148,9 @@ __decorate([
147
148
  __decorate([
148
149
  property({ type: Boolean })
149
150
  ], UDExTag.prototype, "singleToken", void 0);
151
+ __decorate([
152
+ property({ type: Boolean })
153
+ ], UDExTag.prototype, "nonSelectable", void 0);
150
154
  UDExTag = __decorate([
151
155
  customElement({
152
156
  tag: "udex-tag",
package/dist/Tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nimport TagTemplate from \"./generated/templates/TagTemplate.lit.js\";\n\n// Styles\nimport TagCss from \"./generated/themes/Tag.css.js\";\n\nexport enum TagType {\n Text = \"Text\",\n White = \"White\",\n Outlined = \"Outlined\",\n Grey = \"Grey\"\n}\n\nexport enum IconPlacement {\n Start = \"Start\",\n End = \"End\"\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Tag.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tag\n * @public\n */\n@customElement({\n tag: \"udex-tag\",\n renderer: litRender,\n styles: TagCss,\n template: TagTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Emitted when tag was clicked\n *\n * @event sap.ui.webc.web-components.UDExTag#selectionChange\n * @public\n */\n@event(\"selectionChange\")\n/**\n * Emitted when icon in tag was clicked\n *\n * @event sap.ui.webc.web-components.UDExTag#iconClick\n * @public\n */\n@event(\"iconClick\")\nclass UDExTag extends UI5Element {\n /**\n * Defines the text of the tag\n *\n * @default \"\"\n * @public\n */\n @property()\n text!: string;\n\n /**\n * Defines the design type of tag\n *\n * @default \"Grey\"\n * @public\n */\n @property({ type: TagType, defaultValue: TagType.Grey })\n design?: `${TagType}`;\n /**\n * Defines the size of the component.\n *\n * @default \"Small\"\n * @public\n */\n @property({ type: String, defaultValue: \"Small\" })\n size!: \"Small\" | \"Medium\";\n /**\n * Defines icon name\n *\n * @default \"\"\n * @public\n */\n @property()\n icon!: string;\n\n /**\n * Defines icon placement if icon was provided\n *\n * @default \"End\"\n * @public\n */\n @property({ type: IconPlacement, defaultValue: IconPlacement.End })\n iconPlacement? : `${IconPlacement}`;\n\n /**\n * Defines if tag is in readonly state\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readOnly!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the role attribute of component\n *\n * @default \"button\"\n * @public\n */\n @property({ defaultValue: \"button\" })\n accessibleRole!: string;\n\n /**\n * Defines if tag is selected\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines whether the component is focused or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines whether the token is being deleted\n * This flag is used in the udex-select-box\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n toBeDeleted!: boolean;\n\n /**\n * Set by the tokenizer when a token is in the \"more\" area (overflowing)\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n overflows!: boolean;\n\n @property({ type: Boolean })\n singleToken!: boolean;\n\n onBeforeRendering() {\n this.toBeDeleted = false;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n get tagClasses() {\n return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} udex-tag-${this.design?.toLowerCase()}\n ${this.readOnly ? \"udex-tag--readonly\" : \"\"}\n ${this.selected ? \"udex-tag--selected\" : \"\"}`;\n }\n\n get startIcon() {\n return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.Start;\n }\n\n get endIcon() {\n return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.End;\n }\n\n setSelected() {\n this.selected = !this.selected;\n }\n\n iconClickHandler(e: Event) {\n e.stopPropagation();\n if (!this.readOnly) {\n this.fireEvent(\"iconClick\");\n }\n }\n\n tagClickHandler() {\n if (!this.readOnly && !this.toBeDeleted) {\n this.setSelected();\n this.fireEvent(\"selectionChange\");\n }\n }\n\n tagKeyDown(e: KeyboardEvent) {\n if (isEnter(e)) {\n this.tagClickHandler();\n }\n }\n\n _focusin() {\n this.focused = true;\n }\n\n _focusout() {\n this.focused = !this.focused;\n }\n\n get _tabIndex() {\n if (this.readOnly || this.overflows) {\n return -1;\n }\n return 0;\n }\n\n get textDom() {\n return this.getDomRef()?.querySelector(\".udex-tag__text\");\n }\n\n get isTruncatable() {\n if (!this.textDom) {\n return false;\n }\n\n return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);\n }\n}\n\nUDExTag.define();\n\nexport default UDExTag;\n"]}
1
+ {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nimport TagTemplate from \"./generated/templates/TagTemplate.lit.js\";\n\n// Styles\nimport TagCss from \"./generated/themes/Tag.css.js\";\n\nexport enum TagType {\n Text = \"Text\",\n White = \"White\",\n Outlined = \"Outlined\",\n Grey = \"Grey\"\n}\n\nexport enum IconPlacement {\n Start = \"Start\",\n End = \"End\"\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Tag.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tag\n * @public\n */\n@customElement({\n tag: \"udex-tag\",\n renderer: litRender,\n styles: TagCss,\n template: TagTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Emitted when tag was clicked\n *\n * @event sap.ui.webc.web-components.UDExTag#selectionChange\n * @public\n */\n@event(\"selectionChange\")\n/**\n * Emitted when icon in tag was clicked\n *\n * @event sap.ui.webc.web-components.UDExTag#iconClick\n * @public\n */\n@event(\"iconClick\")\nclass UDExTag extends UI5Element {\n /**\n * Defines the text of the tag\n *\n * @default \"\"\n * @public\n */\n @property()\n text!: string;\n\n /**\n * Defines the design type of tag\n *\n * @default \"Grey\"\n * @public\n */\n @property({ type: TagType, defaultValue: TagType.Grey })\n design?: `${TagType}`;\n /**\n * Defines the size of the component.\n *\n * @default \"Small\"\n * @public\n */\n @property({ type: String, defaultValue: \"Small\" })\n size!: \"Small\" | \"Medium\";\n /**\n * Defines icon name\n *\n * @default \"\"\n * @public\n */\n @property()\n icon!: string;\n\n /**\n * Defines icon placement if icon was provided\n *\n * @default \"End\"\n * @public\n */\n @property({ type: IconPlacement, defaultValue: IconPlacement.End })\n iconPlacement? : `${IconPlacement}`;\n\n /**\n * Defines if tag is in readnly state\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readOnly!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the role attribute of component\n *\n * @default \"button\"\n * @public\n */\n @property({ defaultValue: \"button\" })\n accessibleRole!: string;\n\n /**\n * Defines if tag is selected\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines whether the component is focused or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines whether the token is being deleted\n * This flag is used in the udex-select-box\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n toBeDeleted!: boolean;\n\n /**\n * Set by the tokenizer when a token is in the \"more\" area (overflowing)\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n overflows!: boolean;\n\n @property({ type: Boolean })\n singleToken!: boolean;\n\n /**\n * Toggle on/off nonSelectable property on tag\n * @default true\n * @private\n */\n @property({ type: Boolean })\n nonSelectable!: boolean;\n\n onBeforeRendering() {\n this.toBeDeleted = false;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n get tagClasses() {\n return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} udex-tag-${this.design?.toLowerCase()}\n ${this.readOnly ? \"udex-tag--readonly\" : \"\"}\n ${this.nonSelectable ? \"udex-tag--nonselectable\" : \"\"}\n ${this.selected ? \"udex-tag--selected\" : \"\"}`;\n }\n\n get startIcon() {\n return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.Start;\n }\n\n get endIcon() {\n return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.End;\n }\n\n setSelected() {\n this.selected = !this.selected;\n }\n\n iconClickHandler(e: Event) {\n e.stopPropagation();\n if (!this.readOnly) {\n this.fireEvent(\"iconClick\");\n }\n }\n\n tagClickHandler() {\n if (!this.readOnly && !this.toBeDeleted && !this.nonSelectable) {\n this.setSelected();\n this.fireEvent(\"selectionChange\");\n }\n }\n\n tagKeyDown(e: KeyboardEvent) {\n if (isEnter(e)) {\n this.tagClickHandler();\n }\n }\n\n _focusin() {\n this.focused = true;\n }\n\n _focusout() {\n this.focused = !this.focused;\n }\n\n get _tabIndex() {\n if (this.readOnly || this.overflows || this.nonSelectable) {\n return -1;\n }\n return 0;\n }\n\n get textDom() {\n return this.getDomRef()?.querySelector(\".udex-tag__text\");\n }\n\n get isTruncatable() {\n if (!this.textDom) {\n return false;\n }\n\n return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);\n }\n}\n\nUDExTag.define();\n\nexport default UDExTag;\n"]}
@@ -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 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 {\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 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"]}