@ui5/webcomponents-fiori 2.7.0-rc.0 → 2.7.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/cypress/specs/ShellBar.cy.ts +241 -0
  3. package/cypress/specs/Timeline.cy.ts +55 -0
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/DynamicPage.d.ts +0 -11
  6. package/dist/DynamicPage.js +0 -15
  7. package/dist/DynamicPage.js.map +1 -1
  8. package/dist/FlexibleColumnLayout.d.ts +11 -3
  9. package/dist/FlexibleColumnLayout.js +63 -5
  10. package/dist/FlexibleColumnLayout.js.map +1 -1
  11. package/dist/FlexibleColumnLayoutTemplate.js +6 -2
  12. package/dist/FlexibleColumnLayoutTemplate.js.map +1 -1
  13. package/dist/ShellBar.d.ts +87 -37
  14. package/dist/ShellBar.js +492 -195
  15. package/dist/ShellBar.js.map +1 -1
  16. package/dist/ShellBarPopoverTemplate.d.ts +2 -0
  17. package/dist/ShellBarPopoverTemplate.js +8 -0
  18. package/dist/ShellBarPopoverTemplate.js.map +1 -0
  19. package/dist/ShellBarSpacer.d.ts +17 -0
  20. package/dist/ShellBarSpacer.js +38 -0
  21. package/dist/ShellBarSpacer.js.map +1 -0
  22. package/dist/ShellBarTemplate.d.ts +2 -0
  23. package/dist/ShellBarTemplate.js +36 -0
  24. package/dist/ShellBarTemplate.js.map +1 -0
  25. package/dist/TimelineGroupItem.d.ts +1 -2
  26. package/dist/TimelineGroupItem.js +0 -7
  27. package/dist/TimelineGroupItem.js.map +1 -1
  28. package/dist/TimelineGroupItemTemplate.js +12 -1
  29. package/dist/TimelineGroupItemTemplate.js.map +1 -1
  30. package/dist/TimelineItem.d.ts +13 -0
  31. package/dist/TimelineItem.js +29 -2
  32. package/dist/TimelineItem.js.map +1 -1
  33. package/dist/TimelineItemTemplate.js +2 -2
  34. package/dist/TimelineItemTemplate.js.map +1 -1
  35. package/dist/Wizard.d.ts +0 -2
  36. package/dist/Wizard.js +0 -15
  37. package/dist/Wizard.js.map +1 -1
  38. package/dist/bundle.esm.js +1 -0
  39. package/dist/bundle.esm.js.map +1 -1
  40. package/dist/css/themes/DynamicPage.css +1 -1
  41. package/dist/css/themes/DynamicPageHeader.css +1 -1
  42. package/dist/css/themes/DynamicPageHeaderActions.css +1 -1
  43. package/dist/css/themes/DynamicPageTitle.css +1 -1
  44. package/dist/css/themes/FlexibleColumnLayout.css +1 -1
  45. package/dist/css/themes/MediaGallery.css +1 -1
  46. package/dist/css/themes/MediaGalleryItem.css +1 -1
  47. package/dist/css/themes/NotificationListGroupItem.css +1 -1
  48. package/dist/css/themes/NotificationListItem.css +1 -1
  49. package/dist/css/themes/NotificationListItemBase.css +1 -1
  50. package/dist/css/themes/NotificationStateIcon.css +1 -1
  51. package/dist/css/themes/Page.css +1 -1
  52. package/dist/css/themes/ProductSwitchItem.css +1 -1
  53. package/dist/css/themes/ShellBar.css +1 -1
  54. package/dist/css/themes/ShellBarPopover.css +1 -1
  55. package/dist/css/themes/SideNavigation.css +1 -1
  56. package/dist/css/themes/SideNavigationGroup.css +1 -1
  57. package/dist/css/themes/SideNavigationItem.css +1 -1
  58. package/dist/css/themes/SideNavigationItemBase.css +1 -1
  59. package/dist/css/themes/SideNavigationPopover.css +1 -1
  60. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  61. package/dist/css/themes/Timeline.css +1 -1
  62. package/dist/css/themes/TimelineGroupItem.css +1 -1
  63. package/dist/css/themes/TimelineItem.css +1 -1
  64. package/dist/css/themes/UploadCollection.css +1 -1
  65. package/dist/css/themes/UploadCollectionItem.css +1 -1
  66. package/dist/css/themes/ViewSettingsDialog.css +1 -1
  67. package/dist/css/themes/Wizard.css +1 -1
  68. package/dist/css/themes/WizardTab.css +1 -1
  69. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  70. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  71. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  72. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  73. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  74. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  75. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  76. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  77. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  78. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  79. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  80. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  81. package/dist/custom-elements-internal.json +132 -3
  82. package/dist/custom-elements.json +83 -3
  83. package/dist/fcl-utils/FCLLayout.d.ts +9 -1
  84. package/dist/fcl-utils/FCLLayout.js +73 -3
  85. package/dist/fcl-utils/FCLLayout.js.map +1 -1
  86. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  87. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  88. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  89. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  90. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  91. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  92. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  93. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  94. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  95. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  96. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  97. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  98. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  99. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  100. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  136. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  143. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  144. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  145. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  146. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  147. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  148. package/dist/generated/i18n/i18n-defaults.d.ts +12 -1
  149. package/dist/generated/i18n/i18n-defaults.js +12 -1
  150. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  151. package/dist/generated/themes/DynamicPage.css.d.ts +1 -1
  152. package/dist/generated/themes/DynamicPage.css.js +1 -1
  153. package/dist/generated/themes/DynamicPage.css.js.map +1 -1
  154. package/dist/generated/themes/DynamicPageHeader.css.d.ts +1 -1
  155. package/dist/generated/themes/DynamicPageHeader.css.js +1 -1
  156. package/dist/generated/themes/DynamicPageHeader.css.js.map +1 -1
  157. package/dist/generated/themes/DynamicPageHeaderActions.css.d.ts +1 -1
  158. package/dist/generated/themes/DynamicPageHeaderActions.css.js +1 -1
  159. package/dist/generated/themes/DynamicPageHeaderActions.css.js.map +1 -1
  160. package/dist/generated/themes/DynamicPageTitle.css.d.ts +1 -1
  161. package/dist/generated/themes/DynamicPageTitle.css.js +1 -1
  162. package/dist/generated/themes/DynamicPageTitle.css.js.map +1 -1
  163. package/dist/generated/themes/FlexibleColumnLayout.css.d.ts +1 -1
  164. package/dist/generated/themes/FlexibleColumnLayout.css.js +1 -1
  165. package/dist/generated/themes/FlexibleColumnLayout.css.js.map +1 -1
  166. package/dist/generated/themes/MediaGallery.css.d.ts +1 -1
  167. package/dist/generated/themes/MediaGallery.css.js +1 -1
  168. package/dist/generated/themes/MediaGallery.css.js.map +1 -1
  169. package/dist/generated/themes/MediaGalleryItem.css.d.ts +1 -1
  170. package/dist/generated/themes/MediaGalleryItem.css.js +1 -1
  171. package/dist/generated/themes/MediaGalleryItem.css.js.map +1 -1
  172. package/dist/generated/themes/NotificationListGroupItem.css.d.ts +1 -1
  173. package/dist/generated/themes/NotificationListGroupItem.css.js +1 -1
  174. package/dist/generated/themes/NotificationListGroupItem.css.js.map +1 -1
  175. package/dist/generated/themes/NotificationListItem.css.d.ts +1 -1
  176. package/dist/generated/themes/NotificationListItem.css.js +1 -1
  177. package/dist/generated/themes/NotificationListItem.css.js.map +1 -1
  178. package/dist/generated/themes/NotificationListItemBase.css.d.ts +1 -1
  179. package/dist/generated/themes/NotificationListItemBase.css.js +1 -1
  180. package/dist/generated/themes/NotificationListItemBase.css.js.map +1 -1
  181. package/dist/generated/themes/NotificationStateIcon.css.d.ts +1 -1
  182. package/dist/generated/themes/NotificationStateIcon.css.js +1 -1
  183. package/dist/generated/themes/NotificationStateIcon.css.js.map +1 -1
  184. package/dist/generated/themes/Page.css.d.ts +1 -1
  185. package/dist/generated/themes/Page.css.js +1 -1
  186. package/dist/generated/themes/Page.css.js.map +1 -1
  187. package/dist/generated/themes/ProductSwitchItem.css.d.ts +1 -1
  188. package/dist/generated/themes/ProductSwitchItem.css.js +1 -1
  189. package/dist/generated/themes/ProductSwitchItem.css.js.map +1 -1
  190. package/dist/generated/themes/ShellBar.css.d.ts +1 -1
  191. package/dist/generated/themes/ShellBar.css.js +1 -1
  192. package/dist/generated/themes/ShellBar.css.js.map +1 -1
  193. package/dist/generated/themes/ShellBarPopover.css.d.ts +1 -1
  194. package/dist/generated/themes/ShellBarPopover.css.js +1 -1
  195. package/dist/generated/themes/ShellBarPopover.css.js.map +1 -1
  196. package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
  197. package/dist/generated/themes/SideNavigation.css.js +1 -1
  198. package/dist/generated/themes/SideNavigation.css.js.map +1 -1
  199. package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
  200. package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
  201. package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
  202. package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
  203. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  204. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  205. package/dist/generated/themes/SideNavigationItemBase.css.d.ts +1 -1
  206. package/dist/generated/themes/SideNavigationItemBase.css.js +1 -1
  207. package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
  208. package/dist/generated/themes/SideNavigationPopover.css.d.ts +1 -1
  209. package/dist/generated/themes/SideNavigationPopover.css.js +1 -1
  210. package/dist/generated/themes/SideNavigationPopover.css.js.map +1 -1
  211. package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
  212. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  213. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  214. package/dist/generated/themes/Timeline.css.d.ts +1 -1
  215. package/dist/generated/themes/Timeline.css.js +1 -1
  216. package/dist/generated/themes/Timeline.css.js.map +1 -1
  217. package/dist/generated/themes/TimelineGroupItem.css.d.ts +1 -1
  218. package/dist/generated/themes/TimelineGroupItem.css.js +1 -1
  219. package/dist/generated/themes/TimelineGroupItem.css.js.map +1 -1
  220. package/dist/generated/themes/TimelineItem.css.d.ts +1 -1
  221. package/dist/generated/themes/TimelineItem.css.js +1 -1
  222. package/dist/generated/themes/TimelineItem.css.js.map +1 -1
  223. package/dist/generated/themes/UploadCollection.css.d.ts +1 -1
  224. package/dist/generated/themes/UploadCollection.css.js +1 -1
  225. package/dist/generated/themes/UploadCollection.css.js.map +1 -1
  226. package/dist/generated/themes/UploadCollectionItem.css.d.ts +1 -1
  227. package/dist/generated/themes/UploadCollectionItem.css.js +1 -1
  228. package/dist/generated/themes/UploadCollectionItem.css.js.map +1 -1
  229. package/dist/generated/themes/ViewSettingsDialog.css.d.ts +1 -1
  230. package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
  231. package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
  232. package/dist/generated/themes/Wizard.css.d.ts +1 -1
  233. package/dist/generated/themes/Wizard.css.js +1 -1
  234. package/dist/generated/themes/Wizard.css.js.map +1 -1
  235. package/dist/generated/themes/WizardTab.css.d.ts +1 -1
  236. package/dist/generated/themes/WizardTab.css.js +1 -1
  237. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  238. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  239. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  240. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  241. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  242. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  243. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  244. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  245. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  246. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  247. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  248. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  249. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  250. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  251. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  252. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  253. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  254. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  255. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  256. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
  257. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  258. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  259. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
  260. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  261. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  262. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  263. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  264. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  265. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
  266. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  267. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  268. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  269. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  270. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  271. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
  272. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  273. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  274. package/dist/types/FCLLayout.d.ts +18 -0
  275. package/dist/types/FCLLayout.js +18 -0
  276. package/dist/types/FCLLayout.js.map +1 -1
  277. package/dist/vscode.html-custom-data.json +21 -2
  278. package/dist/web-types.json +41 -6
  279. package/package.json +7 -7
  280. package/src/FlexibleColumnLayoutTemplate.tsx +18 -4
  281. package/src/ShellBarPopoverTemplate.tsx +47 -0
  282. package/src/ShellBarTemplate.tsx +276 -0
  283. package/src/TimelineGroupItemTemplate.tsx +14 -1
  284. package/src/TimelineItemTemplate.tsx +2 -1
  285. package/src/i18n/messagebundle.properties +28 -0
  286. package/src/i18n/messagebundle_ar.properties +2 -0
  287. package/src/i18n/messagebundle_bg.properties +2 -0
  288. package/src/i18n/messagebundle_ca.properties +2 -0
  289. package/src/i18n/messagebundle_cnr.properties +2 -0
  290. package/src/i18n/messagebundle_cs.properties +2 -0
  291. package/src/i18n/messagebundle_cy.properties +2 -0
  292. package/src/i18n/messagebundle_da.properties +2 -0
  293. package/src/i18n/messagebundle_de.properties +2 -0
  294. package/src/i18n/messagebundle_el.properties +2 -0
  295. package/src/i18n/messagebundle_en.properties +6 -0
  296. package/src/i18n/messagebundle_en_GB.properties +2 -0
  297. package/src/i18n/messagebundle_en_US_sappsd.properties +6 -0
  298. package/src/i18n/messagebundle_en_US_saprigi.properties +6 -0
  299. package/src/i18n/messagebundle_en_US_saptrc.properties +6 -0
  300. package/src/i18n/messagebundle_es.properties +2 -0
  301. package/src/i18n/messagebundle_es_MX.properties +2 -0
  302. package/src/i18n/messagebundle_et.properties +2 -0
  303. package/src/i18n/messagebundle_fi.properties +2 -0
  304. package/src/i18n/messagebundle_fr.properties +2 -0
  305. package/src/i18n/messagebundle_fr_CA.properties +2 -0
  306. package/src/i18n/messagebundle_hi.properties +2 -0
  307. package/src/i18n/messagebundle_hr.properties +2 -0
  308. package/src/i18n/messagebundle_hu.properties +2 -0
  309. package/src/i18n/messagebundle_id.properties +2 -0
  310. package/src/i18n/messagebundle_it.properties +2 -0
  311. package/src/i18n/messagebundle_iw.properties +2 -0
  312. package/src/i18n/messagebundle_ja.properties +2 -0
  313. package/src/i18n/messagebundle_kk.properties +2 -0
  314. package/src/i18n/messagebundle_ko.properties +2 -0
  315. package/src/i18n/messagebundle_lt.properties +4 -2
  316. package/src/i18n/messagebundle_lv.properties +2 -0
  317. package/src/i18n/messagebundle_mk.properties +2 -0
  318. package/src/i18n/messagebundle_ms.properties +2 -0
  319. package/src/i18n/messagebundle_nl.properties +2 -0
  320. package/src/i18n/messagebundle_no.properties +2 -0
  321. package/src/i18n/messagebundle_pl.properties +2 -0
  322. package/src/i18n/messagebundle_pt.properties +2 -0
  323. package/src/i18n/messagebundle_pt_PT.properties +2 -0
  324. package/src/i18n/messagebundle_ro.properties +2 -0
  325. package/src/i18n/messagebundle_ru.properties +3 -1
  326. package/src/i18n/messagebundle_sh.properties +2 -0
  327. package/src/i18n/messagebundle_sk.properties +2 -0
  328. package/src/i18n/messagebundle_sl.properties +2 -0
  329. package/src/i18n/messagebundle_sr.properties +2 -0
  330. package/src/i18n/messagebundle_sv.properties +2 -0
  331. package/src/i18n/messagebundle_th.properties +2 -0
  332. package/src/i18n/messagebundle_tr.properties +2 -0
  333. package/src/i18n/messagebundle_uk.properties +2 -0
  334. package/src/i18n/messagebundle_vi.properties +2 -0
  335. package/src/i18n/messagebundle_zh_CN.properties +2 -0
  336. package/src/i18n/messagebundle_zh_TW.properties +2 -0
  337. package/src/themes/DynamicPage.css +51 -46
  338. package/src/themes/DynamicPageHeader.css +0 -2
  339. package/src/themes/FlexibleColumnLayout.css +19 -2
  340. package/src/themes/Page.css +1 -1
  341. package/src/themes/ShellBar.css +139 -80
  342. package/src/themes/ShellBarPopover.css +30 -0
  343. package/src/themes/TimelineItem.css +16 -0
  344. package/src/themes/Wizard.css +37 -24
  345. package/src/themes/base/DynamicPageHeader-parameters.css +0 -3
  346. package/src/themes/base/ShellBar-parameters.css +4 -0
  347. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  348. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -0
  349. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -0
  350. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -0
  351. package/dist/generated/templates/ShellBarPopoverTemplate.lit.d.ts +0 -3
  352. package/dist/generated/templates/ShellBarPopoverTemplate.lit.js +0 -9
  353. package/dist/generated/templates/ShellBarPopoverTemplate.lit.js.map +0 -1
  354. package/dist/generated/templates/ShellBarTemplate.lit.d.ts +0 -3
  355. package/dist/generated/templates/ShellBarTemplate.lit.js +0 -34
  356. package/dist/generated/templates/ShellBarTemplate.lit.js.map +0 -1
  357. package/src/ShellBar.hbs +0 -229
  358. package/src/ShellBarPopover.hbs +0 -35
@@ -1,5 +1,4 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
3
2
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
3
  import DynamicPageHeader from "./DynamicPageHeader.js";
5
4
  import DynamicPageTitle from "./DynamicPageTitle.js";
@@ -91,12 +90,6 @@ declare class DynamicPage extends UI5Element {
91
90
  * @public
92
91
  */
93
92
  showFooter: boolean;
94
- /**
95
- * Defines the current media query size.
96
- *
97
- * @private
98
- */
99
- mediaRange?: string;
100
93
  /**
101
94
  * Defines the content of the Dynamic Page.
102
95
  *
@@ -126,12 +119,9 @@ declare class DynamicPage extends UI5Element {
126
119
  showHeaderInStickArea: boolean;
127
120
  isToggled: boolean;
128
121
  _headerSnapped: boolean;
129
- _updateMediaRange: ResizeObserverCallback;
130
122
  scrollContainer?: HTMLElement;
131
123
  headerActions?: DynamicPageHeaderActions;
132
124
  constructor();
133
- onEnterDOM(): void;
134
- onExitDOM(): void;
135
125
  onBeforeRendering(): void;
136
126
  get dynamicPageTitle(): DynamicPageTitle | null;
137
127
  get dynamicPageHeader(): DynamicPageHeader | null;
@@ -163,6 +153,5 @@ declare class DynamicPage extends UI5Element {
163
153
  _toggleHeader(): Promise<void>;
164
154
  onExpandHoverIn(): Promise<void>;
165
155
  onExpandHoverOut(): Promise<void>;
166
- updateMediaRange(): void;
167
156
  }
168
157
  export default DynamicPage;
@@ -14,8 +14,6 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
14
14
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
15
15
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
16
16
  import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
17
- import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
18
- import MediaRange from "@ui5/webcomponents-base/dist/MediaRange.js";
19
17
  import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
20
18
  import InvisibleMessageMode from "@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js";
21
19
  import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
@@ -119,13 +117,6 @@ let DynamicPage = DynamicPage_1 = class DynamicPage extends UI5Element {
119
117
  this.showHeaderInStickArea = false;
120
118
  this.isToggled = false;
121
119
  this._headerSnapped = false;
122
- this._updateMediaRange = this.updateMediaRange.bind(this);
123
- }
124
- onEnterDOM() {
125
- ResizeHandler.register(this, this._updateMediaRange);
126
- }
127
- onExitDOM() {
128
- ResizeHandler.deregister(this, this._updateMediaRange);
129
120
  }
130
121
  onBeforeRendering() {
131
122
  if (this.dynamicPageTitle) {
@@ -297,9 +288,6 @@ let DynamicPage = DynamicPage_1 = class DynamicPage extends UI5Element {
297
288
  this.dynamicPageTitle?.removeAttribute("hovered");
298
289
  await renderFinished();
299
290
  }
300
- updateMediaRange() {
301
- this.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, this.getDomRef().offsetWidth);
302
- }
303
291
  };
304
292
  __decorate([
305
293
  property({ type: Boolean })
@@ -310,9 +298,6 @@ __decorate([
310
298
  __decorate([
311
299
  property({ type: Boolean })
312
300
  ], DynamicPage.prototype, "showFooter", void 0);
313
- __decorate([
314
- property()
315
- ], DynamicPage.prototype, "mediaRange", void 0);
316
301
  __decorate([
317
302
  slot({ "default": true, type: HTMLElement })
318
303
  ], DynamicPage.prototype, "content", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicPage.js","sourceRoot":"","sources":["../src/DynamicPage.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 query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nimport debounce from \"@ui5/webcomponents-base/dist/util/debounce.js\";\n\n// Template\nimport DynamicPageTemplate from \"./DynamicPageTemplate.js\";\n\n// Styles\nimport DynamicPageCss from \"./generated/themes/DynamicPage.css.js\";\n\nimport DynamicPageHeader from \"./DynamicPageHeader.js\";\nimport DynamicPageTitle from \"./DynamicPageTitle.js\";\nimport type DynamicPageHeaderActions from \"./DynamicPageHeaderActions.js\";\n\n// Texts\nimport {\n\tDYNAMIC_PAGE_ARIA_LABEL_EXPANDED_HEADER,\n\tDYNAMIC_PAGE_ARIA_LABEL_SNAPPED_HEADER,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst SCROLL_DEBOUNCE_RATE = 5; // ms\nconst SCROLL_THRESHOLD = 10; // px\n/**\n * @class\n *\n * ### Overview\n *\n * A layout component, representing a web page, consisting of a title, header with dynamic behavior, a content area, and an optional floating footer.\n *\n * The component consist of several components:\n *\n * - `DynamicPageTitle` - a component, holding the title of the page, the navigation actions and the content. The displayed content changes based on the current mode of the `DynamicPageHeader`.\n * - `DynamicPageHeader` - a generic container, which can contain a single layout component and any other HTML elements. The header works in two modes - expanded and snapped and its behavior can be adjusted with the help of different properties.\n * - `Content area` - a generic container, which can have a single UI5 layout.\n * - `Footer` - positioned at the bottom with a small offset and used for additional actions, the footer floats above the content.\n *\n * ### Usage\n *\n * Use the `DynamicPage` if you need to have a title, that is always visible\n * and a header, that has configurable Expanding/Snapping functionality.\n * If you don't need the Expanding/Snapping functionality it is better to use the\n * `ui5-page` as a lighter component.\n *\n * The app can add to the `default` slot of the ui5-dynamic-page either content that is designed to fit its container (e.g. has 100% height),\n * or content with own height that may overflow its container. In the second case the `DynamicPage` will show a scrollbar that allows the user\n * scroll through the content.\n *\n * ## Notes:\n *\n * - Snapping of the `DynamicPageTitle` is not supported in the following case:\n * - When the `DynamicPage` has a scroll bar, the component usually scrolls to the snapping point - the point, where the `DynamicPageHeader` is scrolled out completely. However, when there is a scroll bar, but not enough content to reach the snapping point, the snapping is not possible using scrolling.\n *\n * ### Responsive Behavior\n *\n * Dynamic page web component implements the responsive paddings design.\n *\n * ### Keyboard Handling\n *\n *\n * ### Basic Navigation\n *\n * - [SPACE, ENTER, RETURN] - If focus is on a button inside DynamicPageTitle its action is being triggered, once activated.\n * If focus is on the snap header button (arrow button), or on the header itself, once activated, it triggers the associated action (such as snap/expand the header).\n * If focus is on pin button (the button with pin icon on the bottom of the header), once activated, it triggers the associated action (pinning of the header).\n *\n * ### Fast Navigation\n * - This component provides a build in fast navigation group which can be used via `F6 / Shift + F6` or ` Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up`.\n * In order to use this functionality, you need to import the following module:\n *\n * - `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/DynamicPage.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @csspart content - Used to style the content of the component\n * @csspart fit-content - Used to style the fit content container of the component.\n * @csspart footer - Used to style the footer of the component\n */\n@customElement({\n\ttag: \"ui5-dynamic-page\",\n\trenderer: jsxRenderer,\n\tstyles: DynamicPageCss,\n\ttemplate: DynamicPageTemplate,\n})\n\n/**\n * Fired when the pin header button is toggled.\n *\n * @public\n */\n@event(\"pin-button-toggle\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the expand/collapse area of the title is toggled.\n *\n * @public\n */\n@event(\"title-toggle\", {\n\tbubbles: true,\n})\n\nclass DynamicPage extends UI5Element {\n\teventDetails!: {\n\t\t\"pin-button-toggle\": void;\n\t\t\"title-toggle\": void;\n\t}\n\t/**\n\t * Defines if the pin button is hidden.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePinButton = false;\n\n\t/**\n\t * Defines if the header is pinned.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\theaderPinned = false;\n\n\t/**\n\t * Defines if the footer is shown.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowFooter = false;\n\n\t/**\n\t * Defines the current media query size.\n\t *\n\t * @private\n\t */\n\t@property()\n\tmediaRange?: string;\n\n\t/**\n\t * Defines the content of the Dynamic Page.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement })\n\tcontent!: HTMLElement[];\n\n\t/**\n\t * Defines the title HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: DynamicPageTitle })\n\ttitleArea!: Array<DynamicPageTitle>;\n\n\t/**\n\t * Defines the header HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: DynamicPageHeader })\n\theaderArea!: Array<DynamicPageHeader>;\n\n\t/**\n\t * Defines the footer HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tfooterArea!: HTMLElement[];\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tskipSnapOnScroll = false;\n\tshowHeaderInStickArea = false;\n\tisToggled = false;\n\n\t@property({ type: Boolean })\n\t_headerSnapped = false;\n\n\t_updateMediaRange: ResizeObserverCallback;\n\n\t@query(\".ui5-dynamic-page-scroll-container\")\n\tscrollContainer?: HTMLElement;\n\n\t@query(\"[ui5-dynamic-page-header-actions]\")\n\theaderActions?: DynamicPageHeaderActions;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._updateMediaRange = this.updateMediaRange.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._updateMediaRange);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._updateMediaRange);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this.dynamicPageTitle) {\n\t\t\tthis.dynamicPageTitle.snapped = this._headerSnapped;\n\t\t\tthis.dynamicPageTitle.interactive = this.hasHeading;\n\t\t\tthis.dynamicPageTitle.hasSnappedTitleOnMobile = !!this.hasSnappedTitleOnMobile;\n\t\t\tthis.dynamicPageTitle.removeAttribute(\"hovered\");\n\t\t}\n\t}\n\n\tget dynamicPageTitle(): DynamicPageTitle | null {\n\t\treturn this.querySelector<DynamicPageTitle>(\"[ui5-dynamic-page-title]\");\n\t}\n\n\tget dynamicPageHeader(): DynamicPageHeader | null {\n\t\treturn this.querySelector<DynamicPageHeader>(\"[ui5-dynamic-page-header]\");\n\t}\n\n\tget actionsInTitle(): boolean {\n\t\treturn this._headerSnapped || this.showHeaderInStickArea || this.headerPinned;\n\t}\n\n\tget headerInTitle(): boolean {\n\t\treturn !this._headerSnapped && (this.showHeaderInStickArea || this.headerPinned);\n\t}\n\n\tget headerInContent(): boolean {\n\t\treturn !this.showHeaderInStickArea && !this.headerInTitle && !this.hasSnappedTitleOnMobile;\n\t}\n\n\tget _headerLabel() {\n\t\treturn this._headerSnapped\n\t\t\t? DynamicPage.i18nBundle.getText(DYNAMIC_PAGE_ARIA_LABEL_SNAPPED_HEADER)\n\t\t\t: DynamicPage.i18nBundle.getText(DYNAMIC_PAGE_ARIA_LABEL_EXPANDED_HEADER);\n\t}\n\n\tget _headerExpanded() {\n\t\treturn !this._headerSnapped;\n\t}\n\n\tget _accAttributesForHeaderActions() {\n\t\treturn {\n\t\t\tcontrols: `${this._id}-header` as Lowercase<string>,\n\t\t};\n\t}\n\n\tget headerTabIndex() {\n\t\treturn (this._headerSnapped || this.showHeaderInStickArea) ? -1 : 0;\n\t}\n\n\tget headerAriaHidden() {\n\t\treturn (this._headerSnapped || this.showHeaderInStickArea);\n\t}\n\n\tget hasHeading() {\n\t\treturn this.headerArea.length > 0;\n\t}\n\n\tget headerSnapped(): boolean {\n\t\treturn this._headerSnapped;\n\t}\n\n\tget hasSnappedTitleOnMobile() {\n\t\treturn isPhone() && this.headerSnapped && this.dynamicPageTitle?.snappedTitleOnMobile.length;\n\t}\n\n\t/**\n\t * Defines if the header is snapped.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tset headerSnapped(snapped: boolean) {\n\t\tif (snapped !== this._headerSnapped) {\n\t\t\tthis._toggleHeader();\n\t\t}\n\t}\n\n\tsnapOnScroll() {\n\t\tdebounce(() => this.snapTitleByScroll(), SCROLL_DEBOUNCE_RATE);\n\t}\n\n\tsnapTitleByScroll() {\n\t\tif (!this.dynamicPageTitle || !this.dynamicPageHeader || this.headerPinned) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isToggled) {\n\t\t\tthis.isToggled = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.skipSnapOnScroll) {\n\t\t\tthis.skipSnapOnScroll = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst scrollTop = this.scrollContainer!.scrollTop;\n\t\tconst headerHeight = this.dynamicPageHeader.getBoundingClientRect().height;\n\t\tconst lastHeaderSnapped = this._headerSnapped;\n\n\t\tif (this._headerSnapped && scrollTop > headerHeight) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t}\n\n\t\tconst shouldSnap = !this._headerSnapped && scrollTop > headerHeight + SCROLL_THRESHOLD;\n\t\tconst shouldExpand = this._headerSnapped && (scrollTop < headerHeight - SCROLL_THRESHOLD\n\t\t\t|| (!scrollTop && !headerHeight));\n\n\t\tif (shouldSnap) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t\tthis._headerSnapped = true;\n\n\t\t\t//* snappedTitleOnMobile\n\t\t\t// If the header is snapped and the scroll is at the top, scroll down a bit\n\t\t\t// to avoid ending in an endless loop of snapping and unsnapping\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tif (this.scrollContainer!.scrollTop === 0) {\n\t\t\t\t\tthis.scrollContainer!.scrollTop = SCROLL_THRESHOLD;\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (shouldExpand) {\n\t\t\tthis._headerSnapped = false;\n\t\t}\n\n\t\t// Fire event if snapped state changed\n\t\tif (lastHeaderSnapped !== this._headerSnapped) {\n\t\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\t}\n\t}\n\n\tasync onExpandClick() {\n\t\tthis.isToggled = true;\n\t\tthis._toggleHeader();\n\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\tawait renderFinished();\n\t\tthis.headerActions?.focusExpandButton();\n\n\t\tif (this.hasSnappedTitleOnMobile) {\n\t\t\tthis.dynamicPageTitle?.focus();\n\t\t}\n\n\t\tannounce(this._headerLabel, InvisibleMessageMode.Polite);\n\t}\n\n\tasync onPinClick() {\n\t\tthis.headerPinned = !this.headerPinned;\n\t\tif (this.headerPinned) {\n\t\t\tthis.showHeaderInStickArea = true;\n\t\t}\n\t\tthis.fireDecoratorEvent(\"pin-button-toggle\");\n\t\tawait renderFinished();\n\t\tthis.headerActions?.focusPinButton();\n\t}\n\n\tasync onToggleTitle() {\n\t\tif (!this.hasHeading) {\n\t\t\treturn;\n\t\t}\n\t\tthis.isToggled = true;\n\t\tthis._toggleHeader();\n\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\tawait renderFinished();\n\t\tthis.dynamicPageTitle!.focus();\n\t}\n\n\tasync _toggleHeader() {\n\t\tconst headerHeight = this.dynamicPageHeader?.getBoundingClientRect().height || 0;\n\t\tconst currentScrollTop = this.scrollContainer!.scrollTop;\n\n\t\tif (currentScrollTop > SCROLL_THRESHOLD && currentScrollTop < headerHeight) {\n\t\t\tif (!this._headerSnapped) {\n\t\t\t\tthis._headerSnapped = true;\n\t\t\t\tthis.showHeaderInStickArea = true;\n\t\t\t\tthis.scrollContainer!.scrollTop = 0;\n\t\t\t} else {\n\t\t\t\tthis.showHeaderInStickArea = false;\n\t\t\t\tthis._headerSnapped = false;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.scrollContainer!.scrollTop === SCROLL_THRESHOLD) {\n\t\t\tthis.scrollContainer!.scrollTop = 0;\n\t\t}\n\n\t\tthis.showHeaderInStickArea = !this.showHeaderInStickArea;\n\t\tthis._headerSnapped = !this._headerSnapped;\n\n\t\tthis.skipSnapOnScroll = true;\n\n\t\tawait renderFinished();\n\t\tif (this._headerSnapped && this.scrollContainer!.scrollTop < SCROLL_THRESHOLD) {\n\t\t\tthis.scrollContainer!.scrollTop = SCROLL_THRESHOLD;\n\t\t}\n\t}\n\n\tasync onExpandHoverIn() {\n\t\tthis.dynamicPageTitle?.setAttribute(\"hovered\", \"\");\n\t\tawait renderFinished();\n\t}\n\n\tasync onExpandHoverOut() {\n\t\tthis.dynamicPageTitle?.removeAttribute(\"hovered\");\n\t\tawait renderFinished();\n\t}\n\n\tupdateMediaRange() {\n\t\tthis.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, this.getDomRef()!.offsetWidth);\n\t}\n}\n\nDynamicPage.define();\n\nexport default DynamicPage;\n"]}
1
+ {"version":3,"file":"DynamicPage.js","sourceRoot":"","sources":["../src/DynamicPage.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 query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nimport debounce from \"@ui5/webcomponents-base/dist/util/debounce.js\";\n\n// Template\nimport DynamicPageTemplate from \"./DynamicPageTemplate.js\";\n\n// Styles\nimport DynamicPageCss from \"./generated/themes/DynamicPage.css.js\";\n\nimport DynamicPageHeader from \"./DynamicPageHeader.js\";\nimport DynamicPageTitle from \"./DynamicPageTitle.js\";\nimport type DynamicPageHeaderActions from \"./DynamicPageHeaderActions.js\";\n\n// Texts\nimport {\n\tDYNAMIC_PAGE_ARIA_LABEL_EXPANDED_HEADER,\n\tDYNAMIC_PAGE_ARIA_LABEL_SNAPPED_HEADER,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst SCROLL_DEBOUNCE_RATE = 5; // ms\nconst SCROLL_THRESHOLD = 10; // px\n/**\n * @class\n *\n * ### Overview\n *\n * A layout component, representing a web page, consisting of a title, header with dynamic behavior, a content area, and an optional floating footer.\n *\n * The component consist of several components:\n *\n * - `DynamicPageTitle` - a component, holding the title of the page, the navigation actions and the content. The displayed content changes based on the current mode of the `DynamicPageHeader`.\n * - `DynamicPageHeader` - a generic container, which can contain a single layout component and any other HTML elements. The header works in two modes - expanded and snapped and its behavior can be adjusted with the help of different properties.\n * - `Content area` - a generic container, which can have a single UI5 layout.\n * - `Footer` - positioned at the bottom with a small offset and used for additional actions, the footer floats above the content.\n *\n * ### Usage\n *\n * Use the `DynamicPage` if you need to have a title, that is always visible\n * and a header, that has configurable Expanding/Snapping functionality.\n * If you don't need the Expanding/Snapping functionality it is better to use the\n * `ui5-page` as a lighter component.\n *\n * The app can add to the `default` slot of the ui5-dynamic-page either content that is designed to fit its container (e.g. has 100% height),\n * or content with own height that may overflow its container. In the second case the `DynamicPage` will show a scrollbar that allows the user\n * scroll through the content.\n *\n * ## Notes:\n *\n * - Snapping of the `DynamicPageTitle` is not supported in the following case:\n * - When the `DynamicPage` has a scroll bar, the component usually scrolls to the snapping point - the point, where the `DynamicPageHeader` is scrolled out completely. However, when there is a scroll bar, but not enough content to reach the snapping point, the snapping is not possible using scrolling.\n *\n * ### Responsive Behavior\n *\n * Dynamic page web component implements the responsive paddings design.\n *\n * ### Keyboard Handling\n *\n *\n * ### Basic Navigation\n *\n * - [SPACE, ENTER, RETURN] - If focus is on a button inside DynamicPageTitle its action is being triggered, once activated.\n * If focus is on the snap header button (arrow button), or on the header itself, once activated, it triggers the associated action (such as snap/expand the header).\n * If focus is on pin button (the button with pin icon on the bottom of the header), once activated, it triggers the associated action (pinning of the header).\n *\n * ### Fast Navigation\n * - This component provides a build in fast navigation group which can be used via `F6 / Shift + F6` or ` Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up`.\n * In order to use this functionality, you need to import the following module:\n *\n * - `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/DynamicPage.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @csspart content - Used to style the content of the component\n * @csspart fit-content - Used to style the fit content container of the component.\n * @csspart footer - Used to style the footer of the component\n */\n@customElement({\n\ttag: \"ui5-dynamic-page\",\n\trenderer: jsxRenderer,\n\tstyles: DynamicPageCss,\n\ttemplate: DynamicPageTemplate,\n})\n\n/**\n * Fired when the pin header button is toggled.\n *\n * @public\n */\n@event(\"pin-button-toggle\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the expand/collapse area of the title is toggled.\n *\n * @public\n */\n@event(\"title-toggle\", {\n\tbubbles: true,\n})\n\nclass DynamicPage extends UI5Element {\n\teventDetails!: {\n\t\t\"pin-button-toggle\": void;\n\t\t\"title-toggle\": void;\n\t}\n\t/**\n\t * Defines if the pin button is hidden.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePinButton = false;\n\n\t/**\n\t * Defines if the header is pinned.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\theaderPinned = false;\n\n\t/**\n\t * Defines if the footer is shown.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowFooter = false;\n\n\t/**\n\t * Defines the content of the Dynamic Page.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement })\n\tcontent!: HTMLElement[];\n\n\t/**\n\t * Defines the title HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: DynamicPageTitle })\n\ttitleArea!: Array<DynamicPageTitle>;\n\n\t/**\n\t * Defines the header HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: DynamicPageHeader })\n\theaderArea!: Array<DynamicPageHeader>;\n\n\t/**\n\t * Defines the footer HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tfooterArea!: HTMLElement[];\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tskipSnapOnScroll = false;\n\tshowHeaderInStickArea = false;\n\tisToggled = false;\n\n\t@property({ type: Boolean })\n\t_headerSnapped = false;\n\n\t@query(\".ui5-dynamic-page-scroll-container\")\n\tscrollContainer?: HTMLElement;\n\n\t@query(\"[ui5-dynamic-page-header-actions]\")\n\theaderActions?: DynamicPageHeaderActions;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this.dynamicPageTitle) {\n\t\t\tthis.dynamicPageTitle.snapped = this._headerSnapped;\n\t\t\tthis.dynamicPageTitle.interactive = this.hasHeading;\n\t\t\tthis.dynamicPageTitle.hasSnappedTitleOnMobile = !!this.hasSnappedTitleOnMobile;\n\t\t\tthis.dynamicPageTitle.removeAttribute(\"hovered\");\n\t\t}\n\t}\n\n\tget dynamicPageTitle(): DynamicPageTitle | null {\n\t\treturn this.querySelector<DynamicPageTitle>(\"[ui5-dynamic-page-title]\");\n\t}\n\n\tget dynamicPageHeader(): DynamicPageHeader | null {\n\t\treturn this.querySelector<DynamicPageHeader>(\"[ui5-dynamic-page-header]\");\n\t}\n\n\tget actionsInTitle(): boolean {\n\t\treturn this._headerSnapped || this.showHeaderInStickArea || this.headerPinned;\n\t}\n\n\tget headerInTitle(): boolean {\n\t\treturn !this._headerSnapped && (this.showHeaderInStickArea || this.headerPinned);\n\t}\n\n\tget headerInContent(): boolean {\n\t\treturn !this.showHeaderInStickArea && !this.headerInTitle && !this.hasSnappedTitleOnMobile;\n\t}\n\n\tget _headerLabel() {\n\t\treturn this._headerSnapped\n\t\t\t? DynamicPage.i18nBundle.getText(DYNAMIC_PAGE_ARIA_LABEL_SNAPPED_HEADER)\n\t\t\t: DynamicPage.i18nBundle.getText(DYNAMIC_PAGE_ARIA_LABEL_EXPANDED_HEADER);\n\t}\n\n\tget _headerExpanded() {\n\t\treturn !this._headerSnapped;\n\t}\n\n\tget _accAttributesForHeaderActions() {\n\t\treturn {\n\t\t\tcontrols: `${this._id}-header` as Lowercase<string>,\n\t\t};\n\t}\n\n\tget headerTabIndex() {\n\t\treturn (this._headerSnapped || this.showHeaderInStickArea) ? -1 : 0;\n\t}\n\n\tget headerAriaHidden() {\n\t\treturn (this._headerSnapped || this.showHeaderInStickArea);\n\t}\n\n\tget hasHeading() {\n\t\treturn this.headerArea.length > 0;\n\t}\n\n\tget headerSnapped(): boolean {\n\t\treturn this._headerSnapped;\n\t}\n\n\tget hasSnappedTitleOnMobile() {\n\t\treturn isPhone() && this.headerSnapped && this.dynamicPageTitle?.snappedTitleOnMobile.length;\n\t}\n\n\t/**\n\t * Defines if the header is snapped.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tset headerSnapped(snapped: boolean) {\n\t\tif (snapped !== this._headerSnapped) {\n\t\t\tthis._toggleHeader();\n\t\t}\n\t}\n\n\tsnapOnScroll() {\n\t\tdebounce(() => this.snapTitleByScroll(), SCROLL_DEBOUNCE_RATE);\n\t}\n\n\tsnapTitleByScroll() {\n\t\tif (!this.dynamicPageTitle || !this.dynamicPageHeader || this.headerPinned) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isToggled) {\n\t\t\tthis.isToggled = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.skipSnapOnScroll) {\n\t\t\tthis.skipSnapOnScroll = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst scrollTop = this.scrollContainer!.scrollTop;\n\t\tconst headerHeight = this.dynamicPageHeader.getBoundingClientRect().height;\n\t\tconst lastHeaderSnapped = this._headerSnapped;\n\n\t\tif (this._headerSnapped && scrollTop > headerHeight) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t}\n\n\t\tconst shouldSnap = !this._headerSnapped && scrollTop > headerHeight + SCROLL_THRESHOLD;\n\t\tconst shouldExpand = this._headerSnapped && (scrollTop < headerHeight - SCROLL_THRESHOLD\n\t\t\t|| (!scrollTop && !headerHeight));\n\n\t\tif (shouldSnap) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t\tthis._headerSnapped = true;\n\n\t\t\t//* snappedTitleOnMobile\n\t\t\t// If the header is snapped and the scroll is at the top, scroll down a bit\n\t\t\t// to avoid ending in an endless loop of snapping and unsnapping\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tif (this.scrollContainer!.scrollTop === 0) {\n\t\t\t\t\tthis.scrollContainer!.scrollTop = SCROLL_THRESHOLD;\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (shouldExpand) {\n\t\t\tthis._headerSnapped = false;\n\t\t}\n\n\t\t// Fire event if snapped state changed\n\t\tif (lastHeaderSnapped !== this._headerSnapped) {\n\t\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\t}\n\t}\n\n\tasync onExpandClick() {\n\t\tthis.isToggled = true;\n\t\tthis._toggleHeader();\n\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\tawait renderFinished();\n\t\tthis.headerActions?.focusExpandButton();\n\n\t\tif (this.hasSnappedTitleOnMobile) {\n\t\t\tthis.dynamicPageTitle?.focus();\n\t\t}\n\n\t\tannounce(this._headerLabel, InvisibleMessageMode.Polite);\n\t}\n\n\tasync onPinClick() {\n\t\tthis.headerPinned = !this.headerPinned;\n\t\tif (this.headerPinned) {\n\t\t\tthis.showHeaderInStickArea = true;\n\t\t}\n\t\tthis.fireDecoratorEvent(\"pin-button-toggle\");\n\t\tawait renderFinished();\n\t\tthis.headerActions?.focusPinButton();\n\t}\n\n\tasync onToggleTitle() {\n\t\tif (!this.hasHeading) {\n\t\t\treturn;\n\t\t}\n\t\tthis.isToggled = true;\n\t\tthis._toggleHeader();\n\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\tawait renderFinished();\n\t\tthis.dynamicPageTitle!.focus();\n\t}\n\n\tasync _toggleHeader() {\n\t\tconst headerHeight = this.dynamicPageHeader?.getBoundingClientRect().height || 0;\n\t\tconst currentScrollTop = this.scrollContainer!.scrollTop;\n\n\t\tif (currentScrollTop > SCROLL_THRESHOLD && currentScrollTop < headerHeight) {\n\t\t\tif (!this._headerSnapped) {\n\t\t\t\tthis._headerSnapped = true;\n\t\t\t\tthis.showHeaderInStickArea = true;\n\t\t\t\tthis.scrollContainer!.scrollTop = 0;\n\t\t\t} else {\n\t\t\t\tthis.showHeaderInStickArea = false;\n\t\t\t\tthis._headerSnapped = false;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.scrollContainer!.scrollTop === SCROLL_THRESHOLD) {\n\t\t\tthis.scrollContainer!.scrollTop = 0;\n\t\t}\n\n\t\tthis.showHeaderInStickArea = !this.showHeaderInStickArea;\n\t\tthis._headerSnapped = !this._headerSnapped;\n\n\t\tthis.skipSnapOnScroll = true;\n\n\t\tawait renderFinished();\n\t\tif (this._headerSnapped && this.scrollContainer!.scrollTop < SCROLL_THRESHOLD) {\n\t\t\tthis.scrollContainer!.scrollTop = SCROLL_THRESHOLD;\n\t\t}\n\t}\n\n\tasync onExpandHoverIn() {\n\t\tthis.dynamicPageTitle?.setAttribute(\"hovered\", \"\");\n\t\tawait renderFinished();\n\t}\n\n\tasync onExpandHoverOut() {\n\t\tthis.dynamicPageTitle?.removeAttribute(\"hovered\");\n\t\tawait renderFinished();\n\t}\n}\n\nDynamicPage.define();\n\nexport default DynamicPage;\n"]}
@@ -241,8 +241,9 @@ declare class FlexibleColumnLayout extends UI5Element {
241
241
  calculateNewColumnWidth(columnToResize: typeof COLUMN.START | typeof COLUMN.END, widthDelta: number): number;
242
242
  moveSeparator(separator: HTMLElement, offsetX: number, fclLayoutBeforeMove: FCLLayout): FCLLayout;
243
243
  adjustColumnLayout(columnToResize: typeof COLUMN.START | typeof COLUMN.END, newSize: number, createNewArray?: boolean): FlexibleColumnLayoutColumnLayout | undefined;
244
- _onkeydown(e: KeyboardEvent): Promise<void>;
245
- _onkeyup(): void;
244
+ _onArrowKeydown(e: KeyboardEvent): void;
245
+ _onSeparatorKeydown(e: KeyboardEvent): Promise<void>;
246
+ _onSeparatorKeyUp(): void;
246
247
  private attachMoveListeners;
247
248
  private detachMoveListeners;
248
249
  private toggleSideAnimations;
@@ -250,6 +251,7 @@ declare class FlexibleColumnLayout extends UI5Element {
250
251
  convertColumnWidthToPixels(width: string | number): number;
251
252
  convertToRelativeColumnWidth(pxWidth: string | number): string;
252
253
  getNextLayoutOnSeparatorMovement(separator: HTMLElement, isStartToEndDirection: boolean, fclLayoutBeforeMove: FCLLayout, columnLayoutAfterMove: FlexibleColumnLayoutColumnLayout): FCLLayout;
254
+ switchLayoutOnArrowPress(): void;
253
255
  get _availableWidthForColumns(): number;
254
256
  /**
255
257
  * Checks if a column is hidden based on its width.
@@ -294,14 +296,20 @@ declare class FlexibleColumnLayout extends UI5Element {
294
296
  get showStartSeparator(): boolean;
295
297
  get showEndSeparator(): boolean;
296
298
  get showStartSeparatorGrip(): boolean | undefined;
299
+ get showStartSeparatorArrow(): boolean | undefined;
297
300
  get showEndSeparatorGrip(): boolean | undefined;
298
301
  get startSeparatorGripVisibility(): boolean | undefined;
299
302
  get endSeparatorGripVisibility(): boolean | undefined;
303
+ get startSeparatorArrowVisibility(): boolean | undefined;
304
+ get startArrowDirection(): "forward" | "backward" | undefined;
305
+ get startArrowDOM(): HTMLElement;
300
306
  get effectiveSeparatorsInfo(): {
301
307
  visible: boolean;
302
308
  gripVisible?: boolean;
309
+ arrowVisible?: boolean;
310
+ arrowDirection?: "forward" | "backward";
303
311
  }[];
304
- get effectiveLayout(): "OneColumn" | "TwoColumnsStartExpanded" | "TwoColumnsMidExpanded" | "ThreeColumnsMidExpanded" | "ThreeColumnsEndExpanded" | "ThreeColumnsStartExpandedEndHidden" | "ThreeColumnsMidExpandedEndHidden" | "MidColumnFullScreen" | "EndColumnFullScreen" | FCLLayout;
312
+ get effectiveLayout(): "OneColumn" | "TwoColumnsStartExpanded" | "TwoColumnsMidExpanded" | "ThreeColumnsMidExpanded" | "ThreeColumnsEndExpanded" | "ThreeColumnsStartExpandedEndHidden" | "ThreeColumnsMidExpandedEndHidden" | "ThreeColumnsStartHiddenMidExpanded" | "ThreeColumnsStartHiddenEndExpanded" | "MidColumnFullScreen" | "EndColumnFullScreen" | FCLLayout;
305
313
  get startSeparatorDOM(): HTMLElement;
306
314
  get endSeparatorDOM(): HTMLElement;
307
315
  get startSeparatorTabIndex(): 0 | undefined;
@@ -16,11 +16,13 @@ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.j
16
16
  import { supportsTouch } from "@ui5/webcomponents-base/dist/Device.js";
17
17
  import AnimationMode from "@ui5/webcomponents-base/dist/types/AnimationMode.js";
18
18
  import { getAnimationMode } from "@ui5/webcomponents-base/dist/config/AnimationMode.js";
19
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
20
+ import Button from "@ui5/webcomponents/dist/Button.js";
19
21
  import "@ui5/webcomponents-icons/dist/vertical-grip.js";
20
22
  import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
21
- import { isLeft, isRight, isLeftShift, isRightShift, isHome, isEnd, } from "@ui5/webcomponents-base/dist/Keys.js";
23
+ import { isLeft, isRight, isLeftShift, isRightShift, isHome, isEnd, isEnter, isSpace, } from "@ui5/webcomponents-base/dist/Keys.js";
22
24
  import FCLLayout from "./types/FCLLayout.js";
23
- import { getLayoutsByMedia, } from "./fcl-utils/FCLLayout.js";
25
+ import { getLayoutsByMedia, getNextLayoutByArrowPress, } from "./fcl-utils/FCLLayout.js";
24
26
  // Texts
25
27
  import { FCL_START_COLUMN_TXT, FCL_MIDDLE_COLUMN_TXT, FCL_END_COLUMN_TXT, FCL_START_SEPARATOR_TOOLTIP, FCL_END_SEPARATOR_TOOLTIP, } from "./generated/i18n/i18n-defaults.js";
26
28
  // Template
@@ -291,6 +293,9 @@ let FlexibleColumnLayout = FlexibleColumnLayout_1 = class FlexibleColumnLayout e
291
293
  });
292
294
  }
293
295
  onSeparatorPress(e) {
296
+ if (e.target === this.startArrowDOM) {
297
+ return;
298
+ }
294
299
  const pressedSeparator = e.target.closest(".ui5-fcl-separator");
295
300
  if (pressedSeparator.classList.contains("ui5-fcl-separator-start") && !this.showStartSeparatorGrip) {
296
301
  return;
@@ -421,7 +426,20 @@ let FlexibleColumnLayout = FlexibleColumnLayout_1 = class FlexibleColumnLayout e
421
426
  });
422
427
  return columnLayoutToAdjust;
423
428
  }
424
- async _onkeydown(e) {
429
+ _onArrowKeydown(e) {
430
+ if (isEnter(e) || isSpace(e)) {
431
+ e.preventDefault();
432
+ const focusedElement = e.target;
433
+ if (focusedElement === this.startArrowDOM) {
434
+ this.switchLayoutOnArrowPress();
435
+ }
436
+ }
437
+ }
438
+ async _onSeparatorKeydown(e) {
439
+ const separator = e.target;
440
+ if (!separator.classList.contains("ui5-fcl-separator")) {
441
+ return;
442
+ }
425
443
  const stepSize = 2, bigStepSize = this._width, isRTL = this.effectiveDir === "rtl";
426
444
  let step = 0;
427
445
  if (isLeft(e)) {
@@ -447,7 +465,6 @@ let FlexibleColumnLayout = FlexibleColumnLayout_1 = class FlexibleColumnLayout e
447
465
  if (!step) {
448
466
  return;
449
467
  }
450
- const separator = e.target;
451
468
  if (!this.separatorMovementSession) {
452
469
  this.separatorMovementSession = this.initSeparatorMovementSession(separator, 0, false);
453
470
  }
@@ -457,7 +474,7 @@ let FlexibleColumnLayout = FlexibleColumnLayout_1 = class FlexibleColumnLayout e
457
474
  await renderFinished();
458
475
  separator.focus();
459
476
  }
460
- _onkeyup() {
477
+ _onSeparatorKeyUp() {
461
478
  if (this.separatorMovementSession) {
462
479
  this.onSeparatorMoveEnd();
463
480
  }
@@ -560,6 +577,27 @@ let FlexibleColumnLayout = FlexibleColumnLayout_1 = class FlexibleColumnLayout e
560
577
  }) && !isTablet && startColumnPercentWidth < 33) {
561
578
  return FCLLayout.ThreeColumnsMidExpanded;
562
579
  }
580
+ if (moved({
581
+ separator: "start",
582
+ from: FCLLayout.ThreeColumnsStartHiddenMidExpanded,
583
+ forward: true,
584
+ }) && !isTablet && Math.ceil(startColumnPxWidth) >= COLUMN_MIN_WIDTH) {
585
+ return FCLLayout.ThreeColumnsMidExpanded;
586
+ }
587
+ if (moved({
588
+ separator: "end",
589
+ from: FCLLayout.ThreeColumnsStartHiddenMidExpanded,
590
+ forward: false,
591
+ }) && newColumnWidths.mid < newColumnWidths.end) {
592
+ return FCLLayout.ThreeColumnsStartHiddenEndExpanded;
593
+ }
594
+ if (moved({
595
+ separator: "end",
596
+ from: FCLLayout.ThreeColumnsStartHiddenEndExpanded,
597
+ forward: true,
598
+ }) && newColumnWidths.mid >= newColumnWidths.end) {
599
+ return FCLLayout.ThreeColumnsStartHiddenMidExpanded;
600
+ }
563
601
  if (moved({
564
602
  separator: "end",
565
603
  from: FCLLayout.ThreeColumnsMidExpandedEndHidden,
@@ -614,6 +652,13 @@ let FlexibleColumnLayout = FlexibleColumnLayout_1 = class FlexibleColumnLayout e
614
652
  }
615
653
  return fclLayoutBeforeMove; // no layout change
616
654
  }
655
+ switchLayoutOnArrowPress() {
656
+ const lastUsedLayout = this.layout;
657
+ this.layout = getNextLayoutByArrowPress()[lastUsedLayout];
658
+ if (this.layout !== lastUsedLayout) {
659
+ this.fireLayoutChange(true, false);
660
+ }
661
+ }
617
662
  get _availableWidthForColumns() {
618
663
  let width = this._width;
619
664
  if (this.showStartSeparator) {
@@ -700,6 +745,9 @@ let FlexibleColumnLayout = FlexibleColumnLayout_1 = class FlexibleColumnLayout e
700
745
  get showStartSeparatorGrip() {
701
746
  return this.disableResizing ? false : this.startSeparatorGripVisibility;
702
747
  }
748
+ get showStartSeparatorArrow() {
749
+ return this.disableResizing ? false : this.startSeparatorArrowVisibility;
750
+ }
703
751
  get showEndSeparatorGrip() {
704
752
  return this.disableResizing ? false : this.endSeparatorGripVisibility;
705
753
  }
@@ -709,6 +757,15 @@ let FlexibleColumnLayout = FlexibleColumnLayout_1 = class FlexibleColumnLayout e
709
757
  get endSeparatorGripVisibility() {
710
758
  return this.effectiveSeparatorsInfo[1].gripVisible;
711
759
  }
760
+ get startSeparatorArrowVisibility() {
761
+ return this.effectiveSeparatorsInfo[0].arrowVisible;
762
+ }
763
+ get startArrowDirection() {
764
+ return this.effectiveSeparatorsInfo[0].arrowDirection;
765
+ }
766
+ get startArrowDOM() {
767
+ return this.shadowRoot.querySelector(".ui5-fcl-arrow--start");
768
+ }
712
769
  get effectiveSeparatorsInfo() {
713
770
  return this._effectiveLayoutsByMedia[this.media][this.effectiveLayout].separators;
714
771
  }
@@ -861,6 +918,7 @@ FlexibleColumnLayout = FlexibleColumnLayout_1 = __decorate([
861
918
  renderer: jsxRenderer,
862
919
  styles: FlexibleColumnLayoutCss,
863
920
  template: FlexibleColumnLayoutTemplate,
921
+ dependencies: [Icon, Button],
864
922
  })
865
923
  /**
866
924
  * Fired when the layout changes via user interaction by dragging the separators