@sapudex/web-components 2.52.0 → 2.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/cypress/specs/Avatar.cy.tsx +103 -0
  2. package/cypress/specs/FilterMenu.cy.tsx +34 -0
  3. package/cypress/specs/SelectBox.cy.tsx +55 -0
  4. package/dist/Accordion.js +1 -1
  5. package/dist/Accordion.js.map +1 -1
  6. package/dist/AccordionItem.js +1 -1
  7. package/dist/AccordionItem.js.map +1 -1
  8. package/dist/Avatar.d.ts +12 -3
  9. package/dist/Avatar.js +44 -4
  10. package/dist/Avatar.js.map +1 -1
  11. package/dist/AvatarTemplate.js +1 -1
  12. package/dist/AvatarTemplate.js.map +1 -1
  13. package/dist/Badge.js +1 -1
  14. package/dist/Badge.js.map +1 -1
  15. package/dist/Breadcrumbs.js +1 -1
  16. package/dist/Breadcrumbs.js.map +1 -1
  17. package/dist/Carousel.js +1 -1
  18. package/dist/Carousel.js.map +1 -1
  19. package/dist/Contact.js +1 -1
  20. package/dist/Contact.js.map +1 -1
  21. package/dist/ContactItem.js +1 -1
  22. package/dist/ContactItem.js.map +1 -1
  23. package/dist/Feed.d.ts +2 -1
  24. package/dist/Feed.js +1 -1
  25. package/dist/Feed.js.map +1 -1
  26. package/dist/FeedItem.d.ts +2 -1
  27. package/dist/FeedItem.js +1 -1
  28. package/dist/FeedItem.js.map +1 -1
  29. package/dist/FilterMenuGroupHeader.js +1 -1
  30. package/dist/FilterMenuGroupHeader.js.map +1 -1
  31. package/dist/Footer.d.ts +2 -1
  32. package/dist/Footer.js +1 -1
  33. package/dist/Footer.js.map +1 -1
  34. package/dist/ImageGridCloud.js +1 -1
  35. package/dist/ImageGridCloud.js.map +1 -1
  36. package/dist/ImageGridTable.js +1 -1
  37. package/dist/ImageGridTable.js.map +1 -1
  38. package/dist/ImageGridTableItem.js +1 -1
  39. package/dist/ImageGridTableItem.js.map +1 -1
  40. package/dist/ImageGridTicker.js +1 -1
  41. package/dist/ImageGridTicker.js.map +1 -1
  42. package/dist/InputGroup.js +1 -1
  43. package/dist/InputGroup.js.map +1 -1
  44. package/dist/LinkList.js +1 -1
  45. package/dist/LinkList.js.map +1 -1
  46. package/dist/List.js +1 -1
  47. package/dist/List.js.map +1 -1
  48. package/dist/ListGroupHeaderBase.js +1 -1
  49. package/dist/ListGroupHeaderBase.js.map +1 -1
  50. package/dist/ListItem.d.ts +3 -3
  51. package/dist/ListItem.js +1 -1
  52. package/dist/ListItem.js.map +1 -1
  53. package/dist/MastheadItem.d.ts +3 -3
  54. package/dist/MastheadItem.js +1 -1
  55. package/dist/MastheadItem.js.map +1 -1
  56. package/dist/MastheadMobileMenu.d.ts +3 -3
  57. package/dist/MastheadMobileMenu.js +1 -1
  58. package/dist/MastheadMobileMenu.js.map +1 -1
  59. package/dist/MastheadProfileMenu.d.ts +3 -2
  60. package/dist/MastheadProfileMenu.js +1 -1
  61. package/dist/MastheadProfileMenu.js.map +1 -1
  62. package/dist/MastheadShell.d.ts +9 -9
  63. package/dist/MastheadShell.js +1 -1
  64. package/dist/MastheadShell.js.map +1 -1
  65. package/dist/MediaPlayer.d.ts +1 -1
  66. package/dist/MediaPlayer.js +13 -3
  67. package/dist/MediaPlayer.js.map +1 -1
  68. package/dist/MediaPlayerVimeo.d.ts +6 -0
  69. package/dist/MediaPlayerVimeo.js +27 -6
  70. package/dist/MediaPlayerVimeo.js.map +1 -1
  71. package/dist/MediaPlayerYoutube.d.ts +3 -0
  72. package/dist/MediaPlayerYoutube.js +24 -5
  73. package/dist/MediaPlayerYoutube.js.map +1 -1
  74. package/dist/MessageStrip.d.ts +2 -1
  75. package/dist/MessageStrip.js +1 -1
  76. package/dist/MessageStrip.js.map +1 -1
  77. package/dist/Modal.d.ts +2 -0
  78. package/dist/Modal.js +10 -3
  79. package/dist/Modal.js.map +1 -1
  80. package/dist/PromoTile.d.ts +2 -2
  81. package/dist/PromoTile.js +1 -1
  82. package/dist/PromoTile.js.map +1 -1
  83. package/dist/Quote.d.ts +4 -4
  84. package/dist/Quote.js +1 -1
  85. package/dist/Quote.js.map +1 -1
  86. package/dist/Review.d.ts +3 -3
  87. package/dist/Review.js +1 -1
  88. package/dist/Review.js.map +1 -1
  89. package/dist/ReviewItem.d.ts +4 -3
  90. package/dist/ReviewItem.js +1 -1
  91. package/dist/ReviewItem.js.map +1 -1
  92. package/dist/Search.js +1 -1
  93. package/dist/Search.js.map +1 -1
  94. package/dist/SearchableListBase.js +5 -1
  95. package/dist/SearchableListBase.js.map +1 -1
  96. package/dist/SecondaryNavigation.d.ts +3 -3
  97. package/dist/SecondaryNavigation.js +1 -1
  98. package/dist/SecondaryNavigation.js.map +1 -1
  99. package/dist/SecondaryNavigationItem.d.ts +2 -1
  100. package/dist/SecondaryNavigationItem.js +1 -1
  101. package/dist/SecondaryNavigationItem.js.map +1 -1
  102. package/dist/SelectBase.js +1 -1
  103. package/dist/SelectBase.js.map +1 -1
  104. package/dist/SelectBox.d.ts +5 -0
  105. package/dist/SelectBox.js +9 -0
  106. package/dist/SelectBox.js.map +1 -1
  107. package/dist/SelectBoxGroupHeader.js +1 -1
  108. package/dist/SelectBoxGroupHeader.js.map +1 -1
  109. package/dist/SelectBoxItem.d.ts +3 -3
  110. package/dist/SelectBoxItem.js +1 -1
  111. package/dist/SelectBoxItem.js.map +1 -1
  112. package/dist/SideNavigationMobile.d.ts +2 -2
  113. package/dist/SideNavigationMobile.js +1 -1
  114. package/dist/SideNavigationMobile.js.map +1 -1
  115. package/dist/SocialMediaButton.js +1 -1
  116. package/dist/SocialMediaButton.js.map +1 -1
  117. package/dist/Tab.d.ts +2 -2
  118. package/dist/Tab.js +1 -1
  119. package/dist/Tab.js.map +1 -1
  120. package/dist/TabNavigation.d.ts +2 -2
  121. package/dist/TabNavigation.js +1 -1
  122. package/dist/TabNavigation.js.map +1 -1
  123. package/dist/Table.d.ts +5 -5
  124. package/dist/Table.js +1 -1
  125. package/dist/Table.js.map +1 -1
  126. package/dist/TableCellBase.js +1 -1
  127. package/dist/TableCellBase.js.map +1 -1
  128. package/dist/TableGroupRow.js +1 -1
  129. package/dist/TableGroupRow.js.map +1 -1
  130. package/dist/TableRowBase.js +1 -1
  131. package/dist/TableRowBase.js.map +1 -1
  132. package/dist/TagGroup.js +1 -1
  133. package/dist/TagGroup.js.map +1 -1
  134. package/dist/Tile.d.ts +2 -1
  135. package/dist/Tile.js +1 -1
  136. package/dist/Tile.js.map +1 -1
  137. package/dist/Tooltip.d.ts +2 -1
  138. package/dist/Tooltip.js +1 -1
  139. package/dist/Tooltip.js.map +1 -1
  140. package/dist/Wizard.js +1 -1
  141. package/dist/Wizard.js.map +1 -1
  142. package/dist/assets/{InputSuggestions-0wafO-g3.js → InputSuggestions-CqOrRXxa.js} +1 -1
  143. package/dist/assets/{ListItemStandardExpandableTextTemplate-DoOYtqI8.js → ListItemStandardExpandableTextTemplate-DKUm4L2B.js} +1 -1
  144. package/dist/assets/{bundle-CkxyEA8c.css → bundle-C7Yft7IG.css} +1 -1
  145. package/dist/assets/{bundle.esm-DwHZ3nCW.js → bundle.esm-CI60uvdr.js} +227 -227
  146. package/dist/assets/messagebundle_lv-D06tlATH.js +1 -0
  147. package/dist/css/themes/AccordionItem.css +1 -1
  148. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  149. package/dist/css/themes/Contact.css +1 -1
  150. package/dist/css/themes/FilterMenu.css +1 -1
  151. package/dist/css/themes/Footer.css +1 -1
  152. package/dist/css/themes/MessageStrip.css +1 -1
  153. package/dist/css/themes/Search.css +1 -1
  154. package/dist/css/themes/Slider.css +1 -1
  155. package/dist/css/themes/Tile.css +1 -1
  156. package/dist/css/themes/Toast.css +1 -1
  157. package/dist/css/themes/Tooltip.css +1 -1
  158. package/dist/custom-elements-internal.json +44 -11
  159. package/dist/custom-elements.json +27 -2
  160. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  161. package/dist/generated/themes/AccordionItem.css.d.ts +1 -1
  162. package/dist/generated/themes/AccordionItem.css.js +1 -1
  163. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  164. package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
  165. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  166. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  167. package/dist/generated/themes/Contact.css.d.ts +1 -1
  168. package/dist/generated/themes/Contact.css.js +1 -1
  169. package/dist/generated/themes/Contact.css.js.map +1 -1
  170. package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
  171. package/dist/generated/themes/FilterMenu.css.js +1 -1
  172. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  173. package/dist/generated/themes/Footer.css.d.ts +1 -1
  174. package/dist/generated/themes/Footer.css.js +1 -1
  175. package/dist/generated/themes/Footer.css.js.map +1 -1
  176. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  177. package/dist/generated/themes/MessageStrip.css.js +1 -1
  178. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  179. package/dist/generated/themes/Search.css.d.ts +1 -1
  180. package/dist/generated/themes/Search.css.js +1 -1
  181. package/dist/generated/themes/Search.css.js.map +1 -1
  182. package/dist/generated/themes/Slider.css.d.ts +1 -1
  183. package/dist/generated/themes/Slider.css.js +1 -1
  184. package/dist/generated/themes/Slider.css.js.map +1 -1
  185. package/dist/generated/themes/Tile.css.d.ts +1 -1
  186. package/dist/generated/themes/Tile.css.js +1 -1
  187. package/dist/generated/themes/Tile.css.js.map +1 -1
  188. package/dist/generated/themes/Toast.css.d.ts +1 -1
  189. package/dist/generated/themes/Toast.css.js +1 -1
  190. package/dist/generated/themes/Toast.css.js.map +1 -1
  191. package/dist/generated/themes/Tooltip.css.d.ts +1 -1
  192. package/dist/generated/themes/Tooltip.css.js +1 -1
  193. package/dist/generated/themes/Tooltip.css.js.map +1 -1
  194. package/dist/messagebundle_lv.properties +126 -0
  195. package/dist/vscode.html-custom-data.json +3 -3
  196. package/dist/web-types.json +25 -9
  197. package/package.json +1 -1
  198. package/src/Accordion.ts +1 -1
  199. package/src/AccordionItem.ts +1 -1
  200. package/src/Avatar.ts +55 -6
  201. package/src/AvatarTemplate.tsx +2 -2
  202. package/src/Badge.ts +1 -1
  203. package/src/Breadcrumbs.ts +1 -1
  204. package/src/Carousel.ts +1 -1
  205. package/src/Contact.ts +1 -1
  206. package/src/ContactItem.ts +1 -1
  207. package/src/Feed.ts +3 -2
  208. package/src/FeedItem.ts +3 -2
  209. package/src/FilterMenuGroupHeader.ts +1 -1
  210. package/src/Footer.ts +3 -2
  211. package/src/ImageGridCloud.ts +1 -1
  212. package/src/ImageGridTable.ts +1 -1
  213. package/src/ImageGridTableItem.ts +1 -1
  214. package/src/ImageGridTicker.ts +1 -1
  215. package/src/InputGroup.ts +1 -1
  216. package/src/LinkList.ts +1 -1
  217. package/src/List.ts +1 -1
  218. package/src/ListGroupHeaderBase.ts +1 -1
  219. package/src/ListItem.ts +4 -4
  220. package/src/MastheadItem.ts +4 -4
  221. package/src/MastheadMobileMenu.ts +4 -4
  222. package/src/MastheadProfileMenu.ts +4 -3
  223. package/src/MastheadShell.ts +10 -10
  224. package/src/MediaPlayer.ts +13 -4
  225. package/src/MediaPlayerVimeo.ts +31 -6
  226. package/src/MediaPlayerYoutube.ts +24 -5
  227. package/src/MessageStrip.ts +3 -2
  228. package/src/Modal.ts +18 -3
  229. package/src/PromoTile.ts +3 -3
  230. package/src/Quote.ts +5 -5
  231. package/src/Review.ts +4 -4
  232. package/src/ReviewItem.ts +5 -4
  233. package/src/Search.ts +1 -1
  234. package/src/SearchableListBase.ts +6 -1
  235. package/src/SecondaryNavigation.ts +4 -4
  236. package/src/SecondaryNavigationItem.ts +3 -2
  237. package/src/SelectBase.ts +1 -1
  238. package/src/SelectBox.ts +10 -0
  239. package/src/SelectBoxGroupHeader.ts +1 -1
  240. package/src/SelectBoxItem.ts +4 -4
  241. package/src/SideNavigationMobile.ts +3 -3
  242. package/src/SocialMediaButton.ts +1 -1
  243. package/src/Tab.ts +3 -3
  244. package/src/TabNavigation.ts +3 -3
  245. package/src/Table.ts +6 -6
  246. package/src/TableCellBase.ts +1 -1
  247. package/src/TableGroupRow.ts +1 -1
  248. package/src/TableRowBase.ts +1 -1
  249. package/src/TagGroup.ts +1 -1
  250. package/src/Tile.ts +3 -2
  251. package/src/Tooltip.ts +3 -2
  252. package/src/Wizard.ts +1 -1
  253. package/src/generated/themes/AccordionItem.css.ts +1 -1
  254. package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
  255. package/src/generated/themes/Contact.css.ts +1 -1
  256. package/src/generated/themes/FilterMenu.css.ts +1 -1
  257. package/src/generated/themes/Footer.css.ts +1 -1
  258. package/src/generated/themes/MessageStrip.css.ts +1 -1
  259. package/src/generated/themes/Search.css.ts +1 -1
  260. package/src/generated/themes/Slider.css.ts +1 -1
  261. package/src/generated/themes/Tile.css.ts +1 -1
  262. package/src/generated/themes/Toast.css.ts +1 -1
  263. package/src/generated/themes/Tooltip.css.ts +1 -1
  264. package/src/i18n/messagebundle_lv.properties +126 -0
  265. package/src/themes/AccordionItem.css +2 -2
  266. package/src/themes/BreadcrumbsPopover.css +1 -1
  267. package/src/themes/Contact.css +3 -3
  268. package/src/themes/FilterMenu.css +1 -1
  269. package/src/themes/Footer.css +1 -1
  270. package/src/themes/MessageStrip.css +8 -5
  271. package/src/themes/Search.css +3 -3
  272. package/src/themes/Slider.css +1 -1
  273. package/src/themes/Tile.css +2 -2
  274. package/src/themes/Toast.css +1 -1
  275. package/src/themes/Tooltip.css +1 -1
  276. package/dist/assets/messagebundle_lv-BHId5zho.js +0 -1
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
8
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
9
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
9
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
10
10
  import UDExListItemBase from "./ListItemBase.js";
11
11
  import property from "@ui5/webcomponents-base/decorators/property.js";
12
12
  import { UDExAdditionalTextState } from "./types/List.js";
@@ -1 +1 @@
1
- {"version":3,"file":"SelectBoxItem.js","sourceRoot":"","sources":["../src/SelectBoxItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AACjD,OAAO,QAAQ,MAAM,gDAAgD,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,UAAU,MAAM,aAAa,CAAC;AAGrC,OAAO,UAAU,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1E;;;;;;;;;;;;;;;;;;GAkBG;AAOH,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,gBAAgB;IAAhD;;QAiBE;;;;;WAKG;QAED,wBAAmB,GAAiC,uBAAuB,CAAC,IAAI,CAAC;QA2CnF;;;;;WAKG;QAED,eAAU,GAAyB,eAAe,CAAC,MAAM,CAAC;QAE5D;;;;;WAKG;QAED,cAAS,GAAwB,cAAc,CAAC,CAAC,CAAC;IA4BtD,CAAC;CAAA,CAAA;AAxGG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDACP;AAQlB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACD;AASxB;IADD,QAAQ,EAAE;8DACwE;AAQjF;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACX;AAQf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACH;AAQtB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACV;AAQf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDACP;AASlB;IADD,QAAQ,EAAE;0DACwC;AASjD;IADD,QAAQ,EAAE;qDACiD;AAS1D;IADD,QAAQ,EAAE;oDACyC;AASlD;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;oDACK;AAS9B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;qDACM;AAS/B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;kDACR;AA9G1B,iBAAiB;IANtB,aAAa,CAAC;QACb,GAAG,EAAE,sBAAsB;QAC3B,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;KACvC,CAAC;GAEI,iBAAiB,CA+GtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\nimport property from \"@ui5/webcomponents-base/decorators/property.js\";\nimport { UDExAdditionalTextState } from \"./types/List.js\";\nimport UDExButton from \"./Button.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type UDExStatusBadgeValueState from \"./types/StatusBadgeValueState.js\";\nimport UDExAvatar, { UDExAvatarShape, UDExAvatarSize } from \"./Avatar.js\";\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-select-box-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SelectBoxItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListItemBase\n * @tagname udex-select-box-item\n * @public\n */\n@customElement({\n tag: \"udex-select-box-item\",\n renderer: litRender,\n dependencies: [UDExButton, UDExAvatar],\n})\n\nclass UDExSelectBoxItem extends UDExListItemBase {\n /**\n * Defines the name of the UI5 Icon displayed for each item when type is Icon.\n *\n * @public\n */\n @property({ type: String })\n itemIcon?: string;\n\n /**\n * Defines the additionalText, displayed at the end of the list item.\n *\n * @public\n */\n @property({ type: String })\n additionalText?: string;\n\n /**\n * Defines the state of the additionalText.\n *\n * @default \"None\"\n * @public\n */\n @property()\n additionalTextState: `${UDExAdditionalTextState}` = UDExAdditionalTextState.None;\n\n /**\n * Defines the image, displayed at the start of the item.\n *\n * @public\n */\n @property({ type: Boolean })\n flag?: boolean;\n\n /**\n * Defines the position for flag image.\n *\n * @public\n */\n @property({ type: String })\n flagPosition?: string;\n\n /**\n * Allows control over the image source.\n *\n * @public\n */\n @property({ type: String })\n image?: string;\n\n /**\n * Allows control over the alternative text of the image.\n *\n * @public\n */\n @property({ type: String })\n imageAlt?: string;\n\n /**\n * Defines the image badge state of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n imageBadgeState?: `${UDExStatusBadgeValueState}`;\n\n /**\n * Defines the shape of the image.\n *\n * @default \"Circle\"\n * @public\n */\n @property()\n imageShape: `${UDExAvatarShape}` = UDExAvatarShape.Circle;\n\n /**\n * Allows control over the size of the image.\n *\n * @default \"S\"\n * @public\n */\n @property()\n imageSize: `${UDExAvatarSize}` = UDExAvatarSize.S;\n\n /**\n * Slot for first icon.\n *\n * @slot\n * @public\n */\n @slot({ type: UDExButton })\n firstIcon!: Array<UDExButton>;\n\n /**\n * Slot for second icon.\n *\n * @slot\n * @public\n */\n @slot({ type: UDExButton })\n secondIcon!: Array<UDExButton>;\n\n /**\n * Slot for item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: DefaultSlot<Node>;\n}\n\nUDExSelectBoxItem.define();\n\nexport default UDExSelectBoxItem;\n"]}
1
+ {"version":3,"file":"SelectBoxItem.js","sourceRoot":"","sources":["../src/SelectBoxItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AACjD,OAAO,QAAQ,MAAM,gDAAgD,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,UAAU,MAAM,aAAa,CAAC;AAGrC,OAAO,UAAU,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1E;;;;;;;;;;;;;;;;;;GAkBG;AAOH,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,gBAAgB;IAAhD;;QAiBE;;;;;WAKG;QAED,wBAAmB,GAAiC,uBAAuB,CAAC,IAAI,CAAC;QA2CnF;;;;;WAKG;QAED,eAAU,GAAyB,eAAe,CAAC,MAAM,CAAC;QAE5D;;;;;WAKG;QAED,cAAS,GAAwB,cAAc,CAAC,CAAC,CAAC;IA4BtD,CAAC;CAAA,CAAA;AAxGG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDACP;AAQlB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACD;AASxB;IADD,QAAQ,EAAE;8DACwE;AAQjF;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACX;AAQf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACH;AAQtB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACV;AAQf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDACP;AASlB;IADD,QAAQ,EAAE;0DACwC;AASjD;IADD,QAAQ,EAAE;qDACiD;AAS1D;IADD,QAAQ,EAAE;oDACyC;AASlD;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;oDACI;AAS7B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;qDACK;AAS9B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;kDACR;AA9G1B,iBAAiB;IANtB,aAAa,CAAC;QACb,GAAG,EAAE,sBAAsB;QAC3B,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;KACvC,CAAC;GAEI,iBAAiB,CA+GtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\nimport property from \"@ui5/webcomponents-base/decorators/property.js\";\nimport { UDExAdditionalTextState } from \"./types/List.js\";\nimport UDExButton from \"./Button.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type UDExStatusBadgeValueState from \"./types/StatusBadgeValueState.js\";\nimport UDExAvatar, { UDExAvatarShape, UDExAvatarSize } from \"./Avatar.js\";\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-select-box-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SelectBoxItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListItemBase\n * @tagname udex-select-box-item\n * @public\n */\n@customElement({\n tag: \"udex-select-box-item\",\n renderer: litRender,\n dependencies: [UDExButton, UDExAvatar],\n})\n\nclass UDExSelectBoxItem extends UDExListItemBase {\n /**\n * Defines the name of the UI5 Icon displayed for each item when type is Icon.\n *\n * @public\n */\n @property({ type: String })\n itemIcon?: string;\n\n /**\n * Defines the additionalText, displayed at the end of the list item.\n *\n * @public\n */\n @property({ type: String })\n additionalText?: string;\n\n /**\n * Defines the state of the additionalText.\n *\n * @default \"None\"\n * @public\n */\n @property()\n additionalTextState: `${UDExAdditionalTextState}` = UDExAdditionalTextState.None;\n\n /**\n * Defines the image, displayed at the start of the item.\n *\n * @public\n */\n @property({ type: Boolean })\n flag?: boolean;\n\n /**\n * Defines the position for flag image.\n *\n * @public\n */\n @property({ type: String })\n flagPosition?: string;\n\n /**\n * Allows control over the image source.\n *\n * @public\n */\n @property({ type: String })\n image?: string;\n\n /**\n * Allows control over the alternative text of the image.\n *\n * @public\n */\n @property({ type: String })\n imageAlt?: string;\n\n /**\n * Defines the image badge state of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n imageBadgeState?: `${UDExStatusBadgeValueState}`;\n\n /**\n * Defines the shape of the image.\n *\n * @default \"Circle\"\n * @public\n */\n @property()\n imageShape: `${UDExAvatarShape}` = UDExAvatarShape.Circle;\n\n /**\n * Allows control over the size of the image.\n *\n * @default \"S\"\n * @public\n */\n @property()\n imageSize: `${UDExAvatarSize}` = UDExAvatarSize.S;\n\n /**\n * Slot for first icon.\n *\n * @slot\n * @public\n */\n @slot({ type: UDExButton })\n firstIcon!: Slot<UDExButton>;\n\n /**\n * Slot for second icon.\n *\n * @slot\n * @public\n */\n @slot({ type: UDExButton })\n secondIcon!: Slot<UDExButton>;\n\n /**\n * Slot for item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: DefaultSlot<Node>;\n}\n\nUDExSelectBoxItem.define();\n\nexport default UDExSelectBoxItem;\n"]}
@@ -1,5 +1,5 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import UDExDropdown from "./Dropdown.js";
4
4
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
5
5
  import type UDExSideNavigationItem from "./SideNavigationItem.js";
@@ -47,7 +47,7 @@ declare class UDExSideNavigationMobile extends UI5Element {
47
47
  *
48
48
  * @public
49
49
  */
50
- fixedItems: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;
50
+ fixedItems: Slot<UDExSideNavigationItem | UDExSideNavigationGroup>;
51
51
  /**
52
52
  * Indicates selected item element
53
53
  *
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
8
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
9
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
10
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
11
11
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
12
12
  import Icon from "@ui5/webcomponents/dist/Icon.js";
13
13
  import UDExSideNavigation from "./SideNavigation.js";
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavigationMobile.js","sourceRoot":"","sources":["../src/SideNavigationMobile.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport 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 Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExSideNavigation from \"./SideNavigation.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport SideNavigationMobileTemplate from \"./generated/templates/SideNavigationMobileTemplate.lit.js\";\nimport type UDExSideNavigationItem from \"./SideNavigationItem.js\";\nimport type UDExSideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport type UDExSideNavigationGroup from \"./SideNavigationGroup.js\";\n\n// Styles\nimport SideNavigationMobileCss from \"./generated/themes/SideNavigationMobile.css.js\";\nimport SideNavigationMobileDropdownCss from \"./generated/themes/SideNavigationMobileDropdown.css.js\";\n\nexport type SelectedItem = UDExSideNavigationItem | UDExSideNavigationSubItem | null;\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-side-navigation-mobile</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SideNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation-mobile\",\n renderer: litRender,\n template: SideNavigationMobileTemplate,\n styles: [SideNavigationMobileCss, SideNavigationMobileDropdownCss],\n dependencies: [UDExSideNavigation, UDExDropdown, Icon],\n})\n\nclass UDExSideNavigationMobile extends UI5Element {\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the main items of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the top-level items, and the `ui5-side-navigation-sub-item` component for second-level items, nested\n * inside the items.\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n navItems!: DefaultSlot<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Defines the fixed items at the bottom of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the fixed items, and optionally the `ui5-side-navigation-sub-item` component to provide second-level items inside them.\n *\n * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true })\n fixedItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Indicates selected item element\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Object })\n _selectedItem!: SelectedItem;\n\n _navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n _initialized = false;\n _dropdown!: UDExDropdown;\n\n onBeforeRendering() {\n if (!this._initialized) {\n const items = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"navItems\");\n const fixedItems = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"fixedItems\");\n this._navItems = items.concat(fixedItems);\n this._selectedItem = this.getSelectedItem() || null;\n }\n this._initialized = true;\n }\n\n onAfterRendering() {\n this._dropdown = this._getResponsePopover();\n }\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`[udex-dropdown]`)!;\n }\n\n _afterDropdownOpen() {\n this._dropdownOpened = true;\n }\n\n _afterDropdownClose() {\n this._dropdownOpened = false;\n }\n\n handleTriggerClick() {\n this._dropdown.open = !this._dropdown.open;\n }\n\n handleKeydown(event: KeyboardEvent) {\n if ((event.key === \"Enter\" || event.key === \" \")) {\n this.handleTriggerClick();\n }\n }\n\n _handleSelectionChanged(event: {detail: { item: UDExSideNavigationItem | UDExSideNavigationSubItem }}) {\n this._dropdown = this._getResponsePopover();\n this._dropdown.open = false;\n this._selectedItem = event.detail.item;\n }\n\n getSelectedItem(): UDExSideNavigationItem | UDExSideNavigationSubItem | undefined {\n const items = this._navItems.reduce((result, item) => {\n return (result).concat(item.allItems as UDExSideNavigationSubItem[]);\n }, new Array<UDExSideNavigationItem | UDExSideNavigationSubItem>());\n return items.find(item => item._selected);\n }\n}\n\nUDExSideNavigationMobile.define();\n\nexport default UDExSideNavigationMobile;\n"]}
1
+ {"version":3,"file":"SideNavigationMobile.js","sourceRoot":"","sources":["../src/SideNavigationMobile.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExSideNavigation from \"./SideNavigation.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport SideNavigationMobileTemplate from \"./generated/templates/SideNavigationMobileTemplate.lit.js\";\nimport type UDExSideNavigationItem from \"./SideNavigationItem.js\";\nimport type UDExSideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport type UDExSideNavigationGroup from \"./SideNavigationGroup.js\";\n\n// Styles\nimport SideNavigationMobileCss from \"./generated/themes/SideNavigationMobile.css.js\";\nimport SideNavigationMobileDropdownCss from \"./generated/themes/SideNavigationMobileDropdown.css.js\";\n\nexport type SelectedItem = UDExSideNavigationItem | UDExSideNavigationSubItem | null;\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-side-navigation-mobile</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SideNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation-mobile\",\n renderer: litRender,\n template: SideNavigationMobileTemplate,\n styles: [SideNavigationMobileCss, SideNavigationMobileDropdownCss],\n dependencies: [UDExSideNavigation, UDExDropdown, Icon],\n})\n\nclass UDExSideNavigationMobile extends UI5Element {\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the main items of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the top-level items, and the `ui5-side-navigation-sub-item` component for second-level items, nested\n * inside the items.\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n navItems!: DefaultSlot<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Defines the fixed items at the bottom of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the fixed items, and optionally the `ui5-side-navigation-sub-item` component to provide second-level items inside them.\n *\n * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true })\n fixedItems!: Slot<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Indicates selected item element\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Object })\n _selectedItem!: SelectedItem;\n\n _navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n _initialized = false;\n _dropdown!: UDExDropdown;\n\n onBeforeRendering() {\n if (!this._initialized) {\n const items = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"navItems\");\n const fixedItems = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"fixedItems\");\n this._navItems = items.concat(fixedItems);\n this._selectedItem = this.getSelectedItem() || null;\n }\n this._initialized = true;\n }\n\n onAfterRendering() {\n this._dropdown = this._getResponsePopover();\n }\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`[udex-dropdown]`)!;\n }\n\n _afterDropdownOpen() {\n this._dropdownOpened = true;\n }\n\n _afterDropdownClose() {\n this._dropdownOpened = false;\n }\n\n handleTriggerClick() {\n this._dropdown.open = !this._dropdown.open;\n }\n\n handleKeydown(event: KeyboardEvent) {\n if ((event.key === \"Enter\" || event.key === \" \")) {\n this.handleTriggerClick();\n }\n }\n\n _handleSelectionChanged(event: {detail: { item: UDExSideNavigationItem | UDExSideNavigationSubItem }}) {\n this._dropdown = this._getResponsePopover();\n this._dropdown.open = false;\n this._selectedItem = event.detail.item;\n }\n\n getSelectedItem(): UDExSideNavigationItem | UDExSideNavigationSubItem | undefined {\n const items = this._navItems.reduce((result, item) => {\n return (result).concat(item.allItems as UDExSideNavigationSubItem[]);\n }, new Array<UDExSideNavigationItem | UDExSideNavigationSubItem>());\n return items.find(item => item._selected);\n }\n}\n\nUDExSideNavigationMobile.define();\n\nexport default UDExSideNavigationMobile;\n"]}
@@ -9,7 +9,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
9
9
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
10
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
11
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
12
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
12
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
13
13
  import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
14
14
  import SocialMediaButtonTemplate from "./SocialMediaButtonTemplate.js";
15
15
  import UDExSocialMediaButtonType from "./types/SocialMediaButtonType.js";
@@ -1 +1 @@
1
- {"version":3,"file":"SocialMediaButton.js","sourceRoot":"","sources":["../src/SocialMediaButton.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport SocialMediaButtonTemplate from \"./SocialMediaButtonTemplate.js\";\nimport UDExSocialMediaButtonType from \"./types/SocialMediaButtonType.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { SOCIAL_MEDIA_BUTTON } from \"./generated/i18n/i18n-defaults.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport SocialMediaButtonCss from \"./generated/themes/SocialMediaButton.css.js\";\n\nconst baseIconsURL = \"https://cdn.udex.services.sap.com/dds/design-tokens/assets/icons/\";\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-social-media-button</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SocialMediaButton.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-social-media-button\n * @public\n */\n@customElement({\n tag: \"udex-social-media-button\",\n renderer: jsxRenderer,\n styles: SocialMediaButtonCss,\n template: SocialMediaButtonTemplate,\n})\n\n/**\n * Triggered when the user clicks on an item.\n * @public\n * @param {LinkClickEventDetail} detail - Details of the clicked link.\n *\n */\n@event(\"click\", { cancelable: true, bubbles: true })\n\nclass UDExSocialMediaButton extends UI5Element {\n eventDetails!: {\n \"click\": LinkClickEventDetail,\n };\n\n /**\n * Defines the slot for custom SVG icon.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n image!: DefaultSlot<HTMLElement>;\n\n /**\n * Defines the type of Social Media Button.\n * <br><br>\n * Available options are:\n * <ul>\n * <li><code>facebook</code> - the button with Facebook icon</li>\n * <li><code>instagram</code> - the button with Instagram icon</li>\n * <li><code>linkedin</code> - the button with LinkedIn icon</li>\n * <li><code>youtube</code> - the button with YouTube icon</li>\n * <li><code>x</code> - the button with X icon</li>\n * <li><code>mail</code> - the button with Instagram mail icon (default)</li>\n * </ul>\n *\n * @public\n */\n @property()\n type: `${UDExSocialMediaButtonType}` = UDExSocialMediaButtonType.email;\n\n /**\n * Defines the URL address for Social Media platform profile.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n url?: string;\n\n /**\n * Define the target of the Social Media Button link\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n * @default \"_blank\"\n */\n @property({ type: String })\n target: `${UDExTarget}` = UDExTarget._blank;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"Social Media Button\"\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n private svgLoaded: boolean = false;\n\n fireLinkClickEvent(e: CustomEvent<LinkClickEventDetail>): void {\n const executeEvent = this.fireDecoratorEvent(\"click\", e.detail);\n\n if (!executeEvent) {\n e.preventDefault();\n }\n }\n\n onAfterRendering(): void {\n if (!this.imageSlot) {\n this.fetchIconSvg();\n }\n }\n\n async fetchIconSvg() {\n if (this.svgLoaded) {\n return;\n }\n\n try {\n const response = await fetch(`${baseIconsURL}${this.type}.svg`);\n\n if (!response.ok) {\n console.warn(\"Failed to fetch SVG\", response.statusText);\n return;\n }\n\n const svgContent: string = await response.text();\n this.updateSvgContent(svgContent);\n } catch (error) {\n console.warn(\"Failed to fetch SVG\", error);\n }\n }\n\n private updateSvgContent(svgContent: string): void {\n const socialBtnEl = this.shadowRoot?.querySelector(\".udex-social-media-button\");\n if (socialBtnEl) {\n socialBtnEl.innerHTML = svgContent;\n this.svgLoaded = true;\n }\n }\n\n get buttonAccessibleName(): string {\n return this.accessibleName || translate(UDExSocialMediaButton, SOCIAL_MEDIA_BUTTON);\n }\n\n get imageSlot(): boolean {\n return !!this.image.length;\n }\n}\n\nUDExSocialMediaButton.define();\n\nexport default UDExSocialMediaButton;\n"]}
1
+ {"version":3,"file":"SocialMediaButton.js","sourceRoot":"","sources":["../src/SocialMediaButton.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport SocialMediaButtonTemplate from \"./SocialMediaButtonTemplate.js\";\nimport UDExSocialMediaButtonType from \"./types/SocialMediaButtonType.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { SOCIAL_MEDIA_BUTTON } from \"./generated/i18n/i18n-defaults.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport SocialMediaButtonCss from \"./generated/themes/SocialMediaButton.css.js\";\n\nconst baseIconsURL = \"https://cdn.udex.services.sap.com/dds/design-tokens/assets/icons/\";\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-social-media-button</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SocialMediaButton.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-social-media-button\n * @public\n */\n@customElement({\n tag: \"udex-social-media-button\",\n renderer: jsxRenderer,\n styles: SocialMediaButtonCss,\n template: SocialMediaButtonTemplate,\n})\n\n/**\n * Triggered when the user clicks on an item.\n * @public\n * @param {LinkClickEventDetail} detail - Details of the clicked link.\n *\n */\n@event(\"click\", { cancelable: true, bubbles: true })\n\nclass UDExSocialMediaButton extends UI5Element {\n eventDetails!: {\n \"click\": LinkClickEventDetail,\n };\n\n /**\n * Defines the slot for custom SVG icon.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n image!: DefaultSlot<HTMLElement>;\n\n /**\n * Defines the type of Social Media Button.\n * <br><br>\n * Available options are:\n * <ul>\n * <li><code>facebook</code> - the button with Facebook icon</li>\n * <li><code>instagram</code> - the button with Instagram icon</li>\n * <li><code>linkedin</code> - the button with LinkedIn icon</li>\n * <li><code>youtube</code> - the button with YouTube icon</li>\n * <li><code>x</code> - the button with X icon</li>\n * <li><code>mail</code> - the button with Instagram mail icon (default)</li>\n * </ul>\n *\n * @public\n */\n @property()\n type: `${UDExSocialMediaButtonType}` = UDExSocialMediaButtonType.email;\n\n /**\n * Defines the URL address for Social Media platform profile.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n url?: string;\n\n /**\n * Define the target of the Social Media Button link\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n * @default \"_blank\"\n */\n @property({ type: String })\n target: `${UDExTarget}` = UDExTarget._blank;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"Social Media Button\"\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n private svgLoaded: boolean = false;\n\n fireLinkClickEvent(e: CustomEvent<LinkClickEventDetail>): void {\n const executeEvent = this.fireDecoratorEvent(\"click\", e.detail);\n\n if (!executeEvent) {\n e.preventDefault();\n }\n }\n\n onAfterRendering(): void {\n if (!this.imageSlot) {\n this.fetchIconSvg();\n }\n }\n\n async fetchIconSvg() {\n if (this.svgLoaded) {\n return;\n }\n\n try {\n const response = await fetch(`${baseIconsURL}${this.type}.svg`);\n\n if (!response.ok) {\n console.warn(\"Failed to fetch SVG\", response.statusText);\n return;\n }\n\n const svgContent: string = await response.text();\n this.updateSvgContent(svgContent);\n } catch (error) {\n console.warn(\"Failed to fetch SVG\", error);\n }\n }\n\n private updateSvgContent(svgContent: string): void {\n const socialBtnEl = this.shadowRoot?.querySelector(\".udex-social-media-button\");\n if (socialBtnEl) {\n socialBtnEl.innerHTML = svgContent;\n this.svgLoaded = true;\n }\n }\n\n get buttonAccessibleName(): string {\n return this.accessibleName || translate(UDExSocialMediaButton, SOCIAL_MEDIA_BUTTON);\n }\n\n get imageSlot(): boolean {\n return !!this.image.length;\n }\n}\n\nUDExSocialMediaButton.define();\n\nexport default UDExSocialMediaButton;\n"]}
package/dist/Tab.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import { UDExTarget } from "./types/common.js";
4
4
  import TabHeaderTemplate from "./generated/templates/TabHeaderTemplate.lit.js";
5
5
  import TabInOverflowTemplate from "./generated/templates/TabInOverflowTemplate.lit.js";
@@ -202,7 +202,7 @@ declare class UDExTab extends UI5Element implements ITab {
202
202
  * @slot link
203
203
  * @public
204
204
  */
205
- link: Array<HTMLElement>;
205
+ link: Slot<HTMLElement>;
206
206
  static i18nBundle: I18nBundle;
207
207
  getElementInHeader?: () => ITab | null;
208
208
  _individualSlot: string;
package/dist/Tab.js CHANGED
@@ -8,7 +8,7 @@ var UDExTab_1;
8
8
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
9
9
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
10
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
11
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
12
12
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
13
13
  import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
14
14
  import TabNavigation from "./TabNavigation.js";
package/dist/Tab.js.map CHANGED
@@ -1 +1 @@
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 type { DefaultSlot } 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 TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\nimport { UDExTarget } from \"./types/common.js\";\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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\nimport translate from \"./utils/translate.js\";\n\nexport interface ITab extends UI5Element {\n getTabInHeaderDomRef: () => ITab | null;\n disabled?: boolean;\n icon?: string;\n selected?: boolean;\n numberBadge?: string;\n text?: string;\n bodyText?: string;\n itemCountText?: string;\n showAttentionBadge?: boolean;\n accessibleName?: string;\n href?: string;\n content?: Array<Node>;\n link?: Array<HTMLElement>;\n hasIcon: boolean;\n isMobile: boolean;\n isOnSelectedTab: boolean;\n hasNotIcon: boolean;\n hasNotHref: boolean;\n hasLinkSlot: boolean;\n selectedClass: string;\n tabNavigation: any;\n _individualSlot: string;\n _effectiveSlotName: string;\n _slotName: string;\n _selected?: boolean;\n _tabIndex: string;\n _isMobile: boolean;\n _isVertical: boolean;\n _isProcessTab: boolean;\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 \"@sapudex/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 /**\n * Defines the body text (supplementary description) of the tab.\n * Optional text to provide additional context or explanation.\n *\n * @public\n */\n @property({ type: String })\n bodyText?: string;\n\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 if the tab is disabled. A disabled tab is not clickable or focusable,\n * but remains reachable by screen readers via aria-disabled.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n disabled!: boolean;\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()\n target: `${UDExTarget}` = UDExTarget._self;\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 if the viewport is mobile size.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isMobile: boolean = false;\n\n /**\n * Defines if the tab navigation is in vertical orientation.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isVertical: boolean = false;\n\n /**\n * Defines the width of the tab.\n *\n * @private\n */\n @property({ type: String, noAttribute: true })\n _width?: string;\n\n /**\n * Defines the item count text displayed above the tab label in Process Tab variant.\n * Only rendered when the tab navigation uses the Process Tab variant.\n *\n * @public\n */\n @property({ type: String })\n itemCountText?: 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 if the tab navigation is in process-tab variant.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isProcessTab: boolean = false;\n\n /**\n * Defines the content of the tab.\n *\n * @slot content\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: DefaultSlot<Node>;\n\n /**\n * Defines the link(s) to be displayed in the tab header (vertical orientation only).\n * Use this slot to add one or more udex-link elements to the tab button.\n *\n * @slot link\n * @public\n */\n @slot({ type: HTMLElement })\n link!: Array<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\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 get ariaDisabled(): string | null {\n return this.disabled ? \"true\" : null;\n }\n\n get hasItemCountText(): boolean {\n return this._isProcessTab && !!this.itemCountText;\n }\n\n get effectiveItemCountText(): string {\n return this.itemCountText || \"0\";\n }\n\n get processTabClass(): string {\n return this._isProcessTab ? \" udex-tab-navigation__button-tab--process\" : \"\";\n }\n\n get isOnSelectedTab(): boolean {\n return this._realTab === this;\n }\n\n get _effectiveSlotName(): string {\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 isMobile(): boolean {\n return this._isMobile;\n }\n\n get isMobileVertical(): boolean {\n return this._isMobile && this._isVertical;\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 hasBodyText(): boolean {\n return !!this.bodyText;\n }\n\n /**\n * Returns true if aria-describedby should point to bodyText.\n * Only applies to selected tabs with bodyText in vertical orientation.\n */\n get ariaDescribedByBodyText(): boolean {\n return this.effectiveSelected && this.hasBodyText && this._isVertical;\n }\n\n get hasBodyTextOrLink(): boolean {\n return this._isVertical && (this.hasBodyText || this.hasLinkSlot);\n }\n\n get hasLinkSlot(): boolean {\n return this.link && this.link.length > 0;\n }\n\n /**\n * Returns the HTML content of the link slot elements.\n * This is used to render the links in the TabHeader template.\n */\n get linkSlotHtml(): string {\n if (!this.link || this.link.length === 0) {\n return \"\";\n }\n return this.link.map(l => l.outerHTML).join(\"\");\n }\n\n get effectiveSelected(): boolean {\n return this.selected || this._selected;\n }\n\n get selectedClass(): string {\n return this.effectiveSelected ? \"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 _slotName(): string {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get ariaLabelledBy(): string {\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(): string {\n return this.accessibleName || (this.showAttentionBadge ? `, ${translate(UDExTab, ATTENTION_BADGE)}` : \"\");\n }\n\n get linkTabIndex(): string {\n return this.href && this.effectiveSelected ? \"1\" : \"-1\";\n }\n\n get widthStyle(): string {\n if (this._width && this._width !== \"auto\") {\n return `width: ${this._width};`;\n }\n return \"\";\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 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;\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 type { DefaultSlot, Slot } 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-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\nimport { UDExTarget } from \"./types/common.js\";\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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\nimport translate from \"./utils/translate.js\";\n\nexport interface ITab extends UI5Element {\n getTabInHeaderDomRef: () => ITab | null;\n disabled?: boolean;\n icon?: string;\n selected?: boolean;\n numberBadge?: string;\n text?: string;\n bodyText?: string;\n itemCountText?: string;\n showAttentionBadge?: boolean;\n accessibleName?: string;\n href?: string;\n content?: Array<Node>;\n link?: Array<HTMLElement>;\n hasIcon: boolean;\n isMobile: boolean;\n isOnSelectedTab: boolean;\n hasNotIcon: boolean;\n hasNotHref: boolean;\n hasLinkSlot: boolean;\n selectedClass: string;\n tabNavigation: any;\n _individualSlot: string;\n _effectiveSlotName: string;\n _slotName: string;\n _selected?: boolean;\n _tabIndex: string;\n _isMobile: boolean;\n _isVertical: boolean;\n _isProcessTab: boolean;\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 \"@sapudex/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 /**\n * Defines the body text (supplementary description) of the tab.\n * Optional text to provide additional context or explanation.\n *\n * @public\n */\n @property({ type: String })\n bodyText?: string;\n\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 if the tab is disabled. A disabled tab is not clickable or focusable,\n * but remains reachable by screen readers via aria-disabled.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n disabled!: boolean;\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()\n target: `${UDExTarget}` = UDExTarget._self;\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 if the viewport is mobile size.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isMobile: boolean = false;\n\n /**\n * Defines if the tab navigation is in vertical orientation.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isVertical: boolean = false;\n\n /**\n * Defines the width of the tab.\n *\n * @private\n */\n @property({ type: String, noAttribute: true })\n _width?: string;\n\n /**\n * Defines the item count text displayed above the tab label in Process Tab variant.\n * Only rendered when the tab navigation uses the Process Tab variant.\n *\n * @public\n */\n @property({ type: String })\n itemCountText?: 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 if the tab navigation is in process-tab variant.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isProcessTab: boolean = false;\n\n /**\n * Defines the content of the tab.\n *\n * @slot content\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: DefaultSlot<Node>;\n\n /**\n * Defines the link(s) to be displayed in the tab header (vertical orientation only).\n * Use this slot to add one or more udex-link elements to the tab button.\n *\n * @slot link\n * @public\n */\n @slot({ type: HTMLElement })\n link!: Slot<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\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 get ariaDisabled(): string | null {\n return this.disabled ? \"true\" : null;\n }\n\n get hasItemCountText(): boolean {\n return this._isProcessTab && !!this.itemCountText;\n }\n\n get effectiveItemCountText(): string {\n return this.itemCountText || \"0\";\n }\n\n get processTabClass(): string {\n return this._isProcessTab ? \" udex-tab-navigation__button-tab--process\" : \"\";\n }\n\n get isOnSelectedTab(): boolean {\n return this._realTab === this;\n }\n\n get _effectiveSlotName(): string {\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 isMobile(): boolean {\n return this._isMobile;\n }\n\n get isMobileVertical(): boolean {\n return this._isMobile && this._isVertical;\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 hasBodyText(): boolean {\n return !!this.bodyText;\n }\n\n /**\n * Returns true if aria-describedby should point to bodyText.\n * Only applies to selected tabs with bodyText in vertical orientation.\n */\n get ariaDescribedByBodyText(): boolean {\n return this.effectiveSelected && this.hasBodyText && this._isVertical;\n }\n\n get hasBodyTextOrLink(): boolean {\n return this._isVertical && (this.hasBodyText || this.hasLinkSlot);\n }\n\n get hasLinkSlot(): boolean {\n return this.link && this.link.length > 0;\n }\n\n /**\n * Returns the HTML content of the link slot elements.\n * This is used to render the links in the TabHeader template.\n */\n get linkSlotHtml(): string {\n if (!this.link || this.link.length === 0) {\n return \"\";\n }\n return this.link.map(l => l.outerHTML).join(\"\");\n }\n\n get effectiveSelected(): boolean {\n return this.selected || this._selected;\n }\n\n get selectedClass(): string {\n return this.effectiveSelected ? \"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 _slotName(): string {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get ariaLabelledBy(): string {\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(): string {\n return this.accessibleName || (this.showAttentionBadge ? `, ${translate(UDExTab, ATTENTION_BADGE)}` : \"\");\n }\n\n get linkTabIndex(): string {\n return this.href && this.effectiveSelected ? \"1\" : \"-1\";\n }\n\n get widthStyle(): string {\n if (this._width && this._width !== \"auto\") {\n return `width: ${this._width};`;\n }\n return \"\";\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 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;\n"]}
@@ -1,5 +1,5 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
3
  import type { StyleData } from "@ui5/webcomponents-base/dist/types.js";
4
4
  import Popover from "@ui5/webcomponents/dist/Popover.js";
5
5
  import type { ITab } from "./Tab.js";
@@ -172,7 +172,7 @@ declare class UDExTabNavigation extends UI5Element {
172
172
  * @slot footer
173
173
  * @public
174
174
  */
175
- footer: Array<HTMLElement>;
175
+ footer: Slot<HTMLElement>;
176
176
  static i18nBundle: I18nBundle;
177
177
  _handleResizeBound: () => void;
178
178
  _handleWindowResizeBound: () => void;
@@ -8,7 +8,7 @@ var UDExTabNavigation_1;
8
8
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
9
9
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
10
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
11
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
12
12
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
13
13
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
14
14
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";