@ui5/webcomponents-base 0.0.0-50304f58c → 0.0.0-51202adee

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 (794) hide show
  1. package/.eslintignore +4 -0
  2. package/CHANGELOG.md +426 -0
  3. package/README.md +53 -7
  4. package/bundle.esm.js +25 -21
  5. package/dist/AssetRegistry.d.ts +5 -0
  6. package/dist/AssetRegistry.js +6 -12
  7. package/dist/AssetRegistry.js.map +1 -0
  8. package/dist/Boot.d.ts +8 -0
  9. package/dist/Boot.js +44 -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 +69 -30
  16. package/dist/CustomElementsRegistry.js.map +1 -0
  17. package/dist/CustomElementsScope.d.ts +7 -0
  18. package/dist/CustomElementsScope.js +11 -108
  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 +84 -816
  28. package/dist/Device.js.map +1 -0
  29. package/dist/EventProvider.d.ts +25 -0
  30. package/dist/EventProvider.js +67 -78
  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 +17 -110
  37. package/dist/FontFace.js.map +1 -0
  38. package/dist/InitialConfiguration.d.ts +22 -0
  39. package/dist/InitialConfiguration.js +115 -118
  40. package/dist/InitialConfiguration.js.map +1 -0
  41. package/dist/Keys.d.ts +57 -0
  42. package/dist/Keys.js +174 -193
  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 +52 -62
  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 +4 -29
  67. package/dist/StaticArea.js.map +1 -0
  68. package/dist/StaticAreaItem.d.ts +36 -0
  69. package/dist/StaticAreaItem.js +92 -101
  70. package/dist/StaticAreaItem.js.map +1 -0
  71. package/dist/SystemCSSVars.d.ts +2 -0
  72. package/dist/SystemCSSVars.js +6 -28
  73. package/dist/SystemCSSVars.js.map +1 -0
  74. package/dist/Theming.d.ts +3 -0
  75. package/dist/Theming.js +1 -1
  76. package/dist/Theming.js.map +1 -0
  77. package/dist/UI5Element.d.ts +373 -0
  78. package/dist/UI5Element.js +936 -1138
  79. package/dist/UI5Element.js.map +1 -0
  80. package/dist/UI5ElementMetadata.d.ts +150 -0
  81. package/dist/UI5ElementMetadata.js +278 -267
  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 -32
  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 +119 -118
  107. package/dist/asset-registries/LocaleData.js.map +1 -0
  108. package/dist/asset-registries/Themes.d.ts +10 -0
  109. package/dist/asset-registries/Themes.js +39 -77
  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 +71 -86
  113. package/dist/asset-registries/i18n.js.map +1 -0
  114. package/dist/assets/bundle.esm.3a492d53.js +56 -0
  115. package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
  116. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  117. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  118. package/dist/config/AnimationMode.d.ts +14 -0
  119. package/dist/config/AnimationMode.js +21 -18
  120. package/dist/config/AnimationMode.js.map +1 -0
  121. package/dist/config/CalendarType.d.ts +8 -0
  122. package/dist/config/CalendarType.js +13 -12
  123. package/dist/config/CalendarType.js.map +1 -0
  124. package/dist/config/FormatSettings.d.ts +11 -0
  125. package/dist/config/FormatSettings.js +10 -8
  126. package/dist/config/FormatSettings.js.map +1 -0
  127. package/dist/config/Icons.d.ts +30 -0
  128. package/dist/config/Icons.js +48 -0
  129. package/dist/config/Icons.js.map +1 -0
  130. package/dist/config/Language.d.ts +31 -0
  131. package/dist/config/Language.js +38 -52
  132. package/dist/config/Language.js.map +1 -0
  133. package/dist/config/NoConflict.d.ts +20 -0
  134. package/dist/config/NoConflict.js +40 -41
  135. package/dist/config/NoConflict.js.map +1 -0
  136. package/dist/config/RTL.d.ts +7 -0
  137. package/dist/config/RTL.js +23 -20
  138. package/dist/config/RTL.js.map +1 -0
  139. package/dist/config/Theme.d.ts +28 -0
  140. package/dist/config/Theme.js +45 -22
  141. package/dist/config/Theme.js.map +1 -0
  142. package/dist/config/ThemeRoots.d.ts +4 -0
  143. package/dist/config/ThemeRoots.js +28 -0
  144. package/dist/config/ThemeRoots.js.map +1 -0
  145. package/dist/css/BusyIndicator.css +80 -0
  146. package/dist/css/FontFace.css +66 -0
  147. package/dist/css/OverrideFontFace.css +32 -0
  148. package/dist/css/SystemCSSVars.css +17 -0
  149. package/dist/decorators/customElement.d.ts +8 -0
  150. package/dist/decorators/customElement.js +16 -0
  151. package/dist/decorators/customElement.js.map +1 -0
  152. package/dist/decorators/event.d.ts +10 -0
  153. package/dist/decorators/event.js +24 -0
  154. package/dist/decorators/event.js.map +1 -0
  155. package/dist/decorators/fastNavigation.d.ts +7 -0
  156. package/dist/decorators/fastNavigation.js +13 -0
  157. package/dist/decorators/fastNavigation.js.map +1 -0
  158. package/dist/decorators/languageAware.d.ts +7 -0
  159. package/dist/decorators/languageAware.js +13 -0
  160. package/dist/decorators/languageAware.js.map +1 -0
  161. package/dist/decorators/property.d.ts +9 -0
  162. package/dist/decorators/property.js +24 -0
  163. package/dist/decorators/property.js.map +1 -0
  164. package/dist/decorators/slot.d.ts +9 -0
  165. package/dist/decorators/slot.js +37 -0
  166. package/dist/decorators/slot.js.map +1 -0
  167. package/dist/decorators/themeAware.d.ts +7 -0
  168. package/dist/decorators/themeAware.js +13 -0
  169. package/dist/decorators/themeAware.js.map +1 -0
  170. package/dist/delegate/ItemNavigation.d.ts +113 -0
  171. package/dist/delegate/ItemNavigation.js +280 -357
  172. package/dist/delegate/ItemNavigation.js.map +1 -0
  173. package/dist/delegate/ResizeHandler.d.ts +24 -0
  174. package/dist/delegate/ResizeHandler.js +80 -62
  175. package/dist/delegate/ResizeHandler.js.map +1 -0
  176. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  177. package/dist/delegate/ScrollEnablement.js +159 -153
  178. package/dist/delegate/ScrollEnablement.js.map +1 -0
  179. package/dist/features/F6Navigation.d.ts +16 -0
  180. package/dist/features/F6Navigation.js +112 -0
  181. package/dist/features/F6Navigation.js.map +1 -0
  182. package/dist/features/OpenUI5Element.d.ts +9 -0
  183. package/dist/features/OpenUI5Element.js +5 -0
  184. package/dist/features/OpenUI5Element.js.map +1 -0
  185. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  186. package/dist/features/OpenUI5Enablement.js +96 -0
  187. package/dist/features/OpenUI5Enablement.js.map +1 -0
  188. package/dist/features/OpenUI5Support.d.ts +23 -0
  189. package/dist/features/OpenUI5Support.js +93 -86
  190. package/dist/features/OpenUI5Support.js.map +1 -0
  191. package/dist/generated/AssetParameters.js +1 -1
  192. package/dist/generated/VersionInfo.js +10 -0
  193. package/dist/generated/css/BusyIndicator.css.js +5 -0
  194. package/dist/generated/css/FontFace.css.js +5 -0
  195. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  196. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  197. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  198. package/dist/getSharedResource.d.ts +11 -0
  199. package/dist/getSharedResource.js +12 -16
  200. package/dist/getSharedResource.js.map +1 -0
  201. package/dist/global.d.ts +44 -0
  202. package/dist/i18nBundle.d.ts +43 -0
  203. package/dist/i18nBundle.js +68 -42
  204. package/dist/i18nBundle.js.map +1 -0
  205. package/dist/locale/Locale.d.ts +22 -0
  206. package/dist/locale/Locale.js +75 -87
  207. package/dist/locale/Locale.js.map +1 -0
  208. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  209. package/dist/locale/RTLAwareRegistry.js +6 -11
  210. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  211. package/dist/locale/applyDirection.d.ts +10 -0
  212. package/dist/locale/applyDirection.js +10 -8
  213. package/dist/locale/applyDirection.js.map +1 -0
  214. package/dist/locale/directionChange.d.ts +15 -0
  215. package/dist/locale/directionChange.js +24 -0
  216. package/dist/locale/directionChange.js.map +1 -0
  217. package/dist/locale/getEffectiveDir.d.ts +2 -0
  218. package/dist/locale/getEffectiveDir.js +24 -0
  219. package/dist/locale/getEffectiveDir.js.map +1 -0
  220. package/dist/locale/getLocale.d.ts +7 -0
  221. package/dist/locale/getLocale.js +26 -29
  222. package/dist/locale/getLocale.js.map +1 -0
  223. package/dist/locale/languageChange.d.ts +5 -0
  224. package/dist/locale/languageChange.js +8 -16
  225. package/dist/locale/languageChange.js.map +1 -0
  226. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  227. package/dist/locale/nextFallbackLocale.js +15 -19
  228. package/dist/locale/nextFallbackLocale.js.map +1 -0
  229. package/dist/locale/normalizeLocale.d.ts +7 -0
  230. package/dist/locale/normalizeLocale.js +34 -41
  231. package/dist/locale/normalizeLocale.js.map +1 -0
  232. package/dist/renderer/LitRenderer.d.ts +14 -0
  233. package/dist/renderer/LitRenderer.js +34 -24
  234. package/dist/renderer/LitRenderer.js.map +1 -0
  235. package/dist/renderer/directives/style-map.js +72 -0
  236. package/dist/renderer/executeTemplate.d.ts +13 -0
  237. package/dist/renderer/executeTemplate.js +20 -7
  238. package/dist/renderer/executeTemplate.js.map +1 -0
  239. package/dist/sap/base/Log.js +240 -0
  240. package/dist/sap/base/assert.js +7 -0
  241. package/dist/sap/base/security/URLListValidator.js +159 -0
  242. package/dist/sap/base/security/encodeCSS.js +14 -0
  243. package/dist/sap/base/security/encodeXML.js +23 -0
  244. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  245. package/dist/sap/base/strings/toHex.js +8 -0
  246. package/dist/sap/base/util/now.js +7 -0
  247. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  248. package/dist/theming/CustomStyle.d.ts +6 -0
  249. package/dist/theming/CustomStyle.js +38 -32
  250. package/dist/theming/CustomStyle.js.map +1 -0
  251. package/dist/theming/ThemeLoaded.d.ts +5 -0
  252. package/dist/theming/ThemeLoaded.js +8 -16
  253. package/dist/theming/ThemeLoaded.js.map +1 -0
  254. package/dist/theming/applyTheme.d.ts +2 -0
  255. package/dist/theming/applyTheme.js +62 -71
  256. package/dist/theming/applyTheme.js.map +1 -0
  257. package/dist/theming/getConstructableStyle.d.ts +9 -0
  258. package/dist/theming/getConstructableStyle.js +13 -17
  259. package/dist/theming/getConstructableStyle.js.map +1 -0
  260. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  261. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  262. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  263. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  264. package/dist/theming/getEffectiveStyle.js +26 -17
  265. package/dist/theming/getEffectiveStyle.js.map +1 -0
  266. package/dist/theming/getStylesString.d.ts +3 -0
  267. package/dist/theming/getStylesString.js +9 -11
  268. package/dist/theming/getStylesString.js.map +1 -0
  269. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  270. package/dist/theming/getThemeDesignerTheme.js +73 -60
  271. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  272. package/dist/theming/preloadLinks.d.ts +3 -0
  273. package/dist/theming/preloadLinks.js +19 -0
  274. package/dist/theming/preloadLinks.js.map +1 -0
  275. package/dist/thirdparty/_merge.d.ts +2 -0
  276. package/dist/thirdparty/_merge.js +7 -4
  277. package/dist/thirdparty/_merge.js.map +1 -0
  278. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  279. package/dist/thirdparty/isPlainObject.js +11 -10
  280. package/dist/thirdparty/isPlainObject.js.map +1 -0
  281. package/dist/thirdparty/merge.d.ts +2 -0
  282. package/dist/thirdparty/merge.js +4 -8
  283. package/dist/thirdparty/merge.js.map +1 -0
  284. package/dist/types/AnimationMode.d.ts +32 -0
  285. package/dist/types/AnimationMode.js +33 -6
  286. package/dist/types/AnimationMode.js.map +1 -0
  287. package/dist/types/CSSColor.d.ts +16 -0
  288. package/dist/types/CSSColor.js +19 -0
  289. package/dist/types/CSSColor.js.map +1 -0
  290. package/dist/types/CalendarType.d.ts +37 -0
  291. package/dist/types/CalendarType.js +35 -18
  292. package/dist/types/CalendarType.js.map +1 -0
  293. package/dist/types/DOMReference.d.ts +17 -0
  294. package/dist/types/DOMReference.js +25 -0
  295. package/dist/types/DOMReference.js.map +1 -0
  296. package/dist/types/DataType.d.ts +25 -0
  297. package/dist/types/DataType.js +33 -14
  298. package/dist/types/DataType.js.map +1 -0
  299. package/dist/types/Float.d.ts +18 -0
  300. package/dist/types/Float.js +18 -6
  301. package/dist/types/Float.js.map +1 -0
  302. package/dist/types/Integer.d.ts +18 -0
  303. package/dist/types/Integer.js +18 -5
  304. package/dist/types/Integer.js.map +1 -0
  305. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  306. package/dist/types/InvisibleMessageMode.js +27 -0
  307. package/dist/types/InvisibleMessageMode.js.map +1 -0
  308. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  309. package/dist/types/ItemNavigationBehavior.js +22 -17
  310. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  311. package/dist/types/NavigationMode.d.ts +32 -0
  312. package/dist/types/NavigationMode.js +33 -6
  313. package/dist/types/NavigationMode.js.map +1 -0
  314. package/dist/types/ValueState.d.ts +42 -0
  315. package/dist/types/ValueState.js +41 -19
  316. package/dist/types/ValueState.js.map +1 -0
  317. package/dist/types.d.ts +18 -0
  318. package/dist/types.js +2 -0
  319. package/dist/types.js.map +1 -0
  320. package/dist/updateShadowRoot.d.ts +8 -0
  321. package/dist/updateShadowRoot.js +34 -0
  322. package/dist/updateShadowRoot.js.map +1 -0
  323. package/dist/util/AriaLabelHelper.d.ts +6 -0
  324. package/dist/util/AriaLabelHelper.js +37 -34
  325. package/dist/util/AriaLabelHelper.js.map +1 -0
  326. package/dist/util/Caret.d.ts +7 -0
  327. package/dist/util/Caret.js +23 -0
  328. package/dist/util/Caret.js.map +1 -0
  329. package/dist/util/ColorConversion.d.ts +30 -0
  330. package/dist/util/ColorConversion.js +337 -0
  331. package/dist/util/ColorConversion.js.map +1 -0
  332. package/dist/util/FetchHelper.d.ts +3 -0
  333. package/dist/util/FetchHelper.js +19 -25
  334. package/dist/util/FetchHelper.js.map +1 -0
  335. package/dist/util/FocusableElements.d.ts +4 -0
  336. package/dist/util/FocusableElements.js +57 -68
  337. package/dist/util/FocusableElements.js.map +1 -0
  338. package/dist/util/HTMLSanitizer.d.ts +3 -0
  339. package/dist/util/HTMLSanitizer.js +6 -0
  340. package/dist/util/HTMLSanitizer.js.map +1 -0
  341. package/dist/util/InvisibleMessage.d.ts +10 -0
  342. package/dist/util/InvisibleMessage.js +56 -0
  343. package/dist/util/InvisibleMessage.js.map +1 -0
  344. package/dist/util/PopupUtils.d.ts +7 -0
  345. package/dist/util/PopupUtils.js +74 -0
  346. package/dist/util/PopupUtils.js.map +1 -0
  347. package/dist/util/SlotsHelper.d.ts +9 -0
  348. package/dist/util/SlotsHelper.js +30 -0
  349. package/dist/util/SlotsHelper.js.map +1 -0
  350. package/dist/util/StringHelper.d.ts +3 -0
  351. package/dist/util/StringHelper.js +17 -20
  352. package/dist/util/StringHelper.js.map +1 -0
  353. package/dist/util/TabbableElements.d.ts +17 -0
  354. package/dist/util/TabbableElements.js +53 -43
  355. package/dist/util/TabbableElements.js.map +1 -0
  356. package/dist/util/arraysAreEqual.d.ts +2 -0
  357. package/dist/util/arraysAreEqual.js +10 -12
  358. package/dist/util/arraysAreEqual.js.map +1 -0
  359. package/dist/util/clamp.d.ts +9 -0
  360. package/dist/util/clamp.js +12 -0
  361. package/dist/util/clamp.js.map +1 -0
  362. package/dist/util/createLinkInHead.d.ts +7 -0
  363. package/dist/util/createLinkInHead.js +21 -0
  364. package/dist/util/createLinkInHead.js.map +1 -0
  365. package/dist/util/createStyleInHead.d.ts +8 -0
  366. package/dist/util/createStyleInHead.js +10 -10
  367. package/dist/util/createStyleInHead.js.map +1 -0
  368. package/dist/util/debounce.d.ts +2 -0
  369. package/dist/util/debounce.js +15 -0
  370. package/dist/util/debounce.js.map +1 -0
  371. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  372. package/dist/util/detectNavigatorLanguage.js +7 -10
  373. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  374. package/dist/util/escapeRegex.d.ts +8 -0
  375. package/dist/util/escapeRegex.js +11 -0
  376. package/dist/util/escapeRegex.js.map +1 -0
  377. package/dist/util/formatMessage.d.ts +2 -0
  378. package/dist/util/formatMessage.js +15 -19
  379. package/dist/util/formatMessage.js.map +1 -0
  380. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  381. package/dist/util/generateHighlightedMarkup.js +41 -0
  382. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  383. package/dist/util/getActiveElement.d.ts +2 -0
  384. package/dist/util/getActiveElement.js +6 -8
  385. package/dist/util/getActiveElement.js.map +1 -0
  386. package/dist/util/getClassCopy.d.ts +400 -0
  387. package/dist/util/getClassCopy.js +10 -0
  388. package/dist/util/getClassCopy.js.map +1 -0
  389. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  390. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  391. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  392. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  393. package/dist/util/getEffectiveContentDensity.js +4 -0
  394. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  395. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  396. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  397. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  398. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  399. package/dist/util/getFastNavigationGroups.js +51 -0
  400. package/dist/util/getFastNavigationGroups.js.map +1 -0
  401. package/dist/util/getFileExtension.d.ts +12 -0
  402. package/dist/util/getFileExtension.js +9 -11
  403. package/dist/util/getFileExtension.js.map +1 -0
  404. package/dist/util/getNormalizedTarget.d.ts +7 -0
  405. package/dist/util/getNormalizedTarget.js +14 -0
  406. package/dist/util/getNormalizedTarget.js.map +1 -0
  407. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  408. package/dist/util/getSingletonElementInstance.js +7 -10
  409. package/dist/util/getSingletonElementInstance.js.map +1 -0
  410. package/dist/util/isElementClickable.d.ts +2 -0
  411. package/dist/util/isElementClickable.js +16 -0
  412. package/dist/util/isElementClickable.js.map +1 -0
  413. package/dist/util/isElementHidden.d.ts +2 -0
  414. package/dist/util/isElementHidden.js +8 -0
  415. package/dist/util/isElementHidden.js.map +1 -0
  416. package/dist/util/isElementInView.d.ts +6 -0
  417. package/dist/util/isElementInView.js +12 -0
  418. package/dist/util/isElementInView.js.map +1 -0
  419. package/dist/util/isElementTabbable.d.ts +9 -0
  420. package/dist/util/isElementTabbable.js +30 -0
  421. package/dist/util/isElementTabbable.js.map +1 -0
  422. package/dist/util/isValidPropertyName.d.ts +8 -0
  423. package/dist/util/isValidPropertyName.js +16 -17
  424. package/dist/util/isValidPropertyName.js.map +1 -0
  425. package/dist/util/whenDOMReady.d.ts +2 -0
  426. package/dist/util/whenDOMReady.js +11 -10
  427. package/dist/util/whenDOMReady.js.map +1 -0
  428. package/dist/util/willShowContent.d.ts +2 -0
  429. package/dist/util/willShowContent.js +7 -0
  430. package/dist/util/willShowContent.js.map +1 -0
  431. package/dist/validateThemeRoot.d.ts +2 -0
  432. package/dist/validateThemeRoot.js +47 -0
  433. package/dist/validateThemeRoot.js.map +1 -0
  434. package/index.js +1 -1
  435. package/lib/generate-asset-parameters/index.js +8 -5
  436. package/lib/generate-styles/index.js +26 -0
  437. package/lib/generate-version-info/index.js +32 -0
  438. package/package-scripts.js +48 -28
  439. package/package.json +20 -13
  440. package/src/AssetRegistry.ts +11 -0
  441. package/src/Boot.ts +61 -0
  442. package/src/CSP.ts +66 -0
  443. package/src/CustomElementsRegistry.ts +98 -0
  444. package/src/CustomElementsScope.ts +33 -0
  445. package/src/{CustomElementsScope.js → CustomElementsScopeUtils.ts} +14 -7
  446. package/src/DOMObserver.ts +28 -0
  447. package/src/Device.ts +124 -0
  448. package/src/EventProvider.ts +87 -0
  449. package/src/FeaturesRegistry.ts +14 -0
  450. package/src/FontFace.ts +31 -0
  451. package/src/InitialConfiguration.ts +207 -0
  452. package/src/Keys.ts +295 -0
  453. package/src/ManagedStyles.ts +92 -0
  454. package/src/MarkedEvents.ts +20 -0
  455. package/src/MediaRange.ts +110 -0
  456. package/{dist/util/parseProperties.js → src/PropertiesFileFormat.ts} +14 -8
  457. package/src/Render.ts +180 -0
  458. package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
  459. package/src/Runtimes.ts +114 -0
  460. package/src/StaticArea.ts +3 -0
  461. package/src/StaticAreaItem.ts +113 -0
  462. package/src/SystemCSSVars.ts +10 -0
  463. package/src/{Theming.js → Theming.ts} +0 -0
  464. package/src/{UI5Element.js → UI5Element.ts} +347 -361
  465. package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +178 -69
  466. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  467. package/src/animations/animate.ts +64 -0
  468. package/src/animations/scroll.ts +21 -0
  469. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  470. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  471. package/src/asset-registries/Icons.ts +162 -0
  472. package/src/asset-registries/Illustrations.ts +75 -0
  473. package/src/asset-registries/LocaleData.ts +172 -0
  474. package/src/asset-registries/Themes.ts +67 -0
  475. package/src/asset-registries/i18n.ts +118 -0
  476. package/src/assets-meta/IconCollectionsAlias.ts +18 -0
  477. package/src/config/AnimationMode.ts +33 -0
  478. package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
  479. package/src/config/FormatSettings.ts +21 -0
  480. package/src/config/Icons.ts +59 -0
  481. package/src/config/Language.ts +72 -0
  482. package/src/config/NoConflict.ts +67 -0
  483. package/src/config/{RTL.js → RTL.ts} +14 -4
  484. package/src/config/Theme.ts +64 -0
  485. package/src/config/ThemeRoots.ts +41 -0
  486. package/src/css/BusyIndicator.css +80 -0
  487. package/src/css/FontFace.css +66 -0
  488. package/src/css/OverrideFontFace.css +32 -0
  489. package/src/css/SystemCSSVars.css +17 -0
  490. package/src/decorators/customElement.ts +17 -0
  491. package/src/decorators/event.ts +28 -0
  492. package/src/decorators/fastNavigation.ts +14 -0
  493. package/src/decorators/languageAware.ts +14 -0
  494. package/src/decorators/property.ts +30 -0
  495. package/src/decorators/slot.ts +49 -0
  496. package/src/decorators/themeAware.ts +14 -0
  497. package/src/delegate/ItemNavigation.ts +393 -0
  498. package/src/delegate/ResizeHandler.ts +95 -0
  499. package/src/delegate/ScrollEnablement.ts +224 -0
  500. package/src/features/F6Navigation.ts +141 -0
  501. package/src/features/OpenUI5Element.ts +11 -0
  502. package/src/features/OpenUI5Enablement.ts +117 -0
  503. package/src/features/OpenUI5Support.ts +148 -0
  504. package/src/{getSharedResource.js → getSharedResource.ts} +3 -3
  505. package/src/global.d.ts +44 -0
  506. package/src/i18nBundle.ts +108 -0
  507. package/src/locale/{Locale.js → Locale.ts} +15 -5
  508. package/src/locale/RTLAwareRegistry.ts +16 -0
  509. package/src/locale/applyDirection.ts +18 -0
  510. package/src/locale/directionChange.ts +34 -0
  511. package/src/locale/getEffectiveDir.ts +28 -0
  512. package/src/locale/{getLocale.js → getLocale.ts} +12 -7
  513. package/src/locale/languageChange.ts +24 -0
  514. package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
  515. package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +5 -3
  516. package/src/renderer/LitRenderer.ts +60 -0
  517. package/src/renderer/directives/style-map.js +72 -0
  518. package/src/renderer/executeTemplate.ts +40 -0
  519. package/src/theming/CustomStyle.ts +62 -0
  520. package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
  521. package/src/theming/applyTheme.ts +90 -0
  522. package/src/theming/getConstructableStyle.ts +31 -0
  523. package/src/theming/getEffectiveLinksHrefs.ts +26 -0
  524. package/src/theming/getEffectiveStyle.ts +41 -0
  525. package/src/theming/getStylesString.ts +15 -0
  526. package/src/theming/getThemeDesignerTheme.ts +101 -0
  527. package/src/theming/preloadLinks.ts +24 -0
  528. package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
  529. package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
  530. package/src/thirdparty/merge.ts +5 -0
  531. package/src/types/AnimationMode.ts +33 -0
  532. package/src/types/CSSColor.ts +20 -0
  533. package/src/types/CalendarType.ts +38 -0
  534. package/src/types/DOMReference.ts +28 -0
  535. package/src/types/DataType.ts +51 -0
  536. package/src/types/Float.ts +25 -0
  537. package/src/types/Integer.ts +25 -0
  538. package/src/types/InvisibleMessageMode.ts +27 -0
  539. package/src/types/ItemNavigationBehavior.ts +26 -0
  540. package/src/types/NavigationMode.ts +33 -0
  541. package/src/types/ValueState.ts +47 -0
  542. package/src/types.ts +30 -0
  543. package/src/updateShadowRoot.ts +37 -0
  544. package/src/util/AriaLabelHelper.ts +63 -0
  545. package/src/util/Caret.ts +28 -0
  546. package/src/util/ColorConversion.ts +399 -0
  547. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  548. package/src/util/FocusableElements.ts +82 -0
  549. package/src/util/HTMLSanitizer.ts +9 -0
  550. package/src/util/InvisibleMessage.ts +69 -0
  551. package/src/util/PopupUtils.ts +112 -0
  552. package/src/util/SlotsHelper.ts +39 -0
  553. package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
  554. package/src/util/TabbableElements.ts +70 -0
  555. package/src/util/{arraysAreEqual.js → arraysAreEqual.ts} +1 -1
  556. package/src/util/clamp.ts +12 -0
  557. package/src/util/createLinkInHead.ts +25 -0
  558. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  559. package/src/util/debounce.ts +18 -0
  560. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
  561. package/src/util/escapeRegex.ts +11 -0
  562. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  563. package/src/util/generateHighlightedMarkup.ts +43 -0
  564. package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
  565. package/src/util/getClassCopy.ts +12 -0
  566. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  567. package/src/util/getEffectiveContentDensity.ts +5 -0
  568. package/src/util/getEffectiveScrollbarStyle.ts +5 -0
  569. package/src/util/getFastNavigationGroups.ts +63 -0
  570. package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
  571. package/src/util/getNormalizedTarget.ts +16 -0
  572. package/src/util/{getSingletonElementInstance.js → getSingletonElementInstance.ts} +1 -1
  573. package/src/util/isElementClickable.ts +19 -0
  574. package/src/util/isElementHidden.ts +9 -0
  575. package/src/util/isElementInView.ts +15 -0
  576. package/src/util/isElementTabbable.ts +37 -0
  577. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +1 -1
  578. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  579. package/src/util/willShowContent.ts +7 -0
  580. package/src/validateThemeRoot.ts +58 -0
  581. package/tsconfig.json +13 -0
  582. package/used-modules.txt +10 -0
  583. package/bundle.es5.js +0 -28
  584. package/config/.eslintrc.js +0 -3
  585. package/config/rollup.config.js +0 -1
  586. package/dist/RenderScheduler.js +0 -169
  587. package/dist/SVGIconRegistry.js +0 -73
  588. package/dist/animations/config.js +0 -5
  589. package/dist/boot.js +0 -34
  590. package/dist/compatibility/DOMObserver.js +0 -62
  591. package/dist/compatibility/patchNodeValue.js +0 -24
  592. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  593. package/dist/config/AssetsPath.js +0 -17
  594. package/dist/delegate/CustomResize.js +0 -78
  595. package/dist/delegate/NativeResize.js +0 -45
  596. package/dist/features/PropertiesFormatSupport.js +0 -8
  597. package/dist/features/browsersupport/Edge.js +0 -6
  598. package/dist/features/browsersupport/IE11.js +0 -42
  599. package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  600. package/dist/renderer/ifDefined.js +0 -21
  601. package/dist/renderer/scopeHTML.js +0 -32
  602. package/dist/resources/bundle.es5.js +0 -225
  603. package/dist/resources/bundle.es5.js.map +0 -1
  604. package/dist/resources/bundle.esm.js +0 -129
  605. package/dist/resources/bundle.esm.js.map +0 -1
  606. package/dist/test-resources/assets/Themes.js +0 -17
  607. package/dist/test-resources/elements/Child.js +0 -35
  608. package/dist/test-resources/elements/Generic.js +0 -84
  609. package/dist/test-resources/elements/GenericExt.js +0 -26
  610. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  611. package/dist/test-resources/elements/Parent.js +0 -41
  612. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  613. package/dist/test-resources/pages/AllTestElements.html +0 -42
  614. package/dist/test-resources/pages/Configuration.html +0 -20
  615. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  616. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  617. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  618. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  619. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  620. package/dist/test-resources/pages/i18n.html +0 -40
  621. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  622. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  623. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  624. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  625. package/dist/test-resources/specs/StaticArea.spec.js +0 -34
  626. package/dist/test-resources/specs/Theming.spec.js +0 -31
  627. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -240
  628. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -96
  629. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -73
  630. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  631. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  632. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  633. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  634. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  635. package/dist/theming/CSSVarsPonyfill.js +0 -68
  636. package/dist/theming/adaptCSSForIE.js +0 -95
  637. package/dist/theming/createComponentStyleTag.js +0 -54
  638. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  639. package/dist/thirdparty/Array.from.js +0 -16
  640. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  641. package/dist/thirdparty/Array.prototype.find.js +0 -46
  642. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  643. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  644. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  645. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  646. package/dist/thirdparty/Number.isInteger.js +0 -5
  647. package/dist/thirdparty/Number.isNaN.js +0 -1
  648. package/dist/thirdparty/Number.parseFloat.js +0 -1
  649. package/dist/thirdparty/Number.parseInt.js +0 -1
  650. package/dist/thirdparty/Object.assign.js +0 -31
  651. package/dist/thirdparty/Object.entries.js +0 -11
  652. package/dist/thirdparty/Symbol.js +0 -2
  653. package/dist/thirdparty/WeakSet.js +0 -27
  654. package/dist/thirdparty/es6-string-methods.js +0 -182
  655. package/dist/thirdparty/events-polyfills.js +0 -89
  656. package/dist/thirdparty/fetch.js +0 -1
  657. package/dist/thirdparty/template.js +0 -600
  658. package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  659. package/dist/types/CSSSize.js +0 -9
  660. package/dist/types/CalendarSelection.js +0 -17
  661. package/dist/types/PopupState.js +0 -37
  662. package/dist/util/EffectiveAssetPath.js +0 -27
  663. package/dist/util/encodeCSS.js +0 -24
  664. package/dist/util/findNodeOwner.js +0 -35
  665. package/dist/util/isDescendantOf.js +0 -15
  666. package/dist/util/isNodeClickable.js +0 -19
  667. package/dist/util/isNodeHidden.js +0 -9
  668. package/dist/util/isNodeTabbable.js +0 -28
  669. package/dist/util/isSlot.js +0 -3
  670. package/dist/util/setToArray.js +0 -10
  671. package/dist/webcomponentsjs/LICENSE.md +0 -19
  672. package/dist/webcomponentsjs/README.md +0 -229
  673. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  674. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  675. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  676. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  677. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  678. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  679. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  680. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  681. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  682. package/dist/webcomponentsjs/package.json +0 -46
  683. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  684. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  685. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  686. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  687. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  688. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  689. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  690. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  691. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  692. package/src/AssetRegistry.js +0 -12
  693. package/src/CustomElementsRegistry.js +0 -39
  694. package/src/Device.js +0 -823
  695. package/src/EventProvider.js +0 -81
  696. package/src/FeaturesRegistry.js +0 -11
  697. package/src/FontFace.js +0 -118
  698. package/src/InitialConfiguration.js +0 -150
  699. package/src/Keys.js +0 -197
  700. package/src/RenderScheduler.js +0 -169
  701. package/src/SVGIconRegistry.js +0 -73
  702. package/src/StaticArea.js +0 -31
  703. package/src/StaticAreaItem.js +0 -108
  704. package/src/SystemCSSVars.js +0 -31
  705. package/src/animations/animate.js +0 -53
  706. package/src/animations/config.js +0 -5
  707. package/src/animations/scroll.js +0 -28
  708. package/src/asset-registries/Icons.js +0 -32
  709. package/src/asset-registries/LocaleData.js +0 -135
  710. package/src/asset-registries/Themes.js +0 -88
  711. package/src/asset-registries/i18n.js +0 -110
  712. package/src/boot.js +0 -34
  713. package/src/compatibility/DOMObserver.js +0 -62
  714. package/src/compatibility/patchNodeValue.js +0 -24
  715. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  716. package/src/config/AnimationMode.js +0 -23
  717. package/src/config/AssetsPath.js +0 -17
  718. package/src/config/FormatSettings.js +0 -13
  719. package/src/config/Language.js +0 -70
  720. package/src/config/NoConflict.js +0 -51
  721. package/src/config/Theme.js +0 -28
  722. package/src/delegate/CustomResize.js +0 -78
  723. package/src/delegate/ItemNavigation.js +0 -393
  724. package/src/delegate/NativeResize.js +0 -45
  725. package/src/delegate/ResizeHandler.js +0 -65
  726. package/src/delegate/ScrollEnablement.js +0 -159
  727. package/src/features/OpenUI5Support.js +0 -90
  728. package/src/features/PropertiesFormatSupport.js +0 -8
  729. package/src/features/browsersupport/Edge.js +0 -6
  730. package/src/features/browsersupport/IE11.js +0 -42
  731. package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  732. package/src/i18nBundle.js +0 -52
  733. package/src/locale/RTLAwareRegistry.js +0 -14
  734. package/src/locale/applyDirection.js +0 -15
  735. package/src/locale/languageChange.js +0 -22
  736. package/src/renderer/LitRenderer.js +0 -31
  737. package/src/renderer/executeTemplate.js +0 -17
  738. package/src/renderer/ifDefined.js +0 -21
  739. package/src/renderer/scopeHTML.js +0 -32
  740. package/src/theming/CSSVarsPonyfill.js +0 -68
  741. package/src/theming/CustomStyle.js +0 -40
  742. package/src/theming/adaptCSSForIE.js +0 -95
  743. package/src/theming/applyTheme.js +0 -84
  744. package/src/theming/createComponentStyleTag.js +0 -54
  745. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  746. package/src/theming/getConstructableStyle.js +0 -29
  747. package/src/theming/getEffectiveStyle.js +0 -23
  748. package/src/theming/getStylesString.js +0 -13
  749. package/src/theming/getThemeDesignerTheme.js +0 -67
  750. package/src/thirdparty/Array.from.js +0 -16
  751. package/src/thirdparty/Array.prototype.fill.js +0 -44
  752. package/src/thirdparty/Array.prototype.find.js +0 -46
  753. package/src/thirdparty/Array.prototype.includes.js +0 -51
  754. package/src/thirdparty/Element.prototype.closest.js +0 -11
  755. package/src/thirdparty/Element.prototype.matches.js +0 -6
  756. package/src/thirdparty/Map.prototype.keys.js +0 -9
  757. package/src/thirdparty/Number.isInteger.js +0 -5
  758. package/src/thirdparty/Number.isNaN.js +0 -1
  759. package/src/thirdparty/Number.parseFloat.js +0 -1
  760. package/src/thirdparty/Number.parseInt.js +0 -1
  761. package/src/thirdparty/Object.assign.js +0 -31
  762. package/src/thirdparty/Object.entries.js +0 -11
  763. package/src/thirdparty/Symbol.js +0 -2
  764. package/src/thirdparty/WeakSet.js +0 -27
  765. package/src/thirdparty/es6-string-methods.js +0 -182
  766. package/src/thirdparty/events-polyfills.js +0 -89
  767. package/src/thirdparty/fetch.js +0 -1
  768. package/src/thirdparty/merge.js +0 -10
  769. package/src/thirdparty/template.js +0 -600
  770. package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  771. package/src/types/AnimationMode.js +0 -7
  772. package/src/types/CSSSize.js +0 -9
  773. package/src/types/CalendarSelection.js +0 -17
  774. package/src/types/CalendarType.js +0 -22
  775. package/src/types/DataType.js +0 -25
  776. package/src/types/Float.js +0 -10
  777. package/src/types/Integer.js +0 -9
  778. package/src/types/ItemNavigationBehavior.js +0 -21
  779. package/src/types/NavigationMode.js +0 -7
  780. package/src/types/PopupState.js +0 -37
  781. package/src/types/ValueState.js +0 -22
  782. package/src/util/AriaLabelHelper.js +0 -41
  783. package/src/util/EffectiveAssetPath.js +0 -27
  784. package/src/util/FocusableElements.js +0 -73
  785. package/src/util/TabbableElements.js +0 -47
  786. package/src/util/encodeCSS.js +0 -24
  787. package/src/util/findNodeOwner.js +0 -35
  788. package/src/util/isDescendantOf.js +0 -15
  789. package/src/util/isNodeClickable.js +0 -19
  790. package/src/util/isNodeHidden.js +0 -9
  791. package/src/util/isNodeTabbable.js +0 -28
  792. package/src/util/isSlot.js +0 -3
  793. package/src/util/parseProperties.js +0 -89
  794. package/src/util/setToArray.js +0 -10
@@ -0,0 +1,108 @@
1
+ import { registerI18nLoader, fetchI18nBundle, getI18nBundleData } from "./asset-registries/i18n.js";
2
+ import formatMessage from "./util/formatMessage.js";
3
+
4
+ const I18nBundleInstances = new Map<string, I18nBundle>();
5
+
6
+ let customGetI18nBundle: I18nBundleGetter;
7
+
8
+ type I18nText = {
9
+ key: string,
10
+ defaultText: string,
11
+ };
12
+
13
+ type I18nBundleGetter = (packageName: string) => Promise<I18nBundle>;
14
+
15
+ /**
16
+ * @class
17
+ * @public
18
+ */
19
+ class I18nBundle {
20
+ packageName: string;
21
+
22
+ constructor(packageName: string) {
23
+ this.packageName = packageName;
24
+ }
25
+
26
+ /**
27
+ * Returns a text in the currently loaded language
28
+ *
29
+ * @public
30
+ * @param {Object|String} textObj key/defaultText pair or just the key
31
+ * @param params Values for the placeholders
32
+ * @returns {string}
33
+ */
34
+ getText(textObj: I18nText, ...params: Array<number | string>): string {
35
+ if (typeof textObj === "string") {
36
+ textObj = { key: textObj, defaultText: textObj };
37
+ }
38
+
39
+ if (!textObj || !textObj.key) {
40
+ return "";
41
+ }
42
+
43
+ const bundle = getI18nBundleData(this.packageName);
44
+ if (bundle && !bundle[textObj.key]) {
45
+ console.warn(`Key ${textObj.key} not found in the i18n bundle, the default text will be used`); // eslint-disable-line
46
+ }
47
+ const messageText = bundle && bundle[textObj.key] ? bundle[textObj.key] : (textObj.defaultText || textObj.key);
48
+
49
+ return formatMessage(messageText, params);
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Returns the I18nBundle instance for the given package synchronously.
55
+ *
56
+ * @public
57
+ * @param packageName
58
+ * @returns { I18nBundle }
59
+ */
60
+ const getI18nBundleSync = (packageName: string): I18nBundle => {
61
+ if (I18nBundleInstances.has(packageName)) {
62
+ return I18nBundleInstances.get(packageName)!;
63
+ }
64
+
65
+ const i18nBundle = new I18nBundle(packageName);
66
+ I18nBundleInstances.set(packageName, i18nBundle);
67
+ return i18nBundle;
68
+ };
69
+
70
+ /**
71
+ * Fetches and returns the I18nBundle instance for the given package.
72
+ *
73
+ * @public
74
+ * @param packageName
75
+ * @returns { Promise<I18nBundle> }
76
+ */
77
+ const getI18nBundle = async (packageName: string): Promise<I18nBundle> => {
78
+ if (customGetI18nBundle) {
79
+ return customGetI18nBundle(packageName);
80
+ }
81
+
82
+ await fetchI18nBundle(packageName);
83
+ return getI18nBundleSync(packageName);
84
+ };
85
+
86
+ /**
87
+ * Allows developers to provide a custom getI18nBundle implementation
88
+ * If this function is called, the custom implementation will be used for all components and will completely
89
+ * replace the default implementation.
90
+ *
91
+ * @public
92
+ * @param customGet the function to use instead of the standard getI18nBundle implementation
93
+ */
94
+ const registerCustomI18nBundleGetter = (customGet: I18nBundleGetter) => {
95
+ customGetI18nBundle = customGet;
96
+ };
97
+
98
+ export default I18nBundle;
99
+
100
+ export {
101
+ registerI18nLoader,
102
+ getI18nBundle,
103
+ registerCustomI18nBundleGetter,
104
+ };
105
+
106
+ export type {
107
+ I18nText,
108
+ };
@@ -1,15 +1,25 @@
1
+ import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
2
+
1
3
  const rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;
2
4
 
3
5
  class Locale {
4
- constructor(sLocaleId) {
6
+ sLocaleId: string;
7
+ sLanguage: string;
8
+ sScript: string;
9
+ sRegion: string;
10
+ sVariant: string | null;
11
+ sExtension: string | null;
12
+ sPrivateUse: string | null;
13
+
14
+ constructor(sLocaleId: string) {
5
15
  const aResult = rLocale.exec(sLocaleId.replace(/_/g, "-"));
6
16
  if (aResult === null) {
7
17
  throw new Error(`The given language ${sLocaleId} does not adhere to BCP-47.`);
8
18
  }
9
19
  this.sLocaleId = sLocaleId;
10
- this.sLanguage = aResult[1] || null;
11
- this.sScript = aResult[2] || null;
12
- this.sRegion = aResult[3] || null;
20
+ this.sLanguage = aResult[1] || DEFAULT_LANGUAGE;
21
+ this.sScript = aResult[2] || "";
22
+ this.sRegion = aResult[3] || "";
13
23
  this.sVariant = (aResult[4] && aResult[4].slice(1)) || null;
14
24
  this.sExtension = (aResult[5] && aResult[5].slice(1)) || null;
15
25
  this.sPrivateUse = aResult[6] || null;
@@ -62,7 +72,7 @@ class Locale {
62
72
  return this.sPrivateUse ? this.sPrivateUse.slice(2).split("-") : [];
63
73
  }
64
74
 
65
- hasPrivateUseSubtag(sSubtag) {
75
+ hasPrivateUseSubtag(sSubtag: string) {
66
76
  return this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;
67
77
  }
68
78
 
@@ -0,0 +1,16 @@
1
+ import type UI5Element from "../UI5Element";
2
+
3
+ const rtlAwareSet = new Set<typeof UI5Element>();
4
+
5
+ const markAsRtlAware = (klass: typeof UI5Element) => {
6
+ rtlAwareSet.add(klass);
7
+ };
8
+
9
+ const isRtlAware = (klass: typeof UI5Element) => {
10
+ return rtlAwareSet.has(klass);
11
+ };
12
+
13
+ export {
14
+ markAsRtlAware,
15
+ isRtlAware,
16
+ };
@@ -0,0 +1,18 @@
1
+ import { reRenderAllUI5Elements } from "../Render.js";
2
+ import { fireDirectionChange } from "./directionChange.js";
3
+
4
+ /**
5
+ * Re-renders all RTL-aware UI5 Elements.
6
+ *
7
+ * <b>Note:</b> Call this method whenever you change the "dir" property anywhere in your HTML page.
8
+ * <b>Example:</b> <code>document.body.dir = "rtl"; applyDirection();</code>
9
+ * @public
10
+ * @returns {Promise<void>}
11
+ */
12
+ const applyDirection = async (): Promise<void> => {
13
+ const listenersResults = fireDirectionChange();
14
+ await Promise.all(listenersResults);
15
+ await reRenderAllUI5Elements({ rtlAware: true });
16
+ };
17
+
18
+ export default applyDirection;
@@ -0,0 +1,34 @@
1
+ import EventProvider from "../EventProvider.js";
2
+
3
+ type DirectionChangeCallback = () => void;
4
+
5
+ const eventProvider = new EventProvider<undefined, void>();
6
+ const DIR_CHANGE = "directionChange";
7
+
8
+ /**
9
+ * Attach a callback that will be executed whenever the application calls the "applyDirection" function
10
+ * @public
11
+ * @param listener
12
+ */
13
+ const attachDirectionChange = (listener: DirectionChangeCallback) => {
14
+ eventProvider.attachEvent(DIR_CHANGE, listener);
15
+ };
16
+
17
+ /**
18
+ * Detach a callback that was passed with "attachDirectionChange"
19
+ * @public
20
+ * @param listener
21
+ */
22
+ const detachDirectionChange = (listener: DirectionChangeCallback) => {
23
+ eventProvider.detachEvent(DIR_CHANGE, listener);
24
+ };
25
+
26
+ const fireDirectionChange = () => {
27
+ return eventProvider.fireEvent(DIR_CHANGE, undefined);
28
+ };
29
+
30
+ export {
31
+ attachDirectionChange,
32
+ detachDirectionChange,
33
+ fireDirectionChange,
34
+ };
@@ -0,0 +1,28 @@
1
+ import { getRTL } from "../config/RTL.js";
2
+
3
+ const GLOBAL_DIR_CSS_VAR = "--_ui5_dir";
4
+
5
+ const getEffectiveDir = (element: HTMLElement) => {
6
+ const doc = window.document;
7
+ const dirValues = ["ltr", "rtl"]; // exclude "auto" and "" from all calculations
8
+ const locallyAppliedDir = getComputedStyle(element).getPropertyValue(GLOBAL_DIR_CSS_VAR);
9
+
10
+ // In that order, inspect the CSS Var (for modern browsers), the element itself, html and body (for IE fallback)
11
+ if (dirValues.includes(locallyAppliedDir)) {
12
+ return locallyAppliedDir;
13
+ }
14
+ if (dirValues.includes(element.dir)) {
15
+ return element.dir;
16
+ }
17
+ if (dirValues.includes(doc.documentElement.dir)) {
18
+ return doc.documentElement.dir;
19
+ }
20
+ if (dirValues.includes(doc.body.dir)) {
21
+ return doc.body.dir;
22
+ }
23
+
24
+ // Finally, check the configuration for explicitly set RTL or language-implied RTL
25
+ return getRTL() ? "rtl" : undefined;
26
+ };
27
+
28
+ export default getEffectiveDir;
@@ -1,18 +1,19 @@
1
1
  import detectNavigatorLanguage from "../util/detectNavigatorLanguage.js";
2
2
  import { getLanguage as getConfigLanguage } from "../config/Language.js";
3
3
  import Locale from "./Locale.js";
4
+ import { DEFAULT_LOCALE } from "../generated/AssetParameters.js";
4
5
 
5
- const cache = new Map();
6
+ const cache = new Map<string, Locale>();
6
7
 
7
- const getLocaleInstance = lang => {
8
+ const getLocaleInstance = (lang: string) => {
8
9
  if (!cache.has(lang)) {
9
10
  cache.set(lang, new Locale(lang));
10
11
  }
11
12
 
12
- return cache.get(lang);
13
+ return cache.get(lang)!;
13
14
  };
14
15
 
15
- const convertToLocaleOrNull = lang => {
16
+ const convertToLocaleOrNull = (lang: string) => {
16
17
  try {
17
18
  if (lang && typeof lang === "string") {
18
19
  return getLocaleInstance(lang);
@@ -20,19 +21,23 @@ const convertToLocaleOrNull = lang => {
20
21
  } catch (e) {
21
22
  // ignore
22
23
  }
24
+
25
+ return new Locale(DEFAULT_LOCALE);
23
26
  };
24
27
 
25
28
  /**
26
29
  * Returns the locale based on the parameter or configured language Configuration#getLanguage
27
30
  * If no language has been configured - a new locale based on browser language is returned
28
31
  */
29
- const getLocale = lang => {
32
+ const getLocale = (lang?: string): Locale => {
30
33
  if (lang) {
31
34
  return convertToLocaleOrNull(lang);
32
35
  }
33
36
 
34
- if (getConfigLanguage()) {
35
- return getLocaleInstance(getConfigLanguage());
37
+ const configLanguage = getConfigLanguage();
38
+
39
+ if (configLanguage) {
40
+ return getLocaleInstance(configLanguage);
36
41
  }
37
42
 
38
43
  return convertToLocaleOrNull(detectNavigatorLanguage());
@@ -0,0 +1,24 @@
1
+ import EventProvider from "../EventProvider.js";
2
+
3
+ type LanguageChangeCallback = (lang: string) => Promise<void | Array<void>>;
4
+
5
+ const eventProvider = new EventProvider<string, Promise<void | Array<void>>>();
6
+ const LANG_CHANGE = "languageChange";
7
+
8
+ const attachLanguageChange = (listener: LanguageChangeCallback) => {
9
+ eventProvider.attachEvent(LANG_CHANGE, listener);
10
+ };
11
+
12
+ const detachLanguageChange = (listener: LanguageChangeCallback) => {
13
+ eventProvider.detachEvent(LANG_CHANGE, listener);
14
+ };
15
+
16
+ const fireLanguageChange = (lang: string) => {
17
+ return eventProvider.fireEventAsync(LANG_CHANGE, lang);
18
+ };
19
+
20
+ export {
21
+ attachLanguageChange,
22
+ detachLanguageChange,
23
+ fireLanguageChange,
24
+ };
@@ -6,7 +6,7 @@ import { DEFAULT_LOCALE } from "../generated/AssetParameters.js";
6
6
  * @param {string} locale Locale string in Java format (underscores) or null
7
7
  * @returns {string} Next fallback Locale or "en" if no fallbacks found.
8
8
  */
9
- const nextFallbackLocale = locale => {
9
+ const nextFallbackLocale = (locale: string) => {
10
10
  if (!locale) {
11
11
  return DEFAULT_LOCALE;
12
12
  }
@@ -7,7 +7,7 @@ const SAPSupportabilityLocales = /(?:^|-)(saptrc|sappsd)(?:-|$)/i;
7
7
  const M_ISO639_NEW_TO_OLD = {
8
8
  "he": "iw",
9
9
  "yi": "ji",
10
- "id": "in",
10
+ "nb": "no",
11
11
  "sr": "sh",
12
12
  };
13
13
 
@@ -16,7 +16,7 @@ const M_ISO639_NEW_TO_OLD = {
16
16
  * @param {string} locale locale to normalize
17
17
  * @returns {string} Normalized locale, "undefined" if the locale can't be normalized or the default locale, if no locale provided.
18
18
  */
19
- const normalizeLocale = locale => {
19
+ const normalizeLocale = (locale: string) => {
20
20
  let m;
21
21
 
22
22
  if (!locale) {
@@ -30,7 +30,7 @@ const normalizeLocale = locale => {
30
30
  const variants = m[4] ? m[4].slice(1) : undefined;
31
31
  const isPrivate = m[6];
32
32
 
33
- language = M_ISO639_NEW_TO_OLD[language] || language;
33
+ language = M_ISO639_NEW_TO_OLD[language as keyof typeof M_ISO639_NEW_TO_OLD] || language;
34
34
 
35
35
  // recognize and convert special SAP supportability locales (overwrites m[]!)
36
36
  if ((isPrivate && (m = SAPSupportabilityLocales.exec(isPrivate))) /* eslint-disable-line */ ||
@@ -49,6 +49,8 @@ const normalizeLocale = locale => {
49
49
 
50
50
  return language + (region ? "_" + region + (variants ? "_" + variants.replace("-", "_") : "") : ""); /* eslint-disable-line */
51
51
  }
52
+
53
+ return DEFAULT_LOCALE;
52
54
  };
53
55
 
54
56
  export default normalizeLocale;
@@ -0,0 +1,60 @@
1
+ import {
2
+ render,
3
+ html,
4
+ svg,
5
+ TemplateResult,
6
+ RenderOptions,
7
+ } from "lit-html";
8
+
9
+ import { getFeature } from "../FeaturesRegistry.js";
10
+ import type { LitStatic } from "../CustomElementsScope.js";
11
+ import type OpenUI5Enablement from "../features/OpenUI5Enablement.js";
12
+ import type UI5Element from "../UI5Element.js";
13
+ import { TemplateFunctionResult } from "./executeTemplate.js";
14
+
15
+ const effectiveHtml = (strings: TemplateStringsArray, ...values: Array<unknown>) => {
16
+ const litStatic = getFeature<typeof LitStatic>("LitStatic");
17
+ const fn = litStatic ? litStatic.html : html;
18
+ return fn(strings, ...values);
19
+ };
20
+
21
+ const effectiveSvg = (strings: TemplateStringsArray, ...values: Array<unknown>) => {
22
+ const litStatic = getFeature<typeof LitStatic>("LitStatic");
23
+ const fn = litStatic ? litStatic.svg : svg;
24
+ return fn(strings, ...values);
25
+ };
26
+
27
+ const litRender = (templateResult: TemplateFunctionResult, container: HTMLElement | DocumentFragment, styleStrOrHrefsArr: string | Array<string> | undefined, forStaticArea: boolean, options: RenderOptions) => {
28
+ const openUI5Enablement = getFeature<typeof OpenUI5Enablement>("OpenUI5Enablement");
29
+ if (openUI5Enablement && !forStaticArea) {
30
+ templateResult = openUI5Enablement.wrapTemplateResultInBusyMarkup(effectiveHtml, options.host as UI5Element, templateResult as TemplateResult);
31
+ }
32
+
33
+ if (typeof styleStrOrHrefsArr === "string") {
34
+ templateResult = effectiveHtml`<style>${styleStrOrHrefsArr}</style>${templateResult}`;
35
+ } else if (Array.isArray(styleStrOrHrefsArr) && styleStrOrHrefsArr.length) {
36
+ templateResult = effectiveHtml`${styleStrOrHrefsArr.map(href => effectiveHtml`<link type="text/css" rel="stylesheet" href="${href}">`)}${templateResult}`;
37
+ }
38
+ render(templateResult as TemplateResult, container, options);
39
+ };
40
+
41
+ const scopeTag = (tag: string, tags: Array<string>, suffix: string) => {
42
+ const litStatic = getFeature<typeof LitStatic>("LitStatic");
43
+ if (litStatic) {
44
+ return litStatic.unsafeStatic((tags || []).includes(tag) ? `${tag}-${suffix}` : tag);
45
+ }
46
+ };
47
+
48
+ export {
49
+ effectiveHtml as html,
50
+ effectiveSvg as svg,
51
+ };
52
+ export { scopeTag };
53
+ export { repeat } from "lit-html/directives/repeat.js";
54
+ export { classMap } from "lit-html/directives/class-map.js";
55
+ // @ts-ignore style-map is a JS file
56
+ export { styleMap } from "./directives/style-map.js";
57
+ export { ifDefined } from "lit-html/directives/if-defined.js";
58
+ export { unsafeHTML } from "lit-html/directives/unsafe-html.js";
59
+
60
+ export default litRender;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2018 Google LLC
4
+ * SPDX-License-Identifier: BSD-3-Clause
5
+ */
6
+
7
+ /**
8
+ * This is the original style-map.js directive from lit-html 2 with the only difference that "render" is not called even for the first rendering (update is used instead)
9
+ */
10
+
11
+ import { noChange } from 'lit-html';
12
+ import { directive, Directive, PartType, } from 'lit-html/directive.js';
13
+ class StyleMapDirective extends Directive {
14
+ constructor(partInfo) {
15
+ var _a;
16
+ super(partInfo);
17
+ if (partInfo.type !== PartType.ATTRIBUTE ||
18
+ partInfo.name !== 'style' ||
19
+ ((_a = partInfo.strings) === null || _a === void 0 ? void 0 : _a.length) > 2) {
20
+ throw new Error('The `styleMap` directive must be used in the `style` attribute ' +
21
+ 'and must be the only part in the attribute.');
22
+ }
23
+ }
24
+ render(styleInfo) {
25
+ return "";
26
+ }
27
+ update(part, [styleInfo]) {
28
+ const { style } = part.element;
29
+ if (this._previousStyleProperties === undefined) {
30
+ this._previousStyleProperties = new Set();
31
+ for (const name in styleInfo) {
32
+ this._previousStyleProperties.add(name);
33
+ }
34
+ // return this.render(styleInfo);
35
+ }
36
+ // Remove old properties that no longer exist in styleInfo
37
+ // We use forEach() instead of for-of so that re don't require down-level
38
+ // iteration.
39
+ this._previousStyleProperties.forEach((name) => {
40
+ // If the name isn't in styleInfo or it's null/undefined
41
+ if (styleInfo[name] == null) {
42
+ this._previousStyleProperties.delete(name);
43
+ if (name.includes('-')) {
44
+ style.removeProperty(name);
45
+ }
46
+ else {
47
+ // Note reset using empty string (vs null) as IE11 does not always
48
+ // reset via null (https://developer.mozilla.org/en-US/docs/Web/API/ElementCSSInlineStyle/style#setting_styles)
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
+ style[name] = '';
51
+ }
52
+ }
53
+ });
54
+ // Add or update properties
55
+ for (const name in styleInfo) {
56
+ const value = styleInfo[name];
57
+ if (value != null) {
58
+ this._previousStyleProperties.add(name);
59
+ if (name.includes('-')) {
60
+ style.setProperty(name, value);
61
+ }
62
+ else {
63
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
+ style[name] = value;
65
+ }
66
+ }
67
+ }
68
+ return noChange;
69
+ }
70
+ }
71
+
72
+ export const styleMap = directive(StyleMapDirective);
@@ -0,0 +1,40 @@
1
+ import { getCustomElementsScopingSuffix, shouldScopeCustomElement } from "../CustomElementsScopeUtils.js";
2
+ import type UI5Element from "../UI5Element.js";
3
+
4
+ type TemplateFunctionResult = object;
5
+ type TemplateFunction = (component: UI5Element, tagsToScope: Array<string>, scope: string | undefined) => TemplateFunctionResult;
6
+
7
+ /**
8
+ * Runs a component's template with the component's current state, while also scoping HTML
9
+ *
10
+ * @param template - the template to execute
11
+ * @param component - the component
12
+ * @public
13
+ */
14
+ const executeTemplate = (template: TemplateFunction, component: UI5Element): TemplateFunctionResult => {
15
+ const tagsToScope = getTagsToScope(component);
16
+ const scope = getCustomElementsScopingSuffix();
17
+ return template(component, tagsToScope, scope);
18
+ };
19
+
20
+ /**
21
+ * Returns all tags, used inside component's template subject to scoping.
22
+ * @param component - the component
23
+ * @returns {Array[]}
24
+ * @private
25
+ */
26
+ const getTagsToScope = (component: UI5Element) => {
27
+ const ctor = component.constructor as typeof UI5Element;
28
+
29
+ const componentTag = ctor.getMetadata().getPureTag();
30
+ const tagsToScope = ctor.getUniqueDependencies().map((dep: typeof UI5Element) => dep.getMetadata().getPureTag()).filter(shouldScopeCustomElement);
31
+
32
+ if (shouldScopeCustomElement(componentTag)) {
33
+ tagsToScope.push(componentTag);
34
+ }
35
+
36
+ return tagsToScope;
37
+ };
38
+
39
+ export default executeTemplate;
40
+ export type { TemplateFunction, TemplateFunctionResult };
@@ -0,0 +1,62 @@
1
+ import { reRenderAllUI5Elements } from "../Render.js";
2
+ import getSharedResource from "../getSharedResource.js";
3
+ import EventProvider from "../EventProvider.js";
4
+
5
+ type CustomCSSChangeCallback = (tag: string) => void;
6
+
7
+ const eventProvider = getSharedResource("CustomStyle.eventProvider", new EventProvider<string, void>());
8
+ const CUSTOM_CSS_CHANGE = "CustomCSSChange";
9
+
10
+ const attachCustomCSSChange = (listener: CustomCSSChangeCallback) => {
11
+ eventProvider.attachEvent(CUSTOM_CSS_CHANGE, listener);
12
+ };
13
+
14
+ const detachCustomCSSChange = (listener: CustomCSSChangeCallback) => {
15
+ eventProvider.detachEvent(CUSTOM_CSS_CHANGE, listener);
16
+ };
17
+
18
+ const fireCustomCSSChange = (tag: string) => {
19
+ return eventProvider.fireEvent(CUSTOM_CSS_CHANGE, tag);
20
+ };
21
+
22
+ const customCSSFor = getSharedResource<Record<string, Array<string>>>("CustomStyle.customCSSFor", {});
23
+
24
+ // Listen to the eventProvider, in case other copies of this CustomStyle module fire this
25
+ // event, and this copy would therefore need to reRender the ui5 webcomponents; but
26
+ // don't reRender if it was this copy that fired the event to begin with.
27
+ let skipRerender: boolean;
28
+ attachCustomCSSChange((tag: string) => {
29
+ if (!skipRerender) {
30
+ reRenderAllUI5Elements({ tag });
31
+ }
32
+ });
33
+
34
+ const addCustomCSS = (tag: string, css: string) => {
35
+ if (!customCSSFor[tag]) {
36
+ customCSSFor[tag] = [];
37
+ }
38
+ customCSSFor[tag].push(css);
39
+
40
+ skipRerender = true;
41
+ try {
42
+ // The event is fired and the attached event listeners are all called synchronously
43
+ // The skipRerender flag will be used to avoid calling reRenderAllUI5Elements twice when it is this copy
44
+ // of CustomStyle.js which is firing the `CustomCSSChange` event.
45
+ fireCustomCSSChange(tag);
46
+ } finally {
47
+ skipRerender = false;
48
+ }
49
+
50
+ return reRenderAllUI5Elements({ tag });
51
+ };
52
+
53
+ const getCustomCSS = (tag: string) => {
54
+ return customCSSFor[tag] ? customCSSFor[tag].join("") : "";
55
+ };
56
+
57
+ export {
58
+ addCustomCSS,
59
+ getCustomCSS,
60
+ attachCustomCSSChange,
61
+ detachCustomCSSChange,
62
+ };
@@ -1,17 +1,19 @@
1
1
  import EventProvider from "../EventProvider.js";
2
2
 
3
- const eventProvider = new EventProvider();
3
+ type ThemeLoadedCallback = (theme: string) => void;
4
+
5
+ const eventProvider = new EventProvider<string, void>();
4
6
  const THEME_LOADED = "themeLoaded";
5
7
 
6
- const attachThemeLoaded = listener => {
8
+ const attachThemeLoaded = (listener: ThemeLoadedCallback) => {
7
9
  eventProvider.attachEvent(THEME_LOADED, listener);
8
10
  };
9
11
 
10
- const detachThemeLoaded = listener => {
12
+ const detachThemeLoaded = (listener: ThemeLoadedCallback) => {
11
13
  eventProvider.detachEvent(THEME_LOADED, listener);
12
14
  };
13
15
 
14
- const fireThemeLoaded = theme => {
16
+ const fireThemeLoaded = (theme: string) => {
15
17
  return eventProvider.fireEvent(THEME_LOADED, theme);
16
18
  };
17
19