@ui5/webcomponents-fiori 2.8.0-rc.2 → 2.8.0-rc.3

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 (301) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +3 -0
  3. package/cypress/specs/NotificationList.cy.tsx +154 -0
  4. package/cypress/specs/SearchField.cy.tsx +445 -0
  5. package/cypress/specs/UserSettingsDialog.cy.tsx +619 -0
  6. package/dist/.tsbuildinfo +1 -1
  7. package/dist/NotificationListGroupItem.d.ts +1 -1
  8. package/dist/NotificationListGroupItem.js +5 -2
  9. package/dist/NotificationListGroupItem.js.map +1 -1
  10. package/dist/NotificationListGroupItemTemplate.js +4 -5
  11. package/dist/NotificationListGroupItemTemplate.js.map +1 -1
  12. package/dist/NotificationListGroupList.d.ts +2 -0
  13. package/dist/NotificationListGroupList.js +9 -0
  14. package/dist/NotificationListGroupList.js.map +1 -1
  15. package/dist/NotificationListInternal.d.ts +6 -0
  16. package/dist/NotificationListInternal.js +119 -0
  17. package/dist/NotificationListInternal.js.map +1 -1
  18. package/dist/NotificationListItem.d.ts +0 -1
  19. package/dist/NotificationListItem.js +1 -32
  20. package/dist/NotificationListItem.js.map +1 -1
  21. package/dist/SearchField.d.ts +130 -0
  22. package/dist/SearchField.js +228 -0
  23. package/dist/SearchField.js.map +1 -0
  24. package/dist/SearchFieldScopeOption.d.ts +26 -0
  25. package/dist/SearchFieldScopeOption.js +35 -0
  26. package/dist/SearchFieldScopeOption.js.map +1 -0
  27. package/dist/SearchFieldTemplate.d.ts +2 -0
  28. package/dist/SearchFieldTemplate.js +20 -0
  29. package/dist/SearchFieldTemplate.js.map +1 -0
  30. package/dist/SideNavigationItem.js +1 -1
  31. package/dist/SideNavigationItem.js.map +1 -1
  32. package/dist/UserSettingsDialog.d.ts +118 -0
  33. package/dist/UserSettingsDialog.js +260 -0
  34. package/dist/UserSettingsDialog.js.map +1 -0
  35. package/dist/UserSettingsDialogTemplate.d.ts +2 -0
  36. package/dist/UserSettingsDialogTemplate.js +23 -0
  37. package/dist/UserSettingsDialogTemplate.js.map +1 -0
  38. package/dist/UserSettingsItem.d.ts +131 -0
  39. package/dist/UserSettingsItem.js +209 -0
  40. package/dist/UserSettingsItem.js.map +1 -0
  41. package/dist/UserSettingsItemTemplate.d.ts +4 -0
  42. package/dist/UserSettingsItemTemplate.js +20 -0
  43. package/dist/UserSettingsItemTemplate.js.map +1 -0
  44. package/dist/UserSettingsView.d.ts +43 -0
  45. package/dist/UserSettingsView.js +68 -0
  46. package/dist/UserSettingsView.js.map +1 -0
  47. package/dist/UserSettingsViewTemplate.d.ts +2 -0
  48. package/dist/UserSettingsViewTemplate.js +5 -0
  49. package/dist/UserSettingsViewTemplate.js.map +1 -0
  50. package/dist/bundle.esm.js +5 -0
  51. package/dist/bundle.esm.js.map +1 -1
  52. package/dist/css/themes/DynamicPage.css +1 -1
  53. package/dist/css/themes/DynamicPageHeader.css +1 -1
  54. package/dist/css/themes/DynamicPageHeaderActions.css +1 -1
  55. package/dist/css/themes/DynamicPageTitle.css +1 -1
  56. package/dist/css/themes/FlexibleColumnLayout.css +1 -1
  57. package/dist/css/themes/IllustratedMessage.css +1 -1
  58. package/dist/css/themes/MediaGallery.css +1 -1
  59. package/dist/css/themes/MediaGalleryItem.css +1 -1
  60. package/dist/css/themes/NavigationMenu.css +1 -1
  61. package/dist/css/themes/NavigationMenuItem.css +1 -1
  62. package/dist/css/themes/NotificationListGroupItem.css +1 -1
  63. package/dist/css/themes/NotificationListItem.css +1 -1
  64. package/dist/css/themes/NotificationListItemBase.css +1 -1
  65. package/dist/css/themes/NotificationStateIcon.css +1 -1
  66. package/dist/css/themes/Page.css +1 -1
  67. package/dist/css/themes/ProductSwitchItem.css +1 -1
  68. package/dist/css/themes/SearchField.css +1 -0
  69. package/dist/css/themes/ShellBar.css +1 -1
  70. package/dist/css/themes/ShellBarPopover.css +1 -1
  71. package/dist/css/themes/SideNavigation.css +1 -1
  72. package/dist/css/themes/SideNavigationGroup.css +1 -1
  73. package/dist/css/themes/SideNavigationItem.css +1 -1
  74. package/dist/css/themes/SideNavigationItemBase.css +1 -1
  75. package/dist/css/themes/SideNavigationPopover.css +1 -1
  76. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  77. package/dist/css/themes/Timeline.css +1 -1
  78. package/dist/css/themes/TimelineGroupItem.css +1 -1
  79. package/dist/css/themes/TimelineItem.css +1 -1
  80. package/dist/css/themes/UploadCollection.css +1 -1
  81. package/dist/css/themes/UploadCollectionItem.css +1 -1
  82. package/dist/css/themes/UserSettingsDialog.css +1 -0
  83. package/dist/css/themes/UserSettingsItem.css +1 -0
  84. package/dist/css/themes/UserSettingsView.css +1 -0
  85. package/dist/css/themes/ViewSettingsDialog.css +1 -1
  86. package/dist/css/themes/Wizard.css +1 -1
  87. package/dist/css/themes/WizardTab.css +1 -1
  88. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  89. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  90. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  91. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  92. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  93. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  94. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  95. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  96. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  97. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  98. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  99. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  100. package/dist/custom-elements-internal.json +730 -0
  101. package/dist/custom-elements.json +573 -0
  102. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  103. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  104. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  105. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  106. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  107. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  108. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  109. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  110. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  111. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  112. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  113. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  114. package/dist/generated/i18n/i18n-defaults.d.ts +10 -1
  115. package/dist/generated/i18n/i18n-defaults.js +10 -1
  116. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  117. package/dist/generated/themes/DynamicPage.css.d.ts +1 -1
  118. package/dist/generated/themes/DynamicPage.css.js +1 -1
  119. package/dist/generated/themes/DynamicPage.css.js.map +1 -1
  120. package/dist/generated/themes/DynamicPageHeader.css.d.ts +1 -1
  121. package/dist/generated/themes/DynamicPageHeader.css.js +1 -1
  122. package/dist/generated/themes/DynamicPageHeader.css.js.map +1 -1
  123. package/dist/generated/themes/DynamicPageHeaderActions.css.d.ts +1 -1
  124. package/dist/generated/themes/DynamicPageHeaderActions.css.js +1 -1
  125. package/dist/generated/themes/DynamicPageHeaderActions.css.js.map +1 -1
  126. package/dist/generated/themes/DynamicPageTitle.css.d.ts +1 -1
  127. package/dist/generated/themes/DynamicPageTitle.css.js +1 -1
  128. package/dist/generated/themes/DynamicPageTitle.css.js.map +1 -1
  129. package/dist/generated/themes/FlexibleColumnLayout.css.d.ts +1 -1
  130. package/dist/generated/themes/FlexibleColumnLayout.css.js +1 -1
  131. package/dist/generated/themes/FlexibleColumnLayout.css.js.map +1 -1
  132. package/dist/generated/themes/IllustratedMessage.css.d.ts +1 -1
  133. package/dist/generated/themes/IllustratedMessage.css.js +1 -1
  134. package/dist/generated/themes/IllustratedMessage.css.js.map +1 -1
  135. package/dist/generated/themes/MediaGallery.css.d.ts +1 -1
  136. package/dist/generated/themes/MediaGallery.css.js +1 -1
  137. package/dist/generated/themes/MediaGallery.css.js.map +1 -1
  138. package/dist/generated/themes/MediaGalleryItem.css.d.ts +1 -1
  139. package/dist/generated/themes/MediaGalleryItem.css.js +1 -1
  140. package/dist/generated/themes/MediaGalleryItem.css.js.map +1 -1
  141. package/dist/generated/themes/NavigationMenu.css.d.ts +1 -1
  142. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  143. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  144. package/dist/generated/themes/NavigationMenuItem.css.d.ts +1 -1
  145. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  146. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  147. package/dist/generated/themes/NotificationListGroupItem.css.d.ts +1 -1
  148. package/dist/generated/themes/NotificationListGroupItem.css.js +1 -1
  149. package/dist/generated/themes/NotificationListGroupItem.css.js.map +1 -1
  150. package/dist/generated/themes/NotificationListItem.css.d.ts +1 -1
  151. package/dist/generated/themes/NotificationListItem.css.js +1 -1
  152. package/dist/generated/themes/NotificationListItem.css.js.map +1 -1
  153. package/dist/generated/themes/NotificationListItemBase.css.d.ts +1 -1
  154. package/dist/generated/themes/NotificationListItemBase.css.js +1 -1
  155. package/dist/generated/themes/NotificationListItemBase.css.js.map +1 -1
  156. package/dist/generated/themes/NotificationStateIcon.css.d.ts +1 -1
  157. package/dist/generated/themes/NotificationStateIcon.css.js +1 -1
  158. package/dist/generated/themes/NotificationStateIcon.css.js.map +1 -1
  159. package/dist/generated/themes/Page.css.d.ts +1 -1
  160. package/dist/generated/themes/Page.css.js +1 -1
  161. package/dist/generated/themes/Page.css.js.map +1 -1
  162. package/dist/generated/themes/ProductSwitchItem.css.d.ts +1 -1
  163. package/dist/generated/themes/ProductSwitchItem.css.js +1 -1
  164. package/dist/generated/themes/ProductSwitchItem.css.js.map +1 -1
  165. package/dist/generated/themes/SearchField.css.d.ts +2 -0
  166. package/dist/generated/themes/SearchField.css.js +8 -0
  167. package/dist/generated/themes/SearchField.css.js.map +1 -0
  168. package/dist/generated/themes/ShellBar.css.d.ts +1 -1
  169. package/dist/generated/themes/ShellBar.css.js +1 -1
  170. package/dist/generated/themes/ShellBar.css.js.map +1 -1
  171. package/dist/generated/themes/ShellBarPopover.css.d.ts +1 -1
  172. package/dist/generated/themes/ShellBarPopover.css.js +1 -1
  173. package/dist/generated/themes/ShellBarPopover.css.js.map +1 -1
  174. package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
  175. package/dist/generated/themes/SideNavigation.css.js +1 -1
  176. package/dist/generated/themes/SideNavigation.css.js.map +1 -1
  177. package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
  178. package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
  179. package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
  180. package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
  181. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  182. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  183. package/dist/generated/themes/SideNavigationItemBase.css.d.ts +1 -1
  184. package/dist/generated/themes/SideNavigationItemBase.css.js +1 -1
  185. package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
  186. package/dist/generated/themes/SideNavigationPopover.css.d.ts +1 -1
  187. package/dist/generated/themes/SideNavigationPopover.css.js +1 -1
  188. package/dist/generated/themes/SideNavigationPopover.css.js.map +1 -1
  189. package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
  190. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  191. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  192. package/dist/generated/themes/Timeline.css.d.ts +1 -1
  193. package/dist/generated/themes/Timeline.css.js +1 -1
  194. package/dist/generated/themes/Timeline.css.js.map +1 -1
  195. package/dist/generated/themes/TimelineGroupItem.css.d.ts +1 -1
  196. package/dist/generated/themes/TimelineGroupItem.css.js +1 -1
  197. package/dist/generated/themes/TimelineGroupItem.css.js.map +1 -1
  198. package/dist/generated/themes/TimelineItem.css.d.ts +1 -1
  199. package/dist/generated/themes/TimelineItem.css.js +1 -1
  200. package/dist/generated/themes/TimelineItem.css.js.map +1 -1
  201. package/dist/generated/themes/UploadCollection.css.d.ts +1 -1
  202. package/dist/generated/themes/UploadCollection.css.js +1 -1
  203. package/dist/generated/themes/UploadCollection.css.js.map +1 -1
  204. package/dist/generated/themes/UploadCollectionItem.css.d.ts +1 -1
  205. package/dist/generated/themes/UploadCollectionItem.css.js +1 -1
  206. package/dist/generated/themes/UploadCollectionItem.css.js.map +1 -1
  207. package/dist/generated/themes/UserSettingsDialog.css.d.ts +2 -0
  208. package/dist/generated/themes/UserSettingsDialog.css.js +8 -0
  209. package/dist/generated/themes/UserSettingsDialog.css.js.map +1 -0
  210. package/dist/generated/themes/UserSettingsItem.css.d.ts +2 -0
  211. package/dist/generated/themes/UserSettingsItem.css.js +8 -0
  212. package/dist/generated/themes/UserSettingsItem.css.js.map +1 -0
  213. package/dist/generated/themes/UserSettingsView.css.d.ts +2 -0
  214. package/dist/generated/themes/UserSettingsView.css.js +8 -0
  215. package/dist/generated/themes/UserSettingsView.css.js.map +1 -0
  216. package/dist/generated/themes/ViewSettingsDialog.css.d.ts +1 -1
  217. package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
  218. package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
  219. package/dist/generated/themes/Wizard.css.d.ts +1 -1
  220. package/dist/generated/themes/Wizard.css.js +1 -1
  221. package/dist/generated/themes/Wizard.css.js.map +1 -1
  222. package/dist/generated/themes/WizardTab.css.d.ts +1 -1
  223. package/dist/generated/themes/WizardTab.css.js +1 -1
  224. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  225. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  226. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  227. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  228. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  229. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  230. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  231. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  232. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  233. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  234. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  235. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  236. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  237. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  238. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  239. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  240. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  241. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  242. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  243. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
  244. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  245. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  246. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
  247. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  248. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  249. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  250. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  251. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  252. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
  253. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  254. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  255. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  256. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  257. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  258. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
  259. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  260. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  261. package/dist/types/SearchMode.d.ts +17 -0
  262. package/dist/types/SearchMode.js +19 -0
  263. package/dist/types/SearchMode.js.map +1 -0
  264. package/dist/vscode.html-custom-data.json +104 -0
  265. package/dist/web-types.json +283 -1
  266. package/package.json +7 -7
  267. package/src/NotificationListGroupItemTemplate.tsx +37 -43
  268. package/src/SearchFieldTemplate.tsx +83 -0
  269. package/src/UserSettingsDialogTemplate.tsx +68 -0
  270. package/src/UserSettingsItemTemplate.tsx +52 -0
  271. package/src/UserSettingsViewTemplate.tsx +11 -0
  272. package/src/i18n/messagebundle.properties +27 -1
  273. package/src/themes/IllustratedMessage.css +5 -2
  274. package/src/themes/NavigationMenuItem.css +0 -1
  275. package/src/themes/NotificationListGroupItem.css +5 -0
  276. package/src/themes/SearchField.css +234 -0
  277. package/src/themes/ShellBar.css +7 -2
  278. package/src/themes/SideNavigationItemBase.css +71 -10
  279. package/src/themes/UserSettingsDialog.css +106 -0
  280. package/src/themes/UserSettingsItem.css +78 -0
  281. package/src/themes/UserSettingsView.css +13 -0
  282. package/src/themes/base/SearchField-parameters.css +23 -0
  283. package/src/themes/base/SideNavigation-parameters.css +7 -1
  284. package/src/themes/sap_fiori_3/SearchField-parameters.css +25 -0
  285. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
  286. package/src/themes/sap_fiori_3_dark/SearchField-parameters.css +25 -0
  287. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
  288. package/src/themes/sap_fiori_3_hcb/SearchField-parameters.css +25 -0
  289. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
  290. package/src/themes/sap_fiori_3_hcw/SearchField-parameters.css +25 -0
  291. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
  292. package/src/themes/sap_horizon/SideNavigation-parameters.css +7 -3
  293. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  294. package/src/themes/sap_horizon_dark/SideNavigation-parameters.css +7 -3
  295. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -0
  296. package/src/themes/sap_horizon_hcb/SearchField-parameters.css +25 -0
  297. package/src/themes/sap_horizon_hcb/SideNavigation-parameters.css +9 -3
  298. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -0
  299. package/src/themes/sap_horizon_hcw/SearchField-parameters.css +25 -0
  300. package/src/themes/sap_horizon_hcw/SideNavigation-parameters.css +9 -3
  301. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -0
@@ -0,0 +1,118 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { InputEventDetail } from "@ui5/webcomponents/dist/Input.js";
3
+ import type { ListItemClickEventDetail } from "@ui5/webcomponents/dist/List.js";
4
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
5
+ import type { PopupBeforeCloseEventDetail } from "@ui5/webcomponents/dist/Popup.js";
6
+ import type UserSettingsItem from "./UserSettingsItem.js";
7
+ type UserSettingsItemSelectEventDetail = {
8
+ item: UserSettingsItem;
9
+ };
10
+ type UserSettingsBeforeCloseEventDetail = PopupBeforeCloseEventDetail;
11
+ /**
12
+ * @class
13
+ * ### Overview
14
+ *
15
+ * The `ui5-user-settings-dialog` is an SAP Fiori-specific web component used in the `ui5-profile-menu`.
16
+ * It allows the user to easily view information and settings for an account.
17
+ *
18
+ * ### ES6 Module Import
19
+ * `import "@ui5/webcomponents-fiori/dist/UserSettingsDialog.js";`
20
+ *
21
+ * @constructor
22
+ * @extends UI5Element
23
+ * @experimental
24
+ * @public
25
+ * @since 2.8.0
26
+ */
27
+ declare class UserSettingsDialog extends UI5Element {
28
+ eventDetails: {
29
+ "selection-change": UserSettingsItemSelectEventDetail;
30
+ "open": void;
31
+ "before-close": UserSettingsBeforeCloseEventDetail;
32
+ "close": void;
33
+ };
34
+ /**
35
+ * Defines, if the User Settings Dialog is opened.
36
+ *
37
+ * @default false
38
+ * @public
39
+ */
40
+ open: boolean;
41
+ /**
42
+ * Defines the headerText of the item.
43
+ *
44
+ * @public
45
+ * @default undefined
46
+ */
47
+ headerText?: string;
48
+ /**
49
+ * Defines if the Search Field would be displayed.
50
+ *
51
+ * **Note:** By default the Search Field is not displayed.
52
+ * @default false
53
+ * @public
54
+ */
55
+ showSearchField: boolean;
56
+ /**
57
+ * Defines the user settings items.
58
+ *
59
+ * **Note:** If no setting item is set as `selected`, the first one will be selected.
60
+ * @public
61
+ */
62
+ items: Array<UserSettingsItem>;
63
+ /**
64
+ * Defines the fixed user settings items.
65
+ *
66
+ * @public
67
+ */
68
+ fixedItems: Array<UserSettingsItem>;
69
+ static i18nBundle: I18nBundle;
70
+ /**
71
+ * @private
72
+ */
73
+ _searchValue: string;
74
+ /**
75
+ * @private
76
+ */
77
+ _collapsed: boolean;
78
+ /**
79
+ * @private
80
+ */
81
+ _selectedSetting?: UserSettingsItem;
82
+ /**
83
+ * @private
84
+ */
85
+ _filteredItems: Array<UserSettingsItem>;
86
+ /**
87
+ * @private
88
+ */
89
+ _filteredFixedItems: Array<UserSettingsItem>;
90
+ /**
91
+ * @private
92
+ */
93
+ _showNoSearchResult: boolean;
94
+ /**
95
+ * Defines the current media query size.
96
+ * @private
97
+ */
98
+ _mediaRange?: any;
99
+ onBeforeRendering(): void;
100
+ _handleItemClick(e: CustomEvent<ListItemClickEventDetail>): void;
101
+ _handleDialogAfterOpen(): void;
102
+ _handleDialogBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>): void;
103
+ _handleDialogAfterClose(): void;
104
+ get accessibleNameText(): string;
105
+ get ariaRoleDescList(): string;
106
+ get closeButtonText(): string;
107
+ get noSearchResultsText(): string;
108
+ get _selectedItemSlotName(): string | undefined;
109
+ get _showSettingWithNavigation(): boolean;
110
+ _handleCloseButtonClick(): void;
111
+ _handleCollapseClick(): void;
112
+ _handleInput(e: CustomEvent<InputEventDetail>): void;
113
+ captureRef(ref: HTMLElement & {
114
+ associatedSettingItem?: UI5Element;
115
+ } | null): void;
116
+ }
117
+ export default UserSettingsDialog;
118
+ export type { UserSettingsItemSelectEventDetail, UserSettingsBeforeCloseEventDetail, };
@@ -0,0 +1,260 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var UserSettingsDialog_1;
8
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
9
+ import { customElement, property, slot, eventStrict as event, } from "@ui5/webcomponents-base/dist/decorators.js";
10
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
11
+ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
12
+ import { isPhone, isTablet, isCombi } from "@ui5/webcomponents-base/dist/Device.js";
13
+ import MediaRange from "@ui5/webcomponents-base/dist/MediaRange.js";
14
+ import UserSettingsDialogTemplate from "./UserSettingsDialogTemplate.js";
15
+ import UserSettingsDialogCss from "./generated/themes/UserSettingsDialog.css.js";
16
+ // Texts
17
+ import { USER_SETTINGS_DIALOG_ACCESSIBLE_NAME, USER_SETTINGS_LIST_ARIA_ROLE_DESC, USER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT, USER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT, } from "./generated/i18n/i18n-defaults.js";
18
+ /**
19
+ * @class
20
+ * ### Overview
21
+ *
22
+ * The `ui5-user-settings-dialog` is an SAP Fiori-specific web component used in the `ui5-profile-menu`.
23
+ * It allows the user to easily view information and settings for an account.
24
+ *
25
+ * ### ES6 Module Import
26
+ * `import "@ui5/webcomponents-fiori/dist/UserSettingsDialog.js";`
27
+ *
28
+ * @constructor
29
+ * @extends UI5Element
30
+ * @experimental
31
+ * @public
32
+ * @since 2.8.0
33
+ */
34
+ let UserSettingsDialog = UserSettingsDialog_1 = class UserSettingsDialog extends UI5Element {
35
+ constructor() {
36
+ super(...arguments);
37
+ /**
38
+ * Defines, if the User Settings Dialog is opened.
39
+ *
40
+ * @default false
41
+ * @public
42
+ */
43
+ this.open = false;
44
+ /**
45
+ * Defines if the Search Field would be displayed.
46
+ *
47
+ * **Note:** By default the Search Field is not displayed.
48
+ * @default false
49
+ * @public
50
+ */
51
+ this.showSearchField = false;
52
+ /**
53
+ * @private
54
+ */
55
+ this._searchValue = "";
56
+ /**
57
+ * @private
58
+ */
59
+ this._collapsed = false;
60
+ /**
61
+ * @private
62
+ */
63
+ this._filteredItems = [];
64
+ /**
65
+ * @private
66
+ */
67
+ this._filteredFixedItems = [];
68
+ /**
69
+ * @private
70
+ */
71
+ this._showNoSearchResult = false;
72
+ }
73
+ onBeforeRendering() {
74
+ this._mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS);
75
+ const searchValue = this._searchValue.toLowerCase();
76
+ this._filteredItems = [];
77
+ this._filteredFixedItems = [];
78
+ this.items.forEach(item => {
79
+ if (item.text.toLowerCase().includes(searchValue)) {
80
+ this._filteredItems.push(item);
81
+ }
82
+ if (item.selected) {
83
+ this._selectedSetting = item;
84
+ }
85
+ });
86
+ this.fixedItems.forEach(item => {
87
+ if (item.text.toLowerCase().includes(searchValue)) {
88
+ this._filteredFixedItems.push(item);
89
+ }
90
+ if (item.selected) {
91
+ this._selectedSetting = item;
92
+ }
93
+ });
94
+ if (this._filteredItems.length === 0 && this._filteredFixedItems.length === 0) {
95
+ this._showNoSearchResult = true;
96
+ }
97
+ else {
98
+ this._showNoSearchResult = false;
99
+ }
100
+ if (!this._selectedSetting) {
101
+ this._selectedSetting = this.items[0] || this.fixedItems[0];
102
+ }
103
+ }
104
+ _handleItemClick(e) {
105
+ const setting = e.detail.item;
106
+ const settingItem = setting.associatedSettingItem;
107
+ const eventPrevented = !this.fireDecoratorEvent("selection-change", {
108
+ item: settingItem,
109
+ });
110
+ this._collapsed = true;
111
+ if (!eventPrevented) {
112
+ this.items.forEach(item => {
113
+ item.selected = false;
114
+ });
115
+ this.fixedItems.forEach(item => {
116
+ item.selected = false;
117
+ });
118
+ settingItem.selected = true;
119
+ }
120
+ }
121
+ _handleDialogAfterOpen() {
122
+ this.fireDecoratorEvent("open");
123
+ }
124
+ _handleDialogBeforeClose(e) {
125
+ if (!e.detail.escPressed) {
126
+ return;
127
+ }
128
+ const eventPrevented = !this.fireDecoratorEvent("before-close", e.detail);
129
+ if (eventPrevented) {
130
+ e.preventDefault();
131
+ }
132
+ }
133
+ _handleDialogAfterClose() {
134
+ this.open = false;
135
+ this.fireDecoratorEvent("close");
136
+ }
137
+ get accessibleNameText() {
138
+ return UserSettingsDialog_1.i18nBundle.getText(USER_SETTINGS_DIALOG_ACCESSIBLE_NAME);
139
+ }
140
+ get ariaRoleDescList() {
141
+ return UserSettingsDialog_1.i18nBundle.getText(USER_SETTINGS_LIST_ARIA_ROLE_DESC);
142
+ }
143
+ get closeButtonText() {
144
+ return UserSettingsDialog_1.i18nBundle.getText(USER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT);
145
+ }
146
+ get noSearchResultsText() {
147
+ return UserSettingsDialog_1.i18nBundle.getText(USER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT);
148
+ }
149
+ get _selectedItemSlotName() {
150
+ return this._selectedSetting ? this._selectedSetting._individualSlot : "";
151
+ }
152
+ get _showSettingWithNavigation() {
153
+ return (isPhone() || (isTablet() && !isCombi())) || (this._mediaRange === "S" || this._mediaRange === "M");
154
+ }
155
+ _handleCloseButtonClick() {
156
+ const eventPrevented = !this.fireDecoratorEvent("before-close", { escPressed: false });
157
+ if (!eventPrevented) {
158
+ this.open = false;
159
+ }
160
+ }
161
+ _handleCollapseClick() {
162
+ this._collapsed = false;
163
+ }
164
+ _handleInput(e) {
165
+ this._searchValue = e.target.value;
166
+ }
167
+ captureRef(ref) {
168
+ if (ref) {
169
+ ref.associatedSettingItem = this;
170
+ }
171
+ }
172
+ };
173
+ __decorate([
174
+ property({ type: Boolean })
175
+ ], UserSettingsDialog.prototype, "open", void 0);
176
+ __decorate([
177
+ property({ type: String })
178
+ ], UserSettingsDialog.prototype, "headerText", void 0);
179
+ __decorate([
180
+ property({ type: Boolean })
181
+ ], UserSettingsDialog.prototype, "showSearchField", void 0);
182
+ __decorate([
183
+ slot({
184
+ "default": true,
185
+ type: HTMLElement,
186
+ individualSlots: true,
187
+ invalidateOnChildChange: {
188
+ properties: true,
189
+ slots: true,
190
+ },
191
+ })
192
+ ], UserSettingsDialog.prototype, "items", void 0);
193
+ __decorate([
194
+ slot({
195
+ type: HTMLElement,
196
+ individualSlots: true,
197
+ invalidateOnChildChange: {
198
+ properties: true,
199
+ slots: true,
200
+ },
201
+ })
202
+ ], UserSettingsDialog.prototype, "fixedItems", void 0);
203
+ __decorate([
204
+ property({ type: String })
205
+ ], UserSettingsDialog.prototype, "_searchValue", void 0);
206
+ __decorate([
207
+ property({ type: Boolean })
208
+ ], UserSettingsDialog.prototype, "_collapsed", void 0);
209
+ __decorate([
210
+ property({ type: Object })
211
+ ], UserSettingsDialog.prototype, "_selectedSetting", void 0);
212
+ __decorate([
213
+ property({ type: Boolean })
214
+ ], UserSettingsDialog.prototype, "_showNoSearchResult", void 0);
215
+ __decorate([
216
+ property({ type: String })
217
+ ], UserSettingsDialog.prototype, "_mediaRange", void 0);
218
+ __decorate([
219
+ i18n("@ui5/webcomponents-fiori")
220
+ ], UserSettingsDialog, "i18nBundle", void 0);
221
+ UserSettingsDialog = UserSettingsDialog_1 = __decorate([
222
+ customElement({
223
+ tag: "ui5-user-settings-dialog",
224
+ renderer: jsxRenderer,
225
+ template: UserSettingsDialogTemplate,
226
+ styles: [UserSettingsDialogCss],
227
+ })
228
+ /**
229
+ * Fired when an item is selected.
230
+ * @param {UserSettingsItem} item The selected `user settings item`.
231
+ * @public
232
+ */
233
+ ,
234
+ event("selection-change", {
235
+ cancelable: true,
236
+ })
237
+ /**
238
+ * Fired when a settings dialog is open.
239
+ * @public
240
+ */
241
+ ,
242
+ event("open")
243
+ /**
244
+ * Fired before the settings dialog is closed.
245
+ * @public
246
+ */
247
+ ,
248
+ event("before-close", {
249
+ cancelable: true,
250
+ })
251
+ /**
252
+ * Fired when a settings dialog is closed.
253
+ * @public
254
+ */
255
+ ,
256
+ event("close")
257
+ ], UserSettingsDialog);
258
+ UserSettingsDialog.define();
259
+ export default UserSettingsDialog;
260
+ //# sourceMappingURL=UserSettingsDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserSettingsDialog.js","sourceRoot":"","sources":["../src/UserSettingsDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tcustomElement, property, slot, eventStrict as event,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { InputEventDetail } from \"@ui5/webcomponents/dist/Input.js\";\nimport type { ListItemClickEventDetail } from \"@ui5/webcomponents/dist/List.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport type { PopupBeforeCloseEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport { isPhone, isTablet, isCombi } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport UserSettingsDialogTemplate from \"./UserSettingsDialogTemplate.js\";\nimport type UserSettingsItem from \"./UserSettingsItem.js\";\nimport UserSettingsDialogCss from \"./generated/themes/UserSettingsDialog.css.js\";\n\n// Texts\nimport {\n\tUSER_SETTINGS_DIALOG_ACCESSIBLE_NAME,\n\tUSER_SETTINGS_LIST_ARIA_ROLE_DESC,\n\tUSER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT,\n\tUSER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\ntype UserSettingsItemSelectEventDetail = {\n\titem: UserSettingsItem;\n}\n\ntype UserSettingsBeforeCloseEventDetail = PopupBeforeCloseEventDetail;\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-user-settings-dialog` is an SAP Fiori-specific web component used in the `ui5-profile-menu`.\n * It allows the user to easily view information and settings for an account.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/UserSettingsDialog.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @experimental\n * @public\n * @since 2.8.0\n */\n@customElement({\n\ttag: \"ui5-user-settings-dialog\",\n\trenderer: jsxRenderer,\n\ttemplate: UserSettingsDialogTemplate,\n\tstyles: [UserSettingsDialogCss],\n})\n\n/**\n * Fired when an item is selected.\n * @param {UserSettingsItem} item The selected `user settings item`.\n * @public\n */\n@event(\"selection-change\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when a settings dialog is open.\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired before the settings dialog is closed.\n * @public\n */\n@event(\"before-close\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when a settings dialog is closed.\n * @public\n */\n@event(\"close\")\n\nclass UserSettingsDialog extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": UserSettingsItemSelectEventDetail,\n\t\t\"open\": void,\n\t\t\"before-close\": UserSettingsBeforeCloseEventDetail,\n\t\t\"close\": void,\n\t};\n\t/**\n\t * Defines, if the User Settings Dialog is opened.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the headerText of the item.\n\t *\n\t * @public\n\t * @default undefined\n\t */\n\t@property({ type: String })\n\theaderText?: string;\n\n\t/**\n\t * Defines if the Search Field would be displayed.\n\t *\n\t * **Note:** By default the Search Field is not displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSearchField = false;\n\n\t/**\n\t * Defines the user settings items.\n\t *\n\t * **Note:** If no setting item is set as `selected`, the first one will be selected.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true,\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: true,\n\t\t},\n\t})\n\titems!: Array<UserSettingsItem>;\n\n\t/**\n\t * Defines the fixed user settings items.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: true,\n\t\t},\n\t})\n\tfixedItems!: Array<UserSettingsItem>;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: String })\n\t_searchValue = \"\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_collapsed = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_selectedSetting?: UserSettingsItem;\n\n\t/**\n\t * @private\n\t */\n\t_filteredItems: Array<UserSettingsItem> = [];\n\n\t/**\n\t * @private\n\t */\n\t_filteredFixedItems: Array<UserSettingsItem> = [];\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_showNoSearchResult = false;\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property({ type: String })\n\t_mediaRange?: any;\n\n\tonBeforeRendering() {\n\t\tthis._mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS);\n\t\tconst searchValue = this._searchValue.toLowerCase();\n\t\tthis._filteredItems = [];\n\t\tthis._filteredFixedItems = [];\n\n\t\tthis.items.forEach(item => {\n\t\t\tif (item.text.toLowerCase().includes(searchValue)) {\n\t\t\t\tthis._filteredItems.push(item);\n\t\t\t}\n\n\t\t\tif (item.selected) {\n\t\t\t\tthis._selectedSetting = item;\n\t\t\t}\n\t\t});\n\n\t\tthis.fixedItems.forEach(item => {\n\t\t\tif (item.text.toLowerCase().includes(searchValue)) {\n\t\t\t\tthis._filteredFixedItems.push(item);\n\t\t\t}\n\n\t\t\tif (item.selected) {\n\t\t\t\tthis._selectedSetting = item;\n\t\t\t}\n\t\t});\n\n\t\tif (this._filteredItems.length === 0 && this._filteredFixedItems.length === 0) {\n\t\t\tthis._showNoSearchResult = true;\n\t\t} else {\n\t\t\tthis._showNoSearchResult = false;\n\t\t}\n\n\t\tif (!this._selectedSetting) {\n\t\t\tthis._selectedSetting = this.items[0] || this.fixedItems[0];\n\t\t}\n\t}\n\n\t_handleItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst setting = e.detail.item as ListItemBase & { associatedSettingItem: UserSettingsItem };\n\t\tconst settingItem = setting.associatedSettingItem;\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"selection-change\", {\n\t\t\titem: settingItem,\n\t\t});\n\t\tthis._collapsed = true;\n\n\t\tif (!eventPrevented) {\n\t\t\tthis.items.forEach(item => {\n\t\t\t\titem.selected = false;\n\t\t\t});\n\t\t\tthis.fixedItems.forEach(item => {\n\t\t\t\titem.selected = false;\n\t\t\t});\n\t\t\tsettingItem.selected = true;\n\t\t}\n\t}\n\n\t_handleDialogAfterOpen() {\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handleDialogBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>) {\n\t\tif (!e.detail.escPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"before-close\", e.detail);\n\n\t\tif (eventPrevented) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_handleDialogAfterClose() {\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\tget accessibleNameText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_ACCESSIBLE_NAME);\n\t}\n\n\tget ariaRoleDescList() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_LIST_ARIA_ROLE_DESC);\n\t}\n\n\tget closeButtonText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT);\n\t}\n\tget noSearchResultsText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT);\n\t}\n\n\tget _selectedItemSlotName() {\n\t\treturn this._selectedSetting ? this._selectedSetting._individualSlot : \"\";\n\t}\n\n\tget _showSettingWithNavigation() {\n\t\treturn (isPhone() || (isTablet() && !isCombi())) || (this._mediaRange === \"S\" || this._mediaRange === \"M\");\n\t}\n\n\t_handleCloseButtonClick() {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"before-close\", { escPressed: false });\n\n\t\tif (!eventPrevented) {\n\t\t\tthis.open = false;\n\t\t}\n\t}\n\n\t_handleCollapseClick() {\n\t\tthis._collapsed = false;\n\t}\n\n\t_handleInput(e: CustomEvent<InputEventDetail>) {\n\t\tthis._searchValue = (e.target as Input).value;\n\t}\n\n\tcaptureRef(ref: HTMLElement & { associatedSettingItem?: UI5Element} | null) {\n\t\tif (ref) {\n\t\t\tref.associatedSettingItem = this;\n\t\t}\n\t}\n}\n\nUserSettingsDialog.define();\n\nexport default UserSettingsDialog;\nexport type {\n\tUserSettingsItemSelectEventDetail,\n\tUserSettingsBeforeCloseEventDetail,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import type UserSettingsDialog from "./UserSettingsDialog.js";
2
+ export default function UserSettingsDialogTemplate(this: UserSettingsDialog): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
+ import Dialog from "@ui5/webcomponents/dist/Dialog.js";
3
+ import Title from "@ui5/webcomponents/dist/Title.js";
4
+ import Input from "@ui5/webcomponents/dist/Input.js";
5
+ import Text from "@ui5/webcomponents/dist/Text.js";
6
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
7
+ import List from "@ui5/webcomponents/dist/List.js";
8
+ import ListItemStandard from "@ui5/webcomponents/dist/ListItemStandard.js";
9
+ import ToolbarButton from "@ui5/webcomponents/dist/ToolbarButton.js";
10
+ import Toolbar from "@ui5/webcomponents/dist/Toolbar.js";
11
+ import search from "@ui5/webcomponents-icons/dist/search.js";
12
+ export default function UserSettingsDialogTemplate() {
13
+ return (_jsxs(Dialog, { class: "ui5-user-settings-dialog", open: this.open, stretch: true, accessibleName: this.accessibleNameText, "onui5-_collapse": this._handleCollapseClick, onOpen: this._handleDialogAfterOpen, onBeforeClose: this._handleDialogBeforeClose, onClose: this._handleDialogAfterClose, initialFocus: `setting-${this._selectedSetting?._id}`, children: [_jsxs("div", { class: "ui5-user-settings-root", children: [_jsxs("div", { class: "ui5-user-settings-side", "aria-orientation": "vertical", "aria-roledescription": this.ariaRoleDescList, children: [_jsxs("div", { class: "ui5-user-settings-side-header", children: [this.headerText &&
14
+ _jsx(Title, { level: "H1", size: "H4", children: this.headerText }), this.showSearchField &&
15
+ _jsx(Input, { placeholder: "Search", type: "Search", class: "ui5-user-settings-side-search", onInput: this._handleInput, children: _jsx(Icon, { id: "searchFieldIcon", slot: "icon", name: search, showTooltip: true }) })] }), this._showNoSearchResult ?
16
+ _jsx("div", { class: "ui5-user-settings-side-search", children: _jsx(Text, { children: this.noSearchResultsText }) })
17
+ :
18
+ renderList.call(this, this._filteredItems, "ui5-user-settings-side-items"), this._filteredFixedItems.length > 0 && renderList.call(this, this._filteredFixedItems, "ui5-user-settings-side-fixedItems")] }), _jsx("div", { class: "ui5-user-settings-content", children: _jsx("slot", { name: this._selectedItemSlotName }) })] }), _jsx(Toolbar, { slot: "footer", design: "Transparent", children: _jsx(ToolbarButton, { design: "Transparent", text: this.closeButtonText, tooltip: this.closeButtonText, onClick: this._handleCloseButtonClick }) })] }));
19
+ }
20
+ function renderList(items = [], classes) {
21
+ return _jsx(List, { accessibleRole: "Menu", onItemClick: this._handleItemClick, class: classes, separators: "None", children: items.map(item => (_jsx(ListItemStandard, { id: `setting-${item._id}`, icon: item._icon, tooltip: item._tooltip, ref: this.captureRef.bind(item), selected: item.selected, disabled: item.disabled, accessibleName: item.ariaLabelledByText, type: this._showSettingWithNavigation ? "Navigation" : "Active", children: item.text }))) });
22
+ }
23
+ //# sourceMappingURL=UserSettingsDialogTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserSettingsDialogTemplate.js","sourceRoot":"","sources":["../src/UserSettingsDialogTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UserSettingsDialog from \"./UserSettingsDialog.js\";\nimport Dialog from \"@ui5/webcomponents/dist/Dialog.js\";\nimport Title from \"@ui5/webcomponents/dist/Title.js\";\nimport Input from \"@ui5/webcomponents/dist/Input.js\";\nimport Text from \"@ui5/webcomponents/dist/Text.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport ListItemStandard from \"@ui5/webcomponents/dist/ListItemStandard.js\";\nimport ToolbarButton from \"@ui5/webcomponents/dist/ToolbarButton.js\";\nimport Toolbar from \"@ui5/webcomponents/dist/Toolbar.js\";\nimport search from \"@ui5/webcomponents-icons/dist/search.js\";\nimport type UserSettingsItem from \"./UserSettingsItem.js\";\n\nexport default function UserSettingsDialogTemplate(this: UserSettingsDialog) {\n\treturn (\n\n\t\t<Dialog class=\"ui5-user-settings-dialog\"\n\t\t\topen={this.open}\n\t\t\tstretch\n\t\t\taccessibleName={this.accessibleNameText}\n\t\t\tonui5-_collapse={this._handleCollapseClick}\n\t\t\tonOpen={this._handleDialogAfterOpen}\n\t\t\tonBeforeClose={this._handleDialogBeforeClose}\n\t\t\tonClose={this._handleDialogAfterClose}\n\t\t\tinitialFocus={`setting-${this._selectedSetting?._id}`}\n\t\t>\n\t\t\t<div class=\"ui5-user-settings-root\">\n\t\t\t\t<div class=\"ui5-user-settings-side\" aria-orientation=\"vertical\" aria-roledescription={this.ariaRoleDescList}>\n\t\t\t\t\t<div class=\"ui5-user-settings-side-header\">\n\t\t\t\t\t\t{this.headerText &&\n\t\t\t\t\t\t\t<Title level=\"H1\" size=\"H4\">{this.headerText}</Title>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{this.showSearchField &&\n\t\t\t\t\t\t\t<Input placeholder=\"Search\" type=\"Search\" class=\"ui5-user-settings-side-search\"\n\t\t\t\t\t\t\t\t onInput={this._handleInput}>\n\t\t\t\t\t\t\t\t<Icon id=\"searchFieldIcon\" slot=\"icon\" name={search} showTooltip></Icon>\n\t\t\t\t\t\t\t</Input>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t{this._showNoSearchResult ?\n\t\t\t\t\t\t<div class=\"ui5-user-settings-side-search\">\n\t\t\t\t\t\t\t<Text>{this.noSearchResultsText}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t:\n\t\t\t\t\t\trenderList.call(this, this._filteredItems, \"ui5-user-settings-side-items\")}\n\n\t\t\t\t\t{this._filteredFixedItems.length > 0 && renderList.call(this, this._filteredFixedItems, \"ui5-user-settings-side-fixedItems\")}\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"ui5-user-settings-content\">\n\t\t\t\t\t<slot name={this._selectedItemSlotName}></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<Toolbar slot=\"footer\" design=\"Transparent\">\n\t\t\t\t<ToolbarButton design=\"Transparent\" text={this.closeButtonText} tooltip={this.closeButtonText} onClick={this._handleCloseButtonClick} />\n\t\t\t</Toolbar>\n\t\t</Dialog>\n\t);\n}\n\nfunction renderList(this: UserSettingsDialog, items: Array<UserSettingsItem> = [], classes: string) {\n\treturn <List accessibleRole=\"Menu\" onItemClick={this._handleItemClick} class={classes} separators=\"None\">\n\t\t{items.map(item => (\n\t\t\t<ListItemStandard id={`setting-${item._id}`} icon={item._icon} tooltip={item._tooltip} ref={this.captureRef.bind(item)} selected={item.selected} disabled={item.disabled} accessibleName={item.ariaLabelledByText} type={this._showSettingWithNavigation ? \"Navigation\" : \"Active\"}>{item.text}</ListItemStandard>\n\t\t))}\n\t</List>;\n}\n"]}
@@ -0,0 +1,131 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { TabContainerTabSelectEventDetail } from "@ui5/webcomponents/dist/TabContainer.js";
3
+ import type UserSettingsView from "./UserSettingsView.js";
4
+ type UserSettingsItemViewSelectEventDetail = {
5
+ view: UserSettingsView;
6
+ };
7
+ type UserSettingsItemBackClickEventDetail = {
8
+ view: UserSettingsView;
9
+ };
10
+ /**
11
+ * @class
12
+ * ### Overview
13
+ *
14
+ * The `ui5-user-settings-item` represents an item in the `ui5-user-settings-dialog`.
15
+ *
16
+ * ### ES6 Module Import
17
+ * `import "@ui5/webcomponents-fiori/dist/UserSettingsItem.js";`
18
+ *
19
+ * You can disable the <code>UserSettingsItem</code> by setting the <code>enabled</code> property to <code>false</code>,
20
+ * or use the <code>UserSettingsItem</code> in read-only mode by setting the <code>editable</code> property to false.
21
+ *
22
+ * <b>Note:</b> Disabled and read-only states shouldn't be used together.
23
+ *
24
+ * @constructor
25
+ * @extends UI5Element
26
+ * @experimental
27
+ * @public
28
+ * @since 2.8.0
29
+ */
30
+ declare class UserSettingsItem extends UI5Element {
31
+ eventDetails: {
32
+ "_collapse": void;
33
+ "selection-change": UserSettingsItemViewSelectEventDetail;
34
+ "back-click": UserSettingsItemBackClickEventDetail;
35
+ };
36
+ /**
37
+ * Defines the text of the user settings item.
38
+ *
39
+ * @public
40
+ * @default ""
41
+ */
42
+ text: string;
43
+ /**
44
+ * Defines the tooltip of the component.
45
+ *
46
+ * A tooltip attribute should be provided to represent the meaning or function when the component is collapsed and only the icon is visible.
47
+ * @default ""
48
+ * @public
49
+ */
50
+ tooltip: string;
51
+ /**
52
+ * Defines the headerText of the item.
53
+ *
54
+ * @public
55
+ * @default ""
56
+ */
57
+ headerText?: string;
58
+ /**
59
+ * Shows item tab.
60
+ *
61
+ * @public
62
+ * @default false
63
+ */
64
+ selected: boolean;
65
+ /**
66
+ * Defines whether the component is in disabled state.
67
+ *
68
+ * **Note:** A disabled component is completely noninteractive.
69
+ * @default false
70
+ * @public
71
+ */
72
+ disabled: boolean;
73
+ /**
74
+ * Indicates whether a loading indicator should be shown.
75
+ * @default false
76
+ * @public
77
+ */
78
+ loading: boolean;
79
+ /**
80
+ * Indicates why the control is in loading state.
81
+ * @default undefined
82
+ * @public
83
+ */
84
+ loadingReason?: string;
85
+ /**
86
+ * Defines the icon of the component.
87
+ *
88
+ * @default "globe"
89
+ * @public
90
+ */
91
+ icon: string;
92
+ /**
93
+ * Defines the accessible ARIA name of the component.
94
+ * @default undefined
95
+ * @public
96
+ */
97
+ accessibleName?: string;
98
+ /**
99
+ * Defines the tab views of the user settings item.
100
+ *
101
+ * The tab views are displayed by default if there is no selected page view.
102
+ * @public
103
+ */
104
+ tabs: Array<UserSettingsView>;
105
+ /**
106
+ * Defines the page views of the user settings item.
107
+ *
108
+ * If there are no tab views, the first page view will be shown unless there is selected one. If there is selected page
109
+ * view it will be shown no matter if there are tab views.
110
+ *
111
+ * @public
112
+ */
113
+ pages: Array<UserSettingsView>;
114
+ /**
115
+ * @private
116
+ */
117
+ _individualSlot?: string;
118
+ get _hasSelectedPageView(): boolean;
119
+ get _selectedPageView(): UserSettingsView;
120
+ get ariaLabelledByText(): string;
121
+ get _tooltip(): string;
122
+ get _icon(): string;
123
+ _handleBackButtonClick(): void;
124
+ _handleTabSelect(e: CustomEvent<TabContainerTabSelectEventDetail>): void;
125
+ get _shouldShowBackButton(): boolean;
126
+ captureRef(this: UserSettingsView, ref: HTMLElement & {
127
+ associatedSettingView?: UserSettingsView;
128
+ } | null): void;
129
+ }
130
+ export default UserSettingsItem;
131
+ export type { UserSettingsItemViewSelectEventDetail, UserSettingsItemBackClickEventDetail, };