@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,35 @@
1
+ import LegacyDateFormats from "../features/LegacyDateFormats.js";
2
+ import type { LegacyDateCalendarCustomizing } from "../features/LegacyDateFormats.js";
3
+ import { getFormatSettings } from "../InitialConfiguration.js";
4
+ import { getFeature } from "../FeaturesRegistry.js";
5
+
6
+ type FormatSettings = {
7
+ firstDayOfWeek?: number,
8
+ legacyDateCalendarCustomizing?: LegacyDateCalendarCustomizing,
9
+ };
10
+
11
+ let formatSettings: FormatSettings;
12
+
13
+ /**
14
+ * Returns the first day of the week from the configured format settings or based on the current locale.
15
+ * @public
16
+ * @returns {Number} 0 (Sunday) through 6 (Saturday)
17
+ */
18
+ const getFirstDayOfWeek = (): number | undefined => {
19
+ if (formatSettings === undefined) {
20
+ formatSettings = getFormatSettings();
21
+ }
22
+
23
+ return formatSettings.firstDayOfWeek;
24
+ };
25
+
26
+ const legacyDateFormats = getFeature<typeof LegacyDateFormats>("LegacyDateFormats");
27
+
28
+ const getLegacyDateCalendarCustomizing = legacyDateFormats ? LegacyDateFormats.getLegacyDateCalendarCustomizing : () => { return []; };
29
+
30
+ export {
31
+ getFirstDayOfWeek,
32
+ getLegacyDateCalendarCustomizing,
33
+ };
34
+
35
+ export type { FormatSettings };
@@ -0,0 +1,126 @@
1
+ import { getTheme, isThemeFamily } from "./Theme.js";
2
+ import { getIconCollectionByAlias } from "../assets-meta/IconCollectionsAlias.js";
3
+
4
+ const IconCollectionConfiguration = new Map<string, string>();
5
+
6
+ // All supported icon collections + unknown custom ones
7
+ type IconCollection = "SAP-icons" | "SAP-icons-v4" | "SAP-icons-v5" | "horizon" | "tnt" | "tnt-v2" | "tnt-v3" | "business-suite" | "business-suite-v1" | "business-suite-v2" | string;
8
+
9
+ // All registered icon collections - all icon collections resolves to these options at the end
10
+ enum RegisteredIconCollection {
11
+ SAPIconsV4 = "SAP-icons-v4",
12
+ SAPIconsV5 = "SAP-icons-v5",
13
+ SAPIconsTNTV2 = "tnt-v2",
14
+ SAPIconsTNTV3 = "tnt-v3",
15
+ SAPBSIconsV1 = "business-suite-v1",
16
+ SAPBSIconsV2 = "business-suite-v2",
17
+ }
18
+
19
+ /**
20
+ * Sets the default icon collection for a given theme.
21
+ *
22
+ * SAP Icons is the default icon collection (that resolves to SAP-icons version 5.x in Horizon theme family and SAP-icons version 4.x in all other themes)
23
+ * and to display icons from other collections, you have to specify the icon collection in addition to the icon name, for example: "tnt/actor", "business-suite/1x2-grid-layout", etc.
24
+ * This method allows setting another (built-in or custom) icon collection as default per theme.
25
+ *
26
+ * <b>Usage</b>
27
+ * <b>For example</b>, to make "SAP-icons version 5.x" the default icon collection in "sap_fiori_3":
28
+ *
29
+ * <pre>
30
+ * setDefaultIconCollection("sap_fiori_3", "SAP-icons-v5");
31
+ *
32
+ * <ui5-icon name="home"></ui5-icon>
33
+ * </pre>
34
+ *
35
+ * <b>For example</b>, to make a custom icon collection (with name "my-custom-collection") the default icon collection in "sap_fiori_3":
36
+ *
37
+ * <pre>
38
+ * setDefaultIconCollection("sap_fiori_3", "my-custom-collection");
39
+ *
40
+ * <ui5-icon name="custom-icon-name"></ui5-icon>
41
+ * </pre>
42
+ *
43
+ * @public
44
+ * @param { string } theme
45
+ * @param { string } collectionName
46
+ */
47
+ const setDefaultIconCollection = (theme: string, collectionName: IconCollection) => {
48
+ IconCollectionConfiguration.set(theme, collectionName);
49
+ };
50
+
51
+ /**
52
+ * Returns the configured default icon collection for a given theme.
53
+ *
54
+ * @param { string } theme
55
+ * @public
56
+ * @returns { string | undefined }
57
+ */
58
+ const getDefaultIconCollection = (theme: string): string | undefined => {
59
+ return IconCollectionConfiguration.get(theme);
60
+ };
61
+
62
+ /**
63
+ * Returns the effective icon collection,
64
+ * based on the default icon collection configuration and the current theme:
65
+ * @param { IconCollection } collectionName
66
+ * @returns { IconCollection } the effective collection name
67
+ */
68
+ const getEffectiveIconCollection = (collectionName?: IconCollection): IconCollection => {
69
+ const currentTheme = getTheme();
70
+ const currentThemeConfiguration = IconCollectionConfiguration.get(currentTheme);
71
+
72
+ // when no collection is set and default collection is configured - return the configured icon collection
73
+ if (!collectionName && currentThemeConfiguration) {
74
+ return getIconCollectionByAlias(currentThemeConfiguration);
75
+ }
76
+
77
+ // when collection is set - return the theme dependant icon collection
78
+ // when collection is not set and there is no default icon collection configured - return theme dependant icon collection
79
+ return getIconCollectionByTheme(collectionName);
80
+ };
81
+
82
+ /**
83
+ * Returns the icon theme dependant collection, based on the collection name and current theme as follows:
84
+ *
85
+ * - "no collection" resolves to "SAP-icons-v4" in "Quartz" and "Belize", and to "SAP-icons-v5" in "Horizon" (or as confugred via setDefaultIconCollection)
86
+ * - "SAP-icons-v4" (and its alias "SAP-icons") forces "SAP-icons v4" in any theme and resolves to itself "SAP-icons-v4"
87
+ * - "SAP-icons-v5" (and its alias "horizon") forces "SAP-icons v5" in any theme and resolves to itself "SAP-icons-v5"
88
+ * - "tnt" (and its alias "SAP-icons-TNT") resolves to "tnt-v2" in "Quartz", "Belize", and resolves to "tnt-v3" in "Horizon"
89
+ * - "tnt-v2" forces "TNT icons v2" in any theme and resolves to itself "tnt-v2"
90
+ * - "tnt-v3" forces "TNT icons v3" in any theme and resolves to itself "tnt-v3"
91
+ * - "business-suite" (and its alias "BusinessSuiteInAppSymbols") resolves to "business-suite-v1" in "Quartz", "Belize", and resolves to "business-suite-v2" in "Horizon"
92
+ * - "business-suite-v1" forces "Business Suite icons v1" in any theme and resolves to itself "business-suite-v1"
93
+ * - "business-suite-v2" forces "Business Suite icons v2" in any theme and resolves to itself "business-suite-v2"
94
+ *
95
+ * <b>Note:</b> "SAP-icons-v4", "SAP-icons-v5", "tnt-v2", "tnt-v3", "business-suite-v1" and "business-suite-v2" are just returned
96
+ * @param { IconCollection } collectionName
97
+ * @returns { RegisteredIconCollection } the registered collection name
98
+ */
99
+ const getIconCollectionByTheme = (collectionName?: IconCollection): RegisteredIconCollection => {
100
+ const horizonThemeFamily = isThemeFamily("sap_horizon");
101
+
102
+ if (!collectionName) {
103
+ return horizonThemeFamily ? RegisteredIconCollection.SAPIconsV5 : RegisteredIconCollection.SAPIconsV4;
104
+ }
105
+
106
+ if (collectionName === "tnt") {
107
+ return horizonThemeFamily ? RegisteredIconCollection.SAPIconsTNTV3 : RegisteredIconCollection.SAPIconsTNTV2;
108
+ }
109
+
110
+ if (collectionName === "business-suite") {
111
+ return horizonThemeFamily ? RegisteredIconCollection.SAPBSIconsV2 : RegisteredIconCollection.SAPBSIconsV1;
112
+ }
113
+
114
+ return collectionName as RegisteredIconCollection;
115
+ };
116
+
117
+ export {
118
+ setDefaultIconCollection,
119
+ getDefaultIconCollection,
120
+ getEffectiveIconCollection,
121
+ RegisteredIconCollection,
122
+ };
123
+
124
+ export type {
125
+ IconCollection,
126
+ };
@@ -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,30 @@ 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 => {
32
+ if (typeof document === "undefined") {
33
+ return false;
34
+ }
35
+
22
36
  const configurationRTL = getConfiguredRTL();
23
37
 
24
- if (configurationRTL !== null) {
38
+ if (configurationRTL !== undefined) {
25
39
  return !!configurationRTL;
26
40
  }
27
41
 
@@ -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
+ };
@@ -0,0 +1,57 @@
1
+ import type UI5Element from "../UI5Element.js";
2
+ import type { Renderer } from "../UI5Element.js";
3
+ import type { TemplateFunction as Template } from "../renderer/executeTemplate.js";
4
+ import type { ComponentStylesData as Styles } from "../types.js";
5
+
6
+ /**
7
+ * Returns a custom element class decorator.
8
+ *
9
+ * @param { string | object } tagNameOrComponentSettings
10
+ * @returns { ClassDecorator }
11
+ */
12
+ const customElement = (tagNameOrComponentSettings: string | {
13
+ tag?: string,
14
+ renderer?: Renderer,
15
+ styles?: Styles,
16
+ template?: Template,
17
+ dependencies?: Array<typeof UI5Element>,
18
+ staticAreaStyles?: Styles,
19
+ staticAreaTemplate?: Template,
20
+ languageAware?: boolean,
21
+ themeAware?: boolean,
22
+ fastNavigation?: boolean,
23
+ }): ClassDecorator => {
24
+ return (target: any) => {
25
+ if (!Object.prototype.hasOwnProperty.call(target, "metadata")) {
26
+ target.metadata = {};
27
+ }
28
+
29
+ if (typeof tagNameOrComponentSettings === "string") {
30
+ target.metadata.tag = tagNameOrComponentSettings;
31
+ return;
32
+ }
33
+
34
+ const {
35
+ tag,
36
+ languageAware = false,
37
+ themeAware = false,
38
+ fastNavigation = false,
39
+ } = tagNameOrComponentSettings;
40
+
41
+ target.metadata.tag = tag;
42
+ target.metadata.languageAware = languageAware;
43
+ target.metadata.themeAware = themeAware;
44
+ target.metadata.fastNavigation = fastNavigation;
45
+
46
+ ["render", "renderer", "template", "staticAreaTemplate", "styles", "staticAreaStyles", "dependencies"].forEach((customElementEntity: string) => {
47
+ const _customElementEntity = customElementEntity === "render" ? "renderer" : customElementEntity;
48
+ const customElementEntityValue = tagNameOrComponentSettings[_customElementEntity as keyof typeof tag];
49
+
50
+ customElementEntityValue && Object.defineProperty(target, customElementEntity, {
51
+ get: () => customElementEntityValue,
52
+ });
53
+ });
54
+ };
55
+ };
56
+
57
+ export default customElement;
@@ -0,0 +1,28 @@
1
+ import { EventData } from "../UI5ElementMetadata.js";
2
+
3
+ /**
4
+ * Returns an event class decorator.
5
+ *
6
+ * @param { string } name the event name
7
+ * @param { EventData } data the event data
8
+ * @returns { ClassDecorator }
9
+ */
10
+ const event = (name: string, data: EventData = {}): ClassDecorator => {
11
+ return (target: any) => {
12
+ if (!Object.prototype.hasOwnProperty.call(target, "metadata")) {
13
+ target.metadata = {};
14
+ }
15
+
16
+ const metadata = target.metadata;
17
+ if (!metadata.events) {
18
+ metadata.events = {};
19
+ }
20
+
21
+ const eventsMetadata = metadata.events;
22
+ if (!eventsMetadata[name]) {
23
+ eventsMetadata[name] = data;
24
+ }
25
+ };
26
+ };
27
+
28
+ export default event;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Class decorator, that sets the fastNavigation metadata.
3
+ * @param { any } target the decorated class
4
+ * @returns { void }
5
+ */
6
+ const fastNavigation = (target: any): void => {
7
+ if (!Object.prototype.hasOwnProperty.call(target, "metadata")) {
8
+ target.metadata = {};
9
+ }
10
+
11
+ target.metadata.fastNavigation = true;
12
+ };
13
+
14
+ export default fastNavigation;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Class decorator, that sets the languageAware metadata.
3
+ * @param { any } target the decorated class
4
+ * @returns { void }
5
+ */
6
+ const languageAware = (target: any): void => {
7
+ if (!Object.prototype.hasOwnProperty.call(target, "metadata")) {
8
+ target.metadata = {};
9
+ }
10
+
11
+ target.metadata.languageAware = true;
12
+ };
13
+
14
+ export default languageAware;
@@ -0,0 +1,30 @@
1
+ import type UI5Element from "../UI5Element.js";
2
+ import { Property } from "../UI5ElementMetadata.js";
3
+
4
+ /**
5
+ * Returns a property decorator.
6
+ *
7
+ * @param { Property } propData
8
+ * @returns { PropertyDecorator }
9
+ */
10
+ const property = (propData?: Property): PropertyDecorator => {
11
+ return (target: any, propertyKey: string | symbol) => {
12
+ const ctor = target.constructor as typeof UI5Element;
13
+
14
+ if (!Object.prototype.hasOwnProperty.call(ctor, "metadata")) {
15
+ ctor.metadata = {};
16
+ }
17
+
18
+ const metadata = ctor.metadata;
19
+ if (!metadata.properties) {
20
+ metadata.properties = {};
21
+ }
22
+
23
+ const propsMetadata = metadata.properties;
24
+ if (!propsMetadata[propertyKey as string]) {
25
+ propsMetadata[propertyKey as string] = propData || { type: String };
26
+ }
27
+ };
28
+ };
29
+
30
+ export default property;
@@ -0,0 +1,49 @@
1
+ import type UI5Element from "../UI5Element.js";
2
+ import { Slot } from "../UI5ElementMetadata.js";
3
+
4
+ /**
5
+ * Returns a slot decorator.
6
+ *
7
+ * @param { Slot } slotData
8
+ * @returns { PropertyDecorator }
9
+ */
10
+ const slot = (slotData?: Slot): PropertyDecorator => {
11
+ return (target: any, slotKey: string | symbol) => {
12
+ const ctor = target.constructor as typeof UI5Element;
13
+
14
+ if (!Object.prototype.hasOwnProperty.call(ctor, "metadata")) {
15
+ ctor.metadata = {};
16
+ }
17
+
18
+ const metadata = ctor.metadata;
19
+ if (!metadata.slots) {
20
+ metadata.slots = {};
21
+ }
22
+
23
+ const slotMetadata = metadata.slots;
24
+
25
+ if (slotData?.default && slotMetadata.default) {
26
+ throw new Error("Only one slot can be the default slot.");
27
+ }
28
+
29
+ const key = slotData?.default ? "default" : slotKey as string;
30
+ slotData = slotData || { type: HTMLElement };
31
+
32
+ if (!slotData.type) {
33
+ slotData.type = HTMLElement;
34
+ }
35
+
36
+ if (!slotMetadata[key]) {
37
+ slotMetadata[key] = slotData;
38
+ }
39
+
40
+ if (slotData.default) {
41
+ delete slotMetadata.default.default;
42
+ slotMetadata.default.propertyName = slotKey as string;
43
+ }
44
+
45
+ ctor.metadata.managedSlots = true;
46
+ };
47
+ };
48
+
49
+ export default slot;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Class decorator, that sets the themeAware metadata.
3
+ * @param { any } target the decorated class
4
+ * @returns { void }
5
+ */
6
+ const themeAware = (target: any): void => {
7
+ if (!Object.prototype.hasOwnProperty.call(target, "metadata")) {
8
+ target.metadata = {};
9
+ }
10
+
11
+ target.metadata.themeAware = true;
12
+ };
13
+
14
+ export default themeAware;