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

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