@ui5/webcomponents-base 0.0.0-4821618b2 → 0.0.0-49cef2d02

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 (687) hide show
  1. package/.eslintignore +4 -2
  2. package/CHANGELOG.md +316 -0
  3. package/README.md +53 -7
  4. package/bundle.esm.js +18 -12
  5. package/dist/AssetRegistry.d.ts +5 -0
  6. package/dist/AssetRegistry.js +2 -7
  7. package/dist/AssetRegistry.js.map +1 -0
  8. package/dist/Boot.d.ts +8 -0
  9. package/dist/Boot.js +31 -30
  10. package/dist/Boot.js.map +1 -0
  11. package/dist/CSP.d.ts +30 -0
  12. package/dist/CSP.js +51 -0
  13. package/dist/CSP.js.map +1 -0
  14. package/dist/CustomElementsRegistry.d.ts +5 -0
  15. package/dist/CustomElementsRegistry.js +69 -30
  16. package/dist/CustomElementsRegistry.js.map +1 -0
  17. package/dist/CustomElementsScope.d.ts +7 -0
  18. package/dist/CustomElementsScope.js +11 -108
  19. package/dist/CustomElementsScope.js.map +1 -0
  20. package/dist/CustomElementsScopeUtils.d.ts +55 -0
  21. package/dist/CustomElementsScopeUtils.js +90 -0
  22. package/dist/CustomElementsScopeUtils.js.map +1 -0
  23. package/dist/DOMObserver.d.ts +11 -0
  24. package/dist/DOMObserver.js +12 -54
  25. package/dist/DOMObserver.js.map +1 -0
  26. package/dist/Device.d.ts +12 -0
  27. package/dist/Device.js +63 -72
  28. package/dist/Device.js.map +1 -0
  29. package/dist/EventProvider.d.ts +25 -0
  30. package/dist/EventProvider.js +67 -88
  31. package/dist/EventProvider.js.map +1 -0
  32. package/dist/FeaturesRegistry.d.ts +3 -0
  33. package/dist/FeaturesRegistry.js +5 -7
  34. package/dist/FeaturesRegistry.js.map +1 -0
  35. package/dist/FontFace.d.ts +2 -0
  36. package/dist/FontFace.js +17 -110
  37. package/dist/FontFace.js.map +1 -0
  38. package/dist/InitialConfiguration.d.ts +22 -0
  39. package/dist/InitialConfiguration.js +112 -127
  40. package/dist/InitialConfiguration.js.map +1 -0
  41. package/dist/Keys.d.ts +57 -0
  42. package/dist/Keys.js +174 -235
  43. package/dist/Keys.js.map +1 -0
  44. package/dist/ManagedStyles.d.ts +8 -0
  45. package/dist/ManagedStyles.js +77 -0
  46. package/dist/ManagedStyles.js.map +1 -0
  47. package/dist/MarkedEvents.d.ts +9 -0
  48. package/dist/MarkedEvents.js +15 -0
  49. package/dist/MarkedEvents.js.map +1 -0
  50. package/dist/MediaRange.d.ts +37 -0
  51. package/dist/MediaRange.js +54 -65
  52. package/dist/MediaRange.js.map +1 -0
  53. package/dist/PropertiesFileFormat.d.ts +8 -0
  54. package/dist/PropertiesFileFormat.js +72 -82
  55. package/dist/PropertiesFileFormat.js.map +1 -0
  56. package/dist/Render.d.ts +47 -0
  57. package/dist/Render.js +82 -112
  58. package/dist/Render.js.map +1 -0
  59. package/dist/RenderQueue.d.ts +19 -0
  60. package/dist/RenderQueue.js +52 -62
  61. package/dist/RenderQueue.js.map +1 -0
  62. package/dist/Runtimes.d.ts +27 -0
  63. package/dist/Runtimes.js +86 -0
  64. package/dist/Runtimes.js.map +1 -0
  65. package/dist/StaticArea.d.ts +0 -0
  66. package/dist/StaticArea.js +4 -1
  67. package/dist/StaticArea.js.map +1 -0
  68. package/dist/StaticAreaItem.d.ts +36 -0
  69. package/dist/StaticAreaItem.js +86 -83
  70. package/dist/StaticAreaItem.js.map +1 -0
  71. package/dist/SystemCSSVars.d.ts +2 -0
  72. package/dist/SystemCSSVars.js +6 -28
  73. package/dist/SystemCSSVars.js.map +1 -0
  74. package/dist/Theming.d.ts +3 -0
  75. package/dist/Theming.js +1 -1
  76. package/dist/Theming.js.map +1 -0
  77. package/dist/UI5Element.d.ts +373 -0
  78. package/dist/UI5Element.js +930 -997
  79. package/dist/UI5Element.js.map +1 -0
  80. package/dist/UI5ElementMetadata.d.ts +150 -0
  81. package/dist/UI5ElementMetadata.js +278 -298
  82. package/dist/UI5ElementMetadata.js.map +1 -0
  83. package/dist/animations/AnimationQueue.d.ts +8 -0
  84. package/dist/animations/AnimationQueue.js +31 -38
  85. package/dist/animations/AnimationQueue.js.map +1 -0
  86. package/dist/animations/animate.d.ts +14 -0
  87. package/dist/animations/animate.js +46 -51
  88. package/dist/animations/animate.js.map +1 -0
  89. package/dist/animations/scroll.d.ts +5 -0
  90. package/dist/animations/scroll.js +18 -27
  91. package/dist/animations/scroll.js.map +1 -0
  92. package/dist/animations/slideDown.d.ts +5 -0
  93. package/dist/animations/slideDown.js +53 -78
  94. package/dist/animations/slideDown.js.map +1 -0
  95. package/dist/animations/slideUp.d.ts +5 -0
  96. package/dist/animations/slideUp.js +49 -70
  97. package/dist/animations/slideUp.js.map +1 -0
  98. package/dist/api.json +1 -0
  99. package/dist/asset-registries/Icons.d.ts +30 -0
  100. package/dist/asset-registries/Icons.js +87 -104
  101. package/dist/asset-registries/Icons.js.map +1 -0
  102. package/dist/asset-registries/Illustrations.d.ts +17 -0
  103. package/dist/asset-registries/Illustrations.js +41 -18
  104. package/dist/asset-registries/Illustrations.js.map +1 -0
  105. package/dist/asset-registries/LocaleData.d.ts +7 -0
  106. package/dist/asset-registries/LocaleData.js +104 -118
  107. package/dist/asset-registries/LocaleData.js.map +1 -0
  108. package/dist/asset-registries/Themes.d.ts +10 -0
  109. package/dist/asset-registries/Themes.js +38 -66
  110. package/dist/asset-registries/Themes.js.map +1 -0
  111. package/dist/asset-registries/i18n.d.ts +23 -0
  112. package/dist/asset-registries/i18n.js +55 -81
  113. package/dist/asset-registries/i18n.js.map +1 -0
  114. package/dist/assets/bundle.esm.90eb65b3.js +56 -0
  115. package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
  116. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  117. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  118. package/dist/config/AnimationMode.d.ts +14 -0
  119. package/dist/config/AnimationMode.js +21 -18
  120. package/dist/config/AnimationMode.js.map +1 -0
  121. package/dist/config/CalendarType.d.ts +8 -0
  122. package/dist/config/CalendarType.js +13 -12
  123. package/dist/config/CalendarType.js.map +1 -0
  124. package/dist/config/FormatSettings.d.ts +11 -0
  125. package/dist/config/FormatSettings.js +10 -8
  126. package/dist/config/FormatSettings.js.map +1 -0
  127. package/dist/config/Icons.d.ts +30 -0
  128. package/dist/config/Icons.js +48 -0
  129. package/dist/config/Icons.js.map +1 -0
  130. package/dist/config/Language.d.ts +31 -0
  131. package/dist/config/Language.js +31 -43
  132. package/dist/config/Language.js.map +1 -0
  133. package/dist/config/NoConflict.d.ts +20 -0
  134. package/dist/config/NoConflict.js +40 -41
  135. package/dist/config/NoConflict.js.map +1 -0
  136. package/dist/config/RTL.d.ts +7 -0
  137. package/dist/config/RTL.js +23 -20
  138. package/dist/config/RTL.js.map +1 -0
  139. package/dist/config/Theme.d.ts +28 -0
  140. package/dist/config/Theme.js +45 -22
  141. package/dist/config/Theme.js.map +1 -0
  142. package/dist/config/ThemeRoots.d.ts +4 -0
  143. package/dist/config/ThemeRoots.js +28 -0
  144. package/dist/config/ThemeRoots.js.map +1 -0
  145. package/dist/css/BusyIndicator.css +80 -0
  146. package/dist/css/FontFace.css +66 -0
  147. package/dist/css/OverrideFontFace.css +32 -0
  148. package/dist/css/SystemCSSVars.css +17 -0
  149. package/dist/decorators/customElement.d.ts +8 -0
  150. package/dist/decorators/customElement.js +16 -0
  151. package/dist/decorators/customElement.js.map +1 -0
  152. package/dist/decorators/event.d.ts +10 -0
  153. package/dist/decorators/event.js +24 -0
  154. package/dist/decorators/event.js.map +1 -0
  155. package/dist/decorators/fastNavigation.d.ts +7 -0
  156. package/dist/decorators/fastNavigation.js +13 -0
  157. package/dist/decorators/fastNavigation.js.map +1 -0
  158. package/dist/decorators/languageAware.d.ts +7 -0
  159. package/dist/decorators/languageAware.js +13 -0
  160. package/dist/decorators/languageAware.js.map +1 -0
  161. package/dist/decorators/property.d.ts +9 -0
  162. package/dist/decorators/property.js +24 -0
  163. package/dist/decorators/property.js.map +1 -0
  164. package/dist/decorators/slot.d.ts +9 -0
  165. package/dist/decorators/slot.js +37 -0
  166. package/dist/decorators/slot.js.map +1 -0
  167. package/dist/decorators/themeAware.d.ts +7 -0
  168. package/dist/decorators/themeAware.js +13 -0
  169. package/dist/decorators/themeAware.js.map +1 -0
  170. package/dist/delegate/ItemNavigation.d.ts +113 -0
  171. package/dist/delegate/ItemNavigation.js +277 -246
  172. package/dist/delegate/ItemNavigation.js.map +1 -0
  173. package/dist/delegate/ResizeHandler.d.ts +24 -0
  174. package/dist/delegate/ResizeHandler.js +68 -91
  175. package/dist/delegate/ResizeHandler.js.map +1 -0
  176. package/dist/delegate/ScrollEnablement.d.ts +48 -0
  177. package/dist/delegate/ScrollEnablement.js +157 -180
  178. package/dist/delegate/ScrollEnablement.js.map +1 -0
  179. package/dist/features/F6Navigation.d.ts +16 -0
  180. package/dist/features/F6Navigation.js +112 -0
  181. package/dist/features/F6Navigation.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 +96 -0
  187. package/dist/features/OpenUI5Enablement.js.map +1 -0
  188. package/dist/features/OpenUI5Support.d.ts +23 -0
  189. package/dist/features/OpenUI5Support.js +91 -119
  190. package/dist/features/OpenUI5Support.js.map +1 -0
  191. package/dist/generated/AssetParameters.js +1 -1
  192. package/dist/generated/VersionInfo.js +10 -0
  193. package/dist/generated/css/BusyIndicator.css.js +5 -0
  194. package/dist/generated/css/FontFace.css.js +5 -0
  195. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  196. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  197. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  198. package/dist/getSharedResource.d.ts +11 -0
  199. package/dist/getSharedResource.js +12 -16
  200. package/dist/getSharedResource.js.map +1 -0
  201. package/dist/i18nBundle.d.ts +43 -0
  202. package/dist/i18nBundle.js +67 -44
  203. package/dist/i18nBundle.js.map +1 -0
  204. package/dist/locale/Locale.d.ts +22 -0
  205. package/dist/locale/Locale.js +75 -87
  206. package/dist/locale/Locale.js.map +1 -0
  207. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  208. package/dist/locale/RTLAwareRegistry.js +6 -11
  209. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  210. package/dist/locale/applyDirection.d.ts +10 -0
  211. package/dist/locale/applyDirection.js +7 -7
  212. package/dist/locale/applyDirection.js.map +1 -0
  213. package/dist/locale/directionChange.d.ts +15 -0
  214. package/dist/locale/directionChange.js +7 -15
  215. package/dist/locale/directionChange.js.map +1 -0
  216. package/dist/locale/getEffectiveDir.d.ts +2 -0
  217. package/dist/locale/getEffectiveDir.js +20 -24
  218. package/dist/locale/getEffectiveDir.js.map +1 -0
  219. package/dist/locale/getLocale.d.ts +7 -0
  220. package/dist/locale/getLocale.js +26 -29
  221. package/dist/locale/getLocale.js.map +1 -0
  222. package/dist/locale/languageChange.d.ts +5 -0
  223. package/dist/locale/languageChange.js +8 -16
  224. package/dist/locale/languageChange.js.map +1 -0
  225. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  226. package/dist/locale/nextFallbackLocale.js +15 -19
  227. package/dist/locale/nextFallbackLocale.js.map +1 -0
  228. package/dist/locale/normalizeLocale.d.ts +7 -0
  229. package/dist/locale/normalizeLocale.js +34 -41
  230. package/dist/locale/normalizeLocale.js.map +1 -0
  231. package/dist/renderer/LitRenderer.d.ts +14 -0
  232. package/dist/renderer/LitRenderer.js +33 -23
  233. package/dist/renderer/LitRenderer.js.map +1 -0
  234. package/dist/renderer/directives/style-map.js +72 -0
  235. package/dist/renderer/executeTemplate.d.ts +13 -0
  236. package/dist/renderer/executeTemplate.js +20 -7
  237. package/dist/renderer/executeTemplate.js.map +1 -0
  238. package/dist/sap/base/Log.js +28 -37
  239. package/dist/sap/base/assert.js +5 -10
  240. package/dist/sap/base/security/URLListValidator.js +13 -2
  241. package/dist/sap/base/security/encodeCSS.js +14 -0
  242. package/dist/sap/base/security/encodeXML.js +23 -0
  243. package/dist/sap/base/strings/toHex.js +8 -0
  244. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  245. package/dist/theming/CustomStyle.d.ts +6 -0
  246. package/dist/theming/CustomStyle.js +37 -31
  247. package/dist/theming/CustomStyle.js.map +1 -0
  248. package/dist/theming/ThemeLoaded.d.ts +5 -0
  249. package/dist/theming/ThemeLoaded.js +8 -16
  250. package/dist/theming/ThemeLoaded.js.map +1 -0
  251. package/dist/theming/applyTheme.d.ts +2 -0
  252. package/dist/theming/applyTheme.js +62 -65
  253. package/dist/theming/applyTheme.js.map +1 -0
  254. package/dist/theming/getConstructableStyle.d.ts +9 -0
  255. package/dist/theming/getConstructableStyle.js +12 -17
  256. package/dist/theming/getConstructableStyle.js.map +1 -0
  257. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  258. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  259. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  260. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  261. package/dist/theming/getEffectiveStyle.js +25 -23
  262. package/dist/theming/getEffectiveStyle.js.map +1 -0
  263. package/dist/theming/getStylesString.d.ts +3 -0
  264. package/dist/theming/getStylesString.js +9 -11
  265. package/dist/theming/getStylesString.js.map +1 -0
  266. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  267. package/dist/theming/getThemeDesignerTheme.js +73 -60
  268. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  269. package/dist/theming/preloadLinks.d.ts +3 -0
  270. package/dist/theming/preloadLinks.js +19 -0
  271. package/dist/theming/preloadLinks.js.map +1 -0
  272. package/dist/thirdparty/_merge.d.ts +2 -0
  273. package/dist/thirdparty/_merge.js +7 -4
  274. package/dist/thirdparty/_merge.js.map +1 -0
  275. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  276. package/dist/thirdparty/isPlainObject.js +11 -10
  277. package/dist/thirdparty/isPlainObject.js.map +1 -0
  278. package/dist/thirdparty/merge.d.ts +2 -0
  279. package/dist/thirdparty/merge.js +4 -8
  280. package/dist/thirdparty/merge.js.map +1 -0
  281. package/dist/types/AnimationMode.d.ts +32 -0
  282. package/dist/types/AnimationMode.js +33 -6
  283. package/dist/types/AnimationMode.js.map +1 -0
  284. package/dist/types/CSSColor.d.ts +16 -0
  285. package/dist/types/CSSColor.js +15 -5
  286. package/dist/types/CSSColor.js.map +1 -0
  287. package/dist/types/CalendarType.d.ts +37 -0
  288. package/dist/types/CalendarType.js +35 -18
  289. package/dist/types/CalendarType.js.map +1 -0
  290. package/dist/types/DOMReference.d.ts +17 -0
  291. package/dist/types/DOMReference.js +25 -0
  292. package/dist/types/DOMReference.js.map +1 -0
  293. package/dist/types/DataType.d.ts +25 -0
  294. package/dist/types/DataType.js +33 -14
  295. package/dist/types/DataType.js.map +1 -0
  296. package/dist/types/Float.d.ts +18 -0
  297. package/dist/types/Float.js +18 -6
  298. package/dist/types/Float.js.map +1 -0
  299. package/dist/types/Integer.d.ts +18 -0
  300. package/dist/types/Integer.js +18 -5
  301. package/dist/types/Integer.js.map +1 -0
  302. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  303. package/dist/types/InvisibleMessageMode.js +20 -23
  304. package/dist/types/InvisibleMessageMode.js.map +1 -0
  305. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  306. package/dist/types/ItemNavigationBehavior.js +22 -12
  307. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  308. package/dist/types/NavigationMode.d.ts +32 -0
  309. package/dist/types/NavigationMode.js +33 -6
  310. package/dist/types/NavigationMode.js.map +1 -0
  311. package/dist/types/ValueState.d.ts +42 -0
  312. package/dist/types/ValueState.js +41 -19
  313. package/dist/types/ValueState.js.map +1 -0
  314. package/dist/types.d.ts +18 -0
  315. package/dist/types.js +2 -0
  316. package/dist/types.js.map +1 -0
  317. package/dist/updateShadowRoot.d.ts +8 -0
  318. package/dist/updateShadowRoot.js +23 -15
  319. package/dist/updateShadowRoot.js.map +1 -0
  320. package/dist/util/AriaLabelHelper.d.ts +6 -0
  321. package/dist/util/AriaLabelHelper.js +37 -34
  322. package/dist/util/AriaLabelHelper.js.map +1 -0
  323. package/dist/util/Caret.d.ts +7 -0
  324. package/dist/util/Caret.js +16 -38
  325. package/dist/util/Caret.js.map +1 -0
  326. package/dist/util/ColorConversion.d.ts +30 -0
  327. package/dist/util/ColorConversion.js +315 -348
  328. package/dist/util/ColorConversion.js.map +1 -0
  329. package/dist/util/FetchHelper.d.ts +3 -0
  330. package/dist/util/FetchHelper.js +19 -25
  331. package/dist/util/FetchHelper.js.map +1 -0
  332. package/dist/util/FocusableElements.d.ts +4 -0
  333. package/dist/util/FocusableElements.js +57 -72
  334. package/dist/util/FocusableElements.js.map +1 -0
  335. package/dist/util/HTMLSanitizer.d.ts +3 -0
  336. package/dist/util/HTMLSanitizer.js +4 -5
  337. package/dist/util/HTMLSanitizer.js.map +1 -0
  338. package/dist/util/InvisibleMessage.d.ts +10 -0
  339. package/dist/util/InvisibleMessage.js +47 -39
  340. package/dist/util/InvisibleMessage.js.map +1 -0
  341. package/dist/util/PopupUtils.d.ts +7 -0
  342. package/dist/util/PopupUtils.js +57 -76
  343. package/dist/util/PopupUtils.js.map +1 -0
  344. package/dist/util/SlotsHelper.d.ts +9 -0
  345. package/dist/util/SlotsHelper.js +22 -35
  346. package/dist/util/SlotsHelper.js.map +1 -0
  347. package/dist/util/StringHelper.d.ts +3 -0
  348. package/dist/util/StringHelper.js +17 -20
  349. package/dist/util/StringHelper.js.map +1 -0
  350. package/dist/util/TabbableElements.d.ts +17 -0
  351. package/dist/util/TabbableElements.js +53 -43
  352. package/dist/util/TabbableElements.js.map +1 -0
  353. package/dist/util/arraysAreEqual.d.ts +2 -0
  354. package/dist/util/arraysAreEqual.js +10 -12
  355. package/dist/util/arraysAreEqual.js.map +1 -0
  356. package/dist/util/clamp.d.ts +9 -0
  357. package/dist/util/clamp.js +2 -2
  358. package/dist/util/clamp.js.map +1 -0
  359. package/dist/util/createLinkInHead.d.ts +7 -0
  360. package/dist/util/createLinkInHead.js +21 -0
  361. package/dist/util/createLinkInHead.js.map +1 -0
  362. package/dist/util/createStyleInHead.d.ts +8 -0
  363. package/dist/util/createStyleInHead.js +10 -10
  364. package/dist/util/createStyleInHead.js.map +1 -0
  365. package/dist/util/debounce.d.ts +2 -0
  366. package/dist/util/debounce.js +6 -8
  367. package/dist/util/debounce.js.map +1 -0
  368. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  369. package/dist/util/detectNavigatorLanguage.js +7 -10
  370. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  371. package/dist/util/escapeRegex.d.ts +8 -0
  372. package/dist/util/escapeRegex.js +11 -0
  373. package/dist/util/escapeRegex.js.map +1 -0
  374. package/dist/util/formatMessage.d.ts +2 -0
  375. package/dist/util/formatMessage.js +15 -19
  376. package/dist/util/formatMessage.js.map +1 -0
  377. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  378. package/dist/util/generateHighlightedMarkup.js +41 -0
  379. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  380. package/dist/util/getActiveElement.d.ts +2 -0
  381. package/dist/util/getActiveElement.js +6 -8
  382. package/dist/util/getActiveElement.js.map +1 -0
  383. package/dist/util/getClassCopy.d.ts +400 -0
  384. package/dist/util/getClassCopy.js +7 -7
  385. package/dist/util/getClassCopy.js.map +1 -0
  386. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  387. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  388. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  389. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  390. package/dist/util/getEffectiveContentDensity.js +2 -3
  391. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  392. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  393. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  394. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  395. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  396. package/dist/util/getFastNavigationGroups.js +51 -0
  397. package/dist/util/getFastNavigationGroups.js.map +1 -0
  398. package/dist/util/getFileExtension.d.ts +12 -0
  399. package/dist/util/getFileExtension.js +9 -11
  400. package/dist/util/getFileExtension.js.map +1 -0
  401. package/dist/util/getNormalizedTarget.d.ts +7 -0
  402. package/dist/util/getNormalizedTarget.js +14 -0
  403. package/dist/util/getNormalizedTarget.js.map +1 -0
  404. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  405. package/dist/util/getSingletonElementInstance.js +7 -10
  406. package/dist/util/getSingletonElementInstance.js.map +1 -0
  407. package/dist/util/isElementClickable.d.ts +2 -0
  408. package/dist/util/isElementClickable.js +16 -0
  409. package/dist/util/isElementClickable.js.map +1 -0
  410. package/dist/util/isElementHidden.d.ts +2 -0
  411. package/dist/util/isElementHidden.js +8 -0
  412. package/dist/util/isElementHidden.js.map +1 -0
  413. package/dist/util/isElementInView.d.ts +6 -0
  414. package/dist/util/isElementInView.js +6 -9
  415. package/dist/util/isElementInView.js.map +1 -0
  416. package/dist/util/isElementTabbable.d.ts +9 -0
  417. package/dist/util/isElementTabbable.js +30 -0
  418. package/dist/util/isElementTabbable.js.map +1 -0
  419. package/dist/util/isValidPropertyName.d.ts +8 -0
  420. package/dist/util/isValidPropertyName.js +16 -17
  421. package/dist/util/isValidPropertyName.js.map +1 -0
  422. package/dist/util/whenDOMReady.d.ts +2 -0
  423. package/dist/util/whenDOMReady.js +11 -10
  424. package/dist/util/whenDOMReady.js.map +1 -0
  425. package/dist/util/willShowContent.d.ts +2 -0
  426. package/dist/util/willShowContent.js +7 -0
  427. package/dist/util/willShowContent.js.map +1 -0
  428. package/dist/validateThemeRoot.d.ts +2 -0
  429. package/dist/validateThemeRoot.js +47 -0
  430. package/dist/validateThemeRoot.js.map +1 -0
  431. package/global.d.ts +44 -0
  432. package/lib/generate-asset-parameters/index.js +8 -5
  433. package/lib/generate-styles/index.js +26 -0
  434. package/lib/generate-version-info/index.js +32 -0
  435. package/package-scripts.js +37 -32
  436. package/package.json +11 -12
  437. package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
  438. package/src/Boot.ts +61 -0
  439. package/src/CSP.ts +66 -0
  440. package/src/CustomElementsRegistry.ts +98 -0
  441. package/src/CustomElementsScope.ts +33 -0
  442. package/src/{CustomElementsScope.js → CustomElementsScopeUtils.ts} +14 -7
  443. package/src/DOMObserver.ts +28 -0
  444. package/src/{Device.js → Device.ts} +34 -10
  445. package/src/EventProvider.ts +87 -0
  446. package/src/FeaturesRegistry.ts +14 -0
  447. package/src/FontFace.ts +31 -0
  448. package/src/{InitialConfiguration.js → InitialConfiguration.ts} +62 -17
  449. package/src/Keys.ts +295 -0
  450. package/src/ManagedStyles.ts +92 -0
  451. package/src/MarkedEvents.ts +20 -0
  452. package/src/{MediaRange.js → MediaRange.ts} +54 -53
  453. package/src/{PropertiesFileFormat.js → PropertiesFileFormat.ts} +8 -8
  454. package/src/{Render.js → Render.ts} +27 -20
  455. package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
  456. package/src/Runtimes.ts +114 -0
  457. package/src/{StaticArea.js → StaticArea.ts} +0 -0
  458. package/src/{StaticAreaItem.js → StaticAreaItem.ts} +39 -22
  459. package/src/SystemCSSVars.ts +10 -0
  460. package/src/{Theming.js → Theming.ts} +0 -0
  461. package/src/{UI5Element.js → UI5Element.ts} +305 -184
  462. package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +138 -60
  463. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  464. package/src/animations/animate.ts +64 -0
  465. package/src/animations/scroll.ts +21 -0
  466. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  467. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  468. package/src/asset-registries/Icons.ts +162 -0
  469. package/src/asset-registries/Illustrations.ts +75 -0
  470. package/src/asset-registries/{LocaleData.js → LocaleData.ts} +47 -25
  471. package/src/asset-registries/Themes.ts +67 -0
  472. package/src/asset-registries/{i18n.js → i18n.ts} +21 -24
  473. package/src/assets-meta/IconCollectionsAlias.ts +18 -0
  474. package/src/config/AnimationMode.ts +33 -0
  475. package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
  476. package/src/config/FormatSettings.ts +21 -0
  477. package/src/config/Icons.ts +59 -0
  478. package/src/config/{Language.js → Language.ts} +22 -18
  479. package/src/config/NoConflict.ts +67 -0
  480. package/src/config/{RTL.js → RTL.ts} +14 -4
  481. package/src/config/Theme.ts +64 -0
  482. package/src/config/ThemeRoots.ts +41 -0
  483. package/src/css/BusyIndicator.css +80 -0
  484. package/src/css/FontFace.css +66 -0
  485. package/src/css/OverrideFontFace.css +32 -0
  486. package/src/css/SystemCSSVars.css +17 -0
  487. package/src/decorators/customElement.ts +17 -0
  488. package/src/decorators/event.ts +28 -0
  489. package/src/decorators/fastNavigation.ts +14 -0
  490. package/src/decorators/languageAware.ts +14 -0
  491. package/src/decorators/property.ts +30 -0
  492. package/src/decorators/slot.ts +49 -0
  493. package/src/decorators/themeAware.ts +14 -0
  494. package/src/delegate/{ItemNavigation.js → ItemNavigation.ts} +131 -23
  495. package/src/delegate/{ResizeHandler.js → ResizeHandler.ts} +25 -36
  496. package/src/delegate/ScrollEnablement.ts +221 -0
  497. package/src/features/F6Navigation.ts +141 -0
  498. package/src/features/OpenUI5Element.ts +11 -0
  499. package/src/features/OpenUI5Enablement.ts +117 -0
  500. package/src/features/OpenUI5Support.ts +148 -0
  501. package/src/{getSharedResource.js → getSharedResource.ts} +3 -3
  502. package/src/i18nBundle.ts +108 -0
  503. package/src/locale/{Locale.js → Locale.ts} +15 -5
  504. package/src/locale/RTLAwareRegistry.ts +16 -0
  505. package/src/locale/{applyDirection.js → applyDirection.ts} +4 -3
  506. package/src/locale/{directionChange.js → directionChange.ts} +6 -4
  507. package/src/locale/{getEffectiveDir.js → getEffectiveDir.ts} +1 -1
  508. package/src/locale/{getLocale.js → getLocale.ts} +12 -7
  509. package/src/locale/languageChange.ts +24 -0
  510. package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
  511. package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +5 -3
  512. package/src/renderer/LitRenderer.ts +60 -0
  513. package/src/renderer/directives/style-map.js +72 -0
  514. package/src/renderer/executeTemplate.ts +40 -0
  515. package/src/theming/CustomStyle.ts +62 -0
  516. package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
  517. package/src/theming/applyTheme.ts +90 -0
  518. package/src/theming/{getConstructableStyle.js → getConstructableStyle.ts} +5 -4
  519. package/src/theming/getEffectiveLinksHrefs.ts +26 -0
  520. package/src/theming/{getEffectiveStyle.js → getEffectiveStyle.ts} +15 -4
  521. package/src/theming/getStylesString.ts +15 -0
  522. package/src/theming/getThemeDesignerTheme.ts +101 -0
  523. package/src/theming/preloadLinks.ts +24 -0
  524. package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
  525. package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
  526. package/src/thirdparty/merge.ts +5 -0
  527. package/src/types/AnimationMode.ts +33 -0
  528. package/src/types/{CSSColor.js → CSSColor.ts} +12 -1
  529. package/src/types/CalendarType.ts +38 -0
  530. package/src/types/DOMReference.ts +28 -0
  531. package/src/types/DataType.ts +51 -0
  532. package/src/types/Float.ts +25 -0
  533. package/src/types/Integer.ts +25 -0
  534. package/src/types/InvisibleMessageMode.ts +27 -0
  535. package/src/types/ItemNavigationBehavior.ts +26 -0
  536. package/src/types/NavigationMode.ts +33 -0
  537. package/src/types/ValueState.ts +47 -0
  538. package/src/types.ts +30 -0
  539. package/src/updateShadowRoot.ts +37 -0
  540. package/src/util/AriaLabelHelper.ts +63 -0
  541. package/src/util/Caret.ts +28 -0
  542. package/src/util/ColorConversion.ts +399 -0
  543. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  544. package/src/util/FocusableElements.ts +82 -0
  545. package/src/util/{HTMLSanitizer.js → HTMLSanitizer.ts} +2 -0
  546. package/src/util/InvisibleMessage.ts +69 -0
  547. package/src/util/PopupUtils.ts +114 -0
  548. package/src/util/{SlotsHelper.js → SlotsHelper.ts} +9 -13
  549. package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
  550. package/src/util/TabbableElements.ts +70 -0
  551. package/src/util/{arraysAreEqual.js → arraysAreEqual.ts} +1 -1
  552. package/src/util/{clamp.js → clamp.ts} +1 -1
  553. package/src/util/createLinkInHead.ts +25 -0
  554. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  555. package/src/util/{debounce.js → debounce.ts} +5 -4
  556. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
  557. package/src/util/escapeRegex.ts +11 -0
  558. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  559. package/src/util/generateHighlightedMarkup.ts +43 -0
  560. package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
  561. package/src/util/{getClassCopy.js → getClassCopy.ts} +3 -1
  562. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  563. package/src/util/getEffectiveContentDensity.ts +5 -0
  564. package/src/util/getEffectiveScrollbarStyle.ts +5 -0
  565. package/src/util/getFastNavigationGroups.ts +63 -0
  566. package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
  567. package/src/util/getNormalizedTarget.ts +16 -0
  568. package/src/util/{getSingletonElementInstance.js → getSingletonElementInstance.ts} +1 -1
  569. package/src/util/isElementClickable.ts +19 -0
  570. package/src/util/isElementHidden.ts +9 -0
  571. package/src/util/{isElementInView.js → isElementInView.ts} +1 -1
  572. package/src/util/isElementTabbable.ts +37 -0
  573. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +1 -1
  574. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  575. package/src/util/willShowContent.ts +7 -0
  576. package/src/validateThemeRoot.ts +58 -0
  577. package/tsconfig.json +13 -0
  578. package/used-modules.txt +4 -1
  579. package/config/.eslintrc.js +0 -3
  580. package/config/rollup.config.js +0 -1
  581. package/dist/RenderScheduler.js +0 -44
  582. package/dist/animations/config.js +0 -5
  583. package/dist/config/AssetsPath.js +0 -17
  584. package/dist/isLegacyBrowser.js +0 -3
  585. package/dist/resources/bundle.esm.js +0 -26
  586. package/dist/resources/bundle.esm.js.map +0 -1
  587. package/dist/test-resources/assets/Themes.js +0 -17
  588. package/dist/test-resources/elements/Child.js +0 -35
  589. package/dist/test-resources/elements/Generic.js +0 -84
  590. package/dist/test-resources/elements/GenericExt.js +0 -26
  591. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  592. package/dist/test-resources/elements/Parent.js +0 -41
  593. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  594. package/dist/test-resources/pages/AllTestElements.html +0 -39
  595. package/dist/test-resources/pages/Configuration.html +0 -18
  596. package/dist/test-resources/pages/ConfigurationScript.html +0 -34
  597. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  598. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  599. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  600. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  601. package/dist/test-resources/pages/i18n.html +0 -35
  602. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
  603. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
  604. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -93
  605. package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
  606. package/dist/test-resources/specs/StaticArea.spec.js +0 -36
  607. package/dist/test-resources/specs/Theming.spec.js +0 -33
  608. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
  609. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
  610. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
  611. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
  612. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
  613. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
  614. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
  615. package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
  616. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  617. package/dist/types/CSSSize.js +0 -9
  618. package/dist/types/PopupState.js +0 -37
  619. package/dist/util/encodeCSS.js +0 -24
  620. package/dist/util/findNodeOwner.js +0 -35
  621. package/dist/util/isDescendantOf.js +0 -15
  622. package/dist/util/isNodeClickable.js +0 -19
  623. package/dist/util/isNodeHidden.js +0 -9
  624. package/dist/util/isNodeTabbable.js +0 -28
  625. package/dist/util/setToArray.js +0 -10
  626. package/hash.txt +0 -1
  627. package/src/Boot.js +0 -43
  628. package/src/CustomElementsRegistry.js +0 -39
  629. package/src/DOMObserver.js +0 -65
  630. package/src/EventProvider.js +0 -91
  631. package/src/FeaturesRegistry.js +0 -11
  632. package/src/FontFace.js +0 -118
  633. package/src/Keys.js +0 -239
  634. package/src/RenderScheduler.js +0 -44
  635. package/src/SystemCSSVars.js +0 -31
  636. package/src/animations/animate.js +0 -53
  637. package/src/animations/config.js +0 -5
  638. package/src/animations/scroll.js +0 -28
  639. package/src/asset-registries/Icons.js +0 -121
  640. package/src/asset-registries/Illustrations.js +0 -23
  641. package/src/asset-registries/Themes.js +0 -78
  642. package/src/config/AnimationMode.js +0 -23
  643. package/src/config/AssetsPath.js +0 -17
  644. package/src/config/FormatSettings.js +0 -13
  645. package/src/config/NoConflict.js +0 -51
  646. package/src/config/Theme.js +0 -28
  647. package/src/delegate/ScrollEnablement.js +0 -188
  648. package/src/features/OpenUI5Support.js +0 -125
  649. package/src/i18nBundle.js +0 -55
  650. package/src/isLegacyBrowser.js +0 -3
  651. package/src/locale/RTLAwareRegistry.js +0 -14
  652. package/src/locale/languageChange.js +0 -22
  653. package/src/renderer/LitRenderer.js +0 -31
  654. package/src/renderer/executeTemplate.js +0 -17
  655. package/src/theming/CustomStyle.js +0 -40
  656. package/src/theming/applyTheme.js +0 -78
  657. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  658. package/src/theming/getStylesString.js +0 -13
  659. package/src/theming/getThemeDesignerTheme.js +0 -67
  660. package/src/thirdparty/merge.js +0 -10
  661. package/src/types/AnimationMode.js +0 -7
  662. package/src/types/CSSSize.js +0 -9
  663. package/src/types/CalendarType.js +0 -22
  664. package/src/types/DataType.js +0 -25
  665. package/src/types/Float.js +0 -10
  666. package/src/types/Integer.js +0 -9
  667. package/src/types/InvisibleMessageMode.js +0 -30
  668. package/src/types/ItemNavigationBehavior.js +0 -16
  669. package/src/types/NavigationMode.js +0 -7
  670. package/src/types/PopupState.js +0 -37
  671. package/src/types/ValueState.js +0 -22
  672. package/src/updateShadowRoot.js +0 -26
  673. package/src/util/AriaLabelHelper.js +0 -41
  674. package/src/util/Caret.js +0 -45
  675. package/src/util/ColorConversion.js +0 -370
  676. package/src/util/FocusableElements.js +0 -77
  677. package/src/util/InvisibleMessage.js +0 -48
  678. package/src/util/PopupUtils.js +0 -93
  679. package/src/util/TabbableElements.js +0 -47
  680. package/src/util/encodeCSS.js +0 -24
  681. package/src/util/findNodeOwner.js +0 -35
  682. package/src/util/getEffectiveContentDensity.js +0 -5
  683. package/src/util/isDescendantOf.js +0 -15
  684. package/src/util/isNodeClickable.js +0 -19
  685. package/src/util/isNodeHidden.js +0 -9
  686. package/src/util/isNodeTabbable.js +0 -28
  687. package/src/util/setToArray.js +0 -10
@@ -2,18 +2,22 @@ import EventProvider from "./EventProvider.js";
2
2
  import RenderQueue from "./RenderQueue.js";
3
3
  import { getAllRegisteredTags } from "./CustomElementsRegistry.js";
4
4
  import { isRtlAware } from "./locale/RTLAwareRegistry.js";
5
+ import type UI5Element from "./UI5Element.js";
6
+ import { PromiseResolve, Timeout } from "./types.js";
5
7
 
6
- const registeredElements = new Set();
7
- const eventProvider = new EventProvider();
8
+ type BeforeComponentRenderCallback = (webComponent: UI5Element) => void;
9
+
10
+ const registeredElements = new Set<UI5Element>();
11
+ const eventProvider = new EventProvider<UI5Element, void>();
8
12
 
9
13
  const invalidatedWebComponents = new RenderQueue(); // Queue for invalidated web components
10
14
 
11
- let renderTaskPromise,
12
- renderTaskPromiseResolve;
15
+ let renderTaskPromise: Promise<void> | undefined,
16
+ renderTaskPromiseResolve: PromiseResolve | undefined;
13
17
 
14
- let mutationObserverTimer;
18
+ let mutationObserverTimer: Timeout | undefined;
15
19
 
16
- let queuePromise;
20
+ let queuePromise: Promise<void> | null;
17
21
 
18
22
  /**
19
23
  * Schedules a render task (if not already scheduled) to render the component
@@ -21,7 +25,7 @@ let queuePromise;
21
25
  * @param webComponent
22
26
  * @returns {Promise}
23
27
  */
24
- const renderDeferred = async webComponent => {
28
+ const renderDeferred = async (webComponent: UI5Element) => {
25
29
  // Enqueue the web component
26
30
  invalidatedWebComponents.add(webComponent);
27
31
 
@@ -34,7 +38,7 @@ const renderDeferred = async webComponent => {
34
38
  *
35
39
  * @param webComponent
36
40
  */
37
- const renderImmediately = webComponent => {
41
+ const renderImmediately = (webComponent: UI5Element) => {
38
42
  eventProvider.fireEvent("beforeComponentRender", webComponent);
39
43
  registeredElements.add(webComponent);
40
44
  webComponent._render();
@@ -45,7 +49,7 @@ const renderImmediately = webComponent => {
45
49
  *
46
50
  * @param webComponent
47
51
  */
48
- const cancelRender = webComponent => {
52
+ const cancelRender = (webComponent: UI5Element) => {
49
53
  invalidatedWebComponents.remove(webComponent);
50
54
  registeredElements.delete(webComponent);
51
55
  };
@@ -55,7 +59,7 @@ const cancelRender = webComponent => {
55
59
  */
56
60
  const scheduleRenderTask = async () => {
57
61
  if (!queuePromise) {
58
- queuePromise = new Promise(resolve => {
62
+ queuePromise = new Promise<void>(resolve => {
59
63
  window.requestAnimationFrame(() => {
60
64
  // Render all components in the queue
61
65
 
@@ -91,7 +95,7 @@ const whenDOMUpdated = () => {
91
95
  return renderTaskPromise;
92
96
  }
93
97
 
94
- renderTaskPromise = new Promise(resolve => {
98
+ renderTaskPromise = new Promise<void>(resolve => {
95
99
  renderTaskPromiseResolve = resolve;
96
100
  window.requestAnimationFrame(() => {
97
101
  if (invalidatedWebComponents.isEmpty()) {
@@ -135,30 +139,33 @@ const _resolveTaskPromise = () => {
135
139
  * reRenderAllUI5Elements({tag: "ui5-button"}) -> re-renders only instances of ui5-button
136
140
  * reRenderAllUI5Elements({rtlAware: true}) -> re-renders only rtlAware components
137
141
  * reRenderAllUI5Elements({languageAware: true}) -> re-renders only languageAware components
142
+ * reRenderAllUI5Elements({themeAware: true}) -> re-renders only themeAware components
138
143
  * reRenderAllUI5Elements({rtlAware: true, languageAware: true}) -> re-renders components that are rtlAware or languageAware
139
144
  * etc...
140
145
  *
141
146
  * @public
142
- * @param {Object|undefined} filters - Object with keys that can be "rtlAware" or "languageAware"
147
+ * @param {object|undefined} filters - Object with keys that can be "rtlAware" or "languageAware"
143
148
  * @returns {Promise<void>}
144
149
  */
145
- const reRenderAllUI5Elements = async filters => {
146
- registeredElements.forEach(element => {
147
- const tag = element.constructor.getMetadata().getTag();
148
- const rtlAware = isRtlAware(element.constructor);
149
- const languageAware = element.constructor.getMetadata().isLanguageAware();
150
- if (!filters || (filters.tag === tag) || (filters.rtlAware && rtlAware) || (filters.languageAware && languageAware)) {
150
+ const reRenderAllUI5Elements = async (filters?: {tag?: string, rtlAware?: boolean, languageAware?: boolean, themeAware?: boolean}) => {
151
+ registeredElements.forEach((element: UI5Element) => {
152
+ const ctor = element.constructor as typeof UI5Element;
153
+ const tag = ctor.getMetadata().getTag();
154
+ const rtlAware = isRtlAware(ctor);
155
+ const languageAware = ctor.getMetadata().isLanguageAware();
156
+ const themeAware = ctor.getMetadata().isThemeAware();
157
+ if (!filters || (filters.tag === tag) || (filters.rtlAware && rtlAware) || (filters.languageAware && languageAware) || (filters.themeAware && themeAware)) {
151
158
  renderDeferred(element);
152
159
  }
153
160
  });
154
161
  await renderFinished();
155
162
  };
156
163
 
157
- const attachBeforeComponentRender = listener => {
164
+ const attachBeforeComponentRender = (listener: BeforeComponentRenderCallback) => {
158
165
  eventProvider.attachEvent("beforeComponentRender", listener);
159
166
  };
160
167
 
161
- const detachBeforeComponentRender = listener => {
168
+ const detachBeforeComponentRender = (listener: BeforeComponentRenderCallback) => {
162
169
  eventProvider.detachEvent("beforeComponentRender", listener);
163
170
  };
164
171
 
@@ -1,12 +1,17 @@
1
+ import type UI5Element from "./UI5Element.js";
2
+
1
3
  const MAX_PROCESS_COUNT = 10;
2
4
 
3
5
  class RenderQueue {
6
+ list: Array<UI5Element>;
7
+ lookup: Set<UI5Element>;
8
+
4
9
  constructor() {
5
10
  this.list = []; // Used to store the web components in order
6
11
  this.lookup = new Set(); // Used for faster search
7
12
  }
8
13
 
9
- add(webComponent) {
14
+ add(webComponent: UI5Element) {
10
15
  if (this.lookup.has(webComponent)) {
11
16
  return;
12
17
  }
@@ -15,7 +20,7 @@ class RenderQueue {
15
20
  this.lookup.add(webComponent);
16
21
  }
17
22
 
18
- remove(webComponent) {
23
+ remove(webComponent: UI5Element) {
19
24
  if (!this.lookup.has(webComponent)) {
20
25
  return;
21
26
  }
@@ -36,7 +41,7 @@ class RenderQueue {
36
41
  return this.list.length === 0;
37
42
  }
38
43
 
39
- isAdded(webComponent) {
44
+ isAdded(webComponent: UI5Element) {
40
45
  return this.lookup.has(webComponent);
41
46
  }
42
47
 
@@ -46,9 +51,9 @@ class RenderQueue {
46
51
  *
47
52
  * @param callback - function with one argument (the web component to be processed)
48
53
  */
49
- process(callback) {
54
+ process(callback: (el: UI5Element) => void) {
50
55
  let webComponent;
51
- const stats = new Map();
56
+ const stats = new Map<UI5Element, number>();
52
57
 
53
58
  webComponent = this.shift();
54
59
  while (webComponent) {
@@ -0,0 +1,114 @@
1
+ import VersionInfo from "./generated/VersionInfo.js";
2
+ import getSharedResource from "./getSharedResource.js";
3
+
4
+ type RuntimeData = VersionInfo & {
5
+ alias: string,
6
+ description: string,
7
+ };
8
+
9
+ let currentRuntimeIndex: number;
10
+ let currentRuntimeAlias = "";
11
+
12
+ const compareCache = new Map<string, number>();
13
+
14
+ /**
15
+ * Central registry where all runtimes register themselves by pushing an object.
16
+ * The index in the registry servers as an ID for the runtime.
17
+ * @type {*}
18
+ */
19
+ const Runtimes = getSharedResource<Array<RuntimeData>>("Runtimes", []);
20
+
21
+ /**
22
+ * Registers the current runtime in the shared runtimes resource registry
23
+ */
24
+ const registerCurrentRuntime = () => {
25
+ if (currentRuntimeIndex === undefined) {
26
+ currentRuntimeIndex = Runtimes.length;
27
+ const versionInfo = VersionInfo;
28
+
29
+ Runtimes.push({
30
+ ...versionInfo,
31
+ alias: currentRuntimeAlias,
32
+ description: `Runtime ${currentRuntimeIndex} - ver ${versionInfo.version}${currentRuntimeAlias ? ` (${currentRuntimeAlias})` : ""}`,
33
+ });
34
+ }
35
+ };
36
+
37
+ /**
38
+ * Returns the index of the current runtime's object in the shared runtimes resource registry
39
+ * @returns {*}
40
+ */
41
+ const getCurrentRuntimeIndex = () => {
42
+ return currentRuntimeIndex;
43
+ };
44
+
45
+ /**
46
+ * Compares two runtimes and returns 1 if the first is of a bigger version, -1 if the second is of a bigger version, and 0 if equal
47
+ * @param index1 The index of the first runtime to compare
48
+ * @param index2 The index of the second runtime to compare
49
+ * @returns {number}
50
+ */
51
+ const compareRuntimes = (index1: number, index2: number) => {
52
+ const cacheIndex = `${index1},${index2}`;
53
+ if (compareCache.has(cacheIndex)) {
54
+ return compareCache.get(cacheIndex)!;
55
+ }
56
+
57
+ const runtime1 = Runtimes[index1];
58
+ const runtime2 = Runtimes[index2];
59
+
60
+ if (!runtime1 || !runtime2) {
61
+ throw new Error("Invalid runtime index supplied");
62
+ }
63
+
64
+ // If any of the two is a next version, bigger buildTime wins
65
+ if (runtime1.isNext || runtime2.isNext) {
66
+ return runtime1.buildTime - runtime2.buildTime;
67
+ }
68
+
69
+ // If major versions differ, bigger one wins
70
+ const majorDiff = runtime1.major - runtime2.major;
71
+ if (majorDiff) {
72
+ return majorDiff;
73
+ }
74
+
75
+ // If minor versions differ, bigger one wins
76
+ const minorDiff = runtime1.minor - runtime2.minor;
77
+ if (minorDiff) {
78
+ return minorDiff;
79
+ }
80
+
81
+ // If patch versions differ, bigger one wins
82
+ const patchDiff = runtime1.patch - runtime2.patch;
83
+ if (patchDiff) {
84
+ return patchDiff;
85
+ }
86
+
87
+ // Bigger suffix wins, f.e. rc10 > rc9
88
+ // Important: suffix is alphanumeric, must use natural compare
89
+ const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: "base" });
90
+ const result = collator.compare(runtime1.suffix, runtime2.suffix);
91
+
92
+ compareCache.set(cacheIndex, result);
93
+ return result;
94
+ };
95
+
96
+ /**
97
+ * Set an alias for the the current app/library/microfrontend which will appear in debug messages and console warnings
98
+ * @param alias
99
+ */
100
+ const setRuntimeAlias = (alias: string) => {
101
+ currentRuntimeAlias = alias;
102
+ };
103
+
104
+ const getAllRuntimes = () => {
105
+ return Runtimes;
106
+ };
107
+
108
+ export {
109
+ getCurrentRuntimeIndex,
110
+ registerCurrentRuntime,
111
+ compareRuntimes,
112
+ setRuntimeAlias,
113
+ getAllRuntimes,
114
+ };
File without changes
@@ -2,7 +2,12 @@ import "./StaticArea.js";
2
2
  import updateShadowRoot from "./updateShadowRoot.js";
3
3
  import { renderFinished } from "./Render.js";
4
4
  import getEffectiveContentDensity from "./util/getEffectiveContentDensity.js";
5
- import { getEffectiveScopingSuffixForTag } from "./CustomElementsScope.js";
5
+ import { getEffectiveScopingSuffixForTag } from "./CustomElementsScopeUtils.js";
6
+ import getEffectiveDir from "./locale/getEffectiveDir.js";
7
+ import type UI5Element from "./UI5Element.js";
8
+
9
+ const pureTagName = "ui5-static-area-item";
10
+ const popupIntegrationAttr = "data-sap-ui-integration-popup-content";
6
11
 
7
12
  /**
8
13
  *
@@ -11,6 +16,9 @@ import { getEffectiveScopingSuffixForTag } from "./CustomElementsScope.js";
11
16
  * @private
12
17
  */
13
18
  class StaticAreaItem extends HTMLElement {
19
+ _rendered: boolean;
20
+ ownerElement?: UI5Element;
21
+
14
22
  constructor() {
15
23
  super();
16
24
  this._rendered = false;
@@ -18,22 +26,25 @@ class StaticAreaItem extends HTMLElement {
18
26
  }
19
27
 
20
28
  /**
21
- * @protected
22
- * @param ownerElement The UI5Element instance that owns this static area item
29
+ * @param {UI5Element} ownerElement the UI5Element instance that owns this static area item
23
30
  */
24
- setOwnerElement(ownerElement) {
31
+ setOwnerElement(ownerElement: UI5Element) {
25
32
  this.ownerElement = ownerElement;
26
33
  this.classList.add(this.ownerElement._id); // used for getting the popover in the tests
34
+ if (this.ownerElement.hasAttribute("data-ui5-static-stable")) {
35
+ this.setAttribute("data-ui5-stable", this.ownerElement.getAttribute("data-ui5-static-stable")!); // stable selector
36
+ }
27
37
  }
28
38
 
29
39
  /**
30
40
  * Updates the shadow root of the static area item with the latest state, if rendered
31
- * @protected
32
41
  */
33
42
  update() {
34
43
  if (this._rendered) {
44
+ this._updateAdditionalAttrs();
35
45
  this._updateContentDensity();
36
- updateShadowRoot(this.ownerElement, true);
46
+ this._updateDirection();
47
+ updateShadowRoot(this.ownerElement!, true);
37
48
  }
38
49
  }
39
50
 
@@ -42,7 +53,7 @@ class StaticAreaItem extends HTMLElement {
42
53
  * @private
43
54
  */
44
55
  _updateContentDensity() {
45
- if (getEffectiveContentDensity(this.ownerElement) === "compact") {
56
+ if (getEffectiveContentDensity(this.ownerElement!) === "compact") {
46
57
  this.classList.add("sapUiSizeCompact");
47
58
  this.classList.add("ui5-content-density-compact");
48
59
  } else {
@@ -51,6 +62,22 @@ class StaticAreaItem extends HTMLElement {
51
62
  }
52
63
  }
53
64
 
65
+ _updateDirection() {
66
+ if (this.ownerElement) {
67
+ const dir = getEffectiveDir(this.ownerElement);
68
+ if (dir) {
69
+ this.setAttribute("dir", dir);
70
+ } else {
71
+ this.removeAttribute("dir");
72
+ }
73
+ }
74
+ }
75
+
76
+ _updateAdditionalAttrs() {
77
+ this.setAttribute(pureTagName, "");
78
+ this.setAttribute(popupIntegrationAttr, "");
79
+ }
80
+
54
81
  /**
55
82
  * @protected
56
83
  * Returns reference to the DOM element where the current fragment is added.
@@ -59,29 +86,19 @@ class StaticAreaItem extends HTMLElement {
59
86
  this._updateContentDensity();
60
87
  if (!this._rendered) {
61
88
  this._rendered = true;
62
- updateShadowRoot(this.ownerElement, true);
89
+ updateShadowRoot(this.ownerElement!, true);
63
90
  }
64
91
  await renderFinished(); // Wait for the content of the ui5-static-area-item to be rendered
65
92
  return this.shadowRoot;
66
93
  }
67
94
 
68
- /**
69
- * @protected
70
- * @param refName
71
- * @returns {Element}
72
- */
73
- getStableDomRef(refName) {
74
- return this.shadowRoot.querySelector(`[data-ui5-stable=${refName}]`);
75
- }
76
-
77
95
  static getTag() {
78
- const pureTag = "ui5-static-area-item";
79
- const suffix = getEffectiveScopingSuffixForTag(pureTag);
96
+ const suffix = getEffectiveScopingSuffixForTag(pureTagName);
80
97
  if (!suffix) {
81
- return pureTag;
98
+ return pureTagName;
82
99
  }
83
100
 
84
- return `${pureTag}-${suffix}`;
101
+ return `${pureTagName}-${suffix}`;
85
102
  }
86
103
 
87
104
  static createInstance() {
@@ -89,7 +106,7 @@ class StaticAreaItem extends HTMLElement {
89
106
  customElements.define(StaticAreaItem.getTag(), StaticAreaItem);
90
107
  }
91
108
 
92
- return document.createElement(this.getTag());
109
+ return document.createElement(this.getTag()) as StaticAreaItem;
93
110
  }
94
111
  }
95
112
 
@@ -0,0 +1,10 @@
1
+ import { hasStyle, createStyle } from "./ManagedStyles.js";
2
+ import systemCSSVars from "./generated/css/SystemCSSVars.css.js";
3
+
4
+ const insertSystemCSSVars = () => {
5
+ if (!hasStyle("data-ui5-system-css-vars")) {
6
+ createStyle(systemCSSVars, "data-ui5-system-css-vars");
7
+ }
8
+ };
9
+
10
+ export default insertSystemCSSVars;
File without changes