@ui5/webcomponents-base 0.0.0-fa45f79f6 → 0.0.0-fc993d8cd

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 (740) hide show
  1. package/.eslintignore +9 -3
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +687 -0
  4. package/README.md +53 -7
  5. package/bundle.esm.js +34 -22
  6. package/config/wdio.conf.cjs +400 -0
  7. package/dist/AssetRegistry.d.ts +5 -0
  8. package/dist/AssetRegistry.js +6 -9
  9. package/dist/AssetRegistry.js.map +1 -0
  10. package/dist/Boot.d.ts +9 -0
  11. package/dist/Boot.js +71 -0
  12. package/dist/Boot.js.map +1 -0
  13. package/dist/CSP.d.ts +30 -0
  14. package/dist/CSP.js +51 -0
  15. package/dist/CSP.js.map +1 -0
  16. package/dist/CustomElementsRegistry.d.ts +5 -0
  17. package/dist/CustomElementsRegistry.js +78 -0
  18. package/dist/CustomElementsRegistry.js.map +1 -0
  19. package/dist/CustomElementsScope.d.ts +7 -0
  20. package/dist/CustomElementsScope.js +11 -0
  21. package/dist/CustomElementsScope.js.map +1 -0
  22. package/dist/CustomElementsScopeUtils.d.ts +55 -0
  23. package/dist/CustomElementsScopeUtils.js +90 -0
  24. package/dist/CustomElementsScopeUtils.js.map +1 -0
  25. package/dist/DOMObserver.d.ts +11 -0
  26. package/dist/DOMObserver.js +23 -0
  27. package/dist/DOMObserver.js.map +1 -0
  28. package/dist/Device.d.ts +12 -0
  29. package/dist/Device.js +159 -816
  30. package/dist/Device.js.map +1 -0
  31. package/dist/EventProvider.d.ts +25 -0
  32. package/dist/EventProvider.js +67 -70
  33. package/dist/EventProvider.js.map +1 -0
  34. package/dist/FeaturesRegistry.d.ts +3 -0
  35. package/dist/FeaturesRegistry.js +5 -7
  36. package/dist/FeaturesRegistry.js.map +1 -0
  37. package/dist/FontFace.d.ts +2 -0
  38. package/dist/FontFace.js +22 -63
  39. package/dist/FontFace.js.map +1 -0
  40. package/dist/InitialConfiguration.d.ts +22 -0
  41. package/dist/InitialConfiguration.js +124 -96
  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 +0 -0
  68. package/dist/StaticArea.js +4 -39
  69. package/dist/StaticArea.js.map +1 -0
  70. package/dist/StaticAreaItem.d.ts +36 -0
  71. package/dist/StaticAreaItem.js +92 -66
  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 +938 -825
  81. package/dist/UI5Element.js.map +1 -0
  82. package/dist/UI5ElementMetadata.d.ts +150 -0
  83. package/dist/UI5ElementMetadata.js +278 -135
  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 +122 -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.65a9949e.js +9 -0
  118. package/dist/assets/bundle.esm.dd7cb818.js +52 -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/css/BusyIndicator.css +80 -0
  150. package/dist/css/FontFace.css +66 -0
  151. package/dist/css/OverrideFontFace.css +32 -0
  152. package/dist/css/SystemCSSVars.css +17 -0
  153. package/dist/decorators/customElement.d.ts +23 -0
  154. package/dist/decorators/customElement.js +31 -0
  155. package/dist/decorators/customElement.js.map +1 -0
  156. package/dist/decorators/event.d.ts +10 -0
  157. package/dist/decorators/event.js +24 -0
  158. package/dist/decorators/event.js.map +1 -0
  159. package/dist/decorators/property.d.ts +9 -0
  160. package/dist/decorators/property.js +24 -0
  161. package/dist/decorators/property.js.map +1 -0
  162. package/dist/decorators/slot.d.ts +9 -0
  163. package/dist/decorators/slot.js +37 -0
  164. package/dist/decorators/slot.js.map +1 -0
  165. package/dist/delegate/ItemNavigation.d.ts +113 -0
  166. package/dist/delegate/ItemNavigation.js +312 -274
  167. package/dist/delegate/ItemNavigation.js.map +1 -0
  168. package/dist/delegate/ResizeHandler.d.ts +25 -0
  169. package/dist/delegate/ResizeHandler.js +82 -63
  170. package/dist/delegate/ResizeHandler.js.map +1 -0
  171. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  172. package/dist/delegate/ScrollEnablement.js +159 -74
  173. package/dist/delegate/ScrollEnablement.js.map +1 -0
  174. package/dist/features/F6Navigation.d.ts +19 -0
  175. package/dist/features/F6Navigation.js +151 -0
  176. package/dist/features/F6Navigation.js.map +1 -0
  177. package/dist/features/LegacyDateFormats.d.ts +18 -0
  178. package/dist/features/LegacyDateFormats.js +20 -0
  179. package/dist/features/LegacyDateFormats.js.map +1 -0
  180. package/dist/features/OpenUI5Element.d.ts +9 -0
  181. package/dist/features/OpenUI5Element.js +5 -0
  182. package/dist/features/OpenUI5Element.js.map +1 -0
  183. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  184. package/dist/features/OpenUI5Enablement.js +96 -0
  185. package/dist/features/OpenUI5Enablement.js.map +1 -0
  186. package/dist/features/OpenUI5Support.d.ts +25 -0
  187. package/dist/features/OpenUI5Support.js +98 -0
  188. package/dist/features/OpenUI5Support.js.map +1 -0
  189. package/dist/generated/AssetParameters.js +15 -0
  190. package/dist/generated/VersionInfo.js +10 -0
  191. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  192. package/dist/generated/css/BusyIndicator.css.js +7 -0
  193. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  194. package/dist/generated/css/FontFace.css.d.ts +3 -0
  195. package/dist/generated/css/FontFace.css.js +7 -0
  196. package/dist/generated/css/FontFace.css.js.map +1 -0
  197. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  198. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  199. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  200. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  201. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  202. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  203. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  204. package/dist/getSharedResource.d.ts +11 -0
  205. package/dist/getSharedResource.js +34 -0
  206. package/dist/getSharedResource.js.map +1 -0
  207. package/dist/global.d.ts +40 -0
  208. package/dist/i18nBundle.d.ts +43 -0
  209. package/dist/i18nBundle.js +73 -30
  210. package/dist/i18nBundle.js.map +1 -0
  211. package/dist/locale/Locale.d.ts +22 -0
  212. package/dist/locale/Locale.js +79 -0
  213. package/dist/locale/Locale.js.map +1 -0
  214. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  215. package/dist/locale/RTLAwareRegistry.js +9 -0
  216. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  217. package/dist/locale/applyDirection.d.ts +10 -0
  218. package/dist/locale/applyDirection.js +17 -0
  219. package/dist/locale/applyDirection.js.map +1 -0
  220. package/dist/locale/directionChange.d.ts +15 -0
  221. package/dist/locale/directionChange.js +24 -0
  222. package/dist/locale/directionChange.js.map +1 -0
  223. package/dist/locale/getEffectiveDir.d.ts +2 -0
  224. package/dist/locale/getEffectiveDir.js +24 -0
  225. package/dist/locale/getEffectiveDir.js.map +1 -0
  226. package/dist/locale/getLocale.d.ts +7 -0
  227. package/dist/locale/getLocale.js +38 -0
  228. package/dist/locale/getLocale.js.map +1 -0
  229. package/dist/locale/languageChange.d.ts +5 -0
  230. package/dist/locale/languageChange.js +14 -0
  231. package/dist/locale/languageChange.js.map +1 -0
  232. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  233. package/dist/locale/nextFallbackLocale.js +24 -0
  234. package/dist/locale/nextFallbackLocale.js.map +1 -0
  235. package/dist/locale/normalizeLocale.d.ts +7 -0
  236. package/dist/locale/normalizeLocale.js +47 -0
  237. package/dist/locale/normalizeLocale.js.map +1 -0
  238. package/dist/renderer/LitRenderer.d.ts +14 -0
  239. package/dist/renderer/LitRenderer.js +38 -12
  240. package/dist/renderer/LitRenderer.js.map +1 -0
  241. package/dist/renderer/directives/style-map.js +72 -0
  242. package/dist/renderer/executeTemplate.d.ts +13 -0
  243. package/dist/renderer/executeTemplate.js +30 -0
  244. package/dist/renderer/executeTemplate.js.map +1 -0
  245. package/dist/sap/base/Log.js +240 -0
  246. package/dist/sap/base/assert.js +7 -0
  247. package/dist/sap/base/security/URLListValidator.js +159 -0
  248. package/dist/sap/base/security/encodeCSS.js +14 -0
  249. package/dist/sap/base/security/encodeXML.js +23 -0
  250. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  251. package/dist/sap/base/strings/toHex.js +8 -0
  252. package/dist/sap/base/util/now.js +7 -0
  253. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  254. package/dist/theming/CustomStyle.d.ts +6 -0
  255. package/dist/theming/CustomStyle.js +46 -17
  256. package/dist/theming/CustomStyle.js.map +1 -0
  257. package/dist/theming/ThemeLoaded.d.ts +5 -0
  258. package/dist/theming/ThemeLoaded.js +14 -0
  259. package/dist/theming/ThemeLoaded.js.map +1 -0
  260. package/dist/theming/ThemeRegistered.d.ts +4 -0
  261. package/dist/theming/ThemeRegistered.js +11 -0
  262. package/dist/theming/ThemeRegistered.js.map +1 -0
  263. package/dist/theming/applyTheme.d.ts +2 -0
  264. package/dist/theming/applyTheme.js +75 -0
  265. package/dist/theming/applyTheme.js.map +1 -0
  266. package/dist/theming/getConstructableStyle.d.ts +9 -0
  267. package/dist/theming/getConstructableStyle.js +25 -0
  268. package/dist/theming/getConstructableStyle.js.map +1 -0
  269. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  270. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  271. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  272. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  273. package/dist/theming/getEffectiveStyle.js +32 -0
  274. package/dist/theming/getEffectiveStyle.js.map +1 -0
  275. package/dist/theming/getStylesString.d.ts +3 -0
  276. package/dist/theming/getStylesString.js +11 -0
  277. package/dist/theming/getStylesString.js.map +1 -0
  278. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  279. package/dist/theming/getThemeDesignerTheme.js +80 -0
  280. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  281. package/dist/theming/preloadLinks.d.ts +3 -0
  282. package/dist/theming/preloadLinks.js +19 -0
  283. package/dist/theming/preloadLinks.js.map +1 -0
  284. package/dist/thirdparty/_merge.d.ts +2 -0
  285. package/dist/thirdparty/_merge.js +35 -0
  286. package/dist/thirdparty/_merge.js.map +1 -0
  287. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  288. package/dist/thirdparty/isPlainObject.js +19 -0
  289. package/dist/thirdparty/isPlainObject.js.map +1 -0
  290. package/dist/thirdparty/merge.d.ts +2 -0
  291. package/dist/thirdparty/merge.js +6 -0
  292. package/dist/thirdparty/merge.js.map +1 -0
  293. package/dist/types/AnimationMode.d.ts +32 -0
  294. package/dist/types/AnimationMode.js +33 -6
  295. package/dist/types/AnimationMode.js.map +1 -0
  296. package/dist/types/CSSColor.d.ts +15 -0
  297. package/dist/types/CSSColor.js +18 -0
  298. package/dist/types/CSSColor.js.map +1 -0
  299. package/dist/types/CalendarType.d.ts +37 -0
  300. package/dist/types/CalendarType.js +39 -0
  301. package/dist/types/CalendarType.js.map +1 -0
  302. package/dist/types/DOMReference.d.ts +17 -0
  303. package/dist/types/DOMReference.js +25 -0
  304. package/dist/types/DOMReference.js.map +1 -0
  305. package/dist/types/DataType.d.ts +25 -0
  306. package/dist/types/DataType.js +33 -14
  307. package/dist/types/DataType.js.map +1 -0
  308. package/dist/types/Float.d.ts +17 -0
  309. package/dist/types/Float.js +21 -0
  310. package/dist/types/Float.js.map +1 -0
  311. package/dist/types/Integer.d.ts +17 -0
  312. package/dist/types/Integer.js +17 -5
  313. package/dist/types/Integer.js.map +1 -0
  314. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  315. package/dist/types/InvisibleMessageMode.js +27 -0
  316. package/dist/types/InvisibleMessageMode.js.map +1 -0
  317. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  318. package/dist/types/ItemNavigationBehavior.js +22 -17
  319. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  320. package/dist/types/NavigationMode.d.ts +32 -0
  321. package/dist/types/NavigationMode.js +33 -5
  322. package/dist/types/NavigationMode.js.map +1 -0
  323. package/dist/types/ValueState.d.ts +42 -0
  324. package/dist/types/ValueState.js +41 -18
  325. package/dist/types/ValueState.js.map +1 -0
  326. package/dist/types.d.ts +18 -0
  327. package/dist/types.js +2 -0
  328. package/dist/types.js.map +1 -0
  329. package/dist/updateShadowRoot.d.ts +8 -0
  330. package/dist/updateShadowRoot.js +38 -0
  331. package/dist/updateShadowRoot.js.map +1 -0
  332. package/dist/util/AriaLabelHelper.d.ts +15 -0
  333. package/dist/util/AriaLabelHelper.js +171 -0
  334. package/dist/util/AriaLabelHelper.js.map +1 -0
  335. package/dist/util/Caret.d.ts +7 -0
  336. package/dist/util/Caret.js +23 -0
  337. package/dist/util/Caret.js.map +1 -0
  338. package/dist/util/ColorConversion.d.ts +30 -0
  339. package/dist/util/ColorConversion.js +337 -0
  340. package/dist/util/ColorConversion.js.map +1 -0
  341. package/dist/util/FetchHelper.d.ts +3 -0
  342. package/dist/util/FetchHelper.js +19 -25
  343. package/dist/util/FetchHelper.js.map +1 -0
  344. package/dist/util/FocusableElements.d.ts +4 -0
  345. package/dist/util/FocusableElements.js +67 -56
  346. package/dist/util/FocusableElements.js.map +1 -0
  347. package/dist/util/HTMLSanitizer.d.ts +3 -0
  348. package/dist/util/HTMLSanitizer.js +6 -0
  349. package/dist/util/HTMLSanitizer.js.map +1 -0
  350. package/dist/util/InvisibleMessage.d.ts +10 -0
  351. package/dist/util/InvisibleMessage.js +56 -0
  352. package/dist/util/InvisibleMessage.js.map +1 -0
  353. package/dist/util/PopupUtils.d.ts +7 -0
  354. package/dist/util/PopupUtils.js +74 -0
  355. package/dist/util/PopupUtils.js.map +1 -0
  356. package/dist/util/SlotsHelper.d.ts +9 -0
  357. package/dist/util/SlotsHelper.js +30 -0
  358. package/dist/util/SlotsHelper.js.map +1 -0
  359. package/dist/util/StringHelper.d.ts +3 -0
  360. package/dist/util/StringHelper.js +21 -9
  361. package/dist/util/StringHelper.js.map +1 -0
  362. package/dist/util/TabbableElements.d.ts +17 -0
  363. package/dist/util/TabbableElements.js +53 -40
  364. package/dist/util/TabbableElements.js.map +1 -0
  365. package/dist/util/arraysAreEqual.d.ts +2 -0
  366. package/dist/util/arraysAreEqual.js +13 -0
  367. package/dist/util/arraysAreEqual.js.map +1 -0
  368. package/dist/util/clamp.d.ts +9 -0
  369. package/dist/util/clamp.js +12 -0
  370. package/dist/util/clamp.js.map +1 -0
  371. package/dist/util/createLinkInHead.d.ts +7 -0
  372. package/dist/util/createLinkInHead.js +21 -0
  373. package/dist/util/createLinkInHead.js.map +1 -0
  374. package/dist/util/createStyleInHead.d.ts +8 -0
  375. package/dist/util/createStyleInHead.js +10 -10
  376. package/dist/util/createStyleInHead.js.map +1 -0
  377. package/dist/util/debounce.d.ts +2 -0
  378. package/dist/util/debounce.js +15 -0
  379. package/dist/util/debounce.js.map +1 -0
  380. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  381. package/dist/util/detectNavigatorLanguage.js +8 -9
  382. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  383. package/dist/util/escapeRegex.d.ts +8 -0
  384. package/dist/util/escapeRegex.js +11 -0
  385. package/dist/util/escapeRegex.js.map +1 -0
  386. package/dist/util/formatMessage.d.ts +2 -0
  387. package/dist/util/formatMessage.js +15 -19
  388. package/dist/util/formatMessage.js.map +1 -0
  389. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  390. package/dist/util/generateHighlightedMarkup.js +41 -0
  391. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  392. package/dist/util/getActiveElement.d.ts +2 -0
  393. package/dist/util/getActiveElement.js +9 -0
  394. package/dist/util/getActiveElement.js.map +1 -0
  395. package/dist/util/getClassCopy.d.ts +398 -0
  396. package/dist/util/getClassCopy.js +10 -0
  397. package/dist/util/getClassCopy.js.map +1 -0
  398. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  399. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  400. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  401. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  402. package/dist/util/getEffectiveContentDensity.js +4 -0
  403. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  404. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  405. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  406. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  407. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  408. package/dist/util/getFastNavigationGroups.js +51 -0
  409. package/dist/util/getFastNavigationGroups.js.map +1 -0
  410. package/dist/util/getFileExtension.d.ts +12 -0
  411. package/dist/util/getFileExtension.js +19 -0
  412. package/dist/util/getFileExtension.js.map +1 -0
  413. package/dist/util/getNormalizedTarget.d.ts +7 -0
  414. package/dist/util/getNormalizedTarget.js +14 -0
  415. package/dist/util/getNormalizedTarget.js.map +1 -0
  416. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  417. package/dist/util/getSingletonElementInstance.js +10 -0
  418. package/dist/util/getSingletonElementInstance.js.map +1 -0
  419. package/dist/util/isElementClickable.d.ts +2 -0
  420. package/dist/util/isElementClickable.js +16 -0
  421. package/dist/util/isElementClickable.js.map +1 -0
  422. package/dist/util/isElementHidden.d.ts +2 -0
  423. package/dist/util/isElementHidden.js +8 -0
  424. package/dist/util/isElementHidden.js.map +1 -0
  425. package/dist/util/isElementInView.d.ts +6 -0
  426. package/dist/util/isElementInView.js +12 -0
  427. package/dist/util/isElementInView.js.map +1 -0
  428. package/dist/util/isElementTabbable.d.ts +9 -0
  429. package/dist/util/isElementTabbable.js +30 -0
  430. package/dist/util/isElementTabbable.js.map +1 -0
  431. package/dist/util/isValidPropertyName.d.ts +8 -0
  432. package/dist/util/isValidPropertyName.js +20 -12
  433. package/dist/util/isValidPropertyName.js.map +1 -0
  434. package/dist/util/whenDOMReady.d.ts +2 -0
  435. package/dist/util/whenDOMReady.js +11 -10
  436. package/dist/util/whenDOMReady.js.map +1 -0
  437. package/dist/util/willShowContent.d.ts +2 -0
  438. package/dist/util/willShowContent.js +7 -0
  439. package/dist/util/willShowContent.js.map +1 -0
  440. package/dist/validateThemeRoot.d.ts +2 -0
  441. package/dist/validateThemeRoot.js +48 -0
  442. package/dist/validateThemeRoot.js.map +1 -0
  443. package/index.js +228 -2
  444. package/lib/generate-asset-parameters/index.js +27 -0
  445. package/lib/generate-styles/index.js +31 -0
  446. package/lib/generate-version-info/index.js +32 -0
  447. package/package-scripts.cjs +71 -0
  448. package/package.json +20 -13
  449. package/src/css/BusyIndicator.css +80 -0
  450. package/src/css/FontFace.css +66 -0
  451. package/src/css/OverrideFontFace.css +32 -0
  452. package/src/css/SystemCSSVars.css +17 -0
  453. package/src/renderer/directives/style-map.js +72 -0
  454. package/tsconfig.json +14 -0
  455. package/used-modules.txt +10 -0
  456. package/bundle.es5.js +0 -28
  457. package/config/rollup.config.js +0 -1
  458. package/config/wdio.conf.js +0 -1
  459. package/dist/Assets.js +0 -2
  460. package/dist/CSS.js +0 -48
  461. package/dist/FormatSettings.js +0 -31
  462. package/dist/Locale.js +0 -101
  463. package/dist/LocaleProvider.js +0 -34
  464. package/dist/RenderScheduler.js +0 -165
  465. package/dist/ResourceLoaderOverrides.js +0 -38
  466. package/dist/SVGIconRegistry.js +0 -54
  467. package/dist/animations/config.js +0 -5
  468. package/dist/boot.js +0 -25
  469. package/dist/compatibility/DOMObserver.js +0 -62
  470. package/dist/compatibility/patchNodeValue.js +0 -24
  471. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  472. package/dist/dates/CalendarDate.js +0 -203
  473. package/dist/dates/CalendarType.js +0 -22
  474. package/dist/dates/CalendarUtils.js +0 -99
  475. package/dist/delegate/CustomResize.js +0 -78
  476. package/dist/delegate/NativeResize.js +0 -44
  477. package/dist/events/PseudoEvents.js +0 -58
  478. package/dist/features/browsersupport/Edge.js +0 -6
  479. package/dist/features/browsersupport/IE11.js +0 -41
  480. package/dist/features/calendar/Buddhist.js +0 -1
  481. package/dist/features/calendar/Islamic.js +0 -1
  482. package/dist/features/calendar/Japanese.js +0 -1
  483. package/dist/features/calendar/Persian.js +0 -1
  484. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  485. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  486. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  487. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  488. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  489. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  490. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  491. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  492. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  493. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  494. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  495. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  496. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  497. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  498. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  499. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  500. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  501. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  502. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  503. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  504. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  505. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  506. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  507. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  508. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  509. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  510. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  511. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  512. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  513. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  514. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  515. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  516. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  517. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  518. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  519. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  520. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  521. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  522. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  523. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  524. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  525. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  526. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  527. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  528. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  529. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  530. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  531. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  532. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  533. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  534. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  535. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  536. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  537. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  538. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  539. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  540. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  541. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  542. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  543. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  544. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  545. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  546. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  547. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  548. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  549. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  550. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  551. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  552. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  553. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  554. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  555. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  556. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  557. package/dist/json-imports/LocaleData.js +0 -171
  558. package/dist/renderer/ifDefined.js +0 -21
  559. package/dist/resources/bundle.es5.js +0 -212
  560. package/dist/resources/bundle.es5.js.map +0 -1
  561. package/dist/resources/bundle.esm.js +0 -123
  562. package/dist/resources/bundle.esm.js.map +0 -1
  563. package/dist/shims/Core-shim.js +0 -52
  564. package/dist/shims/jquery-shim.js +0 -89
  565. package/dist/test-resources/assets/Themes.js +0 -11
  566. package/dist/test-resources/elements/Child.js +0 -35
  567. package/dist/test-resources/elements/Generic.js +0 -83
  568. package/dist/test-resources/elements/GenericExt.js +0 -26
  569. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  570. package/dist/test-resources/elements/Parent.js +0 -36
  571. package/dist/test-resources/pages/AllTestElements.html +0 -42
  572. package/dist/test-resources/pages/Configuration.html +0 -20
  573. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  574. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  575. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  576. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  577. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  578. package/dist/test-resources/specs/Theming.spec.js +0 -31
  579. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  580. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  581. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  582. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  583. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  584. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  585. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  586. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  587. package/dist/theming/StyleInjection.js +0 -67
  588. package/dist/thirdparty/Array.from.js +0 -16
  589. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  590. package/dist/thirdparty/Array.prototype.find.js +0 -46
  591. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  592. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  593. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  594. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  595. package/dist/thirdparty/Number.isInteger.js +0 -5
  596. package/dist/thirdparty/Number.isNaN.js +0 -1
  597. package/dist/thirdparty/Number.parseInt.js +0 -1
  598. package/dist/thirdparty/Object.assign.js +0 -31
  599. package/dist/thirdparty/Object.entries.js +0 -11
  600. package/dist/thirdparty/Symbol.js +0 -2
  601. package/dist/thirdparty/WeakSet.js +0 -27
  602. package/dist/thirdparty/events-polyfills.js +0 -89
  603. package/dist/thirdparty/fetch.js +0 -1
  604. package/dist/thirdparty/template.js +0 -600
  605. package/dist/types/CSSSize.js +0 -9
  606. package/dist/types/PopupState.js +0 -37
  607. package/dist/util/CSSTransformUtils.js +0 -90
  608. package/dist/util/isDescendantOf.js +0 -15
  609. package/dist/util/isNodeClickable.js +0 -19
  610. package/dist/util/isNodeHidden.js +0 -13
  611. package/dist/util/isNodeTabbable.js +0 -28
  612. package/dist/util/normalizeLocale.js +0 -77
  613. package/dist/webcomponentsjs/LICENSE.md +0 -19
  614. package/dist/webcomponentsjs/README.md +0 -229
  615. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  616. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  617. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  618. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  619. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  620. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  621. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  622. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  623. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  624. package/dist/webcomponentsjs/package.json +0 -46
  625. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  626. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  627. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  628. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  629. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  630. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  631. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  632. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  633. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  634. package/package-scripts.js +0 -42
  635. package/src/AssetRegistry.js +0 -9
  636. package/src/Assets.js +0 -2
  637. package/src/CSS.js +0 -48
  638. package/src/Device.js +0 -823
  639. package/src/EventProvider.js +0 -73
  640. package/src/FeaturesRegistry.js +0 -11
  641. package/src/FontFace.js +0 -66
  642. package/src/FormatSettings.js +0 -31
  643. package/src/InitialConfiguration.js +0 -119
  644. package/src/Locale.js +0 -101
  645. package/src/LocaleProvider.js +0 -34
  646. package/src/RenderQueue.js +0 -42
  647. package/src/RenderScheduler.js +0 -165
  648. package/src/ResourceLoaderOverrides.js +0 -38
  649. package/src/SVGIconRegistry.js +0 -54
  650. package/src/StaticArea.js +0 -41
  651. package/src/StaticAreaItem.js +0 -73
  652. package/src/Theming.js +0 -45
  653. package/src/UI5Element.js +0 -842
  654. package/src/UI5ElementMetadata.js +0 -148
  655. package/src/animations/AnimationQueue.js +0 -42
  656. package/src/animations/animate.js +0 -53
  657. package/src/animations/config.js +0 -5
  658. package/src/animations/scroll.js +0 -28
  659. package/src/animations/slideDown.js +0 -79
  660. package/src/animations/slideUp.js +0 -71
  661. package/src/asset-registries/Icons.js +0 -24
  662. package/src/asset-registries/LocaleData.js +0 -101
  663. package/src/asset-registries/Themes.js +0 -75
  664. package/src/asset-registries/i18n.js +0 -75
  665. package/src/boot.js +0 -25
  666. package/src/compatibility/DOMObserver.js +0 -62
  667. package/src/compatibility/patchNodeValue.js +0 -24
  668. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  669. package/src/config/AnimationMode.js +0 -9
  670. package/src/config/CalendarType.js +0 -18
  671. package/src/config/FormatSettings.js +0 -9
  672. package/src/config/Language.js +0 -9
  673. package/src/config/NoConflict.js +0 -44
  674. package/src/config/RTL.js +0 -31
  675. package/src/config/Theme.js +0 -24
  676. package/src/dates/CalendarDate.js +0 -203
  677. package/src/dates/CalendarType.js +0 -22
  678. package/src/dates/CalendarUtils.js +0 -99
  679. package/src/delegate/CustomResize.js +0 -78
  680. package/src/delegate/ItemNavigation.js +0 -278
  681. package/src/delegate/NativeResize.js +0 -44
  682. package/src/delegate/ResizeHandler.js +0 -66
  683. package/src/delegate/ScrollEnablement.js +0 -80
  684. package/src/events/PseudoEvents.js +0 -58
  685. package/src/features/browsersupport/Edge.js +0 -6
  686. package/src/features/browsersupport/IE11.js +0 -41
  687. package/src/features/calendar/Buddhist.js +0 -1
  688. package/src/features/calendar/Islamic.js +0 -1
  689. package/src/features/calendar/Japanese.js +0 -1
  690. package/src/features/calendar/Persian.js +0 -1
  691. package/src/i18nBundle.js +0 -35
  692. package/src/json-imports/LocaleData.js +0 -171
  693. package/src/renderer/LitRenderer.js +0 -15
  694. package/src/renderer/ifDefined.js +0 -21
  695. package/src/shims/Core-shim.js +0 -52
  696. package/src/shims/jquery-shim.js +0 -89
  697. package/src/theming/CustomStyle.js +0 -19
  698. package/src/theming/StyleInjection.js +0 -67
  699. package/src/thirdparty/Array.from.js +0 -16
  700. package/src/thirdparty/Array.prototype.fill.js +0 -44
  701. package/src/thirdparty/Array.prototype.find.js +0 -46
  702. package/src/thirdparty/Array.prototype.includes.js +0 -51
  703. package/src/thirdparty/Element.prototype.closest.js +0 -11
  704. package/src/thirdparty/Element.prototype.matches.js +0 -6
  705. package/src/thirdparty/Map.prototype.keys.js +0 -9
  706. package/src/thirdparty/Number.isInteger.js +0 -5
  707. package/src/thirdparty/Number.isNaN.js +0 -1
  708. package/src/thirdparty/Number.parseInt.js +0 -1
  709. package/src/thirdparty/Object.assign.js +0 -31
  710. package/src/thirdparty/Object.entries.js +0 -11
  711. package/src/thirdparty/Symbol.js +0 -2
  712. package/src/thirdparty/WeakSet.js +0 -27
  713. package/src/thirdparty/events-polyfills.js +0 -89
  714. package/src/thirdparty/fetch.js +0 -1
  715. package/src/thirdparty/template.js +0 -600
  716. package/src/types/AnimationMode.js +0 -7
  717. package/src/types/CSSSize.js +0 -9
  718. package/src/types/DataType.js +0 -25
  719. package/src/types/Integer.js +0 -9
  720. package/src/types/ItemNavigationBehavior.js +0 -21
  721. package/src/types/NavigationMode.js +0 -6
  722. package/src/types/PopupState.js +0 -37
  723. package/src/types/ValueState.js +0 -21
  724. package/src/util/CSSTransformUtils.js +0 -90
  725. package/src/util/FetchHelper.js +0 -31
  726. package/src/util/FocusableElements.js +0 -60
  727. package/src/util/StringHelper.js +0 -11
  728. package/src/util/TabbableElements.js +0 -44
  729. package/src/util/createStyleInHead.js +0 -18
  730. package/src/util/detectNavigatorLanguage.js +0 -11
  731. package/src/util/formatMessage.js +0 -23
  732. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  733. package/src/util/isDescendantOf.js +0 -15
  734. package/src/util/isNodeClickable.js +0 -19
  735. package/src/util/isNodeHidden.js +0 -13
  736. package/src/util/isNodeTabbable.js +0 -28
  737. package/src/util/isValidPropertyName.js +0 -20
  738. package/src/util/normalizeLocale.js +0 -77
  739. package/src/util/whenDOMReady.js +0 -13
  740. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -0,0 +1,85 @@
1
+ const flatstr = typeof window.chrome === "object" || typeof window.v8 === "object" ? (s, iConcatOps) => {
2
+ if (iConcatOps > 2 && 40 * iConcatOps > s.length) {
3
+ Number(s);
4
+ }
5
+ return s;
6
+ } : (s) => s;
7
+ const rLines = /(?:\r\n|\r|\n|^)[ \t\f]*/;
8
+ const rEscapesOrSeparator = /(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)|([ \t\f]*[ \t\f:=][ \t\f]*)/g;
9
+ const rEscapes = /(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)/g;
10
+ const mEscapes = {
11
+ "\\f": "\f",
12
+ "\\n": "\n",
13
+ "\\r": "\r",
14
+ "\\t": "\t",
15
+ };
16
+ /**
17
+ * Parses a .properties format
18
+ * @param {string} sText the contents a of a .properties file
19
+ * @returns a object with key/value pairs parsed from the .properties file format
20
+ * @public
21
+ */
22
+ const parseProperties = (sText) => {
23
+ const properties = {}, aLines = sText.split(rLines);
24
+ let sLine, rMatcher, sKey, sValue, i, m, iLastIndex, iConcatOps;
25
+ const append = (s) => {
26
+ if (sValue) {
27
+ sValue = `${sValue}${s}`;
28
+ iConcatOps++;
29
+ }
30
+ else {
31
+ sValue = s;
32
+ iConcatOps = 0;
33
+ }
34
+ };
35
+ for (i = 0; i < aLines.length; i++) {
36
+ sLine = aLines[i];
37
+ const skipLine = sLine === "" || sLine.charAt(0) === "#" || sLine.charAt(0) === "!";
38
+ if (!skipLine) {
39
+ rMatcher = rEscapesOrSeparator;
40
+ iLastIndex = 0;
41
+ rMatcher.lastIndex = iLastIndex;
42
+ sKey = null;
43
+ sValue = "";
44
+ m = rMatcher.exec(sLine);
45
+ while (m !== null) {
46
+ if (iLastIndex < m.index) {
47
+ append(sLine.slice(iLastIndex, m.index));
48
+ }
49
+ iLastIndex = rMatcher.lastIndex;
50
+ if (m[1]) {
51
+ if (m[1].length !== 6) {
52
+ throw new Error(`Incomplete Unicode Escape '${m[1]}'`);
53
+ }
54
+ append(String.fromCharCode(parseInt(m[1].slice(2), 16)));
55
+ }
56
+ else if (m[2]) {
57
+ append(mEscapes[m[2]] || m[2].slice(1));
58
+ }
59
+ else if (m[3]) {
60
+ sLine = aLines[++i];
61
+ iLastIndex = 0;
62
+ rMatcher.lastIndex = iLastIndex;
63
+ }
64
+ else if (m[4]) {
65
+ sKey = sValue;
66
+ sValue = "";
67
+ rMatcher = rEscapes;
68
+ rMatcher.lastIndex = iLastIndex;
69
+ }
70
+ m = rMatcher.exec(sLine);
71
+ }
72
+ if (iLastIndex < sLine.length) {
73
+ append(sLine.slice(iLastIndex));
74
+ }
75
+ if (sKey == null) {
76
+ sKey = sValue;
77
+ sValue = "";
78
+ }
79
+ properties[sKey] = flatstr(sValue, sValue ? iConcatOps : 0);
80
+ }
81
+ }
82
+ return properties;
83
+ };
84
+ export default parseProperties;
85
+ //# sourceMappingURL=PropertiesFileFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesFileFormat.js","sourceRoot":"","sources":["../src/PropertiesFileFormat.ts"],"names":[],"mappings":"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","sourcesContent":["const flatstr = typeof window.chrome === \"object\" || typeof window.v8 === \"object\" ? (s: string, iConcatOps: number) => {\n\tif (iConcatOps > 2 && 40 * iConcatOps > s.length) {\n\t\tNumber(s);\n\t}\n\treturn s;\n} : (s: string) => s;\n\nconst rLines = /(?:\\r\\n|\\r|\\n|^)[ \\t\\f]*/;\nconst rEscapesOrSeparator = /(\\\\u[0-9a-fA-F]{0,4})|(\\\\.)|(\\\\$)|([ \\t\\f]*[ \\t\\f:=][ \\t\\f]*)/g;\nconst rEscapes = /(\\\\u[0-9a-fA-F]{0,4})|(\\\\.)|(\\\\$)/g;\nconst mEscapes = {\n\t\"\\\\f\": \"\\f\",\n\t\"\\\\n\": \"\\n\",\n\t\"\\\\r\": \"\\r\",\n\t\"\\\\t\": \"\\t\",\n};\n\n/**\n * Parses a .properties format\n * @param {string} sText the contents a of a .properties file\n * @returns a object with key/value pairs parsed from the .properties file format\n * @public\n */\nconst parseProperties = (sText: string) => {\n\tconst properties = {},\n\t\taLines = sText.split(rLines);\n\n\tlet sLine,\n\t\trMatcher,\n\t\tsKey,\n\t\tsValue: string,\n\t\ti,\n\t\tm,\n\t\tiLastIndex,\n\t\tiConcatOps: number;\n\n\tconst append = (s: string) => {\n\t\tif (sValue) {\n\t\t\tsValue = `${sValue}${s}`;\n\t\t\tiConcatOps++;\n\t\t} else {\n\t\t\tsValue = s;\n\t\t\tiConcatOps = 0;\n\t\t}\n\t};\n\n\tfor (i = 0; i < aLines.length; i++) {\n\t\tsLine = aLines[i];\n\t\tconst skipLine = sLine === \"\" || sLine.charAt(0) === \"#\" || sLine.charAt(0) === \"!\";\n\n\t\tif (!skipLine) {\n\t\t\trMatcher = rEscapesOrSeparator;\n\t\t\tiLastIndex = 0;\n\t\t\trMatcher.lastIndex = iLastIndex;\n\t\t\tsKey = null;\n\t\t\tsValue = \"\";\n\t\t\tm = rMatcher.exec(sLine);\n\t\t\twhile (m !== null) {\n\t\t\t\tif (iLastIndex < m.index) {\n\t\t\t\t\tappend(sLine.slice(iLastIndex, m.index));\n\t\t\t\t}\n\t\t\t\tiLastIndex = rMatcher.lastIndex;\n\t\t\t\tif (m[1]) {\n\t\t\t\t\tif (m[1].length !== 6) {\n\t\t\t\t\t\tthrow new Error(`Incomplete Unicode Escape '${m[1]}'`);\n\t\t\t\t\t}\n\t\t\t\t\tappend(String.fromCharCode(parseInt(m[1].slice(2), 16)));\n\t\t\t\t} else if (m[2]) {\n\t\t\t\t\tappend(mEscapes[m[2] as keyof typeof mEscapes] || m[2].slice(1));\n\t\t\t\t} else if (m[3]) {\n\t\t\t\t\tsLine = aLines[++i];\n\t\t\t\t\tiLastIndex = 0;\n\t\t\t\t\trMatcher.lastIndex = iLastIndex;\n\t\t\t\t} else if (m[4]) {\n\t\t\t\t\tsKey = sValue;\n\t\t\t\t\tsValue = \"\";\n\t\t\t\t\trMatcher = rEscapes;\n\t\t\t\t\trMatcher.lastIndex = iLastIndex;\n\t\t\t\t}\n\t\t\t\tm = rMatcher.exec(sLine);\n\t\t\t}\n\t\t\tif (iLastIndex < sLine.length) {\n\t\t\t\tappend(sLine.slice(iLastIndex));\n\t\t\t}\n\t\t\tif (sKey == null) {\n\t\t\t\tsKey = sValue;\n\t\t\t\tsValue = \"\";\n\t\t\t}\n\t\t\t(properties as Record<string, any>)[sKey] = flatstr(sValue, sValue ? iConcatOps! : 0);\n\t\t}\n\t}\n\treturn properties;\n};\n\nexport default parseProperties;\n"]}
@@ -0,0 +1,47 @@
1
+ import type UI5Element from "./UI5Element.js";
2
+ type BeforeComponentRenderCallback = (webComponent: UI5Element) => void;
3
+ /**
4
+ * Schedules a render task (if not already scheduled) to render the component
5
+ *
6
+ * @param webComponent
7
+ * @returns {Promise}
8
+ */
9
+ declare const renderDeferred: (webComponent: UI5Element) => Promise<void>;
10
+ /**
11
+ * Renders a component synchronously and adds it to the registry of rendered components
12
+ *
13
+ * @param webComponent
14
+ */
15
+ declare const renderImmediately: (webComponent: UI5Element) => void;
16
+ /**
17
+ * Cancels the rendering of a component, if awaiting to be rendered, and removes it from the registry of rendered components
18
+ *
19
+ * @param webComponent
20
+ */
21
+ declare const cancelRender: (webComponent: UI5Element) => void;
22
+ declare const renderFinished: () => Promise<void>;
23
+ /**
24
+ * Re-renders all UI5 Elements on the page, with the option to specify filters to rerender only some components.
25
+ *
26
+ * Usage:
27
+ * reRenderAllUI5Elements() -> re-renders all components
28
+ * reRenderAllUI5Elements({tag: "ui5-button"}) -> re-renders only instances of ui5-button
29
+ * reRenderAllUI5Elements({rtlAware: true}) -> re-renders only rtlAware components
30
+ * reRenderAllUI5Elements({languageAware: true}) -> re-renders only languageAware components
31
+ * reRenderAllUI5Elements({themeAware: true}) -> re-renders only themeAware components
32
+ * reRenderAllUI5Elements({rtlAware: true, languageAware: true}) -> re-renders components that are rtlAware or languageAware
33
+ * etc...
34
+ *
35
+ * @public
36
+ * @param {object|undefined} filters - Object with keys that can be "rtlAware" or "languageAware"
37
+ * @returns {Promise<void>}
38
+ */
39
+ declare const reRenderAllUI5Elements: (filters?: {
40
+ tag?: string;
41
+ rtlAware?: boolean;
42
+ languageAware?: boolean;
43
+ themeAware?: boolean;
44
+ }) => Promise<void>;
45
+ declare const attachBeforeComponentRender: (listener: BeforeComponentRenderCallback) => void;
46
+ declare const detachBeforeComponentRender: (listener: BeforeComponentRenderCallback) => void;
47
+ export { renderDeferred, renderImmediately, cancelRender, renderFinished, reRenderAllUI5Elements, attachBeforeComponentRender, detachBeforeComponentRender, };
package/dist/Render.js ADDED
@@ -0,0 +1,143 @@
1
+ import EventProvider from "./EventProvider.js";
2
+ import RenderQueue from "./RenderQueue.js";
3
+ import { getAllRegisteredTags } from "./CustomElementsRegistry.js";
4
+ import { isRtlAware } from "./locale/RTLAwareRegistry.js";
5
+ const registeredElements = new Set();
6
+ const eventProvider = new EventProvider();
7
+ const invalidatedWebComponents = new RenderQueue(); // Queue for invalidated web components
8
+ let renderTaskPromise, renderTaskPromiseResolve;
9
+ let mutationObserverTimer;
10
+ let queuePromise;
11
+ /**
12
+ * Schedules a render task (if not already scheduled) to render the component
13
+ *
14
+ * @param webComponent
15
+ * @returns {Promise}
16
+ */
17
+ const renderDeferred = async (webComponent) => {
18
+ // Enqueue the web component
19
+ invalidatedWebComponents.add(webComponent);
20
+ // Schedule a rendering task
21
+ await scheduleRenderTask();
22
+ };
23
+ /**
24
+ * Renders a component synchronously and adds it to the registry of rendered components
25
+ *
26
+ * @param webComponent
27
+ */
28
+ const renderImmediately = (webComponent) => {
29
+ eventProvider.fireEvent("beforeComponentRender", webComponent);
30
+ registeredElements.add(webComponent);
31
+ webComponent._render();
32
+ };
33
+ /**
34
+ * Cancels the rendering of a component, if awaiting to be rendered, and removes it from the registry of rendered components
35
+ *
36
+ * @param webComponent
37
+ */
38
+ const cancelRender = (webComponent) => {
39
+ invalidatedWebComponents.remove(webComponent);
40
+ registeredElements.delete(webComponent);
41
+ };
42
+ /**
43
+ * Schedules a rendering task, if not scheduled already
44
+ */
45
+ const scheduleRenderTask = async () => {
46
+ if (!queuePromise) {
47
+ queuePromise = new Promise(resolve => {
48
+ window.requestAnimationFrame(() => {
49
+ // Render all components in the queue
50
+ // console.log(`--------------------RENDER TASK START------------------------------`); // eslint-disable-line
51
+ invalidatedWebComponents.process(renderImmediately);
52
+ // console.log(`--------------------RENDER TASK END------------------------------`); // eslint-disable-line
53
+ // Resolve the promise so that callers of renderDeferred can continue
54
+ queuePromise = null;
55
+ resolve();
56
+ // Wait for Mutation observer before the render task is considered finished
57
+ if (!mutationObserverTimer) {
58
+ mutationObserverTimer = setTimeout(() => {
59
+ mutationObserverTimer = undefined;
60
+ if (invalidatedWebComponents.isEmpty()) {
61
+ _resolveTaskPromise();
62
+ }
63
+ }, 200);
64
+ }
65
+ });
66
+ });
67
+ }
68
+ await queuePromise;
69
+ };
70
+ /**
71
+ * return a promise that will be resolved once all invalidated web components are rendered
72
+ */
73
+ const whenDOMUpdated = () => {
74
+ if (renderTaskPromise) {
75
+ return renderTaskPromise;
76
+ }
77
+ renderTaskPromise = new Promise(resolve => {
78
+ renderTaskPromiseResolve = resolve;
79
+ window.requestAnimationFrame(() => {
80
+ if (invalidatedWebComponents.isEmpty()) {
81
+ renderTaskPromise = undefined;
82
+ resolve();
83
+ }
84
+ });
85
+ });
86
+ return renderTaskPromise;
87
+ };
88
+ const whenAllCustomElementsAreDefined = () => {
89
+ const definedPromises = getAllRegisteredTags().map(tag => customElements.whenDefined(tag));
90
+ return Promise.all(definedPromises);
91
+ };
92
+ const renderFinished = async () => {
93
+ await whenAllCustomElementsAreDefined();
94
+ await whenDOMUpdated();
95
+ };
96
+ const _resolveTaskPromise = () => {
97
+ if (!invalidatedWebComponents.isEmpty()) {
98
+ // More updates are pending. Resolve will be called again
99
+ return;
100
+ }
101
+ if (renderTaskPromiseResolve) {
102
+ renderTaskPromiseResolve();
103
+ renderTaskPromiseResolve = undefined;
104
+ renderTaskPromise = undefined;
105
+ }
106
+ };
107
+ /**
108
+ * Re-renders all UI5 Elements on the page, with the option to specify filters to rerender only some components.
109
+ *
110
+ * Usage:
111
+ * reRenderAllUI5Elements() -> re-renders all components
112
+ * reRenderAllUI5Elements({tag: "ui5-button"}) -> re-renders only instances of ui5-button
113
+ * reRenderAllUI5Elements({rtlAware: true}) -> re-renders only rtlAware components
114
+ * reRenderAllUI5Elements({languageAware: true}) -> re-renders only languageAware components
115
+ * reRenderAllUI5Elements({themeAware: true}) -> re-renders only themeAware components
116
+ * reRenderAllUI5Elements({rtlAware: true, languageAware: true}) -> re-renders components that are rtlAware or languageAware
117
+ * etc...
118
+ *
119
+ * @public
120
+ * @param {object|undefined} filters - Object with keys that can be "rtlAware" or "languageAware"
121
+ * @returns {Promise<void>}
122
+ */
123
+ const reRenderAllUI5Elements = async (filters) => {
124
+ registeredElements.forEach((element) => {
125
+ const ctor = element.constructor;
126
+ const tag = ctor.getMetadata().getTag();
127
+ const rtlAware = isRtlAware(ctor);
128
+ const languageAware = ctor.getMetadata().isLanguageAware();
129
+ const themeAware = ctor.getMetadata().isThemeAware();
130
+ if (!filters || (filters.tag === tag) || (filters.rtlAware && rtlAware) || (filters.languageAware && languageAware) || (filters.themeAware && themeAware)) {
131
+ renderDeferred(element);
132
+ }
133
+ });
134
+ await renderFinished();
135
+ };
136
+ const attachBeforeComponentRender = (listener) => {
137
+ eventProvider.attachEvent("beforeComponentRender", listener);
138
+ };
139
+ const detachBeforeComponentRender = (listener) => {
140
+ eventProvider.detachEvent("beforeComponentRender", listener);
141
+ };
142
+ export { renderDeferred, renderImmediately, cancelRender, renderFinished, reRenderAllUI5Elements, attachBeforeComponentRender, detachBeforeComponentRender, };
143
+ //# sourceMappingURL=Render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Render.js","sourceRoot":"","sources":["../src/Render.ts"],"names":[],"mappings":"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","sourcesContent":["import EventProvider from \"./EventProvider.js\";\nimport RenderQueue from \"./RenderQueue.js\";\nimport { getAllRegisteredTags } from \"./CustomElementsRegistry.js\";\nimport { isRtlAware } from \"./locale/RTLAwareRegistry.js\";\nimport type UI5Element from \"./UI5Element.js\";\nimport { PromiseResolve, Timeout } from \"./types.js\";\n\ntype BeforeComponentRenderCallback = (webComponent: UI5Element) => void;\n\nconst registeredElements = new Set<UI5Element>();\nconst eventProvider = new EventProvider<UI5Element, void>();\n\nconst invalidatedWebComponents = new RenderQueue(); // Queue for invalidated web components\n\nlet renderTaskPromise: Promise<void> | undefined,\n\trenderTaskPromiseResolve: PromiseResolve | undefined;\n\nlet mutationObserverTimer: Timeout | undefined;\n\nlet queuePromise: Promise<void> | null;\n\n/**\n * Schedules a render task (if not already scheduled) to render the component\n *\n * @param webComponent\n * @returns {Promise}\n */\nconst renderDeferred = async (webComponent: UI5Element) => {\n\t// Enqueue the web component\n\tinvalidatedWebComponents.add(webComponent);\n\n\t// Schedule a rendering task\n\tawait scheduleRenderTask();\n};\n\n/**\n * Renders a component synchronously and adds it to the registry of rendered components\n *\n * @param webComponent\n */\nconst renderImmediately = (webComponent: UI5Element) => {\n\teventProvider.fireEvent(\"beforeComponentRender\", webComponent);\n\tregisteredElements.add(webComponent);\n\twebComponent._render();\n};\n\n/**\n * Cancels the rendering of a component, if awaiting to be rendered, and removes it from the registry of rendered components\n *\n * @param webComponent\n */\nconst cancelRender = (webComponent: UI5Element) => {\n\tinvalidatedWebComponents.remove(webComponent);\n\tregisteredElements.delete(webComponent);\n};\n\n/**\n * Schedules a rendering task, if not scheduled already\n */\nconst scheduleRenderTask = async () => {\n\tif (!queuePromise) {\n\t\tqueuePromise = new Promise<void>(resolve => {\n\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\t// Render all components in the queue\n\n\t\t\t\t// console.log(`--------------------RENDER TASK START------------------------------`); // eslint-disable-line\n\t\t\t\tinvalidatedWebComponents.process(renderImmediately);\n\t\t\t\t// console.log(`--------------------RENDER TASK END------------------------------`); // eslint-disable-line\n\n\t\t\t\t// Resolve the promise so that callers of renderDeferred can continue\n\t\t\t\tqueuePromise = null;\n\t\t\t\tresolve();\n\n\t\t\t\t// Wait for Mutation observer before the render task is considered finished\n\t\t\t\tif (!mutationObserverTimer) {\n\t\t\t\t\tmutationObserverTimer = setTimeout(() => {\n\t\t\t\t\t\tmutationObserverTimer = undefined;\n\t\t\t\t\t\tif (invalidatedWebComponents.isEmpty()) {\n\t\t\t\t\t\t\t_resolveTaskPromise();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 200);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tawait queuePromise;\n};\n\n/**\n * return a promise that will be resolved once all invalidated web components are rendered\n */\nconst whenDOMUpdated = () => {\n\tif (renderTaskPromise) {\n\t\treturn renderTaskPromise;\n\t}\n\n\trenderTaskPromise = new Promise<void>(resolve => {\n\t\trenderTaskPromiseResolve = resolve;\n\t\twindow.requestAnimationFrame(() => {\n\t\t\tif (invalidatedWebComponents.isEmpty()) {\n\t\t\t\trenderTaskPromise = undefined;\n\t\t\t\tresolve();\n\t\t\t}\n\t\t});\n\t});\n\n\treturn renderTaskPromise;\n};\n\nconst whenAllCustomElementsAreDefined = () => {\n\tconst definedPromises = getAllRegisteredTags().map(tag => customElements.whenDefined(tag));\n\treturn Promise.all(definedPromises);\n};\n\nconst renderFinished = async () => {\n\tawait whenAllCustomElementsAreDefined();\n\tawait whenDOMUpdated();\n};\n\nconst _resolveTaskPromise = () => {\n\tif (!invalidatedWebComponents.isEmpty()) {\n\t\t// More updates are pending. Resolve will be called again\n\t\treturn;\n\t}\n\n\tif (renderTaskPromiseResolve) {\n\t\trenderTaskPromiseResolve();\n\t\trenderTaskPromiseResolve = undefined;\n\t\trenderTaskPromise = undefined;\n\t}\n};\n\n/**\n * Re-renders all UI5 Elements on the page, with the option to specify filters to rerender only some components.\n *\n * Usage:\n * reRenderAllUI5Elements() -> re-renders all components\n * reRenderAllUI5Elements({tag: \"ui5-button\"}) -> re-renders only instances of ui5-button\n * reRenderAllUI5Elements({rtlAware: true}) -> re-renders only rtlAware components\n * reRenderAllUI5Elements({languageAware: true}) -> re-renders only languageAware components\n * reRenderAllUI5Elements({themeAware: true}) -> re-renders only themeAware components\n * reRenderAllUI5Elements({rtlAware: true, languageAware: true}) -> re-renders components that are rtlAware or languageAware\n * etc...\n *\n * @public\n * @param {object|undefined} filters - Object with keys that can be \"rtlAware\" or \"languageAware\"\n * @returns {Promise<void>}\n */\nconst reRenderAllUI5Elements = async (filters?: {tag?: string, rtlAware?: boolean, languageAware?: boolean, themeAware?: boolean}) => {\n\tregisteredElements.forEach((element: UI5Element) => {\n\t\tconst ctor = element.constructor as typeof UI5Element;\n\t\tconst tag = ctor.getMetadata().getTag();\n\t\tconst rtlAware = isRtlAware(ctor);\n\t\tconst languageAware = ctor.getMetadata().isLanguageAware();\n\t\tconst themeAware = ctor.getMetadata().isThemeAware();\n\t\tif (!filters || (filters.tag === tag) || (filters.rtlAware && rtlAware) || (filters.languageAware && languageAware) || (filters.themeAware && themeAware)) {\n\t\t\trenderDeferred(element);\n\t\t}\n\t});\n\tawait renderFinished();\n};\n\nconst attachBeforeComponentRender = (listener: BeforeComponentRenderCallback) => {\n\teventProvider.attachEvent(\"beforeComponentRender\", listener);\n};\n\nconst detachBeforeComponentRender = (listener: BeforeComponentRenderCallback) => {\n\teventProvider.detachEvent(\"beforeComponentRender\", listener);\n};\n\nexport {\n\trenderDeferred,\n\trenderImmediately,\n\tcancelRender,\n\trenderFinished,\n\treRenderAllUI5Elements,\n\tattachBeforeComponentRender,\n\tdetachBeforeComponentRender,\n};\n"]}
@@ -0,0 +1,19 @@
1
+ import type UI5Element from "./UI5Element.js";
2
+ declare class RenderQueue {
3
+ list: Array<UI5Element>;
4
+ lookup: Set<UI5Element>;
5
+ constructor();
6
+ add(webComponent: UI5Element): void;
7
+ remove(webComponent: UI5Element): void;
8
+ shift(): UI5Element | undefined;
9
+ isEmpty(): boolean;
10
+ isAdded(webComponent: UI5Element): boolean;
11
+ /**
12
+ * Processes the whole queue by executing the callback on each component,
13
+ * while also imposing restrictions on how many times a component may be processed.
14
+ *
15
+ * @param callback - function with one argument (the web component to be processed)
16
+ */
17
+ process(callback: (el: UI5Element) => void): void;
18
+ }
19
+ export default RenderQueue;
@@ -1,42 +1,56 @@
1
+ const MAX_PROCESS_COUNT = 10;
1
2
  class RenderQueue {
2
- constructor() {
3
- this.list = []; // Used to store the web components in order
4
- this.promises = new Map(); // Used to store promises for web component rendering
5
- }
6
-
7
- add(webComponent) {
8
- if (this.promises.has(webComponent)) {
9
- return this.promises.get(webComponent);
10
- }
11
-
12
- let deferredResolve;
13
- const promise = new Promise(resolve => {
14
- deferredResolve = resolve;
15
- });
16
- promise._deferredResolve = deferredResolve;
17
-
18
- this.list.push(webComponent);
19
- this.promises.set(webComponent, promise);
20
-
21
- return promise;
22
- }
23
-
24
- shift() {
25
- const webComponent = this.list.shift();
26
- if (webComponent) {
27
- const promise = this.promises.get(webComponent);
28
- this.promises.delete(webComponent);
29
- return { webComponent, promise };
30
- }
31
- }
32
-
33
- getList() {
34
- return this.list;
35
- }
36
-
37
- isAdded(webComponent) {
38
- return this.promises.has(webComponent);
39
- }
3
+ constructor() {
4
+ this.list = []; // Used to store the web components in order
5
+ this.lookup = new Set(); // Used for faster search
6
+ }
7
+ add(webComponent) {
8
+ if (this.lookup.has(webComponent)) {
9
+ return;
10
+ }
11
+ this.list.push(webComponent);
12
+ this.lookup.add(webComponent);
13
+ }
14
+ remove(webComponent) {
15
+ if (!this.lookup.has(webComponent)) {
16
+ return;
17
+ }
18
+ this.list = this.list.filter(item => item !== webComponent);
19
+ this.lookup.delete(webComponent);
20
+ }
21
+ shift() {
22
+ const webComponent = this.list.shift();
23
+ if (webComponent) {
24
+ this.lookup.delete(webComponent);
25
+ return webComponent;
26
+ }
27
+ }
28
+ isEmpty() {
29
+ return this.list.length === 0;
30
+ }
31
+ isAdded(webComponent) {
32
+ return this.lookup.has(webComponent);
33
+ }
34
+ /**
35
+ * Processes the whole queue by executing the callback on each component,
36
+ * while also imposing restrictions on how many times a component may be processed.
37
+ *
38
+ * @param callback - function with one argument (the web component to be processed)
39
+ */
40
+ process(callback) {
41
+ let webComponent;
42
+ const stats = new Map();
43
+ webComponent = this.shift();
44
+ while (webComponent) {
45
+ const timesProcessed = stats.get(webComponent) || 0;
46
+ if (timesProcessed > MAX_PROCESS_COUNT) {
47
+ throw new Error(`Web component processed too many times this task, max allowed is: ${MAX_PROCESS_COUNT}`);
48
+ }
49
+ callback(webComponent);
50
+ stats.set(webComponent, timesProcessed + 1);
51
+ webComponent = this.shift();
52
+ }
53
+ }
40
54
  }
41
-
42
55
  export default RenderQueue;
56
+ //# sourceMappingURL=RenderQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderQueue.js","sourceRoot":"","sources":["../src/RenderQueue.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,WAAW;IAIhB;QACC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,4CAA4C;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,yBAAyB;IACnD,CAAC;IAED,GAAG,CAAC,YAAwB;QAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAClC,OAAO;SACP;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,YAAwB;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACnC,OAAO;SACP;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,KAAK;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,YAAY,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,YAAY,CAAC;SACpB;IACF,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,YAAwB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAAkC;QACzC,IAAI,YAAY,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;QAE5C,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,YAAY,EAAE;YACpB,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,cAAc,GAAG,iBAAiB,EAAE;gBACvC,MAAM,IAAI,KAAK,CAAC,qEAAqE,iBAAiB,EAAE,CAAC,CAAC;aAC1G;YACD,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvB,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;YAC5C,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;SAC5B;IACF,CAAC;CACD;AAED,eAAe,WAAW,CAAC","sourcesContent":["import type UI5Element from \"./UI5Element.js\";\n\nconst MAX_PROCESS_COUNT = 10;\n\nclass RenderQueue {\n\tlist: Array<UI5Element>;\n\tlookup: Set<UI5Element>;\n\n\tconstructor() {\n\t\tthis.list = []; // Used to store the web components in order\n\t\tthis.lookup = new Set(); // Used for faster search\n\t}\n\n\tadd(webComponent: UI5Element) {\n\t\tif (this.lookup.has(webComponent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.list.push(webComponent);\n\t\tthis.lookup.add(webComponent);\n\t}\n\n\tremove(webComponent: UI5Element) {\n\t\tif (!this.lookup.has(webComponent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.list = this.list.filter(item => item !== webComponent);\n\t\tthis.lookup.delete(webComponent);\n\t}\n\n\tshift() {\n\t\tconst webComponent = this.list.shift();\n\t\tif (webComponent) {\n\t\t\tthis.lookup.delete(webComponent);\n\t\t\treturn webComponent;\n\t\t}\n\t}\n\n\tisEmpty() {\n\t\treturn this.list.length === 0;\n\t}\n\n\tisAdded(webComponent: UI5Element) {\n\t\treturn this.lookup.has(webComponent);\n\t}\n\n\t/**\n\t * Processes the whole queue by executing the callback on each component,\n\t * while also imposing restrictions on how many times a component may be processed.\n\t *\n\t * @param callback - function with one argument (the web component to be processed)\n\t */\n\tprocess(callback: (el: UI5Element) => void) {\n\t\tlet webComponent;\n\t\tconst stats = new Map<UI5Element, number>();\n\n\t\twebComponent = this.shift();\n\t\twhile (webComponent) {\n\t\t\tconst timesProcessed = stats.get(webComponent) || 0;\n\t\t\tif (timesProcessed > MAX_PROCESS_COUNT) {\n\t\t\t\tthrow new Error(`Web component processed too many times this task, max allowed is: ${MAX_PROCESS_COUNT}`);\n\t\t\t}\n\t\t\tcallback(webComponent);\n\t\t\tstats.set(webComponent, timesProcessed + 1);\n\t\t\twebComponent = this.shift();\n\t\t}\n\t}\n}\n\nexport default RenderQueue;\n"]}
@@ -0,0 +1,27 @@
1
+ type RuntimeData = VersionInfo & {
2
+ alias: string;
3
+ description: string;
4
+ };
5
+ /**
6
+ * Registers the current runtime in the shared runtimes resource registry
7
+ */
8
+ declare const registerCurrentRuntime: () => void;
9
+ /**
10
+ * Returns the index of the current runtime's object in the shared runtimes resource registry
11
+ * @returns {*}
12
+ */
13
+ declare const getCurrentRuntimeIndex: () => number;
14
+ /**
15
+ * Compares two runtimes and returns 1 if the first is of a bigger version, -1 if the second is of a bigger version, and 0 if equal
16
+ * @param index1 The index of the first runtime to compare
17
+ * @param index2 The index of the second runtime to compare
18
+ * @returns {number}
19
+ */
20
+ declare const compareRuntimes: (index1: number, index2: number) => number;
21
+ /**
22
+ * Set an alias for the the current app/library/microfrontend which will appear in debug messages and console warnings
23
+ * @param alias
24
+ */
25
+ declare const setRuntimeAlias: (alias: string) => void;
26
+ declare const getAllRuntimes: () => RuntimeData[];
27
+ export { getCurrentRuntimeIndex, registerCurrentRuntime, compareRuntimes, setRuntimeAlias, getAllRuntimes, };
@@ -0,0 +1,86 @@
1
+ import VersionInfo from "./generated/VersionInfo.js";
2
+ import getSharedResource from "./getSharedResource.js";
3
+ let currentRuntimeIndex;
4
+ let currentRuntimeAlias = "";
5
+ const compareCache = new Map();
6
+ /**
7
+ * Central registry where all runtimes register themselves by pushing an object.
8
+ * The index in the registry servers as an ID for the runtime.
9
+ * @type {*}
10
+ */
11
+ const Runtimes = getSharedResource("Runtimes", []);
12
+ /**
13
+ * Registers the current runtime in the shared runtimes resource registry
14
+ */
15
+ const registerCurrentRuntime = () => {
16
+ if (currentRuntimeIndex === undefined) {
17
+ currentRuntimeIndex = Runtimes.length;
18
+ const versionInfo = VersionInfo;
19
+ Runtimes.push({
20
+ ...versionInfo,
21
+ alias: currentRuntimeAlias,
22
+ description: `Runtime ${currentRuntimeIndex} - ver ${versionInfo.version}${currentRuntimeAlias ? ` (${currentRuntimeAlias})` : ""}`,
23
+ });
24
+ }
25
+ };
26
+ /**
27
+ * Returns the index of the current runtime's object in the shared runtimes resource registry
28
+ * @returns {*}
29
+ */
30
+ const getCurrentRuntimeIndex = () => {
31
+ return currentRuntimeIndex;
32
+ };
33
+ /**
34
+ * Compares two runtimes and returns 1 if the first is of a bigger version, -1 if the second is of a bigger version, and 0 if equal
35
+ * @param index1 The index of the first runtime to compare
36
+ * @param index2 The index of the second runtime to compare
37
+ * @returns {number}
38
+ */
39
+ const compareRuntimes = (index1, index2) => {
40
+ const cacheIndex = `${index1},${index2}`;
41
+ if (compareCache.has(cacheIndex)) {
42
+ return compareCache.get(cacheIndex);
43
+ }
44
+ const runtime1 = Runtimes[index1];
45
+ const runtime2 = Runtimes[index2];
46
+ if (!runtime1 || !runtime2) {
47
+ throw new Error("Invalid runtime index supplied");
48
+ }
49
+ // If any of the two is a next version, bigger buildTime wins
50
+ if (runtime1.isNext || runtime2.isNext) {
51
+ return runtime1.buildTime - runtime2.buildTime;
52
+ }
53
+ // If major versions differ, bigger one wins
54
+ const majorDiff = runtime1.major - runtime2.major;
55
+ if (majorDiff) {
56
+ return majorDiff;
57
+ }
58
+ // If minor versions differ, bigger one wins
59
+ const minorDiff = runtime1.minor - runtime2.minor;
60
+ if (minorDiff) {
61
+ return minorDiff;
62
+ }
63
+ // If patch versions differ, bigger one wins
64
+ const patchDiff = runtime1.patch - runtime2.patch;
65
+ if (patchDiff) {
66
+ return patchDiff;
67
+ }
68
+ // Bigger suffix wins, f.e. rc10 > rc9
69
+ // Important: suffix is alphanumeric, must use natural compare
70
+ const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: "base" });
71
+ const result = collator.compare(runtime1.suffix, runtime2.suffix);
72
+ compareCache.set(cacheIndex, result);
73
+ return result;
74
+ };
75
+ /**
76
+ * Set an alias for the the current app/library/microfrontend which will appear in debug messages and console warnings
77
+ * @param alias
78
+ */
79
+ const setRuntimeAlias = (alias) => {
80
+ currentRuntimeAlias = alias;
81
+ };
82
+ const getAllRuntimes = () => {
83
+ return Runtimes;
84
+ };
85
+ export { getCurrentRuntimeIndex, registerCurrentRuntime, compareRuntimes, setRuntimeAlias, getAllRuntimes, };
86
+ //# sourceMappingURL=Runtimes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Runtimes.js","sourceRoot":"","sources":["../src/Runtimes.ts"],"names":[],"mappings":"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","sourcesContent":["import VersionInfo from \"./generated/VersionInfo.js\";\nimport getSharedResource from \"./getSharedResource.js\";\n\ntype RuntimeData = VersionInfo & {\n\talias: string,\n\tdescription: string,\n};\n\nlet currentRuntimeIndex: number;\nlet currentRuntimeAlias = \"\";\n\nconst compareCache = new Map<string, number>();\n\n/**\n * Central registry where all runtimes register themselves by pushing an object.\n * The index in the registry servers as an ID for the runtime.\n * @type {*}\n */\nconst Runtimes = getSharedResource<Array<RuntimeData>>(\"Runtimes\", []);\n\n/**\n * Registers the current runtime in the shared runtimes resource registry\n */\nconst registerCurrentRuntime = () => {\n\tif (currentRuntimeIndex === undefined) {\n\t\tcurrentRuntimeIndex = Runtimes.length;\n\t\tconst versionInfo = VersionInfo;\n\n\t\tRuntimes.push({\n\t\t\t...versionInfo,\n\t\t\talias: currentRuntimeAlias,\n\t\t\tdescription: `Runtime ${currentRuntimeIndex} - ver ${versionInfo.version}${currentRuntimeAlias ? ` (${currentRuntimeAlias})` : \"\"}`,\n\t\t});\n\t}\n};\n\n/**\n * Returns the index of the current runtime's object in the shared runtimes resource registry\n * @returns {*}\n */\nconst getCurrentRuntimeIndex = () => {\n\treturn currentRuntimeIndex;\n};\n\n/**\n * Compares two runtimes and returns 1 if the first is of a bigger version, -1 if the second is of a bigger version, and 0 if equal\n * @param index1 The index of the first runtime to compare\n * @param index2 The index of the second runtime to compare\n * @returns {number}\n */\nconst compareRuntimes = (index1: number, index2: number) => {\n\tconst cacheIndex = `${index1},${index2}`;\n\tif (compareCache.has(cacheIndex)) {\n\t\treturn compareCache.get(cacheIndex)!;\n\t}\n\n\tconst runtime1 = Runtimes[index1];\n\tconst runtime2 = Runtimes[index2];\n\n\tif (!runtime1 || !runtime2) {\n\t\tthrow new Error(\"Invalid runtime index supplied\");\n\t}\n\n\t// If any of the two is a next version, bigger buildTime wins\n\tif (runtime1.isNext || runtime2.isNext) {\n\t\treturn runtime1.buildTime - runtime2.buildTime;\n\t}\n\n\t// If major versions differ, bigger one wins\n\tconst majorDiff = runtime1.major - runtime2.major;\n\tif (majorDiff) {\n\t\treturn majorDiff;\n\t}\n\n\t// If minor versions differ, bigger one wins\n\tconst minorDiff = runtime1.minor - runtime2.minor;\n\tif (minorDiff) {\n\t\treturn minorDiff;\n\t}\n\n\t// If patch versions differ, bigger one wins\n\tconst patchDiff = runtime1.patch - runtime2.patch;\n\tif (patchDiff) {\n\t\treturn patchDiff;\n\t}\n\n\t// Bigger suffix wins, f.e. rc10 > rc9\n\t// Important: suffix is alphanumeric, must use natural compare\n\tconst collator = new Intl.Collator(undefined, { numeric: true, sensitivity: \"base\" });\n\tconst result = collator.compare(runtime1.suffix, runtime2.suffix);\n\n\tcompareCache.set(cacheIndex, result);\n\treturn result;\n};\n\n/**\n * Set an alias for the the current app/library/microfrontend which will appear in debug messages and console warnings\n * @param alias\n */\nconst setRuntimeAlias = (alias: string) => {\n\tcurrentRuntimeAlias = alias;\n};\n\nconst getAllRuntimes = () => {\n\treturn Runtimes;\n};\n\nexport {\n\tgetCurrentRuntimeIndex,\n\tregisterCurrentRuntime,\n\tcompareRuntimes,\n\tsetRuntimeAlias,\n\tgetAllRuntimes,\n};\n"]}
File without changes
@@ -1,41 +1,6 @@
1
- const getStaticAreaInstance = () => {
2
- let staticArea = document.querySelector("ui5-static-area");
3
-
4
- if (staticArea) {
5
- return staticArea;
6
- }
7
-
8
- // Create static area if it is not present
9
- const bodyElement = document.body;
10
- staticArea = document.createElement("ui5-static-area");
11
-
12
- return bodyElement.insertBefore(staticArea, bodyElement.firstChild);
13
- };
14
-
15
- const removeStaticArea = () => {
16
- getStaticAreaInstance().destroy();
17
- };
18
-
19
- class StaticAreaElement extends HTMLElement {
20
- constructor() {
21
- super();
22
- }
23
-
24
- get isUI5Element() {
25
- return true;
26
- }
27
-
28
- destroy() {
29
- const staticAreaDomRef = document.querySelector(this.tagName.toLowerCase());
30
- staticAreaDomRef.parentElement.removeChild(staticAreaDomRef);
31
- }
32
- }
33
-
1
+ "use strict";
34
2
  if (!customElements.get("ui5-static-area")) {
35
- customElements.define("ui5-static-area", StaticAreaElement);
3
+ customElements.define("ui5-static-area", class extends HTMLElement {
4
+ });
36
5
  }
37
-
38
- export {
39
- getStaticAreaInstance,
40
- removeStaticArea,
41
- };
6
+ //# sourceMappingURL=StaticArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticArea.js","sourceRoot":"","sources":["../src/StaticArea.ts"],"names":[],"mappings":";AAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;IAC3C,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAM,SAAQ,WAAW;KAAG,CAAC,CAAC;CACvE","sourcesContent":["if (!customElements.get(\"ui5-static-area\")) {\n\tcustomElements.define(\"ui5-static-area\", class extends HTMLElement {});\n}\n"]}
@@ -0,0 +1,36 @@
1
+ import "./StaticArea.js";
2
+ import type UI5Element from "./UI5Element.js";
3
+ /**
4
+ *
5
+ * @class
6
+ * @author SAP SE
7
+ * @private
8
+ */
9
+ declare class StaticAreaItem extends HTMLElement {
10
+ _rendered: boolean;
11
+ ownerElement?: UI5Element;
12
+ constructor();
13
+ /**
14
+ * @param {UI5Element} ownerElement the UI5Element instance that owns this static area item
15
+ */
16
+ setOwnerElement(ownerElement: UI5Element): void;
17
+ /**
18
+ * Updates the shadow root of the static area item with the latest state, if rendered
19
+ */
20
+ update(): void;
21
+ /**
22
+ * Sets the correct content density based on the owner element's state
23
+ * @private
24
+ */
25
+ _updateContentDensity(): void;
26
+ _updateDirection(): void;
27
+ _updateAdditionalAttrs(): void;
28
+ /**
29
+ * @protected
30
+ * Returns reference to the DOM element where the current fragment is added.
31
+ */
32
+ getDomRef(): Promise<ShadowRoot | null>;
33
+ static getTag(): string;
34
+ static createInstance(): StaticAreaItem;
35
+ }
36
+ export default StaticAreaItem;