@ui5/webcomponents-base 0.0.0-4180fe799 → 0.0.0-4738ea0dc

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 (694) hide show
  1. package/.eslintignore +3 -1
  2. package/CHANGELOG.md +437 -0
  3. package/README.md +28 -6
  4. package/bundle.esm.js +15 -11
  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 +35 -30
  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 +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 +148 -89
  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 -7
  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 -244
  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 +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 +85 -84
  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 +378 -0
  78. package/dist/UI5Element.js +917 -980
  79. package/dist/UI5Element.js.map +1 -0
  80. package/dist/UI5ElementMetadata.d.ts +150 -0
  81. package/dist/UI5ElementMetadata.js +278 -306
  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 +88 -123
  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 -127
  107. package/dist/asset-registries/LocaleData.js.map +1 -0
  108. package/dist/asset-registries/Themes.d.ts +11 -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.0059c2ef.js +60 -0
  115. package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
  116. package/dist/assets-meta/IconCollectionsAlias.js +30 -10
  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 +15 -0
  125. package/dist/config/FormatSettings.js +15 -9
  126. package/dist/config/FormatSettings.js.map +1 -0
  127. package/dist/config/Icons.d.ts +55 -0
  128. package/dist/config/Icons.js +103 -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 +26 -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 +38 -29
  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 +31 -10
  147. package/dist/decorators/customElement.d.ts +23 -0
  148. package/dist/decorators/customElement.js +31 -0
  149. package/dist/decorators/customElement.js.map +1 -0
  150. package/dist/decorators/event.d.ts +10 -0
  151. package/dist/decorators/event.js +24 -0
  152. package/dist/decorators/event.js.map +1 -0
  153. package/dist/decorators/fastNavigation.d.ts +7 -0
  154. package/dist/decorators/fastNavigation.js +13 -0
  155. package/dist/decorators/fastNavigation.js.map +1 -0
  156. package/dist/decorators/languageAware.d.ts +7 -0
  157. package/dist/decorators/languageAware.js +13 -0
  158. package/dist/decorators/languageAware.js.map +1 -0
  159. package/dist/decorators/property.d.ts +9 -0
  160. package/dist/decorators/property.js +24 -0
  161. package/dist/decorators/property.js.map +1 -0
  162. package/dist/decorators/slot.d.ts +9 -0
  163. package/dist/decorators/slot.js +37 -0
  164. package/dist/decorators/slot.js.map +1 -0
  165. package/dist/decorators/themeAware.d.ts +7 -0
  166. package/dist/decorators/themeAware.js +13 -0
  167. package/dist/decorators/themeAware.js.map +1 -0
  168. package/dist/delegate/ItemNavigation.d.ts +113 -0
  169. package/dist/delegate/ItemNavigation.js +277 -312
  170. package/dist/delegate/ItemNavigation.js.map +1 -0
  171. package/dist/delegate/ResizeHandler.d.ts +25 -0
  172. package/dist/delegate/ResizeHandler.js +70 -91
  173. package/dist/delegate/ResizeHandler.js.map +1 -0
  174. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  175. package/dist/delegate/ScrollEnablement.js +157 -180
  176. package/dist/delegate/ScrollEnablement.js.map +1 -0
  177. package/dist/features/F6Navigation.d.ts +19 -0
  178. package/dist/features/F6Navigation.js +151 -0
  179. package/dist/features/F6Navigation.js.map +1 -0
  180. package/dist/features/LegacyDateFormats.d.ts +18 -0
  181. package/dist/features/LegacyDateFormats.js +20 -0
  182. package/dist/features/LegacyDateFormats.js.map +1 -0
  183. package/dist/features/OpenUI5Element.d.ts +9 -0
  184. package/dist/features/OpenUI5Element.js +5 -0
  185. package/dist/features/OpenUI5Element.js.map +1 -0
  186. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  187. package/dist/features/OpenUI5Enablement.js +96 -0
  188. package/dist/features/OpenUI5Enablement.js.map +1 -0
  189. package/dist/features/OpenUI5Support.d.ts +25 -0
  190. package/dist/features/OpenUI5Support.js +92 -119
  191. package/dist/features/OpenUI5Support.js.map +1 -0
  192. package/dist/generated/AssetParameters.js +1 -1
  193. package/dist/generated/VersionInfo.js +10 -0
  194. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  195. package/dist/generated/css/BusyIndicator.css.js +7 -0
  196. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  197. package/dist/generated/css/FontFace.css.d.ts +3 -0
  198. package/dist/generated/css/FontFace.css.js +7 -5
  199. package/dist/generated/css/FontFace.css.js.map +1 -0
  200. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  201. package/dist/generated/css/OverrideFontFace.css.js +7 -5
  202. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  203. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  204. package/dist/generated/css/SystemCSSVars.css.js +7 -5
  205. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  206. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  207. package/dist/getSharedResource.d.ts +11 -0
  208. package/dist/getSharedResource.js +21 -17
  209. package/dist/getSharedResource.js.map +1 -0
  210. package/dist/global.d.ts +38 -0
  211. package/dist/i18nBundle.d.ts +43 -0
  212. package/dist/i18nBundle.js +56 -64
  213. package/dist/i18nBundle.js.map +1 -0
  214. package/dist/locale/Locale.d.ts +22 -0
  215. package/dist/locale/Locale.js +75 -87
  216. package/dist/locale/Locale.js.map +1 -0
  217. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  218. package/dist/locale/RTLAwareRegistry.js +6 -11
  219. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  220. package/dist/locale/applyDirection.d.ts +10 -0
  221. package/dist/locale/applyDirection.js +7 -7
  222. package/dist/locale/applyDirection.js.map +1 -0
  223. package/dist/locale/directionChange.d.ts +15 -0
  224. package/dist/locale/directionChange.js +7 -15
  225. package/dist/locale/directionChange.js.map +1 -0
  226. package/dist/locale/getEffectiveDir.d.ts +2 -0
  227. package/dist/locale/getEffectiveDir.js +20 -24
  228. package/dist/locale/getEffectiveDir.js.map +1 -0
  229. package/dist/locale/getLocale.d.ts +7 -0
  230. package/dist/locale/getLocale.js +26 -29
  231. package/dist/locale/getLocale.js.map +1 -0
  232. package/dist/locale/languageChange.d.ts +5 -0
  233. package/dist/locale/languageChange.js +8 -16
  234. package/dist/locale/languageChange.js.map +1 -0
  235. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  236. package/dist/locale/nextFallbackLocale.js +15 -19
  237. package/dist/locale/nextFallbackLocale.js.map +1 -0
  238. package/dist/locale/normalizeLocale.d.ts +7 -0
  239. package/dist/locale/normalizeLocale.js +34 -41
  240. package/dist/locale/normalizeLocale.js.map +1 -0
  241. package/dist/renderer/LitRenderer.d.ts +14 -0
  242. package/dist/renderer/LitRenderer.js +31 -24
  243. package/dist/renderer/LitRenderer.js.map +1 -0
  244. package/dist/renderer/executeTemplate.d.ts +13 -0
  245. package/dist/renderer/executeTemplate.js +20 -7
  246. package/dist/renderer/executeTemplate.js.map +1 -0
  247. package/dist/sap/base/Log.js +28 -29
  248. package/dist/sap/base/assert.js +5 -6
  249. package/dist/sap/base/security/URLListValidator.js +13 -2
  250. package/dist/sap/base/security/encodeCSS.js +14 -0
  251. package/dist/sap/base/security/encodeXML.js +23 -0
  252. package/dist/sap/base/strings/toHex.js +8 -0
  253. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  254. package/dist/theming/CustomStyle.d.ts +6 -0
  255. package/dist/theming/CustomStyle.js +39 -31
  256. package/dist/theming/CustomStyle.js.map +1 -0
  257. package/dist/theming/ThemeLoaded.d.ts +5 -0
  258. package/dist/theming/ThemeLoaded.js +8 -16
  259. package/dist/theming/ThemeLoaded.js.map +1 -0
  260. package/dist/theming/applyTheme.d.ts +2 -0
  261. package/dist/theming/applyTheme.js +60 -60
  262. package/dist/theming/applyTheme.js.map +1 -0
  263. package/dist/theming/getConstructableStyle.d.ts +9 -0
  264. package/dist/theming/getConstructableStyle.js +12 -17
  265. package/dist/theming/getConstructableStyle.js.map +1 -0
  266. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  267. package/dist/theming/getEffectiveLinksHrefs.js +13 -16
  268. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  269. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  270. package/dist/theming/getEffectiveStyle.js +25 -23
  271. package/dist/theming/getEffectiveStyle.js.map +1 -0
  272. package/dist/theming/getStylesString.d.ts +3 -0
  273. package/dist/theming/getStylesString.js +9 -13
  274. package/dist/theming/getStylesString.js.map +1 -0
  275. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  276. package/dist/theming/getThemeDesignerTheme.js +73 -61
  277. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  278. package/dist/theming/preloadLinks.d.ts +3 -0
  279. package/dist/theming/preloadLinks.js +13 -17
  280. package/dist/theming/preloadLinks.js.map +1 -0
  281. package/dist/thirdparty/_merge.d.ts +2 -0
  282. package/dist/thirdparty/_merge.js +7 -4
  283. package/dist/thirdparty/_merge.js.map +1 -0
  284. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  285. package/dist/thirdparty/isPlainObject.js +11 -10
  286. package/dist/thirdparty/isPlainObject.js.map +1 -0
  287. package/dist/thirdparty/merge.d.ts +2 -0
  288. package/dist/thirdparty/merge.js +4 -8
  289. package/dist/thirdparty/merge.js.map +1 -0
  290. package/dist/types/AnimationMode.d.ts +32 -0
  291. package/dist/types/AnimationMode.js +33 -6
  292. package/dist/types/AnimationMode.js.map +1 -0
  293. package/dist/types/CSSColor.d.ts +16 -0
  294. package/dist/types/CSSColor.js +15 -5
  295. package/dist/types/CSSColor.js.map +1 -0
  296. package/dist/types/CalendarType.d.ts +37 -0
  297. package/dist/types/CalendarType.js +35 -18
  298. package/dist/types/CalendarType.js.map +1 -0
  299. package/dist/types/DOMReference.d.ts +17 -0
  300. package/dist/types/DOMReference.js +25 -0
  301. package/dist/types/DOMReference.js.map +1 -0
  302. package/dist/types/DataType.d.ts +25 -0
  303. package/dist/types/DataType.js +33 -26
  304. package/dist/types/DataType.js.map +1 -0
  305. package/dist/types/Float.d.ts +18 -0
  306. package/dist/types/Float.js +18 -10
  307. package/dist/types/Float.js.map +1 -0
  308. package/dist/types/Integer.d.ts +18 -0
  309. package/dist/types/Integer.js +18 -9
  310. package/dist/types/Integer.js.map +1 -0
  311. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  312. package/dist/types/InvisibleMessageMode.js +20 -23
  313. package/dist/types/InvisibleMessageMode.js.map +1 -0
  314. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  315. package/dist/types/ItemNavigationBehavior.js +22 -12
  316. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  317. package/dist/types/NavigationMode.d.ts +32 -0
  318. package/dist/types/NavigationMode.js +33 -6
  319. package/dist/types/NavigationMode.js.map +1 -0
  320. package/dist/types/ValueState.d.ts +42 -0
  321. package/dist/types/ValueState.js +41 -19
  322. package/dist/types/ValueState.js.map +1 -0
  323. package/dist/types.d.ts +18 -0
  324. package/dist/types.js +2 -0
  325. package/dist/types.js.map +1 -0
  326. package/dist/updateShadowRoot.d.ts +8 -0
  327. package/dist/updateShadowRoot.js +25 -17
  328. package/dist/updateShadowRoot.js.map +1 -0
  329. package/dist/util/AriaLabelHelper.d.ts +15 -0
  330. package/dist/util/AriaLabelHelper.js +166 -36
  331. package/dist/util/AriaLabelHelper.js.map +1 -0
  332. package/dist/util/Caret.d.ts +7 -0
  333. package/dist/util/Caret.js +16 -38
  334. package/dist/util/Caret.js.map +1 -0
  335. package/dist/util/ColorConversion.d.ts +30 -0
  336. package/dist/util/ColorConversion.js +315 -348
  337. package/dist/util/ColorConversion.js.map +1 -0
  338. package/dist/util/FetchHelper.d.ts +3 -0
  339. package/dist/util/FetchHelper.js +19 -25
  340. package/dist/util/FetchHelper.js.map +1 -0
  341. package/dist/util/FocusableElements.d.ts +4 -0
  342. package/dist/util/FocusableElements.js +66 -72
  343. package/dist/util/FocusableElements.js.map +1 -0
  344. package/dist/util/HTMLSanitizer.d.ts +3 -0
  345. package/dist/util/HTMLSanitizer.js +4 -5
  346. package/dist/util/HTMLSanitizer.js.map +1 -0
  347. package/dist/util/InvisibleMessage.d.ts +10 -0
  348. package/dist/util/InvisibleMessage.js +42 -44
  349. package/dist/util/InvisibleMessage.js.map +1 -0
  350. package/dist/util/PopupUtils.d.ts +7 -0
  351. package/dist/util/PopupUtils.js +58 -77
  352. package/dist/util/PopupUtils.js.map +1 -0
  353. package/dist/util/SlotsHelper.d.ts +9 -0
  354. package/dist/util/SlotsHelper.js +22 -35
  355. package/dist/util/SlotsHelper.js.map +1 -0
  356. package/dist/util/StringHelper.d.ts +3 -0
  357. package/dist/util/StringHelper.js +17 -20
  358. package/dist/util/StringHelper.js.map +1 -0
  359. package/dist/util/TabbableElements.d.ts +17 -0
  360. package/dist/util/TabbableElements.js +53 -43
  361. package/dist/util/TabbableElements.js.map +1 -0
  362. package/dist/util/arraysAreEqual.d.ts +2 -0
  363. package/dist/util/arraysAreEqual.js +10 -12
  364. package/dist/util/arraysAreEqual.js.map +1 -0
  365. package/dist/util/clamp.d.ts +9 -0
  366. package/dist/util/clamp.js +2 -2
  367. package/dist/util/clamp.js.map +1 -0
  368. package/dist/util/createLinkInHead.d.ts +7 -0
  369. package/dist/util/createLinkInHead.js +14 -12
  370. package/dist/util/createLinkInHead.js.map +1 -0
  371. package/dist/util/createStyleInHead.d.ts +8 -0
  372. package/dist/util/createStyleInHead.js +10 -10
  373. package/dist/util/createStyleInHead.js.map +1 -0
  374. package/dist/util/debounce.d.ts +2 -0
  375. package/dist/util/debounce.js +6 -8
  376. package/dist/util/debounce.js.map +1 -0
  377. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  378. package/dist/util/detectNavigatorLanguage.js +7 -10
  379. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  380. package/dist/util/escapeRegex.d.ts +8 -0
  381. package/dist/util/escapeRegex.js +11 -0
  382. package/dist/util/escapeRegex.js.map +1 -0
  383. package/dist/util/formatMessage.d.ts +2 -0
  384. package/dist/util/formatMessage.js +15 -19
  385. package/dist/util/formatMessage.js.map +1 -0
  386. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  387. package/dist/util/generateHighlightedMarkup.js +41 -0
  388. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  389. package/dist/util/getActiveElement.d.ts +2 -0
  390. package/dist/util/getActiveElement.js +6 -8
  391. package/dist/util/getActiveElement.js.map +1 -0
  392. package/dist/util/getClassCopy.d.ts +398 -0
  393. package/dist/util/getClassCopy.js +7 -7
  394. package/dist/util/getClassCopy.js.map +1 -0
  395. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  396. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  397. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  398. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  399. package/dist/util/getEffectiveContentDensity.js +2 -3
  400. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  401. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  402. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  403. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  404. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  405. package/dist/util/getFastNavigationGroups.js +51 -0
  406. package/dist/util/getFastNavigationGroups.js.map +1 -0
  407. package/dist/util/getFileExtension.d.ts +12 -0
  408. package/dist/util/getFileExtension.js +9 -11
  409. package/dist/util/getFileExtension.js.map +1 -0
  410. package/dist/util/getNormalizedTarget.d.ts +7 -0
  411. package/dist/util/getNormalizedTarget.js +14 -0
  412. package/dist/util/getNormalizedTarget.js.map +1 -0
  413. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  414. package/dist/util/getSingletonElementInstance.js +7 -10
  415. package/dist/util/getSingletonElementInstance.js.map +1 -0
  416. package/dist/util/isElementClickable.d.ts +2 -0
  417. package/dist/util/isElementClickable.js +16 -0
  418. package/dist/util/isElementClickable.js.map +1 -0
  419. package/dist/util/isElementHidden.d.ts +2 -0
  420. package/dist/util/isElementHidden.js +8 -0
  421. package/dist/util/isElementHidden.js.map +1 -0
  422. package/dist/util/isElementInView.d.ts +6 -0
  423. package/dist/util/isElementInView.js +6 -9
  424. package/dist/util/isElementInView.js.map +1 -0
  425. package/dist/util/isElementTabbable.d.ts +9 -0
  426. package/dist/util/isElementTabbable.js +30 -0
  427. package/dist/util/isElementTabbable.js.map +1 -0
  428. package/dist/util/isValidPropertyName.d.ts +8 -0
  429. package/dist/util/isValidPropertyName.js +16 -17
  430. package/dist/util/isValidPropertyName.js.map +1 -0
  431. package/dist/util/whenDOMReady.d.ts +2 -0
  432. package/dist/util/whenDOMReady.js +11 -10
  433. package/dist/util/whenDOMReady.js.map +1 -0
  434. package/dist/util/willShowContent.d.ts +2 -0
  435. package/dist/util/willShowContent.js +7 -0
  436. package/dist/util/willShowContent.js.map +1 -0
  437. package/dist/validateThemeRoot.d.ts +2 -0
  438. package/dist/validateThemeRoot.js +47 -0
  439. package/dist/validateThemeRoot.js.map +1 -0
  440. package/lib/generate-asset-parameters/index.js +8 -4
  441. package/lib/generate-styles/index.js +24 -11
  442. package/lib/generate-version-info/index.js +32 -0
  443. package/package-scripts.js +34 -28
  444. package/package.json +7 -6
  445. package/src/Boot.ts +65 -0
  446. package/src/{CSP.js → CSP.ts} +14 -7
  447. package/src/CustomElementsRegistry.ts +98 -0
  448. package/src/CustomElementsScope.ts +33 -0
  449. package/src/{CustomElementsScope.js → CustomElementsScopeUtils.ts} +14 -7
  450. package/src/DOMObserver.ts +28 -0
  451. package/src/Device.ts +203 -0
  452. package/src/{EventProvider.js → EventProvider.ts} +9 -7
  453. package/src/FeaturesRegistry.ts +14 -0
  454. package/src/{FontFace.js → FontFace.ts} +3 -2
  455. package/src/{InitialConfiguration.js → InitialConfiguration.ts} +54 -13
  456. package/src/Keys.ts +295 -0
  457. package/src/ManagedStyles.ts +92 -0
  458. package/src/MarkedEvents.ts +20 -0
  459. package/src/{MediaRange.js → MediaRange.ts} +54 -53
  460. package/src/{PropertiesFileFormat.js → PropertiesFileFormat.ts} +8 -8
  461. package/src/{Render.js → Render.ts} +25 -20
  462. package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
  463. package/src/Runtimes.ts +114 -0
  464. package/src/{StaticAreaItem.js → StaticAreaItem.ts} +33 -18
  465. package/src/{UI5Element.js → UI5Element.ts} +289 -148
  466. package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +129 -59
  467. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  468. package/src/animations/animate.ts +64 -0
  469. package/src/animations/scroll.ts +21 -0
  470. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  471. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  472. package/src/asset-registries/Icons.ts +161 -0
  473. package/src/asset-registries/Illustrations.ts +75 -0
  474. package/src/asset-registries/{LocaleData.js → LocaleData.ts} +42 -29
  475. package/src/asset-registries/Themes.ts +72 -0
  476. package/src/asset-registries/{i18n.js → i18n.ts} +21 -24
  477. package/src/assets-meta/IconCollectionsAlias.ts +41 -0
  478. package/src/config/AnimationMode.ts +33 -0
  479. package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
  480. package/src/config/FormatSettings.ts +35 -0
  481. package/src/config/Icons.ts +126 -0
  482. package/src/config/{Language.js → Language.ts} +22 -18
  483. package/src/config/NoConflict.ts +67 -0
  484. package/src/config/{RTL.js → RTL.ts} +18 -4
  485. package/src/config/Theme.ts +64 -0
  486. package/src/config/ThemeRoots.ts +41 -0
  487. package/src/css/BusyIndicator.css +80 -0
  488. package/src/css/FontFace.css +31 -10
  489. package/src/decorators/customElement.ts +57 -0
  490. package/src/decorators/event.ts +28 -0
  491. package/src/decorators/fastNavigation.ts +14 -0
  492. package/src/decorators/languageAware.ts +14 -0
  493. package/src/decorators/property.ts +30 -0
  494. package/src/decorators/slot.ts +49 -0
  495. package/src/decorators/themeAware.ts +14 -0
  496. package/src/delegate/{ItemNavigation.js → ItemNavigation.ts} +65 -23
  497. package/src/delegate/ResizeHandler.ts +100 -0
  498. package/src/delegate/ScrollEnablement.ts +224 -0
  499. package/src/features/F6Navigation.ts +195 -0
  500. package/src/features/LegacyDateFormats.ts +40 -0
  501. package/src/features/OpenUI5Element.ts +11 -0
  502. package/src/features/OpenUI5Enablement.ts +117 -0
  503. package/src/features/OpenUI5Support.ts +153 -0
  504. package/src/generated/css/BusyIndicator.css.ts +9 -0
  505. package/src/generated/css/FontFace.css.ts +9 -0
  506. package/src/generated/css/OverrideFontFace.css.ts +9 -0
  507. package/src/generated/css/SystemCSSVars.css.ts +9 -0
  508. package/src/{getSharedResource.js → getSharedResource.ts} +13 -4
  509. package/src/global.d.ts +38 -0
  510. package/src/{i18nBundle.js → i18nBundle.ts} +44 -22
  511. package/src/locale/{Locale.js → Locale.ts} +15 -5
  512. package/src/locale/RTLAwareRegistry.ts +16 -0
  513. package/src/locale/{applyDirection.js → applyDirection.ts} +4 -3
  514. package/src/locale/{directionChange.js → directionChange.ts} +6 -4
  515. package/src/locale/{getEffectiveDir.js → getEffectiveDir.ts} +1 -1
  516. package/src/locale/{getLocale.js → getLocale.ts} +12 -7
  517. package/src/locale/languageChange.ts +24 -0
  518. package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
  519. package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +5 -3
  520. package/src/renderer/LitRenderer.ts +60 -0
  521. package/src/renderer/executeTemplate.ts +40 -0
  522. package/src/theming/CustomStyle.ts +64 -0
  523. package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
  524. package/src/theming/{applyTheme.js → applyTheme.ts} +30 -15
  525. package/src/theming/{getConstructableStyle.js → getConstructableStyle.ts} +5 -4
  526. package/src/theming/getEffectiveLinksHrefs.ts +26 -0
  527. package/src/theming/{getEffectiveStyle.js → getEffectiveStyle.ts} +15 -4
  528. package/src/theming/getStylesString.ts +15 -0
  529. package/src/theming/getThemeDesignerTheme.ts +101 -0
  530. package/src/theming/{preloadLinks.js → preloadLinks.ts} +3 -2
  531. package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
  532. package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
  533. package/src/thirdparty/merge.ts +5 -0
  534. package/src/types/AnimationMode.ts +33 -0
  535. package/src/types/{CSSColor.js → CSSColor.ts} +12 -1
  536. package/src/types/CalendarType.ts +38 -0
  537. package/src/types/DOMReference.ts +28 -0
  538. package/src/types/DataType.ts +51 -0
  539. package/src/types/Float.ts +25 -0
  540. package/src/types/Integer.ts +25 -0
  541. package/src/types/InvisibleMessageMode.ts +27 -0
  542. package/src/types/ItemNavigationBehavior.ts +26 -0
  543. package/src/types/NavigationMode.ts +33 -0
  544. package/src/types/ValueState.ts +47 -0
  545. package/src/types.ts +30 -0
  546. package/src/updateShadowRoot.ts +42 -0
  547. package/src/util/AriaLabelHelper.ts +218 -0
  548. package/src/util/Caret.ts +28 -0
  549. package/src/util/ColorConversion.ts +399 -0
  550. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  551. package/src/util/FocusableElements.ts +92 -0
  552. package/src/util/{HTMLSanitizer.js → HTMLSanitizer.ts} +2 -0
  553. package/src/util/{InvisibleMessage.js → InvisibleMessage.ts} +25 -14
  554. package/src/util/PopupUtils.ts +112 -0
  555. package/src/util/{SlotsHelper.js → SlotsHelper.ts} +9 -13
  556. package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
  557. package/src/util/TabbableElements.ts +70 -0
  558. package/src/util/{arraysAreEqual.js → arraysAreEqual.ts} +1 -1
  559. package/src/util/{clamp.js → clamp.ts} +1 -1
  560. package/src/util/{createLinkInHead.js → createLinkInHead.ts} +10 -4
  561. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  562. package/src/util/{debounce.js → debounce.ts} +5 -4
  563. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
  564. package/src/util/escapeRegex.ts +11 -0
  565. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  566. package/src/util/generateHighlightedMarkup.ts +43 -0
  567. package/src/util/{getClassCopy.js → getClassCopy.ts} +3 -1
  568. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  569. package/src/util/getEffectiveContentDensity.ts +5 -0
  570. package/src/util/getEffectiveScrollbarStyle.ts +5 -0
  571. package/src/util/getFastNavigationGroups.ts +63 -0
  572. package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
  573. package/src/util/getNormalizedTarget.ts +16 -0
  574. package/src/util/{getSingletonElementInstance.js → getSingletonElementInstance.ts} +1 -1
  575. package/src/util/isElementClickable.ts +19 -0
  576. package/src/util/isElementHidden.ts +9 -0
  577. package/src/util/{isElementInView.js → isElementInView.ts} +1 -1
  578. package/src/util/isElementTabbable.ts +37 -0
  579. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +1 -1
  580. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  581. package/src/util/willShowContent.ts +7 -0
  582. package/src/validateThemeRoot.ts +58 -0
  583. package/tsconfig.json +13 -0
  584. package/used-modules.txt +4 -1
  585. package/config/.eslintrc.js +0 -3
  586. package/config/rollup.config.js +0 -1
  587. package/dist/RenderScheduler.js +0 -44
  588. package/dist/animations/config.js +0 -5
  589. package/dist/isLegacyBrowser.js +0 -3
  590. package/dist/resources/bundle.esm.js +0 -37
  591. package/dist/resources/bundle.esm.js.map +0 -1
  592. package/dist/test-resources/assets/Themes.js +0 -17
  593. package/dist/test-resources/elements/Child.js +0 -35
  594. package/dist/test-resources/elements/Generic.js +0 -84
  595. package/dist/test-resources/elements/GenericExt.js +0 -26
  596. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  597. package/dist/test-resources/elements/Parent.js +0 -41
  598. package/dist/test-resources/elements/WithStaticArea.js +0 -77
  599. package/dist/test-resources/pages/AllTestElements.html +0 -42
  600. package/dist/test-resources/pages/Configuration.html +0 -18
  601. package/dist/test-resources/pages/ConfigurationScript.html +0 -34
  602. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  603. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  604. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  605. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  606. package/dist/test-resources/pages/i18n.html +0 -33
  607. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
  608. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
  609. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -93
  610. package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
  611. package/dist/test-resources/specs/EventProvider.spec.js +0 -63
  612. package/dist/test-resources/specs/StaticArea.spec.js +0 -78
  613. package/dist/test-resources/specs/Theming.spec.js +0 -33
  614. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
  615. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
  616. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
  617. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
  618. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
  619. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
  620. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
  621. package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
  622. package/dist/types/CSSSize.js +0 -9
  623. package/dist/types/PopupState.js +0 -37
  624. package/dist/util/encodeCSS.js +0 -24
  625. package/dist/util/findNodeOwner.js +0 -35
  626. package/dist/util/isDescendantOf.js +0 -15
  627. package/dist/util/isNodeClickable.js +0 -19
  628. package/dist/util/isNodeHidden.js +0 -9
  629. package/dist/util/isNodeTabbable.js +0 -28
  630. package/dist/util/setToArray.js +0 -10
  631. package/hash.txt +0 -1
  632. package/src/Boot.js +0 -43
  633. package/src/CustomElementsRegistry.js +0 -39
  634. package/src/DOMObserver.js +0 -65
  635. package/src/Device.js +0 -107
  636. package/src/FeaturesRegistry.js +0 -11
  637. package/src/Keys.js +0 -248
  638. package/src/ManagedStyles.js +0 -83
  639. package/src/RenderScheduler.js +0 -44
  640. package/src/animations/animate.js +0 -53
  641. package/src/animations/config.js +0 -5
  642. package/src/animations/scroll.js +0 -28
  643. package/src/asset-registries/Icons.js +0 -139
  644. package/src/asset-registries/Illustrations.js +0 -30
  645. package/src/asset-registries/Themes.js +0 -78
  646. package/src/assets-meta/IconCollectionsAlias.js +0 -18
  647. package/src/config/AnimationMode.js +0 -23
  648. package/src/config/FormatSettings.js +0 -13
  649. package/src/config/NoConflict.js +0 -51
  650. package/src/config/Theme.js +0 -42
  651. package/src/delegate/ResizeHandler.js +0 -106
  652. package/src/delegate/ScrollEnablement.js +0 -188
  653. package/src/features/OpenUI5Support.js +0 -125
  654. package/src/isLegacyBrowser.js +0 -3
  655. package/src/locale/RTLAwareRegistry.js +0 -14
  656. package/src/locale/languageChange.js +0 -22
  657. package/src/renderer/LitRenderer.js +0 -34
  658. package/src/renderer/executeTemplate.js +0 -17
  659. package/src/theming/CustomStyle.js +0 -40
  660. package/src/theming/getEffectiveLinksHrefs.js +0 -20
  661. package/src/theming/getStylesString.js +0 -15
  662. package/src/theming/getThemeDesignerTheme.js +0 -68
  663. package/src/thirdparty/merge.js +0 -10
  664. package/src/types/AnimationMode.js +0 -7
  665. package/src/types/CSSSize.js +0 -9
  666. package/src/types/CalendarType.js +0 -22
  667. package/src/types/DataType.js +0 -37
  668. package/src/types/Float.js +0 -14
  669. package/src/types/Integer.js +0 -13
  670. package/src/types/InvisibleMessageMode.js +0 -30
  671. package/src/types/ItemNavigationBehavior.js +0 -16
  672. package/src/types/NavigationMode.js +0 -7
  673. package/src/types/PopupState.js +0 -37
  674. package/src/types/ValueState.js +0 -22
  675. package/src/updateShadowRoot.js +0 -30
  676. package/src/util/AriaLabelHelper.js +0 -41
  677. package/src/util/Caret.js +0 -45
  678. package/src/util/ColorConversion.js +0 -370
  679. package/src/util/FocusableElements.js +0 -77
  680. package/src/util/PopupUtils.js +0 -93
  681. package/src/util/TabbableElements.js +0 -47
  682. package/src/util/encodeCSS.js +0 -24
  683. package/src/util/findNodeOwner.js +0 -35
  684. package/src/util/getEffectiveContentDensity.js +0 -5
  685. package/src/util/isDescendantOf.js +0 -15
  686. package/src/util/isNodeClickable.js +0 -19
  687. package/src/util/isNodeHidden.js +0 -9
  688. package/src/util/isNodeTabbable.js +0 -28
  689. package/src/util/setToArray.js +0 -10
  690. /package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
  691. /package/src/{StaticArea.js → StaticArea.ts} +0 -0
  692. /package/src/{SystemCSSVars.js → SystemCSSVars.ts} +0 -0
  693. /package/src/{Theming.js → Theming.ts} +0 -0
  694. /package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
@@ -1,8 +1,48 @@
1
1
  import DataType from "./types/DataType.js";
2
- import isDescendantOf from "./util/isDescendantOf.js";
3
2
  import { camelToKebabCase } from "./util/StringHelper.js";
4
- import { getSlottedElements } from "./util/SlotsHelper.js";
5
- import { getEffectiveScopingSuffixForTag } from "./CustomElementsScope.js";
3
+ import { getSlottedNodes } from "./util/SlotsHelper.js";
4
+ import { getEffectiveScopingSuffixForTag } from "./CustomElementsScopeUtils.js";
5
+
6
+ type SlotInvalidation = {
7
+ properties: boolean | Array<string>,
8
+ slots: boolean | Array<string>,
9
+ }
10
+
11
+ type Slot = {
12
+ type: typeof Node | typeof HTMLElement,
13
+ default?: boolean,
14
+ propertyName?: string,
15
+ individualSlots?: boolean,
16
+ invalidateOnChildChange?: boolean | SlotInvalidation,
17
+ };
18
+
19
+ type SlotValue = Node;
20
+
21
+ type Property = {
22
+ type?: BooleanConstructor | StringConstructor | ObjectConstructor | DataType
23
+ validator?: DataType,
24
+ defaultValue?: PropertyValue,
25
+ noAttribute?: boolean,
26
+ multiple?: boolean,
27
+ compareValues?: boolean,
28
+ }
29
+
30
+ type PropertyValue = boolean | number | string | object | undefined | null | DataType;
31
+
32
+ type EventData = Record<string, object>;
33
+
34
+ type Metadata = {
35
+ tag?: string,
36
+ managedSlots?: boolean,
37
+ properties?: Record<string, Property>,
38
+ slots?: Record<string, Slot>,
39
+ events?: EventData,
40
+ fastNavigation?: boolean,
41
+ themeAware?: boolean,
42
+ languageAware?: boolean,
43
+ };
44
+
45
+ type State = Record<string, PropertyValue | Array<SlotValue>>;
6
46
 
7
47
  /**
8
48
  *
@@ -10,16 +50,18 @@ import { getEffectiveScopingSuffixForTag } from "./CustomElementsScope.js";
10
50
  * @public
11
51
  */
12
52
  class UI5ElementMetadata {
13
- constructor(metadata) {
53
+ metadata: Metadata;
54
+ _initialState: State | undefined;
55
+
56
+ constructor(metadata: Metadata) {
14
57
  this.metadata = metadata;
15
58
  }
16
59
 
17
60
  getInitialState() {
18
61
  if (Object.prototype.hasOwnProperty.call(this, "_initialState")) {
19
- return this._initialState;
62
+ return this._initialState!;
20
63
  }
21
-
22
- const initialState = {};
64
+ const initialState: State = {};
23
65
  const slotsAreManaged = this.slotsAreManaged();
24
66
 
25
67
  // Initialize properties
@@ -48,7 +90,7 @@ class UI5ElementMetadata {
48
90
  // Initialize slots
49
91
  if (slotsAreManaged) {
50
92
  const slots = this.getSlots();
51
- for (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line
93
+ for (const [slotName, slotData] of Object.entries<Slot>(slots)) { // eslint-disable-line
52
94
  const propertyName = slotData.propertyName || slotName;
53
95
  initialState[propertyName] = [];
54
96
  }
@@ -59,22 +101,26 @@ class UI5ElementMetadata {
59
101
  }
60
102
 
61
103
  /**
62
- * Only intended for use by UI5Element.js
63
- * @protected
104
+ * Validates the property's value and returns it if correct
105
+ * or returns the default value if not.
106
+ * <b>Note:</b> Only intended for use by UI5Element.js
107
+ * @public
64
108
  */
65
- static validatePropertyValue(value, propData) {
109
+ static validatePropertyValue(value: PropertyValue, propData: Property) {
66
110
  const isMultiple = propData.multiple;
67
- if (isMultiple) {
68
- return value.map(propValue => validateSingleProperty(propValue, propData));
111
+ if (isMultiple && value) {
112
+ return (value as Array<PropertyValue>).map((propValue: PropertyValue) => validateSingleProperty(propValue, propData));
69
113
  }
70
114
  return validateSingleProperty(value, propData);
71
115
  }
72
116
 
73
117
  /**
74
- * Only intended for use by UI5Element.js
75
- * @protected
118
+ * Validates the slot's value and returns it if correct
119
+ * or throws an exception if not.
120
+ * <b>Note:</b> Only intended for use by UI5Element.js
121
+ * @pubic
76
122
  */
77
- static validateSlotValue(value, slotData) {
123
+ static validateSlotValue(value: Node, slotData: Slot) {
78
124
  return validateSingleSlot(value, slotData);
79
125
  }
80
126
 
@@ -83,7 +129,7 @@ class UI5ElementMetadata {
83
129
  * @public
84
130
  */
85
131
  getPureTag() {
86
- return this.metadata.tag;
132
+ return this.metadata.tag || "";
87
133
  }
88
134
 
89
135
  /**
@@ -92,30 +138,17 @@ class UI5ElementMetadata {
92
138
  */
93
139
  getTag() {
94
140
  const pureTag = this.metadata.tag;
95
- const suffix = getEffectiveScopingSuffixForTag(pureTag);
96
- if (!suffix) {
97
- return pureTag;
98
- }
99
-
100
- return `${pureTag}-${suffix}`;
101
- }
102
141
 
103
- /**
104
- * Used to get the tag we need to register for backwards compatibility
105
- * @public
106
- */
107
- getAltTag() {
108
- const pureAltTag = this.metadata.altTag;
109
- if (!pureAltTag) {
110
- return;
142
+ if (!pureTag) {
143
+ return "";
111
144
  }
112
145
 
113
- const suffix = getEffectiveScopingSuffixForTag(pureAltTag);
146
+ const suffix = getEffectiveScopingSuffixForTag(pureTag);
114
147
  if (!suffix) {
115
- return pureAltTag;
148
+ return pureTag;
116
149
  }
117
150
 
118
- return `${pureAltTag}-${suffix}`;
151
+ return `${pureTag}-${suffix}`;
119
152
  }
120
153
 
121
154
  /**
@@ -124,7 +157,7 @@ class UI5ElementMetadata {
124
157
  * @param propName
125
158
  * @returns {boolean}
126
159
  */
127
- hasAttribute(propName) {
160
+ hasAttribute(propName: string) {
128
161
  const propData = this.getProperties()[propName];
129
162
  return propData.type !== Object && !propData.noAttribute && !propData.multiple;
130
163
  }
@@ -144,15 +177,7 @@ class UI5ElementMetadata {
144
177
  * @returns {string[]}
145
178
  */
146
179
  getAttributesList() {
147
- return this.getPropertiesList().filter(this.hasAttribute, this).map(camelToKebabCase);
148
- }
149
-
150
- /**
151
- * Returns an object with key-value pairs of slots and their metadata definitions
152
- * @public
153
- */
154
- getSlots() {
155
- return this.metadata.slots || {};
180
+ return this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(camelToKebabCase);
156
181
  }
157
182
 
158
183
  /**
@@ -177,7 +202,7 @@ class UI5ElementMetadata {
177
202
  * @public
178
203
  */
179
204
  hasIndividualSlots() {
180
- return this.slotsAreManaged() && Object.entries(this.getSlots()).some(([_slotName, slotData]) => slotData.individualSlots);
205
+ return this.slotsAreManaged() && Object.values(this.getSlots()).some(slotData => slotData.individualSlots);
181
206
  }
182
207
 
183
208
  /**
@@ -188,12 +213,23 @@ class UI5ElementMetadata {
188
213
  return !!this.metadata.managedSlots;
189
214
  }
190
215
 
216
+ /**
217
+ * Determines whether this control supports F6 fast navigation
218
+ * @public
219
+ */
220
+ supportsF6FastNavigation() {
221
+ return !!this.metadata.fastNavigation;
222
+ }
223
+
191
224
  /**
192
225
  * Returns an object with key-value pairs of properties and their metadata definitions
193
226
  * @public
194
227
  */
195
228
  getProperties() {
196
- return this.metadata.properties || {};
229
+ if (!this.metadata.properties) {
230
+ this.metadata.properties = {};
231
+ }
232
+ return this.metadata.properties;
197
233
  }
198
234
 
199
235
  /**
@@ -201,7 +237,21 @@ class UI5ElementMetadata {
201
237
  * @public
202
238
  */
203
239
  getEvents() {
204
- return this.metadata.events || {};
240
+ if (!this.metadata.events) {
241
+ this.metadata.events = {};
242
+ }
243
+ return this.metadata.events;
244
+ }
245
+
246
+ /**
247
+ * Returns an object with key-value pairs of slots and their metadata definitions
248
+ * @public
249
+ */
250
+ getSlots() {
251
+ if (!this.metadata.slots) {
252
+ this.metadata.slots = {};
253
+ }
254
+ return this.metadata.slots;
205
255
  }
206
256
 
207
257
  /**
@@ -229,7 +279,7 @@ class UI5ElementMetadata {
229
279
  * @param name the name of the property/slot that changed
230
280
  * @returns {boolean}
231
281
  */
232
- shouldInvalidateOnChildChange(slotName, type, name) {
282
+ shouldInvalidateOnChildChange(slotName: string, type: "property" | "slot", name: string) {
233
283
  const config = this.getSlots()[slotName].invalidateOnChildChange;
234
284
 
235
285
  // invalidateOnChildChange was not set in the slot metadata - by default child changes do not affect the component
@@ -289,27 +339,38 @@ class UI5ElementMetadata {
289
339
  }
290
340
  }
291
341
 
292
- const validateSingleProperty = (value, propData) => {
342
+ const validateSingleProperty = (value: PropertyValue, propData: Property) => {
293
343
  const propertyType = propData.type;
344
+ let propertyValidator = propData.validator;
294
345
 
295
- if (propertyType === Boolean) {
296
- return typeof value === "boolean" ? value : false;
346
+ if (propertyType && (propertyType as typeof DataType).isDataTypeClass) {
347
+ propertyValidator = propertyType as typeof DataType;
297
348
  }
298
- if (propertyType === String) {
349
+
350
+ if (propertyValidator) {
351
+ return (propertyValidator as typeof DataType).isValid(value) ? value : propData.defaultValue;
352
+ }
353
+
354
+ if (!propertyType || propertyType === String) {
299
355
  return (typeof value === "string" || typeof value === "undefined" || value === null) ? value : value.toString();
300
356
  }
357
+
358
+ if (propertyType === Boolean) {
359
+ return typeof value === "boolean" ? value : false;
360
+ }
361
+
301
362
  if (propertyType === Object) {
302
363
  return typeof value === "object" ? value : propData.defaultValue;
303
364
  }
304
- if (isDescendantOf(propertyType, DataType)) {
305
- return propertyType.isValid(value) ? value : propData.defaultValue;
306
- }
365
+
366
+ // Check if "value" is part of the enum (propertyType) values and return the defaultValue if not found.
367
+ return value as string in propertyType ? value : propData.defaultValue;
307
368
  };
308
369
 
309
- const validateSingleSlot = (value, slotData) => {
310
- value && getSlottedElements(value).forEach(el => {
370
+ const validateSingleSlot = (value: Node, slotData: Slot) => {
371
+ value && getSlottedNodes(value).forEach(el => {
311
372
  if (!(el instanceof slotData.type)) {
312
- throw new Error(`${el} is not of type ${slotData.type}`);
373
+ throw new Error(`The element is not of type ${slotData.type.toString()}`);
313
374
  }
314
375
  });
315
376
 
@@ -317,3 +378,12 @@ const validateSingleSlot = (value, slotData) => {
317
378
  };
318
379
 
319
380
  export default UI5ElementMetadata;
381
+ export type {
382
+ Property,
383
+ PropertyValue,
384
+ Slot,
385
+ SlotValue,
386
+ EventData,
387
+ State,
388
+ Metadata,
389
+ };
@@ -1,19 +1,20 @@
1
- const tasks = new WeakMap();
1
+ type TaskType = () => Promise<void>;
2
+ const tasks = new WeakMap<HTMLElement, Array<TaskType>>();
2
3
 
3
4
  class AnimationQueue {
4
5
  static get tasks() {
5
6
  return tasks;
6
7
  }
7
8
 
8
- static enqueue(element, task) {
9
+ static enqueue(element: HTMLElement, task: TaskType) {
9
10
  if (!tasks.has(element)) {
10
11
  tasks.set(element, []);
11
12
  }
12
13
 
13
- tasks.get(element).push(task);
14
+ tasks.get(element)!.push(task);
14
15
  }
15
16
 
16
- static run(element, task) {
17
+ static run(element: HTMLElement, task: TaskType): Promise<void> {
17
18
  if (!tasks.has(element)) {
18
19
  tasks.set(element, []);
19
20
  }
@@ -21,14 +22,14 @@ class AnimationQueue {
21
22
  return task().then(() => {
22
23
  const elementTasks = tasks.get(element);
23
24
 
24
- if (elementTasks.length > 0) {
25
- return AnimationQueue.run(element, elementTasks.shift());
25
+ if (elementTasks!.length > 0) {
26
+ return AnimationQueue.run(element, elementTasks!.shift()!);
26
27
  }
27
28
  tasks.delete(element);
28
29
  });
29
30
  }
30
31
 
31
- static push(element, task) {
32
+ static push(element: HTMLElement, task: TaskType) {
32
33
  const elementTasks = tasks.get(element);
33
34
 
34
35
  if (elementTasks) {
@@ -0,0 +1,64 @@
1
+ import AnimationQueue from "./AnimationQueue.js";
2
+
3
+ type AnimateOptions = {
4
+ beforeStart?: () => void,
5
+ duration: number,
6
+ element: HTMLElement,
7
+ advance: (p: number) => void,
8
+ };
9
+
10
+ const animate = (options: AnimateOptions) => {
11
+ let start: number | null = null;
12
+ let stopped = false;
13
+ let animationFrame: number;
14
+ let stop: () => void;
15
+ let advanceAnimation: (timestamp: number) => void;
16
+
17
+ const promise = new Promise<void>((resolve, reject) => {
18
+ advanceAnimation = timestamp => {
19
+ start = start || timestamp;
20
+
21
+ const timeElapsed = timestamp - start;
22
+ const remaining = options.duration - timeElapsed;
23
+
24
+ if (timeElapsed <= options.duration) {
25
+ const currentAdvance = 1 - remaining / options.duration; // easing formula (currently linear)
26
+ options.advance(currentAdvance);
27
+ if (!stopped) {
28
+ animationFrame = requestAnimationFrame(advanceAnimation);
29
+ }
30
+ } else {
31
+ options.advance(1);
32
+ resolve();
33
+ }
34
+ };
35
+
36
+ stop = () => {
37
+ stopped = true;
38
+ cancelAnimationFrame(animationFrame);
39
+ reject(new Error("animation stopped"));
40
+ };
41
+ }).catch((reason: Error) => reason);
42
+
43
+ AnimationQueue.push(options.element, () => {
44
+ if (typeof options.beforeStart === "function") {
45
+ options.beforeStart();
46
+ }
47
+
48
+ requestAnimationFrame(advanceAnimation);
49
+
50
+ return new Promise(resolve => {
51
+ promise.then(() => resolve());
52
+ });
53
+ });
54
+
55
+ return {
56
+ promise: () => promise,
57
+ stop: () => stop,
58
+ };
59
+ };
60
+ const duration = 400;
61
+
62
+ export { duration };
63
+ export type { AnimateOptions };
64
+ export default animate;
@@ -0,0 +1,21 @@
1
+ import animate, { duration } from "./animate.js";
2
+
3
+ const scroll = (element: HTMLElement, dx: number, dy: number) => {
4
+ let scrollLeft: number;
5
+ let scrollTop: number;
6
+
7
+ return animate({
8
+ beforeStart: () => {
9
+ scrollLeft = element.scrollLeft;
10
+ scrollTop = element.scrollTop;
11
+ },
12
+ duration,
13
+ element,
14
+ advance: progress => {
15
+ element.scrollLeft = scrollLeft + (progress * dx); // easing - linear
16
+ element.scrollTop = scrollTop + (progress * dy); // easing - linear
17
+ },
18
+ });
19
+ };
20
+
21
+ export default scroll;
@@ -1,23 +1,18 @@
1
- import animationConfig from "./config.js";
2
- import animate from "./animate.js";
1
+ import animate, { duration } from "./animate.js";
3
2
 
4
- export default ({
5
- element = animationConfig.element,
6
- duration = animationConfig.defaultDuration,
7
- progress: progressCallback = animationConfig.identity,
8
- }) => {
9
- let computedStyles,
10
- paddingTop,
11
- paddingBottom,
12
- marginTop,
13
- marginBottom,
14
- height;
15
- let storedOverflow,
16
- storedPaddingTop,
17
- storedPaddingBottom,
18
- storedMarginTop,
19
- storedMarginBottom,
20
- storedHeight;
3
+ const slideDown = (element: HTMLElement) => {
4
+ let computedStyles: CSSStyleDeclaration,
5
+ paddingTop: number,
6
+ paddingBottom: number,
7
+ marginTop: number,
8
+ marginBottom: number,
9
+ height: number;
10
+ let storedOverflow: string,
11
+ storedPaddingTop: string,
12
+ storedPaddingBottom: string,
13
+ storedMarginTop: string,
14
+ storedMarginBottom: string,
15
+ storedHeight: string;
21
16
 
22
17
  const animation = animate({
23
18
  beforeStart: () => {
@@ -41,28 +36,24 @@ export default ({
41
36
  storedHeight = element.style.height;
42
37
 
43
38
  element.style.overflow = "hidden";
44
- element.style.paddingTop = 0;
45
- element.style.paddingBottom = 0;
46
- element.style.marginTop = 0;
47
- element.style.marginBottom = 0;
48
- element.style.height = 0;
39
+ element.style.paddingTop = "0";
40
+ element.style.paddingBottom = "0";
41
+ element.style.marginTop = "0";
42
+ element.style.marginBottom = "0";
43
+ element.style.height = "0";
49
44
  },
50
45
  duration,
51
46
  element,
52
- progress(progress) {
53
- progressCallback(progress);
54
-
47
+ advance: progress => {
55
48
  // WORKAROUND
56
49
  element.style.display = "block";
57
50
  // END OF WORKAROUND
58
51
 
59
- /* eslint-disable */
60
- element.style.paddingTop = 0 + (paddingTop * progress) + "px";
61
- element.style.paddingBottom = 0 + (paddingBottom * progress) + "px";
62
- element.style.marginTop = 0 + (marginTop * progress) + "px";
63
- element.style.marginBottom = 0 + (marginBottom * progress) + "px";
64
- element.style.height = 0 + (height * progress) + "px";
65
- /* eslint-enable */
52
+ element.style.paddingTop = `${(paddingTop * progress)}px`;
53
+ element.style.paddingBottom = `${(paddingBottom * progress)}px`;
54
+ element.style.marginTop = `${(marginTop * progress)}px`;
55
+ element.style.marginBottom = `${(marginBottom * progress)}px`;
56
+ element.style.height = `${(height * progress)}px`;
66
57
  },
67
58
  });
68
59
 
@@ -77,3 +68,5 @@ export default ({
77
68
 
78
69
  return animation;
79
70
  };
71
+
72
+ export default slideDown;
@@ -1,31 +1,27 @@
1
- import animationConfig from "./config.js";
2
- import animate from "./animate.js";
1
+ import animate, { duration } from "./animate.js";
3
2
 
4
- export default ({
5
- element = animationConfig.element,
6
- duration = animationConfig.defaultDuration,
7
- progress: progressCallback = animationConfig.identity,
8
- }) => {
3
+ const slideUp = (element: HTMLElement) => {
9
4
  // Get Computed styles
10
- let computedStyles,
11
- paddingTop,
12
- paddingBottom,
13
- marginTop,
14
- marginBottom,
15
- height;
5
+ let computedStyles: CSSStyleDeclaration,
6
+ paddingTop: number,
7
+ paddingBottom: number,
8
+ marginTop: number,
9
+ marginBottom: number,
10
+ height: number;
16
11
 
17
12
  // Store inline styles
18
- let storedOverflow,
19
- storedPaddingTop,
20
- storedPaddingBottom,
21
- storedMarginTop,
22
- storedMarginBottom,
23
- storedHeight;
13
+ let storedOverflow: string,
14
+ storedPaddingTop: string,
15
+ storedPaddingBottom: string,
16
+ storedMarginTop: string,
17
+ storedMarginBottom: string,
18
+ storedHeight: string;
24
19
 
25
20
  const animation = animate({
26
21
  beforeStart: () => {
27
22
  // Get Computed styles
28
- computedStyles = getComputedStyle(element);
23
+ const el = element;
24
+ computedStyles = getComputedStyle(el);
29
25
  paddingTop = parseFloat(computedStyles.paddingTop);
30
26
  paddingBottom = parseFloat(computedStyles.paddingBottom);
31
27
  marginTop = parseFloat(computedStyles.marginTop);
@@ -33,20 +29,18 @@ export default ({
33
29
  height = parseFloat(computedStyles.height);
34
30
 
35
31
  // Store inline styles
36
- storedOverflow = element.style.overflow;
37
- storedPaddingTop = element.style.paddingTop;
38
- storedPaddingBottom = element.style.paddingBottom;
39
- storedMarginTop = element.style.marginTop;
40
- storedMarginBottom = element.style.marginBottom;
41
- storedHeight = element.style.height;
32
+ storedOverflow = el.style.overflow;
33
+ storedPaddingTop = el.style.paddingTop;
34
+ storedPaddingBottom = el.style.paddingBottom;
35
+ storedMarginTop = el.style.marginTop;
36
+ storedMarginBottom = el.style.marginBottom;
37
+ storedHeight = el.style.height;
42
38
 
43
- element.style.overflow = "hidden";
39
+ el.style.overflow = "hidden";
44
40
  },
45
41
  duration,
46
42
  element,
47
- progress(progress) {
48
- progressCallback(progress);
49
-
43
+ advance: progress => {
50
44
  element.style.paddingTop = `${paddingTop - (paddingTop * progress)}px`;
51
45
  element.style.paddingBottom = `${paddingBottom - (paddingBottom * progress)}px`;
52
46
  element.style.marginTop = `${marginTop - (marginTop * progress)}px`;
@@ -55,8 +49,8 @@ export default ({
55
49
  },
56
50
  });
57
51
 
58
- animation.promise().then(oReason => {
59
- if (!(oReason instanceof Error)) {
52
+ animation.promise().then(reason => {
53
+ if (!(reason instanceof Error)) {
60
54
  element.style.overflow = storedOverflow;
61
55
  element.style.paddingTop = storedPaddingTop;
62
56
  element.style.paddingBottom = storedPaddingBottom;
@@ -69,3 +63,5 @@ export default ({
69
63
 
70
64
  return animation;
71
65
  };
66
+
67
+ export default slideUp;