@ui5/webcomponents-base 0.0.0-323968e1b → 0.0.0-33967dd12

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