@ui5/webcomponents-base 0.0.0-bf8366eb6 → 0.0.0-c143e338b

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 (798) hide show
  1. package/CHANGELOG.md +1064 -0
  2. package/LICENSE.txt +201 -0
  3. package/README.md +7 -10
  4. package/cypress.config.js +3 -0
  5. package/dist/.tsbuildinfobuild +1 -0
  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 +5 -1
  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/DOMObserver.js.map +1 -1
  24. package/dist/Device.d.ts +16 -1
  25. package/dist/Device.js +6 -3
  26. package/dist/Device.js.map +1 -1
  27. package/dist/DragAndDrop.d.ts +2 -0
  28. package/dist/DragAndDrop.js +5 -0
  29. package/dist/DragAndDrop.js.map +1 -0
  30. package/dist/EventProvider.js.map +1 -1
  31. package/dist/FontFace.js +6 -9
  32. package/dist/FontFace.js.map +1 -1
  33. package/dist/IgnoreCustomElements.js.map +1 -1
  34. package/dist/InitialConfiguration.d.ts +9 -2
  35. package/dist/InitialConfiguration.js +33 -4
  36. package/dist/InitialConfiguration.js.map +1 -1
  37. package/dist/Keys.d.ts +5 -1
  38. package/dist/Keys.js +5 -1
  39. package/dist/Keys.js.map +1 -1
  40. package/dist/Location.d.ts +11 -0
  41. package/dist/Location.js +49 -0
  42. package/dist/Location.js.map +1 -0
  43. package/dist/ManagedStyles.d.ts +4 -6
  44. package/dist/ManagedStyles.js +6 -16
  45. package/dist/ManagedStyles.js.map +1 -1
  46. package/dist/MediaRange.js.map +1 -1
  47. package/dist/PropertiesFileFormat.js.map +1 -1
  48. package/dist/Render.js.map +1 -1
  49. package/dist/RenderQueue.js.map +1 -1
  50. package/dist/Runtimes.js +11 -0
  51. package/dist/Runtimes.js.map +1 -1
  52. package/dist/ScrollbarStyles.d.ts +2 -0
  53. package/dist/ScrollbarStyles.js +9 -0
  54. package/dist/ScrollbarStyles.js.map +1 -0
  55. package/dist/SystemCSSVars.js.map +1 -1
  56. package/dist/UI5Element.d.ts +81 -32
  57. package/dist/UI5Element.js +259 -156
  58. package/dist/UI5Element.js.map +1 -1
  59. package/dist/UI5ElementMetadata.d.ts +25 -16
  60. package/dist/UI5ElementMetadata.js +15 -71
  61. package/dist/UI5ElementMetadata.js.map +1 -1
  62. package/dist/animations/AnimationQueue.js.map +1 -1
  63. package/dist/animations/animate.js.map +1 -1
  64. package/dist/animations/slideUp.js.map +1 -1
  65. package/dist/asset-registries/Icons.d.ts +43 -9
  66. package/dist/asset-registries/Icons.js +51 -8
  67. package/dist/asset-registries/Icons.js.map +1 -1
  68. package/dist/asset-registries/Illustrations.d.ts +133 -8
  69. package/dist/asset-registries/Illustrations.js +82 -1
  70. package/dist/asset-registries/Illustrations.js.map +1 -1
  71. package/dist/asset-registries/LocaleData.js +2 -1
  72. package/dist/asset-registries/LocaleData.js.map +1 -1
  73. package/dist/asset-registries/Themes.d.ts +3 -6
  74. package/dist/asset-registries/Themes.js +1 -2
  75. package/dist/asset-registries/Themes.js.map +1 -1
  76. package/dist/asset-registries/i18n.js.map +1 -1
  77. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -1
  78. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -1
  79. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -1
  80. package/dist/config/AnimationMode.js +4 -0
  81. package/dist/config/AnimationMode.js.map +1 -1
  82. package/dist/config/CalendarType.js +5 -0
  83. package/dist/config/CalendarType.js.map +1 -1
  84. package/dist/config/ConfigurationReset.d.ts +4 -0
  85. package/dist/config/ConfigurationReset.js +11 -0
  86. package/dist/config/ConfigurationReset.js.map +1 -0
  87. package/dist/config/Fonts.d.ts +16 -0
  88. package/dist/config/Fonts.js +30 -0
  89. package/dist/config/Fonts.js.map +1 -0
  90. package/dist/config/FormatSettings.js +4 -0
  91. package/dist/config/FormatSettings.js.map +1 -1
  92. package/dist/config/Language.d.ts +2 -1
  93. package/dist/config/Language.js +19 -3
  94. package/dist/config/Language.js.map +1 -1
  95. package/dist/config/NoConflict.js +4 -0
  96. package/dist/config/NoConflict.js.map +1 -1
  97. package/dist/config/Theme.js +5 -2
  98. package/dist/config/Theme.js.map +1 -1
  99. package/dist/config/ThemeRoot.d.ts +3 -1
  100. package/dist/config/ThemeRoot.js +7 -1
  101. package/dist/config/ThemeRoot.js.map +1 -1
  102. package/dist/config/Timezone.js +4 -0
  103. package/dist/config/Timezone.js.map +1 -1
  104. package/dist/config/Tooltips.d.ts +19 -0
  105. package/dist/config/Tooltips.js +29 -0
  106. package/dist/config/Tooltips.js.map +1 -0
  107. package/dist/connectToComponent.js.map +1 -1
  108. package/dist/converters/DOMReference.d.ts +5 -0
  109. package/dist/converters/DOMReference.js +13 -0
  110. package/dist/converters/DOMReference.js.map +1 -0
  111. package/dist/css/MultipleDragGhost.css +17 -0
  112. package/dist/css/OpenUI5PopupStyles.css +5 -0
  113. package/dist/css/ScrollbarStyles.css +3 -0
  114. package/dist/custom-elements-internal.json +2869 -0
  115. package/dist/custom-elements.json +2566 -0
  116. package/dist/decorators/bound.d.ts +1 -0
  117. package/dist/decorators/bound.js +34 -0
  118. package/dist/decorators/bound.js.map +1 -0
  119. package/dist/decorators/customElement.d.ts +40 -0
  120. package/dist/decorators/customElement.js +4 -1
  121. package/dist/decorators/customElement.js.map +1 -1
  122. package/dist/decorators/event-strict.d.ts +15 -0
  123. package/dist/decorators/event-strict.js +26 -0
  124. package/dist/decorators/event-strict.js.map +1 -0
  125. package/dist/decorators/event.d.ts +4 -1
  126. package/dist/decorators/event.js +3 -0
  127. package/dist/decorators/event.js.map +1 -1
  128. package/dist/decorators/i18n.d.ts +17 -0
  129. package/dist/decorators/i18n.js +32 -0
  130. package/dist/decorators/i18n.js.map +1 -0
  131. package/dist/decorators/property.d.ts +1 -1
  132. package/dist/decorators/property.js +1 -1
  133. package/dist/decorators/property.js.map +1 -1
  134. package/dist/decorators/query.d.ts +25 -0
  135. package/dist/decorators/query.js +32 -0
  136. package/dist/decorators/query.js.map +1 -0
  137. package/dist/decorators/queryAll.d.ts +27 -0
  138. package/dist/decorators/queryAll.js +34 -0
  139. package/dist/decorators/queryAll.js.map +1 -0
  140. package/dist/decorators/slot.d.ts +1 -1
  141. package/dist/decorators/slot.js.map +1 -1
  142. package/dist/decorators.d.ts +4 -1
  143. package/dist/decorators.js +4 -1
  144. package/dist/decorators.js.map +1 -1
  145. package/dist/delegate/ItemNavigation.d.ts +1 -1
  146. package/dist/delegate/ItemNavigation.js.map +1 -1
  147. package/dist/delegate/ResizeHandler.js.map +1 -1
  148. package/dist/delegate/ScrollEnablement.js.map +1 -1
  149. package/dist/features/F6Navigation.d.ts +4 -3
  150. package/dist/features/F6Navigation.js +62 -19
  151. package/dist/features/F6Navigation.js.map +1 -1
  152. package/dist/features/InputElementsFormSupport.d.ts +7 -10
  153. package/dist/features/InputElementsFormSupport.js +2 -3
  154. package/dist/features/InputElementsFormSupport.js.map +1 -1
  155. package/dist/features/LegacyDateFormats.js.map +1 -1
  156. package/dist/features/OpenUI5Enablement.d.ts +2 -2
  157. package/dist/features/OpenUI5Enablement.js.map +1 -1
  158. package/dist/features/OpenUI5Support.d.ts +6 -1
  159. package/dist/features/OpenUI5Support.js +45 -29
  160. package/dist/features/OpenUI5Support.js.map +1 -1
  161. package/dist/features/insertOpenUI5PopupStyles.d.ts +2 -0
  162. package/dist/features/insertOpenUI5PopupStyles.js +9 -0
  163. package/dist/features/insertOpenUI5PopupStyles.js.map +1 -0
  164. package/dist/features/patchPatcher.js.map +1 -1
  165. package/dist/features/patchPopup.d.ts +19 -5
  166. package/dist/features/patchPopup.js +75 -5
  167. package/dist/features/patchPopup.js.map +1 -1
  168. package/dist/generated/AssetParameters.js +1 -1
  169. package/dist/generated/AssetParameters.js.map +1 -1
  170. package/dist/generated/VersionInfo.js +5 -5
  171. package/dist/generated/VersionInfo.js.map +1 -1
  172. package/dist/generated/assets/i18n/messagebundle_en.json +1 -0
  173. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  174. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  175. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  176. package/dist/generated/css/BusyIndicator.css.d.ts +2 -3
  177. package/dist/generated/css/BusyIndicator.css.js +1 -6
  178. package/dist/generated/css/BusyIndicator.css.js.map +1 -1
  179. package/dist/generated/css/FontFace.css.d.ts +2 -3
  180. package/dist/generated/css/FontFace.css.js +36 -6
  181. package/dist/generated/css/FontFace.css.js.map +1 -1
  182. package/dist/generated/css/MultipleDragGhost.css.d.ts +2 -0
  183. package/dist/generated/css/MultipleDragGhost.css.js +2 -0
  184. package/dist/generated/css/MultipleDragGhost.css.js.map +1 -0
  185. package/dist/generated/css/OpenUI5PopupStyles.css.d.ts +2 -0
  186. package/dist/generated/css/OpenUI5PopupStyles.css.js +2 -0
  187. package/dist/generated/css/OpenUI5PopupStyles.css.js.map +1 -0
  188. package/dist/generated/css/ScrollbarStyles.css.d.ts +2 -0
  189. package/dist/generated/css/ScrollbarStyles.css.js +2 -0
  190. package/dist/generated/css/ScrollbarStyles.css.js.map +1 -0
  191. package/dist/generated/css/SystemCSSVars.css.d.ts +2 -3
  192. package/dist/generated/css/SystemCSSVars.css.js +1 -6
  193. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  194. package/dist/generated/i18n/i18n-defaults.d.ts +3 -0
  195. package/dist/generated/i18n/i18n-defaults.js +3 -0
  196. package/dist/generated/i18n/i18n-defaults.js.map +1 -0
  197. package/dist/generated/json-imports/i18n-fetch.d.ts +1 -0
  198. package/dist/generated/json-imports/i18n-fetch.js +2 -0
  199. package/dist/generated/json-imports/i18n-fetch.js.map +1 -0
  200. package/dist/generated/json-imports/i18n-node.d.ts +1 -0
  201. package/dist/generated/json-imports/i18n-node.js +2 -0
  202. package/dist/generated/json-imports/i18n-node.js.map +1 -0
  203. package/dist/generated/json-imports/i18n.d.ts +1 -0
  204. package/dist/generated/json-imports/i18n.js +2 -0
  205. package/dist/generated/json-imports/i18n.js.map +1 -0
  206. package/dist/getSharedResource.js.map +1 -1
  207. package/dist/i18nBundle.js.map +1 -1
  208. package/dist/index.d.ts +49 -0
  209. package/dist/index.js +91 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/jsx-dev-runtime.d.ts +4 -0
  212. package/dist/jsx-dev-runtime.js +43 -0
  213. package/dist/jsx-dev-runtime.js.map +1 -0
  214. package/dist/jsx-runtime.d.ts +51 -0
  215. package/dist/jsx-runtime.js +27 -0
  216. package/dist/jsx-runtime.js.map +1 -0
  217. package/dist/jsx-utils.d.ts +3 -0
  218. package/dist/jsx-utils.js +48 -0
  219. package/dist/jsx-utils.js.map +1 -0
  220. package/dist/locale/Locale.js.map +1 -1
  221. package/dist/locale/getEffectiveDir.js.map +1 -1
  222. package/dist/locale/getLocale.js.map +1 -1
  223. package/dist/locale/nextFallbackLocale.js +6 -2
  224. package/dist/locale/nextFallbackLocale.js.map +1 -1
  225. package/dist/locale/normalizeLocale.js.map +1 -1
  226. package/dist/prod/AssetRegistry.js +2 -0
  227. package/dist/prod/AssetRegistry.js.map +7 -0
  228. package/dist/prod/Assets-fetch.js +2 -0
  229. package/dist/prod/Assets-fetch.js.map +7 -0
  230. package/dist/prod/Assets-node.js +2 -0
  231. package/dist/prod/Assets-node.js.map +7 -0
  232. package/dist/prod/Assets.js +2 -0
  233. package/dist/prod/Assets.js.map +7 -0
  234. package/dist/prod/Boot.js +2 -0
  235. package/dist/prod/Boot.js.map +7 -0
  236. package/dist/prod/CustomElementsRegistry.js +10 -0
  237. package/dist/prod/CustomElementsRegistry.js.map +7 -0
  238. package/dist/prod/CustomElementsScope.js +2 -0
  239. package/dist/prod/CustomElementsScope.js.map +7 -0
  240. package/dist/prod/CustomElementsScopeUtils.js +2 -0
  241. package/dist/prod/CustomElementsScopeUtils.js.map +7 -0
  242. package/dist/prod/DOMObserver.js +2 -0
  243. package/dist/prod/DOMObserver.js.map +7 -0
  244. package/dist/prod/Device.js +2 -0
  245. package/dist/prod/Device.js.map +7 -0
  246. package/dist/prod/DragAndDrop.js +2 -0
  247. package/dist/prod/DragAndDrop.js.map +7 -0
  248. package/dist/prod/EventProvider.js +2 -0
  249. package/dist/prod/EventProvider.js.map +7 -0
  250. package/dist/prod/FeaturesRegistry.js +2 -0
  251. package/dist/prod/FeaturesRegistry.js.map +7 -0
  252. package/dist/prod/FontFace.js +2 -0
  253. package/dist/prod/FontFace.js.map +7 -0
  254. package/dist/prod/IgnoreCustomElements.js +2 -0
  255. package/dist/prod/IgnoreCustomElements.js.map +7 -0
  256. package/dist/prod/InitialConfiguration.js +2 -0
  257. package/dist/prod/InitialConfiguration.js.map +7 -0
  258. package/dist/prod/Keys.js +2 -0
  259. package/dist/prod/Keys.js.map +7 -0
  260. package/dist/prod/Location.js +2 -0
  261. package/dist/prod/Location.js.map +7 -0
  262. package/dist/prod/ManagedStyles.js +2 -0
  263. package/dist/prod/ManagedStyles.js.map +7 -0
  264. package/dist/prod/MediaRange.js +2 -0
  265. package/dist/prod/MediaRange.js.map +7 -0
  266. package/dist/prod/PropertiesFileFormat.js +3 -0
  267. package/dist/prod/PropertiesFileFormat.js.map +7 -0
  268. package/dist/prod/Render.js +2 -0
  269. package/dist/prod/Render.js.map +7 -0
  270. package/dist/prod/RenderQueue.js +2 -0
  271. package/dist/prod/RenderQueue.js.map +7 -0
  272. package/dist/prod/Runtimes.js +2 -0
  273. package/dist/prod/Runtimes.js.map +7 -0
  274. package/dist/prod/ScrollbarStyles.js +2 -0
  275. package/dist/prod/ScrollbarStyles.js.map +7 -0
  276. package/dist/prod/SystemCSSVars.js +2 -0
  277. package/dist/prod/SystemCSSVars.js.map +7 -0
  278. package/dist/prod/Theming.js +2 -0
  279. package/dist/prod/Theming.js.map +7 -0
  280. package/dist/prod/UI5Element.js +2 -0
  281. package/dist/prod/UI5Element.js.map +7 -0
  282. package/dist/prod/UI5ElementMetadata.js +2 -0
  283. package/dist/prod/UI5ElementMetadata.js.map +7 -0
  284. package/dist/prod/animations/AnimationQueue.js +2 -0
  285. package/dist/prod/animations/AnimationQueue.js.map +7 -0
  286. package/dist/prod/animations/animate.js +2 -0
  287. package/dist/prod/animations/animate.js.map +7 -0
  288. package/dist/prod/animations/scroll.js +2 -0
  289. package/dist/prod/animations/scroll.js.map +7 -0
  290. package/dist/prod/animations/slideDown.js +2 -0
  291. package/dist/prod/animations/slideDown.js.map +7 -0
  292. package/dist/prod/animations/slideUp.js +2 -0
  293. package/dist/prod/animations/slideUp.js.map +7 -0
  294. package/dist/prod/asset-registries/Icons.js +2 -0
  295. package/dist/prod/asset-registries/Icons.js.map +7 -0
  296. package/dist/prod/asset-registries/Illustrations.js +2 -0
  297. package/dist/prod/asset-registries/Illustrations.js.map +7 -0
  298. package/dist/prod/asset-registries/LocaleData.js +2 -0
  299. package/dist/prod/asset-registries/LocaleData.js.map +7 -0
  300. package/dist/prod/asset-registries/Themes.js +2 -0
  301. package/dist/prod/asset-registries/Themes.js.map +7 -0
  302. package/dist/prod/asset-registries/i18n.js +2 -0
  303. package/dist/prod/asset-registries/i18n.js.map +7 -0
  304. package/dist/prod/asset-registries/util/IconCollectionsAlias.js +2 -0
  305. package/dist/prod/asset-registries/util/IconCollectionsAlias.js.map +7 -0
  306. package/dist/prod/asset-registries/util/IconCollectionsByTheme.js +2 -0
  307. package/dist/prod/asset-registries/util/IconCollectionsByTheme.js.map +7 -0
  308. package/dist/prod/asset-registries/util/getIconCollectionByTheme.js +2 -0
  309. package/dist/prod/asset-registries/util/getIconCollectionByTheme.js.map +7 -0
  310. package/dist/prod/config/AnimationMode.js +2 -0
  311. package/dist/prod/config/AnimationMode.js.map +7 -0
  312. package/dist/prod/config/CalendarType.js +2 -0
  313. package/dist/prod/config/CalendarType.js.map +7 -0
  314. package/dist/prod/config/ConfigurationReset.js +2 -0
  315. package/dist/prod/config/ConfigurationReset.js.map +7 -0
  316. package/dist/prod/config/Fonts.js +2 -0
  317. package/dist/prod/config/Fonts.js.map +7 -0
  318. package/dist/prod/config/FormatSettings.js +2 -0
  319. package/dist/prod/config/FormatSettings.js.map +7 -0
  320. package/dist/prod/config/Icons.js +2 -0
  321. package/dist/prod/config/Icons.js.map +7 -0
  322. package/dist/prod/config/Language.js +2 -0
  323. package/dist/prod/config/Language.js.map +7 -0
  324. package/dist/prod/config/NoConflict.js +2 -0
  325. package/dist/prod/config/NoConflict.js.map +7 -0
  326. package/dist/prod/config/Theme.js +2 -0
  327. package/dist/prod/config/Theme.js.map +7 -0
  328. package/dist/prod/config/ThemeRoot.js +2 -0
  329. package/dist/prod/config/ThemeRoot.js.map +7 -0
  330. package/dist/prod/config/Timezone.js +2 -0
  331. package/dist/prod/config/Timezone.js.map +7 -0
  332. package/dist/prod/config/Tooltips.js +2 -0
  333. package/dist/prod/config/Tooltips.js.map +7 -0
  334. package/dist/prod/connectToComponent.js +2 -0
  335. package/dist/prod/connectToComponent.js.map +7 -0
  336. package/dist/prod/converters/DOMReference.js +2 -0
  337. package/dist/prod/converters/DOMReference.js.map +7 -0
  338. package/dist/prod/decorators/bound.js +2 -0
  339. package/dist/prod/decorators/bound.js.map +7 -0
  340. package/dist/prod/decorators/customElement.js +2 -0
  341. package/dist/prod/decorators/customElement.js.map +7 -0
  342. package/dist/prod/decorators/event-strict.js +2 -0
  343. package/dist/prod/decorators/event-strict.js.map +7 -0
  344. package/dist/prod/decorators/event.js +2 -0
  345. package/dist/prod/decorators/event.js.map +7 -0
  346. package/dist/prod/decorators/i18n.js +2 -0
  347. package/dist/prod/decorators/i18n.js.map +7 -0
  348. package/dist/prod/decorators/property.js +2 -0
  349. package/dist/prod/decorators/property.js.map +7 -0
  350. package/dist/prod/decorators/query.js +2 -0
  351. package/dist/prod/decorators/query.js.map +7 -0
  352. package/dist/prod/decorators/queryAll.js +2 -0
  353. package/dist/prod/decorators/queryAll.js.map +7 -0
  354. package/dist/prod/decorators/slot.js +2 -0
  355. package/dist/prod/decorators/slot.js.map +7 -0
  356. package/dist/prod/decorators.js +2 -0
  357. package/dist/prod/decorators.js.map +7 -0
  358. package/dist/prod/delegate/ItemNavigation.js +2 -0
  359. package/dist/prod/delegate/ItemNavigation.js.map +7 -0
  360. package/dist/prod/delegate/ResizeHandler.js +2 -0
  361. package/dist/prod/delegate/ResizeHandler.js.map +7 -0
  362. package/dist/prod/delegate/ScrollEnablement.js +2 -0
  363. package/dist/prod/delegate/ScrollEnablement.js.map +7 -0
  364. package/dist/prod/features/F6Navigation.js +2 -0
  365. package/dist/prod/features/F6Navigation.js.map +7 -0
  366. package/dist/prod/features/InputElementsFormSupport.js +2 -0
  367. package/dist/prod/features/InputElementsFormSupport.js.map +7 -0
  368. package/dist/prod/features/LegacyDateFormats.js +2 -0
  369. package/dist/prod/features/LegacyDateFormats.js.map +7 -0
  370. package/dist/prod/features/OpenUI5Element.js +2 -0
  371. package/dist/prod/features/OpenUI5Element.js.map +7 -0
  372. package/dist/prod/features/OpenUI5Enablement.js +21 -0
  373. package/dist/prod/features/OpenUI5Enablement.js.map +7 -0
  374. package/dist/prod/features/OpenUI5Support.js +2 -0
  375. package/dist/prod/features/OpenUI5Support.js.map +7 -0
  376. package/dist/prod/features/insertOpenUI5PopupStyles.js +2 -0
  377. package/dist/prod/features/insertOpenUI5PopupStyles.js.map +7 -0
  378. package/dist/prod/features/patchPatcher.js +2 -0
  379. package/dist/prod/features/patchPatcher.js.map +7 -0
  380. package/dist/prod/features/patchPopup.js +2 -0
  381. package/dist/prod/features/patchPopup.js.map +7 -0
  382. package/dist/prod/generated/AssetParameters.js +2 -0
  383. package/dist/prod/generated/AssetParameters.js.map +7 -0
  384. package/dist/prod/generated/VersionInfo.js +2 -0
  385. package/dist/prod/generated/VersionInfo.js.map +7 -0
  386. package/dist/prod/generated/assets/i18n/messagebundle_en.json +1 -0
  387. package/dist/prod/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  388. package/dist/prod/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  389. package/dist/prod/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  390. package/dist/prod/generated/css/BusyIndicator.css.js +2 -0
  391. package/dist/prod/generated/css/BusyIndicator.css.js.map +7 -0
  392. package/dist/prod/generated/css/FontFace.css.js +37 -0
  393. package/dist/prod/generated/css/FontFace.css.js.map +7 -0
  394. package/dist/prod/generated/css/MultipleDragGhost.css.js +2 -0
  395. package/dist/prod/generated/css/MultipleDragGhost.css.js.map +7 -0
  396. package/dist/prod/generated/css/OpenUI5PopupStyles.css.js +2 -0
  397. package/dist/prod/generated/css/OpenUI5PopupStyles.css.js.map +7 -0
  398. package/dist/prod/generated/css/ScrollbarStyles.css.js +2 -0
  399. package/dist/prod/generated/css/ScrollbarStyles.css.js.map +7 -0
  400. package/dist/prod/generated/css/SystemCSSVars.css.js +2 -0
  401. package/dist/prod/generated/css/SystemCSSVars.css.js.map +7 -0
  402. package/dist/prod/generated/i18n/i18n-defaults.js +2 -0
  403. package/dist/prod/generated/i18n/i18n-defaults.js.map +7 -0
  404. package/dist/prod/generated/json-imports/i18n-fetch.js +2 -0
  405. package/dist/prod/generated/json-imports/i18n-fetch.js.map +7 -0
  406. package/dist/prod/generated/json-imports/i18n-node.js +2 -0
  407. package/dist/prod/generated/json-imports/i18n-node.js.map +7 -0
  408. package/dist/prod/generated/json-imports/i18n.js +2 -0
  409. package/dist/prod/generated/json-imports/i18n.js.map +7 -0
  410. package/dist/prod/getSharedResource.js +2 -0
  411. package/dist/prod/getSharedResource.js.map +7 -0
  412. package/dist/prod/global.d.js +2 -0
  413. package/dist/prod/global.d.js.map +7 -0
  414. package/dist/prod/i18nBundle.js +2 -0
  415. package/dist/prod/i18nBundle.js.map +7 -0
  416. package/dist/prod/index.js +2 -0
  417. package/dist/prod/index.js.map +7 -0
  418. package/dist/prod/jsx-dev-runtime.js +2 -0
  419. package/dist/prod/jsx-dev-runtime.js.map +7 -0
  420. package/dist/prod/jsx-runtime.js +2 -0
  421. package/dist/prod/jsx-runtime.js.map +7 -0
  422. package/dist/prod/jsx-utils.js +2 -0
  423. package/dist/prod/jsx-utils.js.map +7 -0
  424. package/dist/prod/locale/Locale.js +2 -0
  425. package/dist/prod/locale/Locale.js.map +7 -0
  426. package/dist/prod/locale/RTLAwareRegistry.js +2 -0
  427. package/dist/prod/locale/RTLAwareRegistry.js.map +7 -0
  428. package/dist/prod/locale/applyDirection.js +2 -0
  429. package/dist/prod/locale/applyDirection.js.map +7 -0
  430. package/dist/prod/locale/directionChange.js +2 -0
  431. package/dist/prod/locale/directionChange.js.map +7 -0
  432. package/dist/prod/locale/getEffectiveDir.js +2 -0
  433. package/dist/prod/locale/getEffectiveDir.js.map +7 -0
  434. package/dist/prod/locale/getLocale.js +2 -0
  435. package/dist/prod/locale/getLocale.js.map +7 -0
  436. package/dist/prod/locale/languageChange.js +2 -0
  437. package/dist/prod/locale/languageChange.js.map +7 -0
  438. package/dist/prod/locale/nextFallbackLocale.js +2 -0
  439. package/dist/prod/locale/nextFallbackLocale.js.map +7 -0
  440. package/dist/prod/locale/normalizeLocale.js +2 -0
  441. package/dist/prod/locale/normalizeLocale.js.map +7 -0
  442. package/dist/prod/renderer/JsxRenderer.js +2 -0
  443. package/dist/prod/renderer/JsxRenderer.js.map +7 -0
  444. package/dist/prod/renderer/LitRenderer.js +2 -0
  445. package/dist/prod/renderer/LitRenderer.js.map +7 -0
  446. package/dist/prod/renderer/directives/style-map.js +6 -0
  447. package/dist/prod/renderer/directives/style-map.js.map +7 -0
  448. package/dist/prod/renderer/executeTemplate.js +2 -0
  449. package/dist/prod/renderer/executeTemplate.js.map +7 -0
  450. package/dist/prod/sap/base/Log.js +750 -0
  451. package/dist/prod/sap/base/assert.js +34 -0
  452. package/dist/prod/sap/base/config/MemoryConfigurationProvider.js +20 -0
  453. package/dist/prod/sap/base/security/URLListValidator.js +406 -0
  454. package/dist/prod/sap/base/security/encodeCSS.js +40 -0
  455. package/dist/prod/sap/base/security/encodeXML.js +53 -0
  456. package/dist/prod/sap/base/security/sanitizeHTML.js +38 -0
  457. package/dist/prod/sap/base/strings/toHex.js +33 -0
  458. package/dist/prod/sap/base/util/now.js +28 -0
  459. package/dist/prod/sap/base/util/uid.js +27 -0
  460. package/dist/prod/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  461. package/dist/prod/ssr-dom-shim.js +2 -0
  462. package/dist/prod/ssr-dom-shim.js.map +7 -0
  463. package/dist/prod/ssr-dom.js +2 -0
  464. package/dist/prod/ssr-dom.js.map +7 -0
  465. package/dist/prod/theming/CustomStyle.js +2 -0
  466. package/dist/prod/theming/CustomStyle.js.map +7 -0
  467. package/dist/prod/theming/ThemeLoaded.js +2 -0
  468. package/dist/prod/theming/ThemeLoaded.js.map +7 -0
  469. package/dist/prod/theming/ThemeRegistered.js +2 -0
  470. package/dist/prod/theming/ThemeRegistered.js.map +7 -0
  471. package/dist/prod/theming/applyTheme.js +2 -0
  472. package/dist/prod/theming/applyTheme.js.map +7 -0
  473. package/dist/prod/theming/getConstructableStyle.js +2 -0
  474. package/dist/prod/theming/getConstructableStyle.js.map +7 -0
  475. package/dist/prod/theming/getEffectiveStyle.js +2 -0
  476. package/dist/prod/theming/getEffectiveStyle.js.map +7 -0
  477. package/dist/prod/theming/getStylesString.js +2 -0
  478. package/dist/prod/theming/getStylesString.js.map +7 -0
  479. package/dist/prod/theming/getThemeDesignerTheme.js +2 -0
  480. package/dist/prod/theming/getThemeDesignerTheme.js.map +7 -0
  481. package/dist/prod/thirdparty/_merge.js +2 -0
  482. package/dist/prod/thirdparty/_merge.js.map +7 -0
  483. package/dist/prod/thirdparty/isPlainObject.js +2 -0
  484. package/dist/prod/thirdparty/isPlainObject.js.map +7 -0
  485. package/dist/prod/thirdparty/merge.js +2 -0
  486. package/dist/prod/thirdparty/merge.js.map +7 -0
  487. package/dist/prod/thirdparty/preact/jsx.d.js +2 -0
  488. package/dist/prod/thirdparty/preact/jsx.d.js.map +7 -0
  489. package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js +2 -0
  490. package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js.map +7 -0
  491. package/dist/prod/thirdparty/preact/jsxRuntime.module.js +1 -0
  492. package/dist/prod/thirdparty/preact/preact.module.d.js +2 -0
  493. package/dist/prod/thirdparty/preact/preact.module.d.js.map +7 -0
  494. package/dist/prod/thirdparty/preact/preact.module.js +1 -0
  495. package/dist/prod/types/AnimationMode.js +2 -0
  496. package/dist/prod/types/AnimationMode.js.map +7 -0
  497. package/dist/prod/types/CalendarType.js +2 -0
  498. package/dist/prod/types/CalendarType.js.map +7 -0
  499. package/dist/prod/types/InvisibleMessageMode.js +2 -0
  500. package/dist/prod/types/InvisibleMessageMode.js.map +7 -0
  501. package/dist/prod/types/ItemNavigationBehavior.js +2 -0
  502. package/dist/prod/types/ItemNavigationBehavior.js.map +7 -0
  503. package/dist/prod/types/MovePlacement.js +2 -0
  504. package/dist/prod/types/MovePlacement.js.map +7 -0
  505. package/dist/prod/types/NavigationMode.js +2 -0
  506. package/dist/prod/types/NavigationMode.js.map +7 -0
  507. package/dist/prod/types/Orientation.js +2 -0
  508. package/dist/prod/types/Orientation.js.map +7 -0
  509. package/dist/prod/types/SortOrder.js +2 -0
  510. package/dist/prod/types/SortOrder.js.map +7 -0
  511. package/dist/prod/types/ValueState.js +2 -0
  512. package/dist/prod/types/ValueState.js.map +7 -0
  513. package/dist/prod/types.js +2 -0
  514. package/dist/prod/types.js.map +7 -0
  515. package/dist/prod/updateShadowRoot.js +2 -0
  516. package/dist/prod/updateShadowRoot.js.map +7 -0
  517. package/dist/prod/util/AccessibilityTextsHelper.js +2 -0
  518. package/dist/prod/util/AccessibilityTextsHelper.js.map +7 -0
  519. package/dist/prod/util/Caret.js +2 -0
  520. package/dist/prod/util/Caret.js.map +7 -0
  521. package/dist/prod/util/ColorConversion.js +2 -0
  522. package/dist/prod/util/ColorConversion.js.map +7 -0
  523. package/dist/prod/util/FetchHelper.js +2 -0
  524. package/dist/prod/util/FetchHelper.js.map +7 -0
  525. package/dist/prod/util/FocusableElements.js +2 -0
  526. package/dist/prod/util/FocusableElements.js.map +7 -0
  527. package/dist/prod/util/HTMLSanitizer.js +2 -0
  528. package/dist/prod/util/HTMLSanitizer.js.map +7 -0
  529. package/dist/prod/util/InvisibleMessage.js +2 -0
  530. package/dist/prod/util/InvisibleMessage.js.map +7 -0
  531. package/dist/prod/util/PopupUtils.js +2 -0
  532. package/dist/prod/util/PopupUtils.js.map +7 -0
  533. package/dist/prod/util/SelectionAssistant.js +2 -0
  534. package/dist/prod/util/SelectionAssistant.js.map +7 -0
  535. package/dist/prod/util/SlotsHelper.js +2 -0
  536. package/dist/prod/util/SlotsHelper.js.map +7 -0
  537. package/dist/prod/util/StringHelper.js +2 -0
  538. package/dist/prod/util/StringHelper.js.map +7 -0
  539. package/dist/prod/util/TabbableElements.js +2 -0
  540. package/dist/prod/util/TabbableElements.js.map +7 -0
  541. package/dist/prod/util/arraysAreEqual.js +2 -0
  542. package/dist/prod/util/arraysAreEqual.js.map +7 -0
  543. package/dist/prod/util/clamp.js +2 -0
  544. package/dist/prod/util/clamp.js.map +7 -0
  545. package/dist/prod/util/createLinkInHead.js +2 -0
  546. package/dist/prod/util/createLinkInHead.js.map +7 -0
  547. package/dist/prod/util/debounce.js +2 -0
  548. package/dist/prod/util/debounce.js.map +7 -0
  549. package/dist/prod/util/detectNavigatorLanguage.js +2 -0
  550. package/dist/prod/util/detectNavigatorLanguage.js.map +7 -0
  551. package/dist/prod/util/dragAndDrop/DragRegistry.js +2 -0
  552. package/dist/prod/util/dragAndDrop/DragRegistry.js.map +7 -0
  553. package/dist/prod/util/dragAndDrop/findClosestPosition.js +2 -0
  554. package/dist/prod/util/dragAndDrop/findClosestPosition.js.map +7 -0
  555. package/dist/prod/util/dragAndDrop/handleDragOver.js +2 -0
  556. package/dist/prod/util/dragAndDrop/handleDragOver.js.map +7 -0
  557. package/dist/prod/util/dragAndDrop/handleDrop.js +2 -0
  558. package/dist/prod/util/dragAndDrop/handleDrop.js.map +7 -0
  559. package/dist/prod/util/dragAndDrop/longDragOverHandler.js +2 -0
  560. package/dist/prod/util/dragAndDrop/longDragOverHandler.js.map +7 -0
  561. package/dist/prod/util/escapeRegex.js +2 -0
  562. package/dist/prod/util/escapeRegex.js.map +7 -0
  563. package/dist/prod/util/fixSafariActiveState.js +2 -0
  564. package/dist/prod/util/fixSafariActiveState.js.map +7 -0
  565. package/dist/prod/util/formatMessage.js +2 -0
  566. package/dist/prod/util/formatMessage.js.map +7 -0
  567. package/dist/prod/util/generateHighlightedMarkup.js +2 -0
  568. package/dist/prod/util/generateHighlightedMarkup.js.map +7 -0
  569. package/dist/prod/util/getActiveElement.js +2 -0
  570. package/dist/prod/util/getActiveElement.js.map +7 -0
  571. package/dist/prod/util/getClassCopy.js +2 -0
  572. package/dist/prod/util/getClassCopy.js.map +7 -0
  573. package/dist/prod/util/getDesigntimePropertyAsArray.js +2 -0
  574. package/dist/prod/util/getDesigntimePropertyAsArray.js.map +7 -0
  575. package/dist/prod/util/getEffectiveContentDensity.js +2 -0
  576. package/dist/prod/util/getEffectiveContentDensity.js.map +7 -0
  577. package/dist/prod/util/getFastNavigationGroups.js +2 -0
  578. package/dist/prod/util/getFastNavigationGroups.js.map +7 -0
  579. package/dist/prod/util/getFileExtension.js +2 -0
  580. package/dist/prod/util/getFileExtension.js.map +7 -0
  581. package/dist/prod/util/getNormalizedTarget.js +2 -0
  582. package/dist/prod/util/getNormalizedTarget.js.map +7 -0
  583. package/dist/prod/util/getParentElement.js +2 -0
  584. package/dist/prod/util/getParentElement.js.map +7 -0
  585. package/dist/prod/util/getSingletonElementInstance.js +2 -0
  586. package/dist/prod/util/getSingletonElementInstance.js.map +7 -0
  587. package/dist/prod/util/hash2str.js +2 -0
  588. package/dist/prod/util/hash2str.js.map +7 -0
  589. package/dist/prod/util/isElementClickable.js +2 -0
  590. package/dist/prod/util/isElementClickable.js.map +7 -0
  591. package/dist/prod/util/isElementHidden.js +2 -0
  592. package/dist/prod/util/isElementHidden.js.map +7 -0
  593. package/dist/prod/util/isElementInView.js +2 -0
  594. package/dist/prod/util/isElementInView.js.map +7 -0
  595. package/dist/prod/util/isElementTabbable.js +2 -0
  596. package/dist/prod/util/isElementTabbable.js.map +7 -0
  597. package/dist/prod/util/isEventMarked.js +2 -0
  598. package/dist/prod/util/isEventMarked.js.map +7 -0
  599. package/dist/prod/util/isValidPropertyName.js +2 -0
  600. package/dist/prod/util/isValidPropertyName.js.map +7 -0
  601. package/dist/prod/util/throttle.js +2 -0
  602. package/dist/prod/util/throttle.js.map +7 -0
  603. package/dist/prod/util/toLowercaseEnumValue.js +2 -0
  604. package/dist/prod/util/toLowercaseEnumValue.js.map +7 -0
  605. package/dist/prod/util/valueStateNavigation.js +2 -0
  606. package/dist/prod/util/valueStateNavigation.js.map +7 -0
  607. package/dist/prod/util/whenDOMReady.js +2 -0
  608. package/dist/prod/util/whenDOMReady.js.map +7 -0
  609. package/dist/prod/util/willShowContent.js +2 -0
  610. package/dist/prod/util/willShowContent.js.map +7 -0
  611. package/dist/prod/validateThemeRoot.js +2 -0
  612. package/dist/prod/validateThemeRoot.js.map +7 -0
  613. package/dist/renderer/JsxRenderer.d.ts +3 -0
  614. package/dist/renderer/JsxRenderer.js +26 -0
  615. package/dist/renderer/JsxRenderer.js.map +1 -0
  616. package/dist/renderer/LitRenderer.d.ts +1 -1
  617. package/dist/renderer/LitRenderer.js +4 -3
  618. package/dist/renderer/LitRenderer.js.map +1 -1
  619. package/dist/renderer/directives/style-map.js.map +1 -1
  620. package/dist/renderer/executeTemplate.d.ts +3 -12
  621. package/dist/renderer/executeTemplate.js +1 -20
  622. package/dist/renderer/executeTemplate.js.map +1 -1
  623. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  624. package/dist/ssr-dom-shim.js +52 -1
  625. package/dist/ssr-dom-shim.js.map +1 -1
  626. package/dist/ssr-dom.d.ts +1 -0
  627. package/dist/ssr-dom.js +3 -0
  628. package/dist/ssr-dom.js.map +1 -0
  629. package/dist/theming/CustomStyle.js.map +1 -1
  630. package/dist/theming/applyTheme.d.ts +2 -0
  631. package/dist/theming/applyTheme.js +7 -2
  632. package/dist/theming/applyTheme.js.map +1 -1
  633. package/dist/theming/getConstructableStyle.d.ts +1 -1
  634. package/dist/theming/getConstructableStyle.js.map +1 -1
  635. package/dist/theming/getEffectiveStyle.js.map +1 -1
  636. package/dist/theming/getStylesString.js +2 -4
  637. package/dist/theming/getStylesString.js.map +1 -1
  638. package/dist/theming/getThemeDesignerTheme.js +2 -1
  639. package/dist/theming/getThemeDesignerTheme.js.map +1 -1
  640. package/dist/thirdparty/_merge.js.map +1 -1
  641. package/dist/thirdparty/isPlainObject.js.map +1 -1
  642. package/dist/thirdparty/preact/jsx.d.ts +2616 -0
  643. package/dist/thirdparty/preact/jsxRuntime.module.d.ts +62 -0
  644. package/dist/thirdparty/preact/jsxRuntime.module.js +1 -0
  645. package/dist/thirdparty/preact/preact.module.d.ts +398 -0
  646. package/dist/thirdparty/preact/preact.module.js +1 -0
  647. package/dist/types/SortOrder.d.ts +24 -0
  648. package/dist/types/SortOrder.js +26 -0
  649. package/dist/types/SortOrder.js.map +1 -0
  650. package/dist/types.d.ts +31 -26
  651. package/dist/types.js.map +1 -1
  652. package/dist/updateShadowRoot.js +1 -2
  653. package/dist/updateShadowRoot.js.map +1 -1
  654. package/dist/util/{AriaLabelHelper.d.ts → AccessibilityTextsHelper.d.ts} +4 -2
  655. package/dist/util/{AriaLabelHelper.js → AccessibilityTextsHelper.js} +36 -8
  656. package/dist/util/AccessibilityTextsHelper.js.map +1 -0
  657. package/dist/util/Caret.js.map +1 -1
  658. package/dist/util/ColorConversion.d.ts +2 -1
  659. package/dist/util/ColorConversion.js +35 -23
  660. package/dist/util/ColorConversion.js.map +1 -1
  661. package/dist/util/FetchHelper.js.map +1 -1
  662. package/dist/util/FocusableElements.js +43 -15
  663. package/dist/util/FocusableElements.js.map +1 -1
  664. package/dist/util/HTMLSanitizer.d.ts +2 -0
  665. package/dist/util/HTMLSanitizer.js +2 -2
  666. package/dist/util/HTMLSanitizer.js.map +1 -1
  667. package/dist/util/InvisibleMessage.js.map +1 -1
  668. package/dist/util/PopupUtils.js.map +1 -1
  669. package/dist/util/SelectionAssistant.d.ts +12 -0
  670. package/dist/util/SelectionAssistant.js +71 -0
  671. package/dist/util/SelectionAssistant.js.map +1 -0
  672. package/dist/util/SlotsHelper.js.map +1 -1
  673. package/dist/util/StringHelper.d.ts +3 -1
  674. package/dist/util/StringHelper.js +15 -1
  675. package/dist/util/StringHelper.js.map +1 -1
  676. package/dist/util/TabbableElements.js +5 -12
  677. package/dist/util/TabbableElements.js.map +1 -1
  678. package/dist/util/arraysAreEqual.js.map +1 -1
  679. package/dist/util/createLinkInHead.js.map +1 -1
  680. package/dist/util/debounce.js.map +1 -1
  681. package/dist/util/detectNavigatorLanguage.js.map +1 -1
  682. package/dist/util/dragAndDrop/DragRegistry.d.ts +35 -8
  683. package/dist/util/dragAndDrop/DragRegistry.js +42 -52
  684. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -1
  685. package/dist/util/dragAndDrop/findClosestPosition.d.ts +6 -1
  686. package/dist/util/dragAndDrop/findClosestPosition.js +48 -1
  687. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -1
  688. package/dist/util/dragAndDrop/handleDragOver.d.ts +16 -0
  689. package/dist/util/dragAndDrop/handleDragOver.js +42 -0
  690. package/dist/util/dragAndDrop/handleDragOver.js.map +1 -0
  691. package/dist/util/dragAndDrop/handleDrop.d.ts +5 -0
  692. package/dist/util/dragAndDrop/handleDrop.js +22 -0
  693. package/dist/util/dragAndDrop/handleDrop.js.map +1 -0
  694. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -1
  695. package/dist/util/fixSafariActiveState.d.ts +2 -0
  696. package/dist/util/fixSafariActiveState.js +11 -0
  697. package/dist/util/fixSafariActiveState.js.map +1 -0
  698. package/dist/util/formatMessage.js.map +1 -1
  699. package/dist/util/generateHighlightedMarkup.js.map +1 -1
  700. package/dist/util/getActiveElement.js.map +1 -1
  701. package/dist/util/getClassCopy.d.ts +107 -86
  702. package/dist/util/getFastNavigationGroups.js +6 -1
  703. package/dist/util/getFastNavigationGroups.js.map +1 -1
  704. package/dist/util/getFileExtension.js.map +1 -1
  705. package/dist/util/getNormalizedTarget.js.map +1 -1
  706. package/dist/util/getParentElement.d.ts +1 -1
  707. package/dist/util/getParentElement.js +2 -2
  708. package/dist/util/getParentElement.js.map +1 -1
  709. package/dist/util/getSingletonElementInstance.js.map +1 -1
  710. package/dist/util/hash2str.d.ts +1 -0
  711. package/dist/util/hash2str.js +14 -0
  712. package/dist/util/hash2str.js.map +1 -0
  713. package/dist/util/isElementClickable.js.map +1 -1
  714. package/dist/util/isElementHidden.js +2 -1
  715. package/dist/util/isElementHidden.js.map +1 -1
  716. package/dist/util/isElementTabbable.js +2 -2
  717. package/dist/util/isElementTabbable.js.map +1 -1
  718. package/dist/util/isEventMarked.d.ts +2 -0
  719. package/dist/util/isEventMarked.js +6 -0
  720. package/dist/util/isEventMarked.js.map +1 -0
  721. package/dist/util/isValidPropertyName.js.map +1 -1
  722. package/dist/util/throttle.d.ts +2 -0
  723. package/dist/util/throttle.js +20 -0
  724. package/dist/util/throttle.js.map +1 -0
  725. package/dist/util/toLowercaseEnumValue.d.ts +3 -0
  726. package/dist/util/toLowercaseEnumValue.js +4 -0
  727. package/dist/util/toLowercaseEnumValue.js.map +1 -0
  728. package/dist/util/valueStateNavigation.d.ts +8 -0
  729. package/dist/util/valueStateNavigation.js +40 -0
  730. package/dist/util/valueStateNavigation.js.map +1 -0
  731. package/dist/util/whenDOMReady.js.map +1 -1
  732. package/dist/validateThemeRoot.js +9 -4
  733. package/dist/validateThemeRoot.js.map +1 -1
  734. package/dist/vscode.html-custom-data.json +22 -0
  735. package/package-scripts.cjs +63 -32
  736. package/package.json +40 -23
  737. package/src/css/MultipleDragGhost.css +17 -0
  738. package/src/css/OpenUI5PopupStyles.css +5 -0
  739. package/src/css/ScrollbarStyles.css +3 -0
  740. package/src/i18n/messagebundle.properties +5 -0
  741. package/src/i18n/messagebundle_en.properties +2 -0
  742. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  743. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  744. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
  745. package/src/thirdparty/preact/jsxRuntime.module.js +1 -0
  746. package/src/thirdparty/preact/preact.module.js +1 -0
  747. package/src/thirdparty/preact/version.txt +1 -0
  748. package/tsconfig.json +18 -19
  749. package/config/wdio.conf.cjs +0 -392
  750. package/dist/.tsbuildinfo +0 -1
  751. package/dist/MarkedEvents.d.ts +0 -9
  752. package/dist/MarkedEvents.js +0 -15
  753. package/dist/MarkedEvents.js.map +0 -1
  754. package/dist/css/FontFace.css +0 -96
  755. package/dist/css/OverrideFontFace.css +0 -32
  756. package/dist/generated/css/OverrideFontFace.css.d.ts +0 -3
  757. package/dist/generated/css/OverrideFontFace.css.js +0 -7
  758. package/dist/generated/css/OverrideFontFace.css.js.map +0 -1
  759. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +0 -4
  760. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +0 -9
  761. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +0 -1
  762. package/dist/types/AriaHasPopup.d.ts +0 -32
  763. package/dist/types/AriaHasPopup.js +0 -34
  764. package/dist/types/AriaHasPopup.js.map +0 -1
  765. package/dist/types/AriaLandmarkRole.d.ts +0 -79
  766. package/dist/types/AriaLandmarkRole.js +0 -81
  767. package/dist/types/AriaLandmarkRole.js.map +0 -1
  768. package/dist/types/AriaRole.d.ts +0 -27
  769. package/dist/types/AriaRole.js +0 -29
  770. package/dist/types/AriaRole.js.map +0 -1
  771. package/dist/types/CSSColor.d.ts +0 -11
  772. package/dist/types/CSSColor.js +0 -14
  773. package/dist/types/CSSColor.js.map +0 -1
  774. package/dist/types/CSSSize.d.ts +0 -11
  775. package/dist/types/CSSSize.js +0 -14
  776. package/dist/types/CSSSize.js.map +0 -1
  777. package/dist/types/DOMReference.d.ts +0 -13
  778. package/dist/types/DOMReference.js +0 -21
  779. package/dist/types/DOMReference.js.map +0 -1
  780. package/dist/types/DataType.d.ts +0 -20
  781. package/dist/types/DataType.js +0 -39
  782. package/dist/types/DataType.js.map +0 -1
  783. package/dist/types/Float.d.ts +0 -14
  784. package/dist/types/Float.js +0 -18
  785. package/dist/types/Float.js.map +0 -1
  786. package/dist/types/Integer.d.ts +0 -14
  787. package/dist/types/Integer.js +0 -18
  788. package/dist/types/Integer.js.map +0 -1
  789. package/dist/util/AriaLabelHelper.js.map +0 -1
  790. package/dist/util/getEffectiveScrollbarStyle.d.ts +0 -2
  791. package/dist/util/getEffectiveScrollbarStyle.js +0 -4
  792. package/dist/util/getEffectiveScrollbarStyle.js.map +0 -1
  793. package/dist/util/isElementContainingBlock.d.ts +0 -2
  794. package/dist/util/isElementContainingBlock.js +0 -11
  795. package/dist/util/isElementContainingBlock.js.map +0 -1
  796. package/index.js +0 -214
  797. package/src/css/FontFace.css +0 -96
  798. package/src/css/OverrideFontFace.css +0 -32
@@ -0,0 +1,12 @@
1
+ declare const getElementSelection: (element: HTMLElement) => {
2
+ selectedText: string;
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ top: number;
8
+ right: number;
9
+ bottom: number;
10
+ left: number;
11
+ };
12
+ export default getElementSelection;
@@ -0,0 +1,71 @@
1
+ const copyAndApplyStyles = (element, copiedElement) => {
2
+ const computedStyles = getComputedStyle(element);
3
+ for (let i = 0; i < computedStyles.length; i++) {
4
+ const propertyName = computedStyles[i];
5
+ copiedElement.style.setProperty(propertyName, computedStyles.getPropertyValue(propertyName));
6
+ }
7
+ element.tagName === "INPUT" && setInputSpecificStyles(copiedElement);
8
+ copiedElement.style.position = "absolute";
9
+ copiedElement.style.left = `${element.getBoundingClientRect().left}px`;
10
+ copiedElement.style.top = `${element.getBoundingClientRect().top}px`;
11
+ setUnInteractableStyles(copiedElement);
12
+ document.body.appendChild(copiedElement);
13
+ };
14
+ const setUnInteractableStyles = (element) => {
15
+ element.style.position = "absolute";
16
+ element.style.userSelect = "none";
17
+ element.style.pointerEvents = "none";
18
+ element.style.zIndex = "-1";
19
+ element.style.opacity = "0";
20
+ };
21
+ const setInputSpecificStyles = (element) => {
22
+ element.style.whiteSpace = "nowrap";
23
+ element.style.overflowX = "auto";
24
+ element.style.overflowY = "hidden";
25
+ };
26
+ const createCopy = () => {
27
+ const copiedElement = document.createElement("div");
28
+ copiedElement.id = "ui5-selection-mirror";
29
+ copiedElement.contentEditable = "true";
30
+ document.body.appendChild(copiedElement);
31
+ };
32
+ const applyScrollPosition = (element, copiedElement) => {
33
+ copiedElement.scrollTop = element.scrollTop;
34
+ copiedElement.scrollLeft = element.scrollLeft;
35
+ };
36
+ const getSelectionCoordinates = (element, mirror) => {
37
+ const { selectionStart, selectionEnd } = element;
38
+ const selectedText = element.value.slice(selectionStart, element.selectionEnd);
39
+ const range = document.createRange();
40
+ range.setStart(mirror.firstChild, selectionEnd - 1);
41
+ range.setEnd(mirror.firstChild, selectionEnd);
42
+ applyScrollPosition(element, mirror);
43
+ const rangeRect = range.getBoundingClientRect();
44
+ const rectObject = {
45
+ x: rangeRect.x,
46
+ y: rangeRect.y,
47
+ width: rangeRect.width,
48
+ height: rangeRect.height,
49
+ top: rangeRect.top,
50
+ right: rangeRect.right,
51
+ bottom: rangeRect.bottom,
52
+ left: rangeRect.left,
53
+ };
54
+ document.body.removeChild(mirror);
55
+ return { ...rectObject, selectedText };
56
+ };
57
+ const getElementSelection = (element) => {
58
+ const innerElement = element.shadowRoot.querySelector("textarea")
59
+ || element.shadowRoot.querySelector("input");
60
+ if (!document.getElementById("ui5-selection-mirror")) {
61
+ createCopy();
62
+ }
63
+ const copiedElement = document.getElementById("ui5-selection-mirror");
64
+ copiedElement.textContent = innerElement.value;
65
+ if (innerElement) {
66
+ copyAndApplyStyles(innerElement, copiedElement);
67
+ }
68
+ return getSelectionCoordinates(innerElement, copiedElement);
69
+ };
70
+ export default getElementSelection;
71
+ //# sourceMappingURL=SelectionAssistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionAssistant.js","sourceRoot":"","sources":["../../src/util/SelectionAssistant.ts"],"names":[],"mappings":"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","sourcesContent":["const copyAndApplyStyles = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tconst computedStyles = getComputedStyle(element);\n\n\tfor (let i = 0; i < computedStyles.length; i++) {\n\t\tconst propertyName = computedStyles[i];\n\t\tcopiedElement.style.setProperty(propertyName, computedStyles.getPropertyValue(propertyName));\n\t}\n\n\telement.tagName === \"INPUT\" && setInputSpecificStyles(copiedElement);\n\n\tcopiedElement.style.position = \"absolute\";\n\tcopiedElement.style.left = `${element.getBoundingClientRect().left}px`;\n\tcopiedElement.style.top = `${element.getBoundingClientRect().top}px`;\n\n\tsetUnInteractableStyles(copiedElement);\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst setUnInteractableStyles = (element: HTMLElement) => {\n\telement.style.position = \"absolute\";\n\telement.style.userSelect = \"none\";\n\telement.style.pointerEvents = \"none\";\n\telement.style.zIndex = \"-1\";\n\telement.style.opacity = \"0\";\n};\n\nconst setInputSpecificStyles = (element: HTMLElement) => {\n\telement.style.whiteSpace = \"nowrap\";\n\telement.style.overflowX = \"auto\";\n\telement.style.overflowY = \"hidden\";\n};\n\nconst createCopy = () => {\n\tconst copiedElement = document.createElement(\"div\");\n\n\tcopiedElement.id = \"ui5-selection-mirror\";\n\tcopiedElement.contentEditable = \"true\";\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst applyScrollPosition = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tcopiedElement.scrollTop = element.scrollTop;\n\tcopiedElement.scrollLeft = element.scrollLeft;\n};\n\nconst getSelectionCoordinates = (element: HTMLInputElement | HTMLTextAreaElement, mirror: HTMLDivElement) => {\n\tconst { selectionStart, selectionEnd } = element;\n\tconst selectedText = element.value.slice(\n\t\tselectionStart!,\n\t\telement.selectionEnd!,\n\t);\n\tconst range = document.createRange();\n\n\trange.setStart(mirror.firstChild!, selectionEnd! - 1);\n\trange.setEnd(mirror.firstChild!, selectionEnd!);\n\n\tapplyScrollPosition(element, mirror);\n\n\tconst rangeRect = range.getBoundingClientRect();\n\tconst rectObject = {\n\t\tx: rangeRect.x,\n\t\ty: rangeRect.y,\n\t\twidth: rangeRect.width,\n\t\theight: rangeRect.height,\n\t\ttop: rangeRect.top,\n\t\tright: rangeRect.right,\n\t\tbottom: rangeRect.bottom,\n\t\tleft: rangeRect.left,\n\t};\n\n\tdocument.body.removeChild(mirror);\n\n\treturn { ...rectObject, selectedText };\n};\n\nconst getElementSelection = (element: HTMLElement) => {\n\tconst innerElement = element.shadowRoot!.querySelector(\"textarea\")\n\t\t|| element.shadowRoot!.querySelector(\"input\");\n\n\tif (!document.getElementById(\"ui5-selection-mirror\")) {\n\t\tcreateCopy();\n\t}\n\n\tconst copiedElement = document.getElementById(\n\t\t\"ui5-selection-mirror\",\n\t)!;\n\n\tcopiedElement.textContent = innerElement!.value;\n\n\tif (innerElement) {\n\t\tcopyAndApplyStyles(innerElement, copiedElement)!;\n\t}\n\n\treturn getSelectionCoordinates(innerElement!, copiedElement as HTMLDivElement);\n};\n\nexport default getElementSelection;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SlotsHelper.js","sourceRoot":"","sources":["../../src/util/SlotsHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,EAAE;IAClC,6CAA6C;IAC7C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE;QACnC,OAAO,SAAS,CAAC;KACjB;IAED,kGAAkG;IAClG,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAC/B;IAED,iCAAiC;IACjC,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,EAAE;IACtC,IAAI,IAAI,YAAY,eAAe,EAAE;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC;KACzF;IAED,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAE,EAAE;IACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAiB,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,OAAO,EACN,WAAW,EACX,eAAe,EACf,mBAAmB,GACnB,CAAC","sourcesContent":["/**\n * Determines the slot to which a node should be assigned\n * @param node Text node or HTML element\n * @returns {string}\n */\nconst getSlotName = (node: Node) => {\n\t// Text nodes can only go to the default slot\n\tif (!(node instanceof HTMLElement)) {\n\t\treturn \"default\";\n\t}\n\n\t// Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)\n\tconst slot = node.getAttribute(\"slot\");\n\tif (slot) {\n\t\tconst match = slot.match(/^(.+?)-\\d+$/);\n\t\treturn match ? match[1] : slot;\n\t}\n\n\t// Use default slot as a fallback\n\treturn \"default\";\n};\n\nconst getSlottedNodes = (node: Node) => {\n\tif (node instanceof HTMLSlotElement) {\n\t\treturn node.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);\n\t}\n\n\treturn [node];\n};\n\nconst getSlottedNodesList = (nodeList: Array<Node>) => {\n\treturn nodeList.reduce((acc, curr) => acc.concat(getSlottedNodes(curr)), [] as Array<Node>);\n};\n\nexport {\n\tgetSlotName,\n\tgetSlottedNodes,\n\tgetSlottedNodesList,\n};\n"]}
1
+ {"version":3,"file":"SlotsHelper.js","sourceRoot":"","sources":["../../src/util/SlotsHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,EAAE;IAClC,6CAA6C;IAC7C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,kGAAkG;IAClG,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,iCAAiC;IACjC,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,EAAE;IACtC,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAE,EAAE;IACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAiB,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,OAAO,EACN,WAAW,EACX,eAAe,EACf,mBAAmB,GACnB,CAAC","sourcesContent":["/**\n * Determines the slot to which a node should be assigned\n * @param node Text node or HTML element\n * @returns {string}\n */\nconst getSlotName = (node: Node) => {\n\t// Text nodes can only go to the default slot\n\tif (!(node instanceof HTMLElement)) {\n\t\treturn \"default\";\n\t}\n\n\t// Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)\n\tconst slot = node.getAttribute(\"slot\");\n\tif (slot) {\n\t\tconst match = slot.match(/^(.+?)-\\d+$/);\n\t\treturn match ? match[1] : slot;\n\t}\n\n\t// Use default slot as a fallback\n\treturn \"default\";\n};\n\nconst getSlottedNodes = (node: Node) => {\n\tif (node instanceof HTMLSlotElement) {\n\t\treturn node.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);\n\t}\n\n\treturn [node];\n};\n\nconst getSlottedNodesList = (nodeList: Array<Node>) => {\n\treturn nodeList.reduce((acc, curr) => acc.concat(getSlottedNodes(curr)), [] as Array<Node>);\n};\n\nexport {\n\tgetSlotName,\n\tgetSlottedNodes,\n\tgetSlottedNodesList,\n};\n"]}
@@ -1,3 +1,5 @@
1
1
  declare const kebabToCamelCase: (string: string) => string;
2
2
  declare const camelToKebabCase: (string: string) => string;
3
- export { kebabToCamelCase, camelToKebabCase };
3
+ declare const pascalToKebabCase: (pascalString: string) => string;
4
+ declare const kebabToPascalCase: (src: string) => string;
5
+ export { kebabToCamelCase, camelToKebabCase, pascalToKebabCase, kebabToPascalCase, };
@@ -1,5 +1,6 @@
1
1
  const kebabToCamelMap = new Map();
2
2
  const camelToKebabMap = new Map();
3
+ const kebabToPascalMap = new Map();
3
4
  const kebabToCamelCase = (string) => {
4
5
  if (!kebabToCamelMap.has(string)) {
5
6
  const result = toCamelCase(string.split("-"));
@@ -14,10 +15,23 @@ const camelToKebabCase = (string) => {
14
15
  }
15
16
  return camelToKebabMap.get(string);
16
17
  };
18
+ const pascalToKebabCase = (pascalString) => {
19
+ return camelToKebabCase(pascalString);
20
+ };
17
21
  const toCamelCase = (parts) => {
18
22
  return parts.map((string, index) => {
19
23
  return index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
20
24
  }).join("");
21
25
  };
22
- export { kebabToCamelCase, camelToKebabCase };
26
+ const kebabToPascalCase = (src) => {
27
+ const cachedName = kebabToPascalMap.get(src);
28
+ if (cachedName) {
29
+ return cachedName;
30
+ }
31
+ const camelStr = kebabToCamelCase(src);
32
+ const result = camelStr.charAt(0).toUpperCase() + camelStr.slice(1);
33
+ kebabToPascalMap.set(src, result);
34
+ return result;
35
+ };
36
+ export { kebabToCamelCase, camelToKebabCase, pascalToKebabCase, kebabToPascalCase, };
23
37
  //# sourceMappingURL=StringHelper.js.map
@@ -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;AAElD,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACjC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;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;QACjC,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;KACpC;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,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["const kebabToCamelMap = new Map<string, string>();\nconst camelToKebabMap = 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\nexport { kebabToCamelCase, camelToKebabCase };\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.
@@ -29,26 +29,19 @@ const getTabbables = (nodes, tabbables) => {
29
29
  if (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {
30
30
  return;
31
31
  }
32
- let currentElement = currentNode;
32
+ const currentElement = currentNode;
33
33
  if (currentElement.hasAttribute("data-sap-no-tab-ref")) {
34
34
  return;
35
35
  }
36
- if (currentElement.shadowRoot) {
37
- // get the root node of the ShadowDom (1st none style tag)
38
- const children = currentElement.shadowRoot.children;
39
- currentElement = Array.from(children).find(node => node.tagName !== "STYLE");
40
- }
41
- if (!currentElement) {
42
- return;
43
- }
44
36
  if (isElementTabbable(currentElement)) {
45
37
  tabbableElements.push(currentElement);
46
38
  }
47
39
  if (currentElement.tagName === "SLOT") {
48
- getTabbables(currentElement.assignedNodes(), tabbableElements);
40
+ getTabbables(currentElement.assignedElements(), tabbableElements);
49
41
  }
50
42
  else {
51
- getTabbables([...currentElement.children], tabbableElements);
43
+ const children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;
44
+ getTabbables([...children], tabbableElements);
52
45
  }
53
46
  });
54
47
  return tabbableElements;
@@ -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;QACX,OAAO,gBAAgB,CAAC;KACxB;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;YAC1F,OAAO;SACP;QAED,IAAI,cAAc,GAAG,WAA0B,CAAC;QAChD,IAAI,cAAc,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE;YACvD,OAAO;SACP;QAED,IAAI,cAAc,CAAC,UAAU,EAAE;YAC9B,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC;YACpD,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAgB,CAAC;SAC5F;QAED,IAAI,CAAC,cAAc,EAAE;YACpB,OAAO;SACP;QAED,IAAI,iBAAiB,CAAC,cAAc,CAAC,EAAE;YACtC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACtC;QAED,IAAI,cAAc,CAAC,OAAO,KAAK,MAAM,EAAE;YACtC,YAAY,CAAE,cAAkC,CAAC,aAAa,EAAwB,EAAE,gBAAgB,CAAC,CAAC;SAC1G;aAAM;YACN,YAAY,CAAC,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC;SAC7D;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\tlet 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 (currentElement.shadowRoot) {\n\t\t\t// get the root node of the ShadowDom (1st none style tag)\n\t\t\tconst children = currentElement.shadowRoot.children;\n\t\t\tcurrentElement = Array.from(children).find(node => node.tagName !== \"STYLE\") as HTMLElement;\n\t\t}\n\n\t\tif (!currentElement) {\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\tgetTabbables([...currentElement.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 +1 @@
1
- {"version":3,"file":"arraysAreEqual.js","sourceRoot":"","sources":["../../src/util/arraysAreEqual.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAE,IAAgB,EAAE,EAAE;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;QAChC,OAAO,KAAK,CAAC;KACb;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACb;KACD;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["const arraysAreEqual = (arr1: Array<any>, arr2: Array<any>) => {\n\tif (arr1.length !== arr2.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < arr1.length; i++) {\n\t\tif (arr1[i] !== arr2[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\nexport default arraysAreEqual;\n"]}
1
+ {"version":3,"file":"arraysAreEqual.js","sourceRoot":"","sources":["../../src/util/arraysAreEqual.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAE,IAAgB,EAAE,EAAE;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["const arraysAreEqual = (arr1: Array<any>, arr2: Array<any>) => {\n\tif (arr1.length !== arr2.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < arr1.length; i++) {\n\t\tif (arr1[i] !== arr2[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\nexport default arraysAreEqual;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"createLinkInHead.js","sourceRoot":"","sources":["../../src/util/createLinkInHead.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,UAAmC,EAAE,EAAE;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACvB,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;IAExB,IAAI,UAAU,EAAE;QACf,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;KACvE;IAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAEjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO,IAAI,OAAO,CAAQ,OAAO,CAAC,EAAE;QACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW;IACrD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["/**\n * Creates a `<link>` tag in the `<head>` tag\n * @param href - the CSS\n * @param attributes - optional attributes to add to the tag\n */\nconst createLinkInHead = (href: string, attributes?: Record<string, string>) => {\n\tconst link = document.createElement(\"link\");\n\tlink.type = \"text/css\";\n\tlink.rel = \"stylesheet\";\n\n\tif (attributes) {\n\t\tObject.entries(attributes).forEach(pair => link.setAttribute(...pair));\n\t}\n\n\tlink.href = href;\n\n\tdocument.head.appendChild(link);\n\n\treturn new Promise<Event>(resolve => {\n\t\tlink.addEventListener(\"load\", resolve);\n\t\tlink.addEventListener(\"error\", resolve); // intended\n\t});\n};\n\nexport default createLinkInHead;\n"]}
1
+ {"version":3,"file":"createLinkInHead.js","sourceRoot":"","sources":["../../src/util/createLinkInHead.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,UAAmC,EAAE,EAAE;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACvB,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;IAExB,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAEjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO,IAAI,OAAO,CAAQ,OAAO,CAAC,EAAE;QACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW;IACrD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["/**\n * Creates a `<link>` tag in the `<head>` tag\n * @param href - the CSS\n * @param attributes - optional attributes to add to the tag\n */\nconst createLinkInHead = (href: string, attributes?: Record<string, string>) => {\n\tconst link = document.createElement(\"link\");\n\tlink.type = \"text/css\";\n\tlink.rel = \"stylesheet\";\n\n\tif (attributes) {\n\t\tObject.entries(attributes).forEach(pair => link.setAttribute(...pair));\n\t}\n\n\tlink.href = href;\n\n\tdocument.head.appendChild(link);\n\n\treturn new Promise<Event>(resolve => {\n\t\tlink.addEventListener(\"load\", resolve);\n\t\tlink.addEventListener(\"error\", resolve); // intended\n\t});\n};\n\nexport default createLinkInHead;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/util/debounce.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,IAAI,gBAAgB,GAAmB,IAAI,CAAC;AAE5C,MAAM,QAAQ,GAAG,CAAC,EAAc,EAAE,KAAa,EAAE,EAAE;IAClD,gBAAgB,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACnD,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;QAClC,gBAAgB,GAAG,IAAI,CAAC;QACxB,EAAE,EAAE,CAAC;IACN,CAAC,EAAE,KAAK,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import { Timeout } from \"../types.js\";\n\n/**\n * Delays function execution by given threshold.\n * @param fn {Function}\n * @param delay {Integer}\n */\nlet debounceInterval: Timeout | null = null;\n\nconst debounce = (fn: () => void, delay: number) => {\n\tdebounceInterval && clearTimeout(debounceInterval);\n\tdebounceInterval = setTimeout(() => {\n\t\tdebounceInterval = null;\n\t\tfn();\n\t}, delay);\n};\n\nexport default debounce;\n"]}
1
+ {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/util/debounce.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,IAAI,gBAAgB,GAAmB,IAAI,CAAC;AAE5C,MAAM,QAAQ,GAAG,CAAC,EAAc,EAAE,KAAa,EAAE,EAAE;IAClD,gBAAgB,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACnD,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;QAClC,gBAAgB,GAAG,IAAI,CAAC;QACxB,EAAE,EAAE,CAAC;IACN,CAAC,EAAE,KAAK,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import type { Timeout } from \"../types.js\";\n\n/**\n * Delays function execution by given threshold.\n * @param fn {Function}\n * @param delay {Integer}\n */\nlet debounceInterval: Timeout | null = null;\n\nconst debounce = (fn: () => void, delay: number) => {\n\tdebounceInterval && clearTimeout(debounceInterval);\n\tdebounceInterval = setTimeout(() => {\n\t\tdebounceInterval = null;\n\t\tfn();\n\t}, delay);\n};\n\nexport default debounce;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"detectNavigatorLanguage.js","sourceRoot":"","sources":["../../src/util/detectNavigatorLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC;AAE9C,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACpC,IAAI,KAAK,EAAE;QACV,OAAO,gBAAgB,CAAC;KACxB;IACD,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC;IAE7C,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC9B,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC;IAEnF,OAAO,SAAS,IAAI,gBAAgB,CAAC;AACtC,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC","sourcesContent":["import { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\n\nconst isSSR = typeof document === \"undefined\";\n\nconst detectNavigatorLanguage = () => {\n\tif (isSSR) {\n\t\treturn DEFAULT_LANGUAGE;\n\t}\n\tconst browserLanguages = navigator.languages;\n\n\tconst navigatorLanguage = () => {\n\t\treturn navigator.language;\n\t};\n\n\tconst rawLocale = (browserLanguages && browserLanguages[0]) || navigatorLanguage();\n\n\treturn rawLocale || DEFAULT_LANGUAGE;\n};\n\nexport default detectNavigatorLanguage;\n"]}
1
+ {"version":3,"file":"detectNavigatorLanguage.js","sourceRoot":"","sources":["../../src/util/detectNavigatorLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC;AAE9C,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACpC,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,gBAAgB,CAAC;IACzB,CAAC;IACD,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC;IAE7C,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC9B,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC;IAEnF,OAAO,SAAS,IAAI,gBAAgB,CAAC;AACtC,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC","sourcesContent":["import { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\n\nconst isSSR = typeof document === \"undefined\";\n\nconst detectNavigatorLanguage = () => {\n\tif (isSSR) {\n\t\treturn DEFAULT_LANGUAGE;\n\t}\n\tconst browserLanguages = navigator.languages;\n\n\tconst navigatorLanguage = () => {\n\t\treturn navigator.language;\n\t};\n\n\tconst rawLocale = (browserLanguages && browserLanguages[0]) || navigatorLanguage();\n\n\treturn rawLocale || DEFAULT_LANGUAGE;\n};\n\nexport default detectNavigatorLanguage;\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,68 +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
- e.dataTransfer.dropEffect = "move";
10
- e.dataTransfer.effectAllowed = "move";
11
- if (!selfManagedDragAreas.has(e.target)) {
12
- draggedElement = e.target;
13
- }
14
- };
15
- const ondragend = () => {
16
- draggedElement = null;
17
- };
18
- const ondrop = () => {
19
- draggedElement = null;
20
- };
21
6
  const setDraggedElement = (element) => {
22
7
  draggedElement = element;
23
8
  };
9
+ const clearDraggedElement = () => {
10
+ draggedElement = null;
11
+ };
24
12
  const getDraggedElement = () => {
25
13
  return draggedElement;
26
14
  };
27
- const attachGlobalHandlers = () => {
28
- 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
29
36
  return;
30
37
  }
31
- document.body.addEventListener("dragstart", ondragstart);
32
- document.body.addEventListener("dragend", ondragend);
33
- document.body.addEventListener("drop", ondrop);
34
- };
35
- const detachGlobalHandlers = () => {
36
- document.body.removeEventListener("dragstart", ondragstart);
37
- document.body.removeEventListener("dragend", ondragend);
38
- document.body.removeEventListener("drop", ondrop);
39
- globalHandlersAttached = false;
40
- };
41
- const subscribe = (subscriber) => {
42
- subscribers.add(subscriber);
43
- if (!globalHandlersAttached) {
44
- attachGlobalHandlers();
45
- }
46
- };
47
- const unsubscribe = (subscriber) => {
48
- subscribers.delete(subscriber);
49
- if (subscribers.size === 0 && globalHandlersAttached) {
50
- detachGlobalHandlers();
38
+ if (!e.dataTransfer) {
39
+ return;
51
40
  }
52
- };
53
- const addSelfManagedArea = (area) => {
54
- selfManagedDragAreas.add(area);
55
- return setDraggedElement;
56
- };
57
- const removeSelfManagedArea = (area) => {
58
- 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
+ });
59
49
  };
60
50
  const DragRegistry = {
61
- subscribe,
62
- unsubscribe,
63
- addSelfManagedArea,
64
- removeSelfManagedArea,
51
+ setDraggedElement,
52
+ clearDraggedElement,
65
53
  getDraggedElement,
54
+ startMultipleDrag,
66
55
  };
67
56
  export default DragRegistry;
57
+ export { startMultipleDrag, };
68
58
  //# sourceMappingURL=DragRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DragRegistry.js","sourceRoot":"","sources":["../../../src/util/dragAndDrop/DragRegistry.ts"],"names":[],"mappings":"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","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\te.dataTransfer.dropEffect = \"move\";\n\te.dataTransfer.effectAllowed = \"move\";\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"]}
@@ -4,4 +4,9 @@ declare const findClosestPosition: (elements: Array<HTMLElement>, point: number,
4
4
  element: HTMLElement;
5
5
  placements: MovePlacement[];
6
6
  } | null;
7
- export default findClosestPosition;
7
+ declare const findClosestPositionsByKey: (elements: Array<HTMLElement>, element: HTMLElement, e: KeyboardEvent) => {
8
+ element: HTMLElement;
9
+ placement: MovePlacement;
10
+ }[];
11
+ declare const isMovingKey: (key: string) => boolean;
12
+ export { findClosestPosition, findClosestPositionsByKey, isMovingKey, };
@@ -55,5 +55,52 @@ const findClosestPosition = (elements, point, layoutOrientation) => {
55
55
  placements,
56
56
  };
57
57
  };
58
- export default findClosestPosition;
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
+ };
96
+ const findClosestPositionsByKey = (elements, element, e) => {
97
+ if (isMovingKey(e.key)) {
98
+ return keyToPlacement[e.key](elements, elements.indexOf(element));
99
+ }
100
+ return [];
101
+ };
102
+ const isMovingKey = (key) => {
103
+ return key in keyToPlacement;
104
+ };
105
+ export { findClosestPosition, findClosestPositionsByKey, isMovingKey, };
59
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\nexport default findClosestPosition;\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