@ui5/webcomponents-base 0.0.0-9261ac932 → 0.0.0-95afb1087

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 (480) hide show
  1. package/CHANGELOG.md +831 -0
  2. package/LICENSE.txt +201 -0
  3. package/README.md +7 -7
  4. package/cypress.config.js +1 -1
  5. package/dist/.tsbuildinfobuild +1 -1
  6. package/dist/Assets-fetch.d.ts +1 -0
  7. package/dist/Assets-fetch.js +3 -0
  8. package/dist/Assets-fetch.js.map +1 -0
  9. package/dist/Assets-node.d.ts +12 -0
  10. package/dist/Assets-node.js +14 -0
  11. package/dist/Assets-node.js.map +1 -0
  12. package/dist/Assets.d.ts +1 -0
  13. package/dist/Assets.js +3 -0
  14. package/dist/Assets.js.map +1 -0
  15. package/dist/Boot.js +2 -0
  16. package/dist/Boot.js.map +1 -1
  17. package/dist/CustomElementsRegistry.d.ts +2 -1
  18. package/dist/CustomElementsRegistry.js +5 -2
  19. package/dist/CustomElementsRegistry.js.map +1 -1
  20. package/dist/CustomElementsScopeUtils.d.ts +4 -2
  21. package/dist/CustomElementsScopeUtils.js +8 -1
  22. package/dist/CustomElementsScopeUtils.js.map +1 -1
  23. package/dist/DragAndDrop.d.ts +2 -0
  24. package/dist/DragAndDrop.js +5 -0
  25. package/dist/DragAndDrop.js.map +1 -0
  26. package/dist/FeaturesRegistry.d.ts +1 -13
  27. package/dist/FeaturesRegistry.js +1 -37
  28. package/dist/FeaturesRegistry.js.map +1 -1
  29. package/dist/FontFace.js +0 -8
  30. package/dist/FontFace.js.map +1 -1
  31. package/dist/InitialConfiguration.js +7 -0
  32. package/dist/InitialConfiguration.js.map +1 -1
  33. package/dist/Keys.d.ts +4 -1
  34. package/dist/Keys.js +4 -1
  35. package/dist/Keys.js.map +1 -1
  36. package/dist/ManagedStyles.d.ts +4 -6
  37. package/dist/ManagedStyles.js +6 -16
  38. package/dist/ManagedStyles.js.map +1 -1
  39. package/dist/ScrollbarStyles.d.ts +2 -0
  40. package/dist/ScrollbarStyles.js +9 -0
  41. package/dist/ScrollbarStyles.js.map +1 -0
  42. package/dist/UI5Element.d.ts +48 -17
  43. package/dist/UI5Element.js +65 -42
  44. package/dist/UI5Element.js.map +1 -1
  45. package/dist/UI5ElementMetadata.d.ts +4 -9
  46. package/dist/UI5ElementMetadata.js +0 -7
  47. package/dist/UI5ElementMetadata.js.map +1 -1
  48. package/dist/asset-registries/Icons.d.ts +42 -8
  49. package/dist/asset-registries/Icons.js +51 -8
  50. package/dist/asset-registries/Icons.js.map +1 -1
  51. package/dist/asset-registries/Illustrations.d.ts +133 -8
  52. package/dist/asset-registries/Illustrations.js +82 -1
  53. package/dist/asset-registries/Illustrations.js.map +1 -1
  54. package/dist/asset-registries/LocaleData.js +2 -1
  55. package/dist/asset-registries/LocaleData.js.map +1 -1
  56. package/dist/asset-registries/Themes.d.ts +3 -6
  57. package/dist/asset-registries/Themes.js +1 -2
  58. package/dist/asset-registries/Themes.js.map +1 -1
  59. package/dist/config/Language.d.ts +2 -1
  60. package/dist/config/Language.js +12 -1
  61. package/dist/config/Language.js.map +1 -1
  62. package/dist/config/Theme.js +1 -2
  63. package/dist/config/Theme.js.map +1 -1
  64. package/dist/config/ThemeRoot.d.ts +3 -1
  65. package/dist/config/ThemeRoot.js +3 -1
  66. package/dist/config/ThemeRoot.js.map +1 -1
  67. package/dist/css/MultipleDragGhost.css +17 -0
  68. package/dist/css/OpenUI5PopupStyles.css +5 -0
  69. package/dist/css/ScrollbarStyles.css +3 -0
  70. package/dist/custom-elements-internal.json +1797 -1736
  71. package/dist/custom-elements.json +1424 -1301
  72. package/dist/decorators/bound.d.ts +1 -0
  73. package/dist/decorators/bound.js +34 -0
  74. package/dist/decorators/bound.js.map +1 -0
  75. package/dist/decorators/customElement.d.ts +38 -0
  76. package/dist/decorators/customElement.js +1 -4
  77. package/dist/decorators/customElement.js.map +1 -1
  78. package/dist/decorators/event-strict.d.ts +15 -0
  79. package/dist/decorators/event-strict.js +26 -0
  80. package/dist/decorators/event-strict.js.map +1 -0
  81. package/dist/decorators/event.d.ts +1 -0
  82. package/dist/decorators/event.js +1 -0
  83. package/dist/decorators/event.js.map +1 -1
  84. package/dist/decorators/i18n.js +6 -0
  85. package/dist/decorators/i18n.js.map +1 -1
  86. package/dist/decorators.d.ts +4 -1
  87. package/dist/decorators.js +4 -1
  88. package/dist/decorators.js.map +1 -1
  89. package/dist/features/F6Navigation.d.ts +1 -0
  90. package/dist/features/F6Navigation.js +39 -12
  91. package/dist/features/F6Navigation.js.map +1 -1
  92. package/dist/features/OpenUI5Enablement.d.ts +1 -1
  93. package/dist/features/OpenUI5Support.d.ts +5 -0
  94. package/dist/features/OpenUI5Support.js +42 -29
  95. package/dist/features/OpenUI5Support.js.map +1 -1
  96. package/dist/features/insertOpenUI5PopupStyles.d.ts +2 -0
  97. package/dist/features/insertOpenUI5PopupStyles.js +9 -0
  98. package/dist/features/insertOpenUI5PopupStyles.js.map +1 -0
  99. package/dist/features/patchPopup.d.ts +17 -4
  100. package/dist/features/patchPopup.js +67 -8
  101. package/dist/features/patchPopup.js.map +1 -1
  102. package/dist/generated/AssetParameters.js +1 -1
  103. package/dist/generated/AssetParameters.js.map +1 -1
  104. package/dist/generated/VersionInfo.js +6 -6
  105. package/dist/generated/VersionInfo.js.map +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_en.json +1 -0
  107. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  108. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  109. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  110. package/dist/generated/css/BusyIndicator.css.d.ts +2 -3
  111. package/dist/generated/css/BusyIndicator.css.js +1 -6
  112. package/dist/generated/css/BusyIndicator.css.js.map +1 -1
  113. package/dist/generated/css/FontFace.css.d.ts +2 -3
  114. package/dist/generated/css/FontFace.css.js +36 -6
  115. package/dist/generated/css/FontFace.css.js.map +1 -1
  116. package/dist/generated/css/MultipleDragGhost.css.d.ts +2 -0
  117. package/dist/generated/css/MultipleDragGhost.css.js +2 -0
  118. package/dist/generated/css/MultipleDragGhost.css.js.map +1 -0
  119. package/dist/generated/css/OpenUI5PopupStyles.css.d.ts +2 -0
  120. package/dist/generated/css/OpenUI5PopupStyles.css.js +2 -0
  121. package/dist/generated/css/OpenUI5PopupStyles.css.js.map +1 -0
  122. package/dist/generated/css/ScrollbarStyles.css.d.ts +2 -0
  123. package/dist/generated/css/ScrollbarStyles.css.js +2 -0
  124. package/dist/generated/css/ScrollbarStyles.css.js.map +1 -0
  125. package/dist/generated/css/SystemCSSVars.css.d.ts +2 -3
  126. package/dist/generated/css/SystemCSSVars.css.js +1 -6
  127. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  128. package/dist/generated/i18n/i18n-defaults.d.ts +3 -0
  129. package/dist/generated/i18n/i18n-defaults.js +3 -0
  130. package/dist/generated/i18n/i18n-defaults.js.map +1 -0
  131. package/dist/generated/json-imports/i18n-fetch.d.ts +1 -0
  132. package/dist/generated/json-imports/i18n-fetch.js +2 -0
  133. package/dist/generated/json-imports/i18n-fetch.js.map +1 -0
  134. package/dist/generated/json-imports/i18n-node.d.ts +1 -0
  135. package/dist/generated/json-imports/i18n-node.js +2 -0
  136. package/dist/generated/json-imports/i18n-node.js.map +1 -0
  137. package/dist/generated/json-imports/i18n.d.ts +1 -0
  138. package/dist/generated/json-imports/i18n.js +2 -0
  139. package/dist/generated/json-imports/i18n.js.map +1 -0
  140. package/dist/index.d.ts +49 -0
  141. package/dist/index.js +91 -0
  142. package/dist/index.js.map +1 -0
  143. package/dist/jsx-dev-runtime.d.ts +4 -0
  144. package/dist/jsx-dev-runtime.js +43 -0
  145. package/dist/jsx-dev-runtime.js.map +1 -0
  146. package/dist/jsx-runtime.d.ts +51 -0
  147. package/dist/jsx-runtime.js +27 -0
  148. package/dist/jsx-runtime.js.map +1 -0
  149. package/dist/jsx-utils.d.ts +3 -0
  150. package/dist/jsx-utils.js +48 -0
  151. package/dist/jsx-utils.js.map +1 -0
  152. package/dist/locale/nextFallbackLocale.js +6 -2
  153. package/dist/locale/nextFallbackLocale.js.map +1 -1
  154. package/dist/prod/Assets-fetch.js +2 -0
  155. package/dist/prod/Assets-fetch.js.map +7 -0
  156. package/dist/prod/Assets-node.js +2 -0
  157. package/dist/prod/Assets-node.js.map +7 -0
  158. package/dist/prod/Assets.js +2 -0
  159. package/dist/prod/Assets.js.map +7 -0
  160. package/dist/prod/Boot.js +1 -1
  161. package/dist/prod/Boot.js.map +3 -3
  162. package/dist/prod/CustomElementsRegistry.js +5 -5
  163. package/dist/prod/CustomElementsRegistry.js.map +3 -3
  164. package/dist/prod/CustomElementsScopeUtils.js +1 -1
  165. package/dist/prod/CustomElementsScopeUtils.js.map +3 -3
  166. package/dist/prod/DragAndDrop.js +2 -0
  167. package/dist/prod/DragAndDrop.js.map +7 -0
  168. package/dist/prod/FeaturesRegistry.js +1 -1
  169. package/dist/prod/FeaturesRegistry.js.map +3 -3
  170. package/dist/prod/FontFace.js +1 -1
  171. package/dist/prod/FontFace.js.map +3 -3
  172. package/dist/prod/InitialConfiguration.js +1 -1
  173. package/dist/prod/InitialConfiguration.js.map +2 -2
  174. package/dist/prod/Keys.js +1 -1
  175. package/dist/prod/Keys.js.map +3 -3
  176. package/dist/prod/ManagedStyles.js +1 -1
  177. package/dist/prod/ManagedStyles.js.map +3 -3
  178. package/dist/prod/ScrollbarStyles.js +2 -0
  179. package/dist/prod/ScrollbarStyles.js.map +7 -0
  180. package/dist/prod/UI5Element.js +1 -1
  181. package/dist/prod/UI5Element.js.map +3 -3
  182. package/dist/prod/UI5ElementMetadata.js +1 -1
  183. package/dist/prod/UI5ElementMetadata.js.map +2 -2
  184. package/dist/prod/asset-registries/Icons.js +1 -1
  185. package/dist/prod/asset-registries/Icons.js.map +3 -3
  186. package/dist/prod/asset-registries/Illustrations.js +1 -1
  187. package/dist/prod/asset-registries/Illustrations.js.map +3 -3
  188. package/dist/prod/asset-registries/LocaleData.js +1 -1
  189. package/dist/prod/asset-registries/LocaleData.js.map +2 -2
  190. package/dist/prod/asset-registries/Themes.js +1 -1
  191. package/dist/prod/asset-registries/Themes.js.map +2 -2
  192. package/dist/prod/config/Language.js +1 -1
  193. package/dist/prod/config/Language.js.map +3 -3
  194. package/dist/prod/config/Theme.js +1 -1
  195. package/dist/prod/config/Theme.js.map +3 -3
  196. package/dist/prod/config/ThemeRoot.js.map +2 -2
  197. package/dist/prod/decorators/bound.js +2 -0
  198. package/dist/prod/decorators/bound.js.map +7 -0
  199. package/dist/prod/decorators/customElement.js +1 -1
  200. package/dist/prod/decorators/customElement.js.map +3 -3
  201. package/dist/prod/decorators/event-strict.js +2 -0
  202. package/dist/prod/decorators/event-strict.js.map +7 -0
  203. package/dist/prod/decorators/event.js.map +2 -2
  204. package/dist/prod/decorators/i18n.js +1 -1
  205. package/dist/prod/decorators/i18n.js.map +2 -2
  206. package/dist/prod/decorators.js +1 -1
  207. package/dist/prod/decorators.js.map +3 -3
  208. package/dist/prod/features/F6Navigation.js +1 -1
  209. package/dist/prod/features/F6Navigation.js.map +3 -3
  210. package/dist/prod/features/OpenUI5Support.js +1 -1
  211. package/dist/prod/features/OpenUI5Support.js.map +3 -3
  212. package/dist/prod/features/insertOpenUI5PopupStyles.js +2 -0
  213. package/dist/prod/features/insertOpenUI5PopupStyles.js.map +7 -0
  214. package/dist/prod/features/patchPopup.js +1 -1
  215. package/dist/prod/features/patchPopup.js.map +3 -3
  216. package/dist/prod/generated/AssetParameters.js +1 -1
  217. package/dist/prod/generated/AssetParameters.js.map +2 -2
  218. package/dist/prod/generated/VersionInfo.js +1 -1
  219. package/dist/prod/generated/VersionInfo.js.map +2 -2
  220. package/dist/prod/generated/assets/i18n/messagebundle_en.json +1 -0
  221. package/dist/prod/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  222. package/dist/prod/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  223. package/dist/prod/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  224. package/dist/prod/generated/css/BusyIndicator.css.js +1 -1
  225. package/dist/prod/generated/css/BusyIndicator.css.js.map +3 -3
  226. package/dist/prod/generated/css/FontFace.css.js +36 -1
  227. package/dist/prod/generated/css/FontFace.css.js.map +3 -3
  228. package/dist/prod/generated/css/MultipleDragGhost.css.js +2 -0
  229. package/dist/prod/generated/css/MultipleDragGhost.css.js.map +7 -0
  230. package/dist/prod/generated/css/OpenUI5PopupStyles.css.js +2 -0
  231. package/dist/prod/generated/css/OpenUI5PopupStyles.css.js.map +7 -0
  232. package/dist/prod/generated/css/ScrollbarStyles.css.js +2 -0
  233. package/dist/prod/generated/css/ScrollbarStyles.css.js.map +7 -0
  234. package/dist/prod/generated/css/SystemCSSVars.css.js +1 -1
  235. package/dist/prod/generated/css/SystemCSSVars.css.js.map +3 -3
  236. package/dist/prod/generated/i18n/i18n-defaults.js +2 -0
  237. package/dist/prod/generated/i18n/i18n-defaults.js.map +7 -0
  238. package/dist/prod/generated/json-imports/i18n-fetch.js +2 -0
  239. package/dist/prod/generated/json-imports/i18n-fetch.js.map +7 -0
  240. package/dist/prod/generated/json-imports/i18n-node.js +2 -0
  241. package/dist/prod/generated/json-imports/i18n-node.js.map +7 -0
  242. package/dist/prod/generated/json-imports/i18n.js +2 -0
  243. package/dist/prod/generated/json-imports/i18n.js.map +7 -0
  244. package/dist/prod/index.js +2 -0
  245. package/dist/prod/index.js.map +7 -0
  246. package/dist/prod/jsx-dev-runtime.js +2 -0
  247. package/dist/prod/jsx-dev-runtime.js.map +7 -0
  248. package/dist/prod/jsx-runtime.js +2 -0
  249. package/dist/prod/jsx-runtime.js.map +7 -0
  250. package/dist/prod/jsx-utils.js +2 -0
  251. package/dist/prod/jsx-utils.js.map +7 -0
  252. package/dist/prod/locale/nextFallbackLocale.js +1 -1
  253. package/dist/prod/locale/nextFallbackLocale.js.map +3 -3
  254. package/dist/prod/renderer/JsxRenderer.js +2 -0
  255. package/dist/prod/renderer/JsxRenderer.js.map +7 -0
  256. package/dist/prod/renderer/LitRenderer.js +1 -1
  257. package/dist/prod/renderer/LitRenderer.js.map +3 -3
  258. package/dist/prod/renderer/executeTemplate.js +1 -1
  259. package/dist/prod/renderer/executeTemplate.js.map +3 -3
  260. package/dist/prod/ssr-dom-shim.js +1 -1
  261. package/dist/prod/ssr-dom-shim.js.map +3 -3
  262. package/dist/prod/theming/applyTheme.js +1 -1
  263. package/dist/prod/theming/applyTheme.js.map +3 -3
  264. package/dist/prod/theming/getStylesString.js +1 -1
  265. package/dist/prod/theming/getStylesString.js.map +2 -2
  266. package/dist/prod/theming/getThemeDesignerTheme.js +1 -1
  267. package/dist/prod/theming/getThemeDesignerTheme.js.map +3 -3
  268. package/dist/prod/thirdparty/preact/jsx.d.js +2 -0
  269. package/dist/prod/thirdparty/preact/jsx.d.js.map +7 -0
  270. package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js +2 -0
  271. package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js.map +7 -0
  272. package/dist/prod/thirdparty/preact/jsxRuntime.module.js +1 -0
  273. package/dist/prod/thirdparty/preact/preact.module.d.js +2 -0
  274. package/dist/prod/thirdparty/preact/preact.module.d.js.map +7 -0
  275. package/dist/prod/thirdparty/preact/preact.module.js +1 -0
  276. package/dist/prod/types/SortOrder.js +2 -0
  277. package/dist/prod/types/SortOrder.js.map +7 -0
  278. package/dist/prod/updateShadowRoot.js +1 -1
  279. package/dist/prod/updateShadowRoot.js.map +3 -3
  280. package/dist/prod/util/AccessibilityTextsHelper.js +2 -0
  281. package/dist/prod/util/AccessibilityTextsHelper.js.map +7 -0
  282. package/dist/prod/util/ColorConversion.js +1 -1
  283. package/dist/prod/util/ColorConversion.js.map +3 -3
  284. package/dist/prod/util/FocusableElements.js +1 -1
  285. package/dist/prod/util/FocusableElements.js.map +3 -3
  286. package/dist/prod/util/HTMLSanitizer.js.map +1 -1
  287. package/dist/prod/util/SelectionAssistant.js +1 -1
  288. package/dist/prod/util/SelectionAssistant.js.map +3 -3
  289. package/dist/prod/util/StringHelper.js +1 -1
  290. package/dist/prod/util/StringHelper.js.map +3 -3
  291. package/dist/prod/util/TabbableElements.js +1 -1
  292. package/dist/prod/util/TabbableElements.js.map +2 -2
  293. package/dist/prod/util/dragAndDrop/DragRegistry.js +1 -1
  294. package/dist/prod/util/dragAndDrop/DragRegistry.js.map +3 -3
  295. package/dist/prod/util/dragAndDrop/findClosestPosition.js +1 -1
  296. package/dist/prod/util/dragAndDrop/findClosestPosition.js.map +3 -3
  297. package/dist/prod/util/dragAndDrop/handleDragOver.js +2 -0
  298. package/dist/prod/util/dragAndDrop/handleDragOver.js.map +7 -0
  299. package/dist/prod/util/dragAndDrop/handleDrop.js +2 -0
  300. package/dist/prod/util/dragAndDrop/handleDrop.js.map +7 -0
  301. package/dist/prod/util/getFastNavigationGroups.js +1 -1
  302. package/dist/prod/util/getFastNavigationGroups.js.map +2 -2
  303. package/dist/prod/util/getParentElement.js +1 -1
  304. package/dist/prod/util/getParentElement.js.map +3 -3
  305. package/dist/prod/util/hash2str.js +2 -0
  306. package/dist/prod/util/hash2str.js.map +7 -0
  307. package/dist/prod/util/isElementHidden.js +1 -1
  308. package/dist/prod/util/isElementHidden.js.map +3 -3
  309. package/dist/prod/util/isEventMarked.js +2 -0
  310. package/dist/prod/util/isEventMarked.js.map +7 -0
  311. package/dist/prod/util/throttle.js +2 -0
  312. package/dist/prod/util/throttle.js.map +7 -0
  313. package/dist/prod/util/toLowercaseEnumValue.js +2 -0
  314. package/dist/prod/util/toLowercaseEnumValue.js.map +7 -0
  315. package/dist/prod/util/valueStateNavigation.js +2 -0
  316. package/dist/prod/util/valueStateNavigation.js.map +7 -0
  317. package/dist/prod/validateThemeRoot.js +1 -1
  318. package/dist/prod/validateThemeRoot.js.map +2 -2
  319. package/dist/renderer/JsxRenderer.d.ts +3 -0
  320. package/dist/renderer/JsxRenderer.js +26 -0
  321. package/dist/renderer/JsxRenderer.js.map +1 -0
  322. package/dist/renderer/LitRenderer.js +4 -3
  323. package/dist/renderer/LitRenderer.js.map +1 -1
  324. package/dist/renderer/executeTemplate.d.ts +3 -12
  325. package/dist/renderer/executeTemplate.js +1 -20
  326. package/dist/renderer/executeTemplate.js.map +1 -1
  327. package/dist/ssr-dom-shim.js +52 -1
  328. package/dist/ssr-dom-shim.js.map +1 -1
  329. package/dist/theming/applyTheme.d.ts +2 -0
  330. package/dist/theming/applyTheme.js +21 -30
  331. package/dist/theming/applyTheme.js.map +1 -1
  332. package/dist/theming/getStylesString.js +2 -4
  333. package/dist/theming/getStylesString.js.map +1 -1
  334. package/dist/theming/getThemeDesignerTheme.js +2 -1
  335. package/dist/theming/getThemeDesignerTheme.js.map +1 -1
  336. package/dist/thirdparty/preact/jsx.d.ts +2616 -0
  337. package/dist/thirdparty/preact/jsxRuntime.module.d.ts +62 -0
  338. package/dist/thirdparty/preact/jsxRuntime.module.js +1 -0
  339. package/dist/thirdparty/preact/preact.module.d.ts +398 -0
  340. package/dist/thirdparty/preact/preact.module.js +1 -0
  341. package/dist/types/SortOrder.d.ts +24 -0
  342. package/dist/types/SortOrder.js +26 -0
  343. package/dist/types/SortOrder.js.map +1 -0
  344. package/dist/types.d.ts +30 -27
  345. package/dist/types.js.map +1 -1
  346. package/dist/updateShadowRoot.js +1 -2
  347. package/dist/updateShadowRoot.js.map +1 -1
  348. package/dist/util/{AriaLabelHelper.d.ts → AccessibilityTextsHelper.d.ts} +3 -1
  349. package/dist/util/{AriaLabelHelper.js → AccessibilityTextsHelper.js} +36 -8
  350. package/dist/util/AccessibilityTextsHelper.js.map +1 -0
  351. package/dist/util/ColorConversion.d.ts +2 -1
  352. package/dist/util/ColorConversion.js +35 -23
  353. package/dist/util/ColorConversion.js.map +1 -1
  354. package/dist/util/FocusableElements.js +43 -15
  355. package/dist/util/FocusableElements.js.map +1 -1
  356. package/dist/util/HTMLSanitizer.d.ts +2 -0
  357. package/dist/util/HTMLSanitizer.js +2 -2
  358. package/dist/util/HTMLSanitizer.js.map +1 -1
  359. package/dist/util/SelectionAssistant.js +0 -8
  360. package/dist/util/SelectionAssistant.js.map +1 -1
  361. package/dist/util/StringHelper.d.ts +2 -1
  362. package/dist/util/StringHelper.js +4 -1
  363. package/dist/util/StringHelper.js.map +1 -1
  364. package/dist/util/TabbableElements.js +2 -2
  365. package/dist/util/TabbableElements.js.map +1 -1
  366. package/dist/util/dragAndDrop/DragRegistry.d.ts +35 -8
  367. package/dist/util/dragAndDrop/DragRegistry.js +42 -50
  368. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -1
  369. package/dist/util/dragAndDrop/findClosestPosition.d.ts +2 -1
  370. package/dist/util/dragAndDrop/findClosestPosition.js +45 -41
  371. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -1
  372. package/dist/util/dragAndDrop/handleDragOver.d.ts +16 -0
  373. package/dist/util/dragAndDrop/handleDragOver.js +42 -0
  374. package/dist/util/dragAndDrop/handleDragOver.js.map +1 -0
  375. package/dist/util/dragAndDrop/handleDrop.d.ts +5 -0
  376. package/dist/util/dragAndDrop/handleDrop.js +22 -0
  377. package/dist/util/dragAndDrop/handleDrop.js.map +1 -0
  378. package/dist/util/getClassCopy.d.ts +16 -5
  379. package/dist/util/getFastNavigationGroups.js +6 -1
  380. package/dist/util/getFastNavigationGroups.js.map +1 -1
  381. package/dist/util/getParentElement.d.ts +1 -1
  382. package/dist/util/getParentElement.js +2 -2
  383. package/dist/util/getParentElement.js.map +1 -1
  384. package/dist/util/hash2str.d.ts +1 -0
  385. package/dist/util/hash2str.js +14 -0
  386. package/dist/util/hash2str.js.map +1 -0
  387. package/dist/util/isElementHidden.js +2 -1
  388. package/dist/util/isElementHidden.js.map +1 -1
  389. package/dist/util/isEventMarked.d.ts +2 -0
  390. package/dist/util/isEventMarked.js +6 -0
  391. package/dist/util/isEventMarked.js.map +1 -0
  392. package/dist/util/throttle.d.ts +2 -0
  393. package/dist/util/throttle.js +20 -0
  394. package/dist/util/throttle.js.map +1 -0
  395. package/dist/util/toLowercaseEnumValue.d.ts +3 -0
  396. package/dist/util/toLowercaseEnumValue.js +4 -0
  397. package/dist/util/toLowercaseEnumValue.js.map +1 -0
  398. package/dist/util/valueStateNavigation.d.ts +8 -0
  399. package/dist/util/valueStateNavigation.js +40 -0
  400. package/dist/util/valueStateNavigation.js.map +1 -0
  401. package/dist/validateThemeRoot.js +6 -2
  402. package/dist/validateThemeRoot.js.map +1 -1
  403. package/dist/vscode.html-custom-data.json +1 -1
  404. package/package-scripts.cjs +65 -34
  405. package/package.json +38 -25
  406. package/src/css/MultipleDragGhost.css +17 -0
  407. package/src/css/OpenUI5PopupStyles.css +5 -0
  408. package/src/css/ScrollbarStyles.css +3 -0
  409. package/src/i18n/messagebundle.properties +5 -0
  410. package/src/i18n/messagebundle_en.properties +2 -0
  411. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  412. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  413. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
  414. package/src/thirdparty/preact/jsxRuntime.module.js +1 -0
  415. package/src/thirdparty/preact/preact.module.js +1 -0
  416. package/src/thirdparty/preact/version.txt +1 -0
  417. package/tsconfig.json +0 -1
  418. package/cypress/specs/Accessor.cy.ts +0 -79
  419. package/cypress/specs/Boot.cy.ts +0 -23
  420. package/cypress/specs/ConfigurationChange.cy.ts +0 -41
  421. package/cypress/specs/ConfigurationScript.cy.ts +0 -116
  422. package/cypress/specs/ConfigurationURL.cy.ts +0 -182
  423. package/cypress/specs/CustomMount.cy.ts +0 -34
  424. package/cypress/specs/CustomTheme.cy.ts +0 -36
  425. package/cypress/specs/EventProvider.cy.ts +0 -59
  426. package/cypress/specs/SystemDOMElements.cy.ts +0 -8
  427. package/cypress/specs/Theming.cy.ts +0 -74
  428. package/cypress/specs/UI5ElementInvalidation.cy.ts +0 -207
  429. package/cypress/specs/UI5ElementLifecycle.cy.ts +0 -82
  430. package/cypress/specs/UI5ElementListenForChildPropChanges.cy.ts +0 -62
  431. package/cypress/specs/UI5ElementMetadataExt.cy.ts +0 -42
  432. package/cypress/specs/UI5ElementPropertyValidation.cy.ts +0 -16
  433. package/cypress/specs/UI5ElementPropsAndAttrs.cy.ts +0 -113
  434. package/cypress/specs/UI5ElementShadowDOM.cy.ts +0 -30
  435. package/cypress/specs/UI5ElementSlots.cy.ts +0 -116
  436. package/cypress/specs/WithComplexTemplate.cy.ts +0 -32
  437. package/cypress/tsconfig.json +0 -20
  438. package/dist/MarkedEvents.d.ts +0 -9
  439. package/dist/MarkedEvents.js +0 -15
  440. package/dist/MarkedEvents.js.map +0 -1
  441. package/dist/css/FontFace.css +0 -96
  442. package/dist/css/OverrideFontFace.css +0 -32
  443. package/dist/generated/css/OverrideFontFace.css.d.ts +0 -3
  444. package/dist/generated/css/OverrideFontFace.css.js +0 -7
  445. package/dist/generated/css/OverrideFontFace.css.js.map +0 -1
  446. package/dist/prod/MarkedEvents.js +0 -2
  447. package/dist/prod/MarkedEvents.js.map +0 -7
  448. package/dist/prod/generated/css/OverrideFontFace.css.js +0 -2
  449. package/dist/prod/generated/css/OverrideFontFace.css.js.map +0 -7
  450. package/dist/prod/types/AriaHasPopup.js +0 -2
  451. package/dist/prod/types/AriaHasPopup.js.map +0 -7
  452. package/dist/prod/types/AriaLandmarkRole.js +0 -2
  453. package/dist/prod/types/AriaLandmarkRole.js.map +0 -7
  454. package/dist/prod/types/AriaRole.js +0 -2
  455. package/dist/prod/types/AriaRole.js.map +0 -7
  456. package/dist/prod/util/AriaLabelHelper.js +0 -2
  457. package/dist/prod/util/AriaLabelHelper.js.map +0 -7
  458. package/dist/prod/util/getEffectiveScrollbarStyle.js +0 -26
  459. package/dist/prod/util/getEffectiveScrollbarStyle.js.map +0 -7
  460. package/dist/prod/util/isElementContainingBlock.js +0 -2
  461. package/dist/prod/util/isElementContainingBlock.js.map +0 -7
  462. package/dist/types/AriaHasPopup.d.ts +0 -32
  463. package/dist/types/AriaHasPopup.js +0 -34
  464. package/dist/types/AriaHasPopup.js.map +0 -1
  465. package/dist/types/AriaLandmarkRole.d.ts +0 -79
  466. package/dist/types/AriaLandmarkRole.js +0 -81
  467. package/dist/types/AriaLandmarkRole.js.map +0 -1
  468. package/dist/types/AriaRole.d.ts +0 -27
  469. package/dist/types/AriaRole.js +0 -29
  470. package/dist/types/AriaRole.js.map +0 -1
  471. package/dist/util/AriaLabelHelper.js.map +0 -1
  472. package/dist/util/getEffectiveScrollbarStyle.d.ts +0 -2
  473. package/dist/util/getEffectiveScrollbarStyle.js +0 -34
  474. package/dist/util/getEffectiveScrollbarStyle.js.map +0 -1
  475. package/dist/util/isElementContainingBlock.d.ts +0 -2
  476. package/dist/util/isElementContainingBlock.js +0 -11
  477. package/dist/util/isElementContainingBlock.js.map +0 -1
  478. package/index.js +0 -214
  479. package/src/css/FontFace.css +0 -96
  480. package/src/css/OverrideFontFace.css +0 -32
@@ -1 +1 @@
1
- {"version":3,"file":"StringHelper.js","sourceRoot":"","sources":["../../src/util/StringHelper.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAoB,EAAE,EAAE;IAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAClC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5G,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpE,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC","sourcesContent":["const kebabToCamelMap = new Map<string, string>();\nconst camelToKebabMap = new Map<string, string>();\nconst kebabToPascalMap = new Map<string, string>();\n\nconst kebabToCamelCase = (string: string) => {\n\tif (!kebabToCamelMap.has(string)) {\n\t\tconst result = toCamelCase(string.split(\"-\"));\n\t\tkebabToCamelMap.set(string, result);\n\t}\n\treturn kebabToCamelMap.get(string)!;\n};\n\nconst camelToKebabCase = (string: string) => {\n\tif (!camelToKebabMap.has(string)) {\n\t\tconst result = string.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\t\tcamelToKebabMap.set(string, result);\n\t}\n\treturn camelToKebabMap.get(string)!;\n};\n\nconst toCamelCase = (parts: Array<string>) => {\n\treturn parts.map((string, index) => {\n\t\treturn index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\t}).join(\"\");\n};\n\nconst kebabToPascalCase = (src: string) => {\n\tconst cachedName = kebabToPascalMap.get(src);\n\tif (cachedName) {\n\t\treturn cachedName;\n\t}\n\n\tconst camelStr = kebabToCamelCase(src);\n\tconst result = camelStr.charAt(0).toUpperCase() + camelStr.slice(1);\n\tkebabToPascalMap.set(src, result);\n\treturn result;\n};\n\nexport { kebabToCamelCase, camelToKebabCase, kebabToPascalCase };\n"]}
1
+ {"version":3,"file":"StringHelper.js","sourceRoot":"","sources":["../../src/util/StringHelper.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,YAAoB,EAAE,EAAE;IAClD,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAoB,EAAE,EAAE;IAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAClC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5G,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpE,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GACjB,CAAC","sourcesContent":["const kebabToCamelMap = new Map<string, string>();\nconst camelToKebabMap = new Map<string, string>();\nconst kebabToPascalMap = new Map<string, string>();\n\nconst kebabToCamelCase = (string: string) => {\n\tif (!kebabToCamelMap.has(string)) {\n\t\tconst result = toCamelCase(string.split(\"-\"));\n\t\tkebabToCamelMap.set(string, result);\n\t}\n\treturn kebabToCamelMap.get(string)!;\n};\n\nconst camelToKebabCase = (string: string) => {\n\tif (!camelToKebabMap.has(string)) {\n\t\tconst result = string.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\t\tcamelToKebabMap.set(string, result);\n\t}\n\treturn camelToKebabMap.get(string)!;\n};\n\nconst pascalToKebabCase = (pascalString: string) => {\n\treturn camelToKebabCase(pascalString);\n};\n\nconst toCamelCase = (parts: Array<string>) => {\n\treturn parts.map((string, index) => {\n\t\treturn index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\t}).join(\"\");\n};\n\nconst kebabToPascalCase = (src: string) => {\n\tconst cachedName = kebabToPascalMap.get(src);\n\tif (cachedName) {\n\t\treturn cachedName;\n\t}\n\n\tconst camelStr = kebabToCamelCase(src);\n\tconst result = camelStr.charAt(0).toUpperCase() + camelStr.slice(1);\n\tkebabToPascalMap.set(src, result);\n\treturn result;\n};\n\nexport {\n\tkebabToCamelCase,\n\tcamelToKebabCase,\n\tpascalToKebabCase,\n\tkebabToPascalCase,\n};\n"]}
@@ -7,7 +7,7 @@ import isElementTabbable from "./isElementTabbable.js";
7
7
  * @returns { Array<HTMLElement> } the tabbable elements
8
8
  */
9
9
  const getTabbableElements = (el) => {
10
- return getTabbables([...el.children]);
10
+ return getTabbables(el.tagName === "SLOT" ? [el] : [...el.children]);
11
11
  };
12
12
  /**
13
13
  * Returns the last tabbable element within the provided HTMLElement.
@@ -37,7 +37,7 @@ const getTabbables = (nodes, tabbables) => {
37
37
  tabbableElements.push(currentElement);
38
38
  }
39
39
  if (currentElement.tagName === "SLOT") {
40
- getTabbables(currentElement.assignedNodes(), tabbableElements);
40
+ getTabbables(currentElement.assignedElements(), tabbableElements);
41
41
  }
42
42
  else {
43
43
  const children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;
@@ -1 +1 @@
1
- {"version":3,"file":"TabbableElements.js","sourceRoot":"","sources":["../../src/util/TabbableElements.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,CAAC,EAAe,EAAsB,EAAE;IACnE,OAAO,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAsB,EAAE;IACtE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAkB,EAAE,SAA8B,EAAsB,EAAE;IAC/F,MAAM,gBAAgB,GAAG,SAAS,IAAI,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC3B,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3F,OAAO;QACR,CAAC;QAED,MAAM,cAAc,GAAG,WAA0B,CAAC;QAClD,IAAI,cAAc,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxD,OAAO;QACR,CAAC;QAED,IAAI,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,cAAc,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACvC,YAAY,CAAE,cAAkC,CAAC,aAAa,EAAwB,EAAE,gBAAgB,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC1G,YAAY,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AACzB,CAAC,CAAC;AAEF,OAAO,EACN,mBAAmB,EACnB,sBAAsB,GACtB,CAAC","sourcesContent":["import isElementTabbable from \"./isElementTabbable.js\";\n\n/**\n * Returns the tabbable elements within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { Array<HTMLElement> } the tabbable elements\n */\nconst getTabbableElements = (el: HTMLElement): Array<HTMLElement> => {\n\treturn getTabbables([...el.children]);\n};\n\n/**\n * Returns the last tabbable element within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { HTMLElement | null } the last tabbable element or \"null\" if not found\n */\nconst getLastTabbableElement = (el: HTMLElement): HTMLElement | null => {\n\tconst tabbables = getTabbables([...el.children]);\n\treturn tabbables.length ? tabbables[tabbables.length - 1] : null;\n};\n\nconst getTabbables = (nodes: Array<Node>, tabbables?: Array<HTMLElement>): Array<HTMLElement> => {\n\tconst tabbableElements = tabbables || [];\n\n\tif (!nodes) {\n\t\treturn tabbableElements;\n\t}\n\n\tnodes.forEach(currentNode => {\n\t\tif (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentElement = currentNode as HTMLElement;\n\t\tif (currentElement.hasAttribute(\"data-sap-no-tab-ref\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isElementTabbable(currentElement)) {\n\t\t\ttabbableElements.push(currentElement);\n\t\t}\n\n\t\tif (currentElement.tagName === \"SLOT\") {\n\t\t\tgetTabbables((currentElement as HTMLSlotElement).assignedNodes() as Array<HTMLElement>, tabbableElements);\n\t\t} else {\n\t\t\tconst children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;\n\t\t\tgetTabbables([...children], tabbableElements);\n\t\t}\n\t});\n\n\treturn tabbableElements;\n};\n\nexport {\n\tgetTabbableElements,\n\tgetLastTabbableElement,\n};\n"]}
1
+ {"version":3,"file":"TabbableElements.js","sourceRoot":"","sources":["../../src/util/TabbableElements.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,CAAC,EAAe,EAAsB,EAAE;IACnE,OAAO,YAAY,CAAC,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAsB,EAAE;IACtE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAkB,EAAE,SAA8B,EAAsB,EAAE;IAC/F,MAAM,gBAAgB,GAAG,SAAS,IAAI,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC3B,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3F,OAAO;QACR,CAAC;QAED,MAAM,cAAc,GAAG,WAA0B,CAAC;QAClD,IAAI,cAAc,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxD,OAAO;QACR,CAAC;QAED,IAAI,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,cAAc,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACvC,YAAY,CAAE,cAAkC,CAAC,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC1G,YAAY,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AACzB,CAAC,CAAC;AAEF,OAAO,EACN,mBAAmB,EACnB,sBAAsB,GACtB,CAAC","sourcesContent":["import isElementTabbable from \"./isElementTabbable.js\";\n\n/**\n * Returns the tabbable elements within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { Array<HTMLElement> } the tabbable elements\n */\nconst getTabbableElements = (el: HTMLElement): Array<HTMLElement> => {\n\treturn getTabbables(el.tagName === \"SLOT\" ? [el] : [...el.children]);\n};\n\n/**\n * Returns the last tabbable element within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { HTMLElement | null } the last tabbable element or \"null\" if not found\n */\nconst getLastTabbableElement = (el: HTMLElement): HTMLElement | null => {\n\tconst tabbables = getTabbables([...el.children]);\n\treturn tabbables.length ? tabbables[tabbables.length - 1] : null;\n};\n\nconst getTabbables = (nodes: Array<Node>, tabbables?: Array<HTMLElement>): Array<HTMLElement> => {\n\tconst tabbableElements = tabbables || [];\n\n\tif (!nodes) {\n\t\treturn tabbableElements;\n\t}\n\n\tnodes.forEach(currentNode => {\n\t\tif (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentElement = currentNode as HTMLElement;\n\t\tif (currentElement.hasAttribute(\"data-sap-no-tab-ref\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isElementTabbable(currentElement)) {\n\t\t\ttabbableElements.push(currentElement);\n\t\t}\n\n\t\tif (currentElement.tagName === \"SLOT\") {\n\t\t\tgetTabbables((currentElement as HTMLSlotElement).assignedElements(), tabbableElements);\n\t\t} else {\n\t\t\tconst children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;\n\t\t\tgetTabbables([...children], tabbableElements);\n\t\t}\n\t});\n\n\treturn tabbableElements;\n};\n\nexport {\n\tgetTabbableElements,\n\tgetLastTabbableElement,\n};\n"]}
@@ -1,12 +1,39 @@
1
- import type UI5Element from "../../UI5Element.js";
2
- declare const setDraggedElement: (element: HTMLElement | null) => void;
3
- type SetDraggedElementFunction = typeof setDraggedElement;
1
+ import type MovePlacement from "../../types/MovePlacement.js";
2
+ /**
3
+ * Starts a multiple drag operation by creating a drag ghost element.
4
+ * The drag ghost will be displayed when dragging multiple items.
5
+ *
6
+ * @param {number} count - The number of items being dragged.
7
+ * @param {DragEvent} e - The drag event that triggered the operation.
8
+ * @public
9
+ */
10
+ declare const startMultipleDrag: (count: number, e: DragEvent) => Promise<void>;
11
+ type DragAndDropSettings = {
12
+ /**
13
+ * Allow cross-browser and file drag and drop.
14
+ */
15
+ crossDnD?: boolean;
16
+ /**
17
+ * Pass the original event in the event parameters.
18
+ */
19
+ originalEvent?: boolean;
20
+ };
21
+ type MoveEventDetail = {
22
+ originalEvent: Event;
23
+ source: {
24
+ element: HTMLElement;
25
+ };
26
+ destination: {
27
+ element: HTMLElement;
28
+ placement: `${MovePlacement}`;
29
+ };
30
+ };
4
31
  declare const DragRegistry: {
5
- subscribe: (subscriber: UI5Element) => void;
6
- unsubscribe: (subscriber: UI5Element) => void;
7
- addSelfManagedArea: (area: HTMLElement | ShadowRoot) => (element: HTMLElement | null) => void;
8
- removeSelfManagedArea: (area: HTMLElement | ShadowRoot) => void;
32
+ setDraggedElement: (element: HTMLElement | null) => void;
33
+ clearDraggedElement: () => void;
9
34
  getDraggedElement: () => HTMLElement | null;
35
+ startMultipleDrag: (count: number, e: DragEvent) => Promise<void>;
10
36
  };
11
37
  export default DragRegistry;
12
- export type { SetDraggedElementFunction, };
38
+ export { startMultipleDrag, };
39
+ export type { DragAndDropSettings, MoveEventDetail, };
@@ -1,66 +1,58 @@
1
+ import MultipleDragGhostCss from "../../generated/css/MultipleDragGhost.css.js";
2
+ import { getI18nBundle } from "../../i18nBundle.js";
3
+ import { DRAG_DROP_MULTIPLE_TEXT, } from "../../generated/i18n/i18n-defaults.js";
4
+ const MIN_MULTI_DRAG_COUNT = 2;
1
5
  let draggedElement = null;
2
- let globalHandlersAttached = false;
3
- const subscribers = new Set();
4
- const selfManagedDragAreas = new Set();
5
- const ondragstart = (e) => {
6
- if (!e.dataTransfer || !(e.target instanceof HTMLElement)) {
7
- return;
8
- }
9
- if (!selfManagedDragAreas.has(e.target)) {
10
- draggedElement = e.target;
11
- }
12
- };
13
- const ondragend = () => {
14
- draggedElement = null;
15
- };
16
- const ondrop = () => {
17
- draggedElement = null;
18
- };
19
6
  const setDraggedElement = (element) => {
20
7
  draggedElement = element;
21
8
  };
9
+ const clearDraggedElement = () => {
10
+ draggedElement = null;
11
+ };
22
12
  const getDraggedElement = () => {
23
13
  return draggedElement;
24
14
  };
25
- const attachGlobalHandlers = () => {
26
- if (globalHandlersAttached) {
15
+ const createDefaultMultiDragElement = async (count) => {
16
+ const dragElement = document.createElement("div");
17
+ const i18nBundle = await getI18nBundle("@ui5/webcomponents-base");
18
+ const dragElementShadow = dragElement.attachShadow({ mode: "open" });
19
+ const styles = new CSSStyleSheet();
20
+ styles.replaceSync(MultipleDragGhostCss);
21
+ dragElementShadow.adoptedStyleSheets = [styles];
22
+ dragElementShadow.textContent = i18nBundle.getText(DRAG_DROP_MULTIPLE_TEXT, count);
23
+ return dragElement;
24
+ };
25
+ /**
26
+ * Starts a multiple drag operation by creating a drag ghost element.
27
+ * The drag ghost will be displayed when dragging multiple items.
28
+ *
29
+ * @param {number} count - The number of items being dragged.
30
+ * @param {DragEvent} e - The drag event that triggered the operation.
31
+ * @public
32
+ */
33
+ const startMultipleDrag = async (count, e) => {
34
+ if (count < MIN_MULTI_DRAG_COUNT) {
35
+ console.warn(`Cannot start multiple drag with count ${count}. Minimum is ${MIN_MULTI_DRAG_COUNT}.`); // eslint-disable-line
27
36
  return;
28
37
  }
29
- document.body.addEventListener("dragstart", ondragstart);
30
- document.body.addEventListener("dragend", ondragend);
31
- document.body.addEventListener("drop", ondrop);
32
- };
33
- const detachGlobalHandlers = () => {
34
- document.body.removeEventListener("dragstart", ondragstart);
35
- document.body.removeEventListener("dragend", ondragend);
36
- document.body.removeEventListener("drop", ondrop);
37
- globalHandlersAttached = false;
38
- };
39
- const subscribe = (subscriber) => {
40
- subscribers.add(subscriber);
41
- if (!globalHandlersAttached) {
42
- attachGlobalHandlers();
43
- }
44
- };
45
- const unsubscribe = (subscriber) => {
46
- subscribers.delete(subscriber);
47
- if (subscribers.size === 0 && globalHandlersAttached) {
48
- detachGlobalHandlers();
38
+ if (!e.dataTransfer) {
39
+ return;
49
40
  }
50
- };
51
- const addSelfManagedArea = (area) => {
52
- selfManagedDragAreas.add(area);
53
- return setDraggedElement;
54
- };
55
- const removeSelfManagedArea = (area) => {
56
- selfManagedDragAreas.delete(area);
41
+ const customDragElement = await createDefaultMultiDragElement(count);
42
+ // Add to document body temporarily
43
+ document.body.appendChild(customDragElement);
44
+ e.dataTransfer.setDragImage(customDragElement, 0, 0);
45
+ // Clean up the temporary element after the drag operation starts
46
+ requestAnimationFrame(() => {
47
+ customDragElement.remove();
48
+ });
57
49
  };
58
50
  const DragRegistry = {
59
- subscribe,
60
- unsubscribe,
61
- addSelfManagedArea,
62
- removeSelfManagedArea,
51
+ setDraggedElement,
52
+ clearDraggedElement,
63
53
  getDraggedElement,
54
+ startMultipleDrag,
64
55
  };
65
56
  export default DragRegistry;
57
+ export { startMultipleDrag, };
66
58
  //# sourceMappingURL=DragRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DragRegistry.js","sourceRoot":"","sources":["../../../src/util/dragAndDrop/DragRegistry.ts"],"names":[],"mappings":"AAEA,IAAI,cAAc,GAAuB,IAAI,CAAC;AAC9C,IAAI,sBAAsB,GAAG,KAAK,CAAC;AACnC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAc,CAAC;AAC1C,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEjE,MAAM,WAAW,GAAG,CAAC,CAAY,EAAE,EAAE;IACpC,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;QAC3D,OAAO;IACR,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,GAAG,EAAE;IACtB,cAAc,GAAG,IAAI,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,EAAE;IACnB,cAAc,GAAG,IAAI,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAA2B,EAAE,EAAE;IACzD,cAAc,GAAG,OAAO,CAAC;AAC1B,CAAC,CAAC;AAGF,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC9B,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACjC,IAAI,sBAAsB,EAAE,CAAC;QAC5B,OAAO;IACR,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACjC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,sBAAsB,GAAG,KAAK,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,UAAsB,EAAE,EAAE;IAC5C,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7B,oBAAoB,EAAE,CAAC;IACxB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,UAAsB,EAAE,EAAE;IAC9C,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAE/B,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,sBAAsB,EAAE,CAAC;QACtD,oBAAoB,EAAE,CAAC;IACxB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAC7D,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE/B,OAAO,iBAAiB,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAChE,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG;IACpB,SAAS;IACT,WAAW;IACX,kBAAkB;IAClB,qBAAqB;IACrB,iBAAiB;CACjB,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["import type UI5Element from \"../../UI5Element.js\";\n\nlet draggedElement: HTMLElement | null = null;\nlet globalHandlersAttached = false;\nconst subscribers = new Set<UI5Element>();\nconst selfManagedDragAreas = new Set<HTMLElement | ShadowRoot>();\n\nconst ondragstart = (e: DragEvent) => {\n\tif (!e.dataTransfer || !(e.target instanceof HTMLElement)) {\n\t\treturn;\n\t}\n\n\tif (!selfManagedDragAreas.has(e.target)) {\n\t\tdraggedElement = e.target;\n\t}\n};\n\nconst ondragend = () => {\n\tdraggedElement = null;\n};\n\nconst ondrop = () => {\n\tdraggedElement = null;\n};\n\nconst setDraggedElement = (element: HTMLElement | null) => {\n\tdraggedElement = element;\n};\ntype SetDraggedElementFunction = typeof setDraggedElement;\n\nconst getDraggedElement = () => {\n\treturn draggedElement;\n};\n\nconst attachGlobalHandlers = () => {\n\tif (globalHandlersAttached) {\n\t\treturn;\n\t}\n\n\tdocument.body.addEventListener(\"dragstart\", ondragstart);\n\tdocument.body.addEventListener(\"dragend\", ondragend);\n\tdocument.body.addEventListener(\"drop\", ondrop);\n};\n\nconst detachGlobalHandlers = () => {\n\tdocument.body.removeEventListener(\"dragstart\", ondragstart);\n\tdocument.body.removeEventListener(\"dragend\", ondragend);\n\tdocument.body.removeEventListener(\"drop\", ondrop);\n\tglobalHandlersAttached = false;\n};\n\nconst subscribe = (subscriber: UI5Element) => {\n\tsubscribers.add(subscriber);\n\n\tif (!globalHandlersAttached) {\n\t\tattachGlobalHandlers();\n\t}\n};\n\nconst unsubscribe = (subscriber: UI5Element) => {\n\tsubscribers.delete(subscriber);\n\n\tif (subscribers.size === 0 && globalHandlersAttached) {\n\t\tdetachGlobalHandlers();\n\t}\n};\n\nconst addSelfManagedArea = (area: HTMLElement | ShadowRoot) => {\n\tselfManagedDragAreas.add(area);\n\n\treturn setDraggedElement;\n};\n\nconst removeSelfManagedArea = (area: HTMLElement | ShadowRoot) => {\n\tselfManagedDragAreas.delete(area);\n};\n\nconst DragRegistry = {\n\tsubscribe,\n\tunsubscribe,\n\taddSelfManagedArea,\n\tremoveSelfManagedArea,\n\tgetDraggedElement,\n};\n\nexport default DragRegistry;\nexport type {\n\tSetDraggedElementFunction,\n};\n"]}
1
+ {"version":3,"file":"DragRegistry.js","sourceRoot":"","sources":["../../../src/util/dragAndDrop/DragRegistry.ts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,MAAM,8CAA8C,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACN,uBAAuB,GACvB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,IAAI,cAAc,GAAuB,IAAI,CAAC;AAE9C,MAAM,iBAAiB,GAAG,CAAC,OAA2B,EAAE,EAAE;IACzD,cAAc,GAAG,OAAO,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAChC,cAAc,GAAG,IAAI,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC9B,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,KAAK,EAAE,KAAa,EAAwB,EAAE;IACnF,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAElE,MAAM,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAEzC,iBAAiB,CAAC,kBAAkB,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,iBAAiB,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAEnF,OAAO,WAAW,CAAC;AACpB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAa,EAAE,CAAY,EAAE,EAAE;IAC/D,IAAI,KAAK,GAAG,oBAAoB,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,yCAAyC,KAAK,gBAAgB,oBAAoB,GAAG,CAAC,CAAC,CAAC,sBAAsB;QAC3H,OAAO;IACR,CAAC;IAED,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;QACrB,OAAO;IACR,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAErE,mCAAmC;IACnC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAE7C,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAErD,iEAAiE;IACjE,qBAAqB,CAAC,GAAG,EAAE;QAC1B,iBAAiB,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAwBF,MAAM,YAAY,GAAG;IACpB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;CACjB,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,OAAO,EACN,iBAAiB,GACjB,CAAC","sourcesContent":["import type MovePlacement from \"../../types/MovePlacement.js\";\nimport MultipleDragGhostCss from \"../../generated/css/MultipleDragGhost.css.js\";\n\nimport { getI18nBundle } from \"../../i18nBundle.js\";\n\nimport {\n\tDRAG_DROP_MULTIPLE_TEXT,\n} from \"../../generated/i18n/i18n-defaults.js\";\n\nconst MIN_MULTI_DRAG_COUNT = 2;\n\nlet draggedElement: HTMLElement | null = null;\n\nconst setDraggedElement = (element: HTMLElement | null) => {\n\tdraggedElement = element;\n};\n\nconst clearDraggedElement = () => {\n\tdraggedElement = null;\n};\n\nconst getDraggedElement = () => {\n\treturn draggedElement;\n};\n\nconst createDefaultMultiDragElement = async (count: number): Promise<HTMLElement> => {\n\tconst dragElement = document.createElement(\"div\");\n\tconst i18nBundle = await getI18nBundle(\"@ui5/webcomponents-base\");\n\n\tconst dragElementShadow = dragElement.attachShadow({ mode: \"open\" });\n\n\tconst styles = new CSSStyleSheet();\n\tstyles.replaceSync(MultipleDragGhostCss);\n\n\tdragElementShadow.adoptedStyleSheets = [styles];\n\tdragElementShadow.textContent = i18nBundle.getText(DRAG_DROP_MULTIPLE_TEXT, count);\n\n\treturn dragElement;\n};\n\n/**\n * Starts a multiple drag operation by creating a drag ghost element.\n * The drag ghost will be displayed when dragging multiple items.\n *\n * @param {number} count - The number of items being dragged.\n * @param {DragEvent} e - The drag event that triggered the operation.\n * @public\n */\nconst startMultipleDrag = async (count: number, e: DragEvent) => {\n\tif (count < MIN_MULTI_DRAG_COUNT) {\n\t\tconsole.warn(`Cannot start multiple drag with count ${count}. Minimum is ${MIN_MULTI_DRAG_COUNT}.`); // eslint-disable-line\n\t\treturn;\n\t}\n\n\tif (!e.dataTransfer) {\n\t\treturn;\n\t}\n\n\tconst customDragElement = await createDefaultMultiDragElement(count);\n\n\t// Add to document body temporarily\n\tdocument.body.appendChild(customDragElement);\n\n\te.dataTransfer.setDragImage(customDragElement, 0, 0);\n\n\t// Clean up the temporary element after the drag operation starts\n\trequestAnimationFrame(() => {\n\t\tcustomDragElement.remove();\n\t});\n};\n\ntype DragAndDropSettings = {\n\t/**\n\t * Allow cross-browser and file drag and drop.\n\t */\n\tcrossDnD?: boolean;\n\t/**\n\t * Pass the original event in the event parameters.\n\t */\n\toriginalEvent?: boolean;\n};\n\ntype MoveEventDetail = {\n\toriginalEvent: Event,\n\tsource: {\n\t\telement: HTMLElement,\n\t},\n\tdestination: {\n\t\telement: HTMLElement,\n\t\tplacement: `${MovePlacement}`,\n\t}\n};\n\nconst DragRegistry = {\n\tsetDraggedElement,\n\tclearDraggedElement,\n\tgetDraggedElement,\n\tstartMultipleDrag,\n};\n\nexport default DragRegistry;\nexport {\n\tstartMultipleDrag,\n};\n\nexport type {\n\tDragAndDropSettings,\n\tMoveEventDetail,\n};\n"]}
@@ -8,4 +8,5 @@ declare const findClosestPositionsByKey: (elements: Array<HTMLElement>, element:
8
8
  element: HTMLElement;
9
9
  placement: MovePlacement;
10
10
  }[];
11
- export { findClosestPosition, findClosestPositionsByKey, };
11
+ declare const isMovingKey: (key: string) => boolean;
12
+ export { findClosestPosition, findClosestPositionsByKey, isMovingKey, };
@@ -55,48 +55,52 @@ const findClosestPosition = (elements, point, layoutOrientation) => {
55
55
  placements,
56
56
  };
57
57
  };
58
+ const _moveBackward = (elements, index) => {
59
+ index--;
60
+ if (index < 0) {
61
+ return [];
62
+ }
63
+ return [{
64
+ element: elements[index],
65
+ placement: MovePlacement.Before,
66
+ }];
67
+ };
68
+ const _moveForward = (elements, index) => {
69
+ index++;
70
+ if (index >= elements.length) {
71
+ return [];
72
+ }
73
+ return [{
74
+ element: elements[index],
75
+ placement: MovePlacement.After,
76
+ }];
77
+ };
78
+ const keyToPlacement = {
79
+ ArrowLeft: _moveBackward,
80
+ ArrowUp: _moveBackward,
81
+ ArrowRight: _moveForward,
82
+ ArrowDown: _moveForward,
83
+ Home: (elements, index) => {
84
+ return elements.slice(0, index).map(el => ({
85
+ element: el,
86
+ placement: MovePlacement.Before,
87
+ }));
88
+ },
89
+ End: (elements, index) => {
90
+ return elements.slice(index + 1, elements.length).reverse().map(el => ({
91
+ element: el,
92
+ placement: MovePlacement.After,
93
+ }));
94
+ },
95
+ };
58
96
  const findClosestPositionsByKey = (elements, element, e) => {
59
- let index = elements.indexOf(element);
60
- const positions = [];
61
- switch (e.key) {
62
- case "ArrowLeft":
63
- case "ArrowUp":
64
- index--;
65
- if (index >= 0) {
66
- positions.push({
67
- element: elements[index],
68
- placement: MovePlacement.Before,
69
- });
70
- }
71
- break;
72
- case "ArrowRight":
73
- case "ArrowDown":
74
- index++;
75
- if (index < elements.length) {
76
- positions.push({
77
- element: elements[index],
78
- placement: MovePlacement.After,
79
- });
80
- }
81
- break;
82
- case "Home":
83
- elements.forEach(el => {
84
- positions.push({
85
- element: el,
86
- placement: MovePlacement.Before,
87
- });
88
- });
89
- break;
90
- case "End":
91
- elements.reverse().forEach(el => {
92
- positions.push({
93
- element: el,
94
- placement: MovePlacement.After,
95
- });
96
- });
97
- break;
97
+ if (isMovingKey(e.key)) {
98
+ return keyToPlacement[e.key](elements, elements.indexOf(element));
98
99
  }
99
- return positions;
100
+ return [];
101
+ };
102
+ const isMovingKey = (key) => {
103
+ return key in keyToPlacement;
100
104
  };
101
- export { findClosestPosition, findClosestPositionsByKey, };
105
+ export { findClosestPosition, findClosestPositionsByKey, isMovingKey, };
102
106
  //# sourceMappingURL=findClosestPosition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findClosestPosition.js","sourceRoot":"","sources":["../../../src/util/dragAndDrop/findClosestPosition.ts"],"names":[],"mappings":"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","sourcesContent":["import MovePlacement from \"../../types/MovePlacement.js\";\nimport Orientation from \"../../types/Orientation.js\";\n\nconst closestPlacement = (point: number, beforePoint: number, centerPoint: number, afterPoint: number) => {\n\tconst distToBeforePoint = Math.abs(point - beforePoint);\n\tconst distToCenterPoint = Math.abs(point - centerPoint);\n\tconst distToAfterPoint = Math.abs(point - afterPoint);\n\tconst closestPoint = Math.min(\n\t\tdistToBeforePoint,\n\t\tdistToCenterPoint,\n\t\tdistToAfterPoint,\n\t);\n\tlet placements: Array<MovePlacement> = [];\n\n\tswitch (closestPoint) {\n\tcase distToBeforePoint:\n\t\tplacements = [MovePlacement.Before];\n\t\tbreak;\n\tcase distToCenterPoint:\n\t\tplacements = [MovePlacement.On, distToBeforePoint < distToAfterPoint ? MovePlacement.Before : MovePlacement.After];\n\t\tbreak;\n\tcase distToAfterPoint:\n\t\tplacements = [MovePlacement.After];\n\t\tbreak;\n\t}\n\n\treturn placements;\n};\n\nconst findClosestPosition = (elements: Array<HTMLElement>, point: number, layoutOrientation: Orientation) => {\n\tlet shortestDist = Number.POSITIVE_INFINITY;\n\tlet closestElement: HTMLElement | null = null;\n\n\t// determine which element is most closest to the point\n\tfor (let i = 0; i < elements.length; i++) {\n\t\tconst el = elements[i];\n\t\tconst {\n\t\t\tleft, width, top, height,\n\t\t} = el.getBoundingClientRect();\n\n\t\tlet elemCenter;\n\t\tif (layoutOrientation === Orientation.Vertical) {\n\t\t\telemCenter = top + height / 2;\n\t\t} else { // Horizontal\n\t\t\telemCenter = left + width / 2;\n\t\t}\n\n\t\tconst distanceToCenter = Math.abs(point - elemCenter);\n\n\t\tif (distanceToCenter < shortestDist) {\n\t\t\tshortestDist = distanceToCenter;\n\t\t\tclosestElement = el;\n\t\t}\n\t}\n\n\tif (!closestElement) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\twidth, height, left, right, top, bottom,\n\t} = closestElement.getBoundingClientRect();\n\tlet placements;\n\n\tif (layoutOrientation === Orientation.Vertical) {\n\t\tplacements = closestPlacement(point, top, top + height / 2, bottom);\n\t} else { // Horizontal\n\t\tplacements = closestPlacement(point, left, left + width / 2, right);\n\t}\n\n\treturn {\n\t\telement: closestElement,\n\t\tplacements,\n\t};\n};\n\nconst findClosestPositionsByKey = (elements: Array<HTMLElement>, element: HTMLElement, e: KeyboardEvent) => {\n\tlet index = elements.indexOf(element);\n\tconst positions = [];\n\n\tswitch (e.key) {\n\tcase \"ArrowLeft\":\n\tcase \"ArrowUp\":\n\t\tindex--;\n\t\tif (index >= 0) {\n\t\t\tpositions.push({\n\t\t\t\telement: elements[index],\n\t\t\t\tplacement: MovePlacement.Before,\n\t\t\t});\n\t\t}\n\t\tbreak;\n\tcase \"ArrowRight\":\n\tcase \"ArrowDown\":\n\t\tindex++;\n\t\tif (index < elements.length) {\n\t\t\tpositions.push({\n\t\t\t\telement: elements[index],\n\t\t\t\tplacement: MovePlacement.After,\n\t\t\t});\n\t\t}\n\t\tbreak;\n\tcase \"Home\":\n\t\telements.forEach(el => {\n\t\t\tpositions.push({\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.Before,\n\t\t\t});\n\t\t});\n\t\tbreak;\n\tcase \"End\":\n\t\telements.reverse().forEach(el => {\n\t\t\tpositions.push({\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.After,\n\t\t\t});\n\t\t});\n\t\tbreak;\n\t}\n\n\treturn positions;\n};\n\nexport {\n\tfindClosestPosition,\n\tfindClosestPositionsByKey,\n};\n"]}
1
+ {"version":3,"file":"findClosestPosition.js","sourceRoot":"","sources":["../../../src/util/dragAndDrop/findClosestPosition.ts"],"names":[],"mappings":"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","sourcesContent":["import MovePlacement from \"../../types/MovePlacement.js\";\nimport Orientation from \"../../types/Orientation.js\";\n\nconst closestPlacement = (point: number, beforePoint: number, centerPoint: number, afterPoint: number) => {\n\tconst distToBeforePoint = Math.abs(point - beforePoint);\n\tconst distToCenterPoint = Math.abs(point - centerPoint);\n\tconst distToAfterPoint = Math.abs(point - afterPoint);\n\tconst closestPoint = Math.min(\n\t\tdistToBeforePoint,\n\t\tdistToCenterPoint,\n\t\tdistToAfterPoint,\n\t);\n\tlet placements: Array<MovePlacement> = [];\n\n\tswitch (closestPoint) {\n\tcase distToBeforePoint:\n\t\tplacements = [MovePlacement.Before];\n\t\tbreak;\n\tcase distToCenterPoint:\n\t\tplacements = [MovePlacement.On, distToBeforePoint < distToAfterPoint ? MovePlacement.Before : MovePlacement.After];\n\t\tbreak;\n\tcase distToAfterPoint:\n\t\tplacements = [MovePlacement.After];\n\t\tbreak;\n\t}\n\n\treturn placements;\n};\n\nconst findClosestPosition = (elements: Array<HTMLElement>, point: number, layoutOrientation: Orientation) => {\n\tlet shortestDist = Number.POSITIVE_INFINITY;\n\tlet closestElement: HTMLElement | null = null;\n\n\t// determine which element is most closest to the point\n\tfor (let i = 0; i < elements.length; i++) {\n\t\tconst el = elements[i];\n\t\tconst {\n\t\t\tleft, width, top, height,\n\t\t} = el.getBoundingClientRect();\n\n\t\tlet elemCenter;\n\t\tif (layoutOrientation === Orientation.Vertical) {\n\t\t\telemCenter = top + height / 2;\n\t\t} else { // Horizontal\n\t\t\telemCenter = left + width / 2;\n\t\t}\n\n\t\tconst distanceToCenter = Math.abs(point - elemCenter);\n\n\t\tif (distanceToCenter < shortestDist) {\n\t\t\tshortestDist = distanceToCenter;\n\t\t\tclosestElement = el;\n\t\t}\n\t}\n\n\tif (!closestElement) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\twidth, height, left, right, top, bottom,\n\t} = closestElement.getBoundingClientRect();\n\tlet placements;\n\n\tif (layoutOrientation === Orientation.Vertical) {\n\t\tplacements = closestPlacement(point, top, top + height / 2, bottom);\n\t} else { // Horizontal\n\t\tplacements = closestPlacement(point, left, left + width / 2, right);\n\t}\n\n\treturn {\n\t\telement: closestElement,\n\t\tplacements,\n\t};\n};\n\nconst _moveBackward = (elements: Array<HTMLElement>, index: number) => {\n\tindex--;\n\n\tif (index < 0) {\n\t\treturn [];\n\t}\n\n\treturn [{\n\t\telement: elements[index],\n\t\tplacement: MovePlacement.Before,\n\t}];\n};\n\nconst _moveForward = (elements: Array<HTMLElement>, index: number) => {\n\tindex++;\n\n\tif (index >= elements.length) {\n\t\treturn [];\n\t}\n\n\treturn [{\n\t\telement: elements[index],\n\t\tplacement: MovePlacement.After,\n\t}];\n};\n\nconst keyToPlacement: { [key: string]: (arg1: Array<HTMLElement>, arg2: number) => Array<{element: HTMLElement, placement: MovePlacement}>} = {\n\tArrowLeft: _moveBackward,\n\tArrowUp: _moveBackward,\n\tArrowRight: _moveForward,\n\tArrowDown: _moveForward,\n\tHome: (elements, index) => {\n\t\treturn elements.slice(0, index).map(el => (\n\t\t\t{\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.Before,\n\t\t\t}\n\t\t));\n\t},\n\tEnd: (elements, index) => {\n\t\treturn elements.slice(index + 1, elements.length).reverse().map(el => (\n\t\t\t{\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.After,\n\t\t\t}\n\t\t));\n\t},\n};\n\nconst findClosestPositionsByKey = (elements: Array<HTMLElement>, element: HTMLElement, e: KeyboardEvent) => {\n\tif (isMovingKey(e.key)) {\n\t\treturn keyToPlacement[e.key](elements, elements.indexOf(element));\n\t}\n\n\treturn [];\n};\n\nconst isMovingKey = (key: string) => {\n\treturn key in keyToPlacement;\n};\n\nexport {\n\tfindClosestPosition,\n\tfindClosestPositionsByKey,\n\tisMovingKey,\n};\n"]}
@@ -0,0 +1,16 @@
1
+ import type UI5Element from "../../UI5Element.js";
2
+ import type MovePlacement from "../../types/MovePlacement.js";
3
+ import type { DragAndDropSettings } from "./DragRegistry.js";
4
+ type DragOverResult = {
5
+ targetReference: HTMLElement | null;
6
+ placement: any;
7
+ };
8
+ type DragPosition = {
9
+ element: HTMLElement;
10
+ placements: MovePlacement[];
11
+ };
12
+ /**
13
+ * Handles the dragover event.
14
+ */
15
+ declare function handleDragOver<T extends UI5Element>(e: DragEvent, component: T, position: DragPosition, target: HTMLElement, settings?: DragAndDropSettings): DragOverResult;
16
+ export default handleDragOver;
@@ -0,0 +1,42 @@
1
+ import DragRegistry from "./DragRegistry.js";
2
+ /**
3
+ * Handles the dragover event.
4
+ */
5
+ function handleDragOver(e, component, position, target, settings = {}) {
6
+ const draggedElement = DragRegistry.getDraggedElement();
7
+ const dragOverResult = {
8
+ targetReference: null,
9
+ placement: null,
10
+ };
11
+ if (!draggedElement && !settings?.crossDnD) {
12
+ return dragOverResult;
13
+ }
14
+ const placements = position.placements;
15
+ dragOverResult.targetReference = e.target;
16
+ const placementAccepted = placements.some(placement => {
17
+ const originalEvent = settings.originalEvent ? { originalEvent: e } : {};
18
+ const beforeItemMovePrevented = !component.fireDecoratorEvent("move-over", {
19
+ ...originalEvent,
20
+ source: {
21
+ element: draggedElement,
22
+ },
23
+ destination: {
24
+ element: target,
25
+ placement,
26
+ },
27
+ });
28
+ if (beforeItemMovePrevented) {
29
+ e.preventDefault();
30
+ dragOverResult.targetReference = position.element;
31
+ dragOverResult.placement = placement;
32
+ return true;
33
+ }
34
+ return false;
35
+ });
36
+ if (!placementAccepted) {
37
+ dragOverResult.targetReference = null;
38
+ }
39
+ return dragOverResult;
40
+ }
41
+ export default handleDragOver;
42
+ //# sourceMappingURL=handleDragOver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleDragOver.js","sourceRoot":"","sources":["../../../src/util/dragAndDrop/handleDragOver.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAY7C;;GAEG;AACH,SAAS,cAAc,CAAuB,CAAY,EAAE,SAAY,EAAE,QAAsB,EAAE,MAAmB,EAAE,WAAgC,EAAE;IACxJ,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;IACxD,MAAM,cAAc,GAAmB;QACtC,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC5C,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,cAAc,CAAC,eAAe,GAAG,CAAC,CAAC,MAAqB,CAAC;IAEzD,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,uBAAuB,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAsC,EAAE;YACrG,GAAG,aAAa;YAChB,MAAM,EAAE;gBACP,OAAO,EAAE,cAAc;aACvB;YACD,WAAW,EAAE;gBACZ,OAAO,EAAE,MAAM;gBACf,SAAS;aACT;SAC6C,CAAC,CAAC;QAEjD,IAAI,uBAAuB,EAAE,CAAC;YAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC;YAClD,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;YACrC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxB,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC;IACvC,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,eAAe,cAAc,CAAC","sourcesContent":["import type UI5Element from \"../../UI5Element.js\";\nimport type MovePlacement from \"../../types/MovePlacement.js\";\nimport type { DragAndDropSettings } from \"./DragRegistry.js\";\nimport DragRegistry from \"./DragRegistry.js\";\n\ntype DragOverResult = {\n\ttargetReference: HTMLElement | null;\n\tplacement: any;\n}\n\ntype DragPosition = {\n\telement: HTMLElement;\n\tplacements: MovePlacement[];\n};\n\n/**\n * Handles the dragover event.\n */\nfunction handleDragOver<T extends UI5Element>(e: DragEvent, component: T, position: DragPosition, target: HTMLElement, settings: DragAndDropSettings = {}): DragOverResult {\n\tconst draggedElement = DragRegistry.getDraggedElement();\n\tconst dragOverResult: DragOverResult = {\n\t\ttargetReference: null,\n\t\tplacement: null,\n\t};\n\n\tif (!draggedElement && !settings?.crossDnD) {\n\t\treturn dragOverResult;\n\t}\n\n\tconst placements = position.placements;\n\tdragOverResult.targetReference = e.target as HTMLElement;\n\n\tconst placementAccepted = placements.some(placement => {\n\t\tconst originalEvent = settings.originalEvent ? { originalEvent: e } : {};\n\t\tconst beforeItemMovePrevented = !component.fireDecoratorEvent(\"move-over\" as keyof T[\"eventDetails\"], {\n\t\t\t...originalEvent,\n\t\t\tsource: {\n\t\t\t\telement: draggedElement,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: target,\n\t\t\t\tplacement,\n\t\t\t},\n\t\t} as T[\"eventDetails\"][keyof T[\"eventDetails\"]]);\n\n\t\tif (beforeItemMovePrevented) {\n\t\t\te.preventDefault();\n\t\t\tdragOverResult.targetReference = position.element;\n\t\t\tdragOverResult.placement = placement;\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t});\n\n\tif (!placementAccepted) {\n\t\tdragOverResult.targetReference = null;\n\t}\n\n\treturn dragOverResult;\n}\n\nexport default handleDragOver;\n"]}
@@ -0,0 +1,5 @@
1
+ import type UI5Element from "../../UI5Element.js";
2
+ import type MovePlacement from "../../types/MovePlacement.js";
3
+ import type { DragAndDropSettings } from "./DragRegistry.js";
4
+ declare function handleDrop<T extends UI5Element>(e: DragEvent, component: T, target: HTMLElement, placement: `${MovePlacement}`, settings?: DragAndDropSettings): void;
5
+ export default handleDrop;
@@ -0,0 +1,22 @@
1
+ import DragRegistry from "./DragRegistry.js";
2
+ function handleDrop(e, component, target, placement, settings = {}) {
3
+ e.preventDefault();
4
+ const draggedElement = DragRegistry.getDraggedElement();
5
+ if (!draggedElement && settings?.crossDnD) {
6
+ return;
7
+ }
8
+ const originalEvent = settings.originalEvent ? { originalEvent: e } : {};
9
+ component.fireDecoratorEvent("move", {
10
+ ...originalEvent,
11
+ source: {
12
+ element: draggedElement,
13
+ },
14
+ destination: {
15
+ element: target,
16
+ placement,
17
+ },
18
+ });
19
+ draggedElement?.focus();
20
+ }
21
+ export default handleDrop;
22
+ //# sourceMappingURL=handleDrop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleDrop.js","sourceRoot":"","sources":["../../../src/util/dragAndDrop/handleDrop.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,SAAS,UAAU,CAAuB,CAAY,EAAE,SAAY,EAAE,MAAmB,EAAE,SAA6B,EAAE,WAAgC,EAAE;IAC3J,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAExD,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC3C,OAAO;IACR,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,SAAS,CAAC,kBAAkB,CAAC,MAAiC,EAAE;QAC/D,GAAG,aAAa;QAChB,MAAM,EAAE;YACP,OAAO,EAAE,cAAc;SACvB;QACD,WAAW,EAAE;YACZ,OAAO,EAAE,MAAM;YACf,SAAS;SACT;KAC6C,CAAC,CAAC;IAEjD,cAAc,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,eAAe,UAAU,CAAC","sourcesContent":["import type UI5Element from \"../../UI5Element.js\";\nimport type MovePlacement from \"../../types/MovePlacement.js\";\nimport type { DragAndDropSettings } from \"./DragRegistry.js\";\nimport DragRegistry from \"./DragRegistry.js\";\n\nfunction handleDrop<T extends UI5Element>(e: DragEvent, component: T, target: HTMLElement, placement: `${MovePlacement}`, settings: DragAndDropSettings = {}): void {\n\te.preventDefault();\n\tconst draggedElement = DragRegistry.getDraggedElement();\n\n\tif (!draggedElement && settings?.crossDnD) {\n\t\treturn;\n\t}\n\n\tconst originalEvent = settings.originalEvent ? { originalEvent: e } : {};\n\tcomponent.fireDecoratorEvent(\"move\" as keyof T[\"eventDetails\"], {\n\t\t...originalEvent,\n\t\tsource: {\n\t\t\telement: draggedElement,\n\t\t},\n\t\tdestination: {\n\t\t\telement: target,\n\t\t\tplacement,\n\t\t},\n\t} as T[\"eventDetails\"][keyof T[\"eventDetails\"]]);\n\n\tdraggedElement?.focus();\n}\n\nexport default handleDrop;\n"]}
@@ -1,6 +1,11 @@
1
1
  import type UI5Element from "../UI5Element.js";
2
2
  declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () => void) => {
3
3
  new (): {
4
+ eventDetails: object;
5
+ _jsxEvents: Omit<import("@ui5/webcomponents-base/jsx-runtime").JSX.DOMAttributes<any>, "onClose" | "onToggle" | "onChange" | "onSelect" | "onInput"> & object;
6
+ _jsxProps: Pick<import("@ui5/webcomponents-base/jsx-runtime").JSX.AllHTMLAttributes<HTMLElement>, "contextmenu" | "slot" | "style" | "title" | "pattern" | "dir" | "id" | "accesskey" | "autocapitalize" | "autofocus" | "autocomplete" | "contenteditable" | "class" | "draggable" | "enterkeyhint" | "hidden" | "inputmode" | "lang" | "nonce" | "part" | "exportparts" | "spellcheck" | "tabIndex" | "tabindex" | "translate" | "ref" | "inert" | "role"> & Partial<Omit<any, keyof HTMLElement>> & Partial<Omit<import("@ui5/webcomponents-base/jsx-runtime").JSX.DOMAttributes<any>, "onClose" | "onToggle" | "onChange" | "onSelect" | "onInput"> & object> & {
7
+ key?: any;
8
+ };
4
9
  __id?: string;
5
10
  _suppressInvalidation: boolean;
6
11
  _changedState: Array<import("../UI5Element.js").ChangeInfo>;
@@ -15,8 +20,10 @@ declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () =
15
20
  _deferredResolve?: import("../types.js").PromiseResolve;
16
21
  };
17
22
  _doNotSyncAttributes: Set<string>;
23
+ __shouldHydrate: boolean;
18
24
  _state: import("../UI5ElementMetadata.js").State;
19
25
  _internals: ElementInternals;
26
+ _individualSlot?: string;
20
27
  _getRealDomRef?: () => HTMLElement;
21
28
  initializedProperties: Map<string, unknown>;
22
29
  _rendered: boolean;
@@ -58,20 +65,21 @@ declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () =
58
65
  getFocusDomRefAsync(): Promise<HTMLElement | undefined>;
59
66
  focus(focusOptions?: FocusOptions): Promise<void>;
60
67
  fireEvent<T>(name: string, data?: T, cancelable?: boolean, bubbles?: boolean): boolean;
61
- fireDecoratorEvent<T>(name: string, data?: T): boolean;
68
+ fireDecoratorEvent<N extends never>(name: N, data?: object[N] | undefined): boolean;
62
69
  _fireEvent<T>(name: string, data?: T | undefined, cancelable?: boolean, bubbles?: boolean): boolean;
63
70
  getEventData(name: string): {
64
- detail: Record<string, object>;
65
- cancelable: boolean;
66
- bubbles: boolean;
71
+ detail?: Record<string, object>;
72
+ cancelable?: boolean;
73
+ bubbles?: boolean;
67
74
  };
68
75
  getSlottedNodes<T = Node>(slotName: string): Array<T>;
69
76
  attachComponentStateFinalized(callback: () => void): void;
70
77
  detachComponentStateFinalized(callback: () => void): void;
71
78
  readonly effectiveDir: string | undefined;
72
79
  readonly isUI5Element: boolean;
80
+ readonly isUI5AbstractElement: boolean;
73
81
  readonly classes: import("../types.js").ClassMap;
74
- readonly accessibilityInfo: import("../types.js").AccessibilityInfo;
82
+ readonly accessibilityInfo: import("../types.js").AccessibilityInfo | undefined;
75
83
  readonly validity: ValidityState;
76
84
  readonly validationMessage: string;
77
85
  checkValidity(): boolean;
@@ -413,6 +421,7 @@ declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () =
413
421
  renderer: import("../UI5Element.js").Renderer;
414
422
  readonly formAssociated: boolean;
415
423
  readonly observedAttributes: string[];
424
+ readonly tagsToScope: string[];
416
425
  _needsShadowDOM(): boolean;
417
426
  _generateAccessors(): void;
418
427
  metadata: import("../UI5ElementMetadata.js").Metadata;
@@ -425,6 +434,8 @@ declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () =
425
434
  fetchCLDR(): Promise<void>;
426
435
  asyncFinished: boolean;
427
436
  definePromise: Promise<void> | undefined;
437
+ i18nBundleStorage: Record<string, import("../i18nBundle.js").default>;
438
+ readonly i18nBundles: Record<string, import("../i18nBundle.js").default>;
428
439
  define(): typeof UI5Element;
429
440
  getMetadata(): import("../UI5ElementMetadata.js").default;
430
441
  };
@@ -39,7 +39,12 @@ const findFastNavigationGroups = (container, startFromContainer) => {
39
39
  if (child.nodeType === 1) {
40
40
  findFastNavigationGroups(child, false);
41
41
  }
42
- child = assignedElements && assignedElements.length ? assignedElements[++index] : originalChild.nextElementSibling;
42
+ if (child === container) {
43
+ child = assignedElements && assignedElements.length ? assignedElements[++index] : null;
44
+ }
45
+ else {
46
+ child = assignedElements && assignedElements.length ? assignedElements[++index] : originalChild.nextElementSibling;
47
+ }
43
48
  }
44
49
  };
45
50
  const getFastNavigationGroups = (container) => {
@@ -1 +1 @@
1
- {"version":3,"file":"getFastNavigationGroups.js","sourceRoot":"","sources":["../../src/util/getFastNavigationGroups.ts"],"names":[],"mappings":"AAAA,IAAI,MAAM,GAAuB,EAAE,CAAC;AAEpC,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAE,EAAE;IAClD,OAAO,EAAE,CAAC,YAAY,CAAC,0BAA0B,CAAC,KAAK,MAAM,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,EAAe,EAAE,EAAE;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAE1C,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK;WACxB,KAAK,CAAC,MAAM,KAAK,KAAK;WACtB,KAAK,CAAC,OAAO,KAAK,GAAG;WACrB,KAAK,CAAC,OAAO,KAAK,MAAM;WACxB,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,SAAsB,EAAE,kBAA4B,EAAE,EAAE;IACzF,IAAI,KAAK,EACR,gBAAgB,EAChB,KAAK,GAAG,CAAC,CAAC;IAEX,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO;IACR,CAAC;IAED,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;IACzC,CAAC;SAAM,IAAI,SAAS,YAAY,eAAe,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;QAC9E,gBAAgB,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;QAC7C,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAC/B,KAAK,GAAG,SAAS,CAAC;IACnB,CAAC;SAAM,CAAC;QACP,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,EAAE,CAAC;QACd,MAAM,aAAa,GAAgB,KAAoB,CAAC;QACxD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO;QACR,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,wBAAwB,CAAC,KAAoB,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;QAED,KAAK,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC;IACpH,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,SAAsB,EAAE,EAAE;IAC1D,MAAM,GAAG,EAAE,CAAC;IAEZ,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC","sourcesContent":["let groups: Array<HTMLElement> = [];\n\nconst isFastNavGroupElemenet = (el: HTMLElement) => {\n\treturn el.getAttribute(\"data-sap-ui-fastnavgroup\") === \"true\";\n};\n\nconst isElementVisible = (el: HTMLElement) => {\n\tconst style = window.getComputedStyle(el);\n\n\treturn style.width !== \"0px\"\n\t\t&& style.height !== \"0px\"\n\t\t&& style.opacity !== \"0\"\n\t\t&& style.display !== \"none\"\n\t\t&& style.visibility !== \"hidden\";\n};\n\nconst findFastNavigationGroups = (container: HTMLElement, startFromContainer?: boolean) => {\n\tlet child,\n\t\tassignedElements,\n\t\tindex = 0;\n\n\tif (!isElementVisible(container)) {\n\t\treturn;\n\t}\n\n\tif (isFastNavGroupElemenet(container)) {\n\t\tgroups.push(container);\n\t}\n\n\tif (container.shadowRoot) {\n\t\tchild = container.shadowRoot.firstChild;\n\t} else if (container instanceof HTMLSlotElement && container.assignedNodes()) {\n\t\tassignedElements = container.assignedNodes();\n\t\tchild = assignedElements[0];\n\t} else if (startFromContainer) {\n\t\tchild = container;\n\t} else {\n\t\tchild = container.firstElementChild;\n\t}\n\n\twhile (child) {\n\t\tconst originalChild: HTMLElement = child as HTMLElement;\n\t\tif (!child) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (child.nodeType === 1) {\n\t\t\tfindFastNavigationGroups(child as HTMLElement, false);\n\t\t}\n\n\t\tchild = assignedElements && assignedElements.length ? assignedElements[++index] : originalChild.nextElementSibling;\n\t}\n};\n\nconst getFastNavigationGroups = (container: HTMLElement) => {\n\tgroups = [];\n\n\tfindFastNavigationGroups(container, true);\n\n\treturn groups;\n};\n\nexport default getFastNavigationGroups;\n"]}
1
+ {"version":3,"file":"getFastNavigationGroups.js","sourceRoot":"","sources":["../../src/util/getFastNavigationGroups.ts"],"names":[],"mappings":"AAAA,IAAI,MAAM,GAAuB,EAAE,CAAC;AAEpC,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAE,EAAE;IAClD,OAAO,EAAE,CAAC,YAAY,CAAC,0BAA0B,CAAC,KAAK,MAAM,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,EAAe,EAAE,EAAE;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAE1C,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK;WACxB,KAAK,CAAC,MAAM,KAAK,KAAK;WACtB,KAAK,CAAC,OAAO,KAAK,GAAG;WACrB,KAAK,CAAC,OAAO,KAAK,MAAM;WACxB,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,SAAsB,EAAE,kBAA4B,EAAE,EAAE;IACzF,IAAI,KAAK,EACR,gBAAgB,EAChB,KAAK,GAAG,CAAC,CAAC;IAEX,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO;IACR,CAAC;IAED,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;IACzC,CAAC;SAAM,IAAI,SAAS,YAAY,eAAe,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;QAC9E,gBAAgB,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;QAC7C,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAC/B,KAAK,GAAG,SAAS,CAAC;IACnB,CAAC;SAAM,CAAC;QACP,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,EAAE,CAAC;QACd,MAAM,aAAa,GAAgB,KAAoB,CAAC;QACxD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO;QACR,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,wBAAwB,CAAC,KAAoB,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,CAAC;aAAM,CAAC;YACP,KAAK,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC;QACpH,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,SAAsB,EAAE,EAAE;IAC1D,MAAM,GAAG,EAAE,CAAC;IAEZ,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC","sourcesContent":["let groups: Array<HTMLElement> = [];\n\nconst isFastNavGroupElemenet = (el: HTMLElement) => {\n\treturn el.getAttribute(\"data-sap-ui-fastnavgroup\") === \"true\";\n};\n\nconst isElementVisible = (el: HTMLElement) => {\n\tconst style = window.getComputedStyle(el);\n\n\treturn style.width !== \"0px\"\n\t\t&& style.height !== \"0px\"\n\t\t&& style.opacity !== \"0\"\n\t\t&& style.display !== \"none\"\n\t\t&& style.visibility !== \"hidden\";\n};\n\nconst findFastNavigationGroups = (container: HTMLElement, startFromContainer?: boolean) => {\n\tlet child,\n\t\tassignedElements,\n\t\tindex = 0;\n\n\tif (!isElementVisible(container)) {\n\t\treturn;\n\t}\n\n\tif (isFastNavGroupElemenet(container)) {\n\t\tgroups.push(container);\n\t}\n\n\tif (container.shadowRoot) {\n\t\tchild = container.shadowRoot.firstChild;\n\t} else if (container instanceof HTMLSlotElement && container.assignedNodes()) {\n\t\tassignedElements = container.assignedNodes();\n\t\tchild = assignedElements[0];\n\t} else if (startFromContainer) {\n\t\tchild = container;\n\t} else {\n\t\tchild = container.firstElementChild;\n\t}\n\n\twhile (child) {\n\t\tconst originalChild: HTMLElement = child as HTMLElement;\n\t\tif (!child) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (child.nodeType === 1) {\n\t\t\tfindFastNavigationGroups(child as HTMLElement, false);\n\t\t}\n\n\t\tif (child === container) {\n\t\t\tchild = assignedElements && assignedElements.length ? assignedElements[++index] : null;\n\t\t} else {\n\t\t\tchild = assignedElements && assignedElements.length ? assignedElements[++index] : originalChild.nextElementSibling;\n\t\t}\n\t}\n};\n\nconst getFastNavigationGroups = (container: HTMLElement) => {\n\tgroups = [];\n\n\tfindFastNavigationGroups(container, true);\n\n\treturn groups;\n};\n\nexport default getFastNavigationGroups;\n"]}
@@ -1,2 +1,2 @@
1
- declare const getParentElement: (el: HTMLElement) => HTMLElement;
1
+ declare const getParentElement: (element: Element) => Element | null;
2
2
  export default getParentElement;
@@ -1,5 +1,5 @@
1
- const getParentElement = (el) => {
2
- return (el.parentElement ? el.parentNode : el.parentNode.host);
1
+ const getParentElement = (element) => {
2
+ return element.parentElement ? element.parentElement : element.parentNode.host;
3
3
  };
4
4
  export default getParentElement;
5
5
  //# sourceMappingURL=getParentElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getParentElement.js","sourceRoot":"","sources":["../../src/util/getParentElement.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,CAAC,EAAe,EAAE,EAAE;IAC5C,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC,UAAyB,CAAC,IAAI,CAAgB,CAAC;AAC/F,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["const getParentElement = (el: HTMLElement) => {\n\treturn (el.parentElement ? el.parentNode : (el.parentNode as ShadowRoot).host) as HTMLElement;\n};\n\nexport default getParentElement;\n"]}
1
+ {"version":3,"file":"getParentElement.js","sourceRoot":"","sources":["../../src/util/getParentElement.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAmB,EAAE;IAC9D,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAE,OAAO,CAAC,UAAyB,CAAC,IAAI,CAAC;AAChG,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["const getParentElement = (element: Element) : Element | null => {\n\treturn element.parentElement ? element.parentElement : (element.parentNode as ShadowRoot).host;\n};\n\nexport default getParentElement;\n"]}