@ui5/webcomponents-base 0.0.0-32b659ddc → 0.0.0-33e059bcd

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 (776) hide show
  1. package/.eslintignore +9 -3
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +1264 -0
  4. package/README.md +58 -7
  5. package/bundle.esm.js +36 -22
  6. package/config/wdio.conf.cjs +400 -0
  7. package/dist/.tsbuildinfo +1 -0
  8. package/dist/AssetRegistry.d.ts +5 -0
  9. package/dist/AssetRegistry.js +6 -9
  10. package/dist/AssetRegistry.js.map +1 -0
  11. package/dist/Boot.d.ts +9 -0
  12. package/dist/Boot.js +71 -0
  13. package/dist/Boot.js.map +1 -0
  14. package/dist/CSP.d.ts +30 -0
  15. package/dist/CSP.js +51 -0
  16. package/dist/CSP.js.map +1 -0
  17. package/dist/CustomElementsRegistry.d.ts +5 -0
  18. package/dist/CustomElementsRegistry.js +78 -0
  19. package/dist/CustomElementsRegistry.js.map +1 -0
  20. package/dist/CustomElementsScope.d.ts +7 -0
  21. package/dist/CustomElementsScope.js +11 -0
  22. package/dist/CustomElementsScope.js.map +1 -0
  23. package/dist/CustomElementsScopeUtils.d.ts +62 -0
  24. package/dist/CustomElementsScopeUtils.js +102 -0
  25. package/dist/CustomElementsScopeUtils.js.map +1 -0
  26. package/dist/DOMObserver.d.ts +11 -0
  27. package/dist/DOMObserver.js +23 -0
  28. package/dist/DOMObserver.js.map +1 -0
  29. package/dist/Device.d.ts +13 -0
  30. package/dist/Device.js +167 -815
  31. package/dist/Device.js.map +1 -0
  32. package/dist/EventProvider.d.ts +25 -0
  33. package/dist/EventProvider.js +67 -70
  34. package/dist/EventProvider.js.map +1 -0
  35. package/dist/FeaturesRegistry.d.ts +3 -0
  36. package/dist/FeaturesRegistry.js +5 -7
  37. package/dist/FeaturesRegistry.js.map +1 -0
  38. package/dist/FontFace.d.ts +2 -0
  39. package/dist/FontFace.js +21 -69
  40. package/dist/FontFace.js.map +1 -0
  41. package/dist/IgnoreCustomElements.d.ts +27 -0
  42. package/dist/IgnoreCustomElements.js +39 -0
  43. package/dist/IgnoreCustomElements.js.map +1 -0
  44. package/dist/InitialConfiguration.d.ts +28 -0
  45. package/dist/InitialConfiguration.js +135 -104
  46. package/dist/InitialConfiguration.js.map +1 -0
  47. package/dist/Keys.d.ts +61 -0
  48. package/dist/Keys.js +181 -0
  49. package/dist/Keys.js.map +1 -0
  50. package/dist/ManagedStyles.d.ts +9 -0
  51. package/dist/ManagedStyles.js +157 -0
  52. package/dist/ManagedStyles.js.map +1 -0
  53. package/dist/MarkedEvents.d.ts +9 -0
  54. package/dist/MarkedEvents.js +15 -0
  55. package/dist/MarkedEvents.js.map +1 -0
  56. package/dist/MediaRange.d.ts +31 -0
  57. package/dist/MediaRange.js +88 -0
  58. package/dist/MediaRange.js.map +1 -0
  59. package/dist/PropertiesFileFormat.d.ts +8 -0
  60. package/dist/PropertiesFileFormat.js +85 -0
  61. package/dist/PropertiesFileFormat.js.map +1 -0
  62. package/dist/Render.d.ts +47 -0
  63. package/dist/Render.js +143 -0
  64. package/dist/Render.js.map +1 -0
  65. package/dist/RenderQueue.d.ts +19 -0
  66. package/dist/RenderQueue.js +53 -39
  67. package/dist/RenderQueue.js.map +1 -0
  68. package/dist/Runtimes.d.ts +27 -0
  69. package/dist/Runtimes.js +86 -0
  70. package/dist/Runtimes.js.map +1 -0
  71. package/dist/StaticArea.d.ts +3 -0
  72. package/dist/StaticArea.js +4 -38
  73. package/dist/StaticArea.js.map +1 -0
  74. package/dist/StaticAreaItem.d.ts +35 -0
  75. package/dist/StaticAreaItem.js +94 -84
  76. package/dist/StaticAreaItem.js.map +1 -0
  77. package/dist/SystemCSSVars.d.ts +2 -0
  78. package/dist/SystemCSSVars.js +9 -0
  79. package/dist/SystemCSSVars.js.map +1 -0
  80. package/dist/Theming.d.ts +3 -0
  81. package/dist/Theming.js +4 -55
  82. package/dist/Theming.js.map +1 -0
  83. package/dist/UI5Element.d.ts +384 -0
  84. package/dist/UI5Element.js +960 -854
  85. package/dist/UI5Element.js.map +1 -0
  86. package/dist/UI5ElementMetadata.d.ts +143 -0
  87. package/dist/UI5ElementMetadata.js +281 -152
  88. package/dist/UI5ElementMetadata.js.map +1 -0
  89. package/dist/animations/AnimationQueue.d.ts +8 -0
  90. package/dist/animations/AnimationQueue.js +31 -38
  91. package/dist/animations/AnimationQueue.js.map +1 -0
  92. package/dist/animations/animate.d.ts +14 -0
  93. package/dist/animations/animate.js +46 -51
  94. package/dist/animations/animate.js.map +1 -0
  95. package/dist/animations/scroll.d.ts +5 -0
  96. package/dist/animations/scroll.js +18 -27
  97. package/dist/animations/scroll.js.map +1 -0
  98. package/dist/animations/slideDown.d.ts +5 -0
  99. package/dist/animations/slideDown.js +53 -78
  100. package/dist/animations/slideDown.js.map +1 -0
  101. package/dist/animations/slideUp.d.ts +5 -0
  102. package/dist/animations/slideUp.js +49 -70
  103. package/dist/animations/slideUp.js.map +1 -0
  104. package/dist/asset-registries/Icons.d.ts +39 -0
  105. package/dist/asset-registries/Icons.js +136 -24
  106. package/dist/asset-registries/Icons.js.map +1 -0
  107. package/dist/asset-registries/Illustrations.d.ts +18 -0
  108. package/dist/asset-registries/Illustrations.js +76 -0
  109. package/dist/asset-registries/Illustrations.js.map +1 -0
  110. package/dist/asset-registries/LocaleData.d.ts +7 -0
  111. package/dist/asset-registries/LocaleData.js +126 -98
  112. package/dist/asset-registries/LocaleData.js.map +1 -0
  113. package/dist/asset-registries/Themes.d.ts +12 -0
  114. package/dist/asset-registries/Themes.js +59 -66
  115. package/dist/asset-registries/Themes.js.map +1 -0
  116. package/dist/asset-registries/i18n.d.ts +23 -0
  117. package/dist/asset-registries/i18n.js +85 -57
  118. package/dist/asset-registries/i18n.js.map +1 -0
  119. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  120. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  121. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  122. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  123. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  124. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  125. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  126. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  127. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  128. package/dist/config/AnimationMode.d.ts +14 -0
  129. package/dist/config/AnimationMode.js +23 -10
  130. package/dist/config/AnimationMode.js.map +1 -0
  131. package/dist/config/CalendarType.d.ts +15 -0
  132. package/dist/config/CalendarType.js +32 -19
  133. package/dist/config/CalendarType.js.map +1 -0
  134. package/dist/config/FormatSettings.d.ts +15 -0
  135. package/dist/config/FormatSettings.js +15 -9
  136. package/dist/config/FormatSettings.js.map +1 -0
  137. package/dist/config/Icons.d.ts +40 -0
  138. package/dist/config/Icons.js +44 -0
  139. package/dist/config/Icons.js.map +1 -0
  140. package/dist/config/Language.d.ts +40 -0
  141. package/dist/config/Language.js +66 -10
  142. package/dist/config/Language.js.map +1 -0
  143. package/dist/config/NoConflict.d.ts +20 -0
  144. package/dist/config/NoConflict.js +41 -41
  145. package/dist/config/NoConflict.js.map +1 -0
  146. package/dist/config/RTL.d.ts +7 -0
  147. package/dist/config/RTL.js +26 -20
  148. package/dist/config/RTL.js.map +1 -0
  149. package/dist/config/Theme.d.ts +38 -0
  150. package/dist/config/Theme.js +65 -23
  151. package/dist/config/Theme.js.map +1 -0
  152. package/dist/config/ThemeRoot.d.ts +29 -0
  153. package/dist/config/ThemeRoot.js +59 -0
  154. package/dist/config/ThemeRoot.js.map +1 -0
  155. package/dist/config/Timezone.d.ts +17 -0
  156. package/dist/config/Timezone.js +30 -0
  157. package/dist/config/Timezone.js.map +1 -0
  158. package/dist/connectToComponent.d.ts +9 -0
  159. package/dist/connectToComponent.js +59 -0
  160. package/dist/connectToComponent.js.map +1 -0
  161. package/dist/css/BusyIndicator.css +80 -0
  162. package/dist/css/FontFace.css +96 -0
  163. package/dist/css/OverrideFontFace.css +32 -0
  164. package/dist/css/SystemCSSVars.css +17 -0
  165. package/dist/custom-elements-internal.json +2765 -0
  166. package/dist/custom-elements.json +2528 -0
  167. package/dist/decorators/customElement.d.ts +23 -0
  168. package/dist/decorators/customElement.js +37 -0
  169. package/dist/decorators/customElement.js.map +1 -0
  170. package/dist/decorators/event.d.ts +13 -0
  171. package/dist/decorators/event.js +24 -0
  172. package/dist/decorators/event.js.map +1 -0
  173. package/dist/decorators/property.d.ts +9 -0
  174. package/dist/decorators/property.js +24 -0
  175. package/dist/decorators/property.js.map +1 -0
  176. package/dist/decorators/slot.d.ts +9 -0
  177. package/dist/decorators/slot.js +37 -0
  178. package/dist/decorators/slot.js.map +1 -0
  179. package/dist/delegate/ItemNavigation.d.ts +114 -0
  180. package/dist/delegate/ItemNavigation.js +311 -274
  181. package/dist/delegate/ItemNavigation.js.map +1 -0
  182. package/dist/delegate/ResizeHandler.d.ts +23 -0
  183. package/dist/delegate/ResizeHandler.js +82 -63
  184. package/dist/delegate/ResizeHandler.js.map +1 -0
  185. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  186. package/dist/delegate/ScrollEnablement.js +159 -100
  187. package/dist/delegate/ScrollEnablement.js.map +1 -0
  188. package/dist/features/F6Navigation.d.ts +19 -0
  189. package/dist/features/F6Navigation.js +151 -0
  190. package/dist/features/F6Navigation.js.map +1 -0
  191. package/dist/features/LegacyDateFormats.d.ts +18 -0
  192. package/dist/features/LegacyDateFormats.js +20 -0
  193. package/dist/features/LegacyDateFormats.js.map +1 -0
  194. package/dist/features/OpenUI5Element.d.ts +9 -0
  195. package/dist/features/OpenUI5Element.js +5 -0
  196. package/dist/features/OpenUI5Element.js.map +1 -0
  197. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  198. package/dist/features/OpenUI5Enablement.js +96 -0
  199. package/dist/features/OpenUI5Enablement.js.map +1 -0
  200. package/dist/features/OpenUI5Support.d.ts +36 -0
  201. package/dist/features/OpenUI5Support.js +152 -73
  202. package/dist/features/OpenUI5Support.js.map +1 -0
  203. package/dist/generated/AssetParameters.d.ts +6 -0
  204. package/dist/generated/AssetParameters.js +8 -0
  205. package/dist/generated/AssetParameters.js.map +1 -0
  206. package/dist/generated/VersionInfo.d.ts +10 -0
  207. package/dist/generated/VersionInfo.js +11 -0
  208. package/dist/generated/VersionInfo.js.map +1 -0
  209. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  210. package/dist/generated/css/BusyIndicator.css.js +7 -0
  211. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  212. package/dist/generated/css/FontFace.css.d.ts +3 -0
  213. package/dist/generated/css/FontFace.css.js +7 -0
  214. package/dist/generated/css/FontFace.css.js.map +1 -0
  215. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  216. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  217. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  218. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  219. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  220. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  221. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  222. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
  223. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  224. package/dist/getSharedResource.d.ts +11 -0
  225. package/dist/getSharedResource.js +40 -0
  226. package/dist/getSharedResource.js.map +1 -0
  227. package/dist/global.d.ts +40 -0
  228. package/dist/i18nBundle.d.ts +41 -0
  229. package/dist/i18nBundle.js +71 -30
  230. package/dist/i18nBundle.js.map +1 -0
  231. package/dist/locale/Locale.d.ts +22 -0
  232. package/dist/locale/Locale.js +79 -0
  233. package/dist/locale/Locale.js.map +1 -0
  234. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  235. package/dist/locale/RTLAwareRegistry.js +9 -0
  236. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  237. package/dist/locale/applyDirection.d.ts +10 -0
  238. package/dist/locale/applyDirection.js +17 -0
  239. package/dist/locale/applyDirection.js.map +1 -0
  240. package/dist/locale/directionChange.d.ts +15 -0
  241. package/dist/locale/directionChange.js +24 -0
  242. package/dist/locale/directionChange.js.map +1 -0
  243. package/dist/locale/getEffectiveDir.d.ts +2 -0
  244. package/dist/locale/getEffectiveDir.js +24 -0
  245. package/dist/locale/getEffectiveDir.js.map +1 -0
  246. package/dist/locale/getLocale.d.ts +7 -0
  247. package/dist/locale/getLocale.js +38 -0
  248. package/dist/locale/getLocale.js.map +1 -0
  249. package/dist/locale/languageChange.d.ts +5 -0
  250. package/dist/locale/languageChange.js +14 -0
  251. package/dist/locale/languageChange.js.map +1 -0
  252. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  253. package/dist/locale/nextFallbackLocale.js +24 -0
  254. package/dist/locale/nextFallbackLocale.js.map +1 -0
  255. package/dist/locale/normalizeLocale.d.ts +7 -0
  256. package/dist/locale/normalizeLocale.js +47 -0
  257. package/dist/locale/normalizeLocale.js.map +1 -0
  258. package/dist/renderer/LitRenderer.d.ts +14 -0
  259. package/dist/renderer/LitRenderer.js +38 -12
  260. package/dist/renderer/LitRenderer.js.map +1 -0
  261. package/dist/renderer/directives/style-map.js +72 -0
  262. package/dist/renderer/executeTemplate.d.ts +13 -0
  263. package/dist/renderer/executeTemplate.js +30 -0
  264. package/dist/renderer/executeTemplate.js.map +1 -0
  265. package/dist/sap/base/Log.js +750 -0
  266. package/dist/sap/base/assert.js +34 -0
  267. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  268. package/dist/sap/base/security/URLListValidator.js +406 -0
  269. package/dist/sap/base/security/encodeCSS.js +40 -0
  270. package/dist/sap/base/security/encodeXML.js +53 -0
  271. package/dist/sap/base/security/sanitizeHTML.js +38 -0
  272. package/dist/sap/base/strings/toHex.js +33 -0
  273. package/dist/sap/base/util/now.js +28 -0
  274. package/dist/sap/base/util/uid.js +27 -0
  275. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  276. package/dist/ssr-dom-shim.d.ts +1 -0
  277. package/dist/ssr-dom-shim.js +12 -0
  278. package/dist/ssr-dom-shim.js.map +1 -0
  279. package/dist/ssr-dom.d.ts +0 -0
  280. package/dist/ssr-dom.js +3 -0
  281. package/dist/ssr-dom.js.map +1 -0
  282. package/dist/theming/CustomStyle.d.ts +6 -0
  283. package/dist/theming/CustomStyle.js +46 -17
  284. package/dist/theming/CustomStyle.js.map +1 -0
  285. package/dist/theming/ThemeLoaded.d.ts +5 -0
  286. package/dist/theming/ThemeLoaded.js +14 -0
  287. package/dist/theming/ThemeLoaded.js.map +1 -0
  288. package/dist/theming/ThemeRegistered.d.ts +4 -0
  289. package/dist/theming/ThemeRegistered.js +11 -0
  290. package/dist/theming/ThemeRegistered.js.map +1 -0
  291. package/dist/theming/applyTheme.d.ts +2 -0
  292. package/dist/theming/applyTheme.js +76 -0
  293. package/dist/theming/applyTheme.js.map +1 -0
  294. package/dist/theming/getConstructableStyle.d.ts +9 -0
  295. package/dist/theming/getConstructableStyle.js +25 -0
  296. package/dist/theming/getConstructableStyle.js.map +1 -0
  297. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  298. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  299. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  300. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  301. package/dist/theming/getEffectiveStyle.js +32 -0
  302. package/dist/theming/getEffectiveStyle.js.map +1 -0
  303. package/dist/theming/getStylesString.d.ts +3 -0
  304. package/dist/theming/getStylesString.js +11 -0
  305. package/dist/theming/getStylesString.js.map +1 -0
  306. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  307. package/dist/theming/getThemeDesignerTheme.js +80 -0
  308. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  309. package/dist/theming/preloadLinks.d.ts +3 -0
  310. package/dist/theming/preloadLinks.js +19 -0
  311. package/dist/theming/preloadLinks.js.map +1 -0
  312. package/dist/thirdparty/_merge.d.ts +2 -0
  313. package/dist/thirdparty/_merge.js +35 -0
  314. package/dist/thirdparty/_merge.js.map +1 -0
  315. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  316. package/dist/thirdparty/isPlainObject.js +19 -0
  317. package/dist/thirdparty/isPlainObject.js.map +1 -0
  318. package/dist/thirdparty/merge.d.ts +2 -0
  319. package/dist/thirdparty/merge.js +6 -0
  320. package/dist/thirdparty/merge.js.map +1 -0
  321. package/dist/types/AnimationMode.d.ts +24 -0
  322. package/dist/types/AnimationMode.js +25 -6
  323. package/dist/types/AnimationMode.js.map +1 -0
  324. package/dist/types/CSSColor.d.ts +11 -0
  325. package/dist/types/CSSColor.js +14 -0
  326. package/dist/types/CSSColor.js.map +1 -0
  327. package/dist/types/CSSSize.d.ts +11 -0
  328. package/dist/types/CSSSize.js +10 -5
  329. package/dist/types/CSSSize.js.map +1 -0
  330. package/dist/types/CalendarType.d.ts +28 -0
  331. package/dist/types/CalendarType.js +30 -0
  332. package/dist/types/CalendarType.js.map +1 -0
  333. package/dist/types/DOMReference.d.ts +13 -0
  334. package/dist/types/DOMReference.js +21 -0
  335. package/dist/types/DOMReference.js.map +1 -0
  336. package/dist/types/DataType.d.ts +20 -0
  337. package/dist/types/DataType.js +31 -17
  338. package/dist/types/DataType.js.map +1 -0
  339. package/dist/types/Float.d.ts +14 -0
  340. package/dist/types/Float.js +18 -0
  341. package/dist/types/Float.js.map +1 -0
  342. package/dist/types/Integer.d.ts +14 -0
  343. package/dist/types/Integer.js +14 -5
  344. package/dist/types/Integer.js.map +1 -0
  345. package/dist/types/InvisibleMessageMode.d.ts +20 -0
  346. package/dist/types/InvisibleMessageMode.js +20 -0
  347. package/dist/types/InvisibleMessageMode.js.map +1 -0
  348. package/dist/types/ItemNavigationBehavior.d.ts +18 -0
  349. package/dist/types/ItemNavigationBehavior.js +16 -17
  350. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  351. package/dist/types/NavigationMode.d.ts +24 -0
  352. package/dist/types/NavigationMode.js +25 -5
  353. package/dist/types/NavigationMode.js.map +1 -0
  354. package/dist/types/ValueState.d.ts +28 -0
  355. package/dist/types/ValueState.js +27 -19
  356. package/dist/types/ValueState.js.map +1 -0
  357. package/dist/types.d.ts +18 -0
  358. package/dist/types.js +2 -0
  359. package/dist/types.js.map +1 -0
  360. package/dist/updateShadowRoot.d.ts +8 -0
  361. package/dist/updateShadowRoot.js +42 -0
  362. package/dist/updateShadowRoot.js.map +1 -0
  363. package/dist/util/AriaLabelHelper.d.ts +15 -0
  364. package/dist/util/AriaLabelHelper.js +171 -0
  365. package/dist/util/AriaLabelHelper.js.map +1 -0
  366. package/dist/util/Caret.d.ts +7 -0
  367. package/dist/util/Caret.js +23 -0
  368. package/dist/util/Caret.js.map +1 -0
  369. package/dist/util/ColorConversion.d.ts +30 -0
  370. package/dist/util/ColorConversion.js +342 -0
  371. package/dist/util/ColorConversion.js.map +1 -0
  372. package/dist/util/FetchHelper.d.ts +3 -0
  373. package/dist/util/FetchHelper.js +19 -25
  374. package/dist/util/FetchHelper.js.map +1 -0
  375. package/dist/util/FocusableElements.d.ts +4 -0
  376. package/dist/util/FocusableElements.js +68 -56
  377. package/dist/util/FocusableElements.js.map +1 -0
  378. package/dist/util/HTMLSanitizer.d.ts +3 -0
  379. package/dist/util/HTMLSanitizer.js +6 -0
  380. package/dist/util/HTMLSanitizer.js.map +1 -0
  381. package/dist/util/InvisibleMessage.d.ts +10 -0
  382. package/dist/util/InvisibleMessage.js +56 -0
  383. package/dist/util/InvisibleMessage.js.map +1 -0
  384. package/dist/util/PopupUtils.d.ts +7 -0
  385. package/dist/util/PopupUtils.js +74 -0
  386. package/dist/util/PopupUtils.js.map +1 -0
  387. package/dist/util/SlotsHelper.d.ts +9 -0
  388. package/dist/util/SlotsHelper.js +30 -0
  389. package/dist/util/SlotsHelper.js.map +1 -0
  390. package/dist/util/StringHelper.d.ts +3 -0
  391. package/dist/util/StringHelper.js +17 -20
  392. package/dist/util/StringHelper.js.map +1 -0
  393. package/dist/util/TabbableElements.d.ts +17 -0
  394. package/dist/util/TabbableElements.js +53 -40
  395. package/dist/util/TabbableElements.js.map +1 -0
  396. package/dist/util/arraysAreEqual.d.ts +2 -0
  397. package/dist/util/arraysAreEqual.js +13 -0
  398. package/dist/util/arraysAreEqual.js.map +1 -0
  399. package/dist/util/clamp.d.ts +9 -0
  400. package/dist/util/clamp.js +12 -0
  401. package/dist/util/clamp.js.map +1 -0
  402. package/dist/util/createLinkInHead.d.ts +7 -0
  403. package/dist/util/createLinkInHead.js +21 -0
  404. package/dist/util/createLinkInHead.js.map +1 -0
  405. package/dist/util/createStyleInHead.d.ts +8 -0
  406. package/dist/util/createStyleInHead.js +10 -10
  407. package/dist/util/createStyleInHead.js.map +1 -0
  408. package/dist/util/debounce.d.ts +2 -0
  409. package/dist/util/debounce.js +15 -0
  410. package/dist/util/debounce.js.map +1 -0
  411. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  412. package/dist/util/detectNavigatorLanguage.js +14 -10
  413. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  414. package/dist/util/escapeRegex.d.ts +8 -0
  415. package/dist/util/escapeRegex.js +11 -0
  416. package/dist/util/escapeRegex.js.map +1 -0
  417. package/dist/util/formatMessage.d.ts +2 -0
  418. package/dist/util/formatMessage.js +15 -19
  419. package/dist/util/formatMessage.js.map +1 -0
  420. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  421. package/dist/util/generateHighlightedMarkup.js +41 -0
  422. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  423. package/dist/util/getActiveElement.d.ts +2 -0
  424. package/dist/util/getActiveElement.js +9 -0
  425. package/dist/util/getActiveElement.js.map +1 -0
  426. package/dist/util/getClassCopy.d.ts +419 -0
  427. package/dist/util/getClassCopy.js +10 -0
  428. package/dist/util/getClassCopy.js.map +1 -0
  429. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  430. package/dist/util/getDesigntimePropertyAsArray.js +5 -3
  431. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  432. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  433. package/dist/util/getEffectiveContentDensity.js +4 -0
  434. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  435. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  436. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  437. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  438. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  439. package/dist/util/getFastNavigationGroups.js +51 -0
  440. package/dist/util/getFastNavigationGroups.js.map +1 -0
  441. package/dist/util/getFileExtension.d.ts +12 -0
  442. package/dist/util/getFileExtension.js +19 -0
  443. package/dist/util/getFileExtension.js.map +1 -0
  444. package/dist/util/getNormalizedTarget.d.ts +7 -0
  445. package/dist/util/getNormalizedTarget.js +14 -0
  446. package/dist/util/getNormalizedTarget.js.map +1 -0
  447. package/dist/util/getParentElement.d.ts +2 -0
  448. package/dist/util/getParentElement.js +5 -0
  449. package/dist/util/getParentElement.js.map +1 -0
  450. package/dist/util/getSingletonElementInstance.d.ts +11 -0
  451. package/dist/util/getSingletonElementInstance.js +19 -0
  452. package/dist/util/getSingletonElementInstance.js.map +1 -0
  453. package/dist/util/isElementClickable.d.ts +2 -0
  454. package/dist/util/isElementClickable.js +16 -0
  455. package/dist/util/isElementClickable.js.map +1 -0
  456. package/dist/util/isElementContainingBlock.d.ts +2 -0
  457. package/dist/util/isElementContainingBlock.js +11 -0
  458. package/dist/util/isElementContainingBlock.js.map +1 -0
  459. package/dist/util/isElementHidden.d.ts +2 -0
  460. package/dist/util/isElementHidden.js +8 -0
  461. package/dist/util/isElementHidden.js.map +1 -0
  462. package/dist/util/isElementInView.d.ts +6 -0
  463. package/dist/util/isElementInView.js +12 -0
  464. package/dist/util/isElementInView.js.map +1 -0
  465. package/dist/util/isElementTabbable.d.ts +9 -0
  466. package/dist/util/isElementTabbable.js +30 -0
  467. package/dist/util/isElementTabbable.js.map +1 -0
  468. package/dist/util/isValidPropertyName.d.ts +8 -0
  469. package/dist/util/isValidPropertyName.js +20 -12
  470. package/dist/util/isValidPropertyName.js.map +1 -0
  471. package/dist/util/whenDOMReady.d.ts +2 -0
  472. package/dist/util/whenDOMReady.js +11 -10
  473. package/dist/util/whenDOMReady.js.map +1 -0
  474. package/dist/util/willShowContent.d.ts +2 -0
  475. package/dist/util/willShowContent.js +7 -0
  476. package/dist/util/willShowContent.js.map +1 -0
  477. package/dist/validateThemeRoot.d.ts +2 -0
  478. package/dist/validateThemeRoot.js +48 -0
  479. package/dist/validateThemeRoot.js.map +1 -0
  480. package/index.js +228 -2
  481. package/lib/generate-asset-parameters/index.js +27 -0
  482. package/lib/generate-styles/index.js +31 -0
  483. package/lib/generate-version-info/index.js +32 -0
  484. package/package-scripts.cjs +65 -0
  485. package/package.json +30 -14
  486. package/src/css/BusyIndicator.css +80 -0
  487. package/src/css/FontFace.css +96 -0
  488. package/src/css/OverrideFontFace.css +32 -0
  489. package/src/css/SystemCSSVars.css +17 -0
  490. package/src/renderer/directives/style-map.js +72 -0
  491. package/tsconfig.json +18 -0
  492. package/used-modules.txt +14 -0
  493. package/bundle.es5.js +0 -28
  494. package/config/rollup.config.js +0 -1
  495. package/config/wdio.conf.js +0 -1
  496. package/dist/Assets.js +0 -2
  497. package/dist/CSS.js +0 -48
  498. package/dist/FormatSettings.js +0 -31
  499. package/dist/Locale.js +0 -101
  500. package/dist/LocaleProvider.js +0 -34
  501. package/dist/RenderScheduler.js +0 -165
  502. package/dist/ResourceLoaderOverrides.js +0 -38
  503. package/dist/SVGIconRegistry.js +0 -54
  504. package/dist/animations/config.js +0 -5
  505. package/dist/boot.js +0 -32
  506. package/dist/compatibility/DOMObserver.js +0 -62
  507. package/dist/compatibility/patchNodeValue.js +0 -24
  508. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  509. package/dist/dates/CalendarDate.js +0 -203
  510. package/dist/dates/CalendarType.js +0 -22
  511. package/dist/dates/CalendarUtils.js +0 -99
  512. package/dist/delegate/CustomResize.js +0 -78
  513. package/dist/delegate/NativeResize.js +0 -44
  514. package/dist/events/PseudoEvents.js +0 -58
  515. package/dist/features/browsersupport/Edge.js +0 -6
  516. package/dist/features/browsersupport/IE11.js +0 -41
  517. package/dist/features/calendar/Buddhist.js +0 -1
  518. package/dist/features/calendar/Islamic.js +0 -1
  519. package/dist/features/calendar/Japanese.js +0 -1
  520. package/dist/features/calendar/Persian.js +0 -1
  521. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5906
  522. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5906
  523. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5906
  524. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4979
  525. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4996
  526. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5498
  527. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4888
  528. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4916
  529. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4917
  530. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4915
  531. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4883
  532. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4883
  533. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4970
  534. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4962
  535. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4971
  536. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4977
  537. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4971
  538. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4972
  539. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4971
  540. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4972
  541. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4973
  542. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4972
  543. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4912
  544. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4914
  545. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4913
  546. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4914
  547. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4913
  548. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4915
  549. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4913
  550. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4915
  551. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4914
  552. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4967
  553. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4883
  554. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -5008
  555. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4979
  556. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4979
  557. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4973
  558. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4997
  559. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4979
  560. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5378
  561. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4829
  562. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4919
  563. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4856
  564. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4658
  565. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4950
  566. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4950
  567. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4830
  568. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4725
  569. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4738
  570. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5481
  571. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -5112
  572. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4515
  573. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4977
  574. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4884
  575. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4884
  576. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5176
  577. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4805
  578. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4940
  579. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -5090
  580. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5407
  581. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5407
  582. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5370
  583. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5340
  584. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -5126
  585. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -5011
  586. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4797
  587. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4979
  588. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5353
  589. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4673
  590. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4632
  591. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4640
  592. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4640
  593. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4728
  594. package/dist/json-imports/LocaleData.js +0 -171
  595. package/dist/renderer/ifDefined.js +0 -21
  596. package/dist/resources/bundle.es5.js +0 -212
  597. package/dist/resources/bundle.es5.js.map +0 -1
  598. package/dist/resources/bundle.esm.js +0 -123
  599. package/dist/resources/bundle.esm.js.map +0 -1
  600. package/dist/shims/Core-shim.js +0 -53
  601. package/dist/test-resources/assets/Themes.js +0 -13
  602. package/dist/test-resources/dev-helpers/ExternalThemePresent.js +0 -3
  603. package/dist/test-resources/elements/Child.js +0 -35
  604. package/dist/test-resources/elements/Generic.js +0 -84
  605. package/dist/test-resources/elements/GenericExt.js +0 -26
  606. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  607. package/dist/test-resources/elements/Parent.js +0 -37
  608. package/dist/test-resources/pages/AllTestElements.html +0 -40
  609. package/dist/test-resources/pages/Configuration.html +0 -20
  610. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  611. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  612. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  613. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  614. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  615. package/dist/test-resources/specs/Theming.spec.js +0 -31
  616. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  617. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  618. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  619. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  620. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  621. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  622. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  623. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  624. package/dist/theming/StyleInjection.js +0 -67
  625. package/dist/thirdparty/Array.from.js +0 -16
  626. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  627. package/dist/thirdparty/Array.prototype.find.js +0 -46
  628. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  629. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  630. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  631. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  632. package/dist/thirdparty/Number.isInteger.js +0 -5
  633. package/dist/thirdparty/Number.isNaN.js +0 -1
  634. package/dist/thirdparty/Number.parseInt.js +0 -1
  635. package/dist/thirdparty/Object.assign.js +0 -31
  636. package/dist/thirdparty/Object.entries.js +0 -11
  637. package/dist/thirdparty/Symbol.js +0 -2
  638. package/dist/thirdparty/WeakSet.js +0 -27
  639. package/dist/thirdparty/events-polyfills.js +0 -89
  640. package/dist/thirdparty/fetch.js +0 -1
  641. package/dist/thirdparty/template.js +0 -600
  642. package/dist/types/PopupState.js +0 -37
  643. package/dist/util/CSSTransformUtils.js +0 -90
  644. package/dist/util/isDescendantOf.js +0 -15
  645. package/dist/util/isNodeClickable.js +0 -19
  646. package/dist/util/isNodeHidden.js +0 -13
  647. package/dist/util/isNodeTabbable.js +0 -28
  648. package/dist/util/normalizeLocale.js +0 -77
  649. package/dist/webcomponentsjs/LICENSE.md +0 -19
  650. package/dist/webcomponentsjs/README.md +0 -229
  651. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  652. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  653. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  654. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  655. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  656. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  657. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  658. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  659. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  660. package/dist/webcomponentsjs/package.json +0 -46
  661. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  662. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  663. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  664. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  665. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  666. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  667. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  668. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  669. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  670. package/package-scripts.js +0 -42
  671. package/src/AssetRegistry.js +0 -9
  672. package/src/Assets.js +0 -2
  673. package/src/CSS.js +0 -48
  674. package/src/Device.js +0 -823
  675. package/src/EventProvider.js +0 -73
  676. package/src/FeaturesRegistry.js +0 -11
  677. package/src/FontFace.js +0 -73
  678. package/src/FormatSettings.js +0 -31
  679. package/src/InitialConfiguration.js +0 -130
  680. package/src/Locale.js +0 -101
  681. package/src/LocaleProvider.js +0 -34
  682. package/src/RenderQueue.js +0 -42
  683. package/src/RenderScheduler.js +0 -165
  684. package/src/ResourceLoaderOverrides.js +0 -38
  685. package/src/SVGIconRegistry.js +0 -54
  686. package/src/StaticArea.js +0 -41
  687. package/src/StaticAreaItem.js +0 -90
  688. package/src/Theming.js +0 -55
  689. package/src/UI5Element.js +0 -869
  690. package/src/UI5ElementMetadata.js +0 -164
  691. package/src/animations/AnimationQueue.js +0 -42
  692. package/src/animations/animate.js +0 -53
  693. package/src/animations/config.js +0 -5
  694. package/src/animations/scroll.js +0 -28
  695. package/src/animations/slideDown.js +0 -79
  696. package/src/animations/slideUp.js +0 -71
  697. package/src/asset-registries/Icons.js +0 -24
  698. package/src/asset-registries/LocaleData.js +0 -108
  699. package/src/asset-registries/Themes.js +0 -75
  700. package/src/asset-registries/i18n.js +0 -74
  701. package/src/boot.js +0 -32
  702. package/src/compatibility/DOMObserver.js +0 -62
  703. package/src/compatibility/patchNodeValue.js +0 -24
  704. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  705. package/src/config/AnimationMode.js +0 -13
  706. package/src/config/CalendarType.js +0 -22
  707. package/src/config/FormatSettings.js +0 -13
  708. package/src/config/Language.js +0 -12
  709. package/src/config/NoConflict.js +0 -51
  710. package/src/config/RTL.js +0 -31
  711. package/src/config/Theme.js +0 -28
  712. package/src/dates/CalendarDate.js +0 -203
  713. package/src/dates/CalendarType.js +0 -22
  714. package/src/dates/CalendarUtils.js +0 -99
  715. package/src/delegate/CustomResize.js +0 -78
  716. package/src/delegate/ItemNavigation.js +0 -278
  717. package/src/delegate/NativeResize.js +0 -44
  718. package/src/delegate/ResizeHandler.js +0 -66
  719. package/src/delegate/ScrollEnablement.js +0 -106
  720. package/src/events/PseudoEvents.js +0 -58
  721. package/src/features/OpenUI5Support.js +0 -76
  722. package/src/features/browsersupport/Edge.js +0 -6
  723. package/src/features/browsersupport/IE11.js +0 -41
  724. package/src/features/calendar/Buddhist.js +0 -1
  725. package/src/features/calendar/Islamic.js +0 -1
  726. package/src/features/calendar/Japanese.js +0 -1
  727. package/src/features/calendar/Persian.js +0 -1
  728. package/src/i18nBundle.js +0 -35
  729. package/src/json-imports/LocaleData.js +0 -171
  730. package/src/renderer/LitRenderer.js +0 -15
  731. package/src/renderer/ifDefined.js +0 -21
  732. package/src/shims/Core-shim.js +0 -53
  733. package/src/theming/CustomStyle.js +0 -19
  734. package/src/theming/StyleInjection.js +0 -67
  735. package/src/thirdparty/Array.from.js +0 -16
  736. package/src/thirdparty/Array.prototype.fill.js +0 -44
  737. package/src/thirdparty/Array.prototype.find.js +0 -46
  738. package/src/thirdparty/Array.prototype.includes.js +0 -51
  739. package/src/thirdparty/Element.prototype.closest.js +0 -11
  740. package/src/thirdparty/Element.prototype.matches.js +0 -6
  741. package/src/thirdparty/Map.prototype.keys.js +0 -9
  742. package/src/thirdparty/Number.isInteger.js +0 -5
  743. package/src/thirdparty/Number.isNaN.js +0 -1
  744. package/src/thirdparty/Number.parseInt.js +0 -1
  745. package/src/thirdparty/Object.assign.js +0 -31
  746. package/src/thirdparty/Object.entries.js +0 -11
  747. package/src/thirdparty/Symbol.js +0 -2
  748. package/src/thirdparty/WeakSet.js +0 -27
  749. package/src/thirdparty/events-polyfills.js +0 -89
  750. package/src/thirdparty/fetch.js +0 -1
  751. package/src/thirdparty/template.js +0 -600
  752. package/src/types/AnimationMode.js +0 -7
  753. package/src/types/CSSSize.js +0 -9
  754. package/src/types/DataType.js +0 -25
  755. package/src/types/Integer.js +0 -9
  756. package/src/types/ItemNavigationBehavior.js +0 -21
  757. package/src/types/NavigationMode.js +0 -6
  758. package/src/types/PopupState.js +0 -37
  759. package/src/types/ValueState.js +0 -22
  760. package/src/util/CSSTransformUtils.js +0 -90
  761. package/src/util/FetchHelper.js +0 -31
  762. package/src/util/FocusableElements.js +0 -60
  763. package/src/util/StringHelper.js +0 -26
  764. package/src/util/TabbableElements.js +0 -44
  765. package/src/util/createStyleInHead.js +0 -18
  766. package/src/util/detectNavigatorLanguage.js +0 -11
  767. package/src/util/formatMessage.js +0 -23
  768. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  769. package/src/util/isDescendantOf.js +0 -15
  770. package/src/util/isNodeClickable.js +0 -19
  771. package/src/util/isNodeHidden.js +0 -13
  772. package/src/util/isNodeTabbable.js +0 -28
  773. package/src/util/isValidPropertyName.js +0 -20
  774. package/src/util/normalizeLocale.js +0 -77
  775. package/src/util/whenDOMReady.js +0 -13
  776. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -1,164 +1,293 @@
1
- import DataType from "./types/DataType.js";
2
- import isDescendantOf from "./util/isDescendantOf.js";
3
1
  import { camelToKebabCase } from "./util/StringHelper.js";
4
-
2
+ import { getSlottedNodes } from "./util/SlotsHelper.js";
3
+ import { getEffectiveScopingSuffixForTag } from "./CustomElementsScopeUtils.js";
5
4
  /**
6
- *
7
5
  * @class
8
6
  * @public
9
7
  */
10
8
  class UI5ElementMetadata {
11
- constructor(metadata) {
12
- this.metadata = metadata;
13
- }
14
-
15
- /**
16
- * Only intended for use by UI5Element.js
17
- * @protected
18
- */
19
- static validatePropertyValue(value, propData) {
20
- const isMultiple = propData.multiple;
21
- if (isMultiple) {
22
- return value.map(propValue => validateSingleProperty(propValue, propData));
23
- }
24
- return validateSingleProperty(value, propData);
25
- }
26
-
27
- /**
28
- * Only intended for use by UI5Element.js
29
- * @protected
30
- */
31
- static validateSlotValue(value, slotData) {
32
- return validateSingleSlot(value, slotData);
33
- }
34
-
35
- /**
36
- * Returns the tag of the UI5 Element
37
- * @public
38
- */
39
- getTag() {
40
- return this.metadata.tag;
41
- }
42
-
43
- /**
44
- * Determines whether a property should have an attribute counterpart
45
- * @public
46
- * @param propName
47
- * @returns {boolean}
48
- */
49
- hasAttribute(propName) {
50
- const propData = this.getProperties()[propName];
51
- return propData.type !== Object && !propData.noAttribute;
52
- }
53
-
54
- /**
55
- * Returns an array with the properties of the UI5 Element (in camelCase)
56
- * @public
57
- * @returns {string[]}
58
- */
59
- getPropertiesList() {
60
- return Object.keys(this.getProperties());
61
- }
62
-
63
- /**
64
- * Returns an array with the attributes of the UI5 Element (in kebab-case)
65
- * @public
66
- * @returns {string[]}
67
- */
68
- getAttributesList() {
69
- return this.getPropertiesList().filter(this.hasAttribute, this).map(camelToKebabCase);
70
- }
71
-
72
- /**
73
- * Returns an object with key-value pairs of slots and their metadata definitions
74
- * @public
75
- */
76
- getSlots() {
77
- return this.metadata.slots || {};
78
- }
79
-
80
- /**
81
- * Determines whether this UI5 Element supports any slots
82
- * @public
83
- */
84
- hasSlots() {
85
- return !!Object.entries(this.getSlots()).length;
86
- }
87
-
88
- /**
89
- * Determines whether this UI5 Element supports any slots with "individualSlots: true"
90
- * @public
91
- */
92
- hasIndividualSlots() {
93
- return this.slotsAreManaged() && Object.entries(this.getSlots()).some(([_slotName, slotData]) => slotData.individualSlots);
94
- }
95
-
96
- /**
97
- * Determines whether this UI5 Element needs to invalidate if children are added/removed/changed
98
- * @public
99
- */
100
- slotsAreManaged() {
101
- return !!this.metadata.managedSlots;
102
- }
103
-
104
- /**
105
- * Returns an object with key-value pairs of properties and their metadata definitions
106
- * @public
107
- */
108
- getProperties() {
109
- return this.metadata.properties || {};
110
- }
111
-
112
- /**
113
- * Returns an object with key-value pairs of events and their metadata definitions
114
- * @public
115
- */
116
- getEvents() {
117
- return this.metadata.events || {};
118
- }
9
+ constructor(metadata) {
10
+ this.metadata = metadata;
11
+ }
12
+ getInitialState() {
13
+ if (Object.prototype.hasOwnProperty.call(this, "_initialState")) {
14
+ return this._initialState;
15
+ }
16
+ const initialState = {};
17
+ const slotsAreManaged = this.slotsAreManaged();
18
+ // Initialize properties
19
+ const props = this.getProperties();
20
+ for (const propName in props) { // eslint-disable-line
21
+ const propType = props[propName].type;
22
+ const propDefaultValue = props[propName].defaultValue;
23
+ if (propType === Boolean) {
24
+ initialState[propName] = false;
25
+ if (propDefaultValue !== undefined) {
26
+ console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default"); // eslint-disable-line
27
+ }
28
+ }
29
+ else if (props[propName].multiple) {
30
+ Object.defineProperty(initialState, propName, {
31
+ enumerable: true,
32
+ get() {
33
+ return [];
34
+ },
35
+ });
36
+ }
37
+ else if (propType === Object) {
38
+ Object.defineProperty(initialState, propName, {
39
+ enumerable: true,
40
+ get() {
41
+ return "defaultValue" in props[propName] ? props[propName].defaultValue : {};
42
+ },
43
+ });
44
+ }
45
+ else if (propType === String) {
46
+ initialState[propName] = "defaultValue" in props[propName] ? props[propName].defaultValue : "";
47
+ }
48
+ else {
49
+ initialState[propName] = propDefaultValue;
50
+ }
51
+ }
52
+ // Initialize slots
53
+ if (slotsAreManaged) {
54
+ const slots = this.getSlots();
55
+ for (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line
56
+ const propertyName = slotData.propertyName || slotName;
57
+ initialState[propertyName] = [];
58
+ }
59
+ }
60
+ this._initialState = initialState;
61
+ return initialState;
62
+ }
63
+ /**
64
+ * Validates the property's value and returns it if correct
65
+ * or returns the default value if not.
66
+ * <b>Note:</b> Only intended for use by UI5Element.js
67
+ * @public
68
+ */
69
+ static validatePropertyValue(value, propData) {
70
+ const isMultiple = propData.multiple;
71
+ if (isMultiple && value) {
72
+ return value.map((propValue) => validateSingleProperty(propValue, propData));
73
+ }
74
+ return validateSingleProperty(value, propData);
75
+ }
76
+ /**
77
+ * Validates the slot's value and returns it if correct
78
+ * or throws an exception if not.
79
+ * <b>Note:</b> Only intended for use by UI5Element.js
80
+ * @public
81
+ */
82
+ static validateSlotValue(value, slotData) {
83
+ return validateSingleSlot(value, slotData);
84
+ }
85
+ /**
86
+ * Returns the tag of the UI5 Element without the scope
87
+ * @public
88
+ */
89
+ getPureTag() {
90
+ return this.metadata.tag || "";
91
+ }
92
+ /**
93
+ * Returns the tag of the UI5 Element
94
+ * @public
95
+ */
96
+ getTag() {
97
+ const pureTag = this.metadata.tag;
98
+ if (!pureTag) {
99
+ return "";
100
+ }
101
+ const suffix = getEffectiveScopingSuffixForTag(pureTag);
102
+ if (!suffix) {
103
+ return pureTag;
104
+ }
105
+ return `${pureTag}-${suffix}`;
106
+ }
107
+ /**
108
+ * Determines whether a property should have an attribute counterpart
109
+ * @public
110
+ * @param propName
111
+ */
112
+ hasAttribute(propName) {
113
+ const propData = this.getProperties()[propName];
114
+ return propData.type !== Object && !propData.noAttribute && !propData.multiple;
115
+ }
116
+ /**
117
+ * Returns an array with the properties of the UI5 Element (in camelCase)
118
+ * @public
119
+ */
120
+ getPropertiesList() {
121
+ return Object.keys(this.getProperties());
122
+ }
123
+ /**
124
+ * Returns an array with the attributes of the UI5 Element (in kebab-case)
125
+ * @public
126
+ */
127
+ getAttributesList() {
128
+ return this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(camelToKebabCase);
129
+ }
130
+ /**
131
+ * Determines whether this UI5 Element has a default slot of type Node, therefore can slot text
132
+ */
133
+ canSlotText() {
134
+ return (this.getSlots().default)?.type === Node;
135
+ }
136
+ /**
137
+ * Determines whether this UI5 Element supports any slots
138
+ * @public
139
+ */
140
+ hasSlots() {
141
+ return !!Object.entries(this.getSlots()).length;
142
+ }
143
+ /**
144
+ * Determines whether this UI5 Element supports any slots with "individualSlots: true"
145
+ * @public
146
+ */
147
+ hasIndividualSlots() {
148
+ return this.slotsAreManaged() && Object.values(this.getSlots()).some(slotData => slotData.individualSlots);
149
+ }
150
+ /**
151
+ * Determines whether this UI5 Element needs to invalidate if children are added/removed/changed
152
+ * @public
153
+ */
154
+ slotsAreManaged() {
155
+ return !!this.metadata.managedSlots;
156
+ }
157
+ /**
158
+ * Determines whether this control supports F6 fast navigation
159
+ * @public
160
+ */
161
+ supportsF6FastNavigation() {
162
+ return !!this.metadata.fastNavigation;
163
+ }
164
+ /**
165
+ * Returns an object with key-value pairs of properties and their metadata definitions
166
+ * @public
167
+ */
168
+ getProperties() {
169
+ if (!this.metadata.properties) {
170
+ this.metadata.properties = {};
171
+ }
172
+ return this.metadata.properties;
173
+ }
174
+ /**
175
+ * Returns an object with key-value pairs of events and their metadata definitions
176
+ * @public
177
+ */
178
+ getEvents() {
179
+ if (!this.metadata.events) {
180
+ this.metadata.events = {};
181
+ }
182
+ return this.metadata.events;
183
+ }
184
+ /**
185
+ * Returns an object with key-value pairs of slots and their metadata definitions
186
+ * @public
187
+ */
188
+ getSlots() {
189
+ if (!this.metadata.slots) {
190
+ this.metadata.slots = {};
191
+ }
192
+ return this.metadata.slots;
193
+ }
194
+ /**
195
+ * Determines whether this UI5 Element has any translatable texts (needs to be invalidated upon language change)
196
+ */
197
+ isLanguageAware() {
198
+ return !!this.metadata.languageAware;
199
+ }
200
+ /**
201
+ * Determines whether this UI5 Element has any theme dependant carachteristics.
202
+ */
203
+ isThemeAware() {
204
+ return !!this.metadata.themeAware;
205
+ }
206
+ /**
207
+ * Matches a changed entity (property/slot) with the given name against the "invalidateOnChildChange" configuration
208
+ * and determines whether this should cause and invalidation
209
+ *
210
+ * @param slotName the name of the slot in which a child was changed
211
+ * @param type the type of change in the child: "property" or "slot"
212
+ * @param name the name of the property/slot that changed
213
+ */
214
+ shouldInvalidateOnChildChange(slotName, type, name) {
215
+ const config = this.getSlots()[slotName].invalidateOnChildChange;
216
+ // invalidateOnChildChange was not set in the slot metadata - by default child changes do not affect the component
217
+ if (config === undefined) {
218
+ return false;
219
+ }
220
+ // The simple format was used: invalidateOnChildChange: true/false;
221
+ if (typeof config === "boolean") {
222
+ return config;
223
+ }
224
+ // The complex format was used: invalidateOnChildChange: { properties, slots }
225
+ if (typeof config === "object") {
226
+ // A property was changed
227
+ if (type === "property") {
228
+ // The config object does not have a properties field
229
+ if (config.properties === undefined) {
230
+ return false;
231
+ }
232
+ // The config object has the short format: properties: true/false
233
+ if (typeof config.properties === "boolean") {
234
+ return config.properties;
235
+ }
236
+ // The config object has the complex format: properties: [...]
237
+ if (Array.isArray(config.properties)) {
238
+ return config.properties.includes(name);
239
+ }
240
+ throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected");
241
+ }
242
+ // A slot was changed
243
+ if (type === "slot") {
244
+ // The config object does not have a slots field
245
+ if (config.slots === undefined) {
246
+ return false;
247
+ }
248
+ // The config object has the short format: slots: true/false
249
+ if (typeof config.slots === "boolean") {
250
+ return config.slots;
251
+ }
252
+ // The config object has the complex format: slots: [...]
253
+ if (Array.isArray(config.slots)) {
254
+ return config.slots.includes(name);
255
+ }
256
+ throw new Error("Wrong format for invalidateOnChildChange.slots: boolean or array is expected");
257
+ }
258
+ }
259
+ throw new Error("Wrong format for invalidateOnChildChange: boolean or object is expected");
260
+ }
119
261
  }
120
-
121
262
  const validateSingleProperty = (value, propData) => {
122
- const propertyType = propData.type;
123
-
124
- if (propertyType === Boolean) {
125
- return typeof value === "boolean" ? value : false;
126
- }
127
- if (propertyType === String) {
128
- return (typeof value === "string" || typeof value === "undefined" || value === null) ? value : value.toString();
129
- }
130
- if (propertyType === Object) {
131
- return typeof value === "object" ? value : propData.defaultValue;
132
- }
133
- if (isDescendantOf(propertyType, DataType)) {
134
- return propertyType.isValid(value) ? value : propData.defaultValue;
135
- }
263
+ const propertyType = propData.type;
264
+ let propertyValidator = propData.validator;
265
+ if (propertyType && propertyType.isDataTypeClass) {
266
+ propertyValidator = propertyType;
267
+ }
268
+ if (propertyValidator) {
269
+ return propertyValidator.isValid(value) ? value : propData.defaultValue;
270
+ }
271
+ if (!propertyType || propertyType === String) {
272
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string -- if an object is passed as a value to a string property, this was an error so displaying [object Object] will indicate the issue to the developer
273
+ return (typeof value === "string" || typeof value === "undefined" || value === null) ? value : value.toString();
274
+ }
275
+ if (propertyType === Boolean) {
276
+ return typeof value === "boolean" ? value : false;
277
+ }
278
+ if (propertyType === Object) {
279
+ return typeof value === "object" ? value : propData.defaultValue;
280
+ }
281
+ // Check if "value" is part of the enum (propertyType) values and return the defaultValue if not found.
282
+ return value in propertyType ? value : propData.defaultValue;
136
283
  };
137
-
138
284
  const validateSingleSlot = (value, slotData) => {
139
- if (value === null) {
140
- return value;
141
- }
142
-
143
- const getSlottedNodes = el => {
144
- const isTag = el instanceof HTMLElement;
145
- const isSlot = isTag && el.localName === "slot";
146
-
147
- if (isSlot) {
148
- return el.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);
149
- }
150
-
151
- return [el];
152
- };
153
-
154
- const slottedNodes = getSlottedNodes(value);
155
- slottedNodes.forEach(el => {
156
- if (!(el instanceof slotData.type)) {
157
- throw new Error(`${el} is not of type ${slotData.type}`);
158
- }
159
- });
160
-
161
- return value;
285
+ value && getSlottedNodes(value).forEach(el => {
286
+ if (!(el instanceof slotData.type)) {
287
+ throw new Error(`The element is not of type ${slotData.type.toString()}`);
288
+ }
289
+ });
290
+ return value;
162
291
  };
163
-
164
292
  export default UI5ElementMetadata;
293
+ //# sourceMappingURL=UI5ElementMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UI5ElementMetadata.js","sourceRoot":"","sources":["../src/UI5ElementMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import DataType from \"./types/DataType.js\";\nimport { camelToKebabCase } from \"./util/StringHelper.js\";\nimport { getSlottedNodes } from \"./util/SlotsHelper.js\";\nimport { getEffectiveScopingSuffixForTag } from \"./CustomElementsScopeUtils.js\";\n\ntype SlotInvalidation = {\n\tproperties: boolean | Array<string>,\n\tslots: boolean | Array<string>,\n}\n\ntype Slot = {\n\ttype: typeof Node | typeof HTMLElement,\n\tdefault?: boolean,\n\tpropertyName?: string,\n\tindividualSlots?: boolean,\n\tinvalidateOnChildChange?: boolean | SlotInvalidation,\n\tcloned?: boolean,\n};\n\ntype SlotValue = Node;\n\ntype Property = {\n\ttype?: BooleanConstructor | StringConstructor | ObjectConstructor | DataType\n\tvalidator?: DataType,\n\tdefaultValue?: PropertyValue,\n\tnoAttribute?: boolean,\n\tmultiple?: boolean,\n\tcompareValues?: boolean,\n}\n\ntype PropertyValue = boolean | number | string | object | undefined | null | DataType;\n\ntype EventData = Record<string, object>;\n\ntype Metadata = {\n\ttag?: string,\n\tmanagedSlots?: boolean,\n\tproperties?: Record<string, Property>,\n\tslots?: Record<string, Slot>,\n\tevents?: EventData,\n\tfastNavigation?: boolean,\n\tthemeAware?: boolean,\n\tlanguageAware?: boolean,\n};\n\ntype State = Record<string, PropertyValue | Array<SlotValue>>;\n\n/**\n * @class\n * @public\n */\nclass UI5ElementMetadata {\n\tmetadata: Metadata;\n\t_initialState: State | undefined;\n\n\tconstructor(metadata: Metadata) {\n\t\tthis.metadata = metadata;\n\t}\n\n\tgetInitialState() {\n\t\tif (Object.prototype.hasOwnProperty.call(this, \"_initialState\")) {\n\t\t\treturn this._initialState!;\n\t\t}\n\t\tconst initialState: State = {};\n\t\tconst slotsAreManaged = this.slotsAreManaged();\n\n\t\t// Initialize properties\n\t\tconst props = this.getProperties();\n\t\tfor (const propName in props) { // eslint-disable-line\n\t\t\tconst propType = props[propName].type;\n\t\t\tconst propDefaultValue = props[propName].defaultValue;\n\n\t\t\tif (propType === Boolean) {\n\t\t\t\tinitialState[propName] = false;\n\n\t\t\t\tif (propDefaultValue !== undefined) {\n\t\t\t\t\tconsole.warn(\"The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default\"); // eslint-disable-line\n\t\t\t\t}\n\t\t\t} else if (props[propName].multiple) {\n\t\t\t\tObject.defineProperty(initialState, propName, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget() {\n\t\t\t\t\t return [];\n\t\t\t\t\t},\n\t\t\t\t });\n\t\t\t} else if (propType === Object) {\n\t\t\t\tObject.defineProperty(initialState, propName, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget() {\n\t\t\t\t\t return \"defaultValue\" in props[propName] ? props[propName].defaultValue : {};\n\t\t\t\t\t},\n\t\t\t\t });\n\t\t\t} else if (propType === String) {\n\t\t\t\tinitialState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : \"\";\n\t\t\t} else {\n\t\t\t\tinitialState[propName] = propDefaultValue;\n\t\t\t}\n\t\t}\n\n\t\t// Initialize slots\n\t\tif (slotsAreManaged) {\n\t\t\tconst slots = this.getSlots();\n\t\t\tfor (const [slotName, slotData] of Object.entries<Slot>(slots)) { // eslint-disable-line\n\t\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\t\tinitialState[propertyName] = [];\n\t\t\t}\n\t\t}\n\n\t\tthis._initialState = initialState;\n\t\treturn initialState;\n\t}\n\n\t/**\n\t * Validates the property's value and returns it if correct\n\t * or returns the default value if not.\n\t * <b>Note:</b> Only intended for use by UI5Element.js\n\t * @public\n\t */\n\tstatic validatePropertyValue(value: PropertyValue, propData: Property): PropertyValue {\n\t\tconst isMultiple = propData.multiple;\n\t\tif (isMultiple && value) {\n\t\t\treturn (value as Array<PropertyValue>).map((propValue: PropertyValue) => validateSingleProperty(propValue, propData));\n\t\t}\n\t\treturn validateSingleProperty(value, propData);\n\t}\n\n\t/**\n\t * Validates the slot's value and returns it if correct\n\t * or throws an exception if not.\n\t * <b>Note:</b> Only intended for use by UI5Element.js\n\t * @public\n\t */\n\tstatic validateSlotValue(value: Node, slotData: Slot): Node {\n\t\treturn validateSingleSlot(value, slotData);\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element without the scope\n\t * @public\n\t */\n\tgetPureTag(): string {\n\t\treturn this.metadata.tag || \"\";\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element\n\t * @public\n\t */\n\tgetTag(): string {\n\t\tconst pureTag = this.metadata.tag;\n\n\t\tif (!pureTag) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst suffix = getEffectiveScopingSuffixForTag(pureTag);\n\t\tif (!suffix) {\n\t\t\treturn pureTag;\n\t\t}\n\n\t\treturn `${pureTag}-${suffix}`;\n\t}\n\n\t/**\n\t * Determines whether a property should have an attribute counterpart\n\t * @public\n\t * @param propName\n\t */\n\thasAttribute(propName: string): boolean {\n\t\tconst propData = this.getProperties()[propName];\n\t\treturn propData.type !== Object && !propData.noAttribute && !propData.multiple;\n\t}\n\n\t/**\n\t * Returns an array with the properties of the UI5 Element (in camelCase)\n\t * @public\n\t */\n\tgetPropertiesList(): Array<string> {\n\t\treturn Object.keys(this.getProperties());\n\t}\n\n\t/**\n\t * Returns an array with the attributes of the UI5 Element (in kebab-case)\n\t * @public\n\t */\n\tgetAttributesList(): Array<string> {\n\t\treturn this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(camelToKebabCase);\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has a default slot of type Node, therefore can slot text\n\t */\n\tcanSlotText() {\n\t\treturn (this.getSlots().default)?.type === Node;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots\n\t * @public\n\t */\n\thasSlots(): boolean {\n\t\treturn !!Object.entries(this.getSlots()).length;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots with \"individualSlots: true\"\n\t * @public\n\t */\n\thasIndividualSlots(): boolean {\n\t\treturn this.slotsAreManaged() && Object.values(this.getSlots()).some(slotData => slotData.individualSlots);\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element needs to invalidate if children are added/removed/changed\n\t * @public\n\t */\n\tslotsAreManaged(): boolean {\n\t\treturn !!this.metadata.managedSlots;\n\t}\n\n\t/**\n\t * Determines whether this control supports F6 fast navigation\n\t * @public\n\t */\n\tsupportsF6FastNavigation(): boolean {\n\t\treturn !!this.metadata.fastNavigation;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of properties and their metadata definitions\n\t * @public\n\t */\n\tgetProperties(): Record<string, Property> {\n\t\tif (!this.metadata.properties) {\n\t\t\tthis.metadata.properties = {};\n\t\t}\n\t\treturn this.metadata.properties;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of events and their metadata definitions\n\t * @public\n\t */\n\tgetEvents(): EventData {\n\t\tif (!this.metadata.events) {\n\t\t\tthis.metadata.events = {};\n\t\t}\n\t\treturn this.metadata.events;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of slots and their metadata definitions\n\t * @public\n\t */\n\t getSlots(): Record<string, Slot> {\n\t\tif (!this.metadata.slots) {\n\t\t\tthis.metadata.slots = {};\n\t\t}\n\t\treturn this.metadata.slots;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has any translatable texts (needs to be invalidated upon language change)\n\t */\n\tisLanguageAware(): boolean {\n\t\treturn !!this.metadata.languageAware;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has any theme dependant carachteristics.\n\t */\n\t isThemeAware(): boolean {\n\t\treturn !!this.metadata.themeAware;\n\t}\n\n\t/**\n\t * Matches a changed entity (property/slot) with the given name against the \"invalidateOnChildChange\" configuration\n\t * and determines whether this should cause and invalidation\n\t *\n\t * @param slotName the name of the slot in which a child was changed\n\t * @param type the type of change in the child: \"property\" or \"slot\"\n\t * @param name the name of the property/slot that changed\n\t */\n\tshouldInvalidateOnChildChange(slotName: string, type: \"property\" | \"slot\", name: string): boolean {\n\t\tconst config = this.getSlots()[slotName].invalidateOnChildChange;\n\n\t\t// invalidateOnChildChange was not set in the slot metadata - by default child changes do not affect the component\n\t\tif (config === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// The simple format was used: invalidateOnChildChange: true/false;\n\t\tif (typeof config === \"boolean\") {\n\t\t\treturn config;\n\t\t}\n\n\t\t// The complex format was used: invalidateOnChildChange: { properties, slots }\n\t\tif (typeof config === \"object\") {\n\t\t\t// A property was changed\n\t\t\tif (type === \"property\") {\n\t\t\t\t// The config object does not have a properties field\n\t\t\t\tif (config.properties === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: properties: true/false\n\t\t\t\tif (typeof config.properties === \"boolean\") {\n\t\t\t\t\treturn config.properties;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: properties: [...]\n\t\t\t\tif (Array.isArray(config.properties)) {\n\t\t\t\t\treturn config.properties.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.properties: boolean or array is expected\");\n\t\t\t}\n\n\t\t\t// A slot was changed\n\t\t\tif (type === \"slot\") {\n\t\t\t\t// The config object does not have a slots field\n\t\t\t\tif (config.slots === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: slots: true/false\n\t\t\t\tif (typeof config.slots === \"boolean\") {\n\t\t\t\t\treturn config.slots;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: slots: [...]\n\t\t\t\tif (Array.isArray(config.slots)) {\n\t\t\t\t\treturn config.slots.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.slots: boolean or array is expected\");\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Wrong format for invalidateOnChildChange: boolean or object is expected\");\n\t}\n}\n\nconst validateSingleProperty = (value: PropertyValue, propData: Property) => {\n\tconst propertyType = propData.type;\n\tlet propertyValidator = propData.validator;\n\n\tif (propertyType && (propertyType as typeof DataType).isDataTypeClass) {\n\t\tpropertyValidator = propertyType as typeof DataType;\n\t}\n\n\tif (propertyValidator) {\n\t\treturn (propertyValidator as typeof DataType).isValid(value) ? value : propData.defaultValue;\n\t}\n\n\tif (!propertyType || propertyType === String) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string -- if an object is passed as a value to a string property, this was an error so displaying [object Object] will indicate the issue to the developer\n\t\treturn (typeof value === \"string\" || typeof value === \"undefined\" || value === null) ? value : value.toString();\n\t}\n\n\tif (propertyType === Boolean) {\n\t\treturn typeof value === \"boolean\" ? value : false;\n\t}\n\n\tif (propertyType === Object) {\n\t\treturn typeof value === \"object\" ? value : propData.defaultValue;\n\t}\n\n\t// Check if \"value\" is part of the enum (propertyType) values and return the defaultValue if not found.\n\treturn value as string in propertyType ? value : propData.defaultValue;\n};\n\nconst validateSingleSlot = (value: Node, slotData: Slot) => {\n\tvalue && getSlottedNodes(value).forEach(el => {\n\t\tif (!(el instanceof slotData.type)) {\n\t\t\tthrow new Error(`The element is not of type ${slotData.type.toString()}`);\n\t\t}\n\t});\n\n\treturn value;\n};\n\nexport default UI5ElementMetadata;\nexport type {\n\tProperty,\n\tPropertyValue,\n\tSlot,\n\tSlotValue,\n\tEventData,\n\tState,\n\tMetadata,\n};\n"]}
@@ -0,0 +1,8 @@
1
+ type TaskType = () => Promise<void>;
2
+ declare class AnimationQueue {
3
+ static get tasks(): WeakMap<HTMLElement, TaskType[]>;
4
+ static enqueue(element: HTMLElement, task: TaskType): void;
5
+ static run(element: HTMLElement, task: TaskType): Promise<void>;
6
+ static push(element: HTMLElement, task: TaskType): void;
7
+ }
8
+ export default AnimationQueue;
@@ -1,42 +1,35 @@
1
1
  const tasks = new WeakMap();
2
-
3
2
  class AnimationQueue {
4
- static get tasks() {
5
- return tasks;
6
- }
7
-
8
- static enqueue(element, task) {
9
- if (!tasks.has(element)) {
10
- tasks.set(element, []);
11
- }
12
-
13
- tasks.get(element).push(task);
14
- }
15
-
16
- static run(element, task) {
17
- if (!tasks.has(element)) {
18
- tasks.set(element, []);
19
- }
20
-
21
- return task().then(() => {
22
- const elementTasks = tasks.get(element);
23
-
24
- if (elementTasks.length > 0) {
25
- return AnimationQueue.run(element, elementTasks.shift());
26
- }
27
- tasks.delete(element);
28
- });
29
- }
30
-
31
- static push(element, task) {
32
- const elementTasks = tasks.get(element);
33
-
34
- if (elementTasks) {
35
- AnimationQueue.enqueue(element, task);
36
- } else {
37
- AnimationQueue.run(element, task);
38
- }
39
- }
3
+ static get tasks() {
4
+ return tasks;
5
+ }
6
+ static enqueue(element, task) {
7
+ if (!tasks.has(element)) {
8
+ tasks.set(element, []);
9
+ }
10
+ tasks.get(element).push(task);
11
+ }
12
+ static run(element, task) {
13
+ if (!tasks.has(element)) {
14
+ tasks.set(element, []);
15
+ }
16
+ return task().then(() => {
17
+ const elementTasks = tasks.get(element);
18
+ if (elementTasks.length > 0) {
19
+ return AnimationQueue.run(element, elementTasks.shift());
20
+ }
21
+ tasks.delete(element);
22
+ });
23
+ }
24
+ static push(element, task) {
25
+ const elementTasks = tasks.get(element);
26
+ if (elementTasks) {
27
+ AnimationQueue.enqueue(element, task);
28
+ }
29
+ else {
30
+ AnimationQueue.run(element, task);
31
+ }
32
+ }
40
33
  }
41
-
42
34
  export default AnimationQueue;
35
+ //# sourceMappingURL=AnimationQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationQueue.js","sourceRoot":"","sources":["../../src/animations/AnimationQueue.ts"],"names":[],"mappings":"AACA,MAAM,KAAK,GAAG,IAAI,OAAO,EAAgC,CAAC;AAE1D,MAAM,cAAc;IACnB,MAAM,KAAK,KAAK;QACf,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAoB,EAAE,IAAc;QAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACxB,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SACvB;QAED,KAAK,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,OAAoB,EAAE,IAAc;QAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACxB,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SACvB;QAED,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACvB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAExC,IAAI,YAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,YAAa,CAAC,KAAK,EAAG,CAAC,CAAC;aAC3D;YACD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAoB,EAAE,IAAc;QAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,YAAY,EAAE;YACjB,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SACtC;aAAM;YACN,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAClC;IACF,CAAC;CACD;AAED,eAAe,cAAc,CAAC","sourcesContent":["type TaskType =\t() => Promise<void>;\nconst tasks = new WeakMap<HTMLElement, Array<TaskType>>();\n\nclass AnimationQueue {\n\tstatic get tasks() {\n\t\treturn tasks;\n\t}\n\n\tstatic enqueue(element: HTMLElement, task: TaskType) {\n\t\tif (!tasks.has(element)) {\n\t\t\ttasks.set(element, []);\n\t\t}\n\n\t\ttasks.get(element)!.push(task);\n\t}\n\n\tstatic run(element: HTMLElement, task: TaskType): Promise<void> {\n\t\tif (!tasks.has(element)) {\n\t\t\ttasks.set(element, []);\n\t\t}\n\n\t\treturn task().then(() => {\n\t\t\tconst elementTasks = tasks.get(element);\n\n\t\t\tif (elementTasks!.length > 0) {\n\t\t\t\treturn AnimationQueue.run(element, elementTasks!.shift()!);\n\t\t\t}\n\t\t\ttasks.delete(element);\n\t\t});\n\t}\n\n\tstatic push(element: HTMLElement, task: TaskType) {\n\t\tconst elementTasks = tasks.get(element);\n\n\t\tif (elementTasks) {\n\t\t\tAnimationQueue.enqueue(element, task);\n\t\t} else {\n\t\t\tAnimationQueue.run(element, task);\n\t\t}\n\t}\n}\n\nexport default AnimationQueue;\n"]}
@@ -0,0 +1,14 @@
1
+ type AnimateOptions = {
2
+ beforeStart?: () => void;
3
+ duration: number;
4
+ element: HTMLElement;
5
+ advance: (p: number) => void;
6
+ };
7
+ declare const animate: (options: AnimateOptions) => {
8
+ promise: () => Promise<void | Error>;
9
+ stop: () => () => void;
10
+ };
11
+ declare const duration = 400;
12
+ export { duration };
13
+ export type { AnimateOptions };
14
+ export default animate;