@sapudex/web-components 2.28.0 → 2.30.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 (230) hide show
  1. package/cypress/specs/FilterMenu.cy.tsx +39 -1
  2. package/cypress/specs/List.cy.tsx +171 -0
  3. package/cypress/specs/PromoTile.cy.tsx +16 -2
  4. package/cypress/specs/ReviewItem.cy.tsx +48 -14
  5. package/cypress/specs/Tag.cy.tsx +6 -0
  6. package/cypress/support/component-imports.instrumented.ts +4 -0
  7. package/cypress/support/component-imports.src.ts +5 -1
  8. package/dist/Avatar.d.ts +1 -0
  9. package/dist/Avatar.js +9 -0
  10. package/dist/Avatar.js.map +1 -1
  11. package/dist/FilterMenu.d.ts +2 -0
  12. package/dist/FilterMenu.js +2 -0
  13. package/dist/FilterMenu.js.map +1 -1
  14. package/dist/ImageGridTickerTemplate.js +2 -1
  15. package/dist/ImageGridTickerTemplate.js.map +1 -1
  16. package/dist/List.d.ts +4 -2
  17. package/dist/List.js +42 -9
  18. package/dist/List.js.map +1 -1
  19. package/dist/ListGroupHeader.d.ts +4 -0
  20. package/dist/ListGroupHeader.js +26 -1
  21. package/dist/ListGroupHeader.js.map +1 -1
  22. package/dist/ListGroupHeaderBase.js +1 -1
  23. package/dist/ListGroupHeaderBase.js.map +1 -1
  24. package/dist/ListItem.js +1 -1
  25. package/dist/ListItem.js.map +1 -1
  26. package/dist/ListItemBase.d.ts +40 -1
  27. package/dist/ListItemBase.js +70 -3
  28. package/dist/ListItemBase.js.map +1 -1
  29. package/dist/MastheadCountrySelector.d.ts +16 -0
  30. package/dist/MastheadCountrySelector.js +21 -6
  31. package/dist/MastheadCountrySelector.js.map +1 -1
  32. package/dist/MastheadItem.d.ts +9 -2
  33. package/dist/MastheadItem.js +19 -15
  34. package/dist/MastheadItem.js.map +1 -1
  35. package/dist/MastheadMenu.d.ts +2 -2
  36. package/dist/MastheadMenu.js +9 -9
  37. package/dist/MastheadMenu.js.map +1 -1
  38. package/dist/MessageStrip.d.ts +14 -0
  39. package/dist/MessageStrip.js +7 -1
  40. package/dist/MessageStrip.js.map +1 -1
  41. package/dist/MessageStripTemplate.js +1 -1
  42. package/dist/MessageStripTemplate.js.map +1 -1
  43. package/dist/Pagination.js +1 -1
  44. package/dist/Pagination.js.map +1 -1
  45. package/dist/PromoTile.d.ts +8 -1
  46. package/dist/PromoTile.js +9 -6
  47. package/dist/PromoTile.js.map +1 -1
  48. package/dist/PromoTileTemplate.js +5 -5
  49. package/dist/PromoTileTemplate.js.map +1 -1
  50. package/dist/ReviewItem.d.ts +8 -7
  51. package/dist/ReviewItem.js +35 -36
  52. package/dist/ReviewItem.js.map +1 -1
  53. package/dist/ReviewItemTemplate.js +3 -1
  54. package/dist/ReviewItemTemplate.js.map +1 -1
  55. package/dist/SearchableListBase.d.ts +3 -0
  56. package/dist/SearchableListBase.js +38 -2
  57. package/dist/SearchableListBase.js.map +1 -1
  58. package/dist/SelectBase.js +1 -1
  59. package/dist/SelectBase.js.map +1 -1
  60. package/dist/SelectBox.js +0 -1
  61. package/dist/SelectBox.js.map +1 -1
  62. package/dist/TabNavigation.d.ts +1 -1
  63. package/dist/TabNavigation.js +2 -7
  64. package/dist/TabNavigation.js.map +1 -1
  65. package/dist/Tag.d.ts +7 -1
  66. package/dist/Tag.js +4 -1
  67. package/dist/Tag.js.map +1 -1
  68. package/dist/TagTemplate.js +1 -1
  69. package/dist/TagTemplate.js.map +1 -1
  70. package/dist/TextField.d.ts +1 -1
  71. package/dist/TextField.js.map +1 -1
  72. package/dist/assets/{InputSuggestions-DTdaDbps.js → InputSuggestions-CaAXs3ok.js} +1 -1
  73. package/dist/assets/{ListItemStandardExpandableTextTemplate-DoV7tVwi.js → ListItemStandardExpandableTextTemplate-CPqUBd--.js} +1 -1
  74. package/dist/assets/{bundle.esm-BUg2IPOZ.js → bundle.esm-L-7H6J4f.js} +217 -217
  75. package/dist/assets/messagebundle_en-J-MHTtdL.js +1 -0
  76. package/dist/css/themes/Button.css +1 -1
  77. package/dist/css/themes/FilterMenu.css +1 -1
  78. package/dist/css/themes/ImageGridTicker.css +1 -1
  79. package/dist/css/themes/ListGroupHeader.css +1 -1
  80. package/dist/css/themes/ListItem.css +1 -1
  81. package/dist/css/themes/MastheadCountrySelector.css +1 -1
  82. package/dist/css/themes/MastheadItem.css +1 -1
  83. package/dist/css/themes/MastheadMenuItem.css +1 -1
  84. package/dist/css/themes/MastheadProfileMenu.css +1 -1
  85. package/dist/css/themes/Modal.css +1 -1
  86. package/dist/css/themes/PromoTile.css +1 -1
  87. package/dist/css/themes/RatingIndicator.css +1 -1
  88. package/dist/css/themes/ReviewItem.css +1 -1
  89. package/dist/css/themes/SearchableList.css +1 -1
  90. package/dist/css/themes/Slider.css +1 -1
  91. package/dist/custom-elements-internal.json +1087 -17
  92. package/dist/custom-elements.json +820 -0
  93. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  94. package/dist/generated/i18n/i18n-defaults.d.ts +5 -1
  95. package/dist/generated/i18n/i18n-defaults.js +5 -1
  96. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  97. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +21 -10
  98. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
  99. package/dist/generated/templates/ListItemTemplate.lit.js +21 -19
  100. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  101. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +2 -2
  102. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
  103. package/dist/generated/templates/MastheadItemTemplate.lit.js +33 -25
  104. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  105. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +5 -5
  106. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  107. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +1 -1
  108. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  109. package/dist/generated/themes/Button.css.d.ts +1 -1
  110. package/dist/generated/themes/Button.css.js +1 -1
  111. package/dist/generated/themes/Button.css.js.map +1 -1
  112. package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
  113. package/dist/generated/themes/FilterMenu.css.js +1 -1
  114. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  115. package/dist/generated/themes/ImageGridTicker.css.d.ts +1 -1
  116. package/dist/generated/themes/ImageGridTicker.css.js +1 -1
  117. package/dist/generated/themes/ImageGridTicker.css.js.map +1 -1
  118. package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
  119. package/dist/generated/themes/ListGroupHeader.css.js +1 -1
  120. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  121. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  122. package/dist/generated/themes/ListItem.css.js +1 -1
  123. package/dist/generated/themes/ListItem.css.js.map +1 -1
  124. package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
  125. package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
  126. package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
  127. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  128. package/dist/generated/themes/MastheadItem.css.js +1 -1
  129. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  130. package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
  131. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  132. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  133. package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
  134. package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
  135. package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
  136. package/dist/generated/themes/Modal.css.d.ts +1 -1
  137. package/dist/generated/themes/Modal.css.js +1 -1
  138. package/dist/generated/themes/Modal.css.js.map +1 -1
  139. package/dist/generated/themes/PromoTile.css.d.ts +1 -1
  140. package/dist/generated/themes/PromoTile.css.js +1 -1
  141. package/dist/generated/themes/PromoTile.css.js.map +1 -1
  142. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  143. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  144. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  145. package/dist/generated/themes/ReviewItem.css.d.ts +1 -1
  146. package/dist/generated/themes/ReviewItem.css.js +1 -1
  147. package/dist/generated/themes/ReviewItem.css.js.map +1 -1
  148. package/dist/generated/themes/SearchableList.css.d.ts +1 -1
  149. package/dist/generated/themes/SearchableList.css.js +1 -1
  150. package/dist/generated/themes/SearchableList.css.js.map +1 -1
  151. package/dist/generated/themes/Slider.css.d.ts +1 -1
  152. package/dist/generated/themes/Slider.css.js +1 -1
  153. package/dist/generated/themes/Slider.css.js.map +1 -1
  154. package/dist/messagebundle.properties +6 -0
  155. package/dist/messagebundle_en.properties +2 -0
  156. package/dist/types/SearchableListBase.d.ts +1 -0
  157. package/dist/types/SearchableListBase.js.map +1 -1
  158. package/dist/vscode.html-custom-data.json +153 -13
  159. package/dist/web-types.json +336 -12
  160. package/package.json +1 -1
  161. package/src/Avatar.ts +9 -0
  162. package/src/FilterMenu.ts +4 -0
  163. package/src/ImageGridTickerTemplate.tsx +3 -1
  164. package/src/List.ts +48 -11
  165. package/src/ListGroupHeader.hbs +130 -15
  166. package/src/ListGroupHeader.ts +31 -1
  167. package/src/ListGroupHeaderBase.ts +1 -1
  168. package/src/ListItem.hbs +15 -0
  169. package/src/ListItem.ts +1 -1
  170. package/src/ListItemBase.ts +107 -1
  171. package/src/MastheadCountrySelector.hbs +2 -1
  172. package/src/MastheadCountrySelector.ts +36 -6
  173. package/src/MastheadItem.hbs +31 -22
  174. package/src/MastheadItem.ts +20 -18
  175. package/src/MastheadMenu.ts +10 -9
  176. package/src/MastheadMobileMenu.hbs +5 -5
  177. package/src/MessageStrip.ts +19 -1
  178. package/src/MessageStripTemplate.tsx +1 -0
  179. package/src/Pagination.ts +1 -1
  180. package/src/PromoTile.ts +17 -10
  181. package/src/PromoTileTemplate.tsx +18 -14
  182. package/src/ReviewItem.ts +45 -35
  183. package/src/ReviewItemTemplate.tsx +16 -14
  184. package/src/SearchableListBase.hbs +3 -0
  185. package/src/SearchableListBase.ts +53 -2
  186. package/src/SelectBase.ts +1 -1
  187. package/src/SelectBox.ts +0 -1
  188. package/src/TabNavigation.ts +3 -10
  189. package/src/Tag.ts +10 -2
  190. package/src/TagTemplate.tsx +4 -0
  191. package/src/TextField.ts +1 -1
  192. package/src/generated/i18n/i18n-defaults.ts +2 -2
  193. package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +21 -10
  194. package/src/generated/templates/ListItemTemplate.lit.ts +21 -19
  195. package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +2 -2
  196. package/src/generated/templates/MastheadItemTemplate.lit.ts +33 -25
  197. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +5 -5
  198. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +1 -1
  199. package/src/generated/themes/Button.css.ts +1 -1
  200. package/src/generated/themes/FilterMenu.css.ts +1 -1
  201. package/src/generated/themes/ImageGridTicker.css.ts +1 -1
  202. package/src/generated/themes/ListGroupHeader.css.ts +1 -1
  203. package/src/generated/themes/ListItem.css.ts +1 -1
  204. package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
  205. package/src/generated/themes/MastheadItem.css.ts +1 -1
  206. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  207. package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
  208. package/src/generated/themes/Modal.css.ts +1 -1
  209. package/src/generated/themes/PromoTile.css.ts +1 -1
  210. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  211. package/src/generated/themes/ReviewItem.css.ts +1 -1
  212. package/src/generated/themes/SearchableList.css.ts +1 -1
  213. package/src/generated/themes/Slider.css.ts +1 -1
  214. package/src/i18n/messagebundle.properties +6 -0
  215. package/src/i18n/messagebundle_en.properties +2 -0
  216. package/src/themes/Button.css +9 -20
  217. package/src/themes/FilterMenu.css +2 -2
  218. package/src/themes/ImageGridTicker.css +2 -26
  219. package/src/themes/ListGroupHeader.css +103 -8
  220. package/src/themes/ListItem.css +68 -15
  221. package/src/themes/MastheadCountrySelector.css +6 -0
  222. package/src/themes/MastheadItem.css +31 -3
  223. package/src/themes/MastheadMenuItem.css +8 -2
  224. package/src/themes/MastheadProfileMenu.css +3 -9
  225. package/src/themes/Modal.css +2 -1
  226. package/src/themes/PromoTile.css +4 -0
  227. package/src/themes/ReviewItem.css +18 -1
  228. package/src/themes/SearchableList.css +1 -1
  229. package/src/types/SearchableListBase.ts +1 -0
  230. package/dist/assets/messagebundle_en-DfoXjU7o.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FilterMenu.js","sourceRoot":"","sources":["../src/FilterMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isTabPrevious, isTabNext, isEscape, isSpace, isEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UDExBusyIndicator from \"./BusyIndicator.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExList from \"./List.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport UDExFilterMenuGroupHeader from \"./FilterMenuGroupHeader.js\";\nimport type { UDExSearchKeydownEventDetail } from \"./Search.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExButton from \"./Button.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport { UDExPopoverPart } from \"./types/SearchableListBase.js\";\nimport { Placement, HorizontalAlign } from \"./types/Dropdown.js\";\nimport { UDExListMode } from \"./types/List.js\";\nimport UDExFilterMenuSelectAll from \"./FilterMenuSelectAll.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExBadge from \"./Badge.js\";\nimport type UDExListItemBase from \"./ListItemBase.js\";\nimport { RESET, SHOW_RESULTS, SELECT_OPTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport FilterMenuTemplate from \"./generated/templates/FilterMenuTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\nimport type UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport FilterMenuCss from \"./generated/themes/FilterMenu.css.js\";\nimport SearchableListCss from \"./generated/themes/SearchableList.css.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\n\nexport type initialItemState = {\n id: string,\n selected: boolean,\n indeterminate?: boolean,\n}\n\ntype UDExFilterMenuResultClickEventDetail = {\n selectedItems: Array<UDExListItemBase>,\n}\n\ntype UDExFilterMenuResetClickEventDetail = {\n restoredItems: Array<UDExListItemBase>,\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-filter-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/UDExFilterMenu.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-filter-menu\n * @public\n */\n@customElement({\n tag: \"udex-filter-menu\",\n renderer: litRender,\n styles: [FilterMenuCss, SearchableListCss, getEffectiveScrollbarStyle()],\n template: FilterMenuTemplate,\n dependencies: [\n Popover,\n Icon,\n UDExBusyIndicator,\n UDExFilterMenuItem,\n UDExFilterMenuGroupHeader,\n UDExFilterMenuSelectAll,\n UDExList,\n UDExListSelectAll,\n UDExListItem,\n UDExListGroupHeader,\n UDExBadge,\n UDExSearch,\n UDExButton,\n ],\n})\n\n/**\n * Fired event when the user click on a reset button on the footer.\n *\n * @public\n * @param {Array<UDExListItemBase>} restoredItems\n */\n@event(\"reset-click\", { bubbles: true })\n\n/**\n * Fired event when the user click on a result button on the footer.\n *\n * @public\n * @param {Array<UDExListItemBase>} selectedItems\n */\n@event(\"result-click\", { bubbles: true })\n\n/**\n * Fired event when the user click on Select All header item.\n *\n * @public\n */\n@event(\"select-all\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @public\n */\n@event(\"before-open\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @public\n */\n@event(\"after-open\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @public\n */\n@event(\"before-close\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @public\n */\n@event(\"after-close\", { bubbles: true })\n\nclass UDExFilterMenu extends UDExSearchableListBase {\n eventDetails!: {\n \"result-click\": UDExFilterMenuResultClickEventDetail,\n \"reset-click\": UDExFilterMenuResetClickEventDetail,\n \"before-open\": void,\n \"after-open\": void,\n \"before-close\": void,\n \"after-close\": void,\n } & UDExSearchableListBaseEvents;\n /**\n * Determines the value of the badge.\n *\n * @public\n */\n @property({ type: Number })\n badgeValue?: number;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property()\n placement: `${Placement}` = Placement.Bottom;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property()\n horizontalAlign: `${HorizontalAlign}` = HorizontalAlign.Start;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\n\n /**\n * Defines the label of the button reset in the footer.\n *\n * @default \"Reset\"\n * @public\n */\n @property()\n resetBtnLabel?: string;\n\n /**\n * Defines the label of the button result in the footer.\n *\n * @default \"Show Result\"\n * @public\n */\n @property()\n resultBtnLabel?: string;\n\n /**\n * Defines the filter name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n filterName!: string;\n\n /**\n * Defines the filter name prefix of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n filterNamePrefix!: string;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled: boolean = false;\n\n /**\n * Defines whether the dropdown is open or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open: boolean = false;\n\n /**\n * Hides the result button in the footer.\n *\n * @type {boolean}\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideResultBtn: boolean = false;\n\n /**\n * Hides the reset button in the footer.\n *\n * @type {boolean}\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideResetBtn: boolean = false;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Defines id (or many ids) of the elements that contain the ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef!: string;\n /**\n * Allows setting a custom role.\n * @default \"None\"\n * @public\n */\n @property()\n accessibleRole: `${PopupAccessibleRole}` = PopupAccessibleRole.None;\n\n /**\n * Allows setting a custom role for dropdown trigger.\n * @default \"combobox\"\n * @public\n */\n @property({ type: String })\n triggerAccessibleRole: string = \"combobox\";\n\n /**\n * Determines whether the filter should be applied.\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _shouldApplyFilter: boolean = false;\n\n /**\n * Determines whether the component should be re-rendered.\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n _trigger!: UDExButton;\n _search!: UDExSearch | HTMLInputElement;\n _popover!: Popover;\n _breakpointSizeXS = 640;\n _initialState: Array<initialItemState> = [];\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering() {\n super.onBeforeRendering();\n }\n\n onAfterRendering() {\n this._search = this.getSearch();\n this._popover = this.getPopover();\n this._trigger = this.getTriggerButton();\n }\n\n handleSelectAll(e:CustomEvent): void {\n this.onSelectAllHeaderPress(e);\n }\n\n handleItemPress(e:CustomEvent): void {\n this.onItemPress(e);\n\n if (this.modeSingleSelect) {\n this.onDropdownClose();\n }\n }\n\n handleHeaderPress(e:CustomEvent): void {\n this.onHeaderPress(e);\n }\n\n handleValueSearch(e:CustomEvent<{ value: string }>): void {\n this.onSearch(e.detail.value);\n }\n\n handleSubmitSearch(): void {\n this.onDropdownClose();\n this.onSubmitSearch();\n }\n\n handleResetSearch(): void {\n this.onResetSearch();\n }\n\n handleReset(): void {\n this.onDropdownClose();\n this.fireDecoratorEvent(\"reset-click\", {\n restoredItems: this.selectedItems,\n });\n this.onReset();\n }\n\n handleResult(): void {\n this._shouldApplyFilter = true;\n this.onDropdownClose();\n this.fireDecoratorEvent(\"result-click\", {\n selectedItems: this.selectedItems,\n });\n }\n\n handleKeyDownList(e: KeyboardEvent): void {\n const isTabNextPress = isTabNext(e) && !this.hasFooterButtons;\n const isTabPrevPress = isTabPrevious(e) && !this._search;\n const target = e.target as HTMLElement;\n const isSearchResetTrigger = target === this._search;\n if ((isTabNextPress && (!isSearchResetTrigger || this.isListEmpty)) || isTabPrevPress) {\n this.onDropdownClose(e);\n }\n }\n\n handleKeyDownSearch(keyEvent: CustomEvent<UDExSearchKeydownEventDetail>): void {\n const { detail: { e } } = keyEvent;\n if (isTabPrevious(e) || isEscape(e)) {\n this.onDropdownClose(e);\n }\n }\n\n handleKeyDownResultBtn(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isTabNext(e) && !this.hasResetBtn) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownResetBtn(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isTabNext(e)) {\n this.onDropdownClose();\n }\n }\n\n handleTriggerClick(): void {\n this.toggleDropdown();\n }\n\n handleTriggerKeydown(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.toggleDropdown();\n }\n }\n\n toggleDropdown(): void {\n this._open = !this._open;\n\n if (this._open) {\n this._trigger.classList.add(\"udex-filter-menu__trigger-active\");\n this._popover.opener = this._trigger;\n this._popover.open = true;\n } else {\n this.onDropdownClose();\n }\n }\n\n onDropdownClose(e?: KeyboardEvent): void {\n if (this._popover.open) {\n if (e && (isTabPrevious(e) || isEscape(e))) {\n e.preventDefault();\n this._popover.open = false;\n } else {\n this._popover.open = false;\n }\n }\n }\n\n _dropdownBeforeOpen(): void {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"addEventListener\");\n this._managePopupListeners(UDExPopoverPart.Footer, \"addEventListener\");\n }\n\n if (this.height) {\n this._setContentHeight();\n }\n\n this._initialState = this._getInitialState(this.items);\n this.fireDecoratorEvent(\"before-open\");\n }\n\n _dropdownAfterOpen(): void {\n const popoverLeftOffset = +this._popover.style.left.split(\"px\")[0];\n if (this._popover.offsetWidth + popoverLeftOffset < this._breakpointSizeXS) {\n this.style.setProperty(\"--udex-filter-menu-popover-left-offset\", `${this._popover.style.left}`);\n }\n this.fireDecoratorEvent(\"after-open\");\n }\n\n _getInitialState(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<initialItemState> {\n return items.flatMap(item => {\n if (item.isGroup) {\n const groupState: initialItemState = {\n id: item._id,\n selected: item.selected,\n indeterminate: item.indeterminate,\n };\n const subItemsState = (item as UDExListGroupHeaderBase).getItems().map(subItem => ({\n id: subItem._id,\n selected: subItem.selected,\n }));\n return [groupState, ...subItemsState];\n }\n return {\n id: item._id,\n selected: item.selected,\n };\n });\n }\n\n _setInitialListState(): void {\n this.getSlottedItems(this.items).forEach((item, index) => {\n const initialState = this._initialState[index];\n if (item._id === initialState?.id) {\n item.selected = initialState.selected;\n if (item.isGroup) {\n item.indeterminate = initialState.indeterminate;\n }\n }\n });\n }\n\n _setInitialState(): void {\n this._setInitialListState();\n this._requestRender = true;\n }\n\n _dropdownBeforeClose(): void {\n this.fireDecoratorEvent(\"before-close\");\n }\n\n _dropdownAfterClose(): void {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"removeEventListener\");\n this._managePopupListeners(UDExPopoverPart.Footer, \"removeEventListener\");\n }\n\n if (!this._shouldApplyFilter && this.modeMultiSelect && !this.modeSelectAll) {\n this._setInitialState();\n }\n\n this._shouldApplyFilter = false;\n this._open = false;\n this._trigger.classList.remove(\"udex-filter-menu__trigger-active\");\n this.fireDecoratorEvent(\"after-close\");\n }\n\n /**\n * Close the dropdown.\n * @public\n */\n close(): void {\n this.onDropdownClose();\n }\n\n get disableAllowTargetOverlap(): boolean {\n return !this.disableTargetOverlap;\n }\n\n get hasFilterNamePrefix(): boolean {\n return !!this.filterNamePrefix?.length;\n }\n\n get getResultLabelText(): string {\n return this.resultBtnLabel !== undefined && this.resultBtnLabel.length > 0 && this.resultBtnLabel ? this.resultBtnLabel : translate(UDExFilterMenu, SHOW_RESULTS);\n }\n\n get getResetLabelText(): string {\n return this.resetBtnLabel !== undefined && this.resetBtnLabel.length > 0 ? this.resetBtnLabel : translate(UDExFilterMenu, RESET);\n }\n\n get _iconAccessibleNameText(): string {\n return translate(UDExFilterMenu, SELECT_OPTIONS);\n }\n\n get triggerButtonAccessibleName(): string {\n return this.accessibleName || translate(UDExFilterMenu, SELECT_OPTIONS);\n }\n\n get searchableList() {\n return executeTemplate(UDExFilterMenu.searchableListBaseTemplate, this);\n }\n\n get hideActionBar(): boolean {\n return this.hideResultBtn && this.hideResetBtn;\n }\n\n get hasFooterButtons(): boolean {\n return !!this.shadowRoot!.querySelector(\"[udex-button]\");\n }\n\n get hasResetBtn(): boolean {\n return !this.hideResetBtn;\n }\n\n get modeSelectAll(): boolean {\n return !!this.querySelector<UDExFilterMenuSelectAll>(\"[udex-filter-menu-select-all]\");\n }\n\n getTriggerButton(): UDExButton {\n return this.shadowRoot!.querySelector<UDExButton>(\"#filterMenuTrigger\")!;\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nUDExFilterMenu.define();\n\nexport default UDExFilterMenu;\nexport type { UDExFilterMenuResetClickEventDetail, UDExFilterMenuResultClickEventDetail };\n"]}
1
+ {"version":3,"file":"FilterMenu.js","sourceRoot":"","sources":["../src/FilterMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isTabPrevious, isTabNext, isEscape, isSpace, isEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UDExBusyIndicator from \"./BusyIndicator.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExList from \"./List.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport UDExFilterMenuGroupHeader from \"./FilterMenuGroupHeader.js\";\nimport type { UDExSearchKeydownEventDetail } from \"./Search.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExButton from \"./Button.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport { UDExPopoverPart } from \"./types/SearchableListBase.js\";\nimport { Placement, HorizontalAlign } from \"./types/Dropdown.js\";\nimport { UDExListMode } from \"./types/List.js\";\nimport UDExFilterMenuSelectAll from \"./FilterMenuSelectAll.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExBadge from \"./Badge.js\";\nimport type UDExListItemBase from \"./ListItemBase.js\";\nimport { RESET, SHOW_RESULTS, SELECT_OPTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport FilterMenuTemplate from \"./generated/templates/FilterMenuTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\nimport type UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport FilterMenuCss from \"./generated/themes/FilterMenu.css.js\";\nimport SearchableListCss from \"./generated/themes/SearchableList.css.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\n\nexport type initialItemState = {\n id: string,\n selected: boolean,\n indeterminate?: boolean,\n collapsed?: boolean,\n _filtered?: boolean,\n}\n\ntype UDExFilterMenuResultClickEventDetail = {\n selectedItems: Array<UDExListItemBase>,\n}\n\ntype UDExFilterMenuResetClickEventDetail = {\n restoredItems: Array<UDExListItemBase>,\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-filter-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/UDExFilterMenu.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-filter-menu\n * @public\n */\n@customElement({\n tag: \"udex-filter-menu\",\n renderer: litRender,\n styles: [FilterMenuCss, SearchableListCss, getEffectiveScrollbarStyle()],\n template: FilterMenuTemplate,\n dependencies: [\n Popover,\n Icon,\n UDExBusyIndicator,\n UDExFilterMenuItem,\n UDExFilterMenuGroupHeader,\n UDExFilterMenuSelectAll,\n UDExList,\n UDExListSelectAll,\n UDExListItem,\n UDExListGroupHeader,\n UDExBadge,\n UDExSearch,\n UDExButton,\n ],\n})\n\n/**\n * Fired event when the user click on a reset button on the footer.\n *\n * @public\n * @param {Array<UDExListItemBase>} restoredItems\n */\n@event(\"reset-click\", { bubbles: true })\n\n/**\n * Fired event when the user click on a result button on the footer.\n *\n * @public\n * @param {Array<UDExListItemBase>} selectedItems\n */\n@event(\"result-click\", { bubbles: true })\n\n/**\n * Fired event when the user click on Select All header item.\n *\n * @public\n */\n@event(\"select-all\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @public\n */\n@event(\"before-open\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @public\n */\n@event(\"after-open\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @public\n */\n@event(\"before-close\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @public\n */\n@event(\"after-close\", { bubbles: true })\n\nclass UDExFilterMenu extends UDExSearchableListBase {\n eventDetails!: {\n \"result-click\": UDExFilterMenuResultClickEventDetail,\n \"reset-click\": UDExFilterMenuResetClickEventDetail,\n \"before-open\": void,\n \"after-open\": void,\n \"before-close\": void,\n \"after-close\": void,\n } & UDExSearchableListBaseEvents;\n /**\n * Determines the value of the badge.\n *\n * @public\n */\n @property({ type: Number })\n badgeValue?: number;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property()\n placement: `${Placement}` = Placement.Bottom;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property()\n horizontalAlign: `${HorizontalAlign}` = HorizontalAlign.Start;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\n\n /**\n * Defines the label of the button reset in the footer.\n *\n * @default \"Reset\"\n * @public\n */\n @property()\n resetBtnLabel?: string;\n\n /**\n * Defines the label of the button result in the footer.\n *\n * @default \"Show Result\"\n * @public\n */\n @property()\n resultBtnLabel?: string;\n\n /**\n * Defines the filter name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n filterName!: string;\n\n /**\n * Defines the filter name prefix of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n filterNamePrefix!: string;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled: boolean = false;\n\n /**\n * Defines whether the dropdown is open or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open: boolean = false;\n\n /**\n * Hides the result button in the footer.\n *\n * @type {boolean}\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideResultBtn: boolean = false;\n\n /**\n * Hides the reset button in the footer.\n *\n * @type {boolean}\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideResetBtn: boolean = false;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Defines id (or many ids) of the elements that contain the ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef!: string;\n /**\n * Allows setting a custom role.\n * @default \"None\"\n * @public\n */\n @property()\n accessibleRole: `${PopupAccessibleRole}` = PopupAccessibleRole.None;\n\n /**\n * Allows setting a custom role for dropdown trigger.\n * @default \"combobox\"\n * @public\n */\n @property({ type: String })\n triggerAccessibleRole: string = \"combobox\";\n\n /**\n * Determines whether the filter should be applied.\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _shouldApplyFilter: boolean = false;\n\n /**\n * Determines whether the component should be re-rendered.\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n _trigger!: UDExButton;\n _search!: UDExSearch | HTMLInputElement;\n _popover!: Popover;\n _breakpointSizeXS = 640;\n _initialState: Array<initialItemState> = [];\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering() {\n super.onBeforeRendering();\n }\n\n onAfterRendering() {\n this._search = this.getSearch();\n this._popover = this.getPopover();\n this._trigger = this.getTriggerButton();\n }\n\n handleSelectAll(e:CustomEvent): void {\n this.onSelectAllHeaderPress(e);\n }\n\n handleItemPress(e:CustomEvent): void {\n this.onItemPress(e);\n\n if (this.modeSingleSelect) {\n this.onDropdownClose();\n }\n }\n\n handleHeaderPress(e:CustomEvent): void {\n this.onHeaderPress(e);\n }\n\n handleValueSearch(e:CustomEvent<{ value: string }>): void {\n this.onSearch(e.detail.value);\n }\n\n handleSubmitSearch(): void {\n this.onDropdownClose();\n this.onSubmitSearch();\n }\n\n handleResetSearch(): void {\n this.onResetSearch();\n }\n\n handleReset(): void {\n this.onDropdownClose();\n this.fireDecoratorEvent(\"reset-click\", {\n restoredItems: this.selectedItems,\n });\n this.onReset();\n }\n\n handleResult(): void {\n this._shouldApplyFilter = true;\n this.onDropdownClose();\n this.fireDecoratorEvent(\"result-click\", {\n selectedItems: this.selectedItems,\n });\n }\n\n handleKeyDownList(e: KeyboardEvent): void {\n const isTabNextPress = isTabNext(e) && !this.hasFooterButtons;\n const isTabPrevPress = isTabPrevious(e) && !this._search;\n const target = e.target as HTMLElement;\n const isSearchResetTrigger = target === this._search;\n if ((isTabNextPress && (!isSearchResetTrigger || this.isListEmpty)) || isTabPrevPress) {\n this.onDropdownClose(e);\n }\n }\n\n handleKeyDownSearch(keyEvent: CustomEvent<UDExSearchKeydownEventDetail>): void {\n const { detail: { e } } = keyEvent;\n if (isTabPrevious(e) || isEscape(e)) {\n this.onDropdownClose(e);\n }\n }\n\n handleKeyDownResultBtn(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isTabNext(e) && !this.hasResetBtn) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownResetBtn(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isTabNext(e)) {\n this.onDropdownClose();\n }\n }\n\n handleTriggerClick(): void {\n this.toggleDropdown();\n }\n\n handleTriggerKeydown(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.toggleDropdown();\n }\n }\n\n toggleDropdown(): void {\n this._open = !this._open;\n\n if (this._open) {\n this._trigger.classList.add(\"udex-filter-menu__trigger-active\");\n this._popover.opener = this._trigger;\n this._popover.open = true;\n } else {\n this.onDropdownClose();\n }\n }\n\n onDropdownClose(e?: KeyboardEvent): void {\n if (this._popover.open) {\n if (e && (isTabPrevious(e) || isEscape(e))) {\n e.preventDefault();\n this._popover.open = false;\n } else {\n this._popover.open = false;\n }\n }\n }\n\n _dropdownBeforeOpen(): void {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"addEventListener\");\n this._managePopupListeners(UDExPopoverPart.Footer, \"addEventListener\");\n }\n\n if (this.height) {\n this._setContentHeight();\n }\n\n this._initialState = this._getInitialState(this.items);\n this.fireDecoratorEvent(\"before-open\");\n }\n\n _dropdownAfterOpen(): void {\n const popoverLeftOffset = +this._popover.style.left.split(\"px\")[0];\n if (this._popover.offsetWidth + popoverLeftOffset < this._breakpointSizeXS) {\n this.style.setProperty(\"--udex-filter-menu-popover-left-offset\", `${this._popover.style.left}`);\n }\n this.fireDecoratorEvent(\"after-open\");\n }\n\n _getInitialState(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<initialItemState> {\n return items.flatMap(item => {\n if (item.isGroup) {\n const groupState: initialItemState = {\n id: item._id,\n selected: item.selected,\n indeterminate: item.indeterminate,\n collapsed: item.collapsed,\n _filtered: item._filtered,\n };\n const subItemsState = (item as UDExListGroupHeaderBase).getItems().map(subItem => ({\n id: subItem._id,\n selected: subItem.selected,\n }));\n return [groupState, ...subItemsState];\n }\n return {\n id: item._id,\n selected: item.selected,\n };\n });\n }\n\n _setInitialListState(): void {\n this.getSlottedItems(this.items).forEach((item, index) => {\n const initialState = this._initialState[index];\n if (item._id === initialState?.id) {\n item.selected = initialState.selected;\n if (item.isGroup) {\n item.indeterminate = initialState.indeterminate;\n }\n }\n });\n }\n\n _setInitialState(): void {\n this._setInitialListState();\n this._requestRender = true;\n }\n\n _dropdownBeforeClose(): void {\n this.fireDecoratorEvent(\"before-close\");\n }\n\n _dropdownAfterClose(): void {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"removeEventListener\");\n this._managePopupListeners(UDExPopoverPart.Footer, \"removeEventListener\");\n }\n\n if (!this._shouldApplyFilter && this.modeMultiSelect && !this.modeSelectAll) {\n this._setInitialState();\n }\n\n this._shouldApplyFilter = false;\n this._open = false;\n this._trigger.classList.remove(\"udex-filter-menu__trigger-active\");\n this.fireDecoratorEvent(\"after-close\");\n }\n\n /**\n * Close the dropdown.\n * @public\n */\n close(): void {\n this.onDropdownClose();\n }\n\n get disableAllowTargetOverlap(): boolean {\n return !this.disableTargetOverlap;\n }\n\n get hasFilterNamePrefix(): boolean {\n return !!this.filterNamePrefix?.length;\n }\n\n get getResultLabelText(): string {\n return this.resultBtnLabel !== undefined && this.resultBtnLabel.length > 0 && this.resultBtnLabel ? this.resultBtnLabel : translate(UDExFilterMenu, SHOW_RESULTS);\n }\n\n get getResetLabelText(): string {\n return this.resetBtnLabel !== undefined && this.resetBtnLabel.length > 0 ? this.resetBtnLabel : translate(UDExFilterMenu, RESET);\n }\n\n get _iconAccessibleNameText(): string {\n return translate(UDExFilterMenu, SELECT_OPTIONS);\n }\n\n get triggerButtonAccessibleName(): string {\n return this.accessibleName || translate(UDExFilterMenu, SELECT_OPTIONS);\n }\n\n get searchableList() {\n return executeTemplate(UDExFilterMenu.searchableListBaseTemplate, this);\n }\n\n get hideActionBar(): boolean {\n return this.hideResultBtn && this.hideResetBtn;\n }\n\n get hasFooterButtons(): boolean {\n return !!this.shadowRoot!.querySelector(\"[udex-button]\");\n }\n\n get hasResetBtn(): boolean {\n return !this.hideResetBtn;\n }\n\n get modeSelectAll(): boolean {\n return !!this.querySelector<UDExFilterMenuSelectAll>(\"[udex-filter-menu-select-all]\");\n }\n\n getTriggerButton(): UDExButton {\n return this.shadowRoot!.querySelector<UDExButton>(\"#filterMenuTrigger\")!;\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nUDExFilterMenu.define();\n\nexport default UDExFilterMenu;\nexport type { UDExFilterMenuResetClickEventDetail, UDExFilterMenuResultClickEventDetail };\n"]}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime"
2
2
  import ImageGridTickerItem from "./ImageGridTickerItem.js";
3
3
  import UDExButton from "./Button.js";
4
4
  import UDExButtonDesign from "./types/ButtonDesign.js";
5
+ import UDExButtonSize from "./types/ButtonSize.js";
5
6
  import playIcon from "@ui5/webcomponents-icons/dist/play.js";
6
7
  import pauseIcon from "@ui5/webcomponents-icons/dist/pause.js";
7
8
  export default function ImageGridTickerTemplate() {
@@ -9,6 +10,6 @@ export default function ImageGridTickerTemplate() {
9
10
  const items = this._isScrollable && !this._isMobileView && !this._isFocusIn ? [...this.items, ...this.items] : this.items;
10
11
  const btnIcon = this._isPaused ? playIcon : pauseIcon;
11
12
  return (_jsxs("div", { class: rootClass, children: [this._isScrollable &&
12
- _jsx("div", { className: `${rootClass}__play-button-holder`, children: _jsx(UDExButton, { class: `${rootClass}__play-button`, icon: btnIcon, design: UDExButtonDesign.Invisible, onClick: this._onPlayButtonClick, tooltip: this.playBtnTooltipText }) }), _jsx("div", { className: `${rootClass}__track-holder`, children: _jsx("div", { className: `${rootClass}__track-wrapper`, children: _jsx("div", { className: `${rootClass}__track`, onMouseEnter: this._stopAnimation, onMouseLeave: this._startAnimation, onFocusIn: this._onFocusIn, onFocusOut: this._onFocusOut, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onMouseUp: this._onMouseUp, children: items.map(item => _jsx(ImageGridTickerItem, { src: item.src, alt: item.alt, tooltip: item.tooltip, href: item.href })) }) }) })] }));
13
+ _jsx("div", { className: `${rootClass}__play-button-holder`, children: _jsx(UDExButton, { class: `${rootClass}__play-button`, icon: btnIcon, size: UDExButtonSize.Large, design: UDExButtonDesign.Tertiary, onClick: this._onPlayButtonClick, tooltip: this.playBtnTooltipText }) }), _jsx("div", { className: `${rootClass}__track-holder`, children: _jsx("div", { className: `${rootClass}__track-wrapper`, children: _jsx("div", { className: `${rootClass}__track`, onMouseEnter: this._stopAnimation, onMouseLeave: this._startAnimation, onFocusIn: this._onFocusIn, onFocusOut: this._onFocusOut, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onMouseUp: this._onMouseUp, children: items.map(item => _jsx(ImageGridTickerItem, { src: item.src, alt: item.alt, tooltip: item.tooltip, href: item.href })) }) }) })] }));
13
14
  }
14
15
  //# sourceMappingURL=ImageGridTickerTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImageGridTickerTemplate.js","sourceRoot":"","sources":["../src/ImageGridTickerTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,SAAS,MAAM,wCAAwC,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,uBAAuB;IAC7C,MAAM,SAAS,GAAG,wBAAwB,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1H,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtD,OAAO,CACL,eAAK,KAAK,EAAE,SAAS,aAClB,IAAI,CAAC,aAAa;gBACjB,cAAK,SAAS,EAAE,GAAG,SAAS,sBAAsB,YAChD,KAAC,UAAU,IACT,KAAK,EAAE,GAAG,SAAS,eAAe,EAClC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,gBAAgB,CAAC,SAAS,EAClC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,OAAO,EAAE,IAAI,CAAC,kBAAkB,GACrB,GACT,EAER,cAAK,SAAS,EAAE,GAAG,SAAS,gBAAgB,YAC1C,cAAK,SAAS,EAAE,GAAG,SAAS,iBAAiB,YAC3C,cACE,SAAS,EAAE,GAAG,SAAS,SAAS,EAChC,YAAY,EAAE,IAAI,CAAC,cAAc,EACjC,YAAY,EAAE,IAAI,CAAC,eAAe,EAClC,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,YACzB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAChB,KAAC,mBAAmB,IAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,IAAI,CAAC,IAAI,GACK,CACvB,GACG,GACF,GACF,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type ImageGridTicker from \"./ImageGridTicker.js\";\nimport ImageGridTickerItem from \"./ImageGridTickerItem.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport playIcon from \"@ui5/webcomponents-icons/dist/play.js\";\nimport pauseIcon from \"@ui5/webcomponents-icons/dist/pause.js\";\n\nexport default function ImageGridTickerTemplate(this: ImageGridTicker) {\n const rootClass = \"udex-image-grid-ticker\";\n const items = this._isScrollable && !this._isMobileView && !this._isFocusIn ? [...this.items, ...this.items] : this.items;\n const btnIcon = this._isPaused ? playIcon : pauseIcon;\n\n return (\n <div class={rootClass}>\n {this._isScrollable &&\n <div className={`${rootClass}__play-button-holder`}>\n <UDExButton\n class={`${rootClass}__play-button`}\n icon={btnIcon}\n design={UDExButtonDesign.Invisible}\n onClick={this._onPlayButtonClick}\n tooltip={this.playBtnTooltipText}>\n </UDExButton>\n </div>\n }\n <div className={`${rootClass}__track-holder`}>\n <div className={`${rootClass}__track-wrapper`}>\n <div\n className={`${rootClass}__track`}\n onMouseEnter={this._stopAnimation}\n onMouseLeave={this._startAnimation}\n onFocusIn={this._onFocusIn}\n onFocusOut={this._onFocusOut}\n onKeyDown={this._onKeyDown}\n onMouseDown={this._onMouseDown}\n onMouseUp={this._onMouseUp}>\n {items.map(item =>\n <ImageGridTickerItem\n src={item.src}\n alt={item.alt}\n tooltip={item.tooltip}\n href={item.href}>\n </ImageGridTickerItem>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"ImageGridTickerTemplate.js","sourceRoot":"","sources":["../src/ImageGridTickerTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,SAAS,MAAM,wCAAwC,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,uBAAuB;IAC7C,MAAM,SAAS,GAAG,wBAAwB,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1H,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtD,OAAO,CACL,eAAK,KAAK,EAAE,SAAS,aAClB,IAAI,CAAC,aAAa;gBACjB,cAAK,SAAS,EAAE,GAAG,SAAS,sBAAsB,YAChD,KAAC,UAAU,IACT,KAAK,EAAE,GAAG,SAAS,eAAe,EAClC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,cAAc,CAAC,KAAK,EAC1B,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EACjC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,OAAO,EAAE,IAAI,CAAC,kBAAkB,GACrB,GACT,EAER,cAAK,SAAS,EAAE,GAAG,SAAS,gBAAgB,YAC1C,cAAK,SAAS,EAAE,GAAG,SAAS,iBAAiB,YAC3C,cACE,SAAS,EAAE,GAAG,SAAS,SAAS,EAChC,YAAY,EAAE,IAAI,CAAC,cAAc,EACjC,YAAY,EAAE,IAAI,CAAC,eAAe,EAClC,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,YACzB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAChB,KAAC,mBAAmB,IAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,IAAI,CAAC,IAAI,GACK,CACvB,GACG,GACF,GACF,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type ImageGridTicker from \"./ImageGridTicker.js\";\nimport ImageGridTickerItem from \"./ImageGridTickerItem.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport playIcon from \"@ui5/webcomponents-icons/dist/play.js\";\nimport pauseIcon from \"@ui5/webcomponents-icons/dist/pause.js\";\n\nexport default function ImageGridTickerTemplate(this: ImageGridTicker) {\n const rootClass = \"udex-image-grid-ticker\";\n const items = this._isScrollable && !this._isMobileView && !this._isFocusIn ? [...this.items, ...this.items] : this.items;\n const btnIcon = this._isPaused ? playIcon : pauseIcon;\n\n return (\n <div class={rootClass}>\n {this._isScrollable &&\n <div className={`${rootClass}__play-button-holder`}>\n <UDExButton\n class={`${rootClass}__play-button`}\n icon={btnIcon}\n size={UDExButtonSize.Large}\n design={UDExButtonDesign.Tertiary}\n onClick={this._onPlayButtonClick}\n tooltip={this.playBtnTooltipText}>\n </UDExButton>\n </div>\n }\n <div className={`${rootClass}__track-holder`}>\n <div className={`${rootClass}__track-wrapper`}>\n <div\n className={`${rootClass}__track`}\n onMouseEnter={this._stopAnimation}\n onMouseLeave={this._startAnimation}\n onFocusIn={this._onFocusIn}\n onFocusOut={this._onFocusOut}\n onKeyDown={this._onKeyDown}\n onMouseDown={this._onMouseDown}\n onMouseUp={this._onMouseUp}>\n {items.map(item =>\n <ImageGridTickerItem\n src={item.src}\n alt={item.alt}\n tooltip={item.tooltip}\n href={item.href}>\n </ImageGridTickerItem>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"]}
package/dist/List.d.ts CHANGED
@@ -115,6 +115,8 @@ declare class UDExList extends UI5Element {
115
115
  onBeforeRendering(): void;
116
116
  handleItemPress(e: CustomEvent): void;
117
117
  handleKeyDown(e: KeyboardEvent): void;
118
+ handleArrowRight(e: KeyboardEvent): void;
119
+ handleArrowLeft(e: KeyboardEvent): void;
118
120
  handleUpArrow(e: KeyboardEvent): void;
119
121
  handleDownArrow(e: KeyboardEvent): void;
120
122
  handleHomeKey(e: KeyboardEvent): void;
@@ -129,13 +131,13 @@ declare class UDExList extends UI5Element {
129
131
  setTabIndexByIndex(items: UDExListItemBase[], index: number): void;
130
132
  getItems(): Array<UDExListItemBase>;
131
133
  getSelectedItems(): Array<UDExListItemBase>;
132
- getCurrentIndex(items: Array<UDExListItemBase>, item: UDExListItemBase): number;
133
- getItemsWithoutHeader(): Array<UDExListItemBase>;
134
+ getCurrentIndex(items: Array<UDExListItemBase | HTMLElement>, item: UDExListItemBase | HTMLElement): number;
134
135
  getKeyboardNavigationItems(): Array<UDExListItemBase>;
135
136
  getItemsFromList(): Array<UDExListItemBase>;
136
137
  prepareListItemsMode(): void;
137
138
  getTabIndex(index: number, item: UDExListItemBase): string;
138
139
  resetTabIndexes(): void;
140
+ setCollapsedItems(collapsed: boolean, target: UDExListItemBase): void;
139
141
  get isGroupList(): boolean;
140
142
  get ariaLabelModeText(): string;
141
143
  get ariaLabelledBy(): string;
package/dist/List.js CHANGED
@@ -11,7 +11,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
11
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.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
- import { isUp, isDown, isHome, isEnd, } from "@ui5/webcomponents-base/dist/Keys.js";
14
+ import { isUp, isDown, isHome, isEnd, isRight, isLeft, } from "@ui5/webcomponents-base/dist/Keys.js";
15
15
  import { UDExListStyleType, UDExListMode } from "./types/List.js";
16
16
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
17
17
  import { ARIA_LABEL_LIST_MULTISELECTABLE, ARIA_LABEL_LIST_SELECTABLE } from "./generated/i18n/i18n-defaults.js";
@@ -84,7 +84,7 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
84
84
  onBeforeRendering() {
85
85
  this.prepareListItemsMode();
86
86
  this._focusHandler.resetMatchingItems();
87
- this._focusHandler._focusableListItems = this.getItemsWithoutHeader();
87
+ this._focusHandler._focusableListItems = this.getKeyboardNavigationItems();
88
88
  }
89
89
  handleItemPress(e) {
90
90
  const clickedItem = e.detail.item;
@@ -94,6 +94,12 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
94
94
  if (this.tabNavigationEnabled) {
95
95
  return;
96
96
  }
97
+ if (isRight(e)) {
98
+ this.handleArrowRight(e);
99
+ }
100
+ if (isLeft(e)) {
101
+ this.handleArrowLeft(e);
102
+ }
97
103
  if (isUp(e)) {
98
104
  this.handleUpArrow(e);
99
105
  }
@@ -110,6 +116,20 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
110
116
  this.handleLetterKey(e);
111
117
  }
112
118
  }
119
+ handleArrowRight(e) {
120
+ const target = e.target;
121
+ if ((target.tagName === "UDEX-LIST-GROUP-HEADER" || target.tagName === "UDEX-LIST-ITEM") && target.hasAttribute("collapsible")) {
122
+ target.collapsed = false;
123
+ this.setCollapsedItems(false, target);
124
+ }
125
+ }
126
+ handleArrowLeft(e) {
127
+ const target = e.target;
128
+ if ((target.tagName === "UDEX-LIST-GROUP-HEADER" || target.tagName === "UDEX-LIST-ITEM") && target.hasAttribute("collapsible")) {
129
+ target.collapsed = true;
130
+ this.setCollapsedItems(true, target);
131
+ }
132
+ }
113
133
  handleUpArrow(e) {
114
134
  e.preventDefault();
115
135
  const items = this.getKeyboardNavigationItems();
@@ -276,7 +296,7 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
276
296
  }
277
297
  }
278
298
  focusHeader(item) {
279
- const header = item.shadowRoot?.querySelector(".udex-list__group-header");
299
+ const header = item.shadowRoot?.querySelector(".udex-list__group-header-wrap");
280
300
  header.focus();
281
301
  }
282
302
  scrollToItem(item) {
@@ -297,12 +317,13 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
297
317
  getCurrentIndex(items, item) {
298
318
  return items.indexOf(item);
299
319
  }
300
- getItemsWithoutHeader() {
301
- return this.getItemsFromList().filter(item => !item.isGroup);
302
- }
303
320
  getKeyboardNavigationItems() {
304
- const items = this.modeMultiSelect ? this.getItemsFromList() : this.getItemsWithoutHeader();
305
- return items.filter(item => !item.disabled);
321
+ return this.getItemsFromList().filter(item => {
322
+ const parent = item.parentElement;
323
+ return !item.disabled
324
+ && (!item.isGroup || item.modeMultiSelect || item.collapsible)
325
+ && !(parent?.isGroup && parent.collapsed);
326
+ });
306
327
  }
307
328
  getItemsFromList() {
308
329
  const items = [];
@@ -334,7 +355,8 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
334
355
  const isFirstHeaderMultiMode = isFirstHeader && this.modeMultiSelect && !item.nonInteractive;
335
356
  const isFirstItemGroupSingleOrRadioMode = isFirstItemInGroupList && modeSingleOrRadio;
336
357
  const isFirstItemGroupMultiMode = isFirstItemInGroupList && this.modeMultiSelect && listGroupHeader?.nonInteractive;
337
- if (isFirstHeaderMultiMode || isFirstItemGroupSingleOrRadioMode || isFirstItemGroupMultiMode || isFirstItem) {
358
+ const isCollapsibleHeader = item.isGroup && item.collapsible;
359
+ if (isFirstHeaderMultiMode || isFirstItemGroupSingleOrRadioMode || isFirstItemGroupMultiMode || isFirstItem || isCollapsibleHeader) {
338
360
  return "0";
339
361
  }
340
362
  return "-1";
@@ -344,6 +366,17 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
344
366
  item._tabIndex = "-1";
345
367
  });
346
368
  }
369
+ setCollapsedItems(collapsed, target) {
370
+ const items = target.getSlottedNodes("items");
371
+ items.forEach(item => {
372
+ if (collapsed) {
373
+ item.setAttribute("collapsed", "");
374
+ }
375
+ else {
376
+ item.removeAttribute("collapsed");
377
+ }
378
+ });
379
+ }
347
380
  get isGroupList() {
348
381
  return this.getItemsFromList().some(item => item.isGroup);
349
382
  }
package/dist/List.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../src/List.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport {\n isUp, isDown, isHome, isEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type UDExListItem from \"./ListItem.js\";\nimport type { UDExScrollIntoViewOptions } from \"./types/List.js\";\nimport { UDExListStyleType, UDExListMode } from \"./types/List.js\";\nimport type UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport type UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport type UDExUploadItem from \"./UploadItem.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ARIA_LABEL_LIST_MULTISELECTABLE, ARIA_LABEL_LIST_SELECTABLE } from \"./generated/i18n/i18n-defaults.js\";\nimport ListTemplate from \"./generated/templates/ListTemplate.lit.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport ListCss from \"./generated/themes/List.css.js\";\nimport isLetterKey from \"./utils/isLetterKeyPressed.js\";\nimport type { UDExListWithFirstLetterFocus } from \"./utils/ListWithFirstLetterFocus.js\";\nimport UDExFirstLetterFocusHandler from \"./utils/ListWithFirstLetterFocus.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\n\nexport type UDExListItemBase = UDExListItem & UDExListGroupHeader & UDExUploadItem;\n\ntype UDExListSelectionChangeEventDetail = {\n listItems: Array<UDExListItemBase>,\n selectedItems: Array<UDExListItemBase>,\n item: HTMLElement,\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-list</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/List.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-list\n * @public\n */\n@customElement({\n tag: \"udex-list\",\n renderer: litRender,\n styles: [ListCss, getEffectiveScrollbarStyle()],\n template: ListTemplate,\n dependencies: [],\n})\n\n/**\n * Fired when selection is changed by user interaction\n *\n * @public\n * @param {Array<UDExListItemBase>} listItems All items inside the list\n * @param {Array<UDExListItemBase>} selectedItems Currently selected items\n * @param {HTMLElement} item The item that triggered the event\n */\n@event(\"selection-change\", { bubbles: true })\n\nclass UDExList extends UI5Element {\n eventDetails!: {\n \"selection-change\": UDExListSelectionChangeEventDetail\n };\n /**\n * Defines the accessible role of the component.\n *\n * @default \"listbox\"\n * @public\n */\n @property()\n accessibleRole: string = \"listbox\";\n\n /**\n * Defines the accessible name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName: string = \"\";\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\n\n /**\n * Defines the type of the item.\n *\n * @default \"None\"\n * @public\n */\n @property()\n type: `${UDExListStyleType}` = UDExListStyleType.None;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines the controlled of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n controlled?: boolean;\n\n /**\n * Defines the headerText, displayed in the top of the list.\n *\n * @public\n */\n @property({ type: String })\n headerText?: string;\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed for each item of the list.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n itemIcon: string = \"\";\n\n /**\n * Enables tab navigation for the list.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n tabNavigationEnabled?: boolean;\n\n /**\n * Slot for list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExListItemBase>;\n\n /**\n * Defines the scroll behavior for the items of the component.\n *\n * @default undefined\n * @private\n */\n @property()\n _scrollIntoView?: `${UDExScrollIntoViewOptions}`;\n\n _focusHandler: UDExListWithFirstLetterFocus = new UDExFirstLetterFocusHandler();\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onBeforeRendering(): void {\n this.prepareListItemsMode();\n this._focusHandler.resetMatchingItems();\n this._focusHandler._focusableListItems = this.getItemsWithoutHeader();\n }\n\n handleItemPress(e: CustomEvent): void {\n const clickedItem: UDExListItemBase = e.detail.item;\n this.onItemPress(clickedItem);\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (this.tabNavigationEnabled) {\n return;\n }\n if (isUp(e)) {\n this.handleUpArrow(e);\n }\n if (isDown(e)) {\n this.handleDownArrow(e);\n }\n if (isHome(e)) {\n this.handleHomeKey(e);\n }\n if (isEnd(e)) {\n this.handleEndKey(e);\n }\n if (isLetterKey(e.key)) {\n this.handleLetterKey(e);\n }\n }\n\n handleUpArrow(e: KeyboardEvent): void {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const lastItemIndex = items.length - 1;\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n const isHeaderItem = items[previousSelectIndex].isGroup;\n const nonInteractiveHeader = items[previousSelectIndex].nonInteractive;\n\n if (nonInteractiveHeader && previousSelectIndex === 0) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, lastItemIndex);\n if (this._scrollIntoView) {\n this.scrollToItem(items[lastItemIndex]);\n }\n items[lastItemIndex].focus();\n return;\n }\n\n if (nonInteractiveHeader) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex - 1);\n if (this._scrollIntoView) {\n this.scrollToItem(items[previousSelectIndex - 1]);\n }\n items[previousSelectIndex - 1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex);\n if (this._scrollIntoView) {\n this.scrollToItem(items[previousSelectIndex]);\n }\n this.focusHeader(items[previousSelectIndex]);\n return;\n }\n\n if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[previousSelectIndex].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex);\n setTimeout(() => {\n if (this._scrollIntoView) {\n this.scrollToItem(items[previousSelectIndex]);\n }\n items[previousSelectIndex].focus();\n }, 0);\n }\n\n handleDownArrow(e: KeyboardEvent): void {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const nextSelectIndex = currentSelectedIndex + 1 > items.length - 1 ? 0 : currentSelectedIndex + 1;\n const isHeaderItem = items[nextSelectIndex].isGroup;\n const nonInteractiveHeader = items[nextSelectIndex].nonInteractive;\n\n if (nonInteractiveHeader) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex + 1);\n if (this._scrollIntoView) {\n this.scrollToItem(items[nextSelectIndex + 1]);\n }\n items[nextSelectIndex + 1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex);\n if (this._scrollIntoView) {\n this.scrollToItem(items[nextSelectIndex]);\n }\n this.focusHeader(items[nextSelectIndex]);\n return;\n }\n\n if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[nextSelectIndex].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex);\n setTimeout(() => {\n if (this._scrollIntoView) {\n this.scrollToItem(items[nextSelectIndex]);\n }\n items[nextSelectIndex].focus();\n }, 0);\n }\n\n handleHomeKey(e: KeyboardEvent): void {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const firstItem = items[0];\n const isHeaderItem = firstItem.isGroup;\n const nonInteractiveItem = firstItem.nonInteractive;\n\n if (nonInteractiveItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 1);\n items[1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 0);\n this.focusHeader(items[0]);\n return;\n }\n\n if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[0].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 0);\n items[0].focus();\n }\n\n handleEndKey(e: KeyboardEvent): void {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n\n if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[items.length - 1].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, items.length - 1);\n items[items.length - 1].focus();\n }\n\n handleLetterKey(e: KeyboardEvent): void {\n const letterKey = e.key;\n e.preventDefault();\n this._focusHandler.focusMatchingListItem(letterKey);\n }\n\n onItemPress(clickedItem: UDExListItemBase): void {\n if (this.modeSingleSelect && !this.controlled) {\n this.revertSelectedItems(this.getSelectedItems());\n clickedItem.selected = true;\n }\n\n if (this.modeRadioGroup && !this.controlled) {\n const groupHeader = clickedItem.parentElement as UDExListGroupHeaderBase;\n const groupItems = groupHeader.getItems() as Array<UDExListItemBase>;\n this.revertSelectedItems(groupItems);\n clickedItem.selected = true;\n }\n\n if (!this.tabNavigationEnabled) {\n this.resetTabIndexes();\n clickedItem._tabIndex = \"0\";\n }\n\n this.fireDecoratorEvent(\"selection-change\", {\n listItems: this.getItemsFromList(),\n selectedItems: this.getSelectedItems(),\n item: clickedItem,\n });\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>): void {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n focusSelectedItem(): void {\n const selectedItemIndex = this.items.findIndex(item => item.selected);\n this.resetTabIndexes();\n if (selectedItemIndex !== -1 && this.modeSingleSelect) {\n this.setTabIndexByIndex(this.items, selectedItemIndex);\n }\n }\n\n focusHeader(item: UDExListItemBase): void {\n const header = item.shadowRoot?.querySelector(\".udex-list__group-header\") as HTMLElement;\n header.focus();\n }\n\n scrollToItem(item: UDExListItemBase): void {\n item.scrollIntoView({ block: this._scrollIntoView?.toLowerCase() as ScrollLogicalPosition });\n }\n\n unsetTabIndexByIndex(items: UDExListItemBase[], index: number): void {\n items[index]._tabIndex = \"-1\";\n }\n\n setTabIndexByIndex(items: UDExListItemBase[], index: number): void {\n items[index]._tabIndex = \"0\";\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n getSelectedItems(): Array<UDExListItemBase> {\n return this.getItemsFromList().filter(item => item.selected);\n }\n\n getCurrentIndex(items: Array<UDExListItemBase>, item: UDExListItemBase): number {\n return items.indexOf(item);\n }\n\n getItemsWithoutHeader(): Array<UDExListItemBase> {\n return this.getItemsFromList().filter(item => !item.isGroup);\n }\n\n getKeyboardNavigationItems(): Array<UDExListItemBase> {\n const items = this.modeMultiSelect ? this.getItemsFromList() : this.getItemsWithoutHeader();\n return items.filter(item => !item.disabled);\n }\n\n getItemsFromList(): Array<UDExListItemBase> {\n const items: UDExListItemBase[] = [];\n const slottedItems = this.getItems();\n\n slottedItems.forEach(item => {\n const childItems = item.isGroup ? item.children : [];\n items.push(item, ...childItems as UDExListItemBase[]);\n });\n\n return items;\n }\n\n prepareListItemsMode(): void {\n this.getItemsFromList().forEach((item, index) => {\n item.mode = this.mode;\n item.controlled = this.controlled;\n item.type = this.type;\n item._icon = this.itemIcon;\n item._tabIndex = this.getTabIndex(index, item);\n });\n }\n\n getTabIndex(index: number, item: UDExListItemBase): string {\n if (this.tabNavigationEnabled) {\n return \"0\";\n }\n\n const isFirstItem = this.modeSelected && index === 0;\n const isFirstItemInGroupList = this.isGroupList && index === 1;\n const listGroupHeader = item.closest(\"[udex-list-group-header]\") as UDExListGroupHeader;\n const modeSingleOrRadio = this.modeSingleSelect || this.modeRadioGroup;\n const isFirstHeader = item.isGroup && isFirstItem;\n const isFirstHeaderMultiMode = isFirstHeader && this.modeMultiSelect && !item.nonInteractive;\n const isFirstItemGroupSingleOrRadioMode = isFirstItemInGroupList && modeSingleOrRadio;\n const isFirstItemGroupMultiMode = isFirstItemInGroupList && this.modeMultiSelect && listGroupHeader?.nonInteractive;\n\n if (isFirstHeaderMultiMode || isFirstItemGroupSingleOrRadioMode || isFirstItemGroupMultiMode || isFirstItem) {\n return \"0\";\n }\n\n return \"-1\";\n }\n\n resetTabIndexes(): void {\n this.getItemsFromList().forEach(item => {\n item._tabIndex = \"-1\";\n });\n }\n\n get isGroupList(): boolean {\n return this.getItemsFromList().some(item => item.isGroup);\n }\n\n get ariaLabelModeText(): string {\n const defaultText = this.modeSingleSelect || this.modeRadioGroup\n ? ARIA_LABEL_LIST_SELECTABLE\n : ARIA_LABEL_LIST_MULTISELECTABLE;\n\n return this.accessibleName || translate(UDExList, defaultText);\n }\n\n get ariaLabelledBy(): string {\n return `${this._id}-mode-label`;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === UDExListMode.RadioGroup;\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === UDExListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === UDExListMode.SingleSelect;\n }\n\n get modeSingleContent(): boolean {\n return this.mode === UDExListMode.SingleContent;\n }\n\n get modeSelected(): boolean {\n return [UDExListMode.SingleSelect, UDExListMode.MultiSelect, UDExListMode.RadioGroup].includes(this.mode as UDExListMode);\n }\n\n get holderHeight(): string {\n return this.height ? this.height : \"auto\";\n }\n}\n\nUDExList.define();\n\nexport default UDExList;\nexport type { UDExListSelectionChangeEventDetail };\n"]}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../src/List.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport {\n isUp, isDown, isHome, isEnd, isRight, isLeft,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type UDExListItem from \"./ListItem.js\";\nimport type { UDExScrollIntoViewOptions } from \"./types/List.js\";\nimport { UDExListStyleType, UDExListMode } from \"./types/List.js\";\nimport type UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport type UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport type UDExUploadItem from \"./UploadItem.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ARIA_LABEL_LIST_MULTISELECTABLE, ARIA_LABEL_LIST_SELECTABLE } from \"./generated/i18n/i18n-defaults.js\";\nimport ListTemplate from \"./generated/templates/ListTemplate.lit.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport ListCss from \"./generated/themes/List.css.js\";\nimport isLetterKey from \"./utils/isLetterKeyPressed.js\";\nimport type { UDExListWithFirstLetterFocus } from \"./utils/ListWithFirstLetterFocus.js\";\nimport UDExFirstLetterFocusHandler from \"./utils/ListWithFirstLetterFocus.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\n\nexport type UDExListItemBase = UDExListItem & UDExListGroupHeader & UDExUploadItem;\n\ntype UDExListSelectionChangeEventDetail = {\n listItems: Array<UDExListItemBase>,\n selectedItems: Array<UDExListItemBase>,\n item: HTMLElement,\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-list</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/List.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-list\n * @public\n */\n@customElement({\n tag: \"udex-list\",\n renderer: litRender,\n styles: [ListCss, getEffectiveScrollbarStyle()],\n template: ListTemplate,\n dependencies: [],\n})\n\n/**\n * Fired when selection is changed by user interaction\n *\n * @public\n * @param {Array<UDExListItemBase>} listItems All items inside the list\n * @param {Array<UDExListItemBase>} selectedItems Currently selected items\n * @param {HTMLElement} item The item that triggered the event\n */\n@event(\"selection-change\", { bubbles: true })\n\nclass UDExList extends UI5Element {\n eventDetails!: {\n \"selection-change\": UDExListSelectionChangeEventDetail\n };\n /**\n * Defines the accessible role of the component.\n *\n * @default \"listbox\"\n * @public\n */\n @property()\n accessibleRole: string = \"listbox\";\n\n /**\n * Defines the accessible name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName: string = \"\";\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\n\n /**\n * Defines the type of the item.\n *\n * @default \"None\"\n * @public\n */\n @property()\n type: `${UDExListStyleType}` = UDExListStyleType.None;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines the controlled of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n controlled?: boolean;\n\n /**\n * Defines the headerText, displayed in the top of the list.\n *\n * @public\n */\n @property({ type: String })\n headerText?: string;\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed for each item of the list.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n itemIcon: string = \"\";\n\n /**\n * Enables tab navigation for the list.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n tabNavigationEnabled?: boolean;\n\n /**\n * Slot for list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExListItemBase>;\n\n /**\n * Defines the scroll behavior for the items of the component.\n *\n * @default undefined\n * @private\n */\n @property()\n _scrollIntoView?: `${UDExScrollIntoViewOptions}`;\n\n _focusHandler: UDExListWithFirstLetterFocus = new UDExFirstLetterFocusHandler();\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onBeforeRendering(): void {\n this.prepareListItemsMode();\n this._focusHandler.resetMatchingItems();\n this._focusHandler._focusableListItems = this.getKeyboardNavigationItems();\n }\n\n handleItemPress(e: CustomEvent): void {\n const clickedItem: UDExListItemBase = e.detail.item;\n this.onItemPress(clickedItem);\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (this.tabNavigationEnabled) {\n return;\n }\n\n if (isRight(e)) {\n this.handleArrowRight(e);\n }\n\n if (isLeft(e)) {\n this.handleArrowLeft(e);\n }\n\n if (isUp(e)) {\n this.handleUpArrow(e);\n }\n if (isDown(e)) {\n this.handleDownArrow(e);\n }\n if (isHome(e)) {\n this.handleHomeKey(e);\n }\n if (isEnd(e)) {\n this.handleEndKey(e);\n }\n if (isLetterKey(e.key)) {\n this.handleLetterKey(e);\n }\n }\n\n handleArrowRight(e: KeyboardEvent): void {\n const target = e.target as UDExListItemBase;\n if ((target.tagName === \"UDEX-LIST-GROUP-HEADER\" || target.tagName === \"UDEX-LIST-ITEM\") && target.hasAttribute(\"collapsible\")) {\n target.collapsed = false;\n this.setCollapsedItems(false, target);\n }\n }\n\n handleArrowLeft(e: KeyboardEvent): void {\n const target = e.target as UDExListItemBase;\n if ((target.tagName === \"UDEX-LIST-GROUP-HEADER\" || target.tagName === \"UDEX-LIST-ITEM\") && target.hasAttribute(\"collapsible\")) {\n target.collapsed = true;\n this.setCollapsedItems(true, target);\n }\n }\n\n handleUpArrow(e: KeyboardEvent): void {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const lastItemIndex = items.length - 1;\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n const isHeaderItem = items[previousSelectIndex].isGroup;\n const nonInteractiveHeader = items[previousSelectIndex].nonInteractive;\n\n if (nonInteractiveHeader && previousSelectIndex === 0) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, lastItemIndex);\n if (this._scrollIntoView) {\n this.scrollToItem(items[lastItemIndex]);\n }\n items[lastItemIndex].focus();\n return;\n }\n\n if (nonInteractiveHeader) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex - 1);\n if (this._scrollIntoView) {\n this.scrollToItem(items[previousSelectIndex - 1]);\n }\n items[previousSelectIndex - 1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex);\n if (this._scrollIntoView) {\n this.scrollToItem(items[previousSelectIndex]);\n }\n this.focusHeader(items[previousSelectIndex]);\n return;\n }\n\n if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[previousSelectIndex].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex);\n setTimeout(() => {\n if (this._scrollIntoView) {\n this.scrollToItem(items[previousSelectIndex]);\n }\n items[previousSelectIndex].focus();\n }, 0);\n }\n\n handleDownArrow(e: KeyboardEvent): void {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const nextSelectIndex = currentSelectedIndex + 1 > items.length - 1 ? 0 : currentSelectedIndex + 1;\n const isHeaderItem = items[nextSelectIndex].isGroup;\n const nonInteractiveHeader = items[nextSelectIndex].nonInteractive;\n\n if (nonInteractiveHeader) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex + 1);\n if (this._scrollIntoView) {\n this.scrollToItem(items[nextSelectIndex + 1]);\n }\n items[nextSelectIndex + 1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex);\n if (this._scrollIntoView) {\n this.scrollToItem(items[nextSelectIndex]);\n }\n this.focusHeader(items[nextSelectIndex]);\n return;\n }\n\n if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[nextSelectIndex].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex);\n setTimeout(() => {\n if (this._scrollIntoView) {\n this.scrollToItem(items[nextSelectIndex]);\n }\n items[nextSelectIndex].focus();\n }, 0);\n }\n\n handleHomeKey(e: KeyboardEvent): void {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const firstItem = items[0];\n const isHeaderItem = firstItem.isGroup;\n const nonInteractiveItem = firstItem.nonInteractive;\n\n if (nonInteractiveItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 1);\n items[1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 0);\n this.focusHeader(items[0]);\n return;\n }\n\n if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[0].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 0);\n items[0].focus();\n }\n\n handleEndKey(e: KeyboardEvent): void {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n\n if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[items.length - 1].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, items.length - 1);\n items[items.length - 1].focus();\n }\n\n handleLetterKey(e: KeyboardEvent): void {\n const letterKey = e.key;\n e.preventDefault();\n this._focusHandler.focusMatchingListItem(letterKey);\n }\n\n onItemPress(clickedItem: UDExListItemBase): void {\n if (this.modeSingleSelect && !this.controlled) {\n this.revertSelectedItems(this.getSelectedItems());\n clickedItem.selected = true;\n }\n\n if (this.modeRadioGroup && !this.controlled) {\n const groupHeader = clickedItem.parentElement as UDExListGroupHeaderBase;\n const groupItems = groupHeader.getItems() as Array<UDExListItemBase>;\n this.revertSelectedItems(groupItems);\n clickedItem.selected = true;\n }\n\n if (!this.tabNavigationEnabled) {\n this.resetTabIndexes();\n clickedItem._tabIndex = \"0\";\n }\n\n this.fireDecoratorEvent(\"selection-change\", {\n listItems: this.getItemsFromList(),\n selectedItems: this.getSelectedItems(),\n item: clickedItem,\n });\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>): void {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n focusSelectedItem(): void {\n const selectedItemIndex = this.items.findIndex(item => item.selected);\n this.resetTabIndexes();\n if (selectedItemIndex !== -1 && this.modeSingleSelect) {\n this.setTabIndexByIndex(this.items, selectedItemIndex);\n }\n }\n\n focusHeader(item: UDExListItemBase): void {\n const header = item.shadowRoot?.querySelector(\".udex-list__group-header-wrap\") as HTMLElement;\n header.focus();\n }\n\n scrollToItem(item: UDExListItemBase): void {\n item.scrollIntoView({ block: this._scrollIntoView?.toLowerCase() as ScrollLogicalPosition });\n }\n\n unsetTabIndexByIndex(items: UDExListItemBase[], index: number): void {\n items[index]._tabIndex = \"-1\";\n }\n\n setTabIndexByIndex(items: UDExListItemBase[], index: number): void {\n items[index]._tabIndex = \"0\";\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n getSelectedItems(): Array<UDExListItemBase> {\n return this.getItemsFromList().filter(item => item.selected);\n }\n\n getCurrentIndex(items: Array<UDExListItemBase | HTMLElement>, item: UDExListItemBase | HTMLElement): number {\n return items.indexOf(item);\n }\n\n getKeyboardNavigationItems(): Array<UDExListItemBase> {\n return this.getItemsFromList().filter(item => {\n const parent = item.parentElement as UDExListItemBase;\n return !item.disabled\n && (!item.isGroup || item.modeMultiSelect || item.collapsible)\n && !(parent?.isGroup && parent.collapsed);\n });\n }\n\n getItemsFromList(): Array<UDExListItemBase> {\n const items: UDExListItemBase[] = [];\n const slottedItems = this.getItems();\n\n slottedItems.forEach(item => {\n const childItems = item.isGroup ? item.children : [];\n items.push(item, ...childItems as UDExListItemBase[]);\n });\n\n return items;\n }\n\n prepareListItemsMode(): void {\n this.getItemsFromList().forEach((item, index) => {\n item.mode = this.mode;\n item.controlled = this.controlled;\n item.type = this.type;\n item._icon = this.itemIcon;\n item._tabIndex = this.getTabIndex(index, item);\n });\n }\n\n getTabIndex(index: number, item: UDExListItemBase): string {\n if (this.tabNavigationEnabled) {\n return \"0\";\n }\n\n const isFirstItem = this.modeSelected && index === 0;\n const isFirstItemInGroupList = this.isGroupList && index === 1;\n const listGroupHeader = item.closest(\"[udex-list-group-header]\") as UDExListGroupHeader;\n const modeSingleOrRadio = this.modeSingleSelect || this.modeRadioGroup;\n const isFirstHeader = item.isGroup && isFirstItem;\n const isFirstHeaderMultiMode = isFirstHeader && this.modeMultiSelect && !item.nonInteractive;\n const isFirstItemGroupSingleOrRadioMode = isFirstItemInGroupList && modeSingleOrRadio;\n const isFirstItemGroupMultiMode = isFirstItemInGroupList && this.modeMultiSelect && listGroupHeader?.nonInteractive;\n const isCollapsibleHeader = item.isGroup && item.collapsible;\n\n if (isFirstHeaderMultiMode || isFirstItemGroupSingleOrRadioMode || isFirstItemGroupMultiMode || isFirstItem || isCollapsibleHeader) {\n return \"0\";\n }\n\n return \"-1\";\n }\n\n resetTabIndexes(): void {\n this.getItemsFromList().forEach(item => {\n item._tabIndex = \"-1\";\n });\n }\n\n setCollapsedItems(collapsed: boolean, target: UDExListItemBase): void {\n const items = target.getSlottedNodes<UDExListItemBase>(\"items\");\n items.forEach(item => {\n if (collapsed) {\n item.setAttribute(\"collapsed\", \"\");\n } else {\n item.removeAttribute(\"collapsed\");\n }\n });\n }\n\n get isGroupList(): boolean {\n return this.getItemsFromList().some(item => item.isGroup);\n }\n\n get ariaLabelModeText(): string {\n const defaultText = this.modeSingleSelect || this.modeRadioGroup\n ? ARIA_LABEL_LIST_SELECTABLE\n : ARIA_LABEL_LIST_MULTISELECTABLE;\n\n return this.accessibleName || translate(UDExList, defaultText);\n }\n\n get ariaLabelledBy(): string {\n return `${this._id}-mode-label`;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === UDExListMode.RadioGroup;\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === UDExListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === UDExListMode.SingleSelect;\n }\n\n get modeSingleContent(): boolean {\n return this.mode === UDExListMode.SingleContent;\n }\n\n get modeSelected(): boolean {\n return [UDExListMode.SingleSelect, UDExListMode.MultiSelect, UDExListMode.RadioGroup].includes(this.mode as UDExListMode);\n }\n\n get holderHeight(): string {\n return this.height ? this.height : \"auto\";\n }\n}\n\nUDExList.define();\n\nexport default UDExList;\nexport type { UDExListSelectionChangeEventDetail };\n"]}
@@ -1,3 +1,4 @@
1
+ import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
1
2
  import UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
2
3
  import type { UDExListItemBaseEvents } from "./ListItemBase.js";
3
4
  type UDExListGroupHeaderBaseHeaderPressEventDetail = {
@@ -28,8 +29,11 @@ declare class UDExListGroupHeader extends UDExListGroupHeaderBase {
28
29
  } & UDExListItemBaseEvents;
29
30
  handleHeaderPress(): void;
30
31
  handleKeyDownPress(e: KeyboardEvent): void;
32
+ handleKeyDown(e: KeyboardEvent): void;
31
33
  fireHeaderPress(): void;
32
34
  getHandleGroupItemsClick(): void;
35
+ setCollapsedItems(): void;
36
+ handleCollapseIconClick(e: MouseEvent | KeyboardEvent): void;
33
37
  get sizeClass(): string;
34
38
  }
35
39
  export default UDExListGroupHeader;
@@ -7,8 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
8
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
9
9
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
10
- import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
10
+ import { isEnter, isLeft, isRight, isSpace, } from "@ui5/webcomponents-base/dist/Keys.js";
11
11
  import Icon from "@ui5/webcomponents/dist/Icon.js";
12
+ import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
12
13
  import UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
13
14
  import ListGroupHeaderTemplate from "./generated/templates/ListGroupHeaderTemplate.lit.js";
14
15
  import { UDExListItemSize } from "./types/List.js";
@@ -49,6 +50,11 @@ let UDExListGroupHeader = class UDExListGroupHeader extends UDExListGroupHeaderB
49
50
  this.handleHeaderPress();
50
51
  }
51
52
  }
53
+ handleKeyDown(e) {
54
+ if (isRight(e) || isLeft(e)) {
55
+ this.handleCollapseIconClick(e);
56
+ }
57
+ }
52
58
  fireHeaderPress() {
53
59
  this.fireDecoratorEvent("header-press", {
54
60
  item: this,
@@ -58,6 +64,25 @@ let UDExListGroupHeader = class UDExListGroupHeader extends UDExListGroupHeaderB
58
64
  const hasHandle = this.modeMultiSelect && !this.controlled;
59
65
  return hasHandle ? this.handleHeaderState() : undefined;
60
66
  }
67
+ setCollapsedItems() {
68
+ const items = this.getSlottedNodes("items");
69
+ items.forEach(item => {
70
+ if (this.collapsed) {
71
+ item.setAttribute("collapsed", "");
72
+ }
73
+ else {
74
+ item.removeAttribute("collapsed");
75
+ }
76
+ });
77
+ }
78
+ handleCollapseIconClick(e) {
79
+ e.stopPropagation();
80
+ e.preventDefault();
81
+ this.setContentHeight();
82
+ this.collapsed = !this.collapsed;
83
+ this.setCollapsedItems();
84
+ this.fireDecoratorEvent("accordion-icon-click", { collapsed: this.collapsed });
85
+ }
61
86
  get sizeClass() {
62
87
  return this.size === UDExListItemSize.Large ? listGroupLargeClass : "";
63
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ListGroupHeader.js","sourceRoot":"","sources":["../src/ListGroupHeader.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,uBAAuB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,uBAAuB,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,SAAS;AACT,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAE3E,MAAM,mBAAmB,GAAW,wBAAwB,CAAC;AAM7D;;;;;;;;;;;;;;;;;;GAkBG;AAiBH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,uBAAuB;IAKvD,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB,CAAC,CAAgB;QACjC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,CAAC,CAAC,cAAc,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;YACtC,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;CACF,CAAA;AAnCK,mBAAmB;IAhBxB,aAAa,CAAC;QACb,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,uBAAuB;QACjC,YAAY,EAAE,CAAC,IAAI,CAAC;KACrB,CAAC;IAEF;;;;;SAKK;;IACJ,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAEnC,mBAAmB,CAmCxB;AAED,mBAAmB,CAAC,MAAM,EAAE,CAAC;AAE7B,eAAe,mBAAmB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport ListGroupHeaderTemplate from \"./generated/templates/ListGroupHeaderTemplate.lit.js\";\nimport { UDExListItemSize } from \"./types/List.js\";\nimport type { UDExListItemBaseEvents } from \"./ListItemBase.js\";\n\n// Styles\nimport ListGroupHeaderCss from \"./generated/themes/ListGroupHeader.css.js\";\n\nconst listGroupLargeClass: string = \"udex-list__group_large\";\n\ntype UDExListGroupHeaderBaseHeaderPressEventDetail = {\n item: HTMLElement,\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-list-group-header</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/ListGroupHeader.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListGroupHeaderBase\n * @tagname udex-list-group-header\n * @public\n */\n@customElement({\n tag: \"udex-list-group-header\",\n renderer: litRender,\n styles: ListGroupHeaderCss,\n template: ListGroupHeaderTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Fired when selectable group header is pressed\n *\n * @public\n * @param {HTMLElement} item The pressed group header item\n */\n@event(\"header-press\", { bubbles: true })\n\nclass UDExListGroupHeader extends UDExListGroupHeaderBase {\n eventDetails!: {\n \"header-press\": UDExListGroupHeaderBaseHeaderPressEventDetail,\n } & UDExListItemBaseEvents;\n\n handleHeaderPress() {\n if (!this.controlled) {\n this.handleSelectionGroupState();\n }\n this.fireHeaderPress();\n }\n\n handleKeyDownPress(e: KeyboardEvent) {\n if (isSpace(e)) {\n e.preventDefault();\n }\n if (isSpace(e) || isEnter(e)) {\n this.handleHeaderPress();\n }\n }\n\n fireHeaderPress() {\n this.fireDecoratorEvent(\"header-press\", {\n item: this,\n });\n }\n\n getHandleGroupItemsClick() {\n const hasHandle = this.modeMultiSelect && !this.controlled;\n return hasHandle ? this.handleHeaderState() : undefined;\n }\n\n get sizeClass(): string {\n return this.size === UDExListItemSize.Large ? listGroupLargeClass : \"\";\n }\n}\n\nUDExListGroupHeader.define();\n\nexport default UDExListGroupHeader;\nexport type { UDExListGroupHeaderBaseHeaderPressEventDetail };\n"]}
1
+ {"version":3,"file":"ListGroupHeader.js","sourceRoot":"","sources":["../src/ListGroupHeader.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport {\n isEnter, isLeft, isRight, isSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport ListGroupHeaderTemplate from \"./generated/templates/ListGroupHeaderTemplate.lit.js\";\nimport { UDExListItemSize } from \"./types/List.js\";\nimport type { UDExListItemBaseEvents } from \"./ListItemBase.js\";\nimport type UDExListItemBase from \"./ListItemBase.js\";\n\n// Styles\nimport ListGroupHeaderCss from \"./generated/themes/ListGroupHeader.css.js\";\n\nconst listGroupLargeClass: string = \"udex-list__group_large\";\n\ntype UDExListGroupHeaderBaseHeaderPressEventDetail = {\n item: HTMLElement,\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-list-group-header</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/ListGroupHeader.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListGroupHeaderBase\n * @tagname udex-list-group-header\n * @public\n */\n@customElement({\n tag: \"udex-list-group-header\",\n renderer: litRender,\n styles: ListGroupHeaderCss,\n template: ListGroupHeaderTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Fired when selectable group header is pressed\n *\n * @public\n * @param {HTMLElement} item The pressed group header item\n */\n@event(\"header-press\", { bubbles: true })\n\nclass UDExListGroupHeader extends UDExListGroupHeaderBase {\n eventDetails!: {\n \"header-press\": UDExListGroupHeaderBaseHeaderPressEventDetail,\n } & UDExListItemBaseEvents;\n\n handleHeaderPress() {\n if (!this.controlled) {\n this.handleSelectionGroupState();\n }\n this.fireHeaderPress();\n }\n\n handleKeyDownPress(e: KeyboardEvent) {\n if (isSpace(e)) {\n e.preventDefault();\n }\n if (isSpace(e) || isEnter(e)) {\n this.handleHeaderPress();\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (isRight(e) || isLeft(e)) {\n this.handleCollapseIconClick(e);\n }\n }\n\n fireHeaderPress() {\n this.fireDecoratorEvent(\"header-press\", {\n item: this,\n });\n }\n\n getHandleGroupItemsClick() {\n const hasHandle = this.modeMultiSelect && !this.controlled;\n return hasHandle ? this.handleHeaderState() : undefined;\n }\n\n setCollapsedItems(): void {\n const items = this.getSlottedNodes<UDExListItemBase>(\"items\");\n items.forEach(item => {\n if (this.collapsed) {\n item.setAttribute(\"collapsed\", \"\");\n } else {\n item.removeAttribute(\"collapsed\");\n }\n });\n }\n\n handleCollapseIconClick(e: MouseEvent | KeyboardEvent) {\n e.stopPropagation();\n e.preventDefault();\n this.setContentHeight();\n this.collapsed = !this.collapsed;\n this.setCollapsedItems();\n this.fireDecoratorEvent(\"accordion-icon-click\", { collapsed: this.collapsed });\n }\n\n get sizeClass(): string {\n return this.size === UDExListItemSize.Large ? listGroupLargeClass : \"\";\n }\n}\n\nUDExListGroupHeader.define();\n\nexport default UDExListGroupHeader;\nexport type { UDExListGroupHeaderBaseHeaderPressEventDetail };\n"]}
@@ -138,7 +138,7 @@ let UDExListGroupHeaderBase = class UDExListGroupHeaderBase extends UDExListItem
138
138
  }
139
139
  get className() {
140
140
  const controlledClassName = this.controlled ? `${listGroupHeaderClass}_controlled` : "";
141
- return `${listGroupHeaderClass} ${this._additionalClassName} ${controlledClassName}`;
141
+ return `${listGroupHeaderClass} ${this._additionalClassName} ${controlledClassName} ${listGroupHeaderClass}-wrap`;
142
142
  }
143
143
  get listItem() {
144
144
  return this.shadowRoot.querySelector("[udex-list-item]");
@@ -1 +1 @@
1
- {"version":3,"file":"ListGroupHeaderBase.js","sourceRoot":"","sources":["../src/ListGroupHeaderBase.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\n\nconst listGroupHeaderClass: string = \"udex-list__group-header\";\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExListGroupHeader</code> and <code>UDExFilterMenuGroupHeader</code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListItemBase\n * @public\n */\n@customElement({\n languageAware: true,\n renderer: litRender,\n})\n\nclass UDExListGroupHeaderBase extends UDExListItemBase {\n /**\n * Defines non-interactive the group header.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n nonInteractive!: boolean;\n\n @property({ type: String })\n _additionalClassName!: string;\n\n /**\n * Slot for group header list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: UDExListItemBase, \"default\": true })\n items!: Array<UDExListItemBase>;\n\n handleSelectionGroupState() {\n const isAnyEnabledOption = this.isAnyEnabledOption();\n\n if (!isAnyEnabledOption) {\n return;\n }\n\n const isAllSelectedGroupState = this.isAllSelected();\n const isIndeterminateGroupState = this.indeterminate;\n\n if (isAllSelectedGroupState) {\n this.processGroupDeselectAll();\n } else if (isIndeterminateGroupState) {\n this.toggleIndeterminateGroupState();\n } else {\n this.processGroupSelectAll();\n }\n }\n\n processGroupDeselectAll() {\n const isAnySelectedOptionDisabled = this.isAnySelectedOptionDisabled();\n\n this.setAllItems(false);\n\n if (isAnySelectedOptionDisabled) {\n this.activateHeaderIndeterminate();\n } else {\n this.deactivateHeader();\n }\n }\n\n toggleIndeterminateGroupState() {\n const isEachEnabledOptionSelected = this.isEachEnabledOptionSelected();\n\n if (isEachEnabledOptionSelected) {\n this.processGroupDeselectAll();\n } else {\n this.processGroupSelectAll();\n }\n }\n\n processGroupSelectAll() {\n const isAnyNotSelectedOptionDisabled = this.isAnyNotSelectedOptionDisabled();\n\n this.setAllItems(true);\n\n if (isAnyNotSelectedOptionDisabled) {\n this.activateHeaderIndeterminate();\n } else {\n this.activateHeader();\n }\n }\n\n handleHeaderState() {\n const isAllSelected = this.isAllSelected();\n const isAllDeselected = this.isAllDeselected();\n\n if (isAllDeselected) {\n this.deactivateHeader();\n return;\n }\n\n if (isAllSelected) {\n this.activateHeader();\n return;\n }\n\n this.activateHeaderIndeterminate();\n }\n\n activateHeaderIndeterminate() {\n this.selected = true;\n this.indeterminate = true;\n }\n\n activateHeader() {\n this.indeterminate = false;\n this.selected = true;\n }\n\n deactivateHeader() {\n this.selected = false;\n this.indeterminate = false;\n }\n\n setAllItems(value: boolean) {\n this.getItems().forEach(item => {\n if (!item.disabled) {\n item.selected = value;\n }\n });\n }\n\n isAllSelected(): boolean {\n return this.getItems().every(({ selected }) => selected);\n }\n\n isAllDeselected(): boolean {\n return this.getItems().every(({ selected }) => !selected);\n }\n\n isEachEnabledOptionSelected(): boolean {\n return this.getItems().every(item => item.disabled || item.selected);\n }\n\n isAnyNotSelectedOptionDisabled(): boolean {\n return this.getItems().some(item => !item.selected && item.disabled);\n }\n\n isAnySelected(): boolean {\n return this.getItems().some(item => item.selected);\n }\n\n isAnySelectedOptionDisabled(): boolean {\n return this.getItems().some(({ disabled, selected }) => disabled && selected);\n }\n\n isAnyEnabledOption(): boolean {\n return this.getItems().some(({ disabled }) => !disabled);\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n get isGroup(): boolean {\n return true;\n }\n\n get isSelectAllHeader(): boolean {\n return false;\n }\n\n get isFilterMenuSelectAllHeader(): boolean {\n return false;\n }\n\n get isNonActiveHeader(): boolean {\n return this.nonInteractive || this.modeRadioGroup;\n }\n\n get className(): string {\n const controlledClassName = this.controlled ? `${listGroupHeaderClass}_controlled` : \"\";\n return `${listGroupHeaderClass} ${this._additionalClassName} ${controlledClassName}`;\n }\n\n get listItem(): UDExListItemBase {\n return this.shadowRoot!.querySelector<UDExListItemBase>(\"[udex-list-item]\")!;\n }\n}\n\nexport default UDExListGroupHeaderBase;\n"]}
1
+ {"version":3,"file":"ListGroupHeaderBase.js","sourceRoot":"","sources":["../src/ListGroupHeaderBase.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\n\nconst listGroupHeaderClass: string = \"udex-list__group-header\";\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExListGroupHeader</code> and <code>UDExFilterMenuGroupHeader</code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListItemBase\n * @public\n */\n@customElement({\n languageAware: true,\n renderer: litRender,\n})\n\nclass UDExListGroupHeaderBase extends UDExListItemBase {\n /**\n * Defines non-interactive the group header.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n nonInteractive!: boolean;\n\n @property({ type: String })\n _additionalClassName!: string;\n\n /**\n * Slot for group header list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: UDExListItemBase, \"default\": true })\n items!: Array<UDExListItemBase>;\n\n handleSelectionGroupState() {\n const isAnyEnabledOption = this.isAnyEnabledOption();\n\n if (!isAnyEnabledOption) {\n return;\n }\n\n const isAllSelectedGroupState = this.isAllSelected();\n const isIndeterminateGroupState = this.indeterminate;\n\n if (isAllSelectedGroupState) {\n this.processGroupDeselectAll();\n } else if (isIndeterminateGroupState) {\n this.toggleIndeterminateGroupState();\n } else {\n this.processGroupSelectAll();\n }\n }\n\n processGroupDeselectAll() {\n const isAnySelectedOptionDisabled = this.isAnySelectedOptionDisabled();\n\n this.setAllItems(false);\n\n if (isAnySelectedOptionDisabled) {\n this.activateHeaderIndeterminate();\n } else {\n this.deactivateHeader();\n }\n }\n\n toggleIndeterminateGroupState() {\n const isEachEnabledOptionSelected = this.isEachEnabledOptionSelected();\n\n if (isEachEnabledOptionSelected) {\n this.processGroupDeselectAll();\n } else {\n this.processGroupSelectAll();\n }\n }\n\n processGroupSelectAll() {\n const isAnyNotSelectedOptionDisabled = this.isAnyNotSelectedOptionDisabled();\n\n this.setAllItems(true);\n\n if (isAnyNotSelectedOptionDisabled) {\n this.activateHeaderIndeterminate();\n } else {\n this.activateHeader();\n }\n }\n\n handleHeaderState() {\n const isAllSelected = this.isAllSelected();\n const isAllDeselected = this.isAllDeselected();\n\n if (isAllDeselected) {\n this.deactivateHeader();\n return;\n }\n\n if (isAllSelected) {\n this.activateHeader();\n return;\n }\n\n this.activateHeaderIndeterminate();\n }\n\n activateHeaderIndeterminate() {\n this.selected = true;\n this.indeterminate = true;\n }\n\n activateHeader() {\n this.indeterminate = false;\n this.selected = true;\n }\n\n deactivateHeader() {\n this.selected = false;\n this.indeterminate = false;\n }\n\n setAllItems(value: boolean) {\n this.getItems().forEach(item => {\n if (!item.disabled) {\n item.selected = value;\n }\n });\n }\n\n isAllSelected(): boolean {\n return this.getItems().every(({ selected }) => selected);\n }\n\n isAllDeselected(): boolean {\n return this.getItems().every(({ selected }) => !selected);\n }\n\n isEachEnabledOptionSelected(): boolean {\n return this.getItems().every(item => item.disabled || item.selected);\n }\n\n isAnyNotSelectedOptionDisabled(): boolean {\n return this.getItems().some(item => !item.selected && item.disabled);\n }\n\n isAnySelected(): boolean {\n return this.getItems().some(item => item.selected);\n }\n\n isAnySelectedOptionDisabled(): boolean {\n return this.getItems().some(({ disabled, selected }) => disabled && selected);\n }\n\n isAnyEnabledOption(): boolean {\n return this.getItems().some(({ disabled }) => !disabled);\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n get isGroup(): boolean {\n return true;\n }\n\n get isSelectAllHeader(): boolean {\n return false;\n }\n\n get isFilterMenuSelectAllHeader(): boolean {\n return false;\n }\n\n get isNonActiveHeader(): boolean {\n return this.nonInteractive || this.modeRadioGroup;\n }\n\n get className(): string {\n const controlledClassName = this.controlled ? `${listGroupHeaderClass}_controlled` : \"\";\n return `${listGroupHeaderClass} ${this._additionalClassName} ${controlledClassName} ${listGroupHeaderClass}-wrap`;\n }\n\n get listItem(): UDExListItemBase {\n return this.shadowRoot!.querySelector<UDExListItemBase>(\"[udex-list-item]\")!;\n }\n}\n\nexport default UDExListGroupHeaderBase;\n"]}