@ui5/webcomponents-base 0.0.0-4b9b0ab7c → 0.0.0-4e88b8243

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 (634) hide show
  1. package/.npsrc.json +3 -0
  2. package/CHANGELOG.md +1672 -0
  3. package/README.md +6 -12
  4. package/cypress/specs/Accessor.cy.ts +79 -0
  5. package/cypress/specs/Boot.cy.ts +19 -0
  6. package/cypress/specs/ConfigurationChange.cy.ts +41 -0
  7. package/cypress/specs/ConfigurationScript.cy.ts +116 -0
  8. package/cypress/specs/ConfigurationURL.cy.ts +182 -0
  9. package/cypress/specs/CustomMount.cy.ts +34 -0
  10. package/cypress/specs/CustomTheme.cy.ts +36 -0
  11. package/cypress/specs/EventProvider.cy.ts +59 -0
  12. package/cypress/specs/SystemDOMElements.cy.ts +8 -0
  13. package/cypress/specs/Theming.cy.ts +74 -0
  14. package/cypress/specs/UI5ElementInvalidation.cy.ts +207 -0
  15. package/cypress/specs/UI5ElementLifecycle.cy.ts +82 -0
  16. package/cypress/specs/UI5ElementListenForChildPropChanges.cy.ts +62 -0
  17. package/cypress/specs/UI5ElementMetadataExt.cy.ts +42 -0
  18. package/cypress/specs/UI5ElementPropertyValidation.cy.ts +16 -0
  19. package/cypress/specs/UI5ElementPropsAndAttrs.cy.ts +113 -0
  20. package/cypress/specs/UI5ElementShadowDOM.cy.ts +30 -0
  21. package/cypress/specs/UI5ElementSlots.cy.ts +116 -0
  22. package/cypress/specs/WithComplexTemplate.cy.ts +32 -0
  23. package/cypress/tsconfig.json +20 -0
  24. package/cypress.config.js +3 -0
  25. package/dist/.tsbuildinfobuild +1 -0
  26. package/dist/AssetRegistry.d.ts +2 -2
  27. package/dist/AssetRegistry.js +2 -2
  28. package/dist/AssetRegistry.js.map +1 -1
  29. package/dist/Boot.d.ts +3 -2
  30. package/dist/Boot.js +22 -12
  31. package/dist/Boot.js.map +1 -1
  32. package/dist/CustomElementsRegistry.js +1 -1
  33. package/dist/CustomElementsRegistry.js.map +1 -1
  34. package/dist/CustomElementsScope.d.ts +4 -4
  35. package/dist/CustomElementsScope.js +2 -2
  36. package/dist/CustomElementsScope.js.map +1 -1
  37. package/dist/CustomElementsScopeUtils.d.ts +8 -1
  38. package/dist/CustomElementsScopeUtils.js +13 -1
  39. package/dist/CustomElementsScopeUtils.js.map +1 -1
  40. package/dist/DOMObserver.js.map +1 -1
  41. package/dist/Device.d.ts +17 -2
  42. package/dist/Device.js +19 -14
  43. package/dist/Device.js.map +1 -1
  44. package/dist/EventProvider.js +1 -1
  45. package/dist/EventProvider.js.map +1 -1
  46. package/dist/FeaturesRegistry.d.ts +16 -1
  47. package/dist/FeaturesRegistry.js +37 -1
  48. package/dist/FeaturesRegistry.js.map +1 -1
  49. package/dist/FontFace.js +6 -1
  50. package/dist/FontFace.js.map +1 -1
  51. package/dist/IgnoreCustomElements.d.ts +25 -0
  52. package/dist/IgnoreCustomElements.js +37 -0
  53. package/dist/IgnoreCustomElements.js.map +1 -0
  54. package/dist/InitialConfiguration.d.ts +15 -3
  55. package/dist/InitialConfiguration.js +41 -9
  56. package/dist/InitialConfiguration.js.map +1 -1
  57. package/dist/Keys.d.ts +8 -1
  58. package/dist/Keys.js +114 -106
  59. package/dist/Keys.js.map +1 -1
  60. package/dist/Location.d.ts +11 -0
  61. package/dist/Location.js +49 -0
  62. package/dist/Location.js.map +1 -0
  63. package/dist/ManagedStyles.d.ts +5 -6
  64. package/dist/ManagedStyles.js +45 -53
  65. package/dist/ManagedStyles.js.map +1 -1
  66. package/dist/MediaRange.d.ts +6 -12
  67. package/dist/MediaRange.js +21 -31
  68. package/dist/MediaRange.js.map +1 -1
  69. package/dist/PropertiesFileFormat.js.map +1 -1
  70. package/dist/Render.js.map +1 -1
  71. package/dist/RenderQueue.js.map +1 -1
  72. package/dist/Runtimes.js +11 -0
  73. package/dist/Runtimes.js.map +1 -1
  74. package/dist/SystemCSSVars.js.map +1 -1
  75. package/dist/Theming.js.map +1 -1
  76. package/dist/UI5Element.d.ts +111 -75
  77. package/dist/UI5Element.js +394 -229
  78. package/dist/UI5Element.js.map +1 -1
  79. package/dist/UI5ElementMetadata.d.ts +41 -27
  80. package/dist/UI5ElementMetadata.js +34 -72
  81. package/dist/UI5ElementMetadata.js.map +1 -1
  82. package/dist/animations/AnimationQueue.js.map +1 -1
  83. package/dist/animations/animate.js.map +1 -1
  84. package/dist/animations/scroll.js.map +1 -1
  85. package/dist/animations/slideDown.js.map +1 -1
  86. package/dist/animations/slideUp.js.map +1 -1
  87. package/dist/asset-registries/Icons.d.ts +21 -12
  88. package/dist/asset-registries/Icons.js +51 -19
  89. package/dist/asset-registries/Icons.js.map +1 -1
  90. package/dist/asset-registries/Illustrations.d.ts +2 -0
  91. package/dist/asset-registries/Illustrations.js +51 -20
  92. package/dist/asset-registries/Illustrations.js.map +1 -1
  93. package/dist/asset-registries/LocaleData.js +1 -1
  94. package/dist/asset-registries/LocaleData.js.map +1 -1
  95. package/dist/asset-registries/Themes.d.ts +5 -7
  96. package/dist/asset-registries/Themes.js +28 -13
  97. package/dist/asset-registries/Themes.js.map +1 -1
  98. package/dist/asset-registries/i18n.d.ts +2 -2
  99. package/dist/asset-registries/i18n.js +12 -5
  100. package/dist/asset-registries/i18n.js.map +1 -1
  101. package/dist/{assets-meta → asset-registries/util}/IconCollectionsAlias.d.ts +1 -2
  102. package/dist/{assets-meta → asset-registries/util}/IconCollectionsAlias.js +1 -2
  103. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  104. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  105. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  106. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  107. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  108. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  109. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  110. package/dist/config/AnimationMode.d.ts +2 -2
  111. package/dist/config/AnimationMode.js +6 -1
  112. package/dist/config/AnimationMode.js.map +1 -1
  113. package/dist/config/CalendarType.d.ts +8 -1
  114. package/dist/config/CalendarType.js +23 -2
  115. package/dist/config/CalendarType.js.map +1 -1
  116. package/dist/config/ConfigurationReset.d.ts +4 -0
  117. package/dist/config/ConfigurationReset.js +11 -0
  118. package/dist/config/ConfigurationReset.js.map +1 -0
  119. package/dist/config/Fonts.d.ts +16 -0
  120. package/dist/config/Fonts.js +30 -0
  121. package/dist/config/Fonts.js.map +1 -0
  122. package/dist/config/FormatSettings.js +4 -0
  123. package/dist/config/FormatSettings.js.map +1 -1
  124. package/dist/config/Icons.d.ts +9 -24
  125. package/dist/config/Icons.js +8 -67
  126. package/dist/config/Icons.js.map +1 -1
  127. package/dist/config/Language.d.ts +11 -2
  128. package/dist/config/Language.js +24 -4
  129. package/dist/config/Language.js.map +1 -1
  130. package/dist/config/NoConflict.js +5 -0
  131. package/dist/config/NoConflict.js.map +1 -1
  132. package/dist/config/Theme.d.ts +16 -5
  133. package/dist/config/Theme.js +39 -9
  134. package/dist/config/Theme.js.map +1 -1
  135. package/dist/config/ThemeRoot.d.ts +27 -0
  136. package/dist/config/ThemeRoot.js +61 -0
  137. package/dist/config/ThemeRoot.js.map +1 -0
  138. package/dist/config/Timezone.d.ts +17 -0
  139. package/dist/config/Timezone.js +34 -0
  140. package/dist/config/Timezone.js.map +1 -0
  141. package/dist/config/Tooltips.d.ts +19 -0
  142. package/dist/config/Tooltips.js +29 -0
  143. package/dist/config/Tooltips.js.map +1 -0
  144. package/dist/connectToComponent.d.ts +9 -0
  145. package/dist/connectToComponent.js +59 -0
  146. package/dist/connectToComponent.js.map +1 -0
  147. package/dist/converters/DOMReference.d.ts +5 -0
  148. package/dist/converters/DOMReference.js +13 -0
  149. package/dist/converters/DOMReference.js.map +1 -0
  150. package/dist/css/FontFace.css +47 -17
  151. package/dist/css/SystemCSSVars.css +0 -8
  152. package/dist/decorators/bound.d.ts +1 -0
  153. package/dist/decorators/bound.js +34 -0
  154. package/dist/decorators/bound.js.map +1 -0
  155. package/dist/decorators/customElement.d.ts +42 -3
  156. package/dist/decorators/customElement.js +26 -9
  157. package/dist/decorators/customElement.js.map +1 -1
  158. package/dist/decorators/event-strict.d.ts +15 -0
  159. package/dist/decorators/event-strict.js +26 -0
  160. package/dist/decorators/event-strict.js.map +1 -0
  161. package/dist/decorators/event.d.ts +8 -2
  162. package/dist/decorators/event.js +3 -0
  163. package/dist/decorators/event.js.map +1 -1
  164. package/dist/decorators/i18n.d.ts +17 -0
  165. package/dist/decorators/i18n.js +26 -0
  166. package/dist/decorators/i18n.js.map +1 -0
  167. package/dist/decorators/property.d.ts +1 -1
  168. package/dist/decorators/property.js +1 -1
  169. package/dist/decorators/property.js.map +1 -1
  170. package/dist/decorators/query.d.ts +25 -0
  171. package/dist/decorators/query.js +32 -0
  172. package/dist/decorators/query.js.map +1 -0
  173. package/dist/decorators/queryAll.d.ts +27 -0
  174. package/dist/decorators/queryAll.js +34 -0
  175. package/dist/decorators/queryAll.js.map +1 -0
  176. package/dist/decorators/slot.d.ts +1 -1
  177. package/dist/decorators/slot.js +2 -2
  178. package/dist/decorators/slot.js.map +1 -1
  179. package/dist/decorators.d.ts +8 -0
  180. package/dist/decorators.js +9 -0
  181. package/dist/decorators.js.map +1 -0
  182. package/dist/delegate/ItemNavigation.d.ts +9 -8
  183. package/dist/delegate/ItemNavigation.js +13 -14
  184. package/dist/delegate/ItemNavigation.js.map +1 -1
  185. package/dist/delegate/ResizeHandler.d.ts +4 -6
  186. package/dist/delegate/ResizeHandler.js +11 -11
  187. package/dist/delegate/ResizeHandler.js.map +1 -1
  188. package/dist/delegate/ScrollEnablement.js +2 -2
  189. package/dist/delegate/ScrollEnablement.js.map +1 -1
  190. package/dist/features/F6Navigation.d.ts +3 -3
  191. package/dist/features/F6Navigation.js +27 -8
  192. package/dist/features/F6Navigation.js.map +1 -1
  193. package/dist/features/InputElementsFormSupport.d.ts +15 -0
  194. package/dist/features/InputElementsFormSupport.js +39 -0
  195. package/dist/features/InputElementsFormSupport.js.map +1 -0
  196. package/dist/features/LegacyDateFormats.js.map +1 -1
  197. package/dist/features/OpenUI5Element.js.map +1 -1
  198. package/dist/features/OpenUI5Enablement.d.ts +3 -3
  199. package/dist/features/OpenUI5Enablement.js.map +1 -1
  200. package/dist/features/OpenUI5Support.d.ts +15 -6
  201. package/dist/features/OpenUI5Support.js +91 -46
  202. package/dist/features/OpenUI5Support.js.map +1 -1
  203. package/dist/features/patchPatcher.d.ts +11 -0
  204. package/dist/features/patchPatcher.js +11 -0
  205. package/dist/features/patchPatcher.js.map +1 -0
  206. package/dist/features/patchPopup.d.ts +15 -0
  207. package/dist/features/patchPopup.js +61 -0
  208. package/dist/features/patchPopup.js.map +1 -0
  209. package/dist/generated/AssetParameters.d.ts +6 -0
  210. package/dist/generated/AssetParameters.js +4 -9
  211. package/dist/generated/AssetParameters.js.map +1 -0
  212. package/dist/generated/VersionInfo.d.ts +10 -0
  213. package/dist/generated/VersionInfo.js +9 -8
  214. package/dist/generated/VersionInfo.js.map +1 -0
  215. package/dist/generated/css/BusyIndicator.css.d.ts +2 -3
  216. package/dist/generated/css/BusyIndicator.css.js +1 -6
  217. package/dist/generated/css/BusyIndicator.css.js.map +1 -1
  218. package/dist/generated/css/FontFace.css.d.ts +2 -3
  219. package/dist/generated/css/FontFace.css.js +1 -6
  220. package/dist/generated/css/FontFace.css.js.map +1 -1
  221. package/dist/generated/css/OverrideFontFace.css.d.ts +2 -3
  222. package/dist/generated/css/OverrideFontFace.css.js +1 -6
  223. package/dist/generated/css/OverrideFontFace.css.js.map +1 -1
  224. package/dist/generated/css/SystemCSSVars.css.d.ts +2 -3
  225. package/dist/generated/css/SystemCSSVars.css.js +1 -6
  226. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  227. package/dist/getSharedResource.d.ts +1 -1
  228. package/dist/getSharedResource.js +8 -2
  229. package/dist/getSharedResource.js.map +1 -1
  230. package/dist/global.d.ts +2 -0
  231. package/dist/i18nBundle.d.ts +2 -4
  232. package/dist/i18nBundle.js +3 -5
  233. package/dist/i18nBundle.js.map +1 -1
  234. package/dist/index.d.ts +8 -0
  235. package/dist/jsx-dev-runtime.d.ts +4 -0
  236. package/dist/jsx-dev-runtime.js +43 -0
  237. package/dist/jsx-dev-runtime.js.map +1 -0
  238. package/dist/jsx-runtime.d.ts +50 -0
  239. package/dist/jsx-runtime.js +27 -0
  240. package/dist/jsx-runtime.js.map +1 -0
  241. package/dist/jsx-utils.d.ts +3 -0
  242. package/dist/jsx-utils.js +39 -0
  243. package/dist/jsx-utils.js.map +1 -0
  244. package/dist/locale/Locale.js.map +1 -1
  245. package/dist/locale/RTLAwareRegistry.d.ts +1 -1
  246. package/dist/locale/RTLAwareRegistry.js.map +1 -1
  247. package/dist/locale/applyDirection.d.ts +3 -2
  248. package/dist/locale/applyDirection.js +3 -2
  249. package/dist/locale/applyDirection.js.map +1 -1
  250. package/dist/locale/directionChange.js.map +1 -1
  251. package/dist/locale/getEffectiveDir.d.ts +1 -1
  252. package/dist/locale/getEffectiveDir.js +3 -19
  253. package/dist/locale/getEffectiveDir.js.map +1 -1
  254. package/dist/locale/getLocale.js.map +1 -1
  255. package/dist/locale/languageChange.js.map +1 -1
  256. package/dist/locale/nextFallbackLocale.js.map +1 -1
  257. package/dist/locale/normalizeLocale.js.map +1 -1
  258. package/dist/renderer/JsxRenderer.d.ts +3 -0
  259. package/dist/renderer/JsxRenderer.js +16 -0
  260. package/dist/renderer/JsxRenderer.js.map +1 -0
  261. package/dist/renderer/LitRenderer.d.ts +3 -3
  262. package/dist/renderer/LitRenderer.js +5 -10
  263. package/dist/renderer/LitRenderer.js.map +1 -1
  264. package/dist/renderer/directives/style-map.d.ts +13 -0
  265. package/dist/renderer/directives/style-map.js +59 -59
  266. package/dist/renderer/directives/style-map.js.map +1 -0
  267. package/dist/renderer/executeTemplate.d.ts +3 -4
  268. package/dist/renderer/executeTemplate.js +1 -19
  269. package/dist/renderer/executeTemplate.js.map +1 -1
  270. package/dist/sap/base/Log.js +698 -188
  271. package/dist/sap/base/assert.js +28 -1
  272. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  273. package/dist/sap/base/security/URLListValidator.js +253 -6
  274. package/dist/sap/base/security/encodeCSS.js +34 -8
  275. package/dist/sap/base/security/encodeXML.js +47 -17
  276. package/dist/sap/base/security/sanitizeHTML.js +35 -13
  277. package/dist/sap/base/strings/toHex.js +27 -2
  278. package/dist/sap/base/util/now.js +24 -3
  279. package/dist/sap/base/util/uid.js +27 -0
  280. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +113 -98
  281. package/dist/ssr-dom-shim.d.ts +1 -0
  282. package/dist/ssr-dom-shim.js +12 -0
  283. package/dist/ssr-dom-shim.js.map +1 -0
  284. package/dist/ssr-dom.d.ts +1 -0
  285. package/dist/ssr-dom.js +3 -0
  286. package/dist/ssr-dom.js.map +1 -0
  287. package/dist/theming/CustomStyle.js.map +1 -1
  288. package/dist/theming/ThemeLoaded.js.map +1 -1
  289. package/dist/theming/ThemeRegistered.d.ts +1 -2
  290. package/dist/theming/ThemeRegistered.js +1 -4
  291. package/dist/theming/ThemeRegistered.js.map +1 -1
  292. package/dist/theming/applyTheme.js +9 -9
  293. package/dist/theming/applyTheme.js.map +1 -1
  294. package/dist/theming/getConstructableStyle.d.ts +2 -2
  295. package/dist/theming/getConstructableStyle.js +3 -3
  296. package/dist/theming/getConstructableStyle.js.map +1 -1
  297. package/dist/theming/getEffectiveStyle.d.ts +1 -1
  298. package/dist/theming/getEffectiveStyle.js +5 -12
  299. package/dist/theming/getEffectiveStyle.js.map +1 -1
  300. package/dist/theming/getStylesString.js +2 -4
  301. package/dist/theming/getStylesString.js.map +1 -1
  302. package/dist/theming/getThemeDesignerTheme.js +2 -1
  303. package/dist/theming/getThemeDesignerTheme.js.map +1 -1
  304. package/dist/thirdparty/_merge.js.map +1 -1
  305. package/dist/thirdparty/isPlainObject.js.map +1 -1
  306. package/dist/thirdparty/merge.js.map +1 -1
  307. package/dist/thirdparty/preact/jsx.d.ts +2616 -0
  308. package/dist/thirdparty/preact/jsxRuntime.module.d.ts +62 -0
  309. package/dist/thirdparty/preact/jsxRuntime.module.js +2 -0
  310. package/dist/thirdparty/preact/preact.module.d.ts +398 -0
  311. package/dist/thirdparty/preact/preact.module.js +2 -0
  312. package/dist/types/AnimationMode.d.ts +0 -8
  313. package/dist/types/AnimationMode.js +0 -8
  314. package/dist/types/AnimationMode.js.map +1 -1
  315. package/dist/types/CalendarType.d.ts +0 -9
  316. package/dist/types/CalendarType.js +0 -9
  317. package/dist/types/CalendarType.js.map +1 -1
  318. package/dist/types/InvisibleMessageMode.d.ts +5 -10
  319. package/dist/types/InvisibleMessageMode.js +4 -11
  320. package/dist/types/InvisibleMessageMode.js.map +1 -1
  321. package/dist/types/ItemNavigationBehavior.d.ts +0 -6
  322. package/dist/types/ItemNavigationBehavior.js +0 -6
  323. package/dist/types/ItemNavigationBehavior.js.map +1 -1
  324. package/dist/types/MovePlacement.d.ts +20 -0
  325. package/dist/types/MovePlacement.js +22 -0
  326. package/dist/types/MovePlacement.js.map +1 -0
  327. package/dist/types/NavigationMode.d.ts +0 -8
  328. package/dist/types/NavigationMode.js +0 -8
  329. package/dist/types/NavigationMode.js.map +1 -1
  330. package/dist/types/Orientation.d.ts +16 -0
  331. package/dist/types/Orientation.js +18 -0
  332. package/dist/types/Orientation.js.map +1 -0
  333. package/dist/types/ValueState.d.ts +3 -17
  334. package/dist/types/ValueState.js +3 -17
  335. package/dist/types/ValueState.js.map +1 -1
  336. package/dist/types.d.ts +37 -14
  337. package/dist/types.js.map +1 -1
  338. package/dist/updateShadowRoot.d.ts +1 -2
  339. package/dist/updateShadowRoot.js +4 -25
  340. package/dist/updateShadowRoot.js.map +1 -1
  341. package/dist/util/{AriaLabelHelper.d.ts → AccessibilityTextsHelper.d.ts} +4 -2
  342. package/dist/util/{AriaLabelHelper.js → AccessibilityTextsHelper.js} +36 -8
  343. package/dist/util/AccessibilityTextsHelper.js.map +1 -0
  344. package/dist/util/Caret.js.map +1 -1
  345. package/dist/util/ColorConversion.d.ts +2 -1
  346. package/dist/util/ColorConversion.js +212 -197
  347. package/dist/util/ColorConversion.js.map +1 -1
  348. package/dist/util/FetchHelper.js.map +1 -1
  349. package/dist/util/FocusableElements.js +18 -15
  350. package/dist/util/FocusableElements.js.map +1 -1
  351. package/dist/util/HTMLSanitizer.js.map +1 -1
  352. package/dist/util/InvisibleMessage.js +2 -2
  353. package/dist/util/InvisibleMessage.js.map +1 -1
  354. package/dist/util/PopupUtils.d.ts +1 -3
  355. package/dist/util/PopupUtils.js +1 -15
  356. package/dist/util/PopupUtils.js.map +1 -1
  357. package/dist/util/SelectionAssistant.d.ts +12 -0
  358. package/dist/util/SelectionAssistant.js +79 -0
  359. package/dist/util/SelectionAssistant.js.map +1 -0
  360. package/dist/util/SlotsHelper.js.map +1 -1
  361. package/dist/util/StringHelper.d.ts +3 -1
  362. package/dist/util/StringHelper.js +15 -1
  363. package/dist/util/StringHelper.js.map +1 -1
  364. package/dist/util/TabbableElements.js +3 -10
  365. package/dist/util/TabbableElements.js.map +1 -1
  366. package/dist/util/arraysAreEqual.js.map +1 -1
  367. package/dist/util/clamp.js +2 -1
  368. package/dist/util/clamp.js.map +1 -1
  369. package/dist/util/createLinkInHead.d.ts +1 -1
  370. package/dist/util/createLinkInHead.js +1 -1
  371. package/dist/util/createLinkInHead.js.map +1 -1
  372. package/dist/util/debounce.js.map +1 -1
  373. package/dist/util/detectNavigatorLanguage.d.ts +2 -2
  374. package/dist/util/detectNavigatorLanguage.js +6 -1
  375. package/dist/util/detectNavigatorLanguage.js.map +1 -1
  376. package/dist/util/dragAndDrop/DragRegistry.d.ts +33 -0
  377. package/dist/util/dragAndDrop/DragRegistry.js +66 -0
  378. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
  379. package/dist/util/dragAndDrop/findClosestPosition.d.ts +11 -0
  380. package/dist/util/dragAndDrop/findClosestPosition.js +102 -0
  381. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
  382. package/dist/util/dragAndDrop/handleDragOver.d.ts +16 -0
  383. package/dist/util/dragAndDrop/handleDragOver.js +42 -0
  384. package/dist/util/dragAndDrop/handleDragOver.js.map +1 -0
  385. package/dist/util/dragAndDrop/handleDrop.d.ts +5 -0
  386. package/dist/util/dragAndDrop/handleDrop.js +22 -0
  387. package/dist/util/dragAndDrop/handleDrop.js.map +1 -0
  388. package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
  389. package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
  390. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
  391. package/dist/util/escapeRegex.js.map +1 -1
  392. package/dist/util/fixSafariActiveState.d.ts +2 -0
  393. package/dist/util/fixSafariActiveState.js +11 -0
  394. package/dist/util/fixSafariActiveState.js.map +1 -0
  395. package/dist/util/formatMessage.js.map +1 -1
  396. package/dist/util/generateHighlightedMarkup.js.map +1 -1
  397. package/dist/util/getActiveElement.js.map +1 -1
  398. package/dist/util/getClassCopy.d.ts +142 -102
  399. package/dist/util/getClassCopy.js.map +1 -1
  400. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -2
  401. package/dist/util/getDesigntimePropertyAsArray.js +2 -1
  402. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -1
  403. package/dist/util/getEffectiveContentDensity.js.map +1 -1
  404. package/dist/util/getEffectiveScrollbarStyle.d.ts +1 -1
  405. package/dist/util/getEffectiveScrollbarStyle.js +31 -1
  406. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -1
  407. package/dist/util/getFastNavigationGroups.js.map +1 -1
  408. package/dist/util/getFileExtension.js.map +1 -1
  409. package/dist/util/getNormalizedTarget.js.map +1 -1
  410. package/dist/util/getSingletonElementInstance.d.ts +10 -1
  411. package/dist/util/getSingletonElementInstance.js +11 -2
  412. package/dist/util/getSingletonElementInstance.js.map +1 -1
  413. package/dist/util/hash2str.d.ts +1 -0
  414. package/dist/util/hash2str.js +14 -0
  415. package/dist/util/hash2str.js.map +1 -0
  416. package/dist/util/isElementClickable.js.map +1 -1
  417. package/dist/util/isElementHidden.js.map +1 -1
  418. package/dist/util/isElementInView.js.map +1 -1
  419. package/dist/util/isElementTabbable.js +2 -2
  420. package/dist/util/isElementTabbable.js.map +1 -1
  421. package/dist/util/isValidPropertyName.js.map +1 -1
  422. package/dist/util/toLowercaseEnumValue.d.ts +3 -0
  423. package/dist/util/toLowercaseEnumValue.js +4 -0
  424. package/dist/util/toLowercaseEnumValue.js.map +1 -0
  425. package/dist/util/whenDOMReady.js.map +1 -1
  426. package/dist/util/willShowContent.js.map +1 -1
  427. package/dist/validateThemeRoot.js +15 -13
  428. package/dist/validateThemeRoot.js.map +1 -1
  429. package/index.js +205 -1
  430. package/package-scripts.cjs +74 -0
  431. package/package.json +31 -9
  432. package/src/css/FontFace.css +47 -17
  433. package/src/css/SystemCSSVars.css +0 -8
  434. package/src/thirdparty/preact/jsxRuntime.module.js +2 -0
  435. package/src/thirdparty/preact/preact.module.js +2 -0
  436. package/src/thirdparty/preact/version.txt +1 -0
  437. package/tsconfig.json +19 -12
  438. package/.eslintignore +0 -16
  439. package/bundle.esm.js +0 -62
  440. package/config/wdio.conf.js +0 -1
  441. package/dist/CSP.d.ts +0 -30
  442. package/dist/CSP.js +0 -51
  443. package/dist/CSP.js.map +0 -1
  444. package/dist/MarkedEvents.d.ts +0 -9
  445. package/dist/MarkedEvents.js +0 -15
  446. package/dist/MarkedEvents.js.map +0 -1
  447. package/dist/StaticArea.d.ts +0 -0
  448. package/dist/StaticArea.js +0 -6
  449. package/dist/StaticArea.js.map +0 -1
  450. package/dist/StaticAreaItem.d.ts +0 -36
  451. package/dist/StaticAreaItem.js +0 -99
  452. package/dist/StaticAreaItem.js.map +0 -1
  453. package/dist/api.json +0 -1
  454. package/dist/assets/Boot.6335ce08.css +0 -1
  455. package/dist/assets/Boot.e74b2a49.js +0 -9
  456. package/dist/assets/bundle.esm.abaf0306.js +0 -52
  457. package/dist/assets-meta/IconCollectionsAlias.js.map +0 -1
  458. package/dist/config/RTL.d.ts +0 -7
  459. package/dist/config/RTL.js +0 -37
  460. package/dist/config/RTL.js.map +0 -1
  461. package/dist/config/ThemeRoots.d.ts +0 -4
  462. package/dist/config/ThemeRoots.js +0 -28
  463. package/dist/config/ThemeRoots.js.map +0 -1
  464. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +0 -11
  465. package/dist/theming/getEffectiveLinksHrefs.d.ts +0 -3
  466. package/dist/theming/getEffectiveLinksHrefs.js +0 -17
  467. package/dist/theming/getEffectiveLinksHrefs.js.map +0 -1
  468. package/dist/theming/preloadLinks.d.ts +0 -3
  469. package/dist/theming/preloadLinks.js +0 -19
  470. package/dist/theming/preloadLinks.js.map +0 -1
  471. package/dist/types/CSSColor.d.ts +0 -15
  472. package/dist/types/CSSColor.js +0 -18
  473. package/dist/types/CSSColor.js.map +0 -1
  474. package/dist/types/DOMReference.d.ts +0 -17
  475. package/dist/types/DOMReference.js +0 -25
  476. package/dist/types/DOMReference.js.map +0 -1
  477. package/dist/types/DataType.d.ts +0 -25
  478. package/dist/types/DataType.js +0 -44
  479. package/dist/types/DataType.js.map +0 -1
  480. package/dist/types/Float.d.ts +0 -17
  481. package/dist/types/Float.js +0 -21
  482. package/dist/types/Float.js.map +0 -1
  483. package/dist/types/Integer.d.ts +0 -17
  484. package/dist/types/Integer.js +0 -21
  485. package/dist/types/Integer.js.map +0 -1
  486. package/dist/util/AriaLabelHelper.js.map +0 -1
  487. package/dist/util/createStyleInHead.d.ts +0 -8
  488. package/dist/util/createStyleInHead.js +0 -18
  489. package/dist/util/createStyleInHead.js.map +0 -1
  490. package/lib/generate-asset-parameters/index.js +0 -25
  491. package/lib/generate-styles/index.js +0 -31
  492. package/lib/generate-version-info/index.js +0 -32
  493. package/package-scripts.js +0 -71
  494. package/src/AssetRegistry.ts +0 -11
  495. package/src/Boot.ts +0 -85
  496. package/src/CSP.ts +0 -66
  497. package/src/CustomElementsRegistry.ts +0 -98
  498. package/src/CustomElementsScope.ts +0 -33
  499. package/src/CustomElementsScopeUtils.ts +0 -115
  500. package/src/DOMObserver.ts +0 -28
  501. package/src/Device.ts +0 -203
  502. package/src/EventProvider.ts +0 -87
  503. package/src/FeaturesRegistry.ts +0 -14
  504. package/src/FontFace.ts +0 -31
  505. package/src/InitialConfiguration.ts +0 -207
  506. package/src/Keys.ts +0 -295
  507. package/src/ManagedStyles.ts +0 -92
  508. package/src/MarkedEvents.ts +0 -20
  509. package/src/MediaRange.ts +0 -110
  510. package/src/PropertiesFileFormat.ts +0 -95
  511. package/src/Render.ts +0 -180
  512. package/src/RenderQueue.ts +0 -71
  513. package/src/Runtimes.ts +0 -114
  514. package/src/StaticArea.ts +0 -3
  515. package/src/StaticAreaItem.ts +0 -113
  516. package/src/SystemCSSVars.ts +0 -10
  517. package/src/Theming.ts +0 -4
  518. package/src/UI5Element.ts +0 -1159
  519. package/src/UI5ElementMetadata.ts +0 -389
  520. package/src/animations/AnimationQueue.ts +0 -43
  521. package/src/animations/animate.ts +0 -64
  522. package/src/animations/scroll.ts +0 -21
  523. package/src/animations/slideDown.ts +0 -72
  524. package/src/animations/slideUp.ts +0 -67
  525. package/src/asset-registries/Icons.ts +0 -161
  526. package/src/asset-registries/Illustrations.ts +0 -75
  527. package/src/asset-registries/LocaleData.ts +0 -172
  528. package/src/asset-registries/Themes.ts +0 -74
  529. package/src/asset-registries/i18n.ts +0 -118
  530. package/src/assets-meta/IconCollectionsAlias.ts +0 -41
  531. package/src/config/AnimationMode.ts +0 -33
  532. package/src/config/CalendarType.ts +0 -23
  533. package/src/config/FormatSettings.ts +0 -35
  534. package/src/config/Icons.ts +0 -126
  535. package/src/config/Language.ts +0 -72
  536. package/src/config/NoConflict.ts +0 -67
  537. package/src/config/RTL.ts +0 -45
  538. package/src/config/Theme.ts +0 -64
  539. package/src/config/ThemeRoots.ts +0 -41
  540. package/src/decorators/customElement.ts +0 -57
  541. package/src/decorators/event.ts +0 -28
  542. package/src/decorators/property.ts +0 -30
  543. package/src/decorators/slot.ts +0 -49
  544. package/src/delegate/ItemNavigation.ts +0 -393
  545. package/src/delegate/ResizeHandler.ts +0 -100
  546. package/src/delegate/ScrollEnablement.ts +0 -224
  547. package/src/features/F6Navigation.ts +0 -195
  548. package/src/features/LegacyDateFormats.ts +0 -40
  549. package/src/features/OpenUI5Element.ts +0 -11
  550. package/src/features/OpenUI5Enablement.ts +0 -117
  551. package/src/features/OpenUI5Support.ts +0 -153
  552. package/src/generated/css/BusyIndicator.css.ts +0 -9
  553. package/src/generated/css/FontFace.css.ts +0 -9
  554. package/src/generated/css/OverrideFontFace.css.ts +0 -9
  555. package/src/generated/css/SystemCSSVars.css.ts +0 -9
  556. package/src/getSharedResource.ts +0 -39
  557. package/src/global.d.ts +0 -38
  558. package/src/i18nBundle.ts +0 -108
  559. package/src/locale/Locale.ts +0 -101
  560. package/src/locale/RTLAwareRegistry.ts +0 -16
  561. package/src/locale/applyDirection.ts +0 -18
  562. package/src/locale/directionChange.ts +0 -34
  563. package/src/locale/getEffectiveDir.ts +0 -28
  564. package/src/locale/getLocale.ts +0 -46
  565. package/src/locale/languageChange.ts +0 -24
  566. package/src/locale/nextFallbackLocale.ts +0 -28
  567. package/src/locale/normalizeLocale.ts +0 -56
  568. package/src/renderer/LitRenderer.ts +0 -60
  569. package/src/renderer/directives/style-map.js +0 -72
  570. package/src/renderer/executeTemplate.ts +0 -40
  571. package/src/theming/CustomStyle.ts +0 -64
  572. package/src/theming/ThemeLoaded.ts +0 -24
  573. package/src/theming/ThemeRegistered.ts +0 -24
  574. package/src/theming/applyTheme.ts +0 -92
  575. package/src/theming/getConstructableStyle.ts +0 -31
  576. package/src/theming/getEffectiveLinksHrefs.ts +0 -26
  577. package/src/theming/getEffectiveStyle.ts +0 -41
  578. package/src/theming/getStylesString.ts +0 -15
  579. package/src/theming/getThemeDesignerTheme.ts +0 -101
  580. package/src/theming/preloadLinks.ts +0 -24
  581. package/src/thirdparty/_merge.ts +0 -32
  582. package/src/thirdparty/isPlainObject.ts +0 -18
  583. package/src/thirdparty/merge.ts +0 -5
  584. package/src/types/AnimationMode.ts +0 -33
  585. package/src/types/CSSColor.ts +0 -19
  586. package/src/types/CalendarType.ts +0 -38
  587. package/src/types/DOMReference.ts +0 -28
  588. package/src/types/DataType.ts +0 -51
  589. package/src/types/Float.ts +0 -24
  590. package/src/types/Integer.ts +0 -24
  591. package/src/types/InvisibleMessageMode.ts +0 -27
  592. package/src/types/ItemNavigationBehavior.ts +0 -26
  593. package/src/types/NavigationMode.ts +0 -33
  594. package/src/types/ValueState.ts +0 -47
  595. package/src/types.ts +0 -30
  596. package/src/updateShadowRoot.ts +0 -42
  597. package/src/util/AriaLabelHelper.ts +0 -218
  598. package/src/util/Caret.ts +0 -28
  599. package/src/util/ColorConversion.ts +0 -399
  600. package/src/util/FetchHelper.ts +0 -31
  601. package/src/util/FocusableElements.ts +0 -92
  602. package/src/util/HTMLSanitizer.ts +0 -9
  603. package/src/util/InvisibleMessage.ts +0 -69
  604. package/src/util/PopupUtils.ts +0 -112
  605. package/src/util/SlotsHelper.ts +0 -39
  606. package/src/util/StringHelper.ts +0 -26
  607. package/src/util/TabbableElements.ts +0 -70
  608. package/src/util/arraysAreEqual.ts +0 -15
  609. package/src/util/clamp.ts +0 -12
  610. package/src/util/createLinkInHead.ts +0 -25
  611. package/src/util/createStyleInHead.ts +0 -20
  612. package/src/util/debounce.ts +0 -18
  613. package/src/util/detectNavigatorLanguage.ts +0 -13
  614. package/src/util/escapeRegex.ts +0 -11
  615. package/src/util/formatMessage.ts +0 -24
  616. package/src/util/generateHighlightedMarkup.ts +0 -43
  617. package/src/util/getActiveElement.ts +0 -11
  618. package/src/util/getClassCopy.ts +0 -12
  619. package/src/util/getDesigntimePropertyAsArray.ts +0 -4
  620. package/src/util/getEffectiveContentDensity.ts +0 -5
  621. package/src/util/getEffectiveScrollbarStyle.ts +0 -5
  622. package/src/util/getFastNavigationGroups.ts +0 -63
  623. package/src/util/getFileExtension.ts +0 -21
  624. package/src/util/getNormalizedTarget.ts +0 -16
  625. package/src/util/getSingletonElementInstance.ts +0 -13
  626. package/src/util/isElementClickable.ts +0 -19
  627. package/src/util/isElementHidden.ts +0 -9
  628. package/src/util/isElementInView.ts +0 -15
  629. package/src/util/isElementTabbable.ts +0 -37
  630. package/src/util/isValidPropertyName.ts +0 -29
  631. package/src/util/whenDOMReady.ts +0 -13
  632. package/src/util/willShowContent.ts +0 -7
  633. package/src/validateThemeRoot.ts +0 -58
  634. package/used-modules.txt +0 -10
@@ -1,224 +0,0 @@
1
- import { supportsTouch } from "../Device.js";
2
- import EventProvider from "../EventProvider.js";
3
- import scroll from "../animations/scroll.js";
4
- import type UI5Element from "../UI5Element.js";
5
-
6
- const scrollEventName = "scroll";
7
- const touchEndEventName = supportsTouch() ? "touchend" : "mouseup";
8
-
9
- type ScrollEnablementEventListenerParam = {
10
- isLeft: boolean;
11
- isRight: boolean
12
- }
13
- type ScrollEnablementEventListenerReturn = void;
14
-
15
- class ScrollEnablement extends EventProvider<ScrollEnablementEventListenerParam, ScrollEnablementEventListenerReturn> {
16
- containerComponent: UI5Element;
17
- mouseMove: (event: MouseEvent | TouchEvent) => void;
18
- mouseUp: (event: MouseEvent | TouchEvent) => void;
19
- touchStart: (event: MouseEvent | TouchEvent) => void;
20
- cachedValue: { dragX: number, dragY: number };
21
- startX: number;
22
- startY: number;
23
- _container?: HTMLElement;
24
- supportsTouch = supportsTouch();
25
- _canScroll?: boolean;
26
- _prevDragX?: number;
27
- _prevDragY?: number;
28
-
29
- constructor(containerComponent: UI5Element) {
30
- super();
31
- this.containerComponent = containerComponent;
32
- this.mouseMove = this.ontouchmove.bind(this);
33
- this.mouseUp = this.ontouchend.bind(this);
34
- this.touchStart = this.ontouchstart.bind(this);
35
-
36
- this.supportsTouch = supportsTouch();
37
-
38
- // On Android devices touchmove is thrown one more time than neccessary (together with touchend)
39
- // so we have to cache the previus coordinates in order to provide correct parameters in the
40
- // event for Android
41
- this.cachedValue = { dragX: 0, dragY: 0 };
42
-
43
- // In components like Carousel you need to know if the user has clicked on something or swiped
44
- // in order to throw the needed event or not
45
- this.startX = 0;
46
- this.startY = 0;
47
-
48
- if (this.supportsTouch) {
49
- containerComponent.addEventListener("touchstart", this.touchStart, { passive: true });
50
- containerComponent.addEventListener("touchmove", this.mouseMove, { passive: true });
51
- containerComponent.addEventListener("touchend", this.mouseUp, { passive: true });
52
- } else {
53
- containerComponent.addEventListener("mousedown", this.touchStart, { passive: true });
54
- }
55
- }
56
-
57
- set scrollContainer(container: HTMLElement) {
58
- this._container = container;
59
- }
60
-
61
- get scrollContainer() {
62
- return this._container!;
63
- }
64
-
65
- /**
66
- * Scrolls the container to the left/top position, retrying retryCount times, if the container is not yet painted
67
- *
68
- * @param left
69
- * @param top
70
- * @param retryCount
71
- * @param retryInterval
72
- * @returns {Promise<void>} resolved when scrolled successfully
73
- */
74
- async scrollTo(left: number, top: number, retryCount = 0, retryInterval = 0) {
75
- let containerPainted = this.scrollContainer.clientHeight > 0 && this.scrollContainer.clientWidth > 0;
76
-
77
- /* eslint-disable no-loop-func, no-await-in-loop */
78
- while (!containerPainted && retryCount > 0) {
79
- await new Promise<void>(resolve => {
80
- setTimeout(() => {
81
- containerPainted = this.scrollContainer.clientHeight > 0 && this.scrollContainer.clientWidth > 0;
82
- retryCount--;
83
- resolve();
84
- }, retryInterval);
85
- });
86
- }
87
- /* eslint-disable no-loop-func, no-await-in-loop */
88
-
89
- this._container!.scrollLeft = left;
90
- this._container!.scrollTop = top;
91
- }
92
-
93
- move(dx: number, dy: number, disableAnimation: boolean) {
94
- if (disableAnimation) {
95
- this._container!.scrollLeft += dx;
96
- this._container!.scrollTop += dy;
97
- return;
98
- }
99
-
100
- if (this._container) {
101
- return scroll(this._container, dx, dy);
102
- }
103
- }
104
-
105
- getScrollLeft() {
106
- return this._container!.scrollLeft;
107
- }
108
-
109
- getScrollTop() {
110
- return this._container!.scrollTop;
111
- }
112
-
113
- _isTouchInside(event: TouchEvent | MouseEvent) {
114
- let touch = null;
115
- if (this.supportsTouch && event instanceof TouchEvent) {
116
- touch = event.touches[0];
117
- }
118
-
119
- const rect = this._container!.getBoundingClientRect();
120
- const x = this.supportsTouch ? (touch as TouchInit).clientX : (event as MouseEvent).x;
121
- const y = this.supportsTouch ? (touch as TouchInit).clientY : (event as MouseEvent).y;
122
-
123
- return x! >= rect.left && x! <= rect.right
124
- && y! >= rect.top && y! <= rect.bottom;
125
- }
126
-
127
- ontouchstart(event: TouchEvent | MouseEvent) {
128
- let touch = null;
129
- if (this.supportsTouch && event instanceof TouchEvent) {
130
- touch = event.touches[0];
131
- }
132
-
133
- if (!this.supportsTouch) {
134
- document.addEventListener("mouseup", this.mouseUp, { passive: true });
135
- document.addEventListener("mousemove", this.mouseMove, { passive: true });
136
- } else {
137
- // Needed only on mobile
138
- this.startX = touch!.pageX;
139
- this.startY = touch!.pageY;
140
- }
141
-
142
- if (this.supportsTouch && event instanceof TouchEvent) {
143
- this._prevDragX = touch!.pageX;
144
- this._prevDragY = touch!.pageY;
145
- }
146
-
147
- if (event instanceof MouseEvent) {
148
- this._prevDragX = event.x;
149
- this._prevDragY = event.y;
150
- }
151
-
152
- this._canScroll = this._isTouchInside(event);
153
- }
154
-
155
- ontouchmove(event: TouchEvent | MouseEvent) {
156
- if (!this._canScroll) {
157
- return;
158
- }
159
-
160
- const container = this._container;
161
- const touch = this.supportsTouch ? (event as TouchEvent).touches[0] : null;
162
-
163
- const dragX = this.supportsTouch ? (touch as TouchInit).pageX : (event as MouseEvent).x;
164
- const dragY = this.supportsTouch ? (touch as TouchInit).pageY : (event as MouseEvent).y;
165
-
166
- container!.scrollLeft += this._prevDragX! - dragX!;
167
- container!.scrollTop += this._prevDragY! - dragY!;
168
-
169
- this.fireEvent(scrollEventName, {
170
- isLeft: dragX! > this._prevDragX!,
171
- isRight: dragX! < this._prevDragX!,
172
- });
173
-
174
- this.cachedValue.dragX = this._prevDragX!;
175
- this.cachedValue.dragY = this._prevDragY!;
176
-
177
- this._prevDragX = dragX;
178
- this._prevDragY = dragY;
179
- }
180
-
181
- ontouchend(event: TouchEvent | MouseEvent) {
182
- if (this.supportsTouch) {
183
- const deltaX = Math.abs((event as TouchEvent).changedTouches[0].pageX - this.startX);
184
- const deltaY = Math.abs((event as TouchEvent).changedTouches[0].pageY - this.startY);
185
-
186
- if (deltaX < 10 && deltaY < 10) {
187
- return;
188
- }
189
- }
190
-
191
- if (!this._canScroll) {
192
- return;
193
- }
194
-
195
- const container = this._container;
196
- const dragX = this.supportsTouch ? (event as TouchEvent).changedTouches[0].pageX : (event as MouseEvent).x;
197
- const dragY = this.supportsTouch ? (event as TouchEvent).changedTouches[0].pageY : (event as MouseEvent).y;
198
-
199
- container!.scrollLeft += this._prevDragX! - dragX;
200
- container!.scrollTop += this._prevDragY! - dragY;
201
-
202
- const useCachedValues = dragX === this._prevDragX;
203
- const _dragX = useCachedValues ? this.cachedValue.dragX : dragX;
204
- // const _dragY = useCachedValues ? this.cachedValue.dragY : dragY; add if needed
205
-
206
- this.fireEvent(touchEndEventName, {
207
- isLeft: _dragX < this._prevDragX!,
208
- isRight: _dragX > this._prevDragX!,
209
- });
210
-
211
- this._prevDragX = dragX;
212
- this._prevDragY = dragY;
213
-
214
- if (!this.supportsTouch) {
215
- document.removeEventListener("mousemove", this.mouseMove);
216
- document.removeEventListener("mouseup", this.mouseUp);
217
- }
218
- }
219
- }
220
-
221
- export default ScrollEnablement;
222
- export type {
223
- ScrollEnablementEventListenerParam,
224
- };
@@ -1,195 +0,0 @@
1
- import { registerFeature } from "../FeaturesRegistry.js";
2
- import { isF6Next, isF6Previous } from "../Keys.js";
3
- import { instanceOfUI5Element } from "../UI5Element.js";
4
- import { getFirstFocusableElement } from "../util/FocusableElements.js";
5
- import getFastNavigationGroups from "../util/getFastNavigationGroups.js";
6
- import isElementClickable from "../util/isElementClickable.js";
7
-
8
- class F6Navigation {
9
- static _instance: F6Navigation;
10
- keydownHandler: (event: KeyboardEvent) => void;
11
- selectedGroup: HTMLElement | null = null;
12
- groups: Array<HTMLElement> = [];
13
-
14
- constructor() {
15
- this.keydownHandler = this._keydownHandler.bind(this) as (event: KeyboardEvent) => void;
16
- this.attachEventListeners();
17
- }
18
-
19
- attachEventListeners() {
20
- document.addEventListener("keydown", this.keydownHandler);
21
- }
22
-
23
- async groupElementToFocus(nextElement: HTMLElement) {
24
- const nextElementDomRef = instanceOfUI5Element(nextElement) ? nextElement.getDomRef() : nextElement;
25
-
26
- if (nextElementDomRef) {
27
- if (isElementClickable(nextElementDomRef)) {
28
- return nextElementDomRef;
29
- }
30
-
31
- const elementToFocus = await getFirstFocusableElement(nextElementDomRef);
32
-
33
- if (elementToFocus) {
34
- return elementToFocus;
35
- }
36
- }
37
- }
38
-
39
- async findNextFocusableGroupElement(currentIndex: number) {
40
- let elementToFocus;
41
-
42
- /* eslint-disable no-await-in-loop */
43
- for (let index = 0; index < this.groups.length; index++) {
44
- let nextElement;
45
-
46
- if (currentIndex > -1) {
47
- if (currentIndex + 1 >= this.groups.length) {
48
- currentIndex = 0;
49
- nextElement = this.groups[currentIndex];
50
- } else {
51
- currentIndex += 1;
52
- nextElement = this.groups[currentIndex];
53
- }
54
- } else {
55
- currentIndex = 0;
56
- nextElement = this.groups[currentIndex];
57
- }
58
-
59
- elementToFocus = await this.groupElementToFocus(nextElement);
60
-
61
- if (elementToFocus) {
62
- break;
63
- }
64
- }
65
- /* eslint-enable no-await-in-loop */
66
-
67
- return elementToFocus;
68
- }
69
-
70
- async findPreviousFocusableGroupElement(currentIndex: number) {
71
- let elementToFocus;
72
-
73
- /* eslint-disable no-await-in-loop */
74
- for (let index = 0; index < this.groups.length; index++) {
75
- let nextElement;
76
-
77
- if (currentIndex > 0) {
78
- // Handle the situation where the first focusable element of two neighbor groups is the same
79
- // For example:
80
- // <ui5-flexible-column-layout>
81
- // <ui5-list>
82
- // <ui5-li>List Item</ui5-li>
83
- // </ui5-list>
84
- // </ui5-flexible-column-layout>
85
- // Here for both FCL & List the firstFoccusableElement is the same (the ui5-li)
86
- const firstFocusable = await this.groupElementToFocus(this.groups[currentIndex - 1]);
87
- const shouldSkipParent = firstFocusable === await this.groupElementToFocus(this.groups[currentIndex]);
88
-
89
- currentIndex = shouldSkipParent ? currentIndex - 2 : currentIndex - 1;
90
-
91
- if (currentIndex < 0) {
92
- currentIndex = this.groups.length - 1;
93
- }
94
-
95
- nextElement = this.groups[currentIndex];
96
- } else {
97
- currentIndex = this.groups.length - 1;
98
- nextElement = this.groups[currentIndex];
99
- }
100
-
101
- elementToFocus = await this.groupElementToFocus(nextElement);
102
-
103
- if (elementToFocus) {
104
- break;
105
- }
106
- }
107
- /* eslint-enable no-await-in-loop */
108
-
109
- return elementToFocus;
110
- }
111
-
112
- async _keydownHandler(event: KeyboardEvent) {
113
- const forward = isF6Next(event);
114
- const backward = isF6Previous(event);
115
- if (!(forward || backward)) {
116
- return;
117
- }
118
-
119
- this.updateGroups();
120
-
121
- if (this.groups.length < 1) {
122
- return;
123
- }
124
-
125
- event.preventDefault();
126
-
127
- let elementToFocus;
128
-
129
- if (this.groups.length === 0) {
130
- elementToFocus = await this.groupElementToFocus(this.groups[0]);
131
-
132
- return elementToFocus?.focus();
133
- }
134
-
135
- let currentIndex = -1;
136
-
137
- if (this.selectedGroup) {
138
- currentIndex = this.groups.indexOf(this.selectedGroup);
139
- }
140
-
141
- if (forward) {
142
- elementToFocus = await this.findNextFocusableGroupElement(currentIndex);
143
- }
144
-
145
- if (backward) {
146
- elementToFocus = await this.findPreviousFocusableGroupElement(currentIndex);
147
- }
148
-
149
- elementToFocus?.focus();
150
- }
151
-
152
- removeEventListeners() {
153
- document.removeEventListener("keydown", this.keydownHandler);
154
- }
155
-
156
- updateGroups() {
157
- this.setSelectedGroup();
158
- this.groups = getFastNavigationGroups(document.body);
159
- }
160
-
161
- setSelectedGroup(root: DocumentOrShadowRoot = window.document) {
162
- const htmlElement = window.document.querySelector("html");
163
- let element: Element | null | ParentNode = this.deepActive(root);
164
-
165
- while (element && (element as Element).getAttribute("data-sap-ui-fastnavgroup") !== "true" && element !== htmlElement) {
166
- element = element.parentElement ? element.parentNode : (element.parentNode as ShadowRoot).host;
167
- }
168
-
169
- this.selectedGroup = element as HTMLElement;
170
- }
171
-
172
- deepActive(root: DocumentOrShadowRoot): Element | null {
173
- if (root.activeElement && root.activeElement.shadowRoot) {
174
- return this.deepActive(root.activeElement.shadowRoot);
175
- }
176
-
177
- return root.activeElement;
178
- }
179
-
180
- destroy() {
181
- this.removeEventListeners();
182
- }
183
-
184
- static init() {
185
- if (!this._instance) {
186
- this._instance = new F6Navigation();
187
- }
188
-
189
- return this._instance;
190
- }
191
- }
192
-
193
- registerFeature("F6Navigation", F6Navigation);
194
-
195
- export default F6Navigation;
@@ -1,40 +0,0 @@
1
- import { getFormatSettings } from "../InitialConfiguration.js";
2
- import type { FormatSettings } from "../config/FormatSettings.js";
3
- import { registerFeature } from "../FeaturesRegistry.js";
4
-
5
- // Allows specifying the customizing data for Islamic calendar support
6
- // dateFormat - The date format
7
- // islamicMonthStart - The Islamic date in string format // 14360101
8
- // gregDate - Corresponding Gregorian date to the Islamic one in string format // 20141024
9
- type IslamicToGregorianMapping = {
10
- dateFormat: string,
11
- islamicMonthStart: string,
12
- gregDate: string,
13
- };
14
- type LegacyDateCalendarCustomizing = Array<IslamicToGregorianMapping>;
15
-
16
- let formatSettings: FormatSettings;
17
-
18
- class LegacyDateFormats {
19
- /**
20
- * Returns the currently set customizing data for Islamic calendar support
21
- *
22
- * @return {object[]} Returns an array that contains the customizing data.
23
- * @public
24
- */
25
- static getLegacyDateCalendarCustomizing(this: void): LegacyDateCalendarCustomizing {
26
- if (formatSettings === undefined) {
27
- formatSettings = getFormatSettings();
28
- }
29
-
30
- return formatSettings.legacyDateCalendarCustomizing || [];
31
- }
32
- }
33
-
34
- registerFeature("LegacyDateFormats", LegacyDateFormats);
35
-
36
- export default LegacyDateFormats;
37
- export type {
38
- FormatSettings,
39
- LegacyDateCalendarCustomizing,
40
- };
@@ -1,11 +0,0 @@
1
- import UI5Element from "../UI5Element.js";
2
-
3
- class OpenUI5Element extends UI5Element {
4
- __isBusy?: boolean;
5
- isOpenUI5Component?: boolean;
6
- __suppressFocusIn?: () => void;
7
- __suppressFocusBack?: (e: KeyboardEvent) => void;
8
- __redirectFocus?: boolean;
9
- }
10
-
11
- export default OpenUI5Element;
@@ -1,117 +0,0 @@
1
- import { TemplateResult } from "lit-html";
2
- import { registerFeature } from "../FeaturesRegistry.js";
3
- import BusyIndicatorStyles from "../generated/css/BusyIndicator.css.js";
4
- import merge from "../thirdparty/merge.js";
5
- import {
6
- isTabPrevious,
7
- } from "../Keys.js";
8
-
9
- import type UI5Element from "../UI5Element.js";
10
- import type OpenUI5Element from "./OpenUI5Element.js";
11
-
12
- const busyIndicatorMetadata = {
13
- properties: {
14
- __isBusy: {
15
- type: Boolean,
16
- },
17
- },
18
- };
19
-
20
- class OpenUI5Enablement {
21
- static wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult) {
22
- if (host.isOpenUI5Component && host.__isBusy) {
23
- templateResult = html`
24
- <div class="busy-indicator-wrapper">
25
- <span tabindex="0" busy-indicator-before-span @focusin=${host.__suppressFocusIn}></span>
26
- ${templateResult}
27
- <div class="busy-indicator-overlay"></div>
28
- <div busy-indicator
29
- class="busy-indicator-busy-area"
30
- tabindex="0"
31
- role="progressbar"
32
- @keydown=${host.__suppressFocusBack}
33
- aria-valuemin="0"
34
- aria-valuemax="100"
35
- aria-valuetext="Busy">
36
- <div>
37
- <div class="busy-indicator-circle circle-animation-0"></div>
38
- <div class="busy-indicator-circle circle-animation-1"></div>
39
- <div class="busy-indicator-circle circle-animation-2"></div>
40
- </div>
41
- </div>
42
- </div>`;
43
- }
44
-
45
- return templateResult;
46
- }
47
-
48
- static enrichBusyIndicatorSettings(klass: typeof UI5Element) {
49
- OpenUI5Enablement.enrichBusyIndicatorMetadata(klass);
50
- OpenUI5Enablement.enrichBusyIndicatorMethods(klass.prototype);
51
- }
52
-
53
- static enrichBusyIndicatorMetadata(klass: typeof UI5Element) {
54
- klass.metadata = merge(klass.metadata, busyIndicatorMetadata);
55
- }
56
-
57
- static enrichBusyIndicatorMethods(UI5ElementPrototype: typeof OpenUI5Element.prototype) {
58
- Object.defineProperties(UI5ElementPrototype, {
59
- "__redirectFocus": { value: true, writable: true },
60
- "__suppressFocusBack": {
61
- get() {
62
- return {
63
- handleEvent: (e: KeyboardEvent) => {
64
- if (isTabPrevious(e)) {
65
- const beforeElem = this.shadowRoot.querySelector("[busy-indicator-before-span]");
66
- this.__redirectFocus = false;
67
- beforeElem.focus();
68
- this.__redirectFocus = true;
69
- }
70
- },
71
- capture: true,
72
- passive: false,
73
- };
74
- },
75
- },
76
- "isOpenUI5Component": { get: () => { return true; } },
77
- });
78
-
79
- UI5ElementPrototype.__suppressFocusIn = function handleFocusIn() {
80
- const busyIndicator = this.shadowRoot?.querySelector("[busy-indicator]") as HTMLElement;
81
- if (busyIndicator && this.__redirectFocus) {
82
- busyIndicator.focus();
83
- }
84
- };
85
-
86
- UI5ElementPrototype.getDomRef = function getDomRef() {
87
- // If a component set _getRealDomRef to its children, use the return value of this function
88
- if (typeof this._getRealDomRef === "function") {
89
- return this._getRealDomRef();
90
- }
91
-
92
- if (!this.shadowRoot || this.shadowRoot.children.length === 0) {
93
- return;
94
- }
95
-
96
- const children = [...this.shadowRoot.children].filter(child => !["link", "style"].includes(child.localName));
97
-
98
- if (children.length !== 1) {
99
- console.warn(`The shadow DOM for ${(this.constructor as typeof UI5Element).getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line
100
- }
101
-
102
- if (this.__isBusy) {
103
- return children[0].querySelector(".busy-indicator-wrapper > :not([busy-indicator-before-span]):not(.busy-indicator-overlay):not(.busy-indicator-busy-area)") as HTMLElement;
104
- }
105
-
106
- return children[0] as HTMLElement;
107
- };
108
- }
109
-
110
- static getBusyIndicatorStyles() {
111
- return BusyIndicatorStyles;
112
- }
113
- }
114
-
115
- registerFeature("OpenUI5Enablement", OpenUI5Enablement);
116
-
117
- export default OpenUI5Enablement;