@ui5/webcomponents-base 0.0.0-deac3098a → 0.0.0-e0658a650

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 (627) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/README.md +28 -6
  3. package/bundle.esm.js +12 -10
  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 +11 -0
  26. package/dist/Device.js +51 -78
  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/MediaRange.d.ts +36 -0
  47. package/dist/MediaRange.js +38 -51
  48. package/dist/MediaRange.js.map +1 -0
  49. package/dist/PropertiesFileFormat.d.ts +8 -0
  50. package/dist/PropertiesFileFormat.js +72 -82
  51. package/dist/PropertiesFileFormat.js.map +1 -0
  52. package/dist/Render.d.ts +47 -0
  53. package/dist/Render.js +81 -113
  54. package/dist/Render.js.map +1 -0
  55. package/dist/RenderQueue.d.ts +19 -0
  56. package/dist/RenderQueue.js +52 -62
  57. package/dist/RenderQueue.js.map +1 -0
  58. package/dist/Runtimes.d.ts +27 -0
  59. package/dist/Runtimes.js +49 -70
  60. package/dist/Runtimes.js.map +1 -0
  61. package/dist/StaticArea.d.ts +0 -0
  62. package/dist/StaticArea.js +4 -1
  63. package/dist/StaticArea.js.map +1 -0
  64. package/dist/StaticAreaItem.d.ts +36 -0
  65. package/dist/StaticAreaItem.js +84 -86
  66. package/dist/StaticAreaItem.js.map +1 -0
  67. package/dist/SystemCSSVars.d.ts +2 -0
  68. package/dist/SystemCSSVars.js +4 -5
  69. package/dist/SystemCSSVars.js.map +1 -0
  70. package/dist/Theming.d.ts +3 -0
  71. package/dist/Theming.js +1 -1
  72. package/dist/Theming.js.map +1 -0
  73. package/dist/UI5Element.d.ts +371 -0
  74. package/dist/UI5Element.js +905 -993
  75. package/dist/UI5Element.js.map +1 -0
  76. package/dist/UI5ElementMetadata.d.ts +147 -0
  77. package/dist/UI5ElementMetadata.js +260 -313
  78. package/dist/UI5ElementMetadata.js.map +1 -0
  79. package/dist/animations/AnimationQueue.d.ts +8 -0
  80. package/dist/animations/AnimationQueue.js +31 -38
  81. package/dist/animations/AnimationQueue.js.map +1 -0
  82. package/dist/animations/animate.d.ts +14 -0
  83. package/dist/animations/animate.js +46 -51
  84. package/dist/animations/animate.js.map +1 -0
  85. package/dist/animations/scroll.d.ts +5 -0
  86. package/dist/animations/scroll.js +18 -27
  87. package/dist/animations/scroll.js.map +1 -0
  88. package/dist/animations/slideDown.d.ts +5 -0
  89. package/dist/animations/slideDown.js +53 -78
  90. package/dist/animations/slideDown.js.map +1 -0
  91. package/dist/animations/slideUp.d.ts +5 -0
  92. package/dist/animations/slideUp.js +49 -70
  93. package/dist/animations/slideUp.js.map +1 -0
  94. package/dist/api.json +1 -0
  95. package/dist/asset-registries/Icons.d.ts +30 -0
  96. package/dist/asset-registries/Icons.js +85 -116
  97. package/dist/asset-registries/Icons.js.map +1 -0
  98. package/dist/asset-registries/Illustrations.d.ts +16 -0
  99. package/dist/asset-registries/Illustrations.js +40 -24
  100. package/dist/asset-registries/Illustrations.js.map +1 -0
  101. package/dist/asset-registries/LocaleData.d.ts +7 -0
  102. package/dist/asset-registries/LocaleData.js +104 -132
  103. package/dist/asset-registries/LocaleData.js.map +1 -0
  104. package/dist/asset-registries/Themes.d.ts +10 -0
  105. package/dist/asset-registries/Themes.js +38 -66
  106. package/dist/asset-registries/Themes.js.map +1 -0
  107. package/dist/asset-registries/i18n.d.ts +23 -0
  108. package/dist/asset-registries/i18n.js +55 -81
  109. package/dist/asset-registries/i18n.js.map +1 -0
  110. package/dist/assets/bundle.esm.72c1d211.js +56 -0
  111. package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
  112. package/dist/assets-meta/IconCollectionsAlias.js +4 -4
  113. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  114. package/dist/config/AnimationMode.d.ts +14 -0
  115. package/dist/config/AnimationMode.js +21 -18
  116. package/dist/config/AnimationMode.js.map +1 -0
  117. package/dist/config/CalendarType.d.ts +8 -0
  118. package/dist/config/CalendarType.js +13 -12
  119. package/dist/config/CalendarType.js.map +1 -0
  120. package/dist/config/FormatSettings.d.ts +11 -0
  121. package/dist/config/FormatSettings.js +10 -8
  122. package/dist/config/FormatSettings.js.map +1 -0
  123. package/dist/config/Icons.d.ts +30 -0
  124. package/dist/config/Icons.js +28 -32
  125. package/dist/config/Icons.js.map +1 -0
  126. package/dist/config/Language.d.ts +31 -0
  127. package/dist/config/Language.js +31 -43
  128. package/dist/config/Language.js.map +1 -0
  129. package/dist/config/NoConflict.d.ts +20 -0
  130. package/dist/config/NoConflict.js +40 -41
  131. package/dist/config/NoConflict.js.map +1 -0
  132. package/dist/config/RTL.d.ts +7 -0
  133. package/dist/config/RTL.js +23 -20
  134. package/dist/config/RTL.js.map +1 -0
  135. package/dist/config/Theme.d.ts +28 -0
  136. package/dist/config/Theme.js +34 -36
  137. package/dist/config/Theme.js.map +1 -0
  138. package/dist/config/ThemeRoots.d.ts +4 -0
  139. package/dist/config/ThemeRoots.js +28 -0
  140. package/dist/config/ThemeRoots.js.map +1 -0
  141. package/dist/css/BusyIndicator.css +4 -0
  142. package/dist/css/FontFace.css +9 -18
  143. package/dist/delegate/ItemNavigation.d.ts +113 -0
  144. package/dist/delegate/ItemNavigation.js +277 -312
  145. package/dist/delegate/ItemNavigation.js.map +1 -0
  146. package/dist/delegate/ResizeHandler.d.ts +24 -0
  147. package/dist/delegate/ResizeHandler.js +68 -91
  148. package/dist/delegate/ResizeHandler.js.map +1 -0
  149. package/dist/delegate/ScrollEnablement.d.ts +43 -0
  150. package/dist/delegate/ScrollEnablement.js +157 -180
  151. package/dist/delegate/ScrollEnablement.js.map +1 -0
  152. package/dist/features/F6Navigation.d.ts +16 -0
  153. package/dist/features/F6Navigation.js +106 -102
  154. package/dist/features/F6Navigation.js.map +1 -0
  155. package/dist/features/OpenUI5Element.d.ts +9 -0
  156. package/dist/features/OpenUI5Element.js +5 -0
  157. package/dist/features/OpenUI5Element.js.map +1 -0
  158. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  159. package/dist/features/OpenUI5Enablement.js +89 -112
  160. package/dist/features/OpenUI5Enablement.js.map +1 -0
  161. package/dist/features/OpenUI5Support.d.ts +23 -0
  162. package/dist/features/OpenUI5Support.js +91 -119
  163. package/dist/features/OpenUI5Support.js.map +1 -0
  164. package/dist/generated/VersionInfo.js +3 -3
  165. package/dist/generated/css/BusyIndicator.css.js +1 -1
  166. package/dist/generated/css/FontFace.css.js +1 -1
  167. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  168. package/dist/getSharedResource.d.ts +11 -0
  169. package/dist/getSharedResource.js +12 -16
  170. package/dist/getSharedResource.js.map +1 -0
  171. package/dist/i18nBundle.d.ts +43 -0
  172. package/dist/i18nBundle.js +56 -64
  173. package/dist/i18nBundle.js.map +1 -0
  174. package/dist/locale/Locale.d.ts +22 -0
  175. package/dist/locale/Locale.js +75 -87
  176. package/dist/locale/Locale.js.map +1 -0
  177. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  178. package/dist/locale/RTLAwareRegistry.js +6 -11
  179. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  180. package/dist/locale/applyDirection.d.ts +10 -0
  181. package/dist/locale/applyDirection.js +7 -7
  182. package/dist/locale/applyDirection.js.map +1 -0
  183. package/dist/locale/directionChange.d.ts +15 -0
  184. package/dist/locale/directionChange.js +7 -15
  185. package/dist/locale/directionChange.js.map +1 -0
  186. package/dist/locale/getEffectiveDir.d.ts +2 -0
  187. package/dist/locale/getEffectiveDir.js +20 -24
  188. package/dist/locale/getEffectiveDir.js.map +1 -0
  189. package/dist/locale/getLocale.d.ts +7 -0
  190. package/dist/locale/getLocale.js +26 -29
  191. package/dist/locale/getLocale.js.map +1 -0
  192. package/dist/locale/languageChange.d.ts +5 -0
  193. package/dist/locale/languageChange.js +8 -16
  194. package/dist/locale/languageChange.js.map +1 -0
  195. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  196. package/dist/locale/nextFallbackLocale.js +15 -19
  197. package/dist/locale/nextFallbackLocale.js.map +1 -0
  198. package/dist/locale/normalizeLocale.d.ts +7 -0
  199. package/dist/locale/normalizeLocale.js +34 -41
  200. package/dist/locale/normalizeLocale.js.map +1 -0
  201. package/dist/renderer/LitRenderer.d.ts +14 -0
  202. package/dist/renderer/LitRenderer.js +28 -39
  203. package/dist/renderer/LitRenderer.js.map +1 -0
  204. package/dist/renderer/executeTemplate.d.ts +13 -0
  205. package/dist/renderer/executeTemplate.js +12 -16
  206. package/dist/renderer/executeTemplate.js.map +1 -0
  207. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  208. package/dist/theming/CustomStyle.d.ts +6 -0
  209. package/dist/theming/CustomStyle.js +29 -43
  210. package/dist/theming/CustomStyle.js.map +1 -0
  211. package/dist/theming/ThemeLoaded.d.ts +5 -0
  212. package/dist/theming/ThemeLoaded.js +8 -16
  213. package/dist/theming/ThemeLoaded.js.map +1 -0
  214. package/dist/theming/applyTheme.d.ts +2 -0
  215. package/dist/theming/applyTheme.js +60 -64
  216. package/dist/theming/applyTheme.js.map +1 -0
  217. package/dist/theming/getConstructableStyle.d.ts +9 -0
  218. package/dist/theming/getConstructableStyle.js +12 -17
  219. package/dist/theming/getConstructableStyle.js.map +1 -0
  220. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  221. package/dist/theming/getEffectiveLinksHrefs.js +11 -22
  222. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  223. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  224. package/dist/theming/getEffectiveStyle.js +24 -31
  225. package/dist/theming/getEffectiveStyle.js.map +1 -0
  226. package/dist/theming/getStylesString.d.ts +3 -0
  227. package/dist/theming/getStylesString.js +8 -13
  228. package/dist/theming/getStylesString.js.map +1 -0
  229. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  230. package/dist/theming/getThemeDesignerTheme.js +72 -79
  231. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  232. package/dist/theming/preloadLinks.d.ts +3 -0
  233. package/dist/theming/preloadLinks.js +13 -17
  234. package/dist/theming/preloadLinks.js.map +1 -0
  235. package/dist/thirdparty/_merge.d.ts +2 -0
  236. package/dist/thirdparty/_merge.js +7 -4
  237. package/dist/thirdparty/_merge.js.map +1 -0
  238. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  239. package/dist/thirdparty/isPlainObject.js +11 -10
  240. package/dist/thirdparty/isPlainObject.js.map +1 -0
  241. package/dist/thirdparty/merge.d.ts +2 -0
  242. package/dist/thirdparty/merge.js +4 -8
  243. package/dist/thirdparty/merge.js.map +1 -0
  244. package/dist/types/AnimationMode.d.ts +32 -0
  245. package/dist/types/AnimationMode.js +33 -6
  246. package/dist/types/AnimationMode.js.map +1 -0
  247. package/dist/types/CSSColor.d.ts +16 -0
  248. package/dist/types/CSSColor.js +15 -5
  249. package/dist/types/CSSColor.js.map +1 -0
  250. package/dist/types/CalendarType.d.ts +37 -0
  251. package/dist/types/CalendarType.js +35 -18
  252. package/dist/types/CalendarType.js.map +1 -0
  253. package/dist/types/DOMReference.d.ts +17 -0
  254. package/dist/types/DOMReference.js +25 -0
  255. package/dist/types/DOMReference.js.map +1 -0
  256. package/dist/types/DataType.d.ts +25 -0
  257. package/dist/types/DataType.js +32 -25
  258. package/dist/types/DataType.js.map +1 -0
  259. package/dist/types/Float.d.ts +18 -0
  260. package/dist/types/Float.js +18 -10
  261. package/dist/types/Float.js.map +1 -0
  262. package/dist/types/Integer.d.ts +18 -0
  263. package/dist/types/Integer.js +18 -9
  264. package/dist/types/Integer.js.map +1 -0
  265. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  266. package/dist/types/InvisibleMessageMode.js +20 -23
  267. package/dist/types/InvisibleMessageMode.js.map +1 -0
  268. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  269. package/dist/types/ItemNavigationBehavior.js +22 -12
  270. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  271. package/dist/types/NavigationMode.d.ts +32 -0
  272. package/dist/types/NavigationMode.js +33 -6
  273. package/dist/types/NavigationMode.js.map +1 -0
  274. package/dist/types/ValueState.d.ts +42 -0
  275. package/dist/types/ValueState.js +41 -19
  276. package/dist/types/ValueState.js.map +1 -0
  277. package/dist/types.d.ts +13 -0
  278. package/dist/types.js +2 -0
  279. package/dist/types.js.map +1 -0
  280. package/dist/updateShadowRoot.d.ts +8 -0
  281. package/dist/updateShadowRoot.js +21 -17
  282. package/dist/updateShadowRoot.js.map +1 -0
  283. package/dist/util/AriaLabelHelper.d.ts +6 -0
  284. package/dist/util/AriaLabelHelper.js +37 -34
  285. package/dist/util/AriaLabelHelper.js.map +1 -0
  286. package/dist/util/Caret.d.ts +7 -0
  287. package/dist/util/Caret.js +16 -38
  288. package/dist/util/Caret.js.map +1 -0
  289. package/dist/util/ColorConversion.d.ts +33 -0
  290. package/dist/util/ColorConversion.js +315 -348
  291. package/dist/util/ColorConversion.js.map +1 -0
  292. package/dist/util/FetchHelper.d.ts +3 -0
  293. package/dist/util/FetchHelper.js +19 -25
  294. package/dist/util/FetchHelper.js.map +1 -0
  295. package/dist/util/FocusableElements.d.ts +3 -0
  296. package/dist/util/FocusableElements.js +54 -71
  297. package/dist/util/FocusableElements.js.map +1 -0
  298. package/dist/util/HTMLSanitizer.d.ts +3 -0
  299. package/dist/util/HTMLSanitizer.js +4 -5
  300. package/dist/util/HTMLSanitizer.js.map +1 -0
  301. package/dist/util/InvisibleMessage.d.ts +10 -0
  302. package/dist/util/InvisibleMessage.js +41 -45
  303. package/dist/util/InvisibleMessage.js.map +1 -0
  304. package/dist/util/PopupUtils.d.ts +7 -0
  305. package/dist/util/PopupUtils.js +57 -76
  306. package/dist/util/PopupUtils.js.map +1 -0
  307. package/dist/util/SlotsHelper.d.ts +9 -0
  308. package/dist/util/SlotsHelper.js +22 -35
  309. package/dist/util/SlotsHelper.js.map +1 -0
  310. package/dist/util/StringHelper.d.ts +3 -0
  311. package/dist/util/StringHelper.js +17 -20
  312. package/dist/util/StringHelper.js.map +1 -0
  313. package/dist/util/TabbableElements.d.ts +3 -0
  314. package/dist/util/TabbableElements.js +39 -47
  315. package/dist/util/TabbableElements.js.map +1 -0
  316. package/dist/util/arraysAreEqual.d.ts +2 -0
  317. package/dist/util/arraysAreEqual.js +10 -12
  318. package/dist/util/arraysAreEqual.js.map +1 -0
  319. package/dist/util/clamp.d.ts +9 -0
  320. package/dist/util/clamp.js +2 -2
  321. package/dist/util/clamp.js.map +1 -0
  322. package/dist/util/createLinkInHead.d.ts +7 -0
  323. package/dist/util/createLinkInHead.js +14 -12
  324. package/dist/util/createLinkInHead.js.map +1 -0
  325. package/dist/util/createStyleInHead.d.ts +8 -0
  326. package/dist/util/createStyleInHead.js +10 -10
  327. package/dist/util/createStyleInHead.js.map +1 -0
  328. package/dist/util/debounce.d.ts +2 -0
  329. package/dist/util/debounce.js +6 -8
  330. package/dist/util/debounce.js.map +1 -0
  331. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  332. package/dist/util/detectNavigatorLanguage.js +7 -10
  333. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  334. package/dist/util/escapeRegex.d.ts +8 -0
  335. package/dist/util/escapeRegex.js +8 -7
  336. package/dist/util/escapeRegex.js.map +1 -0
  337. package/dist/util/formatMessage.d.ts +2 -0
  338. package/dist/util/formatMessage.js +15 -19
  339. package/dist/util/formatMessage.js.map +1 -0
  340. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  341. package/dist/util/generateHighlightedMarkup.js +26 -27
  342. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  343. package/dist/util/getActiveElement.d.ts +2 -0
  344. package/dist/util/getActiveElement.js +6 -8
  345. package/dist/util/getActiveElement.js.map +1 -0
  346. package/dist/util/getClassCopy.d.ts +398 -0
  347. package/dist/util/getClassCopy.js +7 -7
  348. package/dist/util/getClassCopy.js.map +1 -0
  349. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  350. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  351. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  352. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  353. package/dist/util/getEffectiveContentDensity.js +2 -3
  354. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  355. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  356. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  357. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  358. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  359. package/dist/util/getFastNavigationGroups.js +51 -0
  360. package/dist/util/getFastNavigationGroups.js.map +1 -0
  361. package/dist/util/getFileExtension.d.ts +12 -0
  362. package/dist/util/getFileExtension.js +9 -11
  363. package/dist/util/getFileExtension.js.map +1 -0
  364. package/dist/util/getNormalizedTarget.d.ts +7 -0
  365. package/dist/util/getNormalizedTarget.js +7 -9
  366. package/dist/util/getNormalizedTarget.js.map +1 -0
  367. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  368. package/dist/util/getSingletonElementInstance.js +7 -10
  369. package/dist/util/getSingletonElementInstance.js.map +1 -0
  370. package/dist/util/isDefaultSlotProvided.d.ts +2 -0
  371. package/dist/util/isDefaultSlotProvided.js +10 -0
  372. package/dist/util/isDefaultSlotProvided.js.map +1 -0
  373. package/dist/util/isElementClickable.d.ts +2 -0
  374. package/dist/util/isElementClickable.js +16 -0
  375. package/dist/util/isElementClickable.js.map +1 -0
  376. package/dist/util/isElementHidden.d.ts +2 -0
  377. package/dist/util/isElementHidden.js +8 -0
  378. package/dist/util/isElementHidden.js.map +1 -0
  379. package/dist/util/isElementInView.d.ts +6 -0
  380. package/dist/util/isElementInView.js +6 -9
  381. package/dist/util/isElementInView.js.map +1 -0
  382. package/dist/util/isElementTabbable.d.ts +2 -0
  383. package/dist/util/isElementTabbable.js +22 -0
  384. package/dist/util/isElementTabbable.js.map +1 -0
  385. package/dist/util/isValidPropertyName.d.ts +8 -0
  386. package/dist/util/isValidPropertyName.js +16 -17
  387. package/dist/util/isValidPropertyName.js.map +1 -0
  388. package/dist/util/whenDOMReady.d.ts +2 -0
  389. package/dist/util/whenDOMReady.js +11 -10
  390. package/dist/util/whenDOMReady.js.map +1 -0
  391. package/dist/validateThemeRoot.d.ts +2 -0
  392. package/dist/validateThemeRoot.js +47 -0
  393. package/dist/validateThemeRoot.js.map +1 -0
  394. package/global.d.ts +44 -0
  395. package/lib/generate-asset-parameters/index.js +8 -4
  396. package/lib/generate-styles/index.js +17 -9
  397. package/lib/generate-version-info/index.js +18 -13
  398. package/package-scripts.js +27 -22
  399. package/package.json +9 -7
  400. package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
  401. package/src/Boot.ts +61 -0
  402. package/src/{CSP.js → CSP.ts} +14 -7
  403. package/src/{CustomElementsRegistry.js → CustomElementsRegistry.ts} +20 -17
  404. package/src/{CustomElementsScope.js → CustomElementsScope.ts} +8 -5
  405. package/src/{CustomElementsScopeUtils.js → CustomElementsScopeUtils.ts} +14 -7
  406. package/src/DOMObserver.ts +28 -0
  407. package/src/{Device.js → Device.ts} +8 -3
  408. package/src/{EventProvider.js → EventProvider.ts} +9 -7
  409. package/src/FeaturesRegistry.ts +14 -0
  410. package/src/{FontFace.js → FontFace.ts} +3 -2
  411. package/src/{InitialConfiguration.js → InitialConfiguration.ts} +53 -12
  412. package/src/Keys.ts +295 -0
  413. package/src/ManagedStyles.ts +92 -0
  414. package/src/{MediaRange.js → MediaRange.ts} +14 -14
  415. package/src/{PropertiesFileFormat.js → PropertiesFileFormat.ts} +8 -8
  416. package/src/{Render.js → Render.ts} +25 -20
  417. package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
  418. package/src/{Runtimes.js → Runtimes.ts} +15 -8
  419. package/src/{StaticArea.js → StaticArea.ts} +0 -0
  420. package/src/{StaticAreaItem.js → StaticAreaItem.ts} +30 -18
  421. package/src/{SystemCSSVars.js → SystemCSSVars.ts} +0 -0
  422. package/src/{Theming.js → Theming.ts} +0 -0
  423. package/src/{UI5Element.js → UI5Element.ts} +231 -139
  424. package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +80 -43
  425. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  426. package/src/animations/animate.ts +64 -0
  427. package/src/animations/scroll.ts +21 -0
  428. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  429. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  430. package/src/asset-registries/{Icons.js → Icons.ts} +63 -37
  431. package/src/asset-registries/Illustrations.ts +73 -0
  432. package/src/asset-registries/{LocaleData.js → LocaleData.ts} +36 -28
  433. package/src/asset-registries/Themes.ts +67 -0
  434. package/src/asset-registries/{i18n.js → i18n.ts} +21 -24
  435. package/src/assets-meta/{IconCollectionsAlias.js → IconCollectionsAlias.ts} +0 -0
  436. package/src/config/AnimationMode.ts +33 -0
  437. package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
  438. package/src/config/FormatSettings.ts +21 -0
  439. package/src/config/{Icons.js → Icons.ts} +19 -12
  440. package/src/config/{Language.js → Language.ts} +22 -18
  441. package/src/config/NoConflict.ts +67 -0
  442. package/src/config/{RTL.js → RTL.ts} +14 -4
  443. package/src/config/Theme.ts +64 -0
  444. package/src/config/ThemeRoots.ts +41 -0
  445. package/src/css/BusyIndicator.css +4 -0
  446. package/src/css/FontFace.css +9 -18
  447. package/src/delegate/{ItemNavigation.js → ItemNavigation.ts} +63 -21
  448. package/src/delegate/{ResizeHandler.js → ResizeHandler.ts} +25 -36
  449. package/src/delegate/ScrollEnablement.ts +215 -0
  450. package/src/features/F6Navigation.ts +141 -0
  451. package/src/features/OpenUI5Element.ts +11 -0
  452. package/src/features/OpenUI5Enablement.ts +117 -0
  453. package/src/features/OpenUI5Support.ts +148 -0
  454. package/src/{getSharedResource.js → getSharedResource.ts} +3 -3
  455. package/src/{i18nBundle.js → i18nBundle.ts} +44 -22
  456. package/src/locale/{Locale.js → Locale.ts} +15 -5
  457. package/src/locale/RTLAwareRegistry.ts +16 -0
  458. package/src/locale/{applyDirection.js → applyDirection.ts} +4 -3
  459. package/src/locale/{directionChange.js → directionChange.ts} +6 -4
  460. package/src/locale/{getEffectiveDir.js → getEffectiveDir.ts} +1 -1
  461. package/src/locale/{getLocale.js → getLocale.ts} +12 -7
  462. package/src/locale/languageChange.ts +24 -0
  463. package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
  464. package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +4 -2
  465. package/src/renderer/LitRenderer.ts +60 -0
  466. package/src/renderer/{executeTemplate.js → executeTemplate.ts} +11 -5
  467. package/src/theming/{CustomStyle.js → CustomStyle.ts} +11 -9
  468. package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
  469. package/src/theming/{applyTheme.js → applyTheme.ts} +22 -11
  470. package/src/theming/{getConstructableStyle.js → getConstructableStyle.ts} +5 -4
  471. package/src/theming/getEffectiveLinksHrefs.ts +24 -0
  472. package/src/theming/{getEffectiveStyle.js → getEffectiveStyle.ts} +9 -7
  473. package/src/theming/getStylesString.ts +13 -0
  474. package/src/theming/{getThemeDesignerTheme.js → getThemeDesignerTheme.ts} +22 -8
  475. package/src/theming/{preloadLinks.js → preloadLinks.ts} +3 -2
  476. package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
  477. package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
  478. package/src/thirdparty/merge.ts +5 -0
  479. package/src/types/AnimationMode.ts +33 -0
  480. package/src/types/{CSSColor.js → CSSColor.ts} +12 -1
  481. package/src/types/CalendarType.ts +38 -0
  482. package/src/types/DOMReference.ts +28 -0
  483. package/src/types/DataType.ts +51 -0
  484. package/src/types/Float.ts +25 -0
  485. package/src/types/Integer.ts +25 -0
  486. package/src/types/InvisibleMessageMode.ts +27 -0
  487. package/src/types/ItemNavigationBehavior.ts +26 -0
  488. package/src/types/NavigationMode.ts +33 -0
  489. package/src/types/ValueState.ts +47 -0
  490. package/src/types.ts +22 -0
  491. package/src/updateShadowRoot.ts +37 -0
  492. package/src/util/AriaLabelHelper.ts +63 -0
  493. package/src/util/Caret.ts +28 -0
  494. package/src/util/ColorConversion.ts +394 -0
  495. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  496. package/src/util/FocusableElements.ts +80 -0
  497. package/src/util/{HTMLSanitizer.js → HTMLSanitizer.ts} +2 -0
  498. package/src/util/{InvisibleMessage.js → InvisibleMessage.ts} +15 -6
  499. package/src/util/PopupUtils.ts +114 -0
  500. package/src/util/{SlotsHelper.js → SlotsHelper.ts} +9 -13
  501. package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
  502. package/src/util/TabbableElements.ts +56 -0
  503. package/src/util/{arraysAreEqual.js → arraysAreEqual.ts} +1 -1
  504. package/src/util/{clamp.js → clamp.ts} +1 -1
  505. package/src/util/{createLinkInHead.js → createLinkInHead.ts} +10 -4
  506. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  507. package/src/util/{debounce.js → debounce.ts} +5 -4
  508. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
  509. package/src/util/escapeRegex.ts +11 -0
  510. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  511. package/src/util/{generateHighlightedMarkup.js → generateHighlightedMarkup.ts} +7 -6
  512. package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
  513. package/src/util/{getClassCopy.js → getClassCopy.ts} +3 -1
  514. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  515. package/src/util/getEffectiveContentDensity.ts +5 -0
  516. package/src/util/getEffectiveScrollbarStyle.ts +5 -0
  517. package/src/util/getFastNavigationGroups.ts +63 -0
  518. package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
  519. package/src/util/{getNormalizedTarget.js → getNormalizedTarget.ts} +2 -2
  520. package/src/util/{getSingletonElementInstance.js → getSingletonElementInstance.ts} +1 -1
  521. package/src/util/isDefaultSlotProvided.ts +11 -0
  522. package/src/util/isElementClickable.ts +19 -0
  523. package/src/util/isElementHidden.ts +9 -0
  524. package/src/util/{isElementInView.js → isElementInView.ts} +1 -1
  525. package/src/util/isElementTabbable.ts +28 -0
  526. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +1 -1
  527. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  528. package/src/validateThemeRoot.ts +58 -0
  529. package/tsconfig.json +13 -0
  530. package/config/.eslintrc.js +0 -3
  531. package/config/rollup.config.js +0 -1
  532. package/dist/RenderScheduler.js +0 -44
  533. package/dist/animations/config.js +0 -5
  534. package/dist/isLegacyBrowser.js +0 -3
  535. package/dist/resources/bundle.esm.js +0 -32
  536. package/dist/resources/bundle.esm.js.map +0 -1
  537. package/dist/test-resources/assets/Themes.js +0 -17
  538. package/dist/test-resources/elements/Child.js +0 -35
  539. package/dist/test-resources/elements/Generic.js +0 -84
  540. package/dist/test-resources/elements/GenericExt.js +0 -26
  541. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  542. package/dist/test-resources/elements/Parent.js +0 -41
  543. package/dist/test-resources/elements/WithStaticArea.js +0 -77
  544. package/dist/test-resources/pages/AllTestElements.html +0 -42
  545. package/dist/test-resources/pages/Configuration.html +0 -18
  546. package/dist/test-resources/pages/ConfigurationScript.html +0 -34
  547. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  548. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  549. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  550. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  551. package/dist/test-resources/pages/i18n.html +0 -33
  552. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
  553. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
  554. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -93
  555. package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
  556. package/dist/test-resources/specs/EventProvider.spec.js +0 -63
  557. package/dist/test-resources/specs/StaticArea.spec.js +0 -78
  558. package/dist/test-resources/specs/Theming.spec.js +0 -33
  559. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
  560. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
  561. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
  562. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
  563. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
  564. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
  565. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
  566. package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
  567. package/dist/types/CSSSize.js +0 -9
  568. package/dist/types/PopupState.js +0 -37
  569. package/dist/util/findNodeOwner.js +0 -35
  570. package/dist/util/isDescendantOf.js +0 -15
  571. package/dist/util/isNodeClickable.js +0 -19
  572. package/dist/util/isNodeHidden.js +0 -9
  573. package/dist/util/isNodeTabbable.js +0 -28
  574. package/dist/util/setToArray.js +0 -10
  575. package/hash.txt +0 -1
  576. package/src/Boot.js +0 -59
  577. package/src/DOMObserver.js +0 -65
  578. package/src/FeaturesRegistry.js +0 -14
  579. package/src/Keys.js +0 -295
  580. package/src/ManagedStyles.js +0 -83
  581. package/src/RenderScheduler.js +0 -44
  582. package/src/animations/animate.js +0 -53
  583. package/src/animations/config.js +0 -5
  584. package/src/animations/scroll.js +0 -28
  585. package/src/asset-registries/Illustrations.js +0 -30
  586. package/src/asset-registries/Themes.js +0 -78
  587. package/src/config/AnimationMode.js +0 -23
  588. package/src/config/FormatSettings.js +0 -13
  589. package/src/config/NoConflict.js +0 -51
  590. package/src/config/Theme.js +0 -53
  591. package/src/delegate/ScrollEnablement.js +0 -188
  592. package/src/features/F6Navigation.js +0 -108
  593. package/src/features/OpenUI5Enablement.js +0 -119
  594. package/src/features/OpenUI5Support.js +0 -125
  595. package/src/isLegacyBrowser.js +0 -3
  596. package/src/locale/RTLAwareRegistry.js +0 -14
  597. package/src/locale/languageChange.js +0 -22
  598. package/src/renderer/LitRenderer.js +0 -52
  599. package/src/theming/getEffectiveLinksHrefs.js +0 -27
  600. package/src/theming/getStylesString.js +0 -15
  601. package/src/thirdparty/merge.js +0 -10
  602. package/src/types/AnimationMode.js +0 -7
  603. package/src/types/CSSSize.js +0 -9
  604. package/src/types/CalendarType.js +0 -22
  605. package/src/types/DataType.js +0 -37
  606. package/src/types/Float.js +0 -14
  607. package/src/types/Integer.js +0 -13
  608. package/src/types/InvisibleMessageMode.js +0 -30
  609. package/src/types/ItemNavigationBehavior.js +0 -16
  610. package/src/types/NavigationMode.js +0 -7
  611. package/src/types/PopupState.js +0 -37
  612. package/src/types/ValueState.js +0 -22
  613. package/src/updateShadowRoot.js +0 -30
  614. package/src/util/AriaLabelHelper.js +0 -41
  615. package/src/util/Caret.js +0 -45
  616. package/src/util/ColorConversion.js +0 -370
  617. package/src/util/FocusableElements.js +0 -79
  618. package/src/util/PopupUtils.js +0 -93
  619. package/src/util/TabbableElements.js +0 -51
  620. package/src/util/escapeRegex.js +0 -10
  621. package/src/util/findNodeOwner.js +0 -35
  622. package/src/util/getEffectiveContentDensity.js +0 -5
  623. package/src/util/isDescendantOf.js +0 -15
  624. package/src/util/isNodeClickable.js +0 -19
  625. package/src/util/isNodeHidden.js +0 -9
  626. package/src/util/isNodeTabbable.js +0 -28
  627. package/src/util/setToArray.js +0 -10
@@ -1,18 +1,24 @@
1
1
  import { getTheme, isThemeFamily } from "./Theme.js";
2
2
 
3
- const IconCollectionConfiguration = new Map();
3
+ const IconCollectionConfiguration = new Map<string, string>();
4
+
5
+ enum IconCollection {
6
+ v4 = "SAP-icons",
7
+ v5 = "SAP-icons-v5",
8
+ }
4
9
 
5
10
  /**
6
- * Sets the default icon collection (v4 or v5) per theme,
11
+ * Sets the default icon collection (SAP-icons font v4 or SAP-icons font v5) per theme,
7
12
  * which will be applied in case icon collection is not specified.
8
13
  *
9
- * Note: by default SAP-icons-v5 is used in SAP Horizon and SAP-icons-v4 for all the rest.
10
- * @param {String} theme
11
- * @param {String} collectionName
14
+ * Note: by default SAP-icons-v5 is used in all SAP Horizon variants and SAP-icons-v4 for all the rest.
15
+ * @public
16
+ * @param {string} theme
17
+ * @param {IconCollection} collectionName
12
18
  */
13
- const setDefaultIconCollection = (theme, collectionName) => {
19
+ const setDefaultIconCollection = (theme: string, collectionName: "horizon" | IconCollection) => {
14
20
  if (collectionName === "horizon") {
15
- collectionName = "SAP-icons-v5";
21
+ collectionName = IconCollection.v5;
16
22
  }
17
23
 
18
24
  IconCollectionConfiguration.set(theme, collectionName);
@@ -22,17 +28,18 @@ const setDefaultIconCollection = (theme, collectionName) => {
22
28
  * Returns the default icon collection (v4 or v5) for given theme,
23
29
  * that is configured.
24
30
  *
25
- * @param {String} theme
26
- * @returns {String}
31
+ * @param {string} theme
32
+ * @public
33
+ * @returns {string | undefined}
27
34
  */
28
- const getDefaultIconCollection = theme => {
35
+ const getDefaultIconCollection = (theme: string): string | undefined => {
29
36
  return IconCollectionConfiguration.get(theme);
30
37
  };
31
38
 
32
39
  /**
33
40
  * Returns the effective icon collection that will be applied for icon web components
34
41
  * whenever namespace is not specified.
35
- * @returns {String}
42
+ * @returns {string}
36
43
  */
37
44
  const getEffectiveDefaultIconCollection = () => {
38
45
  const currentTheme = getTheme();
@@ -42,7 +49,7 @@ const getEffectiveDefaultIconCollection = () => {
42
49
  return currentThemeConfiguration;
43
50
  }
44
51
 
45
- return isThemeFamily("sap_horizon") ? "SAP-icons-v5" : "SAP-icons";
52
+ return isThemeFamily("sap_horizon") ? IconCollection.v5 : IconCollection.v4;
46
53
  };
47
54
 
48
55
  export {
@@ -5,35 +5,37 @@ import {
5
5
  import { fireLanguageChange } from "../locale/languageChange.js";
6
6
  import { reRenderAllUI5Elements } from "../Render.js";
7
7
 
8
- let language;
9
- let fetchDefaultLanguage;
8
+ let curLanguage: string | undefined;
9
+ let fetchDefaultLanguage: boolean;
10
10
 
11
11
  /**
12
- * Returns the currently configured language, or the browser language as a fallback
13
- * @returns {String}
12
+ * Returns the currently configured language, or the browser language as a fallback.
13
+ * @public
14
+ * @returns {string}
14
15
  */
15
- const getLanguage = () => {
16
- if (language === undefined) {
17
- language = getConfiguredLanguage();
16
+ const getLanguage = (): string | undefined => {
17
+ if (curLanguage === undefined) {
18
+ curLanguage = getConfiguredLanguage();
18
19
  }
19
- return language;
20
+ return curLanguage;
20
21
  };
21
22
 
22
23
  /**
23
24
  * Changes the current language, re-fetches all message bundles, updates all language-aware components
24
- * and returns a promise that resolves when all rendering is done
25
+ * and returns a promise that resolves when all rendering is done.
25
26
  *
26
- * @param newLanguage
27
+ * @param {string} language
28
+ * @public
27
29
  * @returns {Promise<void>}
28
30
  */
29
- const setLanguage = async newLanguage => {
30
- if (language === newLanguage) {
31
+ const setLanguage = async (language: string): Promise<void> => {
32
+ if (curLanguage === language) {
31
33
  return;
32
34
  }
33
35
 
34
- language = newLanguage;
36
+ curLanguage = language;
35
37
 
36
- await fireLanguageChange(newLanguage);
38
+ await fireLanguageChange(language);
37
39
  await reRenderAllUI5Elements({ languageAware: true });
38
40
  };
39
41
 
@@ -42,17 +44,19 @@ const setLanguage = async newLanguage => {
42
44
  * fetched over the network instead of using the inlined one.
43
45
  * <b>Note:</b> By default the language will not be fetched.
44
46
  *
45
- * @param {Boolean} fetchDefaultLanguage
47
+ * @public
48
+ * @param {boolean} fetchDefaultLang
46
49
  */
47
- const setFetchDefaultLanguage = fetchDefaultLang => {
50
+ const setFetchDefaultLanguage = (fetchDefaultLang: boolean) => {
48
51
  fetchDefaultLanguage = fetchDefaultLang;
49
52
  };
50
53
 
51
54
  /**
52
55
  * Returns if the default language, that is inlined, should be fetched over the network.
53
- * @returns {Boolean}
56
+ * @public
57
+ * @returns {boolean}
54
58
  */
55
- const getFetchDefaultLanguage = () => {
59
+ const getFetchDefaultLanguage = (): boolean => {
56
60
  if (fetchDefaultLanguage === undefined) {
57
61
  setFetchDefaultLanguage(getConfiguredFetchDefaultLanguage());
58
62
  }
@@ -0,0 +1,67 @@
1
+ import { getNoConflict as getConfiguredNoConflict } from "../InitialConfiguration.js";
2
+
3
+ // Fire these events even with noConflict: true
4
+ const excludeList = [
5
+ "value-changed",
6
+ ];
7
+
8
+ type NoConflictData = boolean | { events: Array<string>};
9
+
10
+ let noConflict: NoConflictData;
11
+
12
+ const shouldFireOriginalEvent = (eventName: string) => {
13
+ return excludeList.includes(eventName);
14
+ };
15
+
16
+ const shouldNotFireOriginalEvent = (eventName: string) => {
17
+ const nc = getNoConflict();
18
+ // return !(nc.events && nc.events.includes && nc.events.includes(eventName));
19
+ return !(typeof nc !== "boolean" && nc.events && nc.events.includes && nc.events.includes(eventName));
20
+ };
21
+
22
+ /**
23
+ * Returns if the "noConflict" configuration is set.
24
+ * @public
25
+ * @returns { NoConflictData }
26
+ */
27
+ const getNoConflict = (): NoConflictData => {
28
+ if (noConflict === undefined) {
29
+ noConflict = getConfiguredNoConflict();
30
+ }
31
+
32
+ return noConflict;
33
+ };
34
+
35
+ /**
36
+ * Sets the "noConflict" mode.
37
+ * - When "false" (default value), all custom events are fired with and without the "ui5-" prefix.
38
+ * - When "true", all custom events are fired with the "ui5-" prefix only.
39
+ * - When an object is supplied, just the specified events will be fired with the "ui5-" prefix.
40
+ * @public
41
+ * @param { NoConflictData } noConflictData
42
+ */
43
+ const setNoConflict = (noConflictData: NoConflictData) => {
44
+ noConflict = noConflictData;
45
+ };
46
+
47
+ const skipOriginalEvent = (eventName: string) => {
48
+ const nc = getNoConflict();
49
+
50
+ // Always fire these events
51
+ if (shouldFireOriginalEvent(eventName)) {
52
+ return false;
53
+ }
54
+
55
+ // Read from the configuration
56
+ if (nc === true) {
57
+ return true;
58
+ }
59
+
60
+ return !shouldNotFireOriginalEvent(eventName);
61
+ };
62
+
63
+ export {
64
+ getNoConflict,
65
+ setNoConflict,
66
+ skipOriginalEvent,
67
+ };
@@ -12,16 +12,26 @@ const M_ISO639_OLD_TO_NEW = {
12
12
 
13
13
  const A_RTL_LOCALES = getDesigntimePropertyAsArray("$cldr-rtl-locales:ar,fa,he$") || [];
14
14
 
15
- const impliesRTL = language => {
16
- language = (language && M_ISO639_OLD_TO_NEW[language]) || language;
15
+ /**
16
+ * Checks whether the language is using RTL
17
+ * @param {string} language
18
+ * @returns {boolean} whether the language is using RTL
19
+ */
20
+ const impliesRTL = (language: string) => {
21
+ language = (language && M_ISO639_OLD_TO_NEW[language as keyof typeof M_ISO639_OLD_TO_NEW]) || language;
17
22
 
18
23
  return A_RTL_LOCALES.indexOf(language) >= 0;
19
24
  };
20
25
 
21
- const getRTL = () => {
26
+ /**
27
+ * Gets the effective RTL setting by first checking the configuration
28
+ * and if not set using the currently set language or the navigator language if the language is not explicitly set.
29
+ * @returns {boolean} whether RTL should be used
30
+ */
31
+ const getRTL = (): boolean => {
22
32
  const configurationRTL = getConfiguredRTL();
23
33
 
24
- if (configurationRTL !== null) {
34
+ if (configurationRTL !== undefined) {
25
35
  return !!configurationRTL;
26
36
  }
27
37
 
@@ -0,0 +1,64 @@
1
+ import { getTheme as getConfiguredTheme } from "../InitialConfiguration.js";
2
+ import { reRenderAllUI5Elements } from "../Render.js";
3
+ import applyTheme from "../theming/applyTheme.js";
4
+
5
+ let curTheme: string;
6
+
7
+ /**
8
+ * Returns the current theme.
9
+ * @public
10
+ * @returns {string} the current theme name
11
+ */
12
+ const getTheme = (): string => {
13
+ if (curTheme === undefined) {
14
+ curTheme = getConfiguredTheme();
15
+ }
16
+
17
+ return curTheme;
18
+ };
19
+
20
+ /**
21
+ * Applies a new theme after fetching its assets from the network.
22
+ * @public
23
+ * @param {string} theme the name of the new theme
24
+ * @returns {Promise<void>} a promise that is resolved when the new theme assets have been fetched and applied to the DOM
25
+ */
26
+ const setTheme = async (theme: string): Promise<void> => {
27
+ if (curTheme === theme) {
28
+ return;
29
+ }
30
+
31
+ curTheme = theme;
32
+
33
+ // Update CSS Custom Properties
34
+ await applyTheme(curTheme);
35
+ await reRenderAllUI5Elements({ themeAware: true });
36
+ };
37
+
38
+ /**
39
+ * Returns if the given theme name is the one currently applied.
40
+ * @private
41
+ * @param {string} theme
42
+ * @returns {boolean}
43
+ */
44
+ const isTheme = (theme: string) => {
45
+ const currentTheme = getTheme();
46
+ return currentTheme === theme || currentTheme === `${theme}_exp`;
47
+ };
48
+
49
+ /**
50
+ * Returns if the current theme is part of given theme family.
51
+ * @private
52
+ * @param {string} theme the theme family
53
+ * @returns {boolean}
54
+ */
55
+ const isThemeFamily = (theme: string) => {
56
+ return getTheme().startsWith(theme);
57
+ };
58
+
59
+ export {
60
+ getTheme,
61
+ setTheme,
62
+ isTheme,
63
+ isThemeFamily,
64
+ };
@@ -0,0 +1,41 @@
1
+ import createLinkInHead from "../util/createLinkInHead.js";
2
+ import validateThemeRoot from "../validateThemeRoot.js";
3
+ import { getThemeRoot as getConfiguredThemeRoot } from "../InitialConfiguration.js";
4
+
5
+ let themeRoot: string | undefined;
6
+
7
+ const getThemeRoot = (): string | undefined => {
8
+ if (themeRoot === undefined) {
9
+ themeRoot = getConfiguredThemeRoot();
10
+ }
11
+
12
+ return themeRoot;
13
+ };
14
+
15
+ const setThemeRoot = (theme: string, newThemeRoot: string) => {
16
+ themeRoot = validateThemeRoot(newThemeRoot);
17
+
18
+ if (themeRoot) {
19
+ attachCustomThemeStylesToHead(theme);
20
+ }
21
+ };
22
+
23
+ const formatThemeLink = (theme: string) => {
24
+ return `${getThemeRoot()!}Base/baseLib/${theme}/css_variables.css`; // theme root is always set.
25
+ };
26
+
27
+ const attachCustomThemeStylesToHead = async (theme: string) => {
28
+ const link = document.querySelector(`[sap-ui-webcomponents-theme="${theme}"]`);
29
+
30
+ if (link) {
31
+ document.head.removeChild(link);
32
+ }
33
+
34
+ await createLinkInHead(formatThemeLink(theme), { "sap-ui-webcomponents-theme": theme });
35
+ };
36
+
37
+ export {
38
+ getThemeRoot,
39
+ setThemeRoot,
40
+ attachCustomThemeStylesToHead,
41
+ };
@@ -59,6 +59,10 @@
59
59
  --ui5_web_components_busy_indicator_display: none;
60
60
  }
61
61
 
62
+ .busy-indicator-wrapper [ui5-busy-indicator] {
63
+ display: none;
64
+ }
65
+
62
66
  @keyframes grow {
63
67
  0%, 50%, 100% {
64
68
  -webkit-transform: scale(0.5);
@@ -3,8 +3,7 @@
3
3
  font-style: normal;
4
4
  font-weight: 400;
5
5
  src: local("72"),
6
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2"),
7
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff?ui5-webcomponents) format("woff");
6
+ url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2");
8
7
  }
9
8
 
10
9
  @font-face {
@@ -12,8 +11,7 @@
12
11
  font-style: normal;
13
12
  font-weight: 400;
14
13
  src: local('72-full'),
15
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2"),
16
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff?ui5-webcomponents) format("woff");
14
+ url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2");
17
15
 
18
16
  }
19
17
 
@@ -22,8 +20,7 @@
22
20
  font-style: normal;
23
21
  font-weight: 700;
24
22
  src: local('72-Bold'),
25
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),
26
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents) format("woff");
23
+ url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2");
27
24
  }
28
25
 
29
26
  @font-face {
@@ -31,38 +28,33 @@
31
28
  font-style: normal;
32
29
  font-weight: 700;
33
30
  src: local('72-Bold-full'),
34
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2"),
35
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents) format("woff");
31
+ url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2");
36
32
  }
37
33
 
38
34
  @font-face {
39
35
  font-family: '72-Bold';
40
36
  font-style: normal;
41
37
  src: local('72-Bold'),
42
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),
43
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents) format("woff");
38
+ url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2");
44
39
  }
45
40
 
46
41
  @font-face {
47
42
  font-family: '72-Boldfull';
48
43
  font-style: normal;
49
- src: url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2"),
50
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents) format("woff");
44
+ src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2");
51
45
  }
52
46
 
53
47
  @font-face {
54
48
  font-family: '72-Light';
55
49
  font-style: normal;
56
50
  src: local('72-Light'),
57
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2"),
58
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff?ui5-webcomponents) format("woff");
51
+ url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2");
59
52
  }
60
53
 
61
54
  @font-face {
62
55
  font-family: '72-Lightfull';
63
56
  font-style: normal;
64
- src: url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2"),
65
- url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff?ui5-webcomponents) format("woff");
57
+ src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2");
66
58
  }
67
59
 
68
60
  @font-face {
@@ -70,6 +62,5 @@
70
62
  font-style: bold;
71
63
  font-weight: 900;
72
64
  src: local('72Black'),
73
- url(https://openui5nightly.hana.ondemand.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2"),
74
- url(https://openui5nightly.hana.ondemand.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff?ui5-webcomponents) format("woff");
65
+ url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2");
75
66
  }
@@ -13,6 +13,24 @@ import getActiveElement from "../util/getActiveElement.js";
13
13
  import NavigationMode from "../types/NavigationMode.js";
14
14
  import ItemNavigationBehavior from "../types/ItemNavigationBehavior.js";
15
15
 
16
+ import type UI5Element from "../UI5Element.js";
17
+ import { instanceOfUI5Element } from "../UI5Element.js";
18
+
19
+ interface Tabbable {
20
+ id?: string,
21
+ _tabIndex?: string,
22
+ }
23
+
24
+ type ItemNavigationOptions = {
25
+ currentIndex?: number,
26
+ navigationMode?: NavigationMode,
27
+ rowSize?: number
28
+ skipItemsSize?: number,
29
+ behavior?: ItemNavigationBehavior,
30
+ getItemsCallback: () => Array<Tabbable>,
31
+ affectedPropertiesNames?: Array<string>,
32
+ };
33
+
16
34
  /**
17
35
  * The ItemNavigation class manages the calculations to determine the correct "tabindex" for a group of related items inside a root component.
18
36
  * Important: ItemNavigation only does the calculations and does not change "tabindex" directly, this is a responsibility of the developer.
@@ -47,10 +65,26 @@ import ItemNavigationBehavior from "../types/ItemNavigationBehavior.js";
47
65
  * @public
48
66
  */
49
67
  class ItemNavigation {
68
+ rootWebComponent: UI5Element;
69
+
70
+ _getItems: () => Array<Tabbable>;
71
+
72
+ _currentIndex: number;
73
+
74
+ _rowSize: number;
75
+
76
+ _behavior: ItemNavigationBehavior;
77
+
78
+ _navigationMode: NavigationMode;
79
+
80
+ _affectedPropertiesNames: Array<string>;
81
+
82
+ _skipItemsSize: number | null;
83
+
50
84
  /**
51
85
  *
52
86
  * @param rootWebComponent the component to operate on (component that slots or contains within its shadow root the items the user navigates among)
53
- * @param options Object with configuration options:
87
+ * @param {ItemNavigationOptions} options Object with configuration options:
54
88
  * - currentIndex: the index of the item that will be initially selected (from which navigation will begin)
55
89
  * - navigationMode (Auto|Horizontal|Vertical): whether the items are displayed horizontally (Horizontal), vertically (Vertical) or as a matrix (Auto) meaning the user can navigate in both directions (up/down and left/right)
56
90
  * - rowSize: tells how many items per row there are when the items are not rendered as a flat list but rather as a matrix. Relevant for navigationMode=Auto
@@ -61,23 +95,17 @@ class ItemNavigation {
61
95
  * - getItemsCallback: function that, when called, returns an array with all items the user can navigate among
62
96
  * - affectedPropertiesNames: a list of metadata properties on the root component which, upon user navigation, will be reassigned by address thus causing the root component to invalidate
63
97
  */
64
- constructor(rootWebComponent, options = {}) {
65
- this._setRootComponent(rootWebComponent);
66
- this._initOptions(options);
67
- }
68
-
69
- _setRootComponent(rootWebComponent) {
98
+ constructor(rootWebComponent: UI5Element, options: ItemNavigationOptions) {
70
99
  if (!rootWebComponent.isUI5Element) {
71
100
  throw new Error("The root web component must be a UI5 Element instance");
72
101
  }
102
+
73
103
  this.rootWebComponent = rootWebComponent;
74
104
  this.rootWebComponent.addEventListener("keydown", this._onkeydown.bind(this));
75
105
  this.rootWebComponent._onComponentStateFinalized = () => {
76
106
  this._init();
77
107
  };
78
- }
79
108
 
80
- _initOptions(options) {
81
109
  if (typeof options.getItemsCallback !== "function") {
82
110
  throw new Error("getItemsCallback is required");
83
111
  }
@@ -98,7 +126,7 @@ class ItemNavigation {
98
126
  * @public
99
127
  * @param current the new selected item
100
128
  */
101
- setCurrentItem(current) {
129
+ setCurrentItem(current: Tabbable) {
102
130
  const currentItemIndex = this._getItems().indexOf(current);
103
131
 
104
132
  if (currentItemIndex === -1) {
@@ -116,7 +144,7 @@ class ItemNavigation {
116
144
  * @public
117
145
  * @param newRowSize
118
146
  */
119
- setRowSize(newRowSize) {
147
+ setRowSize(newRowSize: number) {
120
148
  this._rowSize = newRowSize;
121
149
  }
122
150
 
@@ -126,22 +154,27 @@ class ItemNavigation {
126
154
  });
127
155
  }
128
156
 
129
- _onkeydown(event) {
157
+ _onkeydown(event: KeyboardEvent) {
130
158
  if (!this._canNavigate()) {
131
159
  return;
132
160
  }
133
161
 
134
162
  const horizontalNavigationOn = this._navigationMode === NavigationMode.Horizontal || this._navigationMode === NavigationMode.Auto;
135
163
  const verticalNavigationOn = this._navigationMode === NavigationMode.Vertical || this._navigationMode === NavigationMode.Auto;
164
+ const isRTL = this.rootWebComponent.effectiveDir === "rtl";
136
165
 
137
- if (isUp(event) && verticalNavigationOn) {
138
- this._handleUp();
139
- } else if (isDown(event) && verticalNavigationOn) {
140
- this._handleDown();
166
+ if (isRTL && isLeft(event) && horizontalNavigationOn) {
167
+ this._handleRight();
168
+ } else if (isRTL && isRight(event) && horizontalNavigationOn) {
169
+ this._handleLeft();
141
170
  } else if (isLeft(event) && horizontalNavigationOn) {
142
171
  this._handleLeft();
143
172
  } else if (isRight(event) && horizontalNavigationOn) {
144
173
  this._handleRight();
174
+ } else if (isUp(event) && verticalNavigationOn) {
175
+ this._handleUp();
176
+ } else if (isDown(event) && verticalNavigationOn) {
177
+ this._handleDown();
145
178
  } else if (isHome(event)) {
146
179
  this._handleHome();
147
180
  } else if (isEnd(event)) {
@@ -255,6 +288,7 @@ class ItemNavigation {
255
288
  if (this._skipItemsSize === null) {
256
289
  // Move the focus to the very top (as Home).
257
290
  this._currentIndex -= this._currentIndex;
291
+ return;
258
292
  }
259
293
 
260
294
  if (this._currentIndex + 1 > this._skipItemsSize) {
@@ -274,6 +308,7 @@ class ItemNavigation {
274
308
  if (this._skipItemsSize === null) {
275
309
  // Move the focus to the very bottom (as End).
276
310
  this._currentIndex = this._getItems().length - 1;
311
+ return;
277
312
  }
278
313
 
279
314
  const currentToEndRange = this._getItems().length - this._currentIndex - 1;
@@ -295,8 +330,8 @@ class ItemNavigation {
295
330
  }
296
331
 
297
332
  this._affectedPropertiesNames.forEach(propName => {
298
- const prop = this.rootWebComponent[propName];
299
- this.rootWebComponent[propName] = Array.isArray(prop) ? [...prop] : { ...prop };
333
+ const prop = (this.rootWebComponent as Record<string, any>)[propName];
334
+ (this.rootWebComponent as Record<string, any>)[propName] = Array.isArray(prop) ? [...prop] : { ...prop };
300
335
  });
301
336
  }
302
337
 
@@ -336,16 +371,23 @@ class ItemNavigation {
336
371
  return;
337
372
  }
338
373
 
339
- if (currentItem.isUI5Element) {
374
+ if (instanceOfUI5Element(currentItem)) {
340
375
  return currentItem.getFocusDomRef();
341
376
  }
342
377
 
343
- if (!this.rootWebComponent.getDomRef()) {
378
+ const currentItemDOMRef = this.rootWebComponent.getDomRef();
379
+ if (!currentItemDOMRef) {
344
380
  return;
345
381
  }
346
382
 
347
- return this.rootWebComponent.getDomRef().querySelector(`#${currentItem.id}`);
383
+ if (currentItem.id) {
384
+ return currentItemDOMRef.querySelector(`#${currentItem.id}`) as HTMLElement;
385
+ }
348
386
  }
349
387
  }
350
388
 
351
389
  export default ItemNavigation;
390
+
391
+ export {
392
+ Tabbable,
393
+ };