@ui5/webcomponents-base 0.0.0-d0bcf47c7 → 0.0.0-d479b681b

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