@ui5/webcomponents-base 0.0.0-934b4df24 → 0.0.0-974b11d82

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 (784) hide show
  1. package/.eslintignore +5 -0
  2. package/CHANGELOG.md +563 -0
  3. package/README.md +53 -7
  4. package/bundle.esm.js +31 -18
  5. package/dist/AssetRegistry.d.ts +5 -0
  6. package/dist/AssetRegistry.js +6 -10
  7. package/dist/AssetRegistry.js.map +1 -0
  8. package/dist/Boot.d.ts +8 -0
  9. package/dist/Boot.js +48 -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 +73 -18
  16. package/dist/CustomElementsRegistry.js.map +1 -0
  17. package/dist/CustomElementsScope.d.ts +7 -0
  18. package/dist/CustomElementsScope.js +11 -0
  19. package/dist/CustomElementsScope.js.map +1 -0
  20. package/dist/CustomElementsScopeUtils.d.ts +55 -0
  21. package/dist/CustomElementsScopeUtils.js +90 -0
  22. package/dist/CustomElementsScopeUtils.js.map +1 -0
  23. package/dist/DOMObserver.d.ts +11 -0
  24. package/dist/DOMObserver.js +23 -0
  25. package/dist/DOMObserver.js.map +1 -0
  26. package/dist/Device.d.ts +12 -0
  27. package/dist/Device.js +159 -816
  28. package/dist/Device.js.map +1 -0
  29. package/dist/EventProvider.d.ts +25 -0
  30. package/dist/EventProvider.js +67 -70
  31. package/dist/EventProvider.js.map +1 -0
  32. package/dist/FeaturesRegistry.d.ts +3 -0
  33. package/dist/FeaturesRegistry.js +5 -7
  34. package/dist/FeaturesRegistry.js.map +1 -0
  35. package/dist/FontFace.d.ts +2 -0
  36. package/dist/FontFace.js +21 -69
  37. package/dist/FontFace.js.map +1 -0
  38. package/dist/InitialConfiguration.d.ts +22 -0
  39. package/dist/InitialConfiguration.js +119 -103
  40. package/dist/InitialConfiguration.js.map +1 -0
  41. package/dist/Keys.d.ts +57 -0
  42. package/dist/Keys.js +175 -158
  43. package/dist/Keys.js.map +1 -0
  44. package/dist/ManagedStyles.d.ts +8 -0
  45. package/dist/ManagedStyles.js +77 -0
  46. package/dist/ManagedStyles.js.map +1 -0
  47. package/dist/MarkedEvents.d.ts +9 -0
  48. package/dist/MarkedEvents.js +15 -0
  49. package/dist/MarkedEvents.js.map +1 -0
  50. package/dist/MediaRange.d.ts +37 -0
  51. package/dist/MediaRange.js +98 -0
  52. package/dist/MediaRange.js.map +1 -0
  53. package/dist/PropertiesFileFormat.d.ts +8 -0
  54. package/dist/PropertiesFileFormat.js +85 -0
  55. package/dist/PropertiesFileFormat.js.map +1 -0
  56. package/dist/Render.d.ts +47 -0
  57. package/dist/Render.js +143 -0
  58. package/dist/Render.js.map +1 -0
  59. package/dist/RenderQueue.d.ts +19 -0
  60. package/dist/RenderQueue.js +53 -39
  61. package/dist/RenderQueue.js.map +1 -0
  62. package/dist/Runtimes.d.ts +27 -0
  63. package/dist/Runtimes.js +86 -0
  64. package/dist/Runtimes.js.map +1 -0
  65. package/dist/StaticArea.d.ts +0 -0
  66. package/dist/StaticArea.js +4 -39
  67. package/dist/StaticArea.js.map +1 -0
  68. package/dist/StaticAreaItem.d.ts +36 -0
  69. package/dist/StaticAreaItem.js +92 -98
  70. package/dist/StaticAreaItem.js.map +1 -0
  71. package/dist/SystemCSSVars.d.ts +2 -0
  72. package/dist/SystemCSSVars.js +9 -0
  73. package/dist/SystemCSSVars.js.map +1 -0
  74. package/dist/Theming.d.ts +3 -0
  75. package/dist/Theming.js +3 -2
  76. package/dist/Theming.js.map +1 -0
  77. package/dist/UI5Element.d.ts +384 -0
  78. package/dist/UI5Element.js +948 -906
  79. package/dist/UI5Element.js.map +1 -0
  80. package/dist/UI5ElementMetadata.d.ts +150 -0
  81. package/dist/UI5ElementMetadata.js +278 -158
  82. package/dist/UI5ElementMetadata.js.map +1 -0
  83. package/dist/animations/AnimationQueue.d.ts +8 -0
  84. package/dist/animations/AnimationQueue.js +31 -38
  85. package/dist/animations/AnimationQueue.js.map +1 -0
  86. package/dist/animations/animate.d.ts +14 -0
  87. package/dist/animations/animate.js +46 -51
  88. package/dist/animations/animate.js.map +1 -0
  89. package/dist/animations/scroll.d.ts +5 -0
  90. package/dist/animations/scroll.js +18 -27
  91. package/dist/animations/scroll.js.map +1 -0
  92. package/dist/animations/slideDown.d.ts +5 -0
  93. package/dist/animations/slideDown.js +53 -78
  94. package/dist/animations/slideDown.js.map +1 -0
  95. package/dist/animations/slideUp.d.ts +5 -0
  96. package/dist/animations/slideUp.js +49 -70
  97. package/dist/animations/slideUp.js.map +1 -0
  98. package/dist/api.json +1 -0
  99. package/dist/asset-registries/Icons.d.ts +30 -0
  100. package/dist/asset-registries/Icons.js +104 -24
  101. package/dist/asset-registries/Icons.js.map +1 -0
  102. package/dist/asset-registries/Illustrations.d.ts +17 -0
  103. package/dist/asset-registries/Illustrations.js +46 -0
  104. package/dist/asset-registries/Illustrations.js.map +1 -0
  105. package/dist/asset-registries/LocaleData.d.ts +7 -0
  106. package/dist/asset-registries/LocaleData.js +125 -114
  107. package/dist/asset-registries/LocaleData.js.map +1 -0
  108. package/dist/asset-registries/Themes.d.ts +11 -0
  109. package/dist/asset-registries/Themes.js +39 -76
  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 +74 -58
  113. package/dist/asset-registries/i18n.js.map +1 -0
  114. package/dist/assets/bundle.esm.ea2cc5c5.js +60 -0
  115. package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
  116. package/dist/assets-meta/IconCollectionsAlias.js +38 -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 +23 -10
  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 +15 -0
  125. package/dist/config/FormatSettings.js +15 -9
  126. package/dist/config/FormatSettings.js.map +1 -0
  127. package/dist/config/Icons.d.ts +55 -0
  128. package/dist/config/Icons.js +103 -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 +54 -10
  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 +26 -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 +23 -0
  150. package/dist/decorators/customElement.js +31 -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 +312 -274
  172. package/dist/delegate/ItemNavigation.js.map +1 -0
  173. package/dist/delegate/ResizeHandler.d.ts +25 -0
  174. package/dist/delegate/ResizeHandler.js +82 -63
  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 +19 -0
  180. package/dist/features/F6Navigation.js +151 -0
  181. package/dist/features/F6Navigation.js.map +1 -0
  182. package/dist/features/LegacyDateFormats.d.ts +18 -0
  183. package/dist/features/LegacyDateFormats.js +20 -0
  184. package/dist/features/LegacyDateFormats.js.map +1 -0
  185. package/dist/features/OpenUI5Element.d.ts +9 -0
  186. package/dist/features/OpenUI5Element.js +5 -0
  187. package/dist/features/OpenUI5Element.js.map +1 -0
  188. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  189. package/dist/features/OpenUI5Enablement.js +96 -0
  190. package/dist/features/OpenUI5Enablement.js.map +1 -0
  191. package/dist/features/OpenUI5Support.d.ts +25 -0
  192. package/dist/features/OpenUI5Support.js +94 -86
  193. package/dist/features/OpenUI5Support.js.map +1 -0
  194. package/dist/generated/AssetParameters.js +1 -1
  195. package/dist/generated/VersionInfo.js +10 -0
  196. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  197. package/dist/generated/css/BusyIndicator.css.js +7 -0
  198. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  199. package/dist/generated/css/FontFace.css.d.ts +3 -0
  200. package/dist/generated/css/FontFace.css.js +7 -0
  201. package/dist/generated/css/FontFace.css.js.map +1 -0
  202. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  203. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  204. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  205. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  206. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  207. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  208. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  209. package/dist/getSharedResource.d.ts +11 -0
  210. package/dist/getSharedResource.js +34 -0
  211. package/dist/getSharedResource.js.map +1 -0
  212. package/dist/global.d.ts +38 -0
  213. package/dist/i18nBundle.d.ts +43 -0
  214. package/dist/i18nBundle.js +73 -28
  215. package/dist/i18nBundle.js.map +1 -0
  216. package/dist/locale/Locale.d.ts +22 -0
  217. package/dist/locale/Locale.js +75 -87
  218. package/dist/locale/Locale.js.map +1 -0
  219. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  220. package/dist/locale/RTLAwareRegistry.js +9 -0
  221. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  222. package/dist/locale/applyDirection.d.ts +10 -0
  223. package/dist/locale/applyDirection.js +17 -0
  224. package/dist/locale/applyDirection.js.map +1 -0
  225. package/dist/locale/directionChange.d.ts +15 -0
  226. package/dist/locale/directionChange.js +24 -0
  227. package/dist/locale/directionChange.js.map +1 -0
  228. package/dist/locale/getEffectiveDir.d.ts +2 -0
  229. package/dist/locale/getEffectiveDir.js +24 -0
  230. package/dist/locale/getEffectiveDir.js.map +1 -0
  231. package/dist/locale/getLocale.d.ts +7 -0
  232. package/dist/locale/getLocale.js +28 -21
  233. package/dist/locale/getLocale.js.map +1 -0
  234. package/dist/locale/languageChange.d.ts +5 -0
  235. package/dist/locale/languageChange.js +14 -0
  236. package/dist/locale/languageChange.js.map +1 -0
  237. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  238. package/dist/locale/nextFallbackLocale.js +15 -19
  239. package/dist/locale/nextFallbackLocale.js.map +1 -0
  240. package/dist/locale/normalizeLocale.d.ts +7 -0
  241. package/dist/locale/normalizeLocale.js +34 -41
  242. package/dist/locale/normalizeLocale.js.map +1 -0
  243. package/dist/renderer/LitRenderer.d.ts +14 -0
  244. package/dist/renderer/LitRenderer.js +38 -12
  245. package/dist/renderer/LitRenderer.js.map +1 -0
  246. package/dist/renderer/directives/style-map.js +72 -0
  247. package/dist/renderer/executeTemplate.d.ts +13 -0
  248. package/dist/renderer/executeTemplate.js +30 -0
  249. package/dist/renderer/executeTemplate.js.map +1 -0
  250. package/dist/sap/base/Log.js +240 -0
  251. package/dist/sap/base/assert.js +7 -0
  252. package/dist/sap/base/security/URLListValidator.js +159 -0
  253. package/dist/sap/base/security/encodeCSS.js +14 -0
  254. package/dist/sap/base/security/encodeXML.js +23 -0
  255. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  256. package/dist/sap/base/strings/toHex.js +8 -0
  257. package/dist/sap/base/util/now.js +7 -0
  258. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  259. package/dist/theming/CustomStyle.d.ts +6 -0
  260. package/dist/theming/CustomStyle.js +46 -17
  261. package/dist/theming/CustomStyle.js.map +1 -0
  262. package/dist/theming/ThemeLoaded.d.ts +5 -0
  263. package/dist/theming/ThemeLoaded.js +14 -0
  264. package/dist/theming/ThemeLoaded.js.map +1 -0
  265. package/dist/theming/applyTheme.d.ts +2 -0
  266. package/dist/theming/applyTheme.js +63 -69
  267. package/dist/theming/applyTheme.js.map +1 -0
  268. package/dist/theming/getConstructableStyle.d.ts +9 -0
  269. package/dist/theming/getConstructableStyle.js +15 -15
  270. package/dist/theming/getConstructableStyle.js.map +1 -0
  271. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  272. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  273. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  274. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  275. package/dist/theming/getEffectiveStyle.js +30 -13
  276. package/dist/theming/getEffectiveStyle.js.map +1 -0
  277. package/dist/theming/getStylesString.d.ts +3 -0
  278. package/dist/theming/getStylesString.js +11 -0
  279. package/dist/theming/getStylesString.js.map +1 -0
  280. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  281. package/dist/theming/getThemeDesignerTheme.js +73 -60
  282. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  283. package/dist/theming/preloadLinks.d.ts +3 -0
  284. package/dist/theming/preloadLinks.js +19 -0
  285. package/dist/theming/preloadLinks.js.map +1 -0
  286. package/dist/thirdparty/_merge.d.ts +2 -0
  287. package/dist/thirdparty/_merge.js +7 -4
  288. package/dist/thirdparty/_merge.js.map +1 -0
  289. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  290. package/dist/thirdparty/isPlainObject.js +11 -10
  291. package/dist/thirdparty/isPlainObject.js.map +1 -0
  292. package/dist/thirdparty/merge.d.ts +2 -0
  293. package/dist/thirdparty/merge.js +4 -8
  294. package/dist/thirdparty/merge.js.map +1 -0
  295. package/dist/types/AnimationMode.d.ts +32 -0
  296. package/dist/types/AnimationMode.js +33 -6
  297. package/dist/types/AnimationMode.js.map +1 -0
  298. package/dist/types/CSSColor.d.ts +16 -0
  299. package/dist/types/CSSColor.js +19 -0
  300. package/dist/types/CSSColor.js.map +1 -0
  301. package/dist/types/CalendarType.d.ts +37 -0
  302. package/dist/types/CalendarType.js +35 -18
  303. package/dist/types/CalendarType.js.map +1 -0
  304. package/dist/types/DOMReference.d.ts +17 -0
  305. package/dist/types/DOMReference.js +25 -0
  306. package/dist/types/DOMReference.js.map +1 -0
  307. package/dist/types/DataType.d.ts +25 -0
  308. package/dist/types/DataType.js +33 -14
  309. package/dist/types/DataType.js.map +1 -0
  310. package/dist/types/Float.d.ts +18 -0
  311. package/dist/types/Float.js +22 -0
  312. package/dist/types/Float.js.map +1 -0
  313. package/dist/types/Integer.d.ts +18 -0
  314. package/dist/types/Integer.js +18 -5
  315. package/dist/types/Integer.js.map +1 -0
  316. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  317. package/dist/types/InvisibleMessageMode.js +27 -0
  318. package/dist/types/InvisibleMessageMode.js.map +1 -0
  319. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  320. package/dist/types/ItemNavigationBehavior.js +22 -17
  321. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  322. package/dist/types/NavigationMode.d.ts +32 -0
  323. package/dist/types/NavigationMode.js +33 -5
  324. package/dist/types/NavigationMode.js.map +1 -0
  325. package/dist/types/ValueState.d.ts +42 -0
  326. package/dist/types/ValueState.js +41 -19
  327. package/dist/types/ValueState.js.map +1 -0
  328. package/dist/types.d.ts +18 -0
  329. package/dist/types.js +2 -0
  330. package/dist/types.js.map +1 -0
  331. package/dist/updateShadowRoot.d.ts +8 -0
  332. package/dist/updateShadowRoot.js +38 -0
  333. package/dist/updateShadowRoot.js.map +1 -0
  334. package/dist/util/AriaLabelHelper.d.ts +15 -0
  335. package/dist/util/AriaLabelHelper.js +171 -0
  336. package/dist/util/AriaLabelHelper.js.map +1 -0
  337. package/dist/util/Caret.d.ts +7 -0
  338. package/dist/util/Caret.js +23 -0
  339. package/dist/util/Caret.js.map +1 -0
  340. package/dist/util/ColorConversion.d.ts +30 -0
  341. package/dist/util/ColorConversion.js +337 -0
  342. package/dist/util/ColorConversion.js.map +1 -0
  343. package/dist/util/FetchHelper.d.ts +3 -0
  344. package/dist/util/FetchHelper.js +19 -25
  345. package/dist/util/FetchHelper.js.map +1 -0
  346. package/dist/util/FocusableElements.d.ts +4 -0
  347. package/dist/util/FocusableElements.js +67 -56
  348. package/dist/util/FocusableElements.js.map +1 -0
  349. package/dist/util/HTMLSanitizer.d.ts +3 -0
  350. package/dist/util/HTMLSanitizer.js +6 -0
  351. package/dist/util/HTMLSanitizer.js.map +1 -0
  352. package/dist/util/InvisibleMessage.d.ts +10 -0
  353. package/dist/util/InvisibleMessage.js +56 -0
  354. package/dist/util/InvisibleMessage.js.map +1 -0
  355. package/dist/util/PopupUtils.d.ts +7 -0
  356. package/dist/util/PopupUtils.js +74 -0
  357. package/dist/util/PopupUtils.js.map +1 -0
  358. package/dist/util/SlotsHelper.d.ts +9 -0
  359. package/dist/util/SlotsHelper.js +30 -0
  360. package/dist/util/SlotsHelper.js.map +1 -0
  361. package/dist/util/StringHelper.d.ts +3 -0
  362. package/dist/util/StringHelper.js +17 -20
  363. package/dist/util/StringHelper.js.map +1 -0
  364. package/dist/util/TabbableElements.d.ts +17 -0
  365. package/dist/util/TabbableElements.js +53 -43
  366. package/dist/util/TabbableElements.js.map +1 -0
  367. package/dist/util/arraysAreEqual.d.ts +2 -0
  368. package/dist/util/arraysAreEqual.js +13 -0
  369. package/dist/util/arraysAreEqual.js.map +1 -0
  370. package/dist/util/clamp.d.ts +9 -0
  371. package/dist/util/clamp.js +12 -0
  372. package/dist/util/clamp.js.map +1 -0
  373. package/dist/util/createLinkInHead.d.ts +7 -0
  374. package/dist/util/createLinkInHead.js +21 -0
  375. package/dist/util/createLinkInHead.js.map +1 -0
  376. package/dist/util/createStyleInHead.d.ts +8 -0
  377. package/dist/util/createStyleInHead.js +10 -10
  378. package/dist/util/createStyleInHead.js.map +1 -0
  379. package/dist/util/debounce.d.ts +2 -0
  380. package/dist/util/debounce.js +15 -0
  381. package/dist/util/debounce.js.map +1 -0
  382. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  383. package/dist/util/detectNavigatorLanguage.js +7 -10
  384. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  385. package/dist/util/escapeRegex.d.ts +8 -0
  386. package/dist/util/escapeRegex.js +11 -0
  387. package/dist/util/escapeRegex.js.map +1 -0
  388. package/dist/util/formatMessage.d.ts +2 -0
  389. package/dist/util/formatMessage.js +15 -19
  390. package/dist/util/formatMessage.js.map +1 -0
  391. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  392. package/dist/util/generateHighlightedMarkup.js +41 -0
  393. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  394. package/dist/util/getActiveElement.d.ts +2 -0
  395. package/dist/util/getActiveElement.js +9 -0
  396. package/dist/util/getActiveElement.js.map +1 -0
  397. package/dist/util/getClassCopy.d.ts +399 -0
  398. package/dist/util/getClassCopy.js +10 -0
  399. package/dist/util/getClassCopy.js.map +1 -0
  400. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  401. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  402. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  403. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  404. package/dist/util/getEffectiveContentDensity.js +4 -0
  405. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  406. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  407. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  408. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  409. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  410. package/dist/util/getFastNavigationGroups.js +51 -0
  411. package/dist/util/getFastNavigationGroups.js.map +1 -0
  412. package/dist/util/getFileExtension.d.ts +12 -0
  413. package/dist/util/getFileExtension.js +9 -11
  414. package/dist/util/getFileExtension.js.map +1 -0
  415. package/dist/util/getNormalizedTarget.d.ts +7 -0
  416. package/dist/util/getNormalizedTarget.js +14 -0
  417. package/dist/util/getNormalizedTarget.js.map +1 -0
  418. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  419. package/dist/util/getSingletonElementInstance.js +10 -0
  420. package/dist/util/getSingletonElementInstance.js.map +1 -0
  421. package/dist/util/isElementClickable.d.ts +2 -0
  422. package/dist/util/isElementClickable.js +16 -0
  423. package/dist/util/isElementClickable.js.map +1 -0
  424. package/dist/util/isElementHidden.d.ts +2 -0
  425. package/dist/util/isElementHidden.js +8 -0
  426. package/dist/util/isElementHidden.js.map +1 -0
  427. package/dist/util/isElementInView.d.ts +6 -0
  428. package/dist/util/isElementInView.js +12 -0
  429. package/dist/util/isElementInView.js.map +1 -0
  430. package/dist/util/isElementTabbable.d.ts +9 -0
  431. package/dist/util/isElementTabbable.js +30 -0
  432. package/dist/util/isElementTabbable.js.map +1 -0
  433. package/dist/util/isValidPropertyName.d.ts +8 -0
  434. package/dist/util/isValidPropertyName.js +19 -14
  435. package/dist/util/isValidPropertyName.js.map +1 -0
  436. package/dist/util/whenDOMReady.d.ts +2 -0
  437. package/dist/util/whenDOMReady.js +11 -10
  438. package/dist/util/whenDOMReady.js.map +1 -0
  439. package/dist/util/willShowContent.d.ts +2 -0
  440. package/dist/util/willShowContent.js +7 -0
  441. package/dist/util/willShowContent.js.map +1 -0
  442. package/dist/validateThemeRoot.d.ts +2 -0
  443. package/dist/validateThemeRoot.js +47 -0
  444. package/dist/validateThemeRoot.js.map +1 -0
  445. package/index.js +1 -1
  446. package/lib/generate-asset-parameters/index.js +8 -5
  447. package/lib/generate-styles/index.js +31 -0
  448. package/lib/generate-version-info/index.js +32 -0
  449. package/package-scripts.js +50 -26
  450. package/package.json +20 -13
  451. package/src/AssetRegistry.ts +11 -0
  452. package/src/Boot.ts +65 -0
  453. package/src/CSP.ts +66 -0
  454. package/src/CustomElementsRegistry.ts +98 -0
  455. package/src/CustomElementsScope.ts +33 -0
  456. package/src/CustomElementsScopeUtils.ts +115 -0
  457. package/src/DOMObserver.ts +28 -0
  458. package/src/Device.ts +203 -0
  459. package/src/EventProvider.ts +87 -0
  460. package/src/FeaturesRegistry.ts +14 -0
  461. package/src/FontFace.ts +31 -0
  462. package/src/InitialConfiguration.ts +207 -0
  463. package/src/Keys.ts +295 -0
  464. package/src/ManagedStyles.ts +92 -0
  465. package/src/MarkedEvents.ts +20 -0
  466. package/src/MediaRange.ts +110 -0
  467. package/src/PropertiesFileFormat.ts +95 -0
  468. package/src/Render.ts +180 -0
  469. package/src/RenderQueue.ts +71 -0
  470. package/src/Runtimes.ts +114 -0
  471. package/src/StaticArea.ts +3 -0
  472. package/src/StaticAreaItem.ts +113 -0
  473. package/src/SystemCSSVars.ts +10 -0
  474. package/src/Theming.ts +4 -0
  475. package/src/UI5Element.ts +1175 -0
  476. package/src/UI5ElementMetadata.ts +389 -0
  477. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  478. package/src/animations/animate.ts +64 -0
  479. package/src/animations/scroll.ts +21 -0
  480. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  481. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  482. package/src/asset-registries/Icons.ts +161 -0
  483. package/src/asset-registries/Illustrations.ts +75 -0
  484. package/src/asset-registries/LocaleData.ts +172 -0
  485. package/src/asset-registries/Themes.ts +72 -0
  486. package/src/asset-registries/i18n.ts +118 -0
  487. package/src/assets-meta/IconCollectionsAlias.ts +41 -0
  488. package/src/config/AnimationMode.ts +33 -0
  489. package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
  490. package/src/config/FormatSettings.ts +35 -0
  491. package/src/config/Icons.ts +126 -0
  492. package/src/config/Language.ts +72 -0
  493. package/src/config/NoConflict.ts +67 -0
  494. package/src/config/{RTL.js → RTL.ts} +18 -4
  495. package/src/config/Theme.ts +64 -0
  496. package/src/config/ThemeRoots.ts +41 -0
  497. package/src/css/BusyIndicator.css +80 -0
  498. package/src/css/FontFace.css +66 -0
  499. package/src/css/OverrideFontFace.css +32 -0
  500. package/src/css/SystemCSSVars.css +17 -0
  501. package/src/decorators/customElement.ts +57 -0
  502. package/src/decorators/event.ts +28 -0
  503. package/src/decorators/fastNavigation.ts +14 -0
  504. package/src/decorators/languageAware.ts +14 -0
  505. package/src/decorators/property.ts +30 -0
  506. package/src/decorators/slot.ts +49 -0
  507. package/src/decorators/themeAware.ts +14 -0
  508. package/src/delegate/ItemNavigation.ts +393 -0
  509. package/src/delegate/ResizeHandler.ts +100 -0
  510. package/src/delegate/ScrollEnablement.ts +224 -0
  511. package/src/features/F6Navigation.ts +195 -0
  512. package/src/features/LegacyDateFormats.ts +40 -0
  513. package/src/features/OpenUI5Element.ts +11 -0
  514. package/src/features/OpenUI5Enablement.ts +117 -0
  515. package/src/features/OpenUI5Support.ts +153 -0
  516. package/src/generated/css/BusyIndicator.css.ts +9 -0
  517. package/src/generated/css/FontFace.css.ts +9 -0
  518. package/src/generated/css/OverrideFontFace.css.ts +9 -0
  519. package/src/generated/css/SystemCSSVars.css.ts +9 -0
  520. package/src/getSharedResource.ts +39 -0
  521. package/src/global.d.ts +38 -0
  522. package/src/i18nBundle.ts +108 -0
  523. package/src/locale/{Locale.js → Locale.ts} +15 -5
  524. package/src/locale/RTLAwareRegistry.ts +16 -0
  525. package/src/locale/applyDirection.ts +18 -0
  526. package/src/locale/directionChange.ts +34 -0
  527. package/src/locale/getEffectiveDir.ts +28 -0
  528. package/src/locale/{getLocale.js → getLocale.ts} +20 -5
  529. package/src/locale/languageChange.ts +24 -0
  530. package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
  531. package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +5 -3
  532. package/src/renderer/LitRenderer.ts +60 -0
  533. package/src/renderer/directives/style-map.js +72 -0
  534. package/src/renderer/executeTemplate.ts +40 -0
  535. package/src/theming/CustomStyle.ts +64 -0
  536. package/src/theming/ThemeLoaded.ts +24 -0
  537. package/src/theming/applyTheme.ts +90 -0
  538. package/src/theming/getConstructableStyle.ts +31 -0
  539. package/src/theming/getEffectiveLinksHrefs.ts +26 -0
  540. package/src/theming/getEffectiveStyle.ts +41 -0
  541. package/src/theming/getStylesString.ts +15 -0
  542. package/src/theming/getThemeDesignerTheme.ts +101 -0
  543. package/src/theming/preloadLinks.ts +24 -0
  544. package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
  545. package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
  546. package/src/thirdparty/merge.ts +5 -0
  547. package/src/types/AnimationMode.ts +33 -0
  548. package/src/types/CSSColor.ts +20 -0
  549. package/src/types/CalendarType.ts +38 -0
  550. package/src/types/DOMReference.ts +28 -0
  551. package/src/types/DataType.ts +51 -0
  552. package/src/types/Float.ts +25 -0
  553. package/src/types/Integer.ts +25 -0
  554. package/src/types/InvisibleMessageMode.ts +27 -0
  555. package/src/types/ItemNavigationBehavior.ts +26 -0
  556. package/src/types/NavigationMode.ts +33 -0
  557. package/src/types/ValueState.ts +47 -0
  558. package/src/types.ts +30 -0
  559. package/src/updateShadowRoot.ts +42 -0
  560. package/src/util/AriaLabelHelper.ts +218 -0
  561. package/src/util/Caret.ts +28 -0
  562. package/src/util/ColorConversion.ts +399 -0
  563. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  564. package/src/util/FocusableElements.ts +92 -0
  565. package/src/util/HTMLSanitizer.ts +9 -0
  566. package/src/util/InvisibleMessage.ts +69 -0
  567. package/src/util/PopupUtils.ts +112 -0
  568. package/src/util/SlotsHelper.ts +39 -0
  569. package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
  570. package/src/util/TabbableElements.ts +70 -0
  571. package/src/util/arraysAreEqual.ts +15 -0
  572. package/src/util/clamp.ts +12 -0
  573. package/src/util/createLinkInHead.ts +25 -0
  574. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  575. package/src/util/debounce.ts +18 -0
  576. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
  577. package/src/util/escapeRegex.ts +11 -0
  578. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  579. package/src/util/generateHighlightedMarkup.ts +43 -0
  580. package/src/util/getActiveElement.ts +11 -0
  581. package/src/util/getClassCopy.ts +12 -0
  582. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  583. package/src/util/getEffectiveContentDensity.ts +5 -0
  584. package/src/util/getEffectiveScrollbarStyle.ts +5 -0
  585. package/src/util/getFastNavigationGroups.ts +63 -0
  586. package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
  587. package/src/util/getNormalizedTarget.ts +16 -0
  588. package/src/util/getSingletonElementInstance.ts +13 -0
  589. package/src/util/isElementClickable.ts +19 -0
  590. package/src/util/isElementHidden.ts +9 -0
  591. package/src/util/isElementInView.ts +15 -0
  592. package/src/util/isElementTabbable.ts +37 -0
  593. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +10 -4
  594. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  595. package/src/util/willShowContent.ts +7 -0
  596. package/src/validateThemeRoot.ts +58 -0
  597. package/tsconfig.json +13 -0
  598. package/used-modules.txt +10 -0
  599. package/bundle.es5.js +0 -28
  600. package/config/.eslintrc.js +0 -3
  601. package/config/rollup.config.js +0 -1
  602. package/dist/RenderScheduler.js +0 -146
  603. package/dist/SVGIconRegistry.js +0 -60
  604. package/dist/animations/config.js +0 -5
  605. package/dist/boot.js +0 -32
  606. package/dist/compatibility/DOMObserver.js +0 -62
  607. package/dist/compatibility/patchNodeValue.js +0 -24
  608. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  609. package/dist/delegate/CustomResize.js +0 -78
  610. package/dist/delegate/NativeResize.js +0 -44
  611. package/dist/features/browsersupport/Edge.js +0 -6
  612. package/dist/features/browsersupport/IE11.js +0 -41
  613. package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  614. package/dist/renderer/ifDefined.js +0 -21
  615. package/dist/resources/bundle.es5.js +0 -212
  616. package/dist/resources/bundle.es5.js.map +0 -1
  617. package/dist/resources/bundle.esm.js +0 -129
  618. package/dist/resources/bundle.esm.js.map +0 -1
  619. package/dist/test-resources/assets/Themes.js +0 -13
  620. package/dist/test-resources/elements/Child.js +0 -35
  621. package/dist/test-resources/elements/Generic.js +0 -84
  622. package/dist/test-resources/elements/GenericExt.js +0 -26
  623. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  624. package/dist/test-resources/elements/Parent.js +0 -37
  625. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  626. package/dist/test-resources/pages/AllTestElements.html +0 -42
  627. package/dist/test-resources/pages/Configuration.html +0 -20
  628. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  629. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  630. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  631. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  632. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  633. package/dist/test-resources/specs/StaticArea.spec.js +0 -34
  634. package/dist/test-resources/specs/Theming.spec.js +0 -31
  635. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  636. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  637. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  638. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  639. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  640. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  641. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  642. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  643. package/dist/theming/CSSVarsPonyfill.js +0 -24
  644. package/dist/theming/adaptCSSForIE.js +0 -90
  645. package/dist/theming/createComponentStyleTag.js +0 -49
  646. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  647. package/dist/thirdparty/Array.from.js +0 -16
  648. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  649. package/dist/thirdparty/Array.prototype.find.js +0 -46
  650. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  651. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  652. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  653. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  654. package/dist/thirdparty/Number.isInteger.js +0 -5
  655. package/dist/thirdparty/Number.isNaN.js +0 -1
  656. package/dist/thirdparty/Number.parseInt.js +0 -1
  657. package/dist/thirdparty/Object.assign.js +0 -31
  658. package/dist/thirdparty/Object.entries.js +0 -11
  659. package/dist/thirdparty/Symbol.js +0 -2
  660. package/dist/thirdparty/WeakSet.js +0 -27
  661. package/dist/thirdparty/es6-string-methods.js +0 -182
  662. package/dist/thirdparty/events-polyfills.js +0 -89
  663. package/dist/thirdparty/fetch.js +0 -1
  664. package/dist/thirdparty/template.js +0 -600
  665. package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  666. package/dist/types/CSSSize.js +0 -9
  667. package/dist/types/PopupState.js +0 -37
  668. package/dist/util/findNodeOwner.js +0 -35
  669. package/dist/util/isDescendantOf.js +0 -15
  670. package/dist/util/isNodeClickable.js +0 -19
  671. package/dist/util/isNodeHidden.js +0 -13
  672. package/dist/util/isNodeTabbable.js +0 -28
  673. package/dist/util/isSlot.js +0 -3
  674. package/dist/webcomponentsjs/LICENSE.md +0 -19
  675. package/dist/webcomponentsjs/README.md +0 -229
  676. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  677. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  678. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  679. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  680. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  681. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  682. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  683. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  684. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  685. package/dist/webcomponentsjs/package.json +0 -46
  686. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  687. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  688. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  689. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  690. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  691. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  692. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  693. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  694. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  695. package/src/AssetRegistry.js +0 -10
  696. package/src/CustomElementsRegistry.js +0 -23
  697. package/src/Device.js +0 -823
  698. package/src/EventProvider.js +0 -73
  699. package/src/FeaturesRegistry.js +0 -11
  700. package/src/FontFace.js +0 -73
  701. package/src/InitialConfiguration.js +0 -131
  702. package/src/Keys.js +0 -161
  703. package/src/RenderQueue.js +0 -42
  704. package/src/RenderScheduler.js +0 -146
  705. package/src/SVGIconRegistry.js +0 -60
  706. package/src/StaticArea.js +0 -41
  707. package/src/StaticAreaItem.js +0 -105
  708. package/src/Theming.js +0 -3
  709. package/src/UI5Element.js +0 -926
  710. package/src/UI5ElementMetadata.js +0 -171
  711. package/src/animations/animate.js +0 -53
  712. package/src/animations/config.js +0 -5
  713. package/src/animations/scroll.js +0 -28
  714. package/src/asset-registries/Icons.js +0 -24
  715. package/src/asset-registries/LocaleData.js +0 -125
  716. package/src/asset-registries/Themes.js +0 -87
  717. package/src/asset-registries/i18n.js +0 -79
  718. package/src/boot.js +0 -32
  719. package/src/compatibility/DOMObserver.js +0 -62
  720. package/src/compatibility/patchNodeValue.js +0 -24
  721. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  722. package/src/config/AnimationMode.js +0 -13
  723. package/src/config/FormatSettings.js +0 -13
  724. package/src/config/Language.js +0 -12
  725. package/src/config/NoConflict.js +0 -51
  726. package/src/config/Theme.js +0 -28
  727. package/src/delegate/CustomResize.js +0 -78
  728. package/src/delegate/ItemNavigation.js +0 -278
  729. package/src/delegate/NativeResize.js +0 -44
  730. package/src/delegate/ResizeHandler.js +0 -66
  731. package/src/delegate/ScrollEnablement.js +0 -159
  732. package/src/features/OpenUI5Support.js +0 -90
  733. package/src/features/browsersupport/Edge.js +0 -6
  734. package/src/features/browsersupport/IE11.js +0 -41
  735. package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  736. package/src/i18nBundle.js +0 -33
  737. package/src/renderer/LitRenderer.js +0 -15
  738. package/src/renderer/ifDefined.js +0 -21
  739. package/src/theming/CSSVarsPonyfill.js +0 -24
  740. package/src/theming/CustomStyle.js +0 -19
  741. package/src/theming/adaptCSSForIE.js +0 -90
  742. package/src/theming/applyTheme.js +0 -81
  743. package/src/theming/createComponentStyleTag.js +0 -49
  744. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  745. package/src/theming/getConstructableStyle.js +0 -25
  746. package/src/theming/getEffectiveStyle.js +0 -15
  747. package/src/theming/getThemeDesignerTheme.js +0 -67
  748. package/src/thirdparty/Array.from.js +0 -16
  749. package/src/thirdparty/Array.prototype.fill.js +0 -44
  750. package/src/thirdparty/Array.prototype.find.js +0 -46
  751. package/src/thirdparty/Array.prototype.includes.js +0 -51
  752. package/src/thirdparty/Element.prototype.closest.js +0 -11
  753. package/src/thirdparty/Element.prototype.matches.js +0 -6
  754. package/src/thirdparty/Map.prototype.keys.js +0 -9
  755. package/src/thirdparty/Number.isInteger.js +0 -5
  756. package/src/thirdparty/Number.isNaN.js +0 -1
  757. package/src/thirdparty/Number.parseInt.js +0 -1
  758. package/src/thirdparty/Object.assign.js +0 -31
  759. package/src/thirdparty/Object.entries.js +0 -11
  760. package/src/thirdparty/Symbol.js +0 -2
  761. package/src/thirdparty/WeakSet.js +0 -27
  762. package/src/thirdparty/es6-string-methods.js +0 -182
  763. package/src/thirdparty/events-polyfills.js +0 -89
  764. package/src/thirdparty/fetch.js +0 -1
  765. package/src/thirdparty/merge.js +0 -10
  766. package/src/thirdparty/template.js +0 -600
  767. package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  768. package/src/types/AnimationMode.js +0 -7
  769. package/src/types/CSSSize.js +0 -9
  770. package/src/types/CalendarType.js +0 -22
  771. package/src/types/DataType.js +0 -25
  772. package/src/types/Integer.js +0 -9
  773. package/src/types/ItemNavigationBehavior.js +0 -21
  774. package/src/types/NavigationMode.js +0 -6
  775. package/src/types/PopupState.js +0 -37
  776. package/src/types/ValueState.js +0 -22
  777. package/src/util/FocusableElements.js +0 -60
  778. package/src/util/TabbableElements.js +0 -47
  779. package/src/util/findNodeOwner.js +0 -35
  780. package/src/util/isDescendantOf.js +0 -15
  781. package/src/util/isNodeClickable.js +0 -19
  782. package/src/util/isNodeHidden.js +0 -13
  783. package/src/util/isNodeTabbable.js +0 -28
  784. package/src/util/isSlot.js +0 -3
@@ -0,0 +1,153 @@
1
+ import { registerFeature } from "../FeaturesRegistry.js";
2
+ import { setTheme } from "../config/Theme.js";
3
+ import { getCurrentZIndex } from "../util/PopupUtils.js";
4
+ import { CLDRData } from "../asset-registries/LocaleData.js";
5
+ import type { LegacyDateCalendarCustomizing } from "../features/LegacyDateFormats.js";
6
+
7
+ type OpenUI5Popup = {
8
+ setInitialZIndex: (zIndex: number) => void,
9
+ getNextZIndex: () => number,
10
+ };
11
+
12
+ type OpenUI5Core = {
13
+ attachInit: (callback: () => void) => void,
14
+ attachThemeChanged: (callback: () => Promise<void>) => void,
15
+ getConfiguration: () => OpenUI5CoreConfiguration,
16
+ };
17
+
18
+ type OpenUI5CoreConfiguration = {
19
+ getAnimationMode: () => string,
20
+ getLanguage: () => string,
21
+ getTheme: () => string,
22
+ getThemeRoot: () => string,
23
+ getRTL: () => string,
24
+ getCalendarType: () => string,
25
+ getLocale: () => string,
26
+ getFormatSettings: () => {
27
+ getLegacyDateCalendarCustomizing: () => LegacyDateCalendarCustomizing;
28
+ }
29
+ };
30
+
31
+ type LocaleData = {
32
+ getInstance: (locale: string) => Locale,
33
+ }
34
+
35
+ type Locale = {
36
+ getFirstDayOfWeek: () => number,
37
+ _get: () => CLDRData,
38
+ };
39
+
40
+ const getCore = () => {
41
+ return window.sap?.ui?.getCore?.() as OpenUI5Core;
42
+ };
43
+
44
+ class OpenUI5Support {
45
+ static isLoaded() {
46
+ return !!getCore();
47
+ }
48
+
49
+ static init() {
50
+ const core = getCore();
51
+ if (!core) {
52
+ return Promise.resolve();
53
+ }
54
+
55
+ return new Promise<void>(resolve => {
56
+ core.attachInit(() => {
57
+ window.sap.ui.require(["sap/ui/core/LocaleData", "sap/ui/core/Popup"], (LocaleData: LocaleData, Popup: OpenUI5Popup) => {
58
+ Popup.setInitialZIndex(getCurrentZIndex());
59
+ resolve();
60
+ });
61
+ });
62
+ });
63
+ }
64
+
65
+ static getConfigurationSettingsObject() {
66
+ const core = getCore();
67
+ if (!core) {
68
+ return;
69
+ }
70
+
71
+ const config = core.getConfiguration();
72
+ const LocaleData = window.sap.ui.require("sap/ui/core/LocaleData");
73
+
74
+ return {
75
+ animationMode: config.getAnimationMode(),
76
+ language: config.getLanguage(),
77
+ theme: config.getTheme(),
78
+ themeRoot: config.getThemeRoot(),
79
+ rtl: config.getRTL(),
80
+ calendarType: config.getCalendarType(),
81
+ formatSettings: {
82
+ firstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,
83
+ legacyDateCalendarCustomizing: config.getFormatSettings().getLegacyDateCalendarCustomizing(),
84
+ },
85
+ };
86
+ }
87
+
88
+ static getLocaleDataObject() {
89
+ const core = getCore();
90
+ if (!core) {
91
+ return;
92
+ }
93
+
94
+ const config = core.getConfiguration();
95
+ const LocaleData = window.sap.ui.require("sap/ui/core/LocaleData") as LocaleData;
96
+ return LocaleData.getInstance(config.getLocale())._get();
97
+ }
98
+
99
+ static _listenForThemeChange() {
100
+ const core = getCore();
101
+ const config = core.getConfiguration();
102
+ core.attachThemeChanged(async () => {
103
+ await setTheme(config.getTheme());
104
+ });
105
+ }
106
+
107
+ static attachListeners() {
108
+ const core = getCore();
109
+ if (!core) {
110
+ return;
111
+ }
112
+
113
+ OpenUI5Support._listenForThemeChange();
114
+ }
115
+
116
+ static cssVariablesLoaded() {
117
+ const core = getCore();
118
+ if (!core) {
119
+ return;
120
+ }
121
+
122
+ const link = [...document.head.children].find(el => el.id === "sap-ui-theme-sap.ui.core") as HTMLLinkElement; // more reliable than querySelector early
123
+ if (!link) {
124
+ return;
125
+ }
126
+
127
+ return !!link.href.match(/\/css(-|_)variables\.css/);
128
+ }
129
+
130
+ static getNextZIndex() {
131
+ const core = getCore();
132
+ if (!core) {
133
+ return;
134
+ }
135
+
136
+ const Popup = window.sap.ui.require("sap/ui/core/Popup") as OpenUI5Popup;
137
+ return Popup.getNextZIndex();
138
+ }
139
+
140
+ static setInitialZIndex() {
141
+ const core = getCore();
142
+ if (!core) {
143
+ return;
144
+ }
145
+
146
+ const Popup = window.sap.ui.require("sap/ui/core/Popup") as OpenUI5Popup;
147
+ Popup.setInitialZIndex(getCurrentZIndex());
148
+ }
149
+ }
150
+
151
+ registerFeature("OpenUI5Support", OpenUI5Support);
152
+
153
+ export default OpenUI5Support;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "BusyIndicator.css",
6
+ content: `.busy-indicator-wrapper{position:relative;height:100%;width:100%}.busy-indicator-overlay{display:var(--ui5_web_components_busy_indicator_display);position:absolute;inset:0;background:var(--ui5_web_components_busy_indicator_background-color);z-index:99}.busy-indicator-busy-area{display:var(--ui5_web_components_busy_indicator_display);position:absolute;z-index:99;inset:0;justify-content:center;align-items:center;background-color:inherit;flex-direction:column;color:var(--_ui5_busy_indicator_color)}:host([__is-busy]) .busy-indicator-wrapper>:not(.busy-indicator-busy-area):not(.busy-indicator-overlay):not([busy-indicator-before-span]){--ui5_web_components_busy_indicator_display:none}.busy-indicator-busy-area:focus{outline:var(--_ui5_busy_indicator_focus_outline);outline-offset:-.125rem}.busy-indicator-circle{width:1rem;height:1rem;display:inline-block;background-color:currentColor;border-radius:50%}.circle-animation-0{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11)}.circle-animation-1{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.2s}.circle-animation-2{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.4s}.sapUiLocalBusy{--ui5_web_components_busy_indicator_display:none}.busy-indicator-wrapper [ui5-busy-indicator]{display:none}@keyframes grow{0%,100%,50%{-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "FontFace.css",
6
+ content: `@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "OverrideFontFace.css",
6
+ content: `@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "SystemCSSVars.css",
6
+ content: `:root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,39 @@
1
+ import getSingletonElementInstance from "./util/getSingletonElementInstance.js";
2
+
3
+ const getSharedResourcesInstance = (): Record<string, unknown> | null => {
4
+ if (typeof document === "undefined") {
5
+ return null;
6
+ }
7
+ return getSingletonElementInstance("ui5-shared-resources", document.head) as unknown as Record<string, unknown>;
8
+ };
9
+
10
+ /**
11
+ * Use this method to initialize/get resources that you would like to be shared among UI5 Web Components runtime instances.
12
+ * The data will be accessed via a singleton "ui5-shared-resources" HTML element in the "head" element of the page.
13
+ *
14
+ * @public
15
+ * @param namespace Unique ID of the resource, may contain "." to denote hierarchy
16
+ * @param initialValue Object or primitive that will be used as an initial value if the resource does not exist
17
+ * @returns {*}
18
+ */
19
+ const getSharedResource = <T>(namespace: string, initialValue: T): T => {
20
+ const parts = namespace.split(".");
21
+ let current = getSharedResourcesInstance() as Record<string, any>;
22
+
23
+ if (!current) {
24
+ return initialValue;
25
+ }
26
+
27
+ for (let i = 0; i < parts.length; i++) {
28
+ const part = parts[i];
29
+ const lastPart = i === parts.length - 1;
30
+ if (!Object.prototype.hasOwnProperty.call(current, part)) {
31
+ current[part] = lastPart ? initialValue : {};
32
+ }
33
+ current = current[part];
34
+ }
35
+
36
+ return current as T;
37
+ };
38
+
39
+ export default getSharedResource;
@@ -0,0 +1,38 @@
1
+ export {};
2
+
3
+ declare global {
4
+
5
+ type VersionInfo = {
6
+ version: string,
7
+ major: number,
8
+ minor: number,
9
+ patch: number,
10
+ suffix: string,
11
+ isNext: boolean,
12
+ buildTime: number,
13
+ }
14
+
15
+ interface Window {
16
+ sap: any;
17
+ chrome: any;
18
+ v8: any;
19
+ }
20
+
21
+ module "*generated/AssetParameters.js" {
22
+ const DEFAULT_THEME: string;
23
+ const DEFAULT_LANGUAGE: string;
24
+ const DEFAULT_LOCALE: string;
25
+ const SUPPORTED_LOCALES: Array<string>;
26
+ export {
27
+ DEFAULT_THEME,
28
+ DEFAULT_LANGUAGE,
29
+ DEFAULT_LOCALE,
30
+ SUPPORTED_LOCALES,
31
+ };
32
+ }
33
+
34
+ module "*generated/VersionInfo.js" {
35
+ const content: VersionInfo;
36
+ export default content;
37
+ }
38
+ }
@@ -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,28 +1,43 @@
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 convertToLocaleOrNull = lang => {
6
+ const cache = new Map<string, Locale>();
7
+
8
+ const getLocaleInstance = (lang: string) => {
9
+ if (!cache.has(lang)) {
10
+ cache.set(lang, new Locale(lang));
11
+ }
12
+
13
+ return cache.get(lang)!;
14
+ };
15
+
16
+ const convertToLocaleOrNull = (lang: string) => {
6
17
  try {
7
18
  if (lang && typeof lang === "string") {
8
- return new Locale(lang);
19
+ return getLocaleInstance(lang);
9
20
  }
10
21
  } catch (e) {
11
22
  // ignore
12
23
  }
24
+
25
+ return new Locale(DEFAULT_LOCALE);
13
26
  };
14
27
 
15
28
  /**
16
29
  * Returns the locale based on the parameter or configured language Configuration#getLanguage
17
30
  * If no language has been configured - a new locale based on browser language is returned
18
31
  */
19
- const getLocale = lang => {
32
+ const getLocale = (lang?: string): Locale => {
20
33
  if (lang) {
21
34
  return convertToLocaleOrNull(lang);
22
35
  }
23
36
 
24
- if (getConfigLanguage()) {
25
- return new Locale(getConfigLanguage());
37
+ const configLanguage = getConfigLanguage();
38
+
39
+ if (configLanguage) {
40
+ return getLocaleInstance(configLanguage);
26
41
  }
27
42
 
28
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;