@ui5/webcomponents-base 0.0.0-cf50976ce → 0.0.0-d4d43327a

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 (643) hide show
  1. package/.eslintignore +2 -0
  2. package/CHANGELOG.md +167 -0
  3. package/bundle.esm.js +8 -2
  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 +9 -0
  8. package/dist/Boot.js +43 -45
  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 +145 -100
  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 +378 -0
  77. package/dist/UI5Element.js +917 -1007
  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 +88 -119
  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 +11 -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/Boot.4539908a.js +9 -0
  114. package/dist/assets/Boot.6335ce08.css +1 -0
  115. package/dist/assets/bundle.esm.a14a2ceb.js +52 -0
  116. package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
  117. package/dist/assets-meta/IconCollectionsAlias.js +30 -10
  118. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  119. package/dist/config/AnimationMode.d.ts +14 -0
  120. package/dist/config/AnimationMode.js +21 -18
  121. package/dist/config/AnimationMode.js.map +1 -0
  122. package/dist/config/CalendarType.d.ts +8 -0
  123. package/dist/config/CalendarType.js +13 -12
  124. package/dist/config/CalendarType.js.map +1 -0
  125. package/dist/config/FormatSettings.d.ts +15 -0
  126. package/dist/config/FormatSettings.js +15 -9
  127. package/dist/config/FormatSettings.js.map +1 -0
  128. package/dist/config/Icons.d.ts +55 -0
  129. package/dist/config/Icons.js +88 -37
  130. package/dist/config/Icons.js.map +1 -0
  131. package/dist/config/Language.d.ts +31 -0
  132. package/dist/config/Language.js +31 -43
  133. package/dist/config/Language.js.map +1 -0
  134. package/dist/config/NoConflict.d.ts +20 -0
  135. package/dist/config/NoConflict.js +40 -41
  136. package/dist/config/NoConflict.js.map +1 -0
  137. package/dist/config/RTL.d.ts +7 -0
  138. package/dist/config/RTL.js +26 -20
  139. package/dist/config/RTL.js.map +1 -0
  140. package/dist/config/Theme.d.ts +28 -0
  141. package/dist/config/Theme.js +34 -36
  142. package/dist/config/Theme.js.map +1 -0
  143. package/dist/config/ThemeRoots.d.ts +4 -0
  144. package/dist/config/ThemeRoots.js +28 -0
  145. package/dist/config/ThemeRoots.js.map +1 -0
  146. package/dist/decorators/customElement.d.ts +23 -0
  147. package/dist/decorators/customElement.js +31 -0
  148. package/dist/decorators/customElement.js.map +1 -0
  149. package/dist/decorators/event.d.ts +10 -0
  150. package/dist/decorators/event.js +24 -0
  151. package/dist/decorators/event.js.map +1 -0
  152. package/dist/decorators/fastNavigation.d.ts +7 -0
  153. package/dist/decorators/fastNavigation.js +13 -0
  154. package/dist/decorators/fastNavigation.js.map +1 -0
  155. package/dist/decorators/languageAware.d.ts +7 -0
  156. package/dist/decorators/languageAware.js +13 -0
  157. package/dist/decorators/languageAware.js.map +1 -0
  158. package/dist/decorators/property.d.ts +9 -0
  159. package/dist/decorators/property.js +24 -0
  160. package/dist/decorators/property.js.map +1 -0
  161. package/dist/decorators/slot.d.ts +9 -0
  162. package/dist/decorators/slot.js +37 -0
  163. package/dist/decorators/slot.js.map +1 -0
  164. package/dist/decorators/themeAware.d.ts +7 -0
  165. package/dist/decorators/themeAware.js +13 -0
  166. package/dist/decorators/themeAware.js.map +1 -0
  167. package/dist/delegate/ItemNavigation.d.ts +113 -0
  168. package/dist/delegate/ItemNavigation.js +277 -317
  169. package/dist/delegate/ItemNavigation.js.map +1 -0
  170. package/dist/delegate/ResizeHandler.d.ts +25 -0
  171. package/dist/delegate/ResizeHandler.js +70 -91
  172. package/dist/delegate/ResizeHandler.js.map +1 -0
  173. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  174. package/dist/delegate/ScrollEnablement.js +157 -180
  175. package/dist/delegate/ScrollEnablement.js.map +1 -0
  176. package/dist/features/F6Navigation.d.ts +19 -0
  177. package/dist/features/F6Navigation.js +145 -104
  178. package/dist/features/F6Navigation.js.map +1 -0
  179. package/dist/features/LegacyDateFormats.d.ts +18 -0
  180. package/dist/features/LegacyDateFormats.js +20 -0
  181. package/dist/features/LegacyDateFormats.js.map +1 -0
  182. package/dist/features/OpenUI5Element.d.ts +9 -0
  183. package/dist/features/OpenUI5Element.js +5 -0
  184. package/dist/features/OpenUI5Element.js.map +1 -0
  185. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  186. package/dist/features/OpenUI5Enablement.js +89 -112
  187. package/dist/features/OpenUI5Enablement.js.map +1 -0
  188. package/dist/features/OpenUI5Support.d.ts +25 -0
  189. package/dist/features/OpenUI5Support.js +92 -119
  190. package/dist/features/OpenUI5Support.js.map +1 -0
  191. package/dist/generated/VersionInfo.js +3 -3
  192. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  193. package/dist/generated/css/BusyIndicator.css.js +7 -5
  194. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  195. package/dist/generated/css/FontFace.css.d.ts +3 -0
  196. package/dist/generated/css/FontFace.css.js +7 -5
  197. package/dist/generated/css/FontFace.css.js.map +1 -0
  198. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  199. package/dist/generated/css/OverrideFontFace.css.js +7 -5
  200. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  201. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  202. package/dist/generated/css/SystemCSSVars.css.js +7 -5
  203. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  204. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  205. package/dist/getSharedResource.d.ts +11 -0
  206. package/dist/getSharedResource.js +21 -17
  207. package/dist/getSharedResource.js.map +1 -0
  208. package/dist/global.d.ts +38 -0
  209. package/dist/i18nBundle.d.ts +43 -0
  210. package/dist/i18nBundle.js +56 -64
  211. package/dist/i18nBundle.js.map +1 -0
  212. package/dist/locale/Locale.d.ts +22 -0
  213. package/dist/locale/Locale.js +75 -87
  214. package/dist/locale/Locale.js.map +1 -0
  215. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  216. package/dist/locale/RTLAwareRegistry.js +6 -11
  217. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  218. package/dist/locale/applyDirection.d.ts +10 -0
  219. package/dist/locale/applyDirection.js +7 -7
  220. package/dist/locale/applyDirection.js.map +1 -0
  221. package/dist/locale/directionChange.d.ts +15 -0
  222. package/dist/locale/directionChange.js +7 -15
  223. package/dist/locale/directionChange.js.map +1 -0
  224. package/dist/locale/getEffectiveDir.d.ts +2 -0
  225. package/dist/locale/getEffectiveDir.js +20 -24
  226. package/dist/locale/getEffectiveDir.js.map +1 -0
  227. package/dist/locale/getLocale.d.ts +7 -0
  228. package/dist/locale/getLocale.js +26 -29
  229. package/dist/locale/getLocale.js.map +1 -0
  230. package/dist/locale/languageChange.d.ts +5 -0
  231. package/dist/locale/languageChange.js +8 -16
  232. package/dist/locale/languageChange.js.map +1 -0
  233. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  234. package/dist/locale/nextFallbackLocale.js +15 -19
  235. package/dist/locale/nextFallbackLocale.js.map +1 -0
  236. package/dist/locale/normalizeLocale.d.ts +7 -0
  237. package/dist/locale/normalizeLocale.js +34 -41
  238. package/dist/locale/normalizeLocale.js.map +1 -0
  239. package/dist/renderer/LitRenderer.d.ts +14 -0
  240. package/dist/renderer/LitRenderer.js +28 -39
  241. package/dist/renderer/LitRenderer.js.map +1 -0
  242. package/dist/renderer/executeTemplate.d.ts +13 -0
  243. package/dist/renderer/executeTemplate.js +12 -16
  244. package/dist/renderer/executeTemplate.js.map +1 -0
  245. package/dist/sap/base/Log.js +28 -29
  246. package/dist/sap/base/assert.js +5 -6
  247. package/dist/sap/base/security/URLListValidator.js +13 -2
  248. package/dist/theming/CustomStyle.d.ts +6 -0
  249. package/dist/theming/CustomStyle.js +33 -45
  250. package/dist/theming/CustomStyle.js.map +1 -0
  251. package/dist/theming/ThemeLoaded.d.ts +5 -0
  252. package/dist/theming/ThemeLoaded.js +8 -16
  253. package/dist/theming/ThemeLoaded.js.map +1 -0
  254. package/dist/theming/applyTheme.d.ts +2 -0
  255. package/dist/theming/applyTheme.js +60 -64
  256. package/dist/theming/applyTheme.js.map +1 -0
  257. package/dist/theming/getConstructableStyle.d.ts +9 -0
  258. package/dist/theming/getConstructableStyle.js +12 -17
  259. package/dist/theming/getConstructableStyle.js.map +1 -0
  260. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  261. package/dist/theming/getEffectiveLinksHrefs.js +12 -22
  262. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  263. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  264. package/dist/theming/getEffectiveStyle.js +24 -31
  265. package/dist/theming/getEffectiveStyle.js.map +1 -0
  266. package/dist/theming/getStylesString.d.ts +3 -0
  267. package/dist/theming/getStylesString.js +9 -13
  268. package/dist/theming/getStylesString.js.map +1 -0
  269. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  270. package/dist/theming/getThemeDesignerTheme.js +72 -79
  271. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  272. package/dist/theming/preloadLinks.d.ts +3 -0
  273. package/dist/theming/preloadLinks.js +13 -17
  274. package/dist/theming/preloadLinks.js.map +1 -0
  275. package/dist/thirdparty/_merge.d.ts +2 -0
  276. package/dist/thirdparty/_merge.js +7 -4
  277. package/dist/thirdparty/_merge.js.map +1 -0
  278. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  279. package/dist/thirdparty/isPlainObject.js +11 -10
  280. package/dist/thirdparty/isPlainObject.js.map +1 -0
  281. package/dist/thirdparty/merge.d.ts +2 -0
  282. package/dist/thirdparty/merge.js +4 -8
  283. package/dist/thirdparty/merge.js.map +1 -0
  284. package/dist/types/AnimationMode.d.ts +32 -0
  285. package/dist/types/AnimationMode.js +33 -6
  286. package/dist/types/AnimationMode.js.map +1 -0
  287. package/dist/types/CSSColor.d.ts +16 -0
  288. package/dist/types/CSSColor.js +15 -5
  289. package/dist/types/CSSColor.js.map +1 -0
  290. package/dist/types/CalendarType.d.ts +37 -0
  291. package/dist/types/CalendarType.js +35 -18
  292. package/dist/types/CalendarType.js.map +1 -0
  293. package/dist/types/DOMReference.d.ts +17 -0
  294. package/dist/types/DOMReference.js +14 -13
  295. package/dist/types/DOMReference.js.map +1 -0
  296. package/dist/types/DataType.d.ts +25 -0
  297. package/dist/types/DataType.js +33 -26
  298. package/dist/types/DataType.js.map +1 -0
  299. package/dist/types/Float.d.ts +18 -0
  300. package/dist/types/Float.js +18 -10
  301. package/dist/types/Float.js.map +1 -0
  302. package/dist/types/Integer.d.ts +18 -0
  303. package/dist/types/Integer.js +18 -9
  304. package/dist/types/Integer.js.map +1 -0
  305. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  306. package/dist/types/InvisibleMessageMode.js +20 -23
  307. package/dist/types/InvisibleMessageMode.js.map +1 -0
  308. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  309. package/dist/types/ItemNavigationBehavior.js +22 -12
  310. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  311. package/dist/types/NavigationMode.d.ts +32 -0
  312. package/dist/types/NavigationMode.js +33 -6
  313. package/dist/types/NavigationMode.js.map +1 -0
  314. package/dist/types/ValueState.d.ts +42 -0
  315. package/dist/types/ValueState.js +41 -19
  316. package/dist/types/ValueState.js.map +1 -0
  317. package/dist/types.d.ts +18 -0
  318. package/dist/types.js +2 -0
  319. package/dist/types.js.map +1 -0
  320. package/dist/updateShadowRoot.d.ts +8 -0
  321. package/dist/updateShadowRoot.js +25 -16
  322. package/dist/updateShadowRoot.js.map +1 -0
  323. package/dist/util/AriaLabelHelper.d.ts +15 -0
  324. package/dist/util/AriaLabelHelper.js +166 -34
  325. package/dist/util/AriaLabelHelper.js.map +1 -0
  326. package/dist/util/Caret.d.ts +7 -0
  327. package/dist/util/Caret.js +16 -25
  328. package/dist/util/Caret.js.map +1 -0
  329. package/dist/util/ColorConversion.d.ts +30 -0
  330. package/dist/util/ColorConversion.js +311 -372
  331. package/dist/util/ColorConversion.js.map +1 -0
  332. package/dist/util/FetchHelper.d.ts +3 -0
  333. package/dist/util/FetchHelper.js +19 -25
  334. package/dist/util/FetchHelper.js.map +1 -0
  335. package/dist/util/FocusableElements.d.ts +4 -0
  336. package/dist/util/FocusableElements.js +63 -71
  337. package/dist/util/FocusableElements.js.map +1 -0
  338. package/dist/util/HTMLSanitizer.d.ts +3 -0
  339. package/dist/util/HTMLSanitizer.js +4 -5
  340. package/dist/util/HTMLSanitizer.js.map +1 -0
  341. package/dist/util/InvisibleMessage.d.ts +10 -0
  342. package/dist/util/InvisibleMessage.js +40 -53
  343. package/dist/util/InvisibleMessage.js.map +1 -0
  344. package/dist/util/PopupUtils.d.ts +7 -0
  345. package/dist/util/PopupUtils.js +58 -77
  346. package/dist/util/PopupUtils.js.map +1 -0
  347. package/dist/util/SlotsHelper.d.ts +9 -0
  348. package/dist/util/SlotsHelper.js +22 -35
  349. package/dist/util/SlotsHelper.js.map +1 -0
  350. package/dist/util/StringHelper.d.ts +3 -0
  351. package/dist/util/StringHelper.js +17 -20
  352. package/dist/util/StringHelper.js.map +1 -0
  353. package/dist/util/TabbableElements.d.ts +17 -0
  354. package/dist/util/TabbableElements.js +53 -47
  355. package/dist/util/TabbableElements.js.map +1 -0
  356. package/dist/util/arraysAreEqual.d.ts +2 -0
  357. package/dist/util/arraysAreEqual.js +10 -12
  358. package/dist/util/arraysAreEqual.js.map +1 -0
  359. package/dist/util/clamp.d.ts +9 -0
  360. package/dist/util/clamp.js +2 -2
  361. package/dist/util/clamp.js.map +1 -0
  362. package/dist/util/createLinkInHead.d.ts +7 -0
  363. package/dist/util/createLinkInHead.js +14 -12
  364. package/dist/util/createLinkInHead.js.map +1 -0
  365. package/dist/util/createStyleInHead.d.ts +8 -0
  366. package/dist/util/createStyleInHead.js +10 -10
  367. package/dist/util/createStyleInHead.js.map +1 -0
  368. package/dist/util/debounce.d.ts +2 -0
  369. package/dist/util/debounce.js +6 -8
  370. package/dist/util/debounce.js.map +1 -0
  371. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  372. package/dist/util/detectNavigatorLanguage.js +7 -10
  373. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  374. package/dist/util/escapeRegex.d.ts +8 -0
  375. package/dist/util/escapeRegex.js +8 -7
  376. package/dist/util/escapeRegex.js.map +1 -0
  377. package/dist/util/formatMessage.d.ts +2 -0
  378. package/dist/util/formatMessage.js +15 -19
  379. package/dist/util/formatMessage.js.map +1 -0
  380. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  381. package/dist/util/generateHighlightedMarkup.js +26 -27
  382. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  383. package/dist/util/getActiveElement.d.ts +2 -0
  384. package/dist/util/getActiveElement.js +6 -8
  385. package/dist/util/getActiveElement.js.map +1 -0
  386. package/dist/util/getClassCopy.d.ts +398 -0
  387. package/dist/util/getClassCopy.js +7 -7
  388. package/dist/util/getClassCopy.js.map +1 -0
  389. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  390. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  391. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  392. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  393. package/dist/util/getEffectiveContentDensity.js +2 -3
  394. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  395. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  396. package/dist/util/getEffectiveScrollbarStyle.js +1 -2
  397. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  398. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  399. package/dist/util/getFastNavigationGroups.js +51 -0
  400. package/dist/util/getFastNavigationGroups.js.map +1 -0
  401. package/dist/util/getFileExtension.d.ts +12 -0
  402. package/dist/util/getFileExtension.js +9 -11
  403. package/dist/util/getFileExtension.js.map +1 -0
  404. package/dist/util/getNormalizedTarget.d.ts +7 -0
  405. package/dist/util/getNormalizedTarget.js +7 -9
  406. package/dist/util/getNormalizedTarget.js.map +1 -0
  407. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  408. package/dist/util/getSingletonElementInstance.js +7 -10
  409. package/dist/util/getSingletonElementInstance.js.map +1 -0
  410. package/dist/util/isElementClickable.d.ts +2 -0
  411. package/dist/util/isElementClickable.js +16 -0
  412. package/dist/util/isElementClickable.js.map +1 -0
  413. package/dist/util/isElementHidden.d.ts +2 -0
  414. package/dist/util/isElementHidden.js +8 -0
  415. package/dist/util/isElementHidden.js.map +1 -0
  416. package/dist/util/isElementInView.d.ts +6 -0
  417. package/dist/util/isElementInView.js +6 -9
  418. package/dist/util/isElementInView.js.map +1 -0
  419. package/dist/util/isElementTabbable.d.ts +9 -0
  420. package/dist/util/isElementTabbable.js +30 -0
  421. package/dist/util/isElementTabbable.js.map +1 -0
  422. package/dist/util/isValidPropertyName.d.ts +8 -0
  423. package/dist/util/isValidPropertyName.js +16 -17
  424. package/dist/util/isValidPropertyName.js.map +1 -0
  425. package/dist/util/whenDOMReady.d.ts +2 -0
  426. package/dist/util/whenDOMReady.js +11 -10
  427. package/dist/util/whenDOMReady.js.map +1 -0
  428. package/dist/util/willShowContent.d.ts +2 -0
  429. package/dist/util/willShowContent.js +7 -0
  430. package/dist/util/willShowContent.js.map +1 -0
  431. package/dist/validateThemeRoot.d.ts +2 -0
  432. package/dist/validateThemeRoot.js +47 -0
  433. package/dist/validateThemeRoot.js.map +1 -0
  434. package/lib/generate-styles/index.js +10 -5
  435. package/package-scripts.js +22 -7
  436. package/package.json +4 -4
  437. package/src/Boot.ts +76 -0
  438. package/src/{CSP.js → CSP.ts} +14 -7
  439. package/src/{CustomElementsRegistry.js → CustomElementsRegistry.ts} +19 -16
  440. package/src/{CustomElementsScope.js → CustomElementsScope.ts} +8 -5
  441. package/src/{CustomElementsScopeUtils.js → CustomElementsScopeUtils.ts} +14 -7
  442. package/src/DOMObserver.ts +28 -0
  443. package/src/Device.ts +203 -0
  444. package/src/{EventProvider.js → EventProvider.ts} +9 -7
  445. package/src/FeaturesRegistry.ts +14 -0
  446. package/src/{FontFace.js → FontFace.ts} +3 -2
  447. package/src/{InitialConfiguration.js → InitialConfiguration.ts} +54 -13
  448. package/src/Keys.ts +295 -0
  449. package/src/ManagedStyles.ts +92 -0
  450. package/src/MarkedEvents.ts +20 -0
  451. package/src/{MediaRange.js → MediaRange.ts} +54 -53
  452. package/src/{PropertiesFileFormat.js → PropertiesFileFormat.ts} +8 -8
  453. package/src/{Render.js → Render.ts} +25 -20
  454. package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
  455. package/src/{Runtimes.js → Runtimes.ts} +15 -8
  456. package/src/{StaticAreaItem.js → StaticAreaItem.ts} +30 -18
  457. package/src/{UI5Element.js → UI5Element.ts} +280 -166
  458. package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +120 -58
  459. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  460. package/src/animations/animate.ts +64 -0
  461. package/src/animations/scroll.ts +21 -0
  462. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  463. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  464. package/src/asset-registries/Icons.ts +161 -0
  465. package/src/asset-registries/Illustrations.ts +75 -0
  466. package/src/asset-registries/{LocaleData.js → LocaleData.ts} +36 -28
  467. package/src/asset-registries/{Themes.js → Themes.ts} +19 -29
  468. package/src/asset-registries/{i18n.js → i18n.ts} +18 -23
  469. package/src/assets-meta/IconCollectionsAlias.ts +41 -0
  470. package/src/config/AnimationMode.ts +33 -0
  471. package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
  472. package/src/config/FormatSettings.ts +35 -0
  473. package/src/config/Icons.ts +126 -0
  474. package/src/config/{Language.js → Language.ts} +22 -18
  475. package/src/config/NoConflict.ts +67 -0
  476. package/src/config/{RTL.js → RTL.ts} +18 -4
  477. package/src/config/Theme.ts +64 -0
  478. package/src/config/ThemeRoots.ts +41 -0
  479. package/src/decorators/customElement.ts +57 -0
  480. package/src/decorators/event.ts +28 -0
  481. package/src/decorators/fastNavigation.ts +14 -0
  482. package/src/decorators/languageAware.ts +14 -0
  483. package/src/decorators/property.ts +30 -0
  484. package/src/decorators/slot.ts +49 -0
  485. package/src/decorators/themeAware.ts +14 -0
  486. package/src/delegate/{ItemNavigation.js → ItemNavigation.ts} +56 -19
  487. package/src/delegate/ResizeHandler.ts +100 -0
  488. package/src/delegate/ScrollEnablement.ts +224 -0
  489. package/src/features/F6Navigation.ts +195 -0
  490. package/src/features/LegacyDateFormats.ts +40 -0
  491. package/src/features/OpenUI5Element.ts +11 -0
  492. package/src/features/OpenUI5Enablement.ts +117 -0
  493. package/src/features/OpenUI5Support.ts +153 -0
  494. package/src/generated/css/BusyIndicator.css.ts +9 -0
  495. package/src/generated/css/FontFace.css.ts +9 -0
  496. package/src/generated/css/OverrideFontFace.css.ts +9 -0
  497. package/src/generated/css/SystemCSSVars.css.ts +9 -0
  498. package/src/{getSharedResource.js → getSharedResource.ts} +13 -4
  499. package/src/global.d.ts +38 -0
  500. package/src/{i18nBundle.js → i18nBundle.ts} +45 -23
  501. package/src/locale/{Locale.js → Locale.ts} +15 -5
  502. package/src/locale/RTLAwareRegistry.ts +16 -0
  503. package/src/locale/{applyDirection.js → applyDirection.ts} +4 -3
  504. package/src/locale/{directionChange.js → directionChange.ts} +6 -4
  505. package/src/locale/{getEffectiveDir.js → getEffectiveDir.ts} +1 -1
  506. package/src/locale/{getLocale.js → getLocale.ts} +12 -7
  507. package/src/locale/languageChange.ts +24 -0
  508. package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
  509. package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +5 -3
  510. package/src/renderer/LitRenderer.ts +60 -0
  511. package/src/renderer/{executeTemplate.js → executeTemplate.ts} +11 -5
  512. package/src/theming/{CustomStyle.js → CustomStyle.ts} +16 -12
  513. package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
  514. package/src/theming/{applyTheme.js → applyTheme.ts} +22 -11
  515. package/src/theming/{getConstructableStyle.js → getConstructableStyle.ts} +5 -4
  516. package/src/theming/getEffectiveLinksHrefs.ts +26 -0
  517. package/src/theming/{getEffectiveStyle.js → getEffectiveStyle.ts} +9 -7
  518. package/src/theming/getStylesString.ts +15 -0
  519. package/src/theming/{getThemeDesignerTheme.js → getThemeDesignerTheme.ts} +22 -8
  520. package/src/theming/{preloadLinks.js → preloadLinks.ts} +3 -2
  521. package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
  522. package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
  523. package/src/thirdparty/merge.ts +5 -0
  524. package/src/types/AnimationMode.ts +33 -0
  525. package/src/types/{CSSColor.js → CSSColor.ts} +12 -1
  526. package/src/types/CalendarType.ts +38 -0
  527. package/src/types/{DOMReference.js → DOMReference.ts} +6 -2
  528. package/src/types/DataType.ts +51 -0
  529. package/src/types/Float.ts +25 -0
  530. package/src/types/Integer.ts +25 -0
  531. package/src/types/InvisibleMessageMode.ts +27 -0
  532. package/src/types/ItemNavigationBehavior.ts +26 -0
  533. package/src/types/NavigationMode.ts +33 -0
  534. package/src/types/ValueState.ts +47 -0
  535. package/src/types.ts +30 -0
  536. package/src/updateShadowRoot.ts +42 -0
  537. package/src/util/AriaLabelHelper.ts +218 -0
  538. package/src/util/{Caret.js → Caret.ts} +5 -9
  539. package/src/util/{ColorConversion.js → ColorConversion.ts} +183 -182
  540. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  541. package/src/util/FocusableElements.ts +92 -0
  542. package/src/util/{HTMLSanitizer.js → HTMLSanitizer.ts} +2 -0
  543. package/src/util/{InvisibleMessage.js → InvisibleMessage.ts} +6 -6
  544. package/src/util/PopupUtils.ts +112 -0
  545. package/src/util/{SlotsHelper.js → SlotsHelper.ts} +9 -13
  546. package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
  547. package/src/util/TabbableElements.ts +70 -0
  548. package/src/util/{arraysAreEqual.js → arraysAreEqual.ts} +1 -1
  549. package/src/util/{clamp.js → clamp.ts} +1 -1
  550. package/src/util/{createLinkInHead.js → createLinkInHead.ts} +10 -4
  551. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  552. package/src/util/{debounce.js → debounce.ts} +5 -4
  553. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
  554. package/src/util/escapeRegex.ts +11 -0
  555. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  556. package/src/util/{generateHighlightedMarkup.js → generateHighlightedMarkup.ts} +7 -6
  557. package/src/util/{getClassCopy.js → getClassCopy.ts} +3 -1
  558. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  559. package/src/util/getEffectiveContentDensity.ts +5 -0
  560. package/src/util/getFastNavigationGroups.ts +63 -0
  561. package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
  562. package/src/util/{getNormalizedTarget.js → getNormalizedTarget.ts} +2 -2
  563. package/src/util/{getSingletonElementInstance.js → getSingletonElementInstance.ts} +1 -1
  564. package/src/util/isElementClickable.ts +19 -0
  565. package/src/util/isElementHidden.ts +9 -0
  566. package/src/util/{isElementInView.js → isElementInView.ts} +1 -1
  567. package/src/util/isElementTabbable.ts +37 -0
  568. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +1 -1
  569. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  570. package/src/util/willShowContent.ts +7 -0
  571. package/src/validateThemeRoot.ts +58 -0
  572. package/tsconfig.json +13 -0
  573. package/dist/RenderScheduler.js +0 -44
  574. package/dist/animations/config.js +0 -5
  575. package/dist/assets/bundle.esm.83f057b4.js +0 -43
  576. package/dist/types/CSSSize.js +0 -9
  577. package/dist/types/PopupState.js +0 -37
  578. package/dist/util/isDefaultSlotProvided.js +0 -11
  579. package/dist/util/isDescendantOf.js +0 -15
  580. package/dist/util/isNodeClickable.js +0 -19
  581. package/dist/util/isNodeHidden.js +0 -9
  582. package/dist/util/isNodeTabbable.js +0 -28
  583. package/dist/util/setToArray.js +0 -10
  584. package/hash.txt +0 -1
  585. package/src/Boot.js +0 -59
  586. package/src/DOMObserver.js +0 -65
  587. package/src/Device.js +0 -121
  588. package/src/FeaturesRegistry.js +0 -14
  589. package/src/Keys.js +0 -295
  590. package/src/ManagedStyles.js +0 -83
  591. package/src/RenderScheduler.js +0 -44
  592. package/src/animations/animate.js +0 -53
  593. package/src/animations/config.js +0 -5
  594. package/src/animations/scroll.js +0 -28
  595. package/src/asset-registries/Icons.js +0 -135
  596. package/src/asset-registries/Illustrations.js +0 -30
  597. package/src/assets-meta/IconCollectionsAlias.js +0 -18
  598. package/src/config/AnimationMode.js +0 -23
  599. package/src/config/FormatSettings.js +0 -13
  600. package/src/config/Icons.js +0 -52
  601. package/src/config/NoConflict.js +0 -51
  602. package/src/config/Theme.js +0 -53
  603. package/src/delegate/ResizeHandler.js +0 -106
  604. package/src/delegate/ScrollEnablement.js +0 -188
  605. package/src/features/F6Navigation.js +0 -110
  606. package/src/features/OpenUI5Enablement.js +0 -119
  607. package/src/features/OpenUI5Support.js +0 -125
  608. package/src/locale/RTLAwareRegistry.js +0 -14
  609. package/src/locale/languageChange.js +0 -22
  610. package/src/renderer/LitRenderer.js +0 -52
  611. package/src/theming/getEffectiveLinksHrefs.js +0 -27
  612. package/src/theming/getStylesString.js +0 -15
  613. package/src/thirdparty/merge.js +0 -10
  614. package/src/types/AnimationMode.js +0 -7
  615. package/src/types/CSSSize.js +0 -9
  616. package/src/types/CalendarType.js +0 -22
  617. package/src/types/DataType.js +0 -37
  618. package/src/types/Float.js +0 -14
  619. package/src/types/Integer.js +0 -13
  620. package/src/types/InvisibleMessageMode.js +0 -30
  621. package/src/types/ItemNavigationBehavior.js +0 -16
  622. package/src/types/NavigationMode.js +0 -7
  623. package/src/types/PopupState.js +0 -37
  624. package/src/types/ValueState.js +0 -22
  625. package/src/updateShadowRoot.js +0 -29
  626. package/src/util/AriaLabelHelper.js +0 -39
  627. package/src/util/FocusableElements.js +0 -79
  628. package/src/util/PopupUtils.js +0 -93
  629. package/src/util/TabbableElements.js +0 -51
  630. package/src/util/escapeRegex.js +0 -10
  631. package/src/util/getEffectiveContentDensity.js +0 -5
  632. package/src/util/isDefaultSlotProvided.js +0 -11
  633. package/src/util/isDescendantOf.js +0 -15
  634. package/src/util/isNodeClickable.js +0 -19
  635. package/src/util/isNodeHidden.js +0 -9
  636. package/src/util/isNodeTabbable.js +0 -28
  637. package/src/util/setToArray.js +0 -10
  638. /package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
  639. /package/src/{StaticArea.js → StaticArea.ts} +0 -0
  640. /package/src/{SystemCSSVars.js → SystemCSSVars.ts} +0 -0
  641. /package/src/{Theming.js → Theming.ts} +0 -0
  642. /package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
  643. /package/src/util/{getEffectiveScrollbarStyle.js → getEffectiveScrollbarStyle.ts} +0 -0
@@ -0,0 +1,161 @@
1
+ import getSharedResource from "../getSharedResource.js";
2
+ import { getIconCollectionByAlias } from "../assets-meta/IconCollectionsAlias.js";
3
+ import { getEffectiveIconCollection } from "../config/Icons.js";
4
+ import { I18nText } from "../i18nBundle.js";
5
+ import { TemplateFunction } from "../renderer/executeTemplate.js";
6
+
7
+ type IconLoader = (collectionName: string) => Promise<CollectionData>;
8
+
9
+ type CollectionData = {
10
+ collection: string,
11
+ packageName: string,
12
+ version?: string,
13
+ data: Record<string, {
14
+ path: string,
15
+ paths: Array<string>,
16
+ ltr: boolean,
17
+ acc: I18nText,
18
+ }>,
19
+ };
20
+
21
+ type IconData = {
22
+ collection: string,
23
+ packageName: string,
24
+ pathData: string | Array<string>,
25
+ ltr: boolean,
26
+ accData: I18nText,
27
+ customTemplate?: TemplateFunction,
28
+ viewBox?: string,
29
+ };
30
+
31
+ const loaders = new Map<string, IconLoader>();
32
+ const registry = getSharedResource<Map<string, IconData>>("SVGIcons.registry", new Map());
33
+ const iconCollectionPromises = getSharedResource<Map<string, Promise<CollectionData>>>("SVGIcons.promises", new Map());
34
+
35
+ const ICON_NOT_FOUND = "ICON_NOT_FOUND";
36
+
37
+ const registerIconLoader = (collectionName: string, loader: IconLoader) => {
38
+ loaders.set(collectionName, loader);
39
+ };
40
+
41
+ const _loadIconCollectionOnce = async (collectionName: string) => {
42
+ if (!iconCollectionPromises.has(collectionName)) {
43
+ if (!loaders.has(collectionName)) {
44
+ throw new Error(`No loader registered for the ${collectionName} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);
45
+ }
46
+
47
+ const loadIcons = loaders.get(collectionName)!;
48
+ iconCollectionPromises.set(collectionName, loadIcons(collectionName));
49
+ }
50
+
51
+ return iconCollectionPromises.get(collectionName);
52
+ };
53
+
54
+ const _fillRegistry = (bundleData: CollectionData) => {
55
+ Object.keys(bundleData.data).forEach(iconName => {
56
+ const iconData = bundleData.data[iconName];
57
+
58
+ registerIcon(iconName, {
59
+ pathData: iconData.path || iconData.paths,
60
+ ltr: iconData.ltr,
61
+ accData: iconData.acc,
62
+ collection: bundleData.collection,
63
+ packageName: bundleData.packageName,
64
+ });
65
+ });
66
+ };
67
+
68
+ // set
69
+ const registerIcon = (name: string, iconData: IconData) => { // eslint-disable-line
70
+ const key = `${iconData.collection}/${name}`;
71
+
72
+ registry.set(key, {
73
+ pathData: iconData.pathData,
74
+ ltr: iconData.ltr,
75
+ accData: iconData.accData,
76
+ packageName: iconData.packageName,
77
+ customTemplate: iconData.customTemplate,
78
+ viewBox: iconData.viewBox,
79
+ collection: iconData.collection,
80
+ });
81
+ };
82
+
83
+ /**
84
+ * Processes the full icon name and splits it into - "name", "collection"
85
+ * to form the proper registry key ("collection/name") under which the icon is registered:
86
+ *
87
+ * - removes legacy protocol ("sap-icon://")
88
+ * - resolves aliases (f.e "SAP-icons-TNT/actor" => "tnt/actor")
89
+ * - determines theme dependant icon collection (f.e "home" => "SAP-icons-v4/home" in Quartz | "SAP-icons-v5/home" in Horizon)
90
+ *
91
+ * @param { string } name
92
+ * @return { object }
93
+ */
94
+ const processName = (name: string) => {
95
+ // silently support ui5-compatible URIs
96
+ if (name.startsWith("sap-icon://")) {
97
+ name = name.replace("sap-icon://", "");
98
+ }
99
+
100
+ let collection: string;
101
+ [name, collection] = name.split("/").reverse();
102
+
103
+ name = name.replace("icon-", "");
104
+
105
+ if (collection) {
106
+ collection = getIconCollectionByAlias(collection);
107
+ }
108
+ collection = getEffectiveIconCollection(collection);
109
+
110
+ const registryKey = `${collection}/${name}`;
111
+ return { name, collection, registryKey };
112
+ };
113
+
114
+ const getIconDataSync = (name: string) => {
115
+ const { registryKey } = processName(name);
116
+ return registry.get(registryKey);
117
+ };
118
+
119
+ const getIconData = async (name: string) => {
120
+ const { collection, registryKey } = processName(name);
121
+
122
+ let iconData: string | CollectionData = ICON_NOT_FOUND;
123
+ try {
124
+ iconData = (await _loadIconCollectionOnce(collection))!;
125
+ } catch (error: unknown) {
126
+ const e = error as Error;
127
+ console.error(e.message); /* eslint-disable-line */
128
+ }
129
+
130
+ if (iconData === ICON_NOT_FOUND) {
131
+ return iconData;
132
+ }
133
+
134
+ if (!registry.has(registryKey)) {
135
+ // not filled by another await. many getters will await on the same loader, but fill only once
136
+ _fillRegistry(iconData as CollectionData);
137
+ }
138
+ return registry.get(registryKey);
139
+ };
140
+
141
+ // test page usage only
142
+ const _getRegisteredNames = async () => {
143
+ // fetch one icon of each collection to trigger the bundle load
144
+ await getIconData("edit");
145
+ await getIconData("tnt/arrow");
146
+ await getIconData("business-suite/3d");
147
+ return Array.from(registry.keys());
148
+ };
149
+
150
+ export {
151
+ registerIconLoader,
152
+ getIconData,
153
+ getIconDataSync,
154
+ registerIcon,
155
+ _getRegisteredNames,
156
+ };
157
+
158
+ export type {
159
+ IconData,
160
+ CollectionData,
161
+ };
@@ -0,0 +1,75 @@
1
+ import getSharedResource from "../getSharedResource.js";
2
+ import type { I18nText } from "../i18nBundle.js";
3
+
4
+ type IllustrationLoader = (illustrationName: string) => Promise<IllustrationData>;
5
+
6
+ type IllustrationProperties = {
7
+ dialogSvg: string,
8
+ sceneSvg: string,
9
+ spotSvg: string,
10
+ title: I18nText,
11
+ subtitle: I18nText,
12
+ };
13
+
14
+ type IllustrationData = IllustrationProperties & {
15
+ set: string,
16
+ };
17
+
18
+ const loaders = new Map<string, IllustrationLoader>();
19
+ const registry = getSharedResource<Map<string, IllustrationProperties>>("SVGIllustration.registry", new Map());
20
+ const illustrationPromises = getSharedResource<Map<string, Promise<IllustrationData>>>("SVGIllustration.promises", new Map());
21
+
22
+ const registerIllustration = (name: string, data: IllustrationData) => {
23
+ registry.set(`${data.set}/${name}`, {
24
+ dialogSvg: data.dialogSvg,
25
+ sceneSvg: data.sceneSvg,
26
+ spotSvg: data.spotSvg,
27
+ title: data.title,
28
+ subtitle: data.subtitle,
29
+ });
30
+ };
31
+
32
+ const registerIllustrationLoader = (illustrationName: string, loader: IllustrationLoader) => {
33
+ loaders.set(illustrationName, loader);
34
+ };
35
+
36
+ const _loadIllustrationOnce = async (illustrationName: string) => {
37
+ if (!illustrationPromises.has(illustrationName)) {
38
+ if (!loaders.has(illustrationName)) {
39
+ const illustrationPath = illustrationName.startsWith("Tnt") ? `tnt/${illustrationName.replace(/^Tnt/, "")}` : illustrationName;
40
+ throw new Error(`No loader registered for the ${illustrationName} illustration. Probably you forgot to import the "@ui5/webcomponents-fiori/dist/illustrations/${illustrationPath}.js" module. Or you can import the "@ui5/webcomponents-fiori/dist/illustrations/AllIllustrations.js" module that will make all illustrations available, but fetch only the ones used.`);
41
+ }
42
+
43
+ const loadIllustrations = loaders.get(illustrationName)!;
44
+ illustrationPromises.set(illustrationName, loadIllustrations(illustrationName));
45
+ }
46
+ return illustrationPromises.get(illustrationName);
47
+ };
48
+
49
+ const getIllustrationDataSync = (illustrationName: string) => {
50
+ let set = "fiori";
51
+
52
+ if (illustrationName.startsWith("Tnt")) {
53
+ set = "tnt";
54
+ illustrationName = illustrationName.replace(/^Tnt/, "");
55
+ }
56
+ return registry.get(`${set}/${illustrationName}`);
57
+ };
58
+
59
+ const getIllustrationData = async (illustrationName: string) => {
60
+ let set = "fiori";
61
+
62
+ await _loadIllustrationOnce(illustrationName);
63
+ if (illustrationName.startsWith("Tnt")) {
64
+ set = "tnt";
65
+ illustrationName = illustrationName.replace(/^Tnt/, "");
66
+ }
67
+ return registry.get(`${set}/${illustrationName}`);
68
+ };
69
+
70
+ export {
71
+ getIllustrationDataSync,
72
+ registerIllustration,
73
+ registerIllustrationLoader,
74
+ getIllustrationData,
75
+ };
@@ -2,11 +2,15 @@ import { attachLanguageChange } from "../locale/languageChange.js";
2
2
  import getLocale from "../locale/getLocale.js";
3
3
  import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from "../generated/AssetParameters.js";
4
4
  import { getFeature } from "../FeaturesRegistry.js";
5
+ import type OpenUI5Support from "../features/OpenUI5Support";
5
6
 
6
- const localeDataMap = new Map();
7
- const loaders = new Map();
8
- const cldrPromises = new Map();
9
- const reportedErrors = new Set();
7
+ type LocaleDataLoader = (locale: string) => Promise<CLDRData>;
8
+ type CLDRData = Record<string, object | boolean | string>;
9
+
10
+ const localeDataMap = new Map<string, CLDRData>();
11
+ const loaders = new Map<string, LocaleDataLoader>();
12
+ const cldrPromises = new Map<string, Promise<CLDRData>>();
13
+ const reportedErrors = new Set<string>();
10
14
  let warningShown = false;
11
15
 
12
16
  const M_ISO639_OLD_TO_NEW = {
@@ -15,25 +19,19 @@ const M_ISO639_OLD_TO_NEW = {
15
19
  "in": "id",
16
20
  };
17
21
 
18
- const DEV_MODE = false;
19
-
20
- const _showAssetsWarningOnce = localeId => {
22
+ const _showAssetsWarningOnce = (localeId: string) => {
21
23
  if (warningShown) {
22
24
  return;
23
25
  }
24
26
 
25
- if (!DEV_MODE) {
26
- console.warn(`[LocaleData] Supported locale "${localeId}" not configured, import the "Assets.js" module from the webcomponents package you are using.`); /* eslint-disable-line */
27
- } else {
28
- console.warn(`[LocaleData] Note: in dev mode, CLDR assets might be disabled for performance reasons. Try running "ENABLE_CLDR=1 yarn start" to test CLDR assets.`); /* eslint-disable-line */
29
- }
27
+ console.warn(`[LocaleData] Supported locale "${localeId}" not configured, import the "Assets.js" module from the webcomponents package you are using.`); /* eslint-disable-line */
30
28
 
31
29
  warningShown = true;
32
30
  };
33
31
 
34
- const calcLocale = (language, region, script) => {
32
+ const calcLocale = (language: string, region: string, script: string) => {
35
33
  // normalize language and handle special cases
36
- language = (language && M_ISO639_OLD_TO_NEW[language]) || language;
34
+ language = (language && M_ISO639_OLD_TO_NEW[language as keyof typeof M_ISO639_OLD_TO_NEW]) || language;
37
35
  // Special case 1: in an SAP context, the inclusive language code "no" always means Norwegian Bokmal ("nb")
38
36
  if (language === "no") {
39
37
  language = "nb";
@@ -84,12 +82,12 @@ const calcLocale = (language, region, script) => {
84
82
  };
85
83
 
86
84
  // internal set data
87
- const setLocaleData = (localeId, content) => {
85
+ const setLocaleData = (localeId: string, content: CLDRData) => {
88
86
  localeDataMap.set(localeId, content);
89
87
  };
90
88
 
91
89
  // external getSync
92
- const getLocaleData = localeId => {
90
+ const getLocaleData = (localeId: string) => {
93
91
  // if there is no loader, the default fallback was fetched and a warning was given - use default locale instead
94
92
  if (!loaders.has(localeId)) {
95
93
  localeId = DEFAULT_LOCALE;
@@ -104,10 +102,14 @@ const getLocaleData = localeId => {
104
102
  };
105
103
 
106
104
  // load bundle over the network once
107
- const _loadCldrOnce = localeId => {
108
- const loadCldr = loaders.get(localeId);
109
-
105
+ const _loadCldrOnce = (localeId: string) => {
110
106
  if (!cldrPromises.get(localeId)) {
107
+ const loadCldr = loaders.get(localeId);
108
+
109
+ if (!loadCldr) {
110
+ throw new Error(`CLDR data for locale ${localeId} is not loaded!`);
111
+ }
112
+
111
113
  cldrPromises.set(localeId, loadCldr(localeId));
112
114
  }
113
115
 
@@ -115,13 +117,13 @@ const _loadCldrOnce = localeId => {
115
117
  };
116
118
 
117
119
  // external getAsync
118
- const fetchCldr = async (language, region, script) => {
120
+ const fetchCldr = async (language: string, region: string, script: string) => {
119
121
  const localeId = calcLocale(language, region, script);
120
122
 
121
123
  // reuse OpenUI5 CLDR if present
122
- const OpenUI5Support = getFeature("OpenUI5Support");
123
- if (OpenUI5Support) {
124
- const cldrContent = OpenUI5Support.getLocaleDataObject();
124
+ const openUI5Support = getFeature<typeof OpenUI5Support>("OpenUI5Support");
125
+ if (openUI5Support) {
126
+ const cldrContent = openUI5Support.getLocaleDataObject();
125
127
  if (cldrContent) {
126
128
  // only if openui5 actually returned valid content
127
129
  setLocaleData(localeId, cldrContent);
@@ -132,8 +134,9 @@ const fetchCldr = async (language, region, script) => {
132
134
  // fetch it
133
135
  try {
134
136
  const cldrContent = await _loadCldrOnce(localeId);
135
- setLocaleData(localeId, cldrContent);
136
- } catch (e) {
137
+ setLocaleData(localeId, cldrContent as CLDRData);
138
+ } catch (error: unknown) {
139
+ const e = error as Error;
137
140
  if (!reportedErrors.has(e.message)) {
138
141
  reportedErrors.add(e.message);
139
142
  console.error(e.message); /* eslint-disable-line */
@@ -141,13 +144,14 @@ const fetchCldr = async (language, region, script) => {
141
144
  }
142
145
  };
143
146
 
144
- const registerLocaleDataLoader = (localeId, loader) => {
147
+ const registerLocaleDataLoader = (localeId: string, loader: LocaleDataLoader) => {
145
148
  loaders.set(localeId, loader);
146
149
  };
147
150
 
148
151
  // register default loader for "en" from ui5 CDN (dev workflow without assets)
149
- registerLocaleDataLoader("en", async runtimeLocaleId => {
150
- return (await fetch(`https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json`)).json();
152
+ registerLocaleDataLoader("en", async () => {
153
+ const cldrContent = await fetch(`https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json`);
154
+ return cldrContent.json() as Promise<CLDRData>;
151
155
  });
152
156
 
153
157
  // When the language changes dynamically (the user calls setLanguage),
@@ -162,3 +166,7 @@ export {
162
166
  fetchCldr,
163
167
  getLocaleData,
164
168
  };
169
+
170
+ export type {
171
+ CLDRData,
172
+ };
@@ -1,36 +1,21 @@
1
1
  import { DEFAULT_THEME } from "../generated/AssetParameters.js";
2
+ import { StyleData, StyleDataCSP } from "../types.js";
2
3
 
3
- const themeStyles = new Map();
4
- const loaders = new Map();
5
- const registeredPackages = new Set();
6
- const registeredThemes = new Set();
4
+ type ThemeData = {_: StyleDataCSP } | StyleDataCSP | string;
5
+ type ThemeLoader = (themeName: string) => Promise<ThemeData>;
7
6
 
8
- /**
9
- * Used to provide CSS Vars for a specific theme for a specific package.
10
- * The CSS Vars can be passed directly as a string (containing them), as an object with a "_" property(containing them in the "_" property), or as a URL.
11
- * This URL must point to a JSON file, containing a "_" property.
12
- *
13
- * Example usage:
14
- * 1) Pass the CSS Vars as a string directly.
15
- * registerThemeProperties("my-package", "my_theme", ":root{--var1: red;}");
16
- *
17
- * @public
18
- * @param packageName - the NPM package for which CSS Vars are registered
19
- * @param themeName - the theme which the CSS Vars implement
20
- * @param style - the style content directly
21
- * @deprecated
22
- */
23
- const registerThemeProperties = (_packageName, _themeName, _style) => {
24
- throw new Error("`registerThemeProperties` has been depracated. Use `registerThemePropertiesLoader` instead.");
25
- };
7
+ const themeStyles = new Map<string, StyleData>();
8
+ const loaders = new Map<string, ThemeLoader>();
9
+ const registeredPackages = new Set<string>();
10
+ const registeredThemes = new Set<string>();
26
11
 
27
- const registerThemePropertiesLoader = (packageName, themeName, loader) => {
12
+ const registerThemePropertiesLoader = (packageName: string, themeName: string, loader: ThemeLoader) => {
28
13
  loaders.set(`${packageName}/${themeName}`, loader);
29
14
  registeredPackages.add(packageName);
30
15
  registeredThemes.add(themeName);
31
16
  };
32
17
 
33
- const getThemeProperties = async (packageName, themeName) => {
18
+ const getThemeProperties = async (packageName: string, themeName: string) => {
34
19
  const style = themeStyles.get(`${packageName}_${themeName}`);
35
20
  if (style !== undefined) { // it's valid for style to be an empty string
36
21
  return style;
@@ -45,7 +30,7 @@ const getThemeProperties = async (packageName, themeName) => {
45
30
  return _getThemeProperties(packageName, themeName);
46
31
  };
47
32
 
48
- const _getThemeProperties = async (packageName, themeName) => {
33
+ const _getThemeProperties = async (packageName: string, themeName: string) => {
49
34
  const loader = loaders.get(`${packageName}/${themeName}`);
50
35
  if (!loader) {
51
36
  // no themes for package
@@ -55,11 +40,12 @@ const _getThemeProperties = async (packageName, themeName) => {
55
40
  let data;
56
41
  try {
57
42
  data = await loader(themeName);
58
- } catch (e) {
43
+ } catch (error: unknown) {
44
+ const e = error as Error;
59
45
  console.error(packageName, e.message); /* eslint-disable-line */
60
46
  return;
61
47
  }
62
- const themeProps = data._ || data;
48
+ const themeProps = (data as {_: StyleDataCSP})._ || data; // Refactor: remove _ everywhere
63
49
 
64
50
  themeStyles.set(`${packageName}_${themeName}`, themeProps);
65
51
  return themeProps;
@@ -69,14 +55,18 @@ const getRegisteredPackages = () => {
69
55
  return registeredPackages;
70
56
  };
71
57
 
72
- const isThemeRegistered = theme => {
58
+ const isThemeRegistered = (theme: string) => {
73
59
  return registeredThemes.has(theme);
74
60
  };
75
61
 
76
62
  export {
77
63
  registerThemePropertiesLoader,
78
- registerThemeProperties,
79
64
  getThemeProperties,
80
65
  getRegisteredPackages,
81
66
  isThemeRegistered,
82
67
  };
68
+
69
+ export type {
70
+ ThemeData,
71
+ ThemeLoader,
72
+ };
@@ -5,13 +5,16 @@ import nextFallbackLocale from "../locale/nextFallbackLocale.js";
5
5
  import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
6
6
  import { getFetchDefaultLanguage } from "../config/Language.js";
7
7
 
8
+ type I18nLoader = (localeId: string) => Promise<I18nData>;
9
+ type I18nData = Record<string, string>;
10
+
8
11
  // contains package names for which the warning has been shown
9
12
  const warningShown = new Set();
10
13
  const reportedErrors = new Set();
11
14
 
12
- const bundleData = new Map();
13
- const bundlePromises = new Map();
14
- const loaders = new Map();
15
+ const bundleData = new Map<string, I18nData | null>();
16
+ const bundlePromises = new Map<string, Promise<I18nData>>();
17
+ const loaders = new Map<string, I18nLoader>();
15
18
 
16
19
  /**
17
20
  * Registers i18n loader function for given package and locale.
@@ -21,46 +24,38 @@ const loaders = new Map();
21
24
  * @param {string} localeId locale that this loader can handle
22
25
  * @param {function} loader async function that will be passed a localeId and should return a JSON object
23
26
  */
24
- const registerI18nLoader = (packageName, localeId, loader) => {
27
+ const registerI18nLoader = (packageName: string, localeId: string, loader: I18nLoader) => {
25
28
  // register loader by key
26
29
  const bundleKey = `${packageName}/${localeId}`;
27
30
  loaders.set(bundleKey, loader);
28
31
  };
29
32
 
30
- const _setI18nBundleData = (packageName, data) => {
33
+ const _setI18nBundleData = (packageName: string, data: I18nData | null) => {
31
34
  bundleData.set(packageName, data);
32
35
  };
33
36
 
34
- const getI18nBundleData = packageName => {
37
+ const getI18nBundleData = (packageName: string) => {
35
38
  return bundleData.get(packageName);
36
39
  };
37
40
 
38
- /**
39
- * @public
40
- * @deprecated
41
- */
42
- const registerI18nBundle = (_packageName, _bundle) => {
43
- throw new Error("This method has been removed. Use `registerI18nLoader` instead.");
44
- };
45
-
46
- const _hasLoader = (packageName, localeId) => {
41
+ const _hasLoader = (packageName: string, localeId: string) => {
47
42
  const bundleKey = `${packageName}/${localeId}`;
48
43
  return loaders.has(bundleKey);
49
44
  };
50
45
 
51
46
  // load bundle over the network once
52
- const _loadMessageBundleOnce = (packageName, localeId) => {
47
+ const _loadMessageBundleOnce = (packageName: string, localeId: string) => {
53
48
  const bundleKey = `${packageName}/${localeId}`;
54
49
  const loadMessageBundle = loaders.get(bundleKey);
55
50
 
56
- if (!bundlePromises.get(bundleKey)) {
51
+ if (loadMessageBundle && !bundlePromises.get(bundleKey)) {
57
52
  bundlePromises.set(bundleKey, loadMessageBundle(localeId));
58
53
  }
59
54
 
60
- return bundlePromises.get(bundleKey);
55
+ return bundlePromises.get(bundleKey)!; // Investigate if i18n loader exists and this won't return undefined.
61
56
  };
62
57
 
63
- const _showAssetsWarningOnce = packageName => {
58
+ const _showAssetsWarningOnce = (packageName: string) => {
64
59
  if (!warningShown.has(packageName)) {
65
60
  console.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */
66
61
  ` Add \`import "${packageName}/dist/Assets.js"\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section "Assets" in the documentation for more information.`); /* eslint-disable-line */
@@ -77,7 +72,7 @@ const _showAssetsWarningOnce = packageName => {
77
72
  * @param {packageName} packageName the NPM package name
78
73
  * @public
79
74
  */
80
- const fetchI18nBundle = async packageName => {
75
+ const fetchI18nBundle = async (packageName: string) => {
81
76
  const language = getLocale().getLanguage();
82
77
  const region = getLocale().getRegion();
83
78
  let localeId = normalizeLocale(language + (region ? `-${region}` : ``));
@@ -101,7 +96,8 @@ const fetchI18nBundle = async packageName => {
101
96
  try {
102
97
  const data = await _loadMessageBundleOnce(packageName, localeId);
103
98
  _setI18nBundleData(packageName, data);
104
- } catch (e) {
99
+ } catch (error: unknown) {
100
+ const e = error as Error;
105
101
  if (!reportedErrors.has(e.message)) {
106
102
  reportedErrors.add(e.message);
107
103
  console.error(e.message); /* eslint-disable-line */
@@ -110,7 +106,7 @@ const fetchI18nBundle = async packageName => {
110
106
  };
111
107
 
112
108
  // When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles
113
- attachLanguageChange(() => {
109
+ attachLanguageChange((lang: string /* eslint-disable-line */) => {
114
110
  const allPackages = [...bundleData.keys()];
115
111
  return Promise.all(allPackages.map(fetchI18nBundle));
116
112
  });
@@ -118,6 +114,5 @@ attachLanguageChange(() => {
118
114
  export {
119
115
  registerI18nLoader,
120
116
  fetchI18nBundle,
121
- registerI18nBundle,
122
117
  getI18nBundleData,
123
118
  };
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Supported icon collection aliases.
3
+ *
4
+ * Users might specify a collection, using both the key and the value in the following key-value pairs,
5
+ * e.g the following pairs are completely exchangeable:
6
+ *
7
+ * - "SAP-icons/accept" and "SAP-icons-v4/accept"
8
+ * - "horizon/accept" and "SAP-icons-v5/accept"
9
+ * - "SAP-icons-TNT/actor" and "tnt/actor"
10
+ * - "BusinessSuiteInAppSymbols/3d" and "business-suite/3d"
11
+ */
12
+ enum IconCollectionsAlias {
13
+ "SAP-icons" = "SAP-icons-v4",
14
+ "horizon" = "SAP-icons-v5",
15
+ "SAP-icons-TNT" = "tnt",
16
+ "BusinessSuiteInAppSymbols" = "business-suite",
17
+ }
18
+
19
+ /**
20
+ * Returns the mapped collection name for a given alias.
21
+ *
22
+ * <b>For example</b>:
23
+ * - "SAP-icons-TNT"resolves to "tnt"
24
+ * - "BusinessSuiteInAppSymbols" resolves to "business-suite"
25
+ * - "horizon" resolves to "SAP-icons-v5"
26
+ *
27
+ * @param { string } collectionName
28
+ * @return { string } the normalized collection name
29
+ */
30
+ const getIconCollectionByAlias = (collectionName: string) => {
31
+ if (IconCollectionsAlias[collectionName as keyof typeof IconCollectionsAlias]) {
32
+ return IconCollectionsAlias[collectionName as keyof typeof IconCollectionsAlias];
33
+ }
34
+
35
+ return collectionName;
36
+ };
37
+
38
+ export default IconCollectionsAlias;
39
+ export {
40
+ getIconCollectionByAlias,
41
+ };
@@ -0,0 +1,33 @@
1
+ import { getAnimationMode as getConfiguredAnimationMode } from "../InitialConfiguration.js";
2
+ import AnimationMode from "../types/AnimationMode.js";
3
+
4
+ let curAnimationMode: AnimationMode;
5
+
6
+ /**
7
+ * Returns the animation mode - "full", "basic", "minimal" or "none".
8
+ * @public
9
+ * @returns { AnimationMode }
10
+ */
11
+ const getAnimationMode = (): AnimationMode => {
12
+ if (curAnimationMode === undefined) {
13
+ curAnimationMode = getConfiguredAnimationMode();
14
+ }
15
+
16
+ return curAnimationMode;
17
+ };
18
+
19
+ /**
20
+ * Sets the animation mode - "full", "basic", "minimal" or "none".
21
+ * @public
22
+ * @param { AnimationMode } animationMode
23
+ */
24
+ const setAnimationMode = (animationMode: AnimationMode) => {
25
+ if (Object.values(AnimationMode).includes(animationMode)) {
26
+ curAnimationMode = animationMode;
27
+ }
28
+ };
29
+
30
+ export {
31
+ getAnimationMode,
32
+ setAnimationMode,
33
+ };
@@ -1,14 +1,19 @@
1
1
  import CalendarType from "../types/CalendarType.js";
2
2
  import { getCalendarType as getConfiguredCalendarType } from "../InitialConfiguration.js";
3
3
 
4
- let calendarType;
4
+ let calendarType: CalendarType | undefined;
5
5
 
6
- const getCalendarType = () => {
6
+ /**
7
+ * Returns the configured or default calendar type.
8
+ * @public
9
+ * @returns { CalendarType } the effective calendar type
10
+ */
11
+ const getCalendarType = (): CalendarType => {
7
12
  if (calendarType === undefined) {
8
13
  calendarType = getConfiguredCalendarType();
9
14
  }
10
15
 
11
- if (CalendarType.isValid(calendarType)) {
16
+ if (calendarType && calendarType in CalendarType) {
12
17
  return calendarType;
13
18
  }
14
19