@ui5/webcomponents-base 0.0.0-e818f286e → 0.0.0-ee3bbe46b

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 (618) hide show
  1. package/.eslintignore +1 -0
  2. package/CHANGELOG.md +75 -0
  3. package/bundle.esm.js +5 -1
  4. package/dist/AssetRegistry.d.ts +5 -0
  5. package/dist/AssetRegistry.js +2 -7
  6. package/dist/AssetRegistry.js.map +1 -0
  7. package/dist/Boot.d.ts +8 -0
  8. package/dist/Boot.js +29 -44
  9. package/dist/Boot.js.map +1 -0
  10. package/dist/CSP.d.ts +30 -0
  11. package/dist/CSP.js +16 -24
  12. package/dist/CSP.js.map +1 -0
  13. package/dist/CustomElementsRegistry.d.ts +5 -0
  14. package/dist/CustomElementsRegistry.js +66 -83
  15. package/dist/CustomElementsRegistry.js.map +1 -0
  16. package/dist/CustomElementsScope.d.ts +7 -0
  17. package/dist/CustomElementsScope.js +10 -29
  18. package/dist/CustomElementsScope.js.map +1 -0
  19. package/dist/CustomElementsScopeUtils.d.ts +55 -0
  20. package/dist/CustomElementsScopeUtils.js +34 -52
  21. package/dist/CustomElementsScopeUtils.js.map +1 -0
  22. package/dist/DOMObserver.d.ts +11 -0
  23. package/dist/DOMObserver.js +12 -54
  24. package/dist/DOMObserver.js.map +1 -0
  25. package/dist/Device.d.ts +12 -0
  26. package/dist/Device.js +53 -83
  27. package/dist/Device.js.map +1 -0
  28. package/dist/EventProvider.d.ts +25 -0
  29. package/dist/EventProvider.js +67 -82
  30. package/dist/EventProvider.js.map +1 -0
  31. package/dist/FeaturesRegistry.d.ts +3 -0
  32. package/dist/FeaturesRegistry.js +5 -10
  33. package/dist/FeaturesRegistry.js.map +1 -0
  34. package/dist/FontFace.d.ts +2 -0
  35. package/dist/FontFace.js +14 -19
  36. package/dist/FontFace.js.map +1 -0
  37. package/dist/InitialConfiguration.d.ts +22 -0
  38. package/dist/InitialConfiguration.js +112 -131
  39. package/dist/InitialConfiguration.js.map +1 -0
  40. package/dist/Keys.d.ts +57 -0
  41. package/dist/Keys.js +174 -291
  42. package/dist/Keys.js.map +1 -0
  43. package/dist/ManagedStyles.d.ts +8 -0
  44. package/dist/ManagedStyles.js +62 -68
  45. package/dist/ManagedStyles.js.map +1 -0
  46. package/dist/MarkedEvents.d.ts +9 -0
  47. package/dist/MarkedEvents.js +15 -0
  48. package/dist/MarkedEvents.js.map +1 -0
  49. package/dist/MediaRange.d.ts +37 -0
  50. package/dist/MediaRange.js +54 -65
  51. package/dist/MediaRange.js.map +1 -0
  52. package/dist/PropertiesFileFormat.d.ts +8 -0
  53. package/dist/PropertiesFileFormat.js +72 -82
  54. package/dist/PropertiesFileFormat.js.map +1 -0
  55. package/dist/Render.d.ts +47 -0
  56. package/dist/Render.js +81 -113
  57. package/dist/Render.js.map +1 -0
  58. package/dist/RenderQueue.d.ts +19 -0
  59. package/dist/RenderQueue.js +52 -62
  60. package/dist/RenderQueue.js.map +1 -0
  61. package/dist/Runtimes.d.ts +27 -0
  62. package/dist/Runtimes.js +49 -70
  63. package/dist/Runtimes.js.map +1 -0
  64. package/dist/StaticArea.d.ts +0 -0
  65. package/dist/StaticArea.js +4 -1
  66. package/dist/StaticArea.js.map +1 -0
  67. package/dist/StaticAreaItem.d.ts +36 -0
  68. package/dist/StaticAreaItem.js +84 -86
  69. package/dist/StaticAreaItem.js.map +1 -0
  70. package/dist/SystemCSSVars.d.ts +2 -0
  71. package/dist/SystemCSSVars.js +4 -5
  72. package/dist/SystemCSSVars.js.map +1 -0
  73. package/dist/Theming.d.ts +3 -0
  74. package/dist/Theming.js +1 -1
  75. package/dist/Theming.js.map +1 -0
  76. package/dist/UI5Element.d.ts +373 -0
  77. package/dist/UI5Element.js +928 -994
  78. package/dist/UI5Element.js.map +1 -0
  79. package/dist/UI5ElementMetadata.d.ts +150 -0
  80. package/dist/UI5ElementMetadata.js +277 -313
  81. package/dist/UI5ElementMetadata.js.map +1 -0
  82. package/dist/animations/AnimationQueue.d.ts +8 -0
  83. package/dist/animations/AnimationQueue.js +31 -38
  84. package/dist/animations/AnimationQueue.js.map +1 -0
  85. package/dist/animations/animate.d.ts +14 -0
  86. package/dist/animations/animate.js +46 -51
  87. package/dist/animations/animate.js.map +1 -0
  88. package/dist/animations/scroll.d.ts +5 -0
  89. package/dist/animations/scroll.js +18 -27
  90. package/dist/animations/scroll.js.map +1 -0
  91. package/dist/animations/slideDown.d.ts +5 -0
  92. package/dist/animations/slideDown.js +53 -78
  93. package/dist/animations/slideDown.js.map +1 -0
  94. package/dist/animations/slideUp.d.ts +5 -0
  95. package/dist/animations/slideUp.js +49 -70
  96. package/dist/animations/slideUp.js.map +1 -0
  97. package/dist/api.json +1 -0
  98. package/dist/asset-registries/Icons.d.ts +30 -0
  99. package/dist/asset-registries/Icons.js +85 -116
  100. package/dist/asset-registries/Icons.js.map +1 -0
  101. package/dist/asset-registries/Illustrations.d.ts +17 -0
  102. package/dist/asset-registries/Illustrations.js +41 -25
  103. package/dist/asset-registries/Illustrations.js.map +1 -0
  104. package/dist/asset-registries/LocaleData.d.ts +7 -0
  105. package/dist/asset-registries/LocaleData.js +104 -132
  106. package/dist/asset-registries/LocaleData.js.map +1 -0
  107. package/dist/asset-registries/Themes.d.ts +10 -0
  108. package/dist/asset-registries/Themes.js +36 -68
  109. package/dist/asset-registries/Themes.js.map +1 -0
  110. package/dist/asset-registries/i18n.d.ts +23 -0
  111. package/dist/asset-registries/i18n.js +52 -80
  112. package/dist/asset-registries/i18n.js.map +1 -0
  113. package/dist/assets/bundle.esm.97ee5164.js +56 -0
  114. package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
  115. package/dist/assets-meta/IconCollectionsAlias.js +4 -4
  116. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  117. package/dist/config/AnimationMode.d.ts +14 -0
  118. package/dist/config/AnimationMode.js +21 -18
  119. package/dist/config/AnimationMode.js.map +1 -0
  120. package/dist/config/CalendarType.d.ts +8 -0
  121. package/dist/config/CalendarType.js +13 -12
  122. package/dist/config/CalendarType.js.map +1 -0
  123. package/dist/config/FormatSettings.d.ts +11 -0
  124. package/dist/config/FormatSettings.js +10 -8
  125. package/dist/config/FormatSettings.js.map +1 -0
  126. package/dist/config/Icons.d.ts +30 -0
  127. package/dist/config/Icons.js +28 -32
  128. package/dist/config/Icons.js.map +1 -0
  129. package/dist/config/Language.d.ts +31 -0
  130. package/dist/config/Language.js +31 -43
  131. package/dist/config/Language.js.map +1 -0
  132. package/dist/config/NoConflict.d.ts +20 -0
  133. package/dist/config/NoConflict.js +40 -41
  134. package/dist/config/NoConflict.js.map +1 -0
  135. package/dist/config/RTL.d.ts +7 -0
  136. package/dist/config/RTL.js +23 -20
  137. package/dist/config/RTL.js.map +1 -0
  138. package/dist/config/Theme.d.ts +28 -0
  139. package/dist/config/Theme.js +34 -36
  140. package/dist/config/Theme.js.map +1 -0
  141. package/dist/config/ThemeRoots.d.ts +4 -0
  142. package/dist/config/ThemeRoots.js +28 -0
  143. package/dist/config/ThemeRoots.js.map +1 -0
  144. package/dist/css/FontFace.css +9 -18
  145. package/dist/decorators/customElement.d.ts +8 -0
  146. package/dist/decorators/customElement.js +16 -0
  147. package/dist/decorators/customElement.js.map +1 -0
  148. package/dist/decorators/event.d.ts +10 -0
  149. package/dist/decorators/event.js +24 -0
  150. package/dist/decorators/event.js.map +1 -0
  151. package/dist/decorators/fastNavigation.d.ts +7 -0
  152. package/dist/decorators/fastNavigation.js +13 -0
  153. package/dist/decorators/fastNavigation.js.map +1 -0
  154. package/dist/decorators/languageAware.d.ts +7 -0
  155. package/dist/decorators/languageAware.js +13 -0
  156. package/dist/decorators/languageAware.js.map +1 -0
  157. package/dist/decorators/property.d.ts +9 -0
  158. package/dist/decorators/property.js +24 -0
  159. package/dist/decorators/property.js.map +1 -0
  160. package/dist/decorators/slot.d.ts +9 -0
  161. package/dist/decorators/slot.js +37 -0
  162. package/dist/decorators/slot.js.map +1 -0
  163. package/dist/decorators/themeAware.d.ts +7 -0
  164. package/dist/decorators/themeAware.js +13 -0
  165. package/dist/decorators/themeAware.js.map +1 -0
  166. package/dist/delegate/ItemNavigation.d.ts +113 -0
  167. package/dist/delegate/ItemNavigation.js +277 -317
  168. package/dist/delegate/ItemNavigation.js.map +1 -0
  169. package/dist/delegate/ResizeHandler.d.ts +24 -0
  170. package/dist/delegate/ResizeHandler.js +68 -91
  171. package/dist/delegate/ResizeHandler.js.map +1 -0
  172. package/dist/delegate/ScrollEnablement.d.ts +48 -0
  173. package/dist/delegate/ScrollEnablement.js +157 -180
  174. package/dist/delegate/ScrollEnablement.js.map +1 -0
  175. package/dist/features/F6Navigation.d.ts +16 -0
  176. package/dist/features/F6Navigation.js +106 -104
  177. package/dist/features/F6Navigation.js.map +1 -0
  178. package/dist/features/OpenUI5Element.d.ts +9 -0
  179. package/dist/features/OpenUI5Element.js +5 -0
  180. package/dist/features/OpenUI5Element.js.map +1 -0
  181. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  182. package/dist/features/OpenUI5Enablement.js +89 -112
  183. package/dist/features/OpenUI5Enablement.js.map +1 -0
  184. package/dist/features/OpenUI5Support.d.ts +23 -0
  185. package/dist/features/OpenUI5Support.js +91 -119
  186. package/dist/features/OpenUI5Support.js.map +1 -0
  187. package/dist/generated/VersionInfo.js +3 -3
  188. package/dist/generated/css/FontFace.css.js +1 -1
  189. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  190. package/dist/getSharedResource.d.ts +11 -0
  191. package/dist/getSharedResource.js +12 -16
  192. package/dist/getSharedResource.js.map +1 -0
  193. package/dist/i18nBundle.d.ts +43 -0
  194. package/dist/i18nBundle.js +56 -64
  195. package/dist/i18nBundle.js.map +1 -0
  196. package/dist/locale/Locale.d.ts +22 -0
  197. package/dist/locale/Locale.js +75 -87
  198. package/dist/locale/Locale.js.map +1 -0
  199. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  200. package/dist/locale/RTLAwareRegistry.js +6 -11
  201. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  202. package/dist/locale/applyDirection.d.ts +10 -0
  203. package/dist/locale/applyDirection.js +7 -7
  204. package/dist/locale/applyDirection.js.map +1 -0
  205. package/dist/locale/directionChange.d.ts +15 -0
  206. package/dist/locale/directionChange.js +7 -15
  207. package/dist/locale/directionChange.js.map +1 -0
  208. package/dist/locale/getEffectiveDir.d.ts +2 -0
  209. package/dist/locale/getEffectiveDir.js +20 -24
  210. package/dist/locale/getEffectiveDir.js.map +1 -0
  211. package/dist/locale/getLocale.d.ts +7 -0
  212. package/dist/locale/getLocale.js +26 -29
  213. package/dist/locale/getLocale.js.map +1 -0
  214. package/dist/locale/languageChange.d.ts +5 -0
  215. package/dist/locale/languageChange.js +8 -16
  216. package/dist/locale/languageChange.js.map +1 -0
  217. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  218. package/dist/locale/nextFallbackLocale.js +15 -19
  219. package/dist/locale/nextFallbackLocale.js.map +1 -0
  220. package/dist/locale/normalizeLocale.d.ts +7 -0
  221. package/dist/locale/normalizeLocale.js +34 -41
  222. package/dist/locale/normalizeLocale.js.map +1 -0
  223. package/dist/renderer/LitRenderer.d.ts +14 -0
  224. package/dist/renderer/LitRenderer.js +28 -39
  225. package/dist/renderer/LitRenderer.js.map +1 -0
  226. package/dist/renderer/executeTemplate.d.ts +13 -0
  227. package/dist/renderer/executeTemplate.js +12 -16
  228. package/dist/renderer/executeTemplate.js.map +1 -0
  229. package/dist/sap/base/Log.js +28 -29
  230. package/dist/sap/base/assert.js +5 -6
  231. package/dist/sap/base/security/URLListValidator.js +13 -2
  232. package/dist/theming/CustomStyle.d.ts +6 -0
  233. package/dist/theming/CustomStyle.js +29 -43
  234. package/dist/theming/CustomStyle.js.map +1 -0
  235. package/dist/theming/ThemeLoaded.d.ts +5 -0
  236. package/dist/theming/ThemeLoaded.js +8 -16
  237. package/dist/theming/ThemeLoaded.js.map +1 -0
  238. package/dist/theming/applyTheme.d.ts +2 -0
  239. package/dist/theming/applyTheme.js +60 -64
  240. package/dist/theming/applyTheme.js.map +1 -0
  241. package/dist/theming/getConstructableStyle.d.ts +9 -0
  242. package/dist/theming/getConstructableStyle.js +12 -17
  243. package/dist/theming/getConstructableStyle.js.map +1 -0
  244. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  245. package/dist/theming/getEffectiveLinksHrefs.js +12 -22
  246. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  247. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  248. package/dist/theming/getEffectiveStyle.js +24 -31
  249. package/dist/theming/getEffectiveStyle.js.map +1 -0
  250. package/dist/theming/getStylesString.d.ts +3 -0
  251. package/dist/theming/getStylesString.js +9 -13
  252. package/dist/theming/getStylesString.js.map +1 -0
  253. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  254. package/dist/theming/getThemeDesignerTheme.js +72 -79
  255. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  256. package/dist/theming/preloadLinks.d.ts +3 -0
  257. package/dist/theming/preloadLinks.js +13 -17
  258. package/dist/theming/preloadLinks.js.map +1 -0
  259. package/dist/thirdparty/_merge.d.ts +2 -0
  260. package/dist/thirdparty/_merge.js +7 -4
  261. package/dist/thirdparty/_merge.js.map +1 -0
  262. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  263. package/dist/thirdparty/isPlainObject.js +11 -10
  264. package/dist/thirdparty/isPlainObject.js.map +1 -0
  265. package/dist/thirdparty/merge.d.ts +2 -0
  266. package/dist/thirdparty/merge.js +4 -8
  267. package/dist/thirdparty/merge.js.map +1 -0
  268. package/dist/types/AnimationMode.d.ts +32 -0
  269. package/dist/types/AnimationMode.js +33 -6
  270. package/dist/types/AnimationMode.js.map +1 -0
  271. package/dist/types/CSSColor.d.ts +16 -0
  272. package/dist/types/CSSColor.js +15 -5
  273. package/dist/types/CSSColor.js.map +1 -0
  274. package/dist/types/CalendarType.d.ts +37 -0
  275. package/dist/types/CalendarType.js +35 -18
  276. package/dist/types/CalendarType.js.map +1 -0
  277. package/dist/types/DOMReference.d.ts +17 -0
  278. package/dist/types/DOMReference.js +25 -0
  279. package/dist/types/DOMReference.js.map +1 -0
  280. package/dist/types/DataType.d.ts +25 -0
  281. package/dist/types/DataType.js +33 -26
  282. package/dist/types/DataType.js.map +1 -0
  283. package/dist/types/Float.d.ts +18 -0
  284. package/dist/types/Float.js +18 -10
  285. package/dist/types/Float.js.map +1 -0
  286. package/dist/types/Integer.d.ts +18 -0
  287. package/dist/types/Integer.js +18 -9
  288. package/dist/types/Integer.js.map +1 -0
  289. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  290. package/dist/types/InvisibleMessageMode.js +20 -23
  291. package/dist/types/InvisibleMessageMode.js.map +1 -0
  292. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  293. package/dist/types/ItemNavigationBehavior.js +22 -12
  294. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  295. package/dist/types/NavigationMode.d.ts +32 -0
  296. package/dist/types/NavigationMode.js +33 -6
  297. package/dist/types/NavigationMode.js.map +1 -0
  298. package/dist/types/ValueState.d.ts +42 -0
  299. package/dist/types/ValueState.js +41 -19
  300. package/dist/types/ValueState.js.map +1 -0
  301. package/dist/types.d.ts +17 -0
  302. package/dist/types.js +2 -0
  303. package/dist/types.js.map +1 -0
  304. package/dist/updateShadowRoot.d.ts +8 -0
  305. package/dist/updateShadowRoot.js +21 -16
  306. package/dist/updateShadowRoot.js.map +1 -0
  307. package/dist/util/AriaLabelHelper.d.ts +6 -0
  308. package/dist/util/AriaLabelHelper.js +37 -32
  309. package/dist/util/AriaLabelHelper.js.map +1 -0
  310. package/dist/util/Caret.d.ts +7 -0
  311. package/dist/util/Caret.js +16 -25
  312. package/dist/util/Caret.js.map +1 -0
  313. package/dist/util/ColorConversion.d.ts +30 -0
  314. package/dist/util/ColorConversion.js +311 -372
  315. package/dist/util/ColorConversion.js.map +1 -0
  316. package/dist/util/FetchHelper.d.ts +3 -0
  317. package/dist/util/FetchHelper.js +19 -25
  318. package/dist/util/FetchHelper.js.map +1 -0
  319. package/dist/util/FocusableElements.d.ts +4 -0
  320. package/dist/util/FocusableElements.js +54 -71
  321. package/dist/util/FocusableElements.js.map +1 -0
  322. package/dist/util/HTMLSanitizer.d.ts +3 -0
  323. package/dist/util/HTMLSanitizer.js +4 -5
  324. package/dist/util/HTMLSanitizer.js.map +1 -0
  325. package/dist/util/InvisibleMessage.d.ts +10 -0
  326. package/dist/util/InvisibleMessage.js +40 -53
  327. package/dist/util/InvisibleMessage.js.map +1 -0
  328. package/dist/util/PopupUtils.d.ts +7 -0
  329. package/dist/util/PopupUtils.js +57 -76
  330. package/dist/util/PopupUtils.js.map +1 -0
  331. package/dist/util/SlotsHelper.d.ts +9 -0
  332. package/dist/util/SlotsHelper.js +22 -35
  333. package/dist/util/SlotsHelper.js.map +1 -0
  334. package/dist/util/StringHelper.d.ts +3 -0
  335. package/dist/util/StringHelper.js +17 -20
  336. package/dist/util/StringHelper.js.map +1 -0
  337. package/dist/util/TabbableElements.d.ts +17 -0
  338. package/dist/util/TabbableElements.js +53 -47
  339. package/dist/util/TabbableElements.js.map +1 -0
  340. package/dist/util/arraysAreEqual.d.ts +2 -0
  341. package/dist/util/arraysAreEqual.js +10 -12
  342. package/dist/util/arraysAreEqual.js.map +1 -0
  343. package/dist/util/clamp.d.ts +9 -0
  344. package/dist/util/clamp.js +2 -2
  345. package/dist/util/clamp.js.map +1 -0
  346. package/dist/util/createLinkInHead.d.ts +7 -0
  347. package/dist/util/createLinkInHead.js +14 -12
  348. package/dist/util/createLinkInHead.js.map +1 -0
  349. package/dist/util/createStyleInHead.d.ts +8 -0
  350. package/dist/util/createStyleInHead.js +10 -10
  351. package/dist/util/createStyleInHead.js.map +1 -0
  352. package/dist/util/debounce.d.ts +2 -0
  353. package/dist/util/debounce.js +6 -8
  354. package/dist/util/debounce.js.map +1 -0
  355. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  356. package/dist/util/detectNavigatorLanguage.js +7 -10
  357. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  358. package/dist/util/escapeRegex.d.ts +8 -0
  359. package/dist/util/escapeRegex.js +8 -7
  360. package/dist/util/escapeRegex.js.map +1 -0
  361. package/dist/util/formatMessage.d.ts +2 -0
  362. package/dist/util/formatMessage.js +15 -19
  363. package/dist/util/formatMessage.js.map +1 -0
  364. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  365. package/dist/util/generateHighlightedMarkup.js +26 -27
  366. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  367. package/dist/util/getActiveElement.d.ts +2 -0
  368. package/dist/util/getActiveElement.js +6 -8
  369. package/dist/util/getActiveElement.js.map +1 -0
  370. package/dist/util/getClassCopy.d.ts +400 -0
  371. package/dist/util/getClassCopy.js +7 -7
  372. package/dist/util/getClassCopy.js.map +1 -0
  373. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  374. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  375. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  376. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  377. package/dist/util/getEffectiveContentDensity.js +2 -3
  378. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  379. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  380. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  381. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  382. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  383. package/dist/util/getFastNavigationGroups.js +51 -0
  384. package/dist/util/getFastNavigationGroups.js.map +1 -0
  385. package/dist/util/getFileExtension.d.ts +12 -0
  386. package/dist/util/getFileExtension.js +9 -11
  387. package/dist/util/getFileExtension.js.map +1 -0
  388. package/dist/util/getNormalizedTarget.d.ts +7 -0
  389. package/dist/util/getNormalizedTarget.js +7 -9
  390. package/dist/util/getNormalizedTarget.js.map +1 -0
  391. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  392. package/dist/util/getSingletonElementInstance.js +7 -10
  393. package/dist/util/getSingletonElementInstance.js.map +1 -0
  394. package/dist/util/isElementClickable.d.ts +2 -0
  395. package/dist/util/isElementClickable.js +16 -0
  396. package/dist/util/isElementClickable.js.map +1 -0
  397. package/dist/util/isElementHidden.d.ts +2 -0
  398. package/dist/util/isElementHidden.js +8 -0
  399. package/dist/util/isElementHidden.js.map +1 -0
  400. package/dist/util/isElementInView.d.ts +6 -0
  401. package/dist/util/isElementInView.js +6 -9
  402. package/dist/util/isElementInView.js.map +1 -0
  403. package/dist/util/isElementTabbable.d.ts +9 -0
  404. package/dist/util/isElementTabbable.js +30 -0
  405. package/dist/util/isElementTabbable.js.map +1 -0
  406. package/dist/util/isValidPropertyName.d.ts +8 -0
  407. package/dist/util/isValidPropertyName.js +16 -17
  408. package/dist/util/isValidPropertyName.js.map +1 -0
  409. package/dist/util/whenDOMReady.d.ts +2 -0
  410. package/dist/util/whenDOMReady.js +11 -10
  411. package/dist/util/whenDOMReady.js.map +1 -0
  412. package/dist/util/willShowContent.d.ts +2 -0
  413. package/dist/util/willShowContent.js +7 -0
  414. package/dist/util/willShowContent.js.map +1 -0
  415. package/dist/validateThemeRoot.d.ts +2 -0
  416. package/dist/validateThemeRoot.js +47 -0
  417. package/dist/validateThemeRoot.js.map +1 -0
  418. package/global.d.ts +44 -0
  419. package/lib/generate-styles/index.js +1 -1
  420. package/package-scripts.js +15 -4
  421. package/package.json +4 -4
  422. package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
  423. package/src/Boot.ts +61 -0
  424. package/src/{CSP.js → CSP.ts} +14 -7
  425. package/src/{CustomElementsRegistry.js → CustomElementsRegistry.ts} +19 -16
  426. package/src/{CustomElementsScope.js → CustomElementsScope.ts} +8 -5
  427. package/src/{CustomElementsScopeUtils.js → CustomElementsScopeUtils.ts} +14 -7
  428. package/src/DOMObserver.ts +28 -0
  429. package/src/{Device.js → Device.ts} +17 -14
  430. package/src/{EventProvider.js → EventProvider.ts} +9 -7
  431. package/src/FeaturesRegistry.ts +14 -0
  432. package/src/{FontFace.js → FontFace.ts} +3 -2
  433. package/src/{InitialConfiguration.js → InitialConfiguration.ts} +53 -12
  434. package/src/Keys.ts +295 -0
  435. package/src/ManagedStyles.ts +92 -0
  436. package/src/MarkedEvents.ts +20 -0
  437. package/src/{MediaRange.js → MediaRange.ts} +54 -53
  438. package/src/{PropertiesFileFormat.js → PropertiesFileFormat.ts} +8 -8
  439. package/src/{Render.js → Render.ts} +25 -20
  440. package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
  441. package/src/{Runtimes.js → Runtimes.ts} +15 -8
  442. package/src/{StaticArea.js → StaticArea.ts} +0 -0
  443. package/src/{StaticAreaItem.js → StaticAreaItem.ts} +30 -18
  444. package/src/{SystemCSSVars.js → SystemCSSVars.ts} +0 -0
  445. package/src/{Theming.js → Theming.ts} +0 -0
  446. package/src/{UI5Element.js → UI5Element.ts} +270 -148
  447. package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +120 -58
  448. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  449. package/src/animations/animate.ts +64 -0
  450. package/src/animations/scroll.ts +21 -0
  451. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  452. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  453. package/src/asset-registries/{Icons.js → Icons.ts} +64 -37
  454. package/src/asset-registries/Illustrations.ts +75 -0
  455. package/src/asset-registries/{LocaleData.js → LocaleData.ts} +36 -28
  456. package/src/asset-registries/{Themes.js → Themes.ts} +14 -29
  457. package/src/asset-registries/{i18n.js → i18n.ts} +18 -23
  458. package/src/assets-meta/{IconCollectionsAlias.js → IconCollectionsAlias.ts} +0 -0
  459. package/src/config/AnimationMode.ts +33 -0
  460. package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
  461. package/src/config/FormatSettings.ts +21 -0
  462. package/src/config/{Icons.js → Icons.ts} +19 -12
  463. package/src/config/{Language.js → Language.ts} +22 -18
  464. package/src/config/NoConflict.ts +67 -0
  465. package/src/config/{RTL.js → RTL.ts} +14 -4
  466. package/src/config/Theme.ts +64 -0
  467. package/src/config/ThemeRoots.ts +41 -0
  468. package/src/css/FontFace.css +9 -18
  469. package/src/decorators/customElement.ts +17 -0
  470. package/src/decorators/event.ts +28 -0
  471. package/src/decorators/fastNavigation.ts +14 -0
  472. package/src/decorators/languageAware.ts +14 -0
  473. package/src/decorators/property.ts +30 -0
  474. package/src/decorators/slot.ts +49 -0
  475. package/src/decorators/themeAware.ts +14 -0
  476. package/src/delegate/{ItemNavigation.js → ItemNavigation.ts} +56 -19
  477. package/src/delegate/{ResizeHandler.js → ResizeHandler.ts} +25 -36
  478. package/src/delegate/ScrollEnablement.ts +221 -0
  479. package/src/features/F6Navigation.ts +141 -0
  480. package/src/features/OpenUI5Element.ts +11 -0
  481. package/src/features/OpenUI5Enablement.ts +117 -0
  482. package/src/features/OpenUI5Support.ts +148 -0
  483. package/src/{getSharedResource.js → getSharedResource.ts} +3 -3
  484. package/src/{i18nBundle.js → i18nBundle.ts} +44 -22
  485. package/src/locale/{Locale.js → Locale.ts} +15 -5
  486. package/src/locale/RTLAwareRegistry.ts +16 -0
  487. package/src/locale/{applyDirection.js → applyDirection.ts} +4 -3
  488. package/src/locale/{directionChange.js → directionChange.ts} +6 -4
  489. package/src/locale/{getEffectiveDir.js → getEffectiveDir.ts} +1 -1
  490. package/src/locale/{getLocale.js → getLocale.ts} +12 -7
  491. package/src/locale/languageChange.ts +24 -0
  492. package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
  493. package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +4 -2
  494. package/src/renderer/LitRenderer.ts +60 -0
  495. package/src/renderer/{executeTemplate.js → executeTemplate.ts} +11 -5
  496. package/src/theming/{CustomStyle.js → CustomStyle.ts} +11 -9
  497. package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
  498. package/src/theming/{applyTheme.js → applyTheme.ts} +22 -11
  499. package/src/theming/{getConstructableStyle.js → getConstructableStyle.ts} +5 -4
  500. package/src/theming/getEffectiveLinksHrefs.ts +26 -0
  501. package/src/theming/{getEffectiveStyle.js → getEffectiveStyle.ts} +9 -7
  502. package/src/theming/getStylesString.ts +15 -0
  503. package/src/theming/{getThemeDesignerTheme.js → getThemeDesignerTheme.ts} +22 -8
  504. package/src/theming/{preloadLinks.js → preloadLinks.ts} +3 -2
  505. package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
  506. package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
  507. package/src/thirdparty/merge.ts +5 -0
  508. package/src/types/AnimationMode.ts +33 -0
  509. package/src/types/{CSSColor.js → CSSColor.ts} +12 -1
  510. package/src/types/CalendarType.ts +38 -0
  511. package/src/types/DOMReference.ts +28 -0
  512. package/src/types/DataType.ts +51 -0
  513. package/src/types/Float.ts +25 -0
  514. package/src/types/Integer.ts +25 -0
  515. package/src/types/InvisibleMessageMode.ts +27 -0
  516. package/src/types/ItemNavigationBehavior.ts +26 -0
  517. package/src/types/NavigationMode.ts +33 -0
  518. package/src/types/ValueState.ts +47 -0
  519. package/src/types.ts +28 -0
  520. package/src/updateShadowRoot.ts +37 -0
  521. package/src/util/AriaLabelHelper.ts +63 -0
  522. package/src/util/{Caret.js → Caret.ts} +5 -9
  523. package/src/util/{ColorConversion.js → ColorConversion.ts} +182 -181
  524. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  525. package/src/util/FocusableElements.ts +82 -0
  526. package/src/util/{HTMLSanitizer.js → HTMLSanitizer.ts} +2 -0
  527. package/src/util/{InvisibleMessage.js → InvisibleMessage.ts} +6 -6
  528. package/src/util/PopupUtils.ts +114 -0
  529. package/src/util/{SlotsHelper.js → SlotsHelper.ts} +9 -13
  530. package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
  531. package/src/util/TabbableElements.ts +70 -0
  532. package/src/util/{arraysAreEqual.js → arraysAreEqual.ts} +1 -1
  533. package/src/util/{clamp.js → clamp.ts} +1 -1
  534. package/src/util/{createLinkInHead.js → createLinkInHead.ts} +10 -4
  535. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  536. package/src/util/{debounce.js → debounce.ts} +5 -4
  537. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
  538. package/src/util/escapeRegex.ts +11 -0
  539. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  540. package/src/util/{generateHighlightedMarkup.js → generateHighlightedMarkup.ts} +7 -6
  541. package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
  542. package/src/util/{getClassCopy.js → getClassCopy.ts} +3 -1
  543. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  544. package/src/util/getEffectiveContentDensity.ts +5 -0
  545. package/src/util/getEffectiveScrollbarStyle.ts +5 -0
  546. package/src/util/getFastNavigationGroups.ts +63 -0
  547. package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
  548. package/src/util/{getNormalizedTarget.js → getNormalizedTarget.ts} +2 -2
  549. package/src/util/{getSingletonElementInstance.js → getSingletonElementInstance.ts} +1 -1
  550. package/src/util/isElementClickable.ts +19 -0
  551. package/src/util/isElementHidden.ts +9 -0
  552. package/src/util/{isElementInView.js → isElementInView.ts} +1 -1
  553. package/src/util/isElementTabbable.ts +37 -0
  554. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +1 -1
  555. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  556. package/src/util/willShowContent.ts +7 -0
  557. package/src/validateThemeRoot.ts +58 -0
  558. package/tsconfig.json +13 -0
  559. package/dist/RenderScheduler.js +0 -44
  560. package/dist/animations/config.js +0 -5
  561. package/dist/assets/bundle.esm.81ba431e.js +0 -43
  562. package/dist/types/CSSSize.js +0 -9
  563. package/dist/types/PopupState.js +0 -37
  564. package/dist/util/isDefaultSlotProvided.js +0 -11
  565. package/dist/util/isDescendantOf.js +0 -15
  566. package/dist/util/isNodeClickable.js +0 -19
  567. package/dist/util/isNodeHidden.js +0 -9
  568. package/dist/util/isNodeTabbable.js +0 -28
  569. package/dist/util/setToArray.js +0 -10
  570. package/hash.txt +0 -1
  571. package/src/Boot.js +0 -59
  572. package/src/DOMObserver.js +0 -65
  573. package/src/FeaturesRegistry.js +0 -14
  574. package/src/Keys.js +0 -295
  575. package/src/ManagedStyles.js +0 -83
  576. package/src/RenderScheduler.js +0 -44
  577. package/src/animations/animate.js +0 -53
  578. package/src/animations/config.js +0 -5
  579. package/src/animations/scroll.js +0 -28
  580. package/src/asset-registries/Illustrations.js +0 -30
  581. package/src/config/AnimationMode.js +0 -23
  582. package/src/config/FormatSettings.js +0 -13
  583. package/src/config/NoConflict.js +0 -51
  584. package/src/config/Theme.js +0 -53
  585. package/src/delegate/ScrollEnablement.js +0 -188
  586. package/src/features/F6Navigation.js +0 -110
  587. package/src/features/OpenUI5Enablement.js +0 -119
  588. package/src/features/OpenUI5Support.js +0 -125
  589. package/src/locale/RTLAwareRegistry.js +0 -14
  590. package/src/locale/languageChange.js +0 -22
  591. package/src/renderer/LitRenderer.js +0 -52
  592. package/src/theming/getEffectiveLinksHrefs.js +0 -27
  593. package/src/theming/getStylesString.js +0 -15
  594. package/src/thirdparty/merge.js +0 -10
  595. package/src/types/AnimationMode.js +0 -7
  596. package/src/types/CSSSize.js +0 -9
  597. package/src/types/CalendarType.js +0 -22
  598. package/src/types/DataType.js +0 -37
  599. package/src/types/Float.js +0 -14
  600. package/src/types/Integer.js +0 -13
  601. package/src/types/InvisibleMessageMode.js +0 -30
  602. package/src/types/ItemNavigationBehavior.js +0 -16
  603. package/src/types/NavigationMode.js +0 -7
  604. package/src/types/PopupState.js +0 -37
  605. package/src/types/ValueState.js +0 -22
  606. package/src/updateShadowRoot.js +0 -29
  607. package/src/util/AriaLabelHelper.js +0 -39
  608. package/src/util/FocusableElements.js +0 -79
  609. package/src/util/PopupUtils.js +0 -93
  610. package/src/util/TabbableElements.js +0 -51
  611. package/src/util/escapeRegex.js +0 -10
  612. package/src/util/getEffectiveContentDensity.js +0 -5
  613. package/src/util/isDefaultSlotProvided.js +0 -11
  614. package/src/util/isDescendantOf.js +0 -15
  615. package/src/util/isNodeClickable.js +0 -19
  616. package/src/util/isNodeHidden.js +0 -9
  617. package/src/util/isNodeTabbable.js +0 -28
  618. package/src/util/setToArray.js +0 -10
@@ -0,0 +1,117 @@
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;
@@ -0,0 +1,148 @@
1
+ import { registerFeature } from "../FeaturesRegistry.js";
2
+ import { setTheme } from "../config/Theme.js";
3
+ import { getCurrentZIndex } from "../util/PopupUtils.js";
4
+ import { CLDRData } from "../asset-registries/LocaleData.js";
5
+
6
+ type OpenUI5Popup = {
7
+ setInitialZIndex: (zIndex: number) => void,
8
+ getNextZIndex: () => number,
9
+ };
10
+
11
+ type OpenUI5Core = {
12
+ attachInit: (callback: () => void) => void,
13
+ attachThemeChanged: (callback: () => Promise<void>) => void,
14
+ getConfiguration: () => OpenUI5CoreConfiguration,
15
+ };
16
+
17
+ type OpenUI5CoreConfiguration = {
18
+ getAnimationMode: () => string,
19
+ getLanguage: () => string,
20
+ getTheme: () => string,
21
+ getThemeRoot: () => string,
22
+ getRTL: () => string,
23
+ getCalendarType: () => string,
24
+ getLocale: () => string,
25
+ };
26
+
27
+ type LocaleData = {
28
+ getInstance: (locale: string) => Locale,
29
+ }
30
+
31
+ type Locale = {
32
+ getFirstDayOfWeek: () => number,
33
+ _get: () => CLDRData,
34
+ };
35
+
36
+ const getCore = () => {
37
+ return window.sap?.ui?.getCore?.() as OpenUI5Core;
38
+ };
39
+
40
+ class OpenUI5Support {
41
+ static isLoaded() {
42
+ return !!getCore();
43
+ }
44
+
45
+ static init() {
46
+ const core = getCore();
47
+ if (!core) {
48
+ return Promise.resolve();
49
+ }
50
+
51
+ return new Promise<void>(resolve => {
52
+ core.attachInit(() => {
53
+ window.sap.ui.require(["sap/ui/core/LocaleData", "sap/ui/core/Popup"], (LocaleData: LocaleData, Popup: OpenUI5Popup) => {
54
+ Popup.setInitialZIndex(getCurrentZIndex());
55
+ resolve();
56
+ });
57
+ });
58
+ });
59
+ }
60
+
61
+ static getConfigurationSettingsObject() {
62
+ const core = getCore();
63
+ if (!core) {
64
+ return;
65
+ }
66
+
67
+ const config = core.getConfiguration();
68
+ const LocaleData = window.sap.ui.require("sap/ui/core/LocaleData");
69
+
70
+ return {
71
+ animationMode: config.getAnimationMode(),
72
+ language: config.getLanguage(),
73
+ theme: config.getTheme(),
74
+ themeRoot: config.getThemeRoot(),
75
+ rtl: config.getRTL(),
76
+ calendarType: config.getCalendarType(),
77
+ formatSettings: {
78
+ firstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,
79
+ },
80
+ };
81
+ }
82
+
83
+ static getLocaleDataObject() {
84
+ const core = getCore();
85
+ if (!core) {
86
+ return;
87
+ }
88
+
89
+ const config = core.getConfiguration();
90
+ const LocaleData = window.sap.ui.require("sap/ui/core/LocaleData") as LocaleData;
91
+ return LocaleData.getInstance(config.getLocale())._get();
92
+ }
93
+
94
+ static _listenForThemeChange() {
95
+ const core = getCore();
96
+ const config = core.getConfiguration();
97
+ core.attachThemeChanged(async () => {
98
+ await setTheme(config.getTheme());
99
+ });
100
+ }
101
+
102
+ static attachListeners() {
103
+ const core = getCore();
104
+ if (!core) {
105
+ return;
106
+ }
107
+
108
+ OpenUI5Support._listenForThemeChange();
109
+ }
110
+
111
+ static cssVariablesLoaded() {
112
+ const core = getCore();
113
+ if (!core) {
114
+ return;
115
+ }
116
+
117
+ const link = [...document.head.children].find(el => el.id === "sap-ui-theme-sap.ui.core") as HTMLLinkElement; // more reliable than querySelector early
118
+ if (!link) {
119
+ return;
120
+ }
121
+
122
+ return !!link.href.match(/\/css(-|_)variables\.css/);
123
+ }
124
+
125
+ static getNextZIndex() {
126
+ const core = getCore();
127
+ if (!core) {
128
+ return;
129
+ }
130
+
131
+ const Popup = window.sap.ui.require("sap/ui/core/Popup") as OpenUI5Popup;
132
+ return Popup.getNextZIndex();
133
+ }
134
+
135
+ static setInitialZIndex() {
136
+ const core = getCore();
137
+ if (!core) {
138
+ return;
139
+ }
140
+
141
+ const Popup = window.sap.ui.require("sap/ui/core/Popup") as OpenUI5Popup;
142
+ Popup.setInitialZIndex(getCurrentZIndex());
143
+ }
144
+ }
145
+
146
+ registerFeature("OpenUI5Support", OpenUI5Support);
147
+
148
+ export default OpenUI5Support;
@@ -11,9 +11,9 @@ const getSharedResourcesInstance = () => getSingletonElementInstance("ui5-shared
11
11
  * @param initialValue Object or primitive that will be used as an initial value if the resource does not exist
12
12
  * @returns {*}
13
13
  */
14
- const getSharedResource = (namespace, initialValue) => {
14
+ const getSharedResource = <T>(namespace: string, initialValue: T): T => {
15
15
  const parts = namespace.split(".");
16
- let current = getSharedResourcesInstance();
16
+ let current = getSharedResourcesInstance() as Record<string, any>;
17
17
 
18
18
  for (let i = 0; i < parts.length; i++) {
19
19
  const part = parts[i];
@@ -24,7 +24,7 @@ const getSharedResource = (namespace, initialValue) => {
24
24
  current = current[part];
25
25
  }
26
26
 
27
- return current;
27
+ return current as T;
28
28
  };
29
29
 
30
30
  export default getSharedResource;
@@ -1,16 +1,25 @@
1
1
  import { registerI18nLoader, fetchI18nBundle, getI18nBundleData } from "./asset-registries/i18n.js";
2
2
  import formatMessage from "./util/formatMessage.js";
3
3
 
4
- const I18nBundleInstances = new Map();
4
+ const I18nBundleInstances = new Map<string, I18nBundle>();
5
5
 
6
- let customGetI18nBundle;
6
+ let customGetI18nBundle: I18nBundleGetter;
7
+
8
+ type I18nText = {
9
+ key: string,
10
+ defaultText: string,
11
+ };
12
+
13
+ type I18nBundleGetter = (packageName: string) => Promise<I18nBundle>;
7
14
 
8
15
  /**
9
16
  * @class
10
17
  * @public
11
18
  */
12
19
  class I18nBundle {
13
- constructor(packageName) {
20
+ packageName: string;
21
+
22
+ constructor(packageName: string) {
14
23
  this.packageName = packageName;
15
24
  }
16
25
 
@@ -20,9 +29,9 @@ class I18nBundle {
20
29
  * @public
21
30
  * @param {Object|String} textObj key/defaultText pair or just the key
22
31
  * @param params Values for the placeholders
23
- * @returns {*}
32
+ * @returns {string}
24
33
  */
25
- getText(textObj, ...params) {
34
+ getText(textObj: I18nText, ...params: Array<number | string>): string {
26
35
  if (typeof textObj === "string") {
27
36
  textObj = { key: textObj, defaultText: textObj };
28
37
  }
@@ -41,9 +50,16 @@ class I18nBundle {
41
50
  }
42
51
  }
43
52
 
44
- const getI18nBundleSync = packageName => {
53
+ /**
54
+ * Returns the I18nBundle instance for the given package synchronously.
55
+ *
56
+ * @public
57
+ * @param packageName
58
+ * @returns { I18nBundle }
59
+ */
60
+ const getI18nBundleSync = (packageName: string): I18nBundle => {
45
61
  if (I18nBundleInstances.has(packageName)) {
46
- return I18nBundleInstances.get(packageName);
62
+ return I18nBundleInstances.get(packageName)!;
47
63
  }
48
64
 
49
65
  const i18nBundle = new I18nBundle(packageName);
@@ -52,25 +68,13 @@ const getI18nBundleSync = packageName => {
52
68
  };
53
69
 
54
70
  /**
55
- * Allows developers to provide a custom getI18nBundle implementation
56
- * If this function is called, the custom implementation will be used for all components and will completely
57
- * replace the default implementation.
58
- *
59
- * @public
60
- * @param customGet the function to use instead of the standard getI18nBundle implementation
61
- */
62
- const registerCustomI18nBundleGetter = customGet => {
63
- customGetI18nBundle = customGet;
64
- };
65
-
66
- /**
67
- * Fetches and returns the I18nBundle instance for the given package
71
+ * Fetches and returns the I18nBundle instance for the given package.
68
72
  *
69
73
  * @public
70
74
  * @param packageName
71
- * @returns {Promise<I18nBundle>}
75
+ * @returns { Promise<I18nBundle> }
72
76
  */
73
- const getI18nBundle = async packageName => {
77
+ const getI18nBundle = async (packageName: string): Promise<I18nBundle> => {
74
78
  if (customGetI18nBundle) {
75
79
  return customGetI18nBundle(packageName);
76
80
  }
@@ -79,8 +83,26 @@ const getI18nBundle = async packageName => {
79
83
  return getI18nBundleSync(packageName);
80
84
  };
81
85
 
86
+ /**
87
+ * Allows developers to provide a custom getI18nBundle implementation
88
+ * If this function is called, the custom implementation will be used for all components and will completely
89
+ * replace the default implementation.
90
+ *
91
+ * @public
92
+ * @param customGet the function to use instead of the standard getI18nBundle implementation
93
+ */
94
+ const registerCustomI18nBundleGetter = (customGet: I18nBundleGetter) => {
95
+ customGetI18nBundle = customGet;
96
+ };
97
+
98
+ export default I18nBundle;
99
+
82
100
  export {
83
101
  registerI18nLoader,
84
102
  getI18nBundle,
85
103
  registerCustomI18nBundleGetter,
86
104
  };
105
+
106
+ export type {
107
+ I18nText,
108
+ };
@@ -1,15 +1,25 @@
1
+ import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
2
+
1
3
  const rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;
2
4
 
3
5
  class Locale {
4
- constructor(sLocaleId) {
6
+ sLocaleId: string;
7
+ sLanguage: string;
8
+ sScript: string;
9
+ sRegion: string;
10
+ sVariant: string | null;
11
+ sExtension: string | null;
12
+ sPrivateUse: string | null;
13
+
14
+ constructor(sLocaleId: string) {
5
15
  const aResult = rLocale.exec(sLocaleId.replace(/_/g, "-"));
6
16
  if (aResult === null) {
7
17
  throw new Error(`The given language ${sLocaleId} does not adhere to BCP-47.`);
8
18
  }
9
19
  this.sLocaleId = sLocaleId;
10
- this.sLanguage = aResult[1] || null;
11
- this.sScript = aResult[2] || null;
12
- this.sRegion = aResult[3] || null;
20
+ this.sLanguage = aResult[1] || DEFAULT_LANGUAGE;
21
+ this.sScript = aResult[2] || "";
22
+ this.sRegion = aResult[3] || "";
13
23
  this.sVariant = (aResult[4] && aResult[4].slice(1)) || null;
14
24
  this.sExtension = (aResult[5] && aResult[5].slice(1)) || null;
15
25
  this.sPrivateUse = aResult[6] || null;
@@ -62,7 +72,7 @@ class Locale {
62
72
  return this.sPrivateUse ? this.sPrivateUse.slice(2).split("-") : [];
63
73
  }
64
74
 
65
- hasPrivateUseSubtag(sSubtag) {
75
+ hasPrivateUseSubtag(sSubtag: string) {
66
76
  return this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;
67
77
  }
68
78
 
@@ -0,0 +1,16 @@
1
+ import type UI5Element from "../UI5Element";
2
+
3
+ const rtlAwareSet = new Set<typeof UI5Element>();
4
+
5
+ const markAsRtlAware = (klass: typeof UI5Element) => {
6
+ rtlAwareSet.add(klass);
7
+ };
8
+
9
+ const isRtlAware = (klass: typeof UI5Element) => {
10
+ return rtlAwareSet.has(klass);
11
+ };
12
+
13
+ export {
14
+ markAsRtlAware,
15
+ isRtlAware,
16
+ };
@@ -3,12 +3,13 @@ import { fireDirectionChange } from "./directionChange.js";
3
3
 
4
4
  /**
5
5
  * Re-renders all RTL-aware UI5 Elements.
6
- * Call this method whenever you change the "dir" property anywhere in your HTML page
7
- * Example: document.body.dir = "rtl"; applyDirection();
8
6
  *
7
+ * <b>Note:</b> Call this method whenever you change the "dir" property anywhere in your HTML page.
8
+ * <b>Example:</b> <code>document.body.dir = "rtl"; applyDirection();</code>
9
+ * @public
9
10
  * @returns {Promise<void>}
10
11
  */
11
- const applyDirection = async () => {
12
+ const applyDirection = async (): Promise<void> => {
12
13
  const listenersResults = fireDirectionChange();
13
14
  await Promise.all(listenersResults);
14
15
  await reRenderAllUI5Elements({ rtlAware: true });
@@ -1,6 +1,8 @@
1
1
  import EventProvider from "../EventProvider.js";
2
2
 
3
- const eventProvider = new EventProvider();
3
+ type DirectionChangeCallback = () => void;
4
+
5
+ const eventProvider = new EventProvider<undefined, void>();
4
6
  const DIR_CHANGE = "directionChange";
5
7
 
6
8
  /**
@@ -8,7 +10,7 @@ const DIR_CHANGE = "directionChange";
8
10
  * @public
9
11
  * @param listener
10
12
  */
11
- const attachDirectionChange = listener => {
13
+ const attachDirectionChange = (listener: DirectionChangeCallback) => {
12
14
  eventProvider.attachEvent(DIR_CHANGE, listener);
13
15
  };
14
16
 
@@ -17,12 +19,12 @@ const attachDirectionChange = listener => {
17
19
  * @public
18
20
  * @param listener
19
21
  */
20
- const detachDirectionChange = listener => {
22
+ const detachDirectionChange = (listener: DirectionChangeCallback) => {
21
23
  eventProvider.detachEvent(DIR_CHANGE, listener);
22
24
  };
23
25
 
24
26
  const fireDirectionChange = () => {
25
- return eventProvider.fireEvent(DIR_CHANGE);
27
+ return eventProvider.fireEvent(DIR_CHANGE, undefined);
26
28
  };
27
29
 
28
30
  export {
@@ -2,7 +2,7 @@ import { getRTL } from "../config/RTL.js";
2
2
 
3
3
  const GLOBAL_DIR_CSS_VAR = "--_ui5_dir";
4
4
 
5
- const getEffectiveDir = element => {
5
+ const getEffectiveDir = (element: HTMLElement) => {
6
6
  const doc = window.document;
7
7
  const dirValues = ["ltr", "rtl"]; // exclude "auto" and "" from all calculations
8
8
  const locallyAppliedDir = getComputedStyle(element).getPropertyValue(GLOBAL_DIR_CSS_VAR);
@@ -1,18 +1,19 @@
1
1
  import detectNavigatorLanguage from "../util/detectNavigatorLanguage.js";
2
2
  import { getLanguage as getConfigLanguage } from "../config/Language.js";
3
3
  import Locale from "./Locale.js";
4
+ import { DEFAULT_LOCALE } from "../generated/AssetParameters.js";
4
5
 
5
- const cache = new Map();
6
+ const cache = new Map<string, Locale>();
6
7
 
7
- const getLocaleInstance = lang => {
8
+ const getLocaleInstance = (lang: string) => {
8
9
  if (!cache.has(lang)) {
9
10
  cache.set(lang, new Locale(lang));
10
11
  }
11
12
 
12
- return cache.get(lang);
13
+ return cache.get(lang)!;
13
14
  };
14
15
 
15
- const convertToLocaleOrNull = lang => {
16
+ const convertToLocaleOrNull = (lang: string) => {
16
17
  try {
17
18
  if (lang && typeof lang === "string") {
18
19
  return getLocaleInstance(lang);
@@ -20,19 +21,23 @@ const convertToLocaleOrNull = lang => {
20
21
  } catch (e) {
21
22
  // ignore
22
23
  }
24
+
25
+ return new Locale(DEFAULT_LOCALE);
23
26
  };
24
27
 
25
28
  /**
26
29
  * Returns the locale based on the parameter or configured language Configuration#getLanguage
27
30
  * If no language has been configured - a new locale based on browser language is returned
28
31
  */
29
- const getLocale = lang => {
32
+ const getLocale = (lang?: string): Locale => {
30
33
  if (lang) {
31
34
  return convertToLocaleOrNull(lang);
32
35
  }
33
36
 
34
- if (getConfigLanguage()) {
35
- return getLocaleInstance(getConfigLanguage());
37
+ const configLanguage = getConfigLanguage();
38
+
39
+ if (configLanguage) {
40
+ return getLocaleInstance(configLanguage);
36
41
  }
37
42
 
38
43
  return convertToLocaleOrNull(detectNavigatorLanguage());
@@ -0,0 +1,24 @@
1
+ import EventProvider from "../EventProvider.js";
2
+
3
+ type LanguageChangeCallback = (lang: string) => Promise<void | Array<void>>;
4
+
5
+ const eventProvider = new EventProvider<string, Promise<void | Array<void>>>();
6
+ const LANG_CHANGE = "languageChange";
7
+
8
+ const attachLanguageChange = (listener: LanguageChangeCallback) => {
9
+ eventProvider.attachEvent(LANG_CHANGE, listener);
10
+ };
11
+
12
+ const detachLanguageChange = (listener: LanguageChangeCallback) => {
13
+ eventProvider.detachEvent(LANG_CHANGE, listener);
14
+ };
15
+
16
+ const fireLanguageChange = (lang: string) => {
17
+ return eventProvider.fireEventAsync(LANG_CHANGE, lang);
18
+ };
19
+
20
+ export {
21
+ attachLanguageChange,
22
+ detachLanguageChange,
23
+ fireLanguageChange,
24
+ };
@@ -6,7 +6,7 @@ import { DEFAULT_LOCALE } from "../generated/AssetParameters.js";
6
6
  * @param {string} locale Locale string in Java format (underscores) or null
7
7
  * @returns {string} Next fallback Locale or "en" if no fallbacks found.
8
8
  */
9
- const nextFallbackLocale = locale => {
9
+ const nextFallbackLocale = (locale: string) => {
10
10
  if (!locale) {
11
11
  return DEFAULT_LOCALE;
12
12
  }
@@ -16,7 +16,7 @@ const M_ISO639_NEW_TO_OLD = {
16
16
  * @param {string} locale locale to normalize
17
17
  * @returns {string} Normalized locale, "undefined" if the locale can't be normalized or the default locale, if no locale provided.
18
18
  */
19
- const normalizeLocale = locale => {
19
+ const normalizeLocale = (locale: string) => {
20
20
  let m;
21
21
 
22
22
  if (!locale) {
@@ -30,7 +30,7 @@ const normalizeLocale = locale => {
30
30
  const variants = m[4] ? m[4].slice(1) : undefined;
31
31
  const isPrivate = m[6];
32
32
 
33
- language = M_ISO639_NEW_TO_OLD[language] || language;
33
+ language = M_ISO639_NEW_TO_OLD[language as keyof typeof M_ISO639_NEW_TO_OLD] || language;
34
34
 
35
35
  // recognize and convert special SAP supportability locales (overwrites m[]!)
36
36
  if ((isPrivate && (m = SAPSupportabilityLocales.exec(isPrivate))) /* eslint-disable-line */ ||
@@ -49,6 +49,8 @@ const normalizeLocale = locale => {
49
49
 
50
50
  return language + (region ? "_" + region + (variants ? "_" + variants.replace("-", "_") : "") : ""); /* eslint-disable-line */
51
51
  }
52
+
53
+ return DEFAULT_LOCALE;
52
54
  };
53
55
 
54
56
  export default normalizeLocale;