@ui5/webcomponents-base 0.0.0-453158269 → 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 (656) hide show
  1. package/.eslintignore +1 -0
  2. package/CHANGELOG.md +105 -0
  3. package/README.md +28 -6
  4. package/bundle.esm.js +12 -10
  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 +29 -44
  10. package/dist/Boot.js.map +1 -0
  11. package/dist/CSP.d.ts +30 -0
  12. package/dist/CSP.js +16 -24
  13. package/dist/CSP.js.map +1 -0
  14. package/dist/CustomElementsRegistry.d.ts +5 -0
  15. package/dist/CustomElementsRegistry.js +66 -83
  16. package/dist/CustomElementsRegistry.js.map +1 -0
  17. package/dist/CustomElementsScope.d.ts +7 -0
  18. package/dist/CustomElementsScope.js +10 -29
  19. package/dist/CustomElementsScope.js.map +1 -0
  20. package/dist/CustomElementsScopeUtils.d.ts +55 -0
  21. package/dist/CustomElementsScopeUtils.js +34 -52
  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 +53 -83
  28. package/dist/Device.js.map +1 -0
  29. package/dist/EventProvider.d.ts +25 -0
  30. package/dist/EventProvider.js +67 -82
  31. package/dist/EventProvider.js.map +1 -0
  32. package/dist/FeaturesRegistry.d.ts +3 -0
  33. package/dist/FeaturesRegistry.js +5 -10
  34. package/dist/FeaturesRegistry.js.map +1 -0
  35. package/dist/FontFace.d.ts +2 -0
  36. package/dist/FontFace.js +14 -19
  37. package/dist/FontFace.js.map +1 -0
  38. package/dist/InitialConfiguration.d.ts +22 -0
  39. package/dist/InitialConfiguration.js +112 -131
  40. package/dist/InitialConfiguration.js.map +1 -0
  41. package/dist/Keys.d.ts +57 -0
  42. package/dist/Keys.js +174 -291
  43. package/dist/Keys.js.map +1 -0
  44. package/dist/ManagedStyles.d.ts +8 -0
  45. package/dist/ManagedStyles.js +62 -68
  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 +81 -113
  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 +49 -70
  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 +84 -86
  70. package/dist/StaticAreaItem.js.map +1 -0
  71. package/dist/SystemCSSVars.d.ts +2 -0
  72. package/dist/SystemCSSVars.js +4 -5
  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 +928 -994
  79. package/dist/UI5Element.js.map +1 -0
  80. package/dist/UI5ElementMetadata.d.ts +150 -0
  81. package/dist/UI5ElementMetadata.js +277 -313
  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 +85 -116
  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 -25
  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 -132
  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 +36 -68
  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 +4 -4
  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 +28 -32
  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 +34 -36
  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/FontFace.css +9 -18
  146. package/dist/decorators/customElement.d.ts +8 -0
  147. package/dist/decorators/customElement.js +16 -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 -312
  169. package/dist/delegate/ItemNavigation.js.map +1 -0
  170. package/dist/delegate/ResizeHandler.d.ts +24 -0
  171. package/dist/delegate/ResizeHandler.js +68 -91
  172. package/dist/delegate/ResizeHandler.js.map +1 -0
  173. package/dist/delegate/ScrollEnablement.d.ts +48 -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 +16 -0
  177. package/dist/features/F6Navigation.js +106 -100
  178. package/dist/features/F6Navigation.js.map +1 -0
  179. package/dist/features/OpenUI5Element.d.ts +9 -0
  180. package/dist/features/OpenUI5Element.js +5 -0
  181. package/dist/features/OpenUI5Element.js.map +1 -0
  182. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  183. package/dist/features/OpenUI5Enablement.js +89 -112
  184. package/dist/features/OpenUI5Enablement.js.map +1 -0
  185. package/dist/features/OpenUI5Support.d.ts +23 -0
  186. package/dist/features/OpenUI5Support.js +91 -119
  187. package/dist/features/OpenUI5Support.js.map +1 -0
  188. package/dist/generated/VersionInfo.js +3 -3
  189. package/dist/generated/css/FontFace.css.js +1 -1
  190. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  191. package/dist/getSharedResource.d.ts +11 -0
  192. package/dist/getSharedResource.js +12 -16
  193. package/dist/getSharedResource.js.map +1 -0
  194. package/dist/i18nBundle.d.ts +43 -0
  195. package/dist/i18nBundle.js +56 -64
  196. package/dist/i18nBundle.js.map +1 -0
  197. package/dist/locale/Locale.d.ts +22 -0
  198. package/dist/locale/Locale.js +75 -87
  199. package/dist/locale/Locale.js.map +1 -0
  200. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  201. package/dist/locale/RTLAwareRegistry.js +6 -11
  202. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  203. package/dist/locale/applyDirection.d.ts +10 -0
  204. package/dist/locale/applyDirection.js +7 -7
  205. package/dist/locale/applyDirection.js.map +1 -0
  206. package/dist/locale/directionChange.d.ts +15 -0
  207. package/dist/locale/directionChange.js +7 -15
  208. package/dist/locale/directionChange.js.map +1 -0
  209. package/dist/locale/getEffectiveDir.d.ts +2 -0
  210. package/dist/locale/getEffectiveDir.js +20 -24
  211. package/dist/locale/getEffectiveDir.js.map +1 -0
  212. package/dist/locale/getLocale.d.ts +7 -0
  213. package/dist/locale/getLocale.js +26 -29
  214. package/dist/locale/getLocale.js.map +1 -0
  215. package/dist/locale/languageChange.d.ts +5 -0
  216. package/dist/locale/languageChange.js +8 -16
  217. package/dist/locale/languageChange.js.map +1 -0
  218. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  219. package/dist/locale/nextFallbackLocale.js +15 -19
  220. package/dist/locale/nextFallbackLocale.js.map +1 -0
  221. package/dist/locale/normalizeLocale.d.ts +7 -0
  222. package/dist/locale/normalizeLocale.js +34 -41
  223. package/dist/locale/normalizeLocale.js.map +1 -0
  224. package/dist/renderer/LitRenderer.d.ts +14 -0
  225. package/dist/renderer/LitRenderer.js +28 -39
  226. package/dist/renderer/LitRenderer.js.map +1 -0
  227. package/dist/renderer/executeTemplate.d.ts +13 -0
  228. package/dist/renderer/executeTemplate.js +12 -16
  229. package/dist/renderer/executeTemplate.js.map +1 -0
  230. package/dist/sap/base/Log.js +28 -29
  231. package/dist/sap/base/assert.js +5 -6
  232. package/dist/sap/base/security/URLListValidator.js +13 -2
  233. package/dist/theming/CustomStyle.d.ts +6 -0
  234. package/dist/theming/CustomStyle.js +29 -43
  235. package/dist/theming/CustomStyle.js.map +1 -0
  236. package/dist/theming/ThemeLoaded.d.ts +5 -0
  237. package/dist/theming/ThemeLoaded.js +8 -16
  238. package/dist/theming/ThemeLoaded.js.map +1 -0
  239. package/dist/theming/applyTheme.d.ts +2 -0
  240. package/dist/theming/applyTheme.js +60 -64
  241. package/dist/theming/applyTheme.js.map +1 -0
  242. package/dist/theming/getConstructableStyle.d.ts +9 -0
  243. package/dist/theming/getConstructableStyle.js +12 -17
  244. package/dist/theming/getConstructableStyle.js.map +1 -0
  245. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  246. package/dist/theming/getEffectiveLinksHrefs.js +12 -22
  247. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  248. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  249. package/dist/theming/getEffectiveStyle.js +24 -31
  250. package/dist/theming/getEffectiveStyle.js.map +1 -0
  251. package/dist/theming/getStylesString.d.ts +3 -0
  252. package/dist/theming/getStylesString.js +9 -13
  253. package/dist/theming/getStylesString.js.map +1 -0
  254. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  255. package/dist/theming/getThemeDesignerTheme.js +72 -79
  256. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  257. package/dist/theming/preloadLinks.d.ts +3 -0
  258. package/dist/theming/preloadLinks.js +13 -17
  259. package/dist/theming/preloadLinks.js.map +1 -0
  260. package/dist/thirdparty/_merge.d.ts +2 -0
  261. package/dist/thirdparty/_merge.js +7 -4
  262. package/dist/thirdparty/_merge.js.map +1 -0
  263. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  264. package/dist/thirdparty/isPlainObject.js +11 -10
  265. package/dist/thirdparty/isPlainObject.js.map +1 -0
  266. package/dist/thirdparty/merge.d.ts +2 -0
  267. package/dist/thirdparty/merge.js +4 -8
  268. package/dist/thirdparty/merge.js.map +1 -0
  269. package/dist/types/AnimationMode.d.ts +32 -0
  270. package/dist/types/AnimationMode.js +33 -6
  271. package/dist/types/AnimationMode.js.map +1 -0
  272. package/dist/types/CSSColor.d.ts +16 -0
  273. package/dist/types/CSSColor.js +15 -5
  274. package/dist/types/CSSColor.js.map +1 -0
  275. package/dist/types/CalendarType.d.ts +37 -0
  276. package/dist/types/CalendarType.js +35 -18
  277. package/dist/types/CalendarType.js.map +1 -0
  278. package/dist/types/DOMReference.d.ts +17 -0
  279. package/dist/types/DOMReference.js +25 -0
  280. package/dist/types/DOMReference.js.map +1 -0
  281. package/dist/types/DataType.d.ts +25 -0
  282. package/dist/types/DataType.js +33 -26
  283. package/dist/types/DataType.js.map +1 -0
  284. package/dist/types/Float.d.ts +18 -0
  285. package/dist/types/Float.js +18 -10
  286. package/dist/types/Float.js.map +1 -0
  287. package/dist/types/Integer.d.ts +18 -0
  288. package/dist/types/Integer.js +18 -9
  289. package/dist/types/Integer.js.map +1 -0
  290. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  291. package/dist/types/InvisibleMessageMode.js +20 -23
  292. package/dist/types/InvisibleMessageMode.js.map +1 -0
  293. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  294. package/dist/types/ItemNavigationBehavior.js +22 -12
  295. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  296. package/dist/types/NavigationMode.d.ts +32 -0
  297. package/dist/types/NavigationMode.js +33 -6
  298. package/dist/types/NavigationMode.js.map +1 -0
  299. package/dist/types/ValueState.d.ts +42 -0
  300. package/dist/types/ValueState.js +41 -19
  301. package/dist/types/ValueState.js.map +1 -0
  302. package/dist/types.d.ts +18 -0
  303. package/dist/types.js +2 -0
  304. package/dist/types.js.map +1 -0
  305. package/dist/updateShadowRoot.d.ts +8 -0
  306. package/dist/updateShadowRoot.js +21 -17
  307. package/dist/updateShadowRoot.js.map +1 -0
  308. package/dist/util/AriaLabelHelper.d.ts +6 -0
  309. package/dist/util/AriaLabelHelper.js +37 -34
  310. package/dist/util/AriaLabelHelper.js.map +1 -0
  311. package/dist/util/Caret.d.ts +7 -0
  312. package/dist/util/Caret.js +16 -38
  313. package/dist/util/Caret.js.map +1 -0
  314. package/dist/util/ColorConversion.d.ts +30 -0
  315. package/dist/util/ColorConversion.js +315 -348
  316. package/dist/util/ColorConversion.js.map +1 -0
  317. package/dist/util/FetchHelper.d.ts +3 -0
  318. package/dist/util/FetchHelper.js +19 -25
  319. package/dist/util/FetchHelper.js.map +1 -0
  320. package/dist/util/FocusableElements.d.ts +4 -0
  321. package/dist/util/FocusableElements.js +54 -71
  322. package/dist/util/FocusableElements.js.map +1 -0
  323. package/dist/util/HTMLSanitizer.d.ts +3 -0
  324. package/dist/util/HTMLSanitizer.js +4 -5
  325. package/dist/util/HTMLSanitizer.js.map +1 -0
  326. package/dist/util/InvisibleMessage.d.ts +10 -0
  327. package/dist/util/InvisibleMessage.js +41 -45
  328. package/dist/util/InvisibleMessage.js.map +1 -0
  329. package/dist/util/PopupUtils.d.ts +7 -0
  330. package/dist/util/PopupUtils.js +57 -76
  331. package/dist/util/PopupUtils.js.map +1 -0
  332. package/dist/util/SlotsHelper.d.ts +9 -0
  333. package/dist/util/SlotsHelper.js +22 -35
  334. package/dist/util/SlotsHelper.js.map +1 -0
  335. package/dist/util/StringHelper.d.ts +3 -0
  336. package/dist/util/StringHelper.js +17 -20
  337. package/dist/util/StringHelper.js.map +1 -0
  338. package/dist/util/TabbableElements.d.ts +17 -0
  339. package/dist/util/TabbableElements.js +53 -47
  340. package/dist/util/TabbableElements.js.map +1 -0
  341. package/dist/util/arraysAreEqual.d.ts +2 -0
  342. package/dist/util/arraysAreEqual.js +10 -12
  343. package/dist/util/arraysAreEqual.js.map +1 -0
  344. package/dist/util/clamp.d.ts +9 -0
  345. package/dist/util/clamp.js +2 -2
  346. package/dist/util/clamp.js.map +1 -0
  347. package/dist/util/createLinkInHead.d.ts +7 -0
  348. package/dist/util/createLinkInHead.js +14 -12
  349. package/dist/util/createLinkInHead.js.map +1 -0
  350. package/dist/util/createStyleInHead.d.ts +8 -0
  351. package/dist/util/createStyleInHead.js +10 -10
  352. package/dist/util/createStyleInHead.js.map +1 -0
  353. package/dist/util/debounce.d.ts +2 -0
  354. package/dist/util/debounce.js +6 -8
  355. package/dist/util/debounce.js.map +1 -0
  356. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  357. package/dist/util/detectNavigatorLanguage.js +7 -10
  358. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  359. package/dist/util/escapeRegex.d.ts +8 -0
  360. package/dist/util/escapeRegex.js +8 -7
  361. package/dist/util/escapeRegex.js.map +1 -0
  362. package/dist/util/formatMessage.d.ts +2 -0
  363. package/dist/util/formatMessage.js +15 -19
  364. package/dist/util/formatMessage.js.map +1 -0
  365. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  366. package/dist/util/generateHighlightedMarkup.js +26 -27
  367. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  368. package/dist/util/getActiveElement.d.ts +2 -0
  369. package/dist/util/getActiveElement.js +6 -8
  370. package/dist/util/getActiveElement.js.map +1 -0
  371. package/dist/util/getClassCopy.d.ts +400 -0
  372. package/dist/util/getClassCopy.js +7 -7
  373. package/dist/util/getClassCopy.js.map +1 -0
  374. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  375. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  376. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  377. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  378. package/dist/util/getEffectiveContentDensity.js +2 -3
  379. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  380. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  381. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  382. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  383. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  384. package/dist/util/getFastNavigationGroups.js +51 -0
  385. package/dist/util/getFastNavigationGroups.js.map +1 -0
  386. package/dist/util/getFileExtension.d.ts +12 -0
  387. package/dist/util/getFileExtension.js +9 -11
  388. package/dist/util/getFileExtension.js.map +1 -0
  389. package/dist/util/getNormalizedTarget.d.ts +7 -0
  390. package/dist/util/getNormalizedTarget.js +7 -9
  391. package/dist/util/getNormalizedTarget.js.map +1 -0
  392. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  393. package/dist/util/getSingletonElementInstance.js +7 -10
  394. package/dist/util/getSingletonElementInstance.js.map +1 -0
  395. package/dist/util/isElementClickable.d.ts +2 -0
  396. package/dist/util/isElementClickable.js +16 -0
  397. package/dist/util/isElementClickable.js.map +1 -0
  398. package/dist/util/isElementHidden.d.ts +2 -0
  399. package/dist/util/isElementHidden.js +8 -0
  400. package/dist/util/isElementHidden.js.map +1 -0
  401. package/dist/util/isElementInView.d.ts +6 -0
  402. package/dist/util/isElementInView.js +6 -9
  403. package/dist/util/isElementInView.js.map +1 -0
  404. package/dist/util/isElementTabbable.d.ts +9 -0
  405. package/dist/util/isElementTabbable.js +30 -0
  406. package/dist/util/isElementTabbable.js.map +1 -0
  407. package/dist/util/isValidPropertyName.d.ts +8 -0
  408. package/dist/util/isValidPropertyName.js +16 -17
  409. package/dist/util/isValidPropertyName.js.map +1 -0
  410. package/dist/util/whenDOMReady.d.ts +2 -0
  411. package/dist/util/whenDOMReady.js +11 -10
  412. package/dist/util/whenDOMReady.js.map +1 -0
  413. package/dist/util/willShowContent.d.ts +2 -0
  414. package/dist/util/willShowContent.js +7 -0
  415. package/dist/util/willShowContent.js.map +1 -0
  416. package/dist/validateThemeRoot.d.ts +2 -0
  417. package/dist/validateThemeRoot.js +47 -0
  418. package/dist/validateThemeRoot.js.map +1 -0
  419. package/global.d.ts +44 -0
  420. package/lib/generate-styles/index.js +1 -1
  421. package/package-scripts.js +27 -18
  422. package/package.json +5 -4
  423. package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
  424. package/src/Boot.ts +61 -0
  425. package/src/{CSP.js → CSP.ts} +14 -7
  426. package/src/{CustomElementsRegistry.js → CustomElementsRegistry.ts} +20 -17
  427. package/src/{CustomElementsScope.js → CustomElementsScope.ts} +8 -5
  428. package/src/{CustomElementsScopeUtils.js → CustomElementsScopeUtils.ts} +14 -7
  429. package/src/DOMObserver.ts +28 -0
  430. package/src/{Device.js → Device.ts} +17 -14
  431. package/src/{EventProvider.js → EventProvider.ts} +9 -7
  432. package/src/FeaturesRegistry.ts +14 -0
  433. package/src/{FontFace.js → FontFace.ts} +3 -2
  434. package/src/{InitialConfiguration.js → InitialConfiguration.ts} +53 -12
  435. package/src/Keys.ts +295 -0
  436. package/src/ManagedStyles.ts +92 -0
  437. package/src/MarkedEvents.ts +20 -0
  438. package/src/{MediaRange.js → MediaRange.ts} +54 -53
  439. package/src/{PropertiesFileFormat.js → PropertiesFileFormat.ts} +8 -8
  440. package/src/{Render.js → Render.ts} +25 -20
  441. package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
  442. package/src/{Runtimes.js → Runtimes.ts} +15 -8
  443. package/src/{StaticArea.js → StaticArea.ts} +0 -0
  444. package/src/{StaticAreaItem.js → StaticAreaItem.ts} +30 -18
  445. package/src/{SystemCSSVars.js → SystemCSSVars.ts} +0 -0
  446. package/src/{Theming.js → Theming.ts} +0 -0
  447. package/src/{UI5Element.js → UI5Element.ts} +270 -148
  448. package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +120 -58
  449. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  450. package/src/animations/animate.ts +64 -0
  451. package/src/animations/scroll.ts +21 -0
  452. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  453. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  454. package/src/asset-registries/{Icons.js → Icons.ts} +64 -37
  455. package/src/asset-registries/Illustrations.ts +75 -0
  456. package/src/asset-registries/{LocaleData.js → LocaleData.ts} +36 -28
  457. package/src/asset-registries/{Themes.js → Themes.ts} +14 -29
  458. package/src/asset-registries/{i18n.js → i18n.ts} +21 -24
  459. package/src/assets-meta/{IconCollectionsAlias.js → IconCollectionsAlias.ts} +0 -0
  460. package/src/config/AnimationMode.ts +33 -0
  461. package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
  462. package/src/config/FormatSettings.ts +21 -0
  463. package/src/config/{Icons.js → Icons.ts} +19 -12
  464. package/src/config/{Language.js → Language.ts} +22 -18
  465. package/src/config/NoConflict.ts +67 -0
  466. package/src/config/{RTL.js → RTL.ts} +14 -4
  467. package/src/config/Theme.ts +64 -0
  468. package/src/config/ThemeRoots.ts +41 -0
  469. package/src/css/FontFace.css +9 -18
  470. package/src/decorators/customElement.ts +17 -0
  471. package/src/decorators/event.ts +28 -0
  472. package/src/decorators/fastNavigation.ts +14 -0
  473. package/src/decorators/languageAware.ts +14 -0
  474. package/src/decorators/property.ts +30 -0
  475. package/src/decorators/slot.ts +49 -0
  476. package/src/decorators/themeAware.ts +14 -0
  477. package/src/delegate/{ItemNavigation.js → ItemNavigation.ts} +65 -23
  478. package/src/delegate/{ResizeHandler.js → ResizeHandler.ts} +25 -36
  479. package/src/delegate/ScrollEnablement.ts +221 -0
  480. package/src/features/F6Navigation.ts +141 -0
  481. package/src/features/OpenUI5Element.ts +11 -0
  482. package/src/features/OpenUI5Enablement.ts +117 -0
  483. package/src/features/OpenUI5Support.ts +148 -0
  484. package/src/{getSharedResource.js → getSharedResource.ts} +3 -3
  485. package/src/{i18nBundle.js → i18nBundle.ts} +44 -22
  486. package/src/locale/{Locale.js → Locale.ts} +15 -5
  487. package/src/locale/RTLAwareRegistry.ts +16 -0
  488. package/src/locale/{applyDirection.js → applyDirection.ts} +4 -3
  489. package/src/locale/{directionChange.js → directionChange.ts} +6 -4
  490. package/src/locale/{getEffectiveDir.js → getEffectiveDir.ts} +1 -1
  491. package/src/locale/{getLocale.js → getLocale.ts} +12 -7
  492. package/src/locale/languageChange.ts +24 -0
  493. package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
  494. package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +5 -3
  495. package/src/renderer/LitRenderer.ts +60 -0
  496. package/src/renderer/{executeTemplate.js → executeTemplate.ts} +11 -5
  497. package/src/theming/{CustomStyle.js → CustomStyle.ts} +11 -9
  498. package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
  499. package/src/theming/{applyTheme.js → applyTheme.ts} +22 -11
  500. package/src/theming/{getConstructableStyle.js → getConstructableStyle.ts} +5 -4
  501. package/src/theming/getEffectiveLinksHrefs.ts +26 -0
  502. package/src/theming/{getEffectiveStyle.js → getEffectiveStyle.ts} +9 -7
  503. package/src/theming/getStylesString.ts +15 -0
  504. package/src/theming/{getThemeDesignerTheme.js → getThemeDesignerTheme.ts} +22 -8
  505. package/src/theming/{preloadLinks.js → preloadLinks.ts} +3 -2
  506. package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
  507. package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
  508. package/src/thirdparty/merge.ts +5 -0
  509. package/src/types/AnimationMode.ts +33 -0
  510. package/src/types/{CSSColor.js → CSSColor.ts} +12 -1
  511. package/src/types/CalendarType.ts +38 -0
  512. package/src/types/DOMReference.ts +28 -0
  513. package/src/types/DataType.ts +51 -0
  514. package/src/types/Float.ts +25 -0
  515. package/src/types/Integer.ts +25 -0
  516. package/src/types/InvisibleMessageMode.ts +27 -0
  517. package/src/types/ItemNavigationBehavior.ts +26 -0
  518. package/src/types/NavigationMode.ts +33 -0
  519. package/src/types/ValueState.ts +47 -0
  520. package/src/types.ts +30 -0
  521. package/src/updateShadowRoot.ts +37 -0
  522. package/src/util/AriaLabelHelper.ts +63 -0
  523. package/src/util/Caret.ts +28 -0
  524. package/src/util/ColorConversion.ts +399 -0
  525. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  526. package/src/util/FocusableElements.ts +82 -0
  527. package/src/util/{HTMLSanitizer.js → HTMLSanitizer.ts} +2 -0
  528. package/src/util/{InvisibleMessage.js → InvisibleMessage.ts} +15 -6
  529. package/src/util/PopupUtils.ts +114 -0
  530. package/src/util/{SlotsHelper.js → SlotsHelper.ts} +9 -13
  531. package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
  532. package/src/util/TabbableElements.ts +70 -0
  533. package/src/util/{arraysAreEqual.js → arraysAreEqual.ts} +1 -1
  534. package/src/util/{clamp.js → clamp.ts} +1 -1
  535. package/src/util/{createLinkInHead.js → createLinkInHead.ts} +10 -4
  536. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  537. package/src/util/{debounce.js → debounce.ts} +5 -4
  538. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
  539. package/src/util/escapeRegex.ts +11 -0
  540. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  541. package/src/util/{generateHighlightedMarkup.js → generateHighlightedMarkup.ts} +7 -6
  542. package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
  543. package/src/util/{getClassCopy.js → getClassCopy.ts} +3 -1
  544. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  545. package/src/util/getEffectiveContentDensity.ts +5 -0
  546. package/src/util/getEffectiveScrollbarStyle.ts +5 -0
  547. package/src/util/getFastNavigationGroups.ts +63 -0
  548. package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
  549. package/src/util/{getNormalizedTarget.js → getNormalizedTarget.ts} +2 -2
  550. package/src/util/{getSingletonElementInstance.js → getSingletonElementInstance.ts} +1 -1
  551. package/src/util/isElementClickable.ts +19 -0
  552. package/src/util/isElementHidden.ts +9 -0
  553. package/src/util/{isElementInView.js → isElementInView.ts} +1 -1
  554. package/src/util/isElementTabbable.ts +37 -0
  555. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +1 -1
  556. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  557. package/src/util/willShowContent.ts +7 -0
  558. package/src/validateThemeRoot.ts +58 -0
  559. package/tsconfig.json +13 -0
  560. package/config/.eslintrc.js +0 -3
  561. package/config/rollup.config.js +0 -1
  562. package/dist/RenderScheduler.js +0 -44
  563. package/dist/animations/config.js +0 -5
  564. package/dist/isLegacyBrowser.js +0 -3
  565. package/dist/resources/bundle.esm.js +0 -32
  566. package/dist/resources/bundle.esm.js.map +0 -1
  567. package/dist/test-resources/assets/Themes.js +0 -17
  568. package/dist/test-resources/elements/Child.js +0 -35
  569. package/dist/test-resources/elements/Generic.js +0 -84
  570. package/dist/test-resources/elements/GenericExt.js +0 -26
  571. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  572. package/dist/test-resources/elements/Parent.js +0 -41
  573. package/dist/test-resources/elements/WithStaticArea.js +0 -77
  574. package/dist/test-resources/pages/AllTestElements.html +0 -42
  575. package/dist/test-resources/pages/Configuration.html +0 -18
  576. package/dist/test-resources/pages/ConfigurationScript.html +0 -34
  577. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  578. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  579. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  580. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  581. package/dist/test-resources/pages/i18n.html +0 -33
  582. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
  583. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
  584. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -93
  585. package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
  586. package/dist/test-resources/specs/EventProvider.spec.js +0 -63
  587. package/dist/test-resources/specs/StaticArea.spec.js +0 -78
  588. package/dist/test-resources/specs/Theming.spec.js +0 -44
  589. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
  590. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
  591. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
  592. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
  593. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
  594. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
  595. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
  596. package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
  597. package/dist/types/CSSSize.js +0 -9
  598. package/dist/types/PopupState.js +0 -37
  599. package/dist/util/findNodeOwner.js +0 -35
  600. package/dist/util/isDescendantOf.js +0 -15
  601. package/dist/util/isNodeClickable.js +0 -19
  602. package/dist/util/isNodeHidden.js +0 -9
  603. package/dist/util/isNodeTabbable.js +0 -28
  604. package/dist/util/setToArray.js +0 -10
  605. package/hash.txt +0 -1
  606. package/src/Boot.js +0 -59
  607. package/src/DOMObserver.js +0 -65
  608. package/src/FeaturesRegistry.js +0 -14
  609. package/src/Keys.js +0 -295
  610. package/src/ManagedStyles.js +0 -83
  611. package/src/RenderScheduler.js +0 -44
  612. package/src/animations/animate.js +0 -53
  613. package/src/animations/config.js +0 -5
  614. package/src/animations/scroll.js +0 -28
  615. package/src/asset-registries/Illustrations.js +0 -30
  616. package/src/config/AnimationMode.js +0 -23
  617. package/src/config/FormatSettings.js +0 -13
  618. package/src/config/NoConflict.js +0 -51
  619. package/src/config/Theme.js +0 -53
  620. package/src/delegate/ScrollEnablement.js +0 -188
  621. package/src/features/F6Navigation.js +0 -106
  622. package/src/features/OpenUI5Enablement.js +0 -119
  623. package/src/features/OpenUI5Support.js +0 -125
  624. package/src/isLegacyBrowser.js +0 -3
  625. package/src/locale/RTLAwareRegistry.js +0 -14
  626. package/src/locale/languageChange.js +0 -22
  627. package/src/renderer/LitRenderer.js +0 -52
  628. package/src/theming/getEffectiveLinksHrefs.js +0 -27
  629. package/src/theming/getStylesString.js +0 -15
  630. package/src/thirdparty/merge.js +0 -10
  631. package/src/types/AnimationMode.js +0 -7
  632. package/src/types/CSSSize.js +0 -9
  633. package/src/types/CalendarType.js +0 -22
  634. package/src/types/DataType.js +0 -37
  635. package/src/types/Float.js +0 -14
  636. package/src/types/Integer.js +0 -13
  637. package/src/types/InvisibleMessageMode.js +0 -30
  638. package/src/types/ItemNavigationBehavior.js +0 -16
  639. package/src/types/NavigationMode.js +0 -7
  640. package/src/types/PopupState.js +0 -37
  641. package/src/types/ValueState.js +0 -22
  642. package/src/updateShadowRoot.js +0 -30
  643. package/src/util/AriaLabelHelper.js +0 -41
  644. package/src/util/Caret.js +0 -45
  645. package/src/util/ColorConversion.js +0 -370
  646. package/src/util/FocusableElements.js +0 -79
  647. package/src/util/PopupUtils.js +0 -93
  648. package/src/util/TabbableElements.js +0 -51
  649. package/src/util/escapeRegex.js +0 -10
  650. package/src/util/findNodeOwner.js +0 -35
  651. package/src/util/getEffectiveContentDensity.js +0 -5
  652. package/src/util/isDescendantOf.js +0 -15
  653. package/src/util/isNodeClickable.js +0 -19
  654. package/src/util/isNodeHidden.js +0 -9
  655. package/src/util/isNodeTabbable.js +0 -28
  656. package/src/util/setToArray.js +0 -10
@@ -0,0 +1,16 @@
1
+ const rClickable = /^(?:a|area)$/i;
2
+ const rFocusable = /^(?:input|select|textarea|button)$/i;
3
+ const isElementClickable = (el) => {
4
+ if (el.disabled) {
5
+ return false;
6
+ }
7
+ const tabIndex = el.getAttribute("tabindex");
8
+ if (tabIndex !== null && tabIndex !== undefined) {
9
+ return parseInt(tabIndex) >= 0;
10
+ }
11
+ return rFocusable.test(el.nodeName)
12
+ || (rClickable.test(el.nodeName)
13
+ && !!el.href);
14
+ };
15
+ export default isElementClickable;
16
+ //# sourceMappingURL=isElementClickable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isElementClickable.js","sourceRoot":"","sources":["../../src/util/isElementClickable.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,eAAe,CAAC;AACnC,MAAM,UAAU,GAAG,qCAAqC,CAAC;AAEzD,MAAM,kBAAkB,GAAG,CAAC,EAAe,EAAW,EAAE;IACvD,IAAK,EAAwB,CAAC,QAAQ,EAAE;QACvC,OAAO,KAAK,CAAC;KACb;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;QAChD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;WAC/B,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;eAC7B,CAAC,CAAE,EAAsB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const isElementHidden: (el: HTMLElement) => boolean;
2
+ export default isElementHidden;
@@ -0,0 +1,8 @@
1
+ const isElementHidden = (el) => {
2
+ if (el.nodeName === "SLOT") {
3
+ return false;
4
+ }
5
+ return (el.offsetWidth <= 0 && el.offsetHeight <= 0) || (el.style && el.style.visibility === "hidden");
6
+ };
7
+ export default isElementHidden;
8
+ //# sourceMappingURL=isElementHidden.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isElementHidden.js","sourceRoot":"","sources":["../../src/util/isElementHidden.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,CAAC,EAAe,EAAE,EAAE;IAC3C,IAAI,EAAE,CAAC,QAAQ,KAAK,MAAM,EAAE;QAC3B,OAAO,KAAK,CAAC;KACb;IAED,OAAO,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;AACxG,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Determines if the element is within the viewport.
3
+ * @param el {HTMLElement}
4
+ */
5
+ declare const isElementInView: (el: HTMLElement) => boolean;
6
+ export default isElementInView;
@@ -2,14 +2,11 @@
2
2
  * Determines if the element is within the viewport.
3
3
  * @param el {HTMLElement}
4
4
  */
5
- const isElementInView = el => {
6
- const rect = el.getBoundingClientRect();
7
-
8
- return (
9
- rect.top >= 0 && rect.left >= 0
10
- && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)
11
- && rect.right <= (window.innerWidth || document.documentElement.clientWidth)
12
- );
5
+ const isElementInView = (el) => {
6
+ const rect = el.getBoundingClientRect();
7
+ return (rect.top >= 0 && rect.left >= 0
8
+ && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)
9
+ && rect.right <= (window.innerWidth || document.documentElement.clientWidth));
13
10
  };
14
-
15
11
  export default isElementInView;
12
+ //# sourceMappingURL=isElementInView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isElementInView.js","sourceRoot":"","sources":["../../src/util/isElementInView.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,eAAe,GAAG,CAAC,EAAe,EAAE,EAAE;IAC3C,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IAExC,OAAO,CACN,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;WAC3B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC;WAC5E,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAC7E,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Returns if the HTMLElement is tabbable.
3
+ *
4
+ * @public
5
+ * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)
6
+ * @returns { boolean } true if the element is tabbable or false - if not
7
+ */
8
+ declare const isElementTabbable: (el: HTMLElement) => boolean;
9
+ export default isElementTabbable;
@@ -0,0 +1,30 @@
1
+ import isElementHidden from "./isElementHidden.js";
2
+ /**
3
+ * Returns if the HTMLElement is tabbable.
4
+ *
5
+ * @public
6
+ * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)
7
+ * @returns { boolean } true if the element is tabbable or false - if not
8
+ */
9
+ const isElementTabbable = (el) => {
10
+ if (!el) {
11
+ return false;
12
+ }
13
+ const nodeName = el.nodeName.toLowerCase();
14
+ if (el.hasAttribute("data-sap-no-tab-ref")) {
15
+ return false;
16
+ }
17
+ if (isElementHidden(el)) {
18
+ return false;
19
+ }
20
+ const tabIndex = el.getAttribute("tabindex");
21
+ if (tabIndex !== null && tabIndex !== undefined) {
22
+ return parseInt(tabIndex) >= 0;
23
+ }
24
+ if (nodeName === "a" || /input|select|textarea|button|object/.test(nodeName)) {
25
+ return !el.disabled;
26
+ }
27
+ return false;
28
+ };
29
+ export default isElementTabbable;
30
+ //# sourceMappingURL=isElementTabbable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isElementTabbable.js","sourceRoot":"","sources":["../../src/util/isElementTabbable.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,CAAC,EAAe,EAAW,EAAE;IACtD,IAAI,CAAC,EAAE,EAAE;QACR,OAAO,KAAK,CAAC;KACb;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAE3C,IAAI,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE;QAC3C,OAAO,KAAK,CAAC;KACb;IAED,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC;KACb;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;QAChD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,IAAI,QAAQ,KAAK,GAAG,IAAI,qCAAqC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC7E,OAAO,CAAE,EAAsB,CAAC,QAAQ,CAAC;KACzC;IAED,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Checks whether a property name is valid (does not collide with existing DOM API properties)
3
+ *
4
+ * @param name
5
+ * @returns {boolean}
6
+ */
7
+ declare const isValidPropertyName: (name: string) => boolean;
8
+ export default isValidPropertyName;
@@ -1,29 +1,28 @@
1
1
  // Note: disabled is present in IE so we explicitly allow it here.
2
2
  // Others, such as title/hidden, we explicitly override, so valid too
3
3
  const allowList = [
4
- "disabled",
5
- "title",
6
- "hidden",
7
- "role",
8
- "draggable",
4
+ "disabled",
5
+ "title",
6
+ "hidden",
7
+ "role",
8
+ "draggable",
9
9
  ];
10
-
11
10
  /**
12
11
  * Checks whether a property name is valid (does not collide with existing DOM API properties)
13
12
  *
14
13
  * @param name
15
14
  * @returns {boolean}
16
15
  */
17
- const isValidPropertyName = name => {
18
- if (allowList.includes(name) || name.startsWith("aria")) {
19
- return true;
20
- }
21
- const classes = [
22
- HTMLElement,
23
- Element,
24
- Node,
25
- ];
26
- return !classes.some(klass => klass.prototype.hasOwnProperty(name)); // eslint-disable-line
16
+ const isValidPropertyName = (name) => {
17
+ if (allowList.includes(name) || name.startsWith("aria")) {
18
+ return true;
19
+ }
20
+ const classes = [
21
+ HTMLElement,
22
+ Element,
23
+ Node,
24
+ ];
25
+ return !classes.some(klass => klass.prototype.hasOwnProperty(name)); // eslint-disable-line
27
26
  };
28
-
29
27
  export default isValidPropertyName;
28
+ //# sourceMappingURL=isValidPropertyName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isValidPropertyName.js","sourceRoot":"","sources":["../../src/util/isValidPropertyName.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,qEAAqE;AACrE,MAAM,SAAS,GAAG;IACjB,UAAU;IACV,OAAO;IACP,QAAQ;IACR,MAAM;IACN,WAAW;CACX,CAAC;AAEF;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QACxD,OAAO,IAAI,CAAC;KACZ;IACD,MAAM,OAAO,GAAG;QACf,WAAW;QACX,OAAO;QACP,IAAI;KACJ,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB;AAC5F,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const whenDOMReady: () => Promise<void>;
2
+ export default whenDOMReady;
@@ -1,13 +1,14 @@
1
1
  const whenDOMReady = () => {
2
- return new Promise(resolve => {
3
- if (document.body) {
4
- resolve();
5
- } else {
6
- document.addEventListener("DOMContentLoaded", () => {
7
- resolve();
8
- });
9
- }
10
- });
2
+ return new Promise(resolve => {
3
+ if (document.body) {
4
+ resolve();
5
+ }
6
+ else {
7
+ document.addEventListener("DOMContentLoaded", () => {
8
+ resolve();
9
+ });
10
+ }
11
+ });
11
12
  };
12
-
13
13
  export default whenDOMReady;
14
+ //# sourceMappingURL=whenDOMReady.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whenDOMReady.js","sourceRoot":"","sources":["../../src/util/whenDOMReady.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,GAAG,EAAE;IACzB,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;QAClC,IAAI,QAAQ,CAAC,IAAI,EAAE;YAClB,OAAO,EAAE,CAAC;SACV;aAAM;YACN,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;gBAClD,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;SACH;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const willShowContent: (childNodes: Array<Node>) => boolean;
2
+ export default willShowContent;
@@ -0,0 +1,7 @@
1
+ const willShowContent = (childNodes) => {
2
+ return Array.from(childNodes).filter(node => {
3
+ return node.nodeType !== Node.COMMENT_NODE && (node.nodeType !== Node.TEXT_NODE || (node.nodeValue || "").trim().length !== 0);
4
+ }).length > 0;
5
+ };
6
+ export default willShowContent;
7
+ //# sourceMappingURL=willShowContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"willShowContent.js","sourceRoot":"","sources":["../../src/util/willShowContent.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,CAAC,UAAuB,EAAE,EAAE;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC3C,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAChI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const validateThemeRoot: (themeRoot: string) => string | undefined;
2
+ export default validateThemeRoot;
@@ -0,0 +1,47 @@
1
+ const getMetaTagValue = (metaTagName) => {
2
+ const metaTag = document.querySelector(`META[name="${metaTagName}"]`), metaTagContent = metaTag && metaTag.getAttribute("content");
3
+ return metaTagContent;
4
+ };
5
+ const validateThemeOrigin = (origin) => {
6
+ const allowedOrigins = getMetaTagValue("sap-allowedThemeOrigins");
7
+ return allowedOrigins && allowedOrigins.split(",").some(allowedOrigin => {
8
+ return allowedOrigin === "*" || origin === allowedOrigin.trim();
9
+ });
10
+ };
11
+ const buildCorrectUrl = (oldUrl, newOrigin) => {
12
+ const oldUrlPath = new URL(oldUrl).pathname;
13
+ return new URL(oldUrlPath, newOrigin).toString();
14
+ };
15
+ const validateThemeRoot = (themeRoot) => {
16
+ let themeRootURL, resultUrl;
17
+ try {
18
+ themeRootURL = new URL(themeRoot);
19
+ const origin = themeRootURL.origin;
20
+ themeRootURL = themeRootURL.toString();
21
+ if (themeRootURL.startsWith(".") || themeRootURL.startsWith("/")) {
22
+ // Handle relative url
23
+ // new URL("/newExmPath", "http://example.com/exmPath") => http://example.com/newExmPath
24
+ // new URL("./newExmPath", "http://example.com/exmPath") => http://example.com/exmPath/newExmPath
25
+ // new URL("../newExmPath", "http://example.com/exmPath") => http://example.com/newExmPath
26
+ resultUrl = new URL(themeRootURL, window.location.href).toString();
27
+ }
28
+ else if (origin && validateThemeOrigin(origin)) {
29
+ // If origin is allowed, use it
30
+ resultUrl = themeRootURL.toString();
31
+ }
32
+ else {
33
+ // If origin is not allow and the URL is not relative, we have to replace the origin
34
+ // with current location
35
+ resultUrl = buildCorrectUrl(themeRootURL, window.location.href);
36
+ }
37
+ if (!resultUrl.endsWith("/")) {
38
+ resultUrl = `${resultUrl}/`;
39
+ }
40
+ return `${resultUrl}UI5/`;
41
+ }
42
+ catch (e) {
43
+ // Catch if URL is not correct
44
+ }
45
+ };
46
+ export default validateThemeRoot;
47
+ //# sourceMappingURL=validateThemeRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateThemeRoot.js","sourceRoot":"","sources":["../src/validateThemeRoot.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,WAAW,IAAI,CAAC,EACpE,cAAc,GAAG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAE7D,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC9C,MAAM,cAAc,GAAG,eAAe,CAAC,yBAAyB,CAAC,CAAC;IAElE,OAAO,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;QACvE,OAAO,aAAa,KAAK,GAAG,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,EAAE;IAC7D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IAE5C,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC/C,IAAI,YAAY,EACf,SAAS,CAAC;IAEX,IAAI;QACH,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QAEnC,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QAEvC,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACjE,sBAAsB;YACtB,wFAAwF;YACxF,iGAAiG;YACjG,0FAA0F;YAC1F,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;SACnE;aAAM,IAAI,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;YACjD,+BAA+B;YAC/B,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;SACpC;aAAM;YACN,oFAAoF;YACpF,wBAAwB;YACxB,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAChE;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7B,SAAS,GAAG,GAAG,SAAS,GAAG,CAAC;SAC5B;QAED,OAAO,GAAG,SAAS,MAAM,CAAC;KAC1B;IAAC,OAAO,CAAC,EAAE;QACX,8BAA8B;KAC9B;AACF,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
package/global.d.ts ADDED
@@ -0,0 +1,44 @@
1
+ import { StyleData } from "./src/types.js";
2
+
3
+ export {};
4
+
5
+ declare global {
6
+
7
+ type VersionInfo = {
8
+ version: string,
9
+ major: number,
10
+ minor: number,
11
+ patch: number,
12
+ suffix: string,
13
+ isNext: boolean,
14
+ buildTime: number,
15
+ }
16
+
17
+ interface Window {
18
+ sap: any;
19
+ chrome: any;
20
+ v8: any;
21
+ }
22
+ module "*.css.js" {
23
+ const content: StyleData;
24
+ export default content;
25
+ }
26
+
27
+ module "*generated/AssetParameters.js" {
28
+ const DEFAULT_THEME: string;
29
+ const DEFAULT_LANGUAGE: string;
30
+ const DEFAULT_LOCALE: string;
31
+ const SUPPORTED_LOCALES: Array<string>;
32
+ export {
33
+ DEFAULT_THEME,
34
+ DEFAULT_LANGUAGE,
35
+ DEFAULT_LOCALE,
36
+ SUPPORTED_LOCALES,
37
+ };
38
+ }
39
+
40
+ module "*generated/VersionInfo.js" {
41
+ const content: VersionInfo;
42
+ export default content;
43
+ }
44
+ }
@@ -3,7 +3,7 @@ const path = require('path');
3
3
  const CleanCSS = require('clean-css');
4
4
 
5
5
  const generate = async () => {
6
- await fs.mkdir("dist/generated/css/");
6
+ await fs.mkdir("dist/generated/css/", {recursive: true});
7
7
 
8
8
  const files = (await fs.readdir("src/css/")).filter(file => file.endsWith(".css"));
9
9
  const filesPromises = files.map(async file => {
@@ -1,16 +1,23 @@
1
1
  const resolve = require("resolve");
2
+ const path = require("path");
2
3
 
3
4
  const assetParametersScript = resolve.sync("@ui5/webcomponents-base/lib/generate-asset-parameters/index.js");
4
5
  const stylesScript = resolve.sync("@ui5/webcomponents-base/lib/generate-styles/index.js");
5
6
  const versionScript = resolve.sync("@ui5/webcomponents-base/lib/generate-version-info/index.js");
6
- const serve = resolve.sync("@ui5/webcomponents-tools/lib/serve/index.js");
7
7
  const copyUsedModules = resolve.sync("@ui5/webcomponents-tools/lib/copy-list/index.js");
8
8
  const esmAbsToRel = resolve.sync("@ui5/webcomponents-tools/lib/esm-abs-to-rel/index.js");
9
+ const preprocessJSDocScript = resolve.sync("@ui5/webcomponents-tools/lib/jsdoc/preprocess.js");
10
+
11
+ const LIB = path.join(__dirname, `../tools/lib/`);
12
+
13
+ const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`;
14
+ const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}`;
9
15
 
10
16
  const scripts = {
11
- clean: "rimraf dist && rimraf .port",
12
- lint: "eslint . --config config/.eslintrc.js",
13
- prepare: "nps clean integrate copy generateAssetParameters generateVersionInfo generateStyles",
17
+ clean: "rimraf jsdoc-dist && rimraf dist && rimraf .port",
18
+ lint: `eslint . ${eslintConfig}`,
19
+ prepare: "nps clean integrate copy typescript generateAssetParameters generateVersionInfo generateStyles generateTemplates generateAPI",
20
+ typescript: "tsc",
14
21
  integrate: {
15
22
  default: "nps integrate.copy-used-modules integrate.replace-amd integrate.amd-to-es6 integrate.esm-abs-to-rel integrate.third-party",
16
23
  "copy-used-modules": `node "${copyUsedModules}" ./used-modules.txt dist/`,
@@ -25,31 +32,33 @@ const scripts = {
25
32
  },
26
33
  build: {
27
34
  default: `nps lint prepare build.bundle`,
28
- bundle: "rollup --config config/rollup.config.js",
35
+ bundle: `vite build ${viteConfig}`,
29
36
  },
30
37
  copy: {
31
- default: "nps copy.src copy.test",
38
+ default: "nps copy.src",
32
39
  src: `copy-and-watch "src/**/*.{js,css}" dist/`,
33
- test: `copy-and-watch "test/**/*.*" dist/test-resources`,
34
40
  },
35
41
  generateAssetParameters: `node "${assetParametersScript}"`,
36
42
  generateVersionInfo: `node "${versionScript}"`,
37
43
  generateStyles: `node "${stylesScript}"`,
44
+ generateTemplates: `mkdirp dist/generated/templates && node "${LIB}/hbs2ui5/index.js" -d test/elements -o dist/generated/templates`,
45
+ generateAPI: {
46
+ default: "nps generateAPI.prepare generateAPI.preprocess generateAPI.jsdoc generateAPI.cleanup",
47
+ prepare: `copy-and-watch "dist/**/*.js" jsdoc-dist/`,
48
+ preprocess: `node "${preprocessJSDocScript}" jsdoc-dist/`,
49
+ jsdoc: `jsdoc -c "${LIB}/jsdoc/configTypescript.json"`,
50
+ cleanup: "rimraf jsdoc-dist/"
51
+ },
38
52
  watch: {
39
- default: 'concurrently "nps watch.test" "nps watch.src" "nps watch.bundle" "nps watch.styles"',
53
+ default: 'concurrently "nps watch.src" "nps watch.styles" "nps watch.typescript"',
54
+ withBundle: 'concurrently "nps watch.src" "nps watch.bundle" "nps watch.styles" "nps watch.typescript"',
40
55
  src: 'nps "copy.src --watch --skip-initial-copy"',
41
- test: 'nps "copy.test --watch --skip-initial-copy"',
42
- bundle: "rollup --config config/rollup.config.js -w --environment DEV",
56
+ typescript: 'tsc --watch',
57
+ bundle: `node ${LIB}/dev-server/dev-server.js ${viteConfig}`,
43
58
  styles: 'chokidar "src/css/*.css" -c "nps generateStyles"'
44
59
  },
45
- dev: 'concurrently "nps serve" "nps watch"',
46
- start: "nps prepare dev",
47
- serve: `node "${serve}" --dir="dist/" --port=9191 --packageName="@ui5/webcomponents-base"`,
48
- test: {
49
- // --success first - report the exit code of the test run (first command to finish), as serve is always terminated and has a non-0 exit code
50
- default: 'concurrently "nps serve" "nps test.run" --kill-others --success first',
51
- run: "cross-env WDIO_LOG_LEVEL=error FORCE_COLOR=0 wdio config/wdio.conf.js",
52
- },
60
+ start: "nps prepare watch.withBundle",
61
+ test: `node "${LIB}/test-runner/test-runner.js"`,
53
62
  };
54
63
 
55
64
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-base",
3
- "version": "0.0.0-453158269",
3
+ "version": "0.0.0-49cef2d02",
4
4
  "description": "UI5 Web Components: webcomponents.base",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -35,14 +35,15 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@buxlabs/amd-to-es6": "0.16.1",
38
- "@openui5/sap.ui.core": "1.101.0",
39
- "@ui5/webcomponents-tools": "0.0.0-453158269",
40
- "chromedriver": "101.0.0",
38
+ "@openui5/sap.ui.core": "1.109.0",
39
+ "@ui5/webcomponents-tools": "0.0.0-49cef2d02",
40
+ "chromedriver": "107.0.3",
41
41
  "clean-css": "^5.2.2",
42
42
  "copy-and-watch": "^0.1.5",
43
43
  "cross-env": "^7.0.3",
44
44
  "eslint": "^7.22.0",
45
45
  "mkdirp": "^1.0.4",
46
+ "replace-in-file": "^6.3.5",
46
47
  "resolve": "^1.20.0"
47
48
  }
48
49
  }
File without changes
package/src/Boot.ts ADDED
@@ -0,0 +1,61 @@
1
+ import whenDOMReady from "./util/whenDOMReady.js";
2
+ import insertFontFace from "./FontFace.js";
3
+ import insertSystemCSSVars from "./SystemCSSVars.js";
4
+ import { getTheme } from "./config/Theme.js";
5
+ import applyTheme from "./theming/applyTheme.js";
6
+ import { registerCurrentRuntime } from "./Runtimes.js";
7
+ import { getFeature } from "./FeaturesRegistry.js";
8
+ import type OpenUI5Support from "./features/OpenUI5Support.js";
9
+ import type F6Navigation from "./features/F6Navigation.js";
10
+ import { PromiseResolve } from "./types.js";
11
+
12
+ let bootPromise: Promise<void>;
13
+
14
+ /**
15
+ * Attach a callback that will be executed on boot
16
+ * @public
17
+ * @param listener
18
+ */
19
+ const attachBoot = async (listener: () => void) => {
20
+ await boot();
21
+ listener();
22
+ };
23
+
24
+ const boot = async (): Promise<void> => {
25
+ if (bootPromise !== undefined) {
26
+ return bootPromise;
27
+ }
28
+
29
+ const bootExecutor = async (resolve: PromiseResolve) => {
30
+ registerCurrentRuntime();
31
+
32
+ const openUI5Support = getFeature<typeof OpenUI5Support>("OpenUI5Support");
33
+ const isOpenUI5Loaded = openUI5Support ? openUI5Support.isLoaded() : false;
34
+ const f6Navigation = getFeature<typeof F6Navigation>("F6Navigation");
35
+
36
+ if (openUI5Support) {
37
+ await openUI5Support.init();
38
+ }
39
+
40
+ if (f6Navigation && !isOpenUI5Loaded) {
41
+ f6Navigation.init();
42
+ }
43
+
44
+ await whenDOMReady();
45
+ await applyTheme(getTheme());
46
+ openUI5Support && openUI5Support.attachListeners();
47
+ insertFontFace();
48
+ insertSystemCSSVars();
49
+
50
+ resolve();
51
+ };
52
+
53
+ bootPromise = new Promise(bootExecutor as (resolve: PromiseResolve) => void);
54
+
55
+ return bootPromise;
56
+ };
57
+
58
+ export {
59
+ boot,
60
+ attachBoot,
61
+ };
@@ -1,20 +1,27 @@
1
- const roots = new Map();
1
+ const roots = new Map<string, string>();
2
2
  let useLinks = false;
3
3
  let preloadLinks = true;
4
4
 
5
5
  /**
6
- * Use this function to provide the path to the directory where the css resources for the given package will be served from
6
+ * Use this function to provide the path to the directory where the css resources for the given package will be served from.
7
7
  *
8
8
  * @public
9
9
  * @param packageName name of the package that is being configured
10
10
  * @param root path, accessible by the server that will serve the css resources
11
11
  */
12
- const setPackageCSSRoot = (packageName, root) => {
12
+ const setPackageCSSRoot = (packageName: string, root: string) => {
13
13
  roots.set(packageName, root);
14
14
  };
15
15
 
16
- const getUrl = (packageName, path) => {
17
- return `${roots.get(packageName)}${path}`;
16
+ const getUrl = (packageName: string, path: string) => {
17
+ const packageCSSRoot = roots.get(packageName);
18
+
19
+ if (!packageCSSRoot) {
20
+ console.warn(`Root path to the CSS resources ${packageName} not provided - use "setPackageCSSRoot" to provide the root.`); // eslint-disable-line
21
+ return "";
22
+ }
23
+
24
+ return `${packageCSSRoot}${path}`;
18
25
  };
19
26
 
20
27
  /**
@@ -25,7 +32,7 @@ const getUrl = (packageName, path) => {
25
32
  * @public
26
33
  * @param use whether links will be used
27
34
  */
28
- const setUseLinks = use => {
35
+ const setUseLinks = (use: boolean) => {
29
36
  useLinks = use;
30
37
  };
31
38
 
@@ -37,7 +44,7 @@ const setUseLinks = use => {
37
44
  * @public
38
45
  * @param preload
39
46
  */
40
- const setPreloadLinks = preload => {
47
+ const setPreloadLinks = (preload: boolean) => {
41
48
  preloadLinks = preload;
42
49
  };
43
50
 
@@ -1,40 +1,43 @@
1
- import setToArray from "./util/setToArray.js";
2
1
  import getSharedResource from "./getSharedResource.js";
3
2
  import { getCurrentRuntimeIndex, compareRuntimes, getAllRuntimes } from "./Runtimes.js";
3
+ import { Timeout } from "./types.js";
4
4
 
5
- const Tags = getSharedResource("Tags", new Map());
5
+ const Tags = getSharedResource<Map<string, number>>("Tags", new Map());
6
+ const Definitions = new Set<string>();
6
7
 
7
- const Definitions = new Set();
8
- let Failures = {};
9
- let failureTimeout;
8
+ let Failures = new Map<number, Set<string>>();
9
+ let failureTimeout: Timeout | undefined;
10
10
 
11
- const UNKNOWN_RUNTIME = "unknown";
11
+ const UNKNOWN_RUNTIME = -1;
12
12
 
13
- const registerTag = tag => {
13
+ const registerTag = (tag: string) => {
14
14
  Definitions.add(tag);
15
15
  Tags.set(tag, getCurrentRuntimeIndex());
16
16
  };
17
17
 
18
- const isTagRegistered = tag => {
18
+ const isTagRegistered = (tag: string) => {
19
19
  return Definitions.has(tag);
20
20
  };
21
21
 
22
22
  const getAllRegisteredTags = () => {
23
- return setToArray(Definitions);
23
+ return [...Definitions.values()];
24
24
  };
25
25
 
26
- const recordTagRegistrationFailure = tag => {
26
+ const recordTagRegistrationFailure = (tag: string) => {
27
27
  let tagRegRuntimeIndex = Tags.get(tag);
28
28
  if (tagRegRuntimeIndex === undefined) {
29
29
  tagRegRuntimeIndex = UNKNOWN_RUNTIME; // If the tag is taken, but not registered in Tags, then a version before 1.1.0 defined it => use the "unknown" key
30
30
  }
31
- Failures[tagRegRuntimeIndex] = Failures[tagRegRuntimeIndex] || new Set();
32
- Failures[tagRegRuntimeIndex].add(tag);
31
+
32
+ if (!Failures.has(tagRegRuntimeIndex)) {
33
+ Failures.set(tagRegRuntimeIndex, new Set());
34
+ }
35
+ Failures.get(tagRegRuntimeIndex)!.add(tag);
33
36
 
34
37
  if (!failureTimeout) {
35
38
  failureTimeout = setTimeout(() => {
36
39
  displayFailedRegistrations();
37
- Failures = {};
40
+ Failures = new Map();
38
41
  failureTimeout = undefined;
39
42
  }, 1000);
40
43
  }
@@ -51,8 +54,8 @@ const displayFailedRegistrations = () => {
51
54
  message = `${message}\nLoading order (versions before 1.1.0 not listed): ${allRuntimes.map(runtime => `\n${runtime.description}`).join("")}`;
52
55
  }
53
56
 
54
- Object.keys(Failures).forEach(otherRuntimeIndex => {
55
- let comparison;
57
+ [...Failures.keys()].forEach(otherRuntimeIndex => {
58
+ let comparison: number;
56
59
  let otherRuntime;
57
60
 
58
61
  if (otherRuntimeIndex === UNKNOWN_RUNTIME) { // version < 1.1.0 defined the tag
@@ -73,7 +76,7 @@ const displayFailedRegistrations = () => {
73
76
  } else {
74
77
  compareWord = "the same";
75
78
  }
76
- message = `${message}\n\n"${currentRuntime.description}" failed to define ${Failures[otherRuntimeIndex].size} tag(s) as they were defined by a runtime of ${compareWord} version "${otherRuntime.description}": ${setToArray(Failures[otherRuntimeIndex]).sort().join(", ")}.`;
79
+ message = `${message}\n\n"${currentRuntime.description}" failed to define ${Failures.get(otherRuntimeIndex)!.size} tag(s) as they were defined by a runtime of ${compareWord} version "${otherRuntime.description}": ${([...Failures.get(otherRuntimeIndex)!]).sort().join(", ")}.`;
77
80
 
78
81
  if (comparison > 0) {
79
82
  message = `${message}\nWARNING! If your code uses features of the above web components, unavailable in ${otherRuntime.description}, it might not work as expected!`;
@@ -82,7 +85,7 @@ const displayFailedRegistrations = () => {
82
85
  }
83
86
  });
84
87
 
85
- message = `${message}\n\nTo prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/master/docs/2-advanced/03-scoping.md.`;
88
+ message = `${message}\n\nTo prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/main/docs/2-advanced/03-scoping.md.`;
86
89
 
87
90
  console.warn(message); // eslint-disable-line
88
91
  };