@sapudex/web-components 0.173.0 → 0.184.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 (235) hide show
  1. package/bundle.esm.js +1 -1
  2. package/dist/Accordion.js +2 -1
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/AccordionItem.d.ts +0 -1
  5. package/dist/AccordionItem.js +2 -2
  6. package/dist/AccordionItem.js.map +1 -1
  7. package/dist/Badge.js +2 -1
  8. package/dist/Badge.js.map +1 -1
  9. package/dist/Breadcrumbs.d.ts +7 -7
  10. package/dist/Breadcrumbs.js +3 -3
  11. package/dist/Breadcrumbs.js.map +1 -1
  12. package/dist/CountrySelector.js +5 -5
  13. package/dist/CountrySelector.js.map +1 -1
  14. package/dist/DatePicker.d.ts +53 -26
  15. package/dist/DatePicker.js +205 -39
  16. package/dist/DatePicker.js.map +1 -1
  17. package/dist/FilterMenu.d.ts +4 -6
  18. package/dist/FilterMenu.js +10 -10
  19. package/dist/FilterMenu.js.map +1 -1
  20. package/dist/Footer.js +6 -2
  21. package/dist/Footer.js.map +1 -1
  22. package/dist/HeroBanner.d.ts +0 -1
  23. package/dist/HeroBanner.js +2 -1
  24. package/dist/HeroBanner.js.map +1 -1
  25. package/dist/Link.js +2 -0
  26. package/dist/Link.js.map +1 -1
  27. package/dist/ListSelectAll.js +2 -0
  28. package/dist/ListSelectAll.js.map +1 -1
  29. package/dist/MastheadItem.js +2 -2
  30. package/dist/MastheadItem.js.map +1 -1
  31. package/dist/MastheadMenu.js +1 -1
  32. package/dist/MastheadMenu.js.map +1 -1
  33. package/dist/MastheadMobileMenu.js +1 -1
  34. package/dist/MastheadMobileMenu.js.map +1 -1
  35. package/dist/MastheadShell.d.ts +1 -0
  36. package/dist/MastheadShell.js +20 -1
  37. package/dist/MastheadShell.js.map +1 -1
  38. package/dist/MediaPlayer.js +2 -2
  39. package/dist/MediaPlayer.js.map +1 -1
  40. package/dist/MessageStrip.js +2 -1
  41. package/dist/MessageStrip.js.map +1 -1
  42. package/dist/RadioButton.js +0 -1
  43. package/dist/RadioButton.js.map +1 -1
  44. package/dist/Search.d.ts +15 -1
  45. package/dist/Search.js +62 -16
  46. package/dist/Search.js.map +1 -1
  47. package/dist/SearchableListBase.js +3 -3
  48. package/dist/SearchableListBase.js.map +1 -1
  49. package/dist/SecondaryNavigation.js +1 -1
  50. package/dist/SecondaryNavigation.js.map +1 -1
  51. package/dist/SecondaryNavigationItem.js +1 -1
  52. package/dist/SecondaryNavigationItem.js.map +1 -1
  53. package/dist/SelectBox.d.ts +3 -3
  54. package/dist/SelectBox.js +6 -6
  55. package/dist/SelectBox.js.map +1 -1
  56. package/dist/SideNavigationMobile.js +1 -1
  57. package/dist/SideNavigationMobile.js.map +1 -1
  58. package/dist/StepInput.js +1 -1
  59. package/dist/StepInput.js.map +1 -1
  60. package/dist/TabNavigation.d.ts +4 -5
  61. package/dist/TabNavigation.js +16 -14
  62. package/dist/TabNavigation.js.map +1 -1
  63. package/dist/Table.js +2 -2
  64. package/dist/Table.js.map +1 -1
  65. package/dist/assets/{css_variables-a92ef9ad.css → bundle-c5e3cbf2.css} +1 -1
  66. package/dist/assets/{bundle.esm-c4ffd46a.js → bundle.esm-d98e72b5.js} +184 -184
  67. package/dist/assets/parameters-bundle.css-beef06a9.js +2 -0
  68. package/dist/css/themes/AccordionItem.css +1 -1
  69. package/dist/css/themes/Button.css +1 -1
  70. package/dist/css/themes/CountrySelector.css +1 -1
  71. package/dist/css/themes/ListItem.css +1 -1
  72. package/dist/css/themes/MastheadMenu.css +1 -1
  73. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  74. package/dist/css/themes/MastheadProfileMenu.css +1 -1
  75. package/dist/css/themes/MessageStrip.css +1 -1
  76. package/dist/css/themes/Pagination.css +1 -1
  77. package/dist/css/themes/PhoneNumberField.css +1 -1
  78. package/dist/css/themes/RatingIndicator.css +1 -1
  79. package/dist/css/themes/Review.css +1 -1
  80. package/dist/css/themes/ReviewItem.css +1 -1
  81. package/dist/css/themes/Search.css +1 -1
  82. package/dist/css/themes/SearchSuggestions.css +1 -1
  83. package/dist/css/themes/SegmentedButton.css +1 -1
  84. package/dist/css/themes/SideNavigationMobileDropdown.css +1 -1
  85. package/dist/css/themes/Slider.css +1 -1
  86. package/dist/css/themes/StepInput.css +1 -1
  87. package/dist/css/themes/TabNavigation.css +1 -1
  88. package/dist/css/themes/Table.css +1 -1
  89. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  90. package/dist/custom-elements-internal.json +67 -49
  91. package/dist/custom-elements.json +62 -46
  92. package/dist/features/SearchSuggestionsPopover.d.ts +1 -1
  93. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  94. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
  95. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
  96. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
  97. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
  98. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  99. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  100. package/dist/generated/templates/FilterMenuTemplate.lit.js +2 -2
  101. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  102. package/dist/generated/templates/SearchTemplate.lit.js +2 -2
  103. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  104. package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
  105. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  106. package/dist/generated/themes/AccordionItem.css.js +1 -1
  107. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  108. package/dist/generated/themes/Button.css.js +1 -1
  109. package/dist/generated/themes/Button.css.js.map +1 -1
  110. package/dist/generated/themes/CountrySelector.css.js +1 -1
  111. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  112. package/dist/generated/themes/ListItem.css.js +1 -1
  113. package/dist/generated/themes/ListItem.css.js.map +1 -1
  114. package/dist/generated/themes/MastheadMenu.css.js +1 -1
  115. package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
  116. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  117. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  118. package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
  119. package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
  120. package/dist/generated/themes/MessageStrip.css.js +1 -1
  121. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  122. package/dist/generated/themes/Pagination.css.js +1 -1
  123. package/dist/generated/themes/Pagination.css.js.map +1 -1
  124. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  125. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  126. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  127. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  128. package/dist/generated/themes/Review.css.js +1 -1
  129. package/dist/generated/themes/Review.css.js.map +1 -1
  130. package/dist/generated/themes/ReviewItem.css.js +1 -1
  131. package/dist/generated/themes/ReviewItem.css.js.map +1 -1
  132. package/dist/generated/themes/Search.css.js +1 -1
  133. package/dist/generated/themes/Search.css.js.map +1 -1
  134. package/dist/generated/themes/SearchSuggestions.css.js +1 -1
  135. package/dist/generated/themes/SearchSuggestions.css.js.map +1 -1
  136. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  137. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  138. package/dist/generated/themes/SideNavigationMobileDropdown.css.js +1 -1
  139. package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +1 -1
  140. package/dist/generated/themes/Slider.css.js +1 -1
  141. package/dist/generated/themes/Slider.css.js.map +1 -1
  142. package/dist/generated/themes/StepInput.css.js +1 -1
  143. package/dist/generated/themes/StepInput.css.js.map +1 -1
  144. package/dist/generated/themes/TabNavigation.css.js +1 -1
  145. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  146. package/dist/generated/themes/Table.css.js +1 -1
  147. package/dist/generated/themes/Table.css.js.map +1 -1
  148. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  149. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  150. package/dist/vscode.html-custom-data.json +2 -12
  151. package/dist/web-types.json +19 -23
  152. package/package.json +8 -8
  153. package/src/Accordion.ts +2 -1
  154. package/src/AccordionItem.ts +2 -2
  155. package/src/Badge.ts +2 -1
  156. package/src/Breadcrumbs.hbs +3 -3
  157. package/src/Breadcrumbs.ts +14 -14
  158. package/src/BreadcrumbsPopover.hbs +1 -1
  159. package/src/CountrySelector.ts +5 -5
  160. package/src/DatePicker.hbs +4 -5
  161. package/src/DatePicker.ts +257 -64
  162. package/src/DatePickerPopover.hbs +2 -2
  163. package/src/FilterMenu.hbs +2 -1
  164. package/src/FilterMenu.ts +13 -14
  165. package/src/Footer.ts +6 -2
  166. package/src/HeroBanner.ts +2 -1
  167. package/src/Link.ts +2 -0
  168. package/src/ListSelectAll.ts +2 -0
  169. package/src/MastheadItem.ts +2 -2
  170. package/src/MastheadMenu.ts +1 -1
  171. package/src/MastheadMobileMenu.ts +1 -1
  172. package/src/MastheadShell.ts +24 -1
  173. package/src/MediaPlayer.ts +2 -2
  174. package/src/MessageStrip.ts +2 -1
  175. package/src/RadioButton.ts +0 -1
  176. package/src/Search.hbs +3 -3
  177. package/src/Search.ts +82 -21
  178. package/src/SearchableListBase.ts +3 -3
  179. package/src/SecondaryNavigation.ts +1 -1
  180. package/src/SecondaryNavigationItem.ts +1 -1
  181. package/src/SelectBox.ts +9 -9
  182. package/src/SideNavigationMobile.ts +1 -1
  183. package/src/StepInput.ts +1 -1
  184. package/src/TabHeader.hbs +2 -2
  185. package/src/TabNavigation.ts +19 -18
  186. package/src/Table.ts +2 -2
  187. package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +1 -1
  188. package/src/generated/templates/DatePickerPopoverTemplate.lit.ts +1 -1
  189. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  190. package/src/generated/templates/FilterMenuTemplate.lit.ts +2 -2
  191. package/src/generated/templates/SearchTemplate.lit.ts +2 -2
  192. package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
  193. package/src/generated/themes/AccordionItem.css.ts +1 -1
  194. package/src/generated/themes/Button.css.ts +1 -1
  195. package/src/generated/themes/CountrySelector.css.ts +1 -1
  196. package/src/generated/themes/ListItem.css.ts +1 -1
  197. package/src/generated/themes/MastheadMenu.css.ts +1 -1
  198. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  199. package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
  200. package/src/generated/themes/MessageStrip.css.ts +1 -1
  201. package/src/generated/themes/Pagination.css.ts +1 -1
  202. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  203. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  204. package/src/generated/themes/Review.css.ts +1 -1
  205. package/src/generated/themes/ReviewItem.css.ts +1 -1
  206. package/src/generated/themes/Search.css.ts +1 -1
  207. package/src/generated/themes/SearchSuggestions.css.ts +1 -1
  208. package/src/generated/themes/SegmentedButton.css.ts +1 -1
  209. package/src/generated/themes/SideNavigationMobileDropdown.css.ts +1 -1
  210. package/src/generated/themes/Slider.css.ts +1 -1
  211. package/src/generated/themes/StepInput.css.ts +1 -1
  212. package/src/generated/themes/TabNavigation.css.ts +1 -1
  213. package/src/generated/themes/Table.css.ts +1 -1
  214. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  215. package/src/themes/AccordionItem.css +2 -2
  216. package/src/themes/Button.css +5 -5
  217. package/src/themes/CountrySelector.css +14 -14
  218. package/src/themes/ListItem.css +1 -1
  219. package/src/themes/MastheadMenu.css +2 -2
  220. package/src/themes/MastheadMobileMenu.css +2 -2
  221. package/src/themes/MastheadProfileMenu.css +2 -2
  222. package/src/themes/MessageStrip.css +6 -6
  223. package/src/themes/Pagination.css +2 -1
  224. package/src/themes/PhoneNumberField.css +2 -2
  225. package/src/themes/Review.css +1 -1
  226. package/src/themes/ReviewItem.css +1 -1
  227. package/src/themes/Search.css +34 -4
  228. package/src/themes/SearchSuggestions.css +16 -0
  229. package/src/themes/SegmentedButton.css +1 -1
  230. package/src/themes/SelectBox.css +1 -1
  231. package/src/themes/SideNavigationMobileDropdown.css +1 -1
  232. package/src/themes/StepInput.css +5 -5
  233. package/src/themes/TabNavigation.css +17 -12
  234. package/src/themes/Table.css +5 -5
  235. package/dist/assets/parameters-bundle.css-07457fce.js +0 -2
@@ -49,7 +49,7 @@ let UDExSideNavigationMobile = class UDExSideNavigationMobile extends UI5Element
49
49
  }
50
50
  async _getResponsePopover() {
51
51
  const staticAreaItem = await this.getStaticAreaItemDomRef();
52
- return staticAreaItem.querySelector(`udex-dropdown`);
52
+ return staticAreaItem.querySelector(`[udex-dropdown]`);
53
53
  }
54
54
  _afterDropdownOpen() {
55
55
  this._dropdownOpened = true;
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavigationMobile.js","sourceRoot":"","sources":["../src/SideNavigationMobile.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExSideNavigation from \"./SideNavigation.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport SideNavigationMobileTemplate from \"./generated/templates/SideNavigationMobileTemplate.lit.js\";\nimport SideNavigationMobileDropdownTemplate from \"./generated/templates/SideNavigationMobileDropdownTemplate.lit.js\";\nimport UDExSideNavigationItem from \"./SideNavigationItem.js\";\nimport UDExSideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport UDExSideNavigationGroup from \"./SideNavigationGroup.js\";\n\n// Styles\nimport SideNavigationMobileCss from \"./generated/themes/SideNavigationMobile.css.js\";\nimport SideNavigationMobileDropdownCss from \"./generated/themes/SideNavigationMobileDropdown.css.js\";\n\ntype SelectedItem = UDExSideNavigationItem | UDExSideNavigationSubItem | null;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-side-navigation-mobile</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/SideNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation-mobile\",\n renderer: litRender,\n template: SideNavigationMobileTemplate,\n styles: SideNavigationMobileCss,\n staticAreaTemplate: SideNavigationMobileDropdownTemplate,\n staticAreaStyles: [SideNavigationMobileCss, SideNavigationMobileDropdownCss],\n dependencies: [UDExSideNavigation, UDExDropdown, Icon],\n})\n\nclass UDExSideNavigationMobile extends UI5Element {\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the main items of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the top-level items, and the `ui5-side-navigation-sub-item` component for second-level items, nested\n * inside the items.\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Defines the fixed items at the bottom of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the fixed items, and optionally the `ui5-side-navigation-sub-item` component to provide second-level items inside them.\n *\n * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true })\n fixedItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Indicates selected item element\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Object })\n _selectedItem!: SelectedItem;\n\n _navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n _initialized = false;\n _dropdown!: UDExDropdown;\n\n /**\n * Getter for the interactive element that opens the dropdown\n * @private\n */\n get _dropdownTrigger() {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-side-navigation-mobile__trigger\")!;\n }\n\n async _getResponsePopover() {\n const staticAreaItem = await this.getStaticAreaItemDomRef();\n return staticAreaItem!.querySelector<UDExDropdown>(`udex-dropdown`)!;\n }\n\n _afterDropdownOpen() {\n this._dropdownOpened = true;\n }\n\n _afterDropdownClose() {\n this._dropdownOpened = false;\n }\n\n async handleTriggerClick() {\n this._dropdown = await this._getResponsePopover();\n if (this._dropdown?.open) {\n this._dropdown.onClose();\n } else {\n this._dropdown.onOpen(this._dropdownTrigger);\n }\n }\n\n async handleKeydown(event: KeyboardEvent) {\n if ((event.key === \"Enter\" || event.key === \" \")) {\n await this.handleTriggerClick();\n }\n }\n\n async _handleSelectionChanged(event: {detail: { item: UDExSideNavigationItem | UDExSideNavigationSubItem }}) {\n this._dropdown = await this._getResponsePopover();\n this._dropdown.onClose();\n this._selectedItem = event.detail.item;\n }\n\n getSelectedItem() {\n const items = this._navItems.reduce((result, item) => {\n return (result).concat(item.allItems as UDExSideNavigationSubItem[]);\n }, new Array<UDExSideNavigationItem | UDExSideNavigationSubItem>());\n return items.find(item => item._selected);\n }\n\n onBeforeRendering() {\n if (!this._initialized) {\n const items = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"navItems\");\n const fixedItems = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"fixedItems\");\n this._navItems = items.concat(fixedItems);\n this._selectedItem = this.getSelectedItem() || null;\n }\n this._initialized = true;\n }\n\n async onAfterRendering() {\n this._dropdown = await this._getResponsePopover();\n }\n}\n\nUDExSideNavigationMobile.define();\n\nexport default UDExSideNavigationMobile;\n"]}
1
+ {"version":3,"file":"SideNavigationMobile.js","sourceRoot":"","sources":["../src/SideNavigationMobile.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,kDAAkD,CAAC;AAE1D,OAAO,4BAA4B,MAAM,2DAA2D,CAAC;AACrG,OAAO,oCAAoC,MAAM,mEAAmE,CAAC;AAKrH,SAAS;AACT,OAAO,uBAAuB,MAAM,gDAAgD,CAAC;AACrF,OAAO,+BAA+B,MAAM,wDAAwD,CAAC;AAIrG;;;;;;;;;;;;;;;;GAgBG;AAWH,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,UAAU;IAAjD;;QAyCE,iBAAY,GAAG,KAAK,CAAC;IAiEvB,CAAC;IA9DC;;;OAGG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,uCAAuC,CAAE,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5D,OAAO,cAAe,CAAC,aAAa,CAAe,iBAAiB,CAAE,CAAC;IACzE,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC1B;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC9C;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAoB;QACtC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;YAChD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;SACjC;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,KAA6E;QACzG,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,eAAe;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACnD,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAuC,CAAC,CAAC;QACvE,CAAC,EAAE,IAAI,KAAK,EAAsD,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAmD,UAAU,CAAC,CAAC;YACjG,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAmD,YAAY,CAAC,CAAC;YACxG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC;SACrD;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACpD,CAAC;CACF,CAAA;AAlGG;IADD,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iEACnB;AAU1B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;0DACP;AAWnE;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;4DACY;AASrE;IADD,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+DACf;AAtC3B,wBAAwB;IAV7B,aAAa,CAAC;QACb,GAAG,EAAE,6BAA6B;QAClC,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,4BAA4B;QACtC,MAAM,EAAE,uBAAuB;QAC/B,kBAAkB,EAAE,oCAAoC;QACxD,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;QAC5E,YAAY,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,IAAI,CAAC;KACvD,CAAC;GAEI,wBAAwB,CA0G7B;AAED,wBAAwB,CAAC,MAAM,EAAE,CAAC;AAElC,eAAe,wBAAwB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExSideNavigation from \"./SideNavigation.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport SideNavigationMobileTemplate from \"./generated/templates/SideNavigationMobileTemplate.lit.js\";\nimport SideNavigationMobileDropdownTemplate from \"./generated/templates/SideNavigationMobileDropdownTemplate.lit.js\";\nimport UDExSideNavigationItem from \"./SideNavigationItem.js\";\nimport UDExSideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport UDExSideNavigationGroup from \"./SideNavigationGroup.js\";\n\n// Styles\nimport SideNavigationMobileCss from \"./generated/themes/SideNavigationMobile.css.js\";\nimport SideNavigationMobileDropdownCss from \"./generated/themes/SideNavigationMobileDropdown.css.js\";\n\ntype SelectedItem = UDExSideNavigationItem | UDExSideNavigationSubItem | null;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-side-navigation-mobile</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/SideNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation-mobile\",\n renderer: litRender,\n template: SideNavigationMobileTemplate,\n styles: SideNavigationMobileCss,\n staticAreaTemplate: SideNavigationMobileDropdownTemplate,\n staticAreaStyles: [SideNavigationMobileCss, SideNavigationMobileDropdownCss],\n dependencies: [UDExSideNavigation, UDExDropdown, Icon],\n})\n\nclass UDExSideNavigationMobile extends UI5Element {\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the main items of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the top-level items, and the `ui5-side-navigation-sub-item` component for second-level items, nested\n * inside the items.\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Defines the fixed items at the bottom of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the fixed items, and optionally the `ui5-side-navigation-sub-item` component to provide second-level items inside them.\n *\n * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true })\n fixedItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Indicates selected item element\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Object })\n _selectedItem!: SelectedItem;\n\n _navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n _initialized = false;\n _dropdown!: UDExDropdown;\n\n /**\n * Getter for the interactive element that opens the dropdown\n * @private\n */\n get _dropdownTrigger() {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-side-navigation-mobile__trigger\")!;\n }\n\n async _getResponsePopover() {\n const staticAreaItem = await this.getStaticAreaItemDomRef();\n return staticAreaItem!.querySelector<UDExDropdown>(`[udex-dropdown]`)!;\n }\n\n _afterDropdownOpen() {\n this._dropdownOpened = true;\n }\n\n _afterDropdownClose() {\n this._dropdownOpened = false;\n }\n\n async handleTriggerClick() {\n this._dropdown = await this._getResponsePopover();\n if (this._dropdown?.open) {\n this._dropdown.onClose();\n } else {\n this._dropdown.onOpen(this._dropdownTrigger);\n }\n }\n\n async handleKeydown(event: KeyboardEvent) {\n if ((event.key === \"Enter\" || event.key === \" \")) {\n await this.handleTriggerClick();\n }\n }\n\n async _handleSelectionChanged(event: {detail: { item: UDExSideNavigationItem | UDExSideNavigationSubItem }}) {\n this._dropdown = await this._getResponsePopover();\n this._dropdown.onClose();\n this._selectedItem = event.detail.item;\n }\n\n getSelectedItem() {\n const items = this._navItems.reduce((result, item) => {\n return (result).concat(item.allItems as UDExSideNavigationSubItem[]);\n }, new Array<UDExSideNavigationItem | UDExSideNavigationSubItem>());\n return items.find(item => item._selected);\n }\n\n onBeforeRendering() {\n if (!this._initialized) {\n const items = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"navItems\");\n const fixedItems = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"fixedItems\");\n this._navItems = items.concat(fixedItems);\n this._selectedItem = this.getSelectedItem() || null;\n }\n this._initialized = true;\n }\n\n async onAfterRendering() {\n this._dropdown = await this._getResponsePopover();\n }\n}\n\nUDExSideNavigationMobile.define();\n\nexport default UDExSideNavigationMobile;\n"]}
package/dist/StepInput.js CHANGED
@@ -82,7 +82,7 @@ let UDExStepInput = UDExStepInput_1 = class UDExStepInput extends UI5Element {
82
82
  return this.inputOuter.shadowRoot.querySelector("input");
83
83
  }
84
84
  get inputOuter() {
85
- return this.shadowRoot.querySelector("udex-text-field");
85
+ return this.shadowRoot.querySelector("[udex-text-field]");
86
86
  }
87
87
  _onInputFocusIn() {
88
88
  if (this.value !== this._previousValue) {
@@ -1 +1 @@
1
- {"version":3,"file":"StepInput.js","sourceRoot":"","sources":["../src/StepInput.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Float from \"@ui5/webcomponents-base/dist/types/Float.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/less.js\";\nimport \"@ui5/webcomponents-icons/dist/add.js\";\nimport {\n isDown,\n isDownCtrl,\n isDownShift,\n isDownShiftCtrl,\n isEnter,\n isEscape,\n isPageDownShift,\n isPageUpShift,\n isUp,\n isUpCtrl,\n isUpShift,\n isUpShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { STEPINPUT_DEC_ICON_TITLE, STEPINPUT_INC_ICON_TITLE } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExTextField from \"./TextField.js\";\nimport ValueState from \"./types/common.js\";\n\nimport StepInputTemplate from \"./generated/templates/StepInputTemplate.lit.js\";\n\n// Styles\nimport StepInputCss from \"./generated/themes/StepInput.css.js\";\nimport UDExControlButton from \"./ControlButton.js\";\n\n// Spin variables\nconst INITIAL_WAIT_TIMEOUT = 500; // milliseconds\nconst ACCELERATION = 0.8;\nconst MIN_WAIT_TIMEOUT = 50; // milliseconds\nconst INITIAL_SPEED = 120; // milliseconds\n\nexport type StepInputValueStateChangeEventDetail = {\n valueState: `${ValueState}`,\n valid: boolean,\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-step-input</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/StepInput.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-step-input\",\n renderer: litRender,\n styles: StepInputCss,\n template: StepInputTemplate,\n dependencies: [Icon, UDExTextField, UDExControlButton],\n})\n\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\")\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} valueState The new `valueState` that will be set.\n * @param {boolean} valid Indicator if the value is in between the min and max value.\n */\n@event<StepInputValueStateChangeEventDetail>(\"value-state-change\", {\n detail: {\n /**\n * @public\n */\n valueState: {\n type: String,\n },\n /**\n * @public\n */\n valid: {\n type: Boolean,\n },\n },\n})\nclass UDExStepInput extends UI5Element {\n /**\n * Defines a value of the component.\n * @default 0\n * @public\n */\n @property({ validator: Float, defaultValue: 0 })\n value!: number;\n\n /**\n * Defines a minimum value of the component.\n * @default undefined\n * @public\n */\n @property({ validator: Float })\n min?: number;\n\n /**\n * Defines a maximum value of the component.\n * @default undefined\n * @public\n */\n @property({ validator: Float })\n max?: number;\n\n /**\n * Defines a step of increasing/decreasing the value of the component.\n * @default 1\n * @public\n */\n @property({ validator: Float, defaultValue: 1 })\n step!: number;\n\n /**\n * Defines the value state of the component.\n * @default \"None\"\n * @public\n */\n @property({ type: ValueState, defaultValue: ValueState.Standard })\n valueState!: `${ValueState}`;\n\n /**\n * Defines whether the component is required.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Determines whether the component is displayed as disabled.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Determines whether the component is displayed as read-only.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Determines the number of digits after the decimal point of the component.\n * @default 0\n * @public\n */\n @property({ validator: Integer, defaultValue: 0 })\n valuePrecision!: number;\n\n /**\n * Defines label text for the input field.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n label!: string;\n\n /**\n * Defines supporting text under the input field.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n supportingText!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n @property({ type: String, noAttribute: true, defaultValue: \"Number\" })\n type!: string;\n\n @property({ type: Boolean, noAttribute: true })\n _decIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n _incIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n incIconActive!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n decIconActive!: boolean;\n\n @property({ validator: Float, noAttribute: true })\n _initialValue!: number;\n\n @property({ validator: Float, noAttribute: true })\n _previousValue!: number;\n\n @property({ validator: Float, noAttribute: true })\n _waitTimeout!: number;\n\n @property({ validator: Float, noAttribute: true })\n _speed!: number;\n\n @property({ type: Boolean, noAttribute: true })\n _btnDown!: boolean;\n\n @property({ validator: Integer, noAttribute: true })\n _spinTimeoutId!: Timeout;\n\n @property({ type: Boolean, noAttribute: true })\n _spinStarted!: boolean;\n\n @property({ type: ValueState, noAttribute: true })\n _initialValueState?: `${ValueState}`;\n\n static i18nBundle: I18nBundle;\n\n _keyDownHandlerBound: (e: KeyboardEvent) => void;\n\n static async onDefine() {\n UDExStepInput.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n constructor() {\n super();\n this._keyDownHandlerBound = this._onkeydown.bind(this);\n }\n\n get decIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_DEC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get incIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_INC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get _decIconInactive() {\n return this._decIconDisabled || this.readonly || this.disabled;\n }\n\n get _incIconInactive() {\n return this._incIconDisabled || this.readonly || this.disabled;\n }\n\n get _valuePrecisioned() {\n return this.value.toFixed(this.valuePrecision);\n }\n\n onBeforeRendering() {\n this._setButtonState();\n }\n\n get input() {\n return this.inputOuter.shadowRoot!.querySelector(\"input\")!;\n }\n\n get inputOuter() {\n return this.shadowRoot!.querySelector(\"udex-text-field\")!;\n }\n\n _onInputFocusIn() {\n if (this.value !== this._previousValue) {\n this._previousValue = this.value;\n }\n }\n\n _onInputFocusOut() {\n this._onInputChange();\n }\n\n _setButtonState() {\n this._decIconDisabled = this.min !== undefined && this.value <= this.min;\n this._incIconDisabled = this.max !== undefined && this.value >= this.max;\n }\n\n setIncButtonActiveState() {\n this.incIconActive = true;\n }\n\n setDecButtonActiveState() {\n this.decIconActive = true;\n }\n\n unsetButtonsActiveState() {\n this.decIconActive = false;\n this.incIconActive = false;\n }\n\n _validate() {\n if (this._initialValueState === undefined) {\n this._initialValueState = this.valueState;\n }\n\n this._updateValueState();\n }\n\n _updateValueState() {\n const valid = !((this.min !== undefined && this.value < this.min) || (this.max !== undefined && this.value > this.max));\n const previousValueState = this.valueState;\n\n this.valueState = valid ? ValueState.Standard : ValueState.Error;\n\n const eventPrevented = !this.fireEvent<StepInputValueStateChangeEventDetail>(\"value-state-change\", { valueState: this.valueState, valid }, true);\n\n if (eventPrevented) {\n this.valueState = previousValueState;\n }\n }\n\n _getNumberPrecision(value: number) {\n if (!Number.isFinite(value)) {\n return 0;\n }\n let exponent = 1;\n let precision = 0;\n while (Math.round(value * exponent) / exponent !== value) { exponent *= 10; precision++; }\n return precision;\n }\n\n _preciseValue(value: number) {\n const pow = 10 ** this.valuePrecision;\n return Math.round(value * pow) / pow;\n }\n\n _fireChangeEvent() {\n if (this._previousValue !== this.value) {\n this._previousValue = this.value;\n this.fireEvent(\"change\", { value: this.value });\n }\n }\n\n /**\n * Value modifier - modifies the value of the component, validates the new value and enables/disables increment and\n * decrement buttons according to the value and min/max values (if set). Fires `change` event when requested\n * @private\n * @param modifier modifies the value of the component with the given modifier (positive or negative)\n * @param fireChangeEvent if `true`, fires `change` event when the value is changed\n */\n _modifyValue(modifier: number, fireChangeEvent = false) {\n let value;\n this.value = this._preciseValue(parseFloat(this.input.value));\n value = this.value + modifier;\n if (this.min !== undefined && value < this.min) {\n value = this.min;\n }\n if (this.max !== undefined && value > this.max) {\n value = this.max;\n }\n value = this._preciseValue(value);\n if (value !== this.value) {\n this.value = value;\n this._validate();\n this._setButtonState();\n if (fireChangeEvent) {\n this._fireChangeEvent();\n }\n }\n }\n\n _incValue(e: CustomEvent) {\n if (!this._incIconInactive && e.isTrusted) {\n this._modifyValue(this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _decValue(e: CustomEvent) {\n if (!this._decIconInactive && e.isTrusted) {\n this._modifyValue(-this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _onInputChange() {\n if (Number.isNaN(Number(this.input.value)) || this.input.value.trim() === \"\") {\n const fallbackValuePrecisioned = this._initialValue.toFixed(this.valuePrecision);\n this.inputOuter.setAttribute(\"value\", fallbackValuePrecisioned); // necessary for correct label rendering\n this.input.value = fallbackValuePrecisioned; // necessary for correct value rendering\n }\n const inputValue = this._preciseValue(parseFloat(this.input.value));\n if (this.value !== this._previousValue || this.value !== inputValue) {\n this.value = inputValue;\n this._validate();\n this._setButtonState();\n this._fireChangeEvent();\n }\n }\n\n _onkeydown(e: KeyboardEvent) {\n let preventDefault = true;\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (isEnter(e)) {\n this._onInputChange();\n return;\n }\n\n if (isUp(e)) {\n // step up\n this._modifyValue(this.step);\n } else if (isDown(e)) {\n // step down\n this._modifyValue(-this.step);\n } else if (isEscape(e)) {\n // return previous value\n this.value = this._previousValue;\n this.input.value = this.value.toFixed(this.valuePrecision);\n } else if (this.max !== undefined && (isPageUpShift(e) || isUpShiftCtrl(e))) {\n // step to max\n this._modifyValue(this.max - this.value, true);\n } else if (this.min !== undefined && (isPageDownShift(e) || isDownShiftCtrl(e))) {\n // step to min\n this._modifyValue(this.min - this.value, true);\n } else if (!isUpCtrl(e) && !isDownCtrl(e) && !isUpShift(e) && !isDownShift(e)) {\n preventDefault = false;\n }\n if (preventDefault) {\n e.preventDefault();\n }\n }\n\n _decSpin() {\n if (!this._decIconDisabled) {\n this._spinValue(false, true);\n this.setDecButtonActiveState();\n }\n }\n\n _incSpin() {\n if (!this._incIconDisabled) {\n this._spinValue(true, true);\n this.setIncButtonActiveState();\n }\n }\n\n /**\n * Calculates the time which should be waited until _spinValue function is called.\n */\n _calcWaitTimeout() {\n this._speed *= ACCELERATION;\n this._waitTimeout = ((this._waitTimeout - this._speed) < MIN_WAIT_TIMEOUT ? MIN_WAIT_TIMEOUT : (this._waitTimeout - this._speed));\n return this._waitTimeout;\n }\n\n /**\n * Called when the increment or decrement button is pressed and held to set new value.\n * @private\n * @param increment - is this the increment button or not so the values should be spin accordingly up or down\n * @param resetVariables - whether to reset the spin-related variables or not\n */\n _spinValue(increment: boolean, resetVariables = false) {\n if (resetVariables) {\n this._waitTimeout = INITIAL_WAIT_TIMEOUT;\n this._speed = INITIAL_SPEED;\n this._btnDown = true;\n }\n this._spinTimeoutId = setTimeout(() => {\n if (this._btnDown) {\n this._spinStarted = true;\n this._modifyValue(increment ? this.step : -this.step);\n this._setButtonState();\n if ((!this._incIconDisabled && increment) || (!this._decIconDisabled && !increment)) {\n this._spinValue(increment);\n } else {\n this._resetSpin();\n this._fireChangeEvent();\n }\n }\n }, this._calcWaitTimeout());\n }\n\n /**\n * Resets spin process\n */\n _resetSpin() {\n clearTimeout(this._spinTimeoutId);\n this._btnDown = false;\n this._spinStarted = false;\n this.unsetButtonsActiveState();\n }\n\n /**\n * Resets spin process when mouse outs + or - buttons\n */\n _resetSpinOut() {\n if (this._btnDown) {\n this._resetSpin();\n this._fireChangeEvent();\n this.unsetButtonsActiveState();\n }\n }\n\n onEnterDOM(): void {\n // swap values if the min value is larger than the max value\n if (this.min !== undefined && this.max !== undefined && this.min > this.max) {\n const temp = this.min;\n this.min = this.max;\n this.max = temp;\n }\n\n // detect necessarry value precision as the highest presicion of the step, min, max and initial value\n // the valuePrecision attribute can be used to increase precision, but not to lower it\n this.valuePrecision = Math.max(\n this.valuePrecision ?? 0,\n this._getNumberPrecision(this.step),\n this._getNumberPrecision(this.min ?? 0),\n this._getNumberPrecision(this.max ?? 0),\n this._getNumberPrecision(this.value),\n );\n\n this._initialValue = Math.min(Math.max(this.value, this.min ?? 0), this.max ?? Infinity);\n\n this.value = this._initialValue;\n\n this._previousValue = this.value;\n\n this.input.addEventListener(\"keydown\", this._keyDownHandlerBound);\n }\n\n onExitDOM(): void {\n this.input.removeEventListener(\"keydown\", this._keyDownHandlerBound);\n }\n}\n\nUDExStepInput.define();\n\nexport default UDExStepInput;\n"]}
1
+ {"version":3,"file":"StepInput.js","sourceRoot":"","sources":["../src/StepInput.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Float from \"@ui5/webcomponents-base/dist/types/Float.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/less.js\";\nimport \"@ui5/webcomponents-icons/dist/add.js\";\nimport {\n isDown,\n isDownCtrl,\n isDownShift,\n isDownShiftCtrl,\n isEnter,\n isEscape,\n isPageDownShift,\n isPageUpShift,\n isUp,\n isUpCtrl,\n isUpShift,\n isUpShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { STEPINPUT_DEC_ICON_TITLE, STEPINPUT_INC_ICON_TITLE } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExTextField from \"./TextField.js\";\nimport ValueState from \"./types/common.js\";\n\nimport StepInputTemplate from \"./generated/templates/StepInputTemplate.lit.js\";\n\n// Styles\nimport StepInputCss from \"./generated/themes/StepInput.css.js\";\nimport UDExControlButton from \"./ControlButton.js\";\n\n// Spin variables\nconst INITIAL_WAIT_TIMEOUT = 500; // milliseconds\nconst ACCELERATION = 0.8;\nconst MIN_WAIT_TIMEOUT = 50; // milliseconds\nconst INITIAL_SPEED = 120; // milliseconds\n\nexport type StepInputValueStateChangeEventDetail = {\n valueState: `${ValueState}`,\n valid: boolean,\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-step-input</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/StepInput.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-step-input\",\n renderer: litRender,\n styles: StepInputCss,\n template: StepInputTemplate,\n dependencies: [Icon, UDExTextField, UDExControlButton],\n})\n\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\")\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} valueState The new `valueState` that will be set.\n * @param {boolean} valid Indicator if the value is in between the min and max value.\n */\n@event<StepInputValueStateChangeEventDetail>(\"value-state-change\", {\n detail: {\n /**\n * @public\n */\n valueState: {\n type: String,\n },\n /**\n * @public\n */\n valid: {\n type: Boolean,\n },\n },\n})\nclass UDExStepInput extends UI5Element {\n /**\n * Defines a value of the component.\n * @default 0\n * @public\n */\n @property({ validator: Float, defaultValue: 0 })\n value!: number;\n\n /**\n * Defines a minimum value of the component.\n * @default undefined\n * @public\n */\n @property({ validator: Float })\n min?: number;\n\n /**\n * Defines a maximum value of the component.\n * @default undefined\n * @public\n */\n @property({ validator: Float })\n max?: number;\n\n /**\n * Defines a step of increasing/decreasing the value of the component.\n * @default 1\n * @public\n */\n @property({ validator: Float, defaultValue: 1 })\n step!: number;\n\n /**\n * Defines the value state of the component.\n * @default \"None\"\n * @public\n */\n @property({ type: ValueState, defaultValue: ValueState.Standard })\n valueState!: `${ValueState}`;\n\n /**\n * Defines whether the component is required.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Determines whether the component is displayed as disabled.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Determines whether the component is displayed as read-only.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Determines the number of digits after the decimal point of the component.\n * @default 0\n * @public\n */\n @property({ validator: Integer, defaultValue: 0 })\n valuePrecision!: number;\n\n /**\n * Defines label text for the input field.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n label!: string;\n\n /**\n * Defines supporting text under the input field.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n supportingText!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n @property({ type: String, noAttribute: true, defaultValue: \"Number\" })\n type!: string;\n\n @property({ type: Boolean, noAttribute: true })\n _decIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n _incIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n incIconActive!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n decIconActive!: boolean;\n\n @property({ validator: Float, noAttribute: true })\n _initialValue!: number;\n\n @property({ validator: Float, noAttribute: true })\n _previousValue!: number;\n\n @property({ validator: Float, noAttribute: true })\n _waitTimeout!: number;\n\n @property({ validator: Float, noAttribute: true })\n _speed!: number;\n\n @property({ type: Boolean, noAttribute: true })\n _btnDown!: boolean;\n\n @property({ validator: Integer, noAttribute: true })\n _spinTimeoutId!: Timeout;\n\n @property({ type: Boolean, noAttribute: true })\n _spinStarted!: boolean;\n\n @property({ type: ValueState, noAttribute: true })\n _initialValueState?: `${ValueState}`;\n\n static i18nBundle: I18nBundle;\n\n _keyDownHandlerBound: (e: KeyboardEvent) => void;\n\n static async onDefine() {\n UDExStepInput.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n constructor() {\n super();\n this._keyDownHandlerBound = this._onkeydown.bind(this);\n }\n\n get decIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_DEC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get incIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_INC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get _decIconInactive() {\n return this._decIconDisabled || this.readonly || this.disabled;\n }\n\n get _incIconInactive() {\n return this._incIconDisabled || this.readonly || this.disabled;\n }\n\n get _valuePrecisioned() {\n return this.value.toFixed(this.valuePrecision);\n }\n\n onBeforeRendering() {\n this._setButtonState();\n }\n\n get input() {\n return this.inputOuter.shadowRoot!.querySelector(\"input\")!;\n }\n\n get inputOuter() {\n return this.shadowRoot!.querySelector(\"[udex-text-field]\")!;\n }\n\n _onInputFocusIn() {\n if (this.value !== this._previousValue) {\n this._previousValue = this.value;\n }\n }\n\n _onInputFocusOut() {\n this._onInputChange();\n }\n\n _setButtonState() {\n this._decIconDisabled = this.min !== undefined && this.value <= this.min;\n this._incIconDisabled = this.max !== undefined && this.value >= this.max;\n }\n\n setIncButtonActiveState() {\n this.incIconActive = true;\n }\n\n setDecButtonActiveState() {\n this.decIconActive = true;\n }\n\n unsetButtonsActiveState() {\n this.decIconActive = false;\n this.incIconActive = false;\n }\n\n _validate() {\n if (this._initialValueState === undefined) {\n this._initialValueState = this.valueState;\n }\n\n this._updateValueState();\n }\n\n _updateValueState() {\n const valid = !((this.min !== undefined && this.value < this.min) || (this.max !== undefined && this.value > this.max));\n const previousValueState = this.valueState;\n\n this.valueState = valid ? ValueState.Standard : ValueState.Error;\n\n const eventPrevented = !this.fireEvent<StepInputValueStateChangeEventDetail>(\"value-state-change\", { valueState: this.valueState, valid }, true);\n\n if (eventPrevented) {\n this.valueState = previousValueState;\n }\n }\n\n _getNumberPrecision(value: number) {\n if (!Number.isFinite(value)) {\n return 0;\n }\n let exponent = 1;\n let precision = 0;\n while (Math.round(value * exponent) / exponent !== value) { exponent *= 10; precision++; }\n return precision;\n }\n\n _preciseValue(value: number) {\n const pow = 10 ** this.valuePrecision;\n return Math.round(value * pow) / pow;\n }\n\n _fireChangeEvent() {\n if (this._previousValue !== this.value) {\n this._previousValue = this.value;\n this.fireEvent(\"change\", { value: this.value });\n }\n }\n\n /**\n * Value modifier - modifies the value of the component, validates the new value and enables/disables increment and\n * decrement buttons according to the value and min/max values (if set). Fires `change` event when requested\n * @private\n * @param modifier modifies the value of the component with the given modifier (positive or negative)\n * @param fireChangeEvent if `true`, fires `change` event when the value is changed\n */\n _modifyValue(modifier: number, fireChangeEvent = false) {\n let value;\n this.value = this._preciseValue(parseFloat(this.input.value));\n value = this.value + modifier;\n if (this.min !== undefined && value < this.min) {\n value = this.min;\n }\n if (this.max !== undefined && value > this.max) {\n value = this.max;\n }\n value = this._preciseValue(value);\n if (value !== this.value) {\n this.value = value;\n this._validate();\n this._setButtonState();\n if (fireChangeEvent) {\n this._fireChangeEvent();\n }\n }\n }\n\n _incValue(e: CustomEvent) {\n if (!this._incIconInactive && e.isTrusted) {\n this._modifyValue(this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _decValue(e: CustomEvent) {\n if (!this._decIconInactive && e.isTrusted) {\n this._modifyValue(-this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _onInputChange() {\n if (Number.isNaN(Number(this.input.value)) || this.input.value.trim() === \"\") {\n const fallbackValuePrecisioned = this._initialValue.toFixed(this.valuePrecision);\n this.inputOuter.setAttribute(\"value\", fallbackValuePrecisioned); // necessary for correct label rendering\n this.input.value = fallbackValuePrecisioned; // necessary for correct value rendering\n }\n const inputValue = this._preciseValue(parseFloat(this.input.value));\n if (this.value !== this._previousValue || this.value !== inputValue) {\n this.value = inputValue;\n this._validate();\n this._setButtonState();\n this._fireChangeEvent();\n }\n }\n\n _onkeydown(e: KeyboardEvent) {\n let preventDefault = true;\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (isEnter(e)) {\n this._onInputChange();\n return;\n }\n\n if (isUp(e)) {\n // step up\n this._modifyValue(this.step);\n } else if (isDown(e)) {\n // step down\n this._modifyValue(-this.step);\n } else if (isEscape(e)) {\n // return previous value\n this.value = this._previousValue;\n this.input.value = this.value.toFixed(this.valuePrecision);\n } else if (this.max !== undefined && (isPageUpShift(e) || isUpShiftCtrl(e))) {\n // step to max\n this._modifyValue(this.max - this.value, true);\n } else if (this.min !== undefined && (isPageDownShift(e) || isDownShiftCtrl(e))) {\n // step to min\n this._modifyValue(this.min - this.value, true);\n } else if (!isUpCtrl(e) && !isDownCtrl(e) && !isUpShift(e) && !isDownShift(e)) {\n preventDefault = false;\n }\n if (preventDefault) {\n e.preventDefault();\n }\n }\n\n _decSpin() {\n if (!this._decIconDisabled) {\n this._spinValue(false, true);\n this.setDecButtonActiveState();\n }\n }\n\n _incSpin() {\n if (!this._incIconDisabled) {\n this._spinValue(true, true);\n this.setIncButtonActiveState();\n }\n }\n\n /**\n * Calculates the time which should be waited until _spinValue function is called.\n */\n _calcWaitTimeout() {\n this._speed *= ACCELERATION;\n this._waitTimeout = ((this._waitTimeout - this._speed) < MIN_WAIT_TIMEOUT ? MIN_WAIT_TIMEOUT : (this._waitTimeout - this._speed));\n return this._waitTimeout;\n }\n\n /**\n * Called when the increment or decrement button is pressed and held to set new value.\n * @private\n * @param increment - is this the increment button or not so the values should be spin accordingly up or down\n * @param resetVariables - whether to reset the spin-related variables or not\n */\n _spinValue(increment: boolean, resetVariables = false) {\n if (resetVariables) {\n this._waitTimeout = INITIAL_WAIT_TIMEOUT;\n this._speed = INITIAL_SPEED;\n this._btnDown = true;\n }\n this._spinTimeoutId = setTimeout(() => {\n if (this._btnDown) {\n this._spinStarted = true;\n this._modifyValue(increment ? this.step : -this.step);\n this._setButtonState();\n if ((!this._incIconDisabled && increment) || (!this._decIconDisabled && !increment)) {\n this._spinValue(increment);\n } else {\n this._resetSpin();\n this._fireChangeEvent();\n }\n }\n }, this._calcWaitTimeout());\n }\n\n /**\n * Resets spin process\n */\n _resetSpin() {\n clearTimeout(this._spinTimeoutId);\n this._btnDown = false;\n this._spinStarted = false;\n this.unsetButtonsActiveState();\n }\n\n /**\n * Resets spin process when mouse outs + or - buttons\n */\n _resetSpinOut() {\n if (this._btnDown) {\n this._resetSpin();\n this._fireChangeEvent();\n this.unsetButtonsActiveState();\n }\n }\n\n onEnterDOM(): void {\n // swap values if the min value is larger than the max value\n if (this.min !== undefined && this.max !== undefined && this.min > this.max) {\n const temp = this.min;\n this.min = this.max;\n this.max = temp;\n }\n\n // detect necessarry value precision as the highest presicion of the step, min, max and initial value\n // the valuePrecision attribute can be used to increase precision, but not to lower it\n this.valuePrecision = Math.max(\n this.valuePrecision ?? 0,\n this._getNumberPrecision(this.step),\n this._getNumberPrecision(this.min ?? 0),\n this._getNumberPrecision(this.max ?? 0),\n this._getNumberPrecision(this.value),\n );\n\n this._initialValue = Math.min(Math.max(this.value, this.min ?? 0), this.max ?? Infinity);\n\n this.value = this._initialValue;\n\n this._previousValue = this.value;\n\n this.input.addEventListener(\"keydown\", this._keyDownHandlerBound);\n }\n\n onExitDOM(): void {\n this.input.removeEventListener(\"keydown\", this._keyDownHandlerBound);\n }\n}\n\nUDExStepInput.define();\n\nexport default UDExStepInput;\n"]}
@@ -1,8 +1,7 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type { StyleData } from "@ui5/webcomponents-base/dist/types.js";
3
- import ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
3
+ import Popover from "@ui5/webcomponents/dist/Popover.js";
4
4
  import Tab, { ITab } from "./Tab.js";
5
- import "@ui5/webcomponents/dist/Icon.js";
6
5
  import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
7
6
  import TabNavigationPopoverTemplate from "./generated/templates/TabNavigationPopoverTemplate.lit.js";
8
7
  export declare enum SizeMoreButton {
@@ -81,7 +80,7 @@ declare class UDExTabNavigation extends UI5Element {
81
80
  items: Array<ITab>;
82
81
  static i18nBundle: any;
83
82
  _handleResizeBound: () => void;
84
- _responsivePopover?: ResponsivePopover;
83
+ _popover?: Popover;
85
84
  _visibleTabs?: Array<ITab | HTMLElement>;
86
85
  _isExpanded: boolean;
87
86
  _maxTitleLength: number;
@@ -133,7 +132,7 @@ declare class UDExTabNavigation extends UI5Element {
133
132
  onItemSelect(selectedId: string): void;
134
133
  getMoreButton(): HTMLElement;
135
134
  getHeader(): HTMLElement;
136
- handleMoreButton(): void;
135
+ handleMoreButton(e: Event): void;
137
136
  updateOverflowItems(): void;
138
137
  handleTogglePopover(): void;
139
138
  handleClosePopover(): void;
@@ -165,7 +164,7 @@ declare class UDExTabNavigation extends UI5Element {
165
164
  handleEscape(e: KeyboardEvent): void;
166
165
  handleHome(e: KeyboardEvent): void;
167
166
  handleEnd(e: KeyboardEvent): void;
168
- getResponsePopover(): ResponsivePopover;
167
+ getResponsePopover(): Popover;
169
168
  get moreButtonText(): string;
170
169
  static registerStaticAreaTabStyles(styles: StyleData): void;
171
170
  static get tabNavigationPopoverTemplate(): typeof TabNavigationPopoverTemplate;
@@ -13,12 +13,12 @@ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
13
13
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
14
14
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
15
15
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
16
- import ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
16
+ import Popover from "@ui5/webcomponents/dist/Popover.js";
17
17
  import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
18
18
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
19
19
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
20
20
  import { isUp, isDown, isRight, isLeft, isEnter, isSpace, isEscape, isHome, isEnd, isTabNext, isTabPrevious, } from "@ui5/webcomponents-base/dist/Keys.js";
21
- import "@ui5/webcomponents/dist/Icon.js";
21
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
22
22
  import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
23
23
  import { MORE } from "./generated/i18n/i18n-defaults.js";
24
24
  // Templates
@@ -59,6 +59,7 @@ export var Mode;
59
59
  let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI5Element {
60
60
  constructor() {
61
61
  super();
62
+ this._isExpanded = false;
62
63
  this._maxTitleLength = 25;
63
64
  this._maxTitleLengthInSecondLines = this._maxTitleLength * 2;
64
65
  this._handleResizeBound = this._handleResize.bind(this);
@@ -150,7 +151,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
150
151
  this.initOutsideClick();
151
152
  }
152
153
  initOutsideClick() {
153
- if (this._responsivePopover?.opened) {
154
+ if (this._popover?.opened) {
154
155
  this.handleOutsideClick();
155
156
  }
156
157
  }
@@ -381,8 +382,9 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
381
382
  getHeader() {
382
383
  return this.shadowRoot.querySelector(`#${this.__id}-header`);
383
384
  }
384
- handleMoreButton() {
385
- this._responsivePopover = this.getResponsePopover();
385
+ handleMoreButton(e) {
386
+ e.stopPropagation();
387
+ this._popover = this.getResponsePopover();
386
388
  this.updateOverflowItems();
387
389
  this.handleTogglePopover();
388
390
  }
@@ -393,7 +395,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
393
395
  });
394
396
  }
395
397
  handleTogglePopover() {
396
- if (this._responsivePopover?.opened) {
398
+ if (this._popover?.opened) {
397
399
  this.handleClosePopover();
398
400
  }
399
401
  else {
@@ -401,15 +403,15 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
401
403
  }
402
404
  }
403
405
  handleClosePopover() {
404
- if (this._responsivePopover?.opened) {
405
- this._responsivePopover.close();
406
+ if (this._popover?.opened) {
407
+ this._popover.close();
406
408
  this.getMoreButton().classList.remove("udex-tab-navigation__button-more--toggled");
407
409
  this._isExpanded = false;
408
410
  }
409
411
  }
410
412
  handleOpenPopover() {
411
- if (!this._responsivePopover?.opened) {
412
- this._responsivePopover.showAt(this.getMoreButton());
413
+ if (!this._popover?.opened) {
414
+ this._popover.showAt(this.getMoreButton());
413
415
  this.getMoreButton().classList.add("udex-tab-navigation__button-more--toggled");
414
416
  this._isExpanded = true;
415
417
  }
@@ -485,20 +487,20 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
485
487
  handleEnterKeyMoreButton(e) {
486
488
  if (isEnter(e)) {
487
489
  e.preventDefault();
488
- this._responsivePopover = this.getResponsePopover();
490
+ this._popover = this.getResponsePopover();
489
491
  this.updateOverflowItems();
490
492
  this.handleOpenPopover();
491
493
  }
492
494
  }
493
495
  handleDownMoreButton(e) {
494
496
  if (isDown(e) || isEnter(e)) {
495
- this._responsivePopover = this.getResponsePopover();
497
+ this._popover = this.getResponsePopover();
496
498
  this.handleOpenPopover();
497
499
  this.updateOverflowItems();
498
500
  }
499
501
  }
500
502
  onFocusFirstItemPopover() {
501
- if (this._responsivePopover?.opened) {
503
+ if (this._popover?.opened) {
502
504
  const popoverItems = this.getItemsFromPopover();
503
505
  const firstPopoverItem = popoverItems[0];
504
506
  firstPopoverItem.setAttribute("tabindex", "0");
@@ -639,7 +641,7 @@ UDExTabNavigation = UDExTabNavigation_1 = __decorate([
639
641
  renderer: litRender,
640
642
  styles: [TabNavigationCss, TabInOverflowCss],
641
643
  template: TabNavigationTemplate,
642
- dependencies: [ResponsivePopover],
644
+ dependencies: [Popover, Icon],
643
645
  })
644
646
  /**
645
647
  * Fires when the tab was clicked.
@@ -1 +1 @@
1
- {"version":3,"file":"TabNavigation.js","sourceRoot":"","sources":["../src/TabNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { StyleData } from \"@ui5/webcomponents-base/dist/types.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isUp,\n isDown,\n isRight,\n isLeft,\n isEnter,\n isSpace,\n isEscape,\n isHome,\n isEnd,\n isTabNext,\n isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Tab, { ITab } from \"./Tab.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport { MORE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport TabNavigationTemplate from \"./generated/templates/TabNavigationTemplate.lit.js\";\nimport TabNavigationPopoverTemplate from \"./generated/templates/TabNavigationPopoverTemplate.lit.js\";\n\n// Styles\nimport TabNavigationCss from \"./generated/themes/TabNavigation.css.js\";\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\n\nconst staticAreaTabStyles: Array<StyleData> = [];\n\nexport enum SizeMoreButton {\n Small = \"Small\",\n Medium = \"Medium\",\n}\n\nexport enum Mode {\n Light = \"Light\",\n Dark = \"Dark\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/TabNavigation.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab-navigation\n * @public\n */\n@customElement({\n tag: \"udex-tab-navigation\",\n renderer: litRender,\n styles: [TabNavigationCss, TabInOverflowCss],\n template: TabNavigationTemplate,\n dependencies: [ResponsivePopover],\n})\n/**\n * Fires when the tab was clicked.\n *\n * @allowPreventDefault\n * @param { Number }\n * @public\n */\n@event(\"click\", {\n detail: {\n currentPage: { type: Number },\n },\n})\nclass UDExTabNavigation extends UI5Element {\n /**\n * Defines the size of the \"More\" button.\n *\n * @public\n * @default \"Small\"\n */\n @property({ type: SizeMoreButton, defaultValue: \"Small\" })\n sizeMoreButton!: `${SizeMoreButton}`;\n\n /**\n * Defines the mode of the component.\n *\n * @public\n * @default \"Light\"\n */\n @property({ type: Mode, defaultValue: \"Light\" })\n mode!: Mode;\n\n /**\n * Defines the background color of the component.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconWithoutBackground!: boolean;\n\n @property({ type: String, defaultValue: \"auto\" })\n tabWidth!: string;\n\n /**\n * Defines selected tab.\n *\n * @private\n */\n @property({ type: Object })\n _selectedTab!: Tab;\n\n /**\n * Defines the width of component.\n *\n * @private\n */\n @property({ validator: Integer, noAttribute: true })\n _width?: number;\n\n /**\n * Defines the overflow items.\n *\n * @private\n */\n @property({ type: Object, multiple: true })\n _overflowItems!: Array<ITab>;\n\n /**\n * Defines the tabs and content.\n *\n * @slot items\n * @public\n */\n @slot({\n type: HTMLElement,\n \"default\": true,\n individualSlots: true,\n invalidateOnChildChange: true,\n })\n items!: Array<ITab>;\n\n static i18nBundle: any;\n _handleResizeBound: () => void;\n _responsivePopover?: ResponsivePopover;\n _visibleTabs?: Array<ITab | HTMLElement>;\n _isExpanded!: boolean;\n _maxTitleLength: number = 25;\n _maxTitleLengthInSecondLines: number = this._maxTitleLength * 2;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n static async onDefine(): Promise<void> {\n UDExTabNavigation.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this.getHeader(), this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this.getHeader(), this._handleResizeBound);\n }\n\n _handleResize() {\n this.handleClosePopover();\n this._width = this.offsetWidth;\n }\n\n emitClickEvent(pageIndex: number) {\n this.fireEvent(\"click\", { currentPage: pageIndex });\n }\n\n onBeforeRendering(): void {\n this.updateOverflowItems();\n this.setSelectedTab();\n }\n\n setSelectedTab() {\n if (!this.items.length) {\n return;\n }\n\n this.resetSelectedTabs();\n this.setCurrentSelectedTab();\n this.setRealTabToItems();\n this.setElementInHeader();\n }\n\n resetSelectedTabs() {\n this.items.forEach(tab => {\n tab._selected = false;\n });\n }\n\n setCurrentSelectedTab() {\n const selectedTabs = this.items.filter(tab => tab.selected);\n this._selectedTab = selectedTabs.length ? selectedTabs[0] as Tab : this.items[0] as Tab;\n this._selectedTab._selected = Boolean(selectedTabs.length ? selectedTabs.length : this.items[0]);\n }\n\n setRealTabToItems() {\n this.items.forEach((tab, index, arr) => {\n tab._iconWithoutBackground = this.iconWithoutBackground;\n tab._posinset = index + 1;\n tab._setsize = arr.length;\n tab._contentId = this.getContentId(index);\n tab._realTab = this._selectedTab;\n tab._width = this.tabWidth;\n tab._contentTabIndex = this.getContentTabIndex(tab);\n });\n }\n\n getContentId(index: number): string {\n return `udex-${index + 1}-content`;\n }\n\n getContentTabIndex(tab: ITab): string {\n if (tab.selected) {\n const focusableSelectors = [\"a[href]\", \"button\", \"textarea\", \"input\", \"select\", \"details\", \"[tabindex]:not([tabindex='-1']\"];\n const focusableElementsUDExTag = this.getAllCustomTags(tab, \"udex\");\n const focusableElementsCustomTag = this.getAllCustomTags(tab, \"ui5\").concat(focusableElementsUDExTag);\n const focusableElements = Array.from(tab.querySelectorAll(focusableSelectors.join(\",\"))).concat(focusableElementsCustomTag);\n return focusableElements.length ? \"-1\" : \"0\";\n }\n return \"-1\";\n }\n\n getAllCustomTags(tab: ITab, prefix: string) {\n const allElements = tab.querySelectorAll(\"*\");\n return Array.from(allElements).filter(element => element.tagName.toLowerCase().startsWith(prefix.toLowerCase()));\n }\n\n setElementInHeader() {\n this.items.forEach(item => {\n item.getElementInHeader = () => this.getDomRef()!.querySelector(`[id=\"${item.__id!}\"]`);\n });\n }\n\n onAfterRendering(): void {\n if (this.items.length) {\n this.setItemsInHeader();\n this.setVisibleTabs();\n this.applyTabIndex();\n } else {\n console.warn(\"You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.\");\n }\n this.initOutsideClick();\n }\n\n initOutsideClick() {\n if (this._responsivePopover?.opened) {\n this.handleOutsideClick();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", () => {\n if (this.getMoreButton()) {\n this.getMoreButton().classList.remove(\"udex-tab-navigation__button-more--toggled\");\n }\n });\n }\n\n onTabClick(e: Event) {\n const tab = this.getTab(e.target as HTMLElement);\n if (!tab) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n const selectedTabIndex = (this.items as Array<Tab>).findIndex(item => item.__id === tab.id);\n this._selectedTab = this.items[selectedTabIndex] as Tab;\n this.updateSelectedTab(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n }\n\n getTab(el: HTMLElement | null) {\n while (el) {\n if (el.localName === \"button\" && el.getAttribute(\"role\") === \"tab\") {\n return el as Tab;\n }\n\n el = el.parentElement;\n }\n\n return false;\n }\n\n updateSelectedTab(selectedTabIndex: number) {\n this.items.forEach((item, index) => {\n item.selected = selectedTabIndex === index;\n\n if (item._selected) {\n item._selected = false;\n }\n });\n this.setTabsIndex(selectedTabIndex);\n }\n\n setItemsInHeader() {\n const tabHeader = this.getTabHeader();\n let allItemsWidth = 0;\n\n if (!this._selectedTab) {\n return;\n }\n\n const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef()!);\n\n this.getMoreButton()?.setAttribute(\"hidden\", \"\");\n this.removeHiddenAttributeInAllTabs(itemsDomRefs);\n allItemsWidth += this.getTotalItemsWidth(itemsDomRefs);\n\n const hasOverflow = tabHeader.offsetWidth < allItemsWidth;\n\n if (!hasOverflow) {\n return;\n }\n\n this.getMoreButton()?.removeAttribute(\"hidden\");\n this.hideLastVisibleTab(itemsDomRefs);\n }\n\n getTabHeader() {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header-tabs`)!;\n }\n\n removeHiddenAttributeInAllTabs(itemsDomRefs: Array<ITab>) {\n for (let i = 0; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i]?.removeAttribute(\"hidden\");\n }\n }\n\n getTotalItemsWidth(itemsDomRefs: Array<ITab>) {\n let totalItemsWidth = 0;\n itemsDomRefs.forEach(item => {\n totalItemsWidth += this.getTabWidth(item);\n });\n return totalItemsWidth;\n }\n\n getTabWidth(itemDomRef: HTMLElement): number {\n const percentWidth = this.tabWidth.match(/[^a-zA-Z\\d]+/g)?.join(\"\");\n\n if (this.tabWidth === \"auto\" || percentWidth || !this.tabWidth) {\n return this.getItemWidth(itemDomRef);\n }\n\n const { marginInlineEnd } = this.getItemIndentation(itemDomRef);\n itemDomRef.style.width = this.tabWidth;\n return this.convertToPx(this.tabWidth, this.getButtonFontSize(itemDomRef)) + marginInlineEnd;\n }\n\n getButtonFontSize(itemDomRef: HTMLElement) {\n const style = window.getComputedStyle(itemDomRef);\n return parseFloat(style.fontSize);\n }\n\n convertToPx(value: string, baseFontSize: number) {\n const unit = value.match(/[a-zA-Z]+/)?.[0];\n const numericValue = parseFloat(value);\n\n if (unit === \"px\") {\n return numericValue;\n }\n\n return numericValue * baseFontSize;\n }\n\n getItemWidth(itemDomRef: HTMLElement) {\n const tabTitle = itemDomRef.innerText;\n const context = this.getItemContext();\n const { indentation, marginInlineEnd } = this.getItemIndentation(itemDomRef);\n\n if (tabTitle.length > this._maxTitleLength && tabTitle.length <= this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getMaxWidthItemTitle(tabTitle, context, indentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n if (tabTitle.length > this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getOverloadMaxWidthItemTitle(tabTitle, context, indentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n const textWidth = context.measureText(tabTitle).width;\n return Math.ceil(textWidth) + indentation;\n }\n\n private setItemWidth(itemDomRef: HTMLElement, maxWidth: number, marginInlineEnd: number) {\n itemDomRef.style.maxWidth = `${maxWidth - marginInlineEnd}px`;\n }\n\n private getItemContext() {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = \"700 16px '72 Brand Variable'\";\n return context;\n }\n\n private getItemIndentation(itemDomRef: HTMLElement) {\n const styles = window.getComputedStyle(itemDomRef);\n const paddingInlineStart = Number.parseInt(styles.paddingInlineStart);\n const paddingInlineEnd = Number.parseInt(styles.paddingInlineEnd);\n const marginInlineEnd = Number.parseInt(styles.marginInlineEnd);\n const indentation = paddingInlineStart + paddingInlineEnd + marginInlineEnd;\n return { indentation, marginInlineEnd };\n }\n\n private getMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number) {\n const slicedFirstLineText = tabTitle.slice(0, this._maxTitleLength);\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getOverloadMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number) {\n const slicedFirstLineText = tabTitle.slice(0, Math.ceil(tabTitle.length / 2));\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getItemTitleWidth(slicedFirstLineText: string, context: CanvasRenderingContext2D, tabTitle: string, indentation: number) {\n const findLastSpaceIndex = slicedFirstLineText.lastIndexOf(\" \");\n const firstLineText = slicedFirstLineText.slice(0, findLastSpaceIndex);\n const firstLineWidth = Math.ceil(context.measureText(firstLineText).width);\n\n const secondLineText = tabTitle.slice(findLastSpaceIndex, tabTitle.length);\n const secondLineWidth = Math.ceil(context.measureText(secondLineText).width);\n\n return firstLineWidth > secondLineWidth ? firstLineWidth + indentation : secondLineWidth + indentation;\n }\n\n hideLastVisibleTab(itemsDomRefs: Array<ITab>) {\n const selectedTab = this.getRootTab(this._selectedTab);\n const selectedTabDomRef = selectedTab.getTabInHeaderDomRef()!;\n const containerWidth = this.getTabHeader().offsetWidth;\n const selectedItemWidth = this.getSelectedItemWidth(itemsDomRefs, selectedTabDomRef);\n const lastVisibleTabIndex = this.findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemWidth);\n this.hideInappropriateTabs(lastVisibleTabIndex, itemsDomRefs);\n }\n\n getRootTab(tab: Tab) {\n while (tab.hasAttribute(\"udex-tab\")) {\n if (tab.parentElement!.hasAttribute(\"udex-tab-navigation\")) {\n break;\n }\n\n tab = tab.parentElement as Tab;\n }\n\n return tab;\n }\n\n getSelectedItemWidth(itemsDomRefs: Array<ITab>, selectedTabDomRef: ITab) {\n const index = itemsDomRefs.indexOf(selectedTabDomRef);\n const width = this.getTabWidth(selectedTabDomRef);\n\n itemsDomRefs.splice(index, 1);\n\n return width;\n }\n\n findLastVisibleItem(itemsDomRefs: Array<ITab>, containerWidth: number, selectedItemWidth: number, startIndex = 0) {\n let lastVisibleIndex = startIndex - 1;\n let index = startIndex;\n\n for (; index < itemsDomRefs.length; index++) {\n const itemWidth = this.getTabWidth(itemsDomRefs[index]);\n\n if (containerWidth < selectedItemWidth + itemWidth) {\n break;\n }\n\n selectedItemWidth += itemWidth;\n lastVisibleIndex = index;\n }\n\n return lastVisibleIndex;\n }\n\n hideInappropriateTabs(lastVisibleTabIndex: number, itemsDomRefs: Array<ITab>) {\n for (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i].setAttribute(\"hidden\", \"\");\n }\n }\n\n setVisibleTabs() {\n this._visibleTabs = this.items.map(tab => tab.getTabInHeaderDomRef()!)\n .filter(tab => !tab.hasAttribute(\"hidden\"));\n\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this._visibleTabs.push(this.getMoreButton());\n }\n }\n\n applyTabIndex() {\n if (!this.shadowRoot!.contains(document.activeElement)) {\n const itemsDomRefs = this.getRootTab(this._selectedTab);\n const currentIndex = this.items.indexOf(itemsDomRefs);\n\n this.setTabsIndex(currentIndex);\n }\n }\n\n setTabsIndex(currentIndex: number) {\n this.items.forEach((tab, index) => {\n tab._tabIndex = index === currentIndex ? \"0\" : \"-1\";\n });\n }\n\n handleOverflowItemClick(e: Event) {\n if ((e.target as HTMLElement).localName === \"button\") {\n e.preventDefault();\n this.onItemSelect((e.target as HTMLElement).id);\n }\n this.handleClosePopover();\n }\n\n onItemSelect(selectedId: string) {\n const [selectedTab] = this.items.filter(item => item.__id === selectedId);\n let selectedTabIndex = 0;\n\n this._selectedTab = selectedTab as Tab;\n\n this.items.forEach((item, index) => {\n item.selected = item.__id === selectedId;\n if (item.__id === selectedId) {\n selectedTabIndex = index;\n }\n });\n\n this.setVisibleTabs();\n this.setTabsIndex(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n }\n\n getMoreButton() {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-tab-navigation__button-more\")!;\n }\n\n getHeader() {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header`)!;\n }\n\n handleMoreButton() {\n this._responsivePopover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleTogglePopover();\n }\n\n updateOverflowItems() {\n this._overflowItems = this.items.filter(item => {\n const headerRef = item.getTabInHeaderDomRef();\n return headerRef && headerRef.hasAttribute(\"hidden\");\n });\n }\n\n handleTogglePopover() {\n if (this._responsivePopover?.opened) {\n this.handleClosePopover();\n } else {\n this.handleOpenPopover();\n }\n }\n\n handleClosePopover() {\n if (this._responsivePopover?.opened) {\n this._responsivePopover.close();\n this.getMoreButton().classList.remove(\"udex-tab-navigation__button-more--toggled\");\n this._isExpanded = false;\n }\n }\n\n handleOpenPopover() {\n if (!this._responsivePopover?.opened) {\n this._responsivePopover!.showAt(this.getMoreButton());\n this.getMoreButton().classList.add(\"udex-tab-navigation__button-more--toggled\");\n this._isExpanded = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n this.handleRightArrow(e);\n this.handleLeftArrow(e);\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n this.onFocusRightItem(e.target as HTMLElement);\n }\n }\n\n onFocusRightItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length;\n const nextSelectIndex = previousSelectedIndex + 1 < lastIndex ? previousSelectedIndex + 1 : 0;\n\n this._visibleTabs![nextSelectIndex].focus();\n }\n\n getTabIndexById(id: string) {\n return this._visibleTabs!.findIndex(tab => tab.id === id);\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusLeftItem(e.target as HTMLElement);\n }\n }\n\n onFocusLeftItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length - 1;\n const previousSelectIndex = previousSelectedIndex - 1 < 0 ? lastIndex : previousSelectedIndex - 1;\n\n this._visibleTabs![previousSelectIndex].focus();\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n this.onEndKey();\n }\n }\n\n onEndKey() {\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this.getMoreButton().focus();\n } else {\n const lastVisibleTab = this._visibleTabs!.length - 1;\n this._visibleTabs![lastVisibleTab].focus();\n }\n }\n\n handleFocusMoreButton(e: KeyboardEvent) {\n this.handleDownMoreButton(e);\n this.handleHomeKeyMoreButton(e);\n this.handleEnterKeyMoreButton(e);\n }\n\n handleHomeKeyMoreButton(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n e.stopPropagation();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEnterKeyMoreButton(e: KeyboardEvent) {\n if (isEnter(e)) {\n e.preventDefault();\n this._responsivePopover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleOpenPopover();\n }\n }\n\n handleDownMoreButton(e: KeyboardEvent) {\n if (isDown(e) || isEnter(e)) {\n this._responsivePopover = this.getResponsePopover();\n this.handleOpenPopover();\n this.updateOverflowItems();\n }\n }\n\n onFocusFirstItemPopover() {\n if (this._responsivePopover?.opened) {\n const popoverItems = this.getItemsFromPopover();\n const firstPopoverItem = popoverItems[0];\n firstPopoverItem.setAttribute(\"tabindex\", \"0\");\n firstPopoverItem.focus();\n }\n }\n\n handleFocusPopover(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleUp(e);\n this.handleDown(e);\n this.handleEnterOrSpace(e);\n this.handleEscape(e);\n this.handleHome(e);\n this.handleEnd(e);\n this.handleTab(e);\n }\n\n handleTab(e: KeyboardEvent): void {\n if (isTabNext(e) || isTabPrevious(e)) {\n this.handleClosePopover();\n }\n }\n\n handleUp(e: KeyboardEvent) {\n if (isUp(e)) {\n this.onPreviousItemInPopover(e.target as HTMLElement);\n }\n }\n\n onPreviousItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const previousSelectIndex = currentSelectedTabIndex - 1 < 0 ? popoverItems.length - 1 : currentSelectedTabIndex - 1;\n const prevItem = popoverItems[previousSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n prevItem.setAttribute(\"tabIndex\", \"0\");\n prevItem.focus();\n }\n\n onNextItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;\n const nextItem = popoverItems[nextSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n nextItem.setAttribute(\"tabIndex\", \"0\");\n nextItem.focus();\n }\n\n resetTabIndexItem(item: HTMLElement): void {\n item.setAttribute(\"tabIndex\", \"-1\");\n }\n\n getItemsFromPopover(): Array<HTMLElement> {\n const responsivePopover = this.getResponsePopover();\n const [contentFromPopover] = responsivePopover.content;\n return Array.from(contentFromPopover.children) as Array<HTMLElement>;\n }\n\n getPopoverTabIndexById(popoverItems: Array<HTMLElement>, id: string) {\n return popoverItems.findIndex(tab => tab.id === id);\n }\n\n handleDown(e: KeyboardEvent) {\n if (isDown(e)) {\n this.onNextItemInPopover(e.target as HTMLElement);\n }\n }\n\n handleEnterOrSpace(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n this.onItemSelect((e.target as HTMLElement).id);\n this.handleClosePopover();\n }\n }\n\n handleEscape(e: KeyboardEvent) {\n if (isEscape(e)) {\n e.preventDefault();\n this.handleClosePopover();\n this._visibleTabs![this._visibleTabs!.length - 1].focus();\n }\n }\n\n handleHome(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[0].focus();\n }\n }\n\n handleEnd(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n e.stopPropagation();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[popoverItems.length - 1].focus();\n }\n }\n\n getResponsePopover(): ResponsivePopover {\n return this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-popover]\")!;\n }\n\n get moreButtonText(): string {\n return UDExTabNavigation.i18nBundle.getText(MORE) as string;\n }\n\n static registerStaticAreaTabStyles(styles: StyleData) {\n staticAreaTabStyles.push(styles);\n }\n\n static get tabNavigationPopoverTemplate() {\n return TabNavigationPopoverTemplate;\n }\n\n get tabNavigationPopover() {\n return executeTemplate(UDExTabNavigation.tabNavigationPopoverTemplate, this);\n }\n}\n\nUDExTabNavigation.define();\n\nexport default UDExTabNavigation;\n"]}
1
+ {"version":3,"file":"TabNavigation.js","sourceRoot":"","sources":["../src/TabNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { StyleData } from \"@ui5/webcomponents-base/dist/types.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isUp,\n isDown,\n isRight,\n isLeft,\n isEnter,\n isSpace,\n isEscape,\n isHome,\n isEnd,\n isTabNext,\n isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Tab, { ITab } from \"./Tab.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport { MORE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport TabNavigationTemplate from \"./generated/templates/TabNavigationTemplate.lit.js\";\nimport TabNavigationPopoverTemplate from \"./generated/templates/TabNavigationPopoverTemplate.lit.js\";\n\n// Styles\nimport TabNavigationCss from \"./generated/themes/TabNavigation.css.js\";\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\n\nconst staticAreaTabStyles: Array<StyleData> = [];\n\nexport enum SizeMoreButton {\n Small = \"Small\",\n Medium = \"Medium\",\n}\n\nexport enum Mode {\n Light = \"Light\",\n Dark = \"Dark\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/TabNavigation.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab-navigation\n * @public\n */\n@customElement({\n tag: \"udex-tab-navigation\",\n renderer: litRender,\n styles: [TabNavigationCss, TabInOverflowCss],\n template: TabNavigationTemplate,\n dependencies: [Popover, Icon],\n})\n/**\n * Fires when the tab was clicked.\n *\n * @allowPreventDefault\n * @param { Number }\n * @public\n */\n@event(\"click\", {\n detail: {\n currentPage: { type: Number },\n },\n})\nclass UDExTabNavigation extends UI5Element {\n /**\n * Defines the size of the \"More\" button.\n *\n * @public\n * @default \"Small\"\n */\n @property({ type: SizeMoreButton, defaultValue: \"Small\" })\n sizeMoreButton!: `${SizeMoreButton}`;\n\n /**\n * Defines the mode of the component.\n *\n * @public\n * @default \"Light\"\n */\n @property({ type: Mode, defaultValue: \"Light\" })\n mode!: Mode;\n\n /**\n * Defines the background color of the component.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconWithoutBackground!: boolean;\n\n @property({ type: String, defaultValue: \"auto\" })\n tabWidth!: string;\n\n /**\n * Defines selected tab.\n *\n * @private\n */\n @property({ type: Object })\n _selectedTab!: Tab;\n\n /**\n * Defines the width of component.\n *\n * @private\n */\n @property({ validator: Integer, noAttribute: true })\n _width?: number;\n\n /**\n * Defines the overflow items.\n *\n * @private\n */\n @property({ type: Object, multiple: true })\n _overflowItems!: Array<ITab>;\n\n /**\n * Defines the tabs and content.\n *\n * @slot items\n * @public\n */\n @slot({\n type: HTMLElement,\n \"default\": true,\n individualSlots: true,\n invalidateOnChildChange: true,\n })\n items!: Array<ITab>;\n\n static i18nBundle: any;\n _handleResizeBound: () => void;\n _popover?: Popover;\n _visibleTabs?: Array<ITab | HTMLElement>;\n _isExpanded: boolean = false;\n _maxTitleLength: number = 25;\n _maxTitleLengthInSecondLines: number = this._maxTitleLength * 2;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n static async onDefine(): Promise<void> {\n UDExTabNavigation.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this.getHeader(), this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this.getHeader(), this._handleResizeBound);\n }\n\n _handleResize() {\n this.handleClosePopover();\n this._width = this.offsetWidth;\n }\n\n emitClickEvent(pageIndex: number) {\n this.fireEvent(\"click\", { currentPage: pageIndex });\n }\n\n onBeforeRendering(): void {\n this.updateOverflowItems();\n this.setSelectedTab();\n }\n\n setSelectedTab() {\n if (!this.items.length) {\n return;\n }\n\n this.resetSelectedTabs();\n this.setCurrentSelectedTab();\n this.setRealTabToItems();\n this.setElementInHeader();\n }\n\n resetSelectedTabs() {\n this.items.forEach(tab => {\n tab._selected = false;\n });\n }\n\n setCurrentSelectedTab() {\n const selectedTabs = this.items.filter(tab => tab.selected);\n this._selectedTab = selectedTabs.length ? selectedTabs[0] as Tab : this.items[0] as Tab;\n this._selectedTab._selected = Boolean(selectedTabs.length ? selectedTabs.length : this.items[0]);\n }\n\n setRealTabToItems() {\n this.items.forEach((tab, index, arr) => {\n tab._iconWithoutBackground = this.iconWithoutBackground;\n tab._posinset = index + 1;\n tab._setsize = arr.length;\n tab._contentId = this.getContentId(index);\n tab._realTab = this._selectedTab;\n tab._width = this.tabWidth;\n tab._contentTabIndex = this.getContentTabIndex(tab);\n });\n }\n\n getContentId(index: number): string {\n return `udex-${index + 1}-content`;\n }\n\n getContentTabIndex(tab: ITab): string {\n if (tab.selected) {\n const focusableSelectors = [\"a[href]\", \"button\", \"textarea\", \"input\", \"select\", \"details\", \"[tabindex]:not([tabindex='-1']\"];\n const focusableElementsUDExTag = this.getAllCustomTags(tab, \"udex\");\n const focusableElementsCustomTag = this.getAllCustomTags(tab, \"ui5\").concat(focusableElementsUDExTag);\n const focusableElements = Array.from(tab.querySelectorAll(focusableSelectors.join(\",\"))).concat(focusableElementsCustomTag);\n return focusableElements.length ? \"-1\" : \"0\";\n }\n return \"-1\";\n }\n\n getAllCustomTags(tab: ITab, prefix: string) {\n const allElements = tab.querySelectorAll(\"*\");\n return Array.from(allElements).filter(element => element.tagName.toLowerCase().startsWith(prefix.toLowerCase()));\n }\n\n setElementInHeader() {\n this.items.forEach(item => {\n item.getElementInHeader = () => this.getDomRef()!.querySelector(`[id=\"${item.__id!}\"]`);\n });\n }\n\n onAfterRendering(): void {\n if (this.items.length) {\n this.setItemsInHeader();\n this.setVisibleTabs();\n this.applyTabIndex();\n } else {\n console.warn(\"You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.\");\n }\n this.initOutsideClick();\n }\n\n initOutsideClick() {\n if (this._popover?.opened) {\n this.handleOutsideClick();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", () => {\n if (this.getMoreButton()) {\n this.getMoreButton().classList.remove(\"udex-tab-navigation__button-more--toggled\");\n }\n });\n }\n\n onTabClick(e: Event) {\n const tab = this.getTab(e.target as HTMLElement);\n if (!tab) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n const selectedTabIndex = (this.items as Array<Tab>).findIndex(item => item.__id === tab.id);\n this._selectedTab = this.items[selectedTabIndex] as Tab;\n this.updateSelectedTab(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n }\n\n getTab(el: HTMLElement | null) {\n while (el) {\n if (el.localName === \"button\" && el.getAttribute(\"role\") === \"tab\") {\n return el as Tab;\n }\n\n el = el.parentElement;\n }\n\n return false;\n }\n\n updateSelectedTab(selectedTabIndex: number) {\n this.items.forEach((item, index) => {\n item.selected = selectedTabIndex === index;\n\n if (item._selected) {\n item._selected = false;\n }\n });\n this.setTabsIndex(selectedTabIndex);\n }\n\n setItemsInHeader() {\n const tabHeader = this.getTabHeader();\n let allItemsWidth = 0;\n\n if (!this._selectedTab) {\n return;\n }\n\n const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef()!);\n\n this.getMoreButton()?.setAttribute(\"hidden\", \"\");\n this.removeHiddenAttributeInAllTabs(itemsDomRefs);\n allItemsWidth += this.getTotalItemsWidth(itemsDomRefs);\n\n const hasOverflow = tabHeader.offsetWidth < allItemsWidth;\n\n if (!hasOverflow) {\n return;\n }\n\n this.getMoreButton()?.removeAttribute(\"hidden\");\n this.hideLastVisibleTab(itemsDomRefs);\n }\n\n getTabHeader() {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header-tabs`)!;\n }\n\n removeHiddenAttributeInAllTabs(itemsDomRefs: Array<ITab>) {\n for (let i = 0; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i]?.removeAttribute(\"hidden\");\n }\n }\n\n getTotalItemsWidth(itemsDomRefs: Array<ITab>) {\n let totalItemsWidth = 0;\n itemsDomRefs.forEach(item => {\n totalItemsWidth += this.getTabWidth(item);\n });\n return totalItemsWidth;\n }\n\n getTabWidth(itemDomRef: HTMLElement): number {\n const percentWidth = this.tabWidth.match(/[^a-zA-Z\\d]+/g)?.join(\"\");\n\n if (this.tabWidth === \"auto\" || percentWidth || !this.tabWidth) {\n return this.getItemWidth(itemDomRef);\n }\n\n const { marginInlineEnd } = this.getItemIndentation(itemDomRef);\n itemDomRef.style.width = this.tabWidth;\n return this.convertToPx(this.tabWidth, this.getButtonFontSize(itemDomRef)) + marginInlineEnd;\n }\n\n getButtonFontSize(itemDomRef: HTMLElement) {\n const style = window.getComputedStyle(itemDomRef);\n return parseFloat(style.fontSize);\n }\n\n convertToPx(value: string, baseFontSize: number) {\n const unit = value.match(/[a-zA-Z]+/)?.[0];\n const numericValue = parseFloat(value);\n\n if (unit === \"px\") {\n return numericValue;\n }\n\n return numericValue * baseFontSize;\n }\n\n getItemWidth(itemDomRef: HTMLElement) {\n const tabTitle = itemDomRef.innerText;\n const context = this.getItemContext();\n const { indentation, marginInlineEnd } = this.getItemIndentation(itemDomRef);\n\n if (tabTitle.length > this._maxTitleLength && tabTitle.length <= this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getMaxWidthItemTitle(tabTitle, context, indentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n if (tabTitle.length > this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getOverloadMaxWidthItemTitle(tabTitle, context, indentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n const textWidth = context.measureText(tabTitle).width;\n return Math.ceil(textWidth) + indentation;\n }\n\n private setItemWidth(itemDomRef: HTMLElement, maxWidth: number, marginInlineEnd: number) {\n itemDomRef.style.maxWidth = `${maxWidth - marginInlineEnd}px`;\n }\n\n private getItemContext() {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = \"700 16px '72 Brand Variable'\";\n return context;\n }\n\n private getItemIndentation(itemDomRef: HTMLElement) {\n const styles = window.getComputedStyle(itemDomRef);\n const paddingInlineStart = Number.parseInt(styles.paddingInlineStart);\n const paddingInlineEnd = Number.parseInt(styles.paddingInlineEnd);\n const marginInlineEnd = Number.parseInt(styles.marginInlineEnd);\n const indentation = paddingInlineStart + paddingInlineEnd + marginInlineEnd;\n return { indentation, marginInlineEnd };\n }\n\n private getMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number) {\n const slicedFirstLineText = tabTitle.slice(0, this._maxTitleLength);\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getOverloadMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number) {\n const slicedFirstLineText = tabTitle.slice(0, Math.ceil(tabTitle.length / 2));\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getItemTitleWidth(slicedFirstLineText: string, context: CanvasRenderingContext2D, tabTitle: string, indentation: number) {\n const findLastSpaceIndex = slicedFirstLineText.lastIndexOf(\" \");\n const firstLineText = slicedFirstLineText.slice(0, findLastSpaceIndex);\n const firstLineWidth = Math.ceil(context.measureText(firstLineText).width);\n\n const secondLineText = tabTitle.slice(findLastSpaceIndex, tabTitle.length);\n const secondLineWidth = Math.ceil(context.measureText(secondLineText).width);\n\n return firstLineWidth > secondLineWidth ? firstLineWidth + indentation : secondLineWidth + indentation;\n }\n\n hideLastVisibleTab(itemsDomRefs: Array<ITab>) {\n const selectedTab = this.getRootTab(this._selectedTab);\n const selectedTabDomRef = selectedTab.getTabInHeaderDomRef()!;\n const containerWidth = this.getTabHeader().offsetWidth;\n const selectedItemWidth = this.getSelectedItemWidth(itemsDomRefs, selectedTabDomRef);\n const lastVisibleTabIndex = this.findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemWidth);\n this.hideInappropriateTabs(lastVisibleTabIndex, itemsDomRefs);\n }\n\n getRootTab(tab: Tab) {\n while (tab.hasAttribute(\"udex-tab\")) {\n if (tab.parentElement!.hasAttribute(\"udex-tab-navigation\")) {\n break;\n }\n\n tab = tab.parentElement as Tab;\n }\n\n return tab;\n }\n\n getSelectedItemWidth(itemsDomRefs: Array<ITab>, selectedTabDomRef: ITab) {\n const index = itemsDomRefs.indexOf(selectedTabDomRef);\n const width = this.getTabWidth(selectedTabDomRef);\n\n itemsDomRefs.splice(index, 1);\n\n return width;\n }\n\n findLastVisibleItem(itemsDomRefs: Array<ITab>, containerWidth: number, selectedItemWidth: number, startIndex = 0) {\n let lastVisibleIndex = startIndex - 1;\n let index = startIndex;\n\n for (; index < itemsDomRefs.length; index++) {\n const itemWidth = this.getTabWidth(itemsDomRefs[index]);\n\n if (containerWidth < selectedItemWidth + itemWidth) {\n break;\n }\n\n selectedItemWidth += itemWidth;\n lastVisibleIndex = index;\n }\n\n return lastVisibleIndex;\n }\n\n hideInappropriateTabs(lastVisibleTabIndex: number, itemsDomRefs: Array<ITab>) {\n for (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i].setAttribute(\"hidden\", \"\");\n }\n }\n\n setVisibleTabs() {\n this._visibleTabs = this.items.map(tab => tab.getTabInHeaderDomRef()!)\n .filter(tab => !tab.hasAttribute(\"hidden\"));\n\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this._visibleTabs.push(this.getMoreButton());\n }\n }\n\n applyTabIndex() {\n if (!this.shadowRoot!.contains(document.activeElement)) {\n const itemsDomRefs = this.getRootTab(this._selectedTab);\n const currentIndex = this.items.indexOf(itemsDomRefs);\n\n this.setTabsIndex(currentIndex);\n }\n }\n\n setTabsIndex(currentIndex: number) {\n this.items.forEach((tab, index) => {\n tab._tabIndex = index === currentIndex ? \"0\" : \"-1\";\n });\n }\n\n handleOverflowItemClick(e: Event) {\n if ((e.target as HTMLElement).localName === \"button\") {\n e.preventDefault();\n this.onItemSelect((e.target as HTMLElement).id);\n }\n this.handleClosePopover();\n }\n\n onItemSelect(selectedId: string) {\n const [selectedTab] = this.items.filter(item => item.__id === selectedId);\n let selectedTabIndex = 0;\n\n this._selectedTab = selectedTab as Tab;\n\n this.items.forEach((item, index) => {\n item.selected = item.__id === selectedId;\n if (item.__id === selectedId) {\n selectedTabIndex = index;\n }\n });\n\n this.setVisibleTabs();\n this.setTabsIndex(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n }\n\n getMoreButton() {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-tab-navigation__button-more\")!;\n }\n\n getHeader() {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header`)!;\n }\n\n handleMoreButton(e: Event) {\n e.stopPropagation();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleTogglePopover();\n }\n\n updateOverflowItems() {\n this._overflowItems = this.items.filter(item => {\n const headerRef = item.getTabInHeaderDomRef();\n return headerRef && headerRef.hasAttribute(\"hidden\");\n });\n }\n\n handleTogglePopover() {\n if (this._popover?.opened) {\n this.handleClosePopover();\n } else {\n this.handleOpenPopover();\n }\n }\n\n handleClosePopover() {\n if (this._popover?.opened) {\n this._popover.close();\n this.getMoreButton().classList.remove(\"udex-tab-navigation__button-more--toggled\");\n this._isExpanded = false;\n }\n }\n\n handleOpenPopover() {\n if (!this._popover?.opened) {\n this._popover!.showAt(this.getMoreButton());\n this.getMoreButton().classList.add(\"udex-tab-navigation__button-more--toggled\");\n this._isExpanded = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n this.handleRightArrow(e);\n this.handleLeftArrow(e);\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n this.onFocusRightItem(e.target as HTMLElement);\n }\n }\n\n onFocusRightItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length;\n const nextSelectIndex = previousSelectedIndex + 1 < lastIndex ? previousSelectedIndex + 1 : 0;\n\n this._visibleTabs![nextSelectIndex].focus();\n }\n\n getTabIndexById(id: string) {\n return this._visibleTabs!.findIndex(tab => tab.id === id);\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusLeftItem(e.target as HTMLElement);\n }\n }\n\n onFocusLeftItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length - 1;\n const previousSelectIndex = previousSelectedIndex - 1 < 0 ? lastIndex : previousSelectedIndex - 1;\n\n this._visibleTabs![previousSelectIndex].focus();\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n this.onEndKey();\n }\n }\n\n onEndKey() {\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this.getMoreButton().focus();\n } else {\n const lastVisibleTab = this._visibleTabs!.length - 1;\n this._visibleTabs![lastVisibleTab].focus();\n }\n }\n\n handleFocusMoreButton(e: KeyboardEvent) {\n this.handleDownMoreButton(e);\n this.handleHomeKeyMoreButton(e);\n this.handleEnterKeyMoreButton(e);\n }\n\n handleHomeKeyMoreButton(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n e.stopPropagation();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEnterKeyMoreButton(e: KeyboardEvent) {\n if (isEnter(e)) {\n e.preventDefault();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleOpenPopover();\n }\n }\n\n handleDownMoreButton(e: KeyboardEvent) {\n if (isDown(e) || isEnter(e)) {\n this._popover = this.getResponsePopover();\n this.handleOpenPopover();\n this.updateOverflowItems();\n }\n }\n\n onFocusFirstItemPopover() {\n if (this._popover?.opened) {\n const popoverItems = this.getItemsFromPopover();\n const firstPopoverItem = popoverItems[0];\n firstPopoverItem.setAttribute(\"tabindex\", \"0\");\n firstPopoverItem.focus();\n }\n }\n\n handleFocusPopover(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleUp(e);\n this.handleDown(e);\n this.handleEnterOrSpace(e);\n this.handleEscape(e);\n this.handleHome(e);\n this.handleEnd(e);\n this.handleTab(e);\n }\n\n handleTab(e: KeyboardEvent): void {\n if (isTabNext(e) || isTabPrevious(e)) {\n this.handleClosePopover();\n }\n }\n\n handleUp(e: KeyboardEvent) {\n if (isUp(e)) {\n this.onPreviousItemInPopover(e.target as HTMLElement);\n }\n }\n\n onPreviousItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const previousSelectIndex = currentSelectedTabIndex - 1 < 0 ? popoverItems.length - 1 : currentSelectedTabIndex - 1;\n const prevItem = popoverItems[previousSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n prevItem.setAttribute(\"tabIndex\", \"0\");\n prevItem.focus();\n }\n\n onNextItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;\n const nextItem = popoverItems[nextSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n nextItem.setAttribute(\"tabIndex\", \"0\");\n nextItem.focus();\n }\n\n resetTabIndexItem(item: HTMLElement): void {\n item.setAttribute(\"tabIndex\", \"-1\");\n }\n\n getItemsFromPopover(): Array<HTMLElement> {\n const responsivePopover = this.getResponsePopover();\n const [contentFromPopover] = responsivePopover.content;\n return Array.from(contentFromPopover.children) as Array<HTMLElement>;\n }\n\n getPopoverTabIndexById(popoverItems: Array<HTMLElement>, id: string) {\n return popoverItems.findIndex(tab => tab.id === id);\n }\n\n handleDown(e: KeyboardEvent) {\n if (isDown(e)) {\n this.onNextItemInPopover(e.target as HTMLElement);\n }\n }\n\n handleEnterOrSpace(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n this.onItemSelect((e.target as HTMLElement).id);\n this.handleClosePopover();\n }\n }\n\n handleEscape(e: KeyboardEvent) {\n if (isEscape(e)) {\n e.preventDefault();\n this.handleClosePopover();\n this._visibleTabs![this._visibleTabs!.length - 1].focus();\n }\n }\n\n handleHome(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[0].focus();\n }\n }\n\n handleEnd(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n e.stopPropagation();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[popoverItems.length - 1].focus();\n }\n }\n\n getResponsePopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n get moreButtonText(): string {\n return UDExTabNavigation.i18nBundle.getText(MORE) as string;\n }\n\n static registerStaticAreaTabStyles(styles: StyleData) {\n staticAreaTabStyles.push(styles);\n }\n\n static get tabNavigationPopoverTemplate() {\n return TabNavigationPopoverTemplate;\n }\n\n get tabNavigationPopover() {\n return executeTemplate(UDExTabNavigation.tabNavigationPopoverTemplate, this);\n }\n}\n\nUDExTabNavigation.define();\n\nexport default UDExTabNavigation;\n"]}
package/dist/Table.js CHANGED
@@ -146,7 +146,7 @@ let UDExTable = UDExTable_1 = class UDExTable extends UI5Element {
146
146
  }
147
147
  getParentRow() {
148
148
  const focusedElement = document.activeElement;
149
- return focusedElement.closest("udex-table-row, udex-table-header-row, udex-table-group-row");
149
+ return focusedElement.closest("[udex-table-row], [udex-table-header-row], [udex-table-group-row]");
150
150
  }
151
151
  getKeyboardNavigationItems() {
152
152
  const items = [];
@@ -186,7 +186,7 @@ let UDExTable = UDExTable_1 = class UDExTable extends UI5Element {
186
186
  return items.filter(({ elements }) => elements.length);
187
187
  }
188
188
  getInteractiveElements(el) {
189
- return el.cells.flatMap(cell => Array.from(cell.querySelectorAll("button, a, udex-button, udex-link, udex-rating-indicator")));
189
+ return el.cells.flatMap(cell => Array.from(cell.querySelectorAll("button, a, [udex-button], [udex-link], [udex-rating-indicator]")));
190
190
  }
191
191
  get _effectiveNoDataText() {
192
192
  return this.noDataText || UDExTable_1.i18nBundle.getText(TABLE_NO_DATA_FOUND);