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

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 (799) hide show
  1. package/.npsrc.json +3 -0
  2. package/CHANGELOG.md +1872 -0
  3. package/README.md +50 -7
  4. package/config/wdio.conf.cjs +392 -0
  5. package/dist/.tsbuildinfo +1 -0
  6. package/dist/AssetRegistry.d.ts +5 -0
  7. package/dist/AssetRegistry.js +6 -9
  8. package/dist/AssetRegistry.js.map +1 -0
  9. package/dist/Boot.d.ts +10 -0
  10. package/dist/Boot.js +73 -0
  11. package/dist/Boot.js.map +1 -0
  12. package/dist/CustomElementsRegistry.d.ts +5 -0
  13. package/dist/CustomElementsRegistry.js +78 -0
  14. package/dist/CustomElementsRegistry.js.map +1 -0
  15. package/dist/CustomElementsScope.d.ts +7 -0
  16. package/dist/CustomElementsScope.js +11 -0
  17. package/dist/CustomElementsScope.js.map +1 -0
  18. package/dist/CustomElementsScopeUtils.d.ts +62 -0
  19. package/dist/CustomElementsScopeUtils.js +102 -0
  20. package/dist/CustomElementsScopeUtils.js.map +1 -0
  21. package/dist/DOMObserver.d.ts +11 -0
  22. package/dist/DOMObserver.js +23 -0
  23. package/dist/DOMObserver.js.map +1 -0
  24. package/dist/Device.d.ts +12 -0
  25. package/dist/Device.js +160 -815
  26. package/dist/Device.js.map +1 -0
  27. package/dist/EventProvider.d.ts +25 -0
  28. package/dist/EventProvider.js +67 -70
  29. package/dist/EventProvider.js.map +1 -0
  30. package/dist/FeaturesRegistry.d.ts +3 -0
  31. package/dist/FeaturesRegistry.js +5 -7
  32. package/dist/FeaturesRegistry.js.map +1 -0
  33. package/dist/FontFace.d.ts +2 -0
  34. package/dist/FontFace.js +22 -63
  35. package/dist/FontFace.js.map +1 -0
  36. package/dist/IgnoreCustomElements.d.ts +25 -0
  37. package/dist/IgnoreCustomElements.js +37 -0
  38. package/dist/IgnoreCustomElements.js.map +1 -0
  39. package/dist/InitialConfiguration.d.ts +27 -0
  40. package/dist/InitialConfiguration.js +134 -103
  41. package/dist/InitialConfiguration.js.map +1 -0
  42. package/dist/Keys.d.ts +63 -0
  43. package/dist/Keys.js +185 -0
  44. package/dist/Keys.js.map +1 -0
  45. package/dist/ManagedStyles.d.ts +9 -0
  46. package/dist/ManagedStyles.js +79 -0
  47. package/dist/ManagedStyles.js.map +1 -0
  48. package/dist/MarkedEvents.d.ts +9 -0
  49. package/dist/MarkedEvents.js +15 -0
  50. package/dist/MarkedEvents.js.map +1 -0
  51. package/dist/MediaRange.d.ts +31 -0
  52. package/dist/MediaRange.js +88 -0
  53. package/dist/MediaRange.js.map +1 -0
  54. package/dist/PropertiesFileFormat.d.ts +8 -0
  55. package/dist/PropertiesFileFormat.js +85 -0
  56. package/dist/PropertiesFileFormat.js.map +1 -0
  57. package/dist/Render.d.ts +47 -0
  58. package/dist/Render.js +143 -0
  59. package/dist/Render.js.map +1 -0
  60. package/dist/RenderQueue.d.ts +19 -0
  61. package/dist/RenderQueue.js +53 -39
  62. package/dist/RenderQueue.js.map +1 -0
  63. package/dist/Runtimes.d.ts +27 -0
  64. package/dist/Runtimes.js +86 -0
  65. package/dist/Runtimes.js.map +1 -0
  66. package/dist/SystemCSSVars.d.ts +2 -0
  67. package/dist/SystemCSSVars.js +9 -0
  68. package/dist/SystemCSSVars.js.map +1 -0
  69. package/dist/Theming.d.ts +3 -0
  70. package/dist/Theming.js +4 -45
  71. package/dist/Theming.js.map +1 -0
  72. package/dist/UI5Element.d.ts +376 -0
  73. package/dist/UI5Element.js +1023 -822
  74. package/dist/UI5Element.js.map +1 -0
  75. package/dist/UI5ElementMetadata.d.ts +150 -0
  76. package/dist/UI5ElementMetadata.js +290 -144
  77. package/dist/UI5ElementMetadata.js.map +1 -0
  78. package/dist/animations/AnimationQueue.d.ts +8 -0
  79. package/dist/animations/AnimationQueue.js +31 -38
  80. package/dist/animations/AnimationQueue.js.map +1 -0
  81. package/dist/animations/animate.d.ts +14 -0
  82. package/dist/animations/animate.js +46 -51
  83. package/dist/animations/animate.js.map +1 -0
  84. package/dist/animations/scroll.d.ts +5 -0
  85. package/dist/animations/scroll.js +18 -27
  86. package/dist/animations/scroll.js.map +1 -0
  87. package/dist/animations/slideDown.d.ts +5 -0
  88. package/dist/animations/slideDown.js +53 -78
  89. package/dist/animations/slideDown.js.map +1 -0
  90. package/dist/animations/slideUp.d.ts +5 -0
  91. package/dist/animations/slideUp.js +49 -70
  92. package/dist/animations/slideUp.js.map +1 -0
  93. package/dist/asset-registries/Icons.d.ts +39 -0
  94. package/dist/asset-registries/Icons.js +136 -24
  95. package/dist/asset-registries/Icons.js.map +1 -0
  96. package/dist/asset-registries/Illustrations.d.ts +19 -0
  97. package/dist/asset-registries/Illustrations.js +77 -0
  98. package/dist/asset-registries/Illustrations.js.map +1 -0
  99. package/dist/asset-registries/LocaleData.d.ts +7 -0
  100. package/dist/asset-registries/LocaleData.js +127 -92
  101. package/dist/asset-registries/LocaleData.js.map +1 -0
  102. package/dist/asset-registries/Themes.d.ts +12 -0
  103. package/dist/asset-registries/Themes.js +59 -66
  104. package/dist/asset-registries/Themes.js.map +1 -0
  105. package/dist/asset-registries/i18n.d.ts +23 -0
  106. package/dist/asset-registries/i18n.js +87 -60
  107. package/dist/asset-registries/i18n.js.map +1 -0
  108. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  109. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  110. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  111. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  112. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  113. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  114. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  115. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  116. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  117. package/dist/config/AnimationMode.d.ts +14 -0
  118. package/dist/config/AnimationMode.js +24 -6
  119. package/dist/config/AnimationMode.js.map +1 -0
  120. package/dist/config/CalendarType.d.ts +15 -0
  121. package/dist/config/CalendarType.js +33 -16
  122. package/dist/config/CalendarType.js.map +1 -0
  123. package/dist/config/FormatSettings.d.ts +15 -0
  124. package/dist/config/FormatSettings.js +16 -6
  125. package/dist/config/FormatSettings.js.map +1 -0
  126. package/dist/config/Icons.d.ts +40 -0
  127. package/dist/config/Icons.js +44 -0
  128. package/dist/config/Icons.js.map +1 -0
  129. package/dist/config/Language.d.ts +40 -0
  130. package/dist/config/Language.js +69 -7
  131. package/dist/config/Language.js.map +1 -0
  132. package/dist/config/NoConflict.d.ts +20 -0
  133. package/dist/config/NoConflict.js +41 -34
  134. package/dist/config/NoConflict.js.map +1 -0
  135. package/dist/config/Theme.d.ts +39 -0
  136. package/dist/config/Theme.js +72 -19
  137. package/dist/config/Theme.js.map +1 -0
  138. package/dist/config/ThemeRoot.d.ts +27 -0
  139. package/dist/config/ThemeRoot.js +57 -0
  140. package/dist/config/ThemeRoot.js.map +1 -0
  141. package/dist/config/Timezone.d.ts +17 -0
  142. package/dist/config/Timezone.js +30 -0
  143. package/dist/config/Timezone.js.map +1 -0
  144. package/dist/connectToComponent.d.ts +9 -0
  145. package/dist/connectToComponent.js +59 -0
  146. package/dist/connectToComponent.js.map +1 -0
  147. package/dist/css/BusyIndicator.css +80 -0
  148. package/dist/css/FontFace.css +96 -0
  149. package/dist/css/OverrideFontFace.css +32 -0
  150. package/dist/css/SystemCSSVars.css +9 -0
  151. package/dist/decorators/customElement.d.ts +23 -0
  152. package/dist/decorators/customElement.js +42 -0
  153. package/dist/decorators/customElement.js.map +1 -0
  154. package/dist/decorators/event.d.ts +13 -0
  155. package/dist/decorators/event.js +24 -0
  156. package/dist/decorators/event.js.map +1 -0
  157. package/dist/decorators/property.d.ts +9 -0
  158. package/dist/decorators/property.js +24 -0
  159. package/dist/decorators/property.js.map +1 -0
  160. package/dist/decorators/slot.d.ts +9 -0
  161. package/dist/decorators/slot.js +37 -0
  162. package/dist/decorators/slot.js.map +1 -0
  163. package/dist/decorators.d.ts +5 -0
  164. package/dist/decorators.js +6 -0
  165. package/dist/decorators.js.map +1 -0
  166. package/dist/delegate/ItemNavigation.d.ts +114 -0
  167. package/dist/delegate/ItemNavigation.js +311 -231
  168. package/dist/delegate/ItemNavigation.js.map +1 -0
  169. package/dist/delegate/ResizeHandler.d.ts +23 -0
  170. package/dist/delegate/ResizeHandler.js +82 -63
  171. package/dist/delegate/ResizeHandler.js.map +1 -0
  172. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  173. package/dist/delegate/ScrollEnablement.js +159 -74
  174. package/dist/delegate/ScrollEnablement.js.map +1 -0
  175. package/dist/features/F6Navigation.d.ts +19 -0
  176. package/dist/features/F6Navigation.js +151 -0
  177. package/dist/features/F6Navigation.js.map +1 -0
  178. package/dist/features/InputElementsFormSupport.d.ts +18 -0
  179. package/dist/features/InputElementsFormSupport.js +40 -0
  180. package/dist/features/InputElementsFormSupport.js.map +1 -0
  181. package/dist/features/LegacyDateFormats.d.ts +18 -0
  182. package/dist/features/LegacyDateFormats.js +20 -0
  183. package/dist/features/LegacyDateFormats.js.map +1 -0
  184. package/dist/features/OpenUI5Element.d.ts +9 -0
  185. package/dist/features/OpenUI5Element.js +5 -0
  186. package/dist/features/OpenUI5Element.js.map +1 -0
  187. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  188. package/dist/features/OpenUI5Enablement.js +96 -0
  189. package/dist/features/OpenUI5Enablement.js.map +1 -0
  190. package/dist/features/OpenUI5Support.d.ts +34 -0
  191. package/dist/features/OpenUI5Support.js +140 -0
  192. package/dist/features/OpenUI5Support.js.map +1 -0
  193. package/dist/features/patchPatcher.d.ts +11 -0
  194. package/dist/features/patchPatcher.js +11 -0
  195. package/dist/features/patchPatcher.js.map +1 -0
  196. package/dist/features/patchPopup.d.ts +14 -0
  197. package/dist/features/patchPopup.js +50 -0
  198. package/dist/features/patchPopup.js.map +1 -0
  199. package/dist/generated/AssetParameters.d.ts +6 -0
  200. package/dist/generated/AssetParameters.js +8 -0
  201. package/dist/generated/AssetParameters.js.map +1 -0
  202. package/dist/generated/VersionInfo.d.ts +10 -0
  203. package/dist/generated/VersionInfo.js +11 -0
  204. package/dist/generated/VersionInfo.js.map +1 -0
  205. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  206. package/dist/generated/css/BusyIndicator.css.js +7 -0
  207. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  208. package/dist/generated/css/FontFace.css.d.ts +3 -0
  209. package/dist/generated/css/FontFace.css.js +7 -0
  210. package/dist/generated/css/FontFace.css.js.map +1 -0
  211. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  212. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  213. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  214. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  215. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  216. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  217. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  218. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
  219. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  220. package/dist/getSharedResource.d.ts +11 -0
  221. package/dist/getSharedResource.js +40 -0
  222. package/dist/getSharedResource.js.map +1 -0
  223. package/dist/global.d.ts +40 -0
  224. package/dist/i18nBundle.d.ts +41 -0
  225. package/dist/i18nBundle.js +71 -30
  226. package/dist/i18nBundle.js.map +1 -0
  227. package/dist/locale/Locale.d.ts +22 -0
  228. package/dist/locale/Locale.js +79 -0
  229. package/dist/locale/Locale.js.map +1 -0
  230. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  231. package/dist/locale/RTLAwareRegistry.js +9 -0
  232. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  233. package/dist/locale/applyDirection.d.ts +11 -0
  234. package/dist/locale/applyDirection.js +18 -0
  235. package/dist/locale/applyDirection.js.map +1 -0
  236. package/dist/locale/directionChange.d.ts +15 -0
  237. package/dist/locale/directionChange.js +24 -0
  238. package/dist/locale/directionChange.js.map +1 -0
  239. package/dist/locale/getEffectiveDir.d.ts +2 -0
  240. package/dist/locale/getEffectiveDir.js +8 -0
  241. package/dist/locale/getEffectiveDir.js.map +1 -0
  242. package/dist/locale/getLocale.d.ts +7 -0
  243. package/dist/locale/getLocale.js +38 -0
  244. package/dist/locale/getLocale.js.map +1 -0
  245. package/dist/locale/languageChange.d.ts +5 -0
  246. package/dist/locale/languageChange.js +14 -0
  247. package/dist/locale/languageChange.js.map +1 -0
  248. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  249. package/dist/locale/nextFallbackLocale.js +24 -0
  250. package/dist/locale/nextFallbackLocale.js.map +1 -0
  251. package/dist/locale/normalizeLocale.d.ts +7 -0
  252. package/dist/locale/normalizeLocale.js +47 -0
  253. package/dist/locale/normalizeLocale.js.map +1 -0
  254. package/dist/renderer/LitRenderer.d.ts +14 -0
  255. package/dist/renderer/LitRenderer.js +32 -12
  256. package/dist/renderer/LitRenderer.js.map +1 -0
  257. package/dist/renderer/directives/style-map.d.ts +13 -0
  258. package/dist/renderer/directives/style-map.js +72 -0
  259. package/dist/renderer/directives/style-map.js.map +1 -0
  260. package/dist/renderer/executeTemplate.d.ts +21 -0
  261. package/dist/renderer/executeTemplate.js +31 -0
  262. package/dist/renderer/executeTemplate.js.map +1 -0
  263. package/dist/sap/base/Log.js +750 -0
  264. package/dist/sap/base/assert.js +34 -0
  265. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  266. package/dist/sap/base/security/URLListValidator.js +406 -0
  267. package/dist/sap/base/security/encodeCSS.js +40 -0
  268. package/dist/sap/base/security/encodeXML.js +53 -0
  269. package/dist/sap/base/security/sanitizeHTML.js +38 -0
  270. package/dist/sap/base/strings/toHex.js +33 -0
  271. package/dist/sap/base/util/now.js +28 -0
  272. package/dist/sap/base/util/uid.js +27 -0
  273. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  274. package/dist/ssr-dom-shim.d.ts +1 -0
  275. package/dist/ssr-dom-shim.js +12 -0
  276. package/dist/ssr-dom-shim.js.map +1 -0
  277. package/dist/ssr-dom.d.ts +0 -0
  278. package/dist/ssr-dom.js +0 -0
  279. package/dist/theming/CustomStyle.d.ts +6 -0
  280. package/dist/theming/CustomStyle.js +46 -17
  281. package/dist/theming/CustomStyle.js.map +1 -0
  282. package/dist/theming/ThemeLoaded.d.ts +5 -0
  283. package/dist/theming/ThemeLoaded.js +14 -0
  284. package/dist/theming/ThemeLoaded.js.map +1 -0
  285. package/dist/theming/ThemeRegistered.d.ts +4 -0
  286. package/dist/theming/ThemeRegistered.js +11 -0
  287. package/dist/theming/ThemeRegistered.js.map +1 -0
  288. package/dist/theming/applyTheme.d.ts +2 -0
  289. package/dist/theming/applyTheme.js +76 -0
  290. package/dist/theming/applyTheme.js.map +1 -0
  291. package/dist/theming/getConstructableStyle.d.ts +9 -0
  292. package/dist/theming/getConstructableStyle.js +25 -0
  293. package/dist/theming/getConstructableStyle.js.map +1 -0
  294. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  295. package/dist/theming/getEffectiveStyle.js +25 -0
  296. package/dist/theming/getEffectiveStyle.js.map +1 -0
  297. package/dist/theming/getStylesString.d.ts +3 -0
  298. package/dist/theming/getStylesString.js +11 -0
  299. package/dist/theming/getStylesString.js.map +1 -0
  300. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  301. package/dist/theming/getThemeDesignerTheme.js +80 -0
  302. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  303. package/dist/thirdparty/_merge.d.ts +2 -0
  304. package/dist/thirdparty/_merge.js +35 -0
  305. package/dist/thirdparty/_merge.js.map +1 -0
  306. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  307. package/dist/thirdparty/isPlainObject.js +19 -0
  308. package/dist/thirdparty/isPlainObject.js.map +1 -0
  309. package/dist/thirdparty/merge.d.ts +2 -0
  310. package/dist/thirdparty/merge.js +6 -0
  311. package/dist/thirdparty/merge.js.map +1 -0
  312. package/dist/types/AnimationMode.d.ts +24 -0
  313. package/dist/types/AnimationMode.js +25 -6
  314. package/dist/types/AnimationMode.js.map +1 -0
  315. package/dist/types/AriaHasPopup.d.ts +32 -0
  316. package/dist/types/AriaHasPopup.js +34 -0
  317. package/dist/types/AriaHasPopup.js.map +1 -0
  318. package/dist/types/AriaLandmarkRole.d.ts +79 -0
  319. package/dist/types/AriaLandmarkRole.js +81 -0
  320. package/dist/types/AriaLandmarkRole.js.map +1 -0
  321. package/dist/types/AriaRole.d.ts +27 -0
  322. package/dist/types/AriaRole.js +29 -0
  323. package/dist/types/AriaRole.js.map +1 -0
  324. package/dist/types/CSSColor.d.ts +11 -0
  325. package/dist/types/CSSColor.js +14 -0
  326. package/dist/types/CSSColor.js.map +1 -0
  327. package/dist/types/CSSSize.d.ts +11 -0
  328. package/dist/types/CSSSize.js +10 -5
  329. package/dist/types/CSSSize.js.map +1 -0
  330. package/dist/types/CalendarType.d.ts +28 -0
  331. package/dist/types/CalendarType.js +30 -0
  332. package/dist/types/CalendarType.js.map +1 -0
  333. package/dist/types/DOMReference.d.ts +13 -0
  334. package/dist/types/DOMReference.js +21 -0
  335. package/dist/types/DOMReference.js.map +1 -0
  336. package/dist/types/DataType.d.ts +20 -0
  337. package/dist/types/DataType.js +31 -17
  338. package/dist/types/DataType.js.map +1 -0
  339. package/dist/types/Float.d.ts +14 -0
  340. package/dist/types/Float.js +18 -0
  341. package/dist/types/Float.js.map +1 -0
  342. package/dist/types/Integer.d.ts +14 -0
  343. package/dist/types/Integer.js +14 -5
  344. package/dist/types/Integer.js.map +1 -0
  345. package/dist/types/InvisibleMessageMode.d.ts +20 -0
  346. package/dist/types/InvisibleMessageMode.js +20 -0
  347. package/dist/types/InvisibleMessageMode.js.map +1 -0
  348. package/dist/types/ItemNavigationBehavior.d.ts +18 -0
  349. package/dist/types/ItemNavigationBehavior.js +16 -17
  350. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  351. package/dist/types/MovePlacement.d.ts +20 -0
  352. package/dist/types/MovePlacement.js +22 -0
  353. package/dist/types/MovePlacement.js.map +1 -0
  354. package/dist/types/NavigationMode.d.ts +24 -0
  355. package/dist/types/NavigationMode.js +25 -5
  356. package/dist/types/NavigationMode.js.map +1 -0
  357. package/dist/types/Orientation.d.ts +16 -0
  358. package/dist/types/Orientation.js +18 -0
  359. package/dist/types/Orientation.js.map +1 -0
  360. package/dist/types/ValueState.d.ts +28 -0
  361. package/dist/types/ValueState.js +27 -18
  362. package/dist/types/ValueState.js.map +1 -0
  363. package/dist/types.d.ts +41 -0
  364. package/dist/types.js +2 -0
  365. package/dist/types.js.map +1 -0
  366. package/dist/updateShadowRoot.d.ts +7 -0
  367. package/dist/updateShadowRoot.js +18 -0
  368. package/dist/updateShadowRoot.js.map +1 -0
  369. package/dist/util/AriaLabelHelper.d.ts +15 -0
  370. package/dist/util/AriaLabelHelper.js +171 -0
  371. package/dist/util/AriaLabelHelper.js.map +1 -0
  372. package/dist/util/Caret.d.ts +7 -0
  373. package/dist/util/Caret.js +23 -0
  374. package/dist/util/Caret.js.map +1 -0
  375. package/dist/util/ColorConversion.d.ts +30 -0
  376. package/dist/util/ColorConversion.js +342 -0
  377. package/dist/util/ColorConversion.js.map +1 -0
  378. package/dist/util/FetchHelper.d.ts +3 -0
  379. package/dist/util/FetchHelper.js +19 -25
  380. package/dist/util/FetchHelper.js.map +1 -0
  381. package/dist/util/FocusableElements.d.ts +4 -0
  382. package/dist/util/FocusableElements.js +68 -56
  383. package/dist/util/FocusableElements.js.map +1 -0
  384. package/dist/util/HTMLSanitizer.d.ts +3 -0
  385. package/dist/util/HTMLSanitizer.js +6 -0
  386. package/dist/util/HTMLSanitizer.js.map +1 -0
  387. package/dist/util/InvisibleMessage.d.ts +10 -0
  388. package/dist/util/InvisibleMessage.js +56 -0
  389. package/dist/util/InvisibleMessage.js.map +1 -0
  390. package/dist/util/PopupUtils.d.ts +5 -0
  391. package/dist/util/PopupUtils.js +60 -0
  392. package/dist/util/PopupUtils.js.map +1 -0
  393. package/dist/util/SlotsHelper.d.ts +9 -0
  394. package/dist/util/SlotsHelper.js +30 -0
  395. package/dist/util/SlotsHelper.js.map +1 -0
  396. package/dist/util/StringHelper.d.ts +3 -0
  397. package/dist/util/StringHelper.js +21 -9
  398. package/dist/util/StringHelper.js.map +1 -0
  399. package/dist/util/TabbableElements.d.ts +17 -0
  400. package/dist/util/TabbableElements.js +53 -40
  401. package/dist/util/TabbableElements.js.map +1 -0
  402. package/dist/util/arraysAreEqual.d.ts +2 -0
  403. package/dist/util/arraysAreEqual.js +13 -0
  404. package/dist/util/arraysAreEqual.js.map +1 -0
  405. package/dist/util/clamp.d.ts +9 -0
  406. package/dist/util/clamp.js +13 -0
  407. package/dist/util/clamp.js.map +1 -0
  408. package/dist/util/createLinkInHead.d.ts +7 -0
  409. package/dist/util/createLinkInHead.js +21 -0
  410. package/dist/util/createLinkInHead.js.map +1 -0
  411. package/dist/util/debounce.d.ts +2 -0
  412. package/dist/util/debounce.js +15 -0
  413. package/dist/util/debounce.js.map +1 -0
  414. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  415. package/dist/util/detectNavigatorLanguage.js +14 -10
  416. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  417. package/dist/util/dragAndDrop/DragRegistry.d.ts +12 -0
  418. package/dist/util/dragAndDrop/DragRegistry.js +68 -0
  419. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
  420. package/dist/util/dragAndDrop/findClosestPosition.d.ts +7 -0
  421. package/dist/util/dragAndDrop/findClosestPosition.js +59 -0
  422. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
  423. package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
  424. package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
  425. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
  426. package/dist/util/escapeRegex.d.ts +8 -0
  427. package/dist/util/escapeRegex.js +11 -0
  428. package/dist/util/escapeRegex.js.map +1 -0
  429. package/dist/util/formatMessage.d.ts +2 -0
  430. package/dist/util/formatMessage.js +15 -19
  431. package/dist/util/formatMessage.js.map +1 -0
  432. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  433. package/dist/util/generateHighlightedMarkup.js +41 -0
  434. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  435. package/dist/util/getActiveElement.d.ts +2 -0
  436. package/dist/util/getActiveElement.js +9 -0
  437. package/dist/util/getActiveElement.js.map +1 -0
  438. package/dist/util/getClassCopy.d.ts +421 -0
  439. package/dist/util/getClassCopy.js +10 -0
  440. package/dist/util/getClassCopy.js.map +1 -0
  441. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  442. package/dist/util/getDesigntimePropertyAsArray.js +5 -3
  443. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  444. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  445. package/dist/util/getEffectiveContentDensity.js +4 -0
  446. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  447. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  448. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  449. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  450. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  451. package/dist/util/getFastNavigationGroups.js +51 -0
  452. package/dist/util/getFastNavigationGroups.js.map +1 -0
  453. package/dist/util/getFileExtension.d.ts +12 -0
  454. package/dist/util/getFileExtension.js +19 -0
  455. package/dist/util/getFileExtension.js.map +1 -0
  456. package/dist/util/getNormalizedTarget.d.ts +7 -0
  457. package/dist/util/getNormalizedTarget.js +14 -0
  458. package/dist/util/getNormalizedTarget.js.map +1 -0
  459. package/dist/util/getParentElement.d.ts +2 -0
  460. package/dist/util/getParentElement.js +5 -0
  461. package/dist/util/getParentElement.js.map +1 -0
  462. package/dist/util/getSingletonElementInstance.d.ts +11 -0
  463. package/dist/util/getSingletonElementInstance.js +19 -0
  464. package/dist/util/getSingletonElementInstance.js.map +1 -0
  465. package/dist/util/isElementClickable.d.ts +2 -0
  466. package/dist/util/isElementClickable.js +16 -0
  467. package/dist/util/isElementClickable.js.map +1 -0
  468. package/dist/util/isElementContainingBlock.d.ts +2 -0
  469. package/dist/util/isElementContainingBlock.js +11 -0
  470. package/dist/util/isElementContainingBlock.js.map +1 -0
  471. package/dist/util/isElementHidden.d.ts +2 -0
  472. package/dist/util/isElementHidden.js +8 -0
  473. package/dist/util/isElementHidden.js.map +1 -0
  474. package/dist/util/isElementInView.d.ts +6 -0
  475. package/dist/util/isElementInView.js +12 -0
  476. package/dist/util/isElementInView.js.map +1 -0
  477. package/dist/util/isElementTabbable.d.ts +9 -0
  478. package/dist/util/isElementTabbable.js +30 -0
  479. package/dist/util/isElementTabbable.js.map +1 -0
  480. package/dist/util/isValidPropertyName.d.ts +8 -0
  481. package/dist/util/isValidPropertyName.js +20 -12
  482. package/dist/util/isValidPropertyName.js.map +1 -0
  483. package/dist/util/whenDOMReady.d.ts +2 -0
  484. package/dist/util/whenDOMReady.js +11 -10
  485. package/dist/util/whenDOMReady.js.map +1 -0
  486. package/dist/util/willShowContent.d.ts +2 -0
  487. package/dist/util/willShowContent.js +7 -0
  488. package/dist/util/willShowContent.js.map +1 -0
  489. package/dist/validateThemeRoot.d.ts +2 -0
  490. package/dist/validateThemeRoot.js +48 -0
  491. package/dist/validateThemeRoot.js.map +1 -0
  492. package/index.js +212 -2
  493. package/package-scripts.cjs +74 -0
  494. package/package.json +38 -14
  495. package/src/css/BusyIndicator.css +80 -0
  496. package/src/css/FontFace.css +96 -0
  497. package/src/css/OverrideFontFace.css +32 -0
  498. package/src/css/SystemCSSVars.css +9 -0
  499. package/tsconfig.json +20 -0
  500. package/.eslintignore +0 -10
  501. package/bundle.es5.js +0 -31
  502. package/bundle.esm.js +0 -56
  503. package/config/.eslintrc.js +0 -3
  504. package/config/rollup.config.js +0 -1
  505. package/config/wdio.conf.js +0 -1
  506. package/dist/Assets.js +0 -2
  507. package/dist/CSS.js +0 -48
  508. package/dist/ContentDensity.js +0 -20
  509. package/dist/FormatSettings.js +0 -31
  510. package/dist/Locale.js +0 -101
  511. package/dist/LocaleProvider.js +0 -34
  512. package/dist/RenderScheduler.js +0 -160
  513. package/dist/ResourceLoaderOverrides.js +0 -38
  514. package/dist/SVGIconRegistry.js +0 -54
  515. package/dist/animations/config.js +0 -5
  516. package/dist/boot.js +0 -28
  517. package/dist/cldr/en.js +0 -4788
  518. package/dist/compatibility/DOMObserver.js +0 -62
  519. package/dist/compatibility/patchNodeValue.js +0 -24
  520. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  521. package/dist/config/CompactSize.js +0 -23
  522. package/dist/config/RTL.js +0 -31
  523. package/dist/dates/CalendarDate.js +0 -203
  524. package/dist/dates/CalendarDatesRegistry.js +0 -17
  525. package/dist/dates/CalendarType.js +0 -22
  526. package/dist/dates/CalendarUtils.js +0 -99
  527. package/dist/delegate/CustomResize.js +0 -78
  528. package/dist/delegate/NativeResize.js +0 -44
  529. package/dist/events/EventEnrichment.js +0 -38
  530. package/dist/events/PseudoEvents.js +0 -58
  531. package/dist/features/browsersupport/Edge.js +0 -6
  532. package/dist/features/browsersupport/IE11.js +0 -41
  533. package/dist/features/calendar/Buddhist.js +0 -1
  534. package/dist/features/calendar/Islamic.js +0 -1
  535. package/dist/features/calendar/Japanese.js +0 -1
  536. package/dist/features/calendar/Persian.js +0 -1
  537. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  538. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  539. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  540. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  541. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  542. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  543. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  544. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  545. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  546. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  547. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  548. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  549. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  550. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  551. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  552. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  553. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  554. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  555. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  556. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  557. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  558. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  559. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  560. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  561. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  562. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  563. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  564. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  565. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  566. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  567. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  568. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  569. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  570. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  571. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  572. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  573. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  574. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  575. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  576. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  577. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  578. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  579. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  580. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  581. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  582. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  583. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  584. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  585. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  586. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  587. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  588. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  589. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  590. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  591. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  592. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  593. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  594. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  595. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  596. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  597. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  598. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  599. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  600. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  601. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  602. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  603. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  604. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  605. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  606. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  607. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  608. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  609. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  610. package/dist/json-imports/LocaleData.js +0 -171
  611. package/dist/renderer/ifDefined.js +0 -21
  612. package/dist/resources/bundle.es5.js +0 -212
  613. package/dist/resources/bundle.es5.js.map +0 -1
  614. package/dist/resources/bundle.esm.js +0 -123
  615. package/dist/resources/bundle.esm.js.map +0 -1
  616. package/dist/shims/Core-shim.js +0 -52
  617. package/dist/shims/jquery-shim.js +0 -89
  618. package/dist/test-resources/assets/Themes.js +0 -11
  619. package/dist/test-resources/elements/Child.js +0 -35
  620. package/dist/test-resources/elements/DensityAware.js +0 -14
  621. package/dist/test-resources/elements/Generic.js +0 -83
  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 -36
  625. package/dist/test-resources/pages/AllTestElements.html +0 -42
  626. package/dist/test-resources/pages/Configuration.html +0 -20
  627. package/dist/test-resources/pages/ConfigurationScript.html +0 -37
  628. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -34
  629. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -69
  630. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -53
  631. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  632. package/dist/test-resources/specs/Theming.spec.js +0 -31
  633. package/dist/test-resources/specs/UI5ElementDensityAware.spec.js +0 -51
  634. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  635. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  636. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  637. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  638. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  639. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  640. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  641. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  642. package/dist/theming/StyleInjection.js +0 -67
  643. package/dist/theming/ThemeBundle.js +0 -29
  644. package/dist/thirdparty/Array.from.js +0 -16
  645. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  646. package/dist/thirdparty/Array.prototype.find.js +0 -46
  647. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  648. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  649. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  650. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  651. package/dist/thirdparty/Number.isInteger.js +0 -5
  652. package/dist/thirdparty/Number.isNaN.js +0 -1
  653. package/dist/thirdparty/Number.parseInt.js +0 -1
  654. package/dist/thirdparty/Object.assign.js +0 -31
  655. package/dist/thirdparty/Object.entries.js +0 -11
  656. package/dist/thirdparty/Symbol.js +0 -2
  657. package/dist/thirdparty/WeakSet.js +0 -27
  658. package/dist/thirdparty/events-polyfills.js +0 -89
  659. package/dist/thirdparty/fetch.js +0 -1
  660. package/dist/thirdparty/template.js +0 -600
  661. package/dist/types/PopupState.js +0 -37
  662. package/dist/util/CSSTransformUtils.js +0 -90
  663. package/dist/util/createStyleInHead.js +0 -18
  664. package/dist/util/isDescendantOf.js +0 -15
  665. package/dist/util/isNodeClickable.js +0 -19
  666. package/dist/util/isNodeHidden.js +0 -13
  667. package/dist/util/isNodeTabbable.js +0 -28
  668. package/dist/util/normalizeLocale.js +0 -77
  669. package/dist/webcomponentsjs/LICENSE.md +0 -19
  670. package/dist/webcomponentsjs/README.md +0 -229
  671. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  672. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  673. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  674. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  675. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  676. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  677. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  678. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  679. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  680. package/dist/webcomponentsjs/package.json +0 -46
  681. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  682. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  683. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  684. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  685. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  686. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  687. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  688. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  689. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  690. package/package-scripts.js +0 -42
  691. package/src/AssetRegistry.js +0 -9
  692. package/src/Assets.js +0 -2
  693. package/src/CSS.js +0 -48
  694. package/src/ContentDensity.js +0 -20
  695. package/src/Device.js +0 -823
  696. package/src/EventProvider.js +0 -73
  697. package/src/FeaturesRegistry.js +0 -11
  698. package/src/FontFace.js +0 -66
  699. package/src/FormatSettings.js +0 -31
  700. package/src/InitialConfiguration.js +0 -126
  701. package/src/Locale.js +0 -101
  702. package/src/LocaleProvider.js +0 -34
  703. package/src/RenderQueue.js +0 -42
  704. package/src/RenderScheduler.js +0 -160
  705. package/src/ResourceLoaderOverrides.js +0 -38
  706. package/src/SVGIconRegistry.js +0 -54
  707. package/src/Theming.js +0 -45
  708. package/src/UI5Element.js +0 -834
  709. package/src/UI5ElementMetadata.js +0 -156
  710. package/src/animations/AnimationQueue.js +0 -42
  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/animations/slideDown.js +0 -79
  715. package/src/animations/slideUp.js +0 -71
  716. package/src/asset-registries/Icons.js +0 -24
  717. package/src/asset-registries/LocaleData.js +0 -101
  718. package/src/asset-registries/Themes.js +0 -75
  719. package/src/asset-registries/i18n.js +0 -75
  720. package/src/boot.js +0 -28
  721. package/src/cldr/en.js +0 -4788
  722. package/src/compatibility/DOMObserver.js +0 -62
  723. package/src/compatibility/patchNodeValue.js +0 -24
  724. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  725. package/src/config/AnimationMode.js +0 -9
  726. package/src/config/CalendarType.js +0 -18
  727. package/src/config/CompactSize.js +0 -23
  728. package/src/config/FormatSettings.js +0 -9
  729. package/src/config/Language.js +0 -9
  730. package/src/config/NoConflict.js +0 -44
  731. package/src/config/RTL.js +0 -31
  732. package/src/config/Theme.js +0 -24
  733. package/src/dates/CalendarDate.js +0 -203
  734. package/src/dates/CalendarDatesRegistry.js +0 -17
  735. package/src/dates/CalendarType.js +0 -22
  736. package/src/dates/CalendarUtils.js +0 -99
  737. package/src/delegate/CustomResize.js +0 -78
  738. package/src/delegate/ItemNavigation.js +0 -235
  739. package/src/delegate/NativeResize.js +0 -44
  740. package/src/delegate/ResizeHandler.js +0 -66
  741. package/src/delegate/ScrollEnablement.js +0 -80
  742. package/src/events/EventEnrichment.js +0 -38
  743. package/src/events/PseudoEvents.js +0 -58
  744. package/src/features/browsersupport/Edge.js +0 -6
  745. package/src/features/browsersupport/IE11.js +0 -41
  746. package/src/features/calendar/Buddhist.js +0 -1
  747. package/src/features/calendar/Islamic.js +0 -1
  748. package/src/features/calendar/Japanese.js +0 -1
  749. package/src/features/calendar/Persian.js +0 -1
  750. package/src/i18nBundle.js +0 -35
  751. package/src/json-imports/LocaleData.js +0 -171
  752. package/src/renderer/LitRenderer.js +0 -15
  753. package/src/renderer/ifDefined.js +0 -21
  754. package/src/shims/Core-shim.js +0 -52
  755. package/src/shims/jquery-shim.js +0 -89
  756. package/src/theming/CustomStyle.js +0 -19
  757. package/src/theming/StyleInjection.js +0 -67
  758. package/src/theming/ThemeBundle.js +0 -29
  759. package/src/thirdparty/Array.from.js +0 -16
  760. package/src/thirdparty/Array.prototype.fill.js +0 -44
  761. package/src/thirdparty/Array.prototype.find.js +0 -46
  762. package/src/thirdparty/Array.prototype.includes.js +0 -51
  763. package/src/thirdparty/Element.prototype.closest.js +0 -11
  764. package/src/thirdparty/Element.prototype.matches.js +0 -6
  765. package/src/thirdparty/Map.prototype.keys.js +0 -9
  766. package/src/thirdparty/Number.isInteger.js +0 -5
  767. package/src/thirdparty/Number.isNaN.js +0 -1
  768. package/src/thirdparty/Number.parseInt.js +0 -1
  769. package/src/thirdparty/Object.assign.js +0 -31
  770. package/src/thirdparty/Object.entries.js +0 -11
  771. package/src/thirdparty/Symbol.js +0 -2
  772. package/src/thirdparty/WeakSet.js +0 -27
  773. package/src/thirdparty/events-polyfills.js +0 -89
  774. package/src/thirdparty/fetch.js +0 -1
  775. package/src/thirdparty/template.js +0 -600
  776. package/src/types/AnimationMode.js +0 -7
  777. package/src/types/CSSSize.js +0 -9
  778. package/src/types/DataType.js +0 -25
  779. package/src/types/Integer.js +0 -9
  780. package/src/types/ItemNavigationBehavior.js +0 -21
  781. package/src/types/NavigationMode.js +0 -6
  782. package/src/types/PopupState.js +0 -37
  783. package/src/types/ValueState.js +0 -21
  784. package/src/util/CSSTransformUtils.js +0 -90
  785. package/src/util/FetchHelper.js +0 -31
  786. package/src/util/FocusableElements.js +0 -60
  787. package/src/util/StringHelper.js +0 -11
  788. package/src/util/TabbableElements.js +0 -44
  789. package/src/util/createStyleInHead.js +0 -18
  790. package/src/util/detectNavigatorLanguage.js +0 -11
  791. package/src/util/formatMessage.js +0 -23
  792. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  793. package/src/util/isDescendantOf.js +0 -15
  794. package/src/util/isNodeClickable.js +0 -19
  795. package/src/util/isNodeHidden.js +0 -13
  796. package/src/util/isNodeTabbable.js +0 -28
  797. package/src/util/isValidPropertyName.js +0 -20
  798. package/src/util/normalizeLocale.js +0 -77
  799. package/src/util/whenDOMReady.js +0 -13
@@ -1,24 +1,136 @@
1
- import { registerIcon, registerCollectionPromise } from "../SVGIconRegistry.js";
2
- import { fetchJsonOnce } from "../util/FetchHelper.js";
3
-
4
- const registerIconBundle = async (collectionName, bundleData) => {
5
- let resolveFn;
6
- const collectionFetched = new Promise(resolve => {
7
- resolveFn = resolve;
8
- });
9
- registerCollectionPromise(collectionName, collectionFetched);
10
-
11
- if (typeof bundleData !== "object") { // not inlined from build -> fetch it
12
- bundleData = await fetchJsonOnce(bundleData);
13
- }
14
- fillRegistry(bundleData);
15
- resolveFn();
16
- };
17
-
18
- const fillRegistry = bundleData => {
19
- Object.keys(bundleData.data).forEach(iconName => {
20
- registerIcon(iconName, { pathData: bundleData.data[iconName], accData: bundleData.accData[iconName], collection: bundleData.collection });
21
- });
22
- };
23
-
24
- export { registerIconBundle }; // eslint-disable-line
1
+ import getSharedResource from "../getSharedResource.js";
2
+ import { getIconCollectionByAlias } from "./util/IconCollectionsAlias.js";
3
+ import { registerIconCollectionForTheme } from "./util/IconCollectionsByTheme.js";
4
+ import getEffectiveIconCollection from "./util/getIconCollectionByTheme.js";
5
+ import { getI18nBundle } from "../i18nBundle.js";
6
+ const DEFAULT_THEME_FAMILY = "legacy"; // includes sap_fiori_*
7
+ const loaders = new Map();
8
+ const registry = getSharedResource("SVGIcons.registry", new Map());
9
+ const iconCollectionPromises = getSharedResource("SVGIcons.promises", new Map());
10
+ const ICON_NOT_FOUND = "ICON_NOT_FOUND";
11
+ const registerIconLoader = (collectionName, loader) => {
12
+ loaders.set(collectionName, loader);
13
+ };
14
+ const _loadIconCollectionOnce = async (collectionName) => {
15
+ if (!iconCollectionPromises.has(collectionName)) {
16
+ if (!loaders.has(collectionName)) {
17
+ throw new Error(`No loader registered for the ${collectionName} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);
18
+ }
19
+ const loadIcons = loaders.get(collectionName);
20
+ iconCollectionPromises.set(collectionName, loadIcons(collectionName));
21
+ }
22
+ return iconCollectionPromises.get(collectionName);
23
+ };
24
+ const _fillRegistry = (bundleData) => {
25
+ Object.keys(bundleData.data).forEach(iconName => {
26
+ const iconData = bundleData.data[iconName];
27
+ registerIcon(iconName, {
28
+ pathData: (iconData.path || iconData.paths),
29
+ ltr: iconData.ltr,
30
+ accData: iconData.acc,
31
+ collection: bundleData.collection,
32
+ packageName: bundleData.packageName,
33
+ });
34
+ });
35
+ };
36
+ // set
37
+ const registerIcon = (name, iconData) => {
38
+ const key = `${iconData.collection}/${name}`;
39
+ registry.set(key, {
40
+ pathData: iconData.pathData,
41
+ ltr: iconData.ltr,
42
+ accData: iconData.accData,
43
+ packageName: iconData.packageName,
44
+ customTemplate: iconData.customTemplate,
45
+ viewBox: iconData.viewBox,
46
+ collection: iconData.collection,
47
+ });
48
+ };
49
+ /**
50
+ * Processes the full icon name and splits it into - "name", "collection".
51
+ * - removes legacy protocol ("sap-icon://")
52
+ * - resolves aliases (f.e "SAP-icons-TNT/actor" => "tnt/actor")
53
+ *
54
+ * @param { string } name
55
+ * @return { object }
56
+ */
57
+ const processName = (name) => {
58
+ // silently support ui5-compatible URIs
59
+ if (name.startsWith("sap-icon://")) {
60
+ name = name.replace("sap-icon://", "");
61
+ }
62
+ let collection;
63
+ [name, collection] = name.split("/").reverse();
64
+ name = name.replace("icon-", "");
65
+ if (collection) {
66
+ collection = getIconCollectionByAlias(collection);
67
+ }
68
+ return { name, collection };
69
+ };
70
+ const getIconDataSync = (iconName) => {
71
+ const { name, collection } = processName(iconName);
72
+ return getRegisteredIconData(collection, name);
73
+ };
74
+ const getIconData = async (iconName) => {
75
+ const { name, collection } = processName(iconName);
76
+ let iconData = ICON_NOT_FOUND;
77
+ try {
78
+ iconData = (await _loadIconCollectionOnce(getEffectiveIconCollection(collection)));
79
+ }
80
+ catch (error) {
81
+ const e = error;
82
+ console.error(e.message); /* eslint-disable-line */
83
+ }
84
+ if (iconData === ICON_NOT_FOUND) {
85
+ return iconData;
86
+ }
87
+ const registeredIconData = getRegisteredIconData(collection, name);
88
+ if (registeredIconData) {
89
+ return registeredIconData;
90
+ }
91
+ // not filled by another await. many getters will await on the same loader, but fill only once
92
+ if (Array.isArray(iconData)) {
93
+ iconData.forEach(data => {
94
+ _fillRegistry(data);
95
+ registerIconCollectionForTheme(collection, { [data.themeFamily || DEFAULT_THEME_FAMILY]: data.collection });
96
+ });
97
+ }
98
+ else {
99
+ _fillRegistry(iconData);
100
+ }
101
+ return getRegisteredIconData(collection, name);
102
+ };
103
+ const getRegisteredIconData = (collection, name) => {
104
+ const registryKey = `${getEffectiveIconCollection(collection)}/${name}`;
105
+ return registry.get(registryKey);
106
+ };
107
+ /**
108
+ * Returns the accessible name for the given icon,
109
+ * or undefined if accessible name is not present.
110
+ *
111
+ * @param { string } name
112
+ * @return { Promise }
113
+ */
114
+ const getIconAccessibleName = async (name) => {
115
+ if (!name) {
116
+ return;
117
+ }
118
+ let iconData = getIconDataSync(name);
119
+ if (!iconData) {
120
+ iconData = await getIconData(name);
121
+ }
122
+ if (iconData && iconData !== ICON_NOT_FOUND && iconData.accData) {
123
+ const i18nBundle = await getI18nBundle(iconData.packageName);
124
+ return i18nBundle.getText(iconData.accData);
125
+ }
126
+ };
127
+ // test page usage only
128
+ const _getRegisteredNames = async () => {
129
+ // fetch one icon of each collection to trigger the bundle load
130
+ await getIconData("edit");
131
+ await getIconData("tnt/arrow");
132
+ await getIconData("business-suite/3d");
133
+ return Array.from(registry.keys());
134
+ };
135
+ export { registerIconLoader, getIconData, getIconDataSync, getIconAccessibleName, registerIcon, _getRegisteredNames, };
136
+ //# sourceMappingURL=Icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icons.js","sourceRoot":"","sources":["../../src/asset-registries/Icons.ts"],"names":[],"mappings":"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","sourcesContent":["import getSharedResource from \"../getSharedResource.js\";\nimport { getIconCollectionByAlias } from \"./util/IconCollectionsAlias.js\";\nimport { registerIconCollectionForTheme } from \"./util/IconCollectionsByTheme.js\";\nimport getEffectiveIconCollection from \"./util/getIconCollectionByTheme.js\";\nimport { getI18nBundle } from \"../i18nBundle.js\";\nimport type { I18nText } from \"../i18nBundle.js\";\nimport type { TemplateFunction } from \"../renderer/executeTemplate.js\";\n\nconst DEFAULT_THEME_FAMILY = \"legacy\"; // includes sap_fiori_*\n\ntype IconLoader = (collectionName: string) => Promise<CollectionData | Array<CollectionData>>;\n\ntype CollectionData = {\n\tcollection: string,\n\tpackageName: string,\n\tthemeFamily?: \"legacy\" | \"sap_horizon\",\n\tversion?: string,\n\tdata: Record<string, {\n\t\tpath?: string,\n\t\tpaths?: Array<string>,\n\t\tltr?: boolean,\n\t\tacc?: I18nText,\n\t}>,\n};\n\ntype IconData = {\n\tcollection: string,\n\tpackageName: string,\n\tpathData: string | Array<string>,\n\tltr?: boolean,\n\taccData?: I18nText,\n\tcustomTemplate?: TemplateFunction,\n\tviewBox?: string,\n};\n\nconst loaders = new Map<string, IconLoader>();\nconst registry = getSharedResource<Map<string, IconData>>(\"SVGIcons.registry\", new Map());\nconst iconCollectionPromises = getSharedResource<Map<string, Promise<CollectionData| Array<CollectionData>>>>(\"SVGIcons.promises\", new Map());\n\nconst ICON_NOT_FOUND = \"ICON_NOT_FOUND\";\n\nconst registerIconLoader = (collectionName: string, loader: IconLoader) => {\n\tloaders.set(collectionName, loader);\n};\n\nconst _loadIconCollectionOnce = async (collectionName: string) => {\n\tif (!iconCollectionPromises.has(collectionName)) {\n\t\tif (!loaders.has(collectionName)) {\n\t\t\tthrow new Error(`No loader registered for the ${collectionName} icons collection. Probably you forgot to import the \"AllIcons.js\" module for the respective package.`);\n\t\t}\n\n\t\tconst loadIcons = loaders.get(collectionName)!;\n\t\ticonCollectionPromises.set(collectionName, loadIcons(collectionName));\n\t}\n\n\treturn iconCollectionPromises.get(collectionName);\n};\n\nconst _fillRegistry = (bundleData: CollectionData) => {\n\tObject.keys(bundleData.data).forEach(iconName => {\n\t\tconst iconData = bundleData.data[iconName];\n\n\t\tregisterIcon(iconName, {\n\t\t\tpathData: (iconData.path || iconData.paths)!,\n\t\t\tltr: iconData.ltr,\n\t\t\taccData: iconData.acc,\n\t\t\tcollection: bundleData.collection,\n\t\t\tpackageName: bundleData.packageName,\n\t\t});\n\t});\n};\n\n// set\nconst registerIcon = (name: string, iconData: IconData) => { // eslint-disable-line\n\tconst key = `${iconData.collection}/${name}`;\n\n\tregistry.set(key, {\n\t\tpathData: iconData.pathData,\n\t\tltr: iconData.ltr,\n\t\taccData: iconData.accData,\n\t\tpackageName: iconData.packageName,\n\t\tcustomTemplate: iconData.customTemplate,\n\t\tviewBox: iconData.viewBox,\n\t\tcollection: iconData.collection,\n\t});\n};\n\n/**\n * Processes the full icon name and splits it into - \"name\", \"collection\".\n * - removes legacy protocol (\"sap-icon://\")\n * - resolves aliases (f.e \"SAP-icons-TNT/actor\" => \"tnt/actor\")\n *\n * @param { string } name\n * @return { object }\n */\nconst processName = (name: string) => {\n\t// silently support ui5-compatible URIs\n\tif (name.startsWith(\"sap-icon://\")) {\n\t\tname = name.replace(\"sap-icon://\", \"\");\n\t}\n\n\tlet collection: string;\n\t[name, collection] = name.split(\"/\").reverse();\n\n\tname = name.replace(\"icon-\", \"\");\n\tif (collection) {\n\t\tcollection = getIconCollectionByAlias(collection);\n\t}\n\treturn { name, collection };\n};\n\nconst getIconDataSync = (iconName: string) => {\n\tconst { name, collection } = processName(iconName);\n\treturn getRegisteredIconData(collection, name);\n};\n\nconst getIconData = async (iconName: string) => {\n\tconst { name, collection } = processName(iconName);\n\n\tlet iconData: string | CollectionData | Array<CollectionData> = ICON_NOT_FOUND;\n\ttry {\n\t\ticonData = (await _loadIconCollectionOnce(getEffectiveIconCollection(collection)))!;\n\t} catch (error: unknown) {\n\t\tconst e = error as Error;\n\t\tconsole.error(e.message); /* eslint-disable-line */\n\t}\n\n\tif (iconData === ICON_NOT_FOUND) {\n\t\treturn iconData;\n\t}\n\n\tconst registeredIconData = getRegisteredIconData(collection, name);\n\n\tif (registeredIconData) {\n\t\treturn registeredIconData;\n\t}\n\n\t// not filled by another await. many getters will await on the same loader, but fill only once\n\tif (Array.isArray(iconData)) {\n\t\ticonData.forEach(data => {\n\t\t\t_fillRegistry(data);\n\t\t\tregisterIconCollectionForTheme(collection, { [data.themeFamily || DEFAULT_THEME_FAMILY]: data.collection });\n\t\t});\n\t} else {\n\t\t_fillRegistry(iconData as CollectionData);\n\t}\n\n\treturn getRegisteredIconData(collection, name);\n};\n\nconst getRegisteredIconData = (collection: string, name: string) => {\n\tconst registryKey = `${getEffectiveIconCollection(collection)}/${name}`;\n\treturn registry.get(registryKey);\n};\n\n/**\n * Returns the accessible name for the given icon,\n * or undefined if accessible name is not present.\n *\n * @param { string } name\n * @return { Promise }\n */\nconst getIconAccessibleName = async (name: string): Promise<string | undefined> => {\n\tif (!name) {\n\t\treturn;\n\t}\n\n\tlet iconData: typeof ICON_NOT_FOUND | IconData | undefined = getIconDataSync(name);\n\n\tif (!iconData) {\n\t\ticonData = await getIconData(name);\n\t}\n\n\tif (iconData && iconData !== ICON_NOT_FOUND && iconData.accData) {\n\t\tconst i18nBundle = await getI18nBundle(iconData.packageName);\n\t\treturn i18nBundle.getText(iconData.accData);\n\t}\n};\n\n// test page usage only\nconst _getRegisteredNames = async () => {\n\t// fetch one icon of each collection to trigger the bundle load\n\tawait getIconData(\"edit\");\n\tawait getIconData(\"tnt/arrow\");\n\tawait getIconData(\"business-suite/3d\");\n\treturn Array.from(registry.keys());\n};\n\nexport {\n\tregisterIconLoader,\n\tgetIconData,\n\tgetIconDataSync,\n\tgetIconAccessibleName,\n\tregisterIcon,\n\t_getRegisteredNames,\n};\n\nexport type {\n\tIconData,\n\tCollectionData,\n};\n"]}
@@ -0,0 +1,19 @@
1
+ import type { I18nText } from "../i18nBundle.js";
2
+ type IllustrationLoader = (illustrationName: string) => Promise<IllustrationData>;
3
+ type IllustrationProperties = {
4
+ dialogSvg: string;
5
+ sceneSvg: string;
6
+ spotSvg: string;
7
+ dotSvg: string;
8
+ title: I18nText;
9
+ subtitle: I18nText;
10
+ };
11
+ type IllustrationData = IllustrationProperties & {
12
+ set: string;
13
+ collection: string;
14
+ };
15
+ declare const registerIllustration: (name: string, data: IllustrationData) => void;
16
+ declare const registerIllustrationLoader: (illustrationName: string, loader: IllustrationLoader) => void;
17
+ declare const getIllustrationDataSync: (illustrationName: string) => IllustrationProperties | undefined;
18
+ declare const getIllustrationData: (illustrationName: string) => Promise<IllustrationProperties | undefined>;
19
+ export { getIllustrationDataSync, registerIllustration, registerIllustrationLoader, getIllustrationData, };
@@ -0,0 +1,77 @@
1
+ import getSharedResource from "../getSharedResource.js";
2
+ import { getTheme } from "../config/Theme.js";
3
+ const IllustrationCollections = new Map([
4
+ ["sap_horizon", "V5"],
5
+ ["sap_horizon_dark", "V5"],
6
+ ["sap_horizon_hcb", "V5/HC"],
7
+ ["sap_horizon_hcw", "V5/HC"],
8
+ ]);
9
+ const FALLBACK_COLLECTION = "V4";
10
+ const loaders = new Map();
11
+ const registry = getSharedResource("SVGIllustration.registry", new Map());
12
+ const illustrationPromises = getSharedResource("SVGIllustration.promises", new Map());
13
+ const getCollection = () => {
14
+ const theme = getTheme();
15
+ if (IllustrationCollections.has(theme)) {
16
+ return IllustrationCollections.get(theme);
17
+ }
18
+ return FALLBACK_COLLECTION;
19
+ };
20
+ /**
21
+ * Processes the name of the illustration
22
+ * The name is used to generate the registry key and the loader key
23
+ * The registry key is used to store and get the illustration data from the registry
24
+ * The loader key is used to store and get the illustration loader from the loaders map
25
+ * The function generates the correct registry key and loader key based on whether an loader exists for the illustration
26
+ * If there is no loader registered for the collection, it falls back to the default collection
27
+ */
28
+ const processName = (name) => {
29
+ let collection = getCollection();
30
+ const [set, illustrationName] = name.split("/");
31
+ let registryKey = `${set}/${collection}/${illustrationName}`;
32
+ if (!loaders.has(registryKey) && collection !== FALLBACK_COLLECTION) {
33
+ collection = FALLBACK_COLLECTION;
34
+ registryKey = `${set}/${collection}/${illustrationName}`;
35
+ }
36
+ return {
37
+ registryKey,
38
+ collection,
39
+ };
40
+ };
41
+ const registerIllustration = (name, data) => {
42
+ const collection = data.collection || FALLBACK_COLLECTION;
43
+ registry.set(`${data.set}/${collection}/${name}`, {
44
+ dialogSvg: data.dialogSvg,
45
+ sceneSvg: data.sceneSvg,
46
+ spotSvg: data.spotSvg,
47
+ dotSvg: data.dotSvg,
48
+ title: data.title,
49
+ subtitle: data.subtitle,
50
+ });
51
+ };
52
+ const registerIllustrationLoader = (illustrationName, loader) => {
53
+ loaders.set(illustrationName, loader);
54
+ };
55
+ const _loadIllustrationOnce = (illustrationName) => {
56
+ const { registryKey } = processName(illustrationName);
57
+ if (!illustrationPromises.has(registryKey)) {
58
+ if (!loaders.has(registryKey)) {
59
+ const illustrationPath = illustrationName.startsWith("fiori/") ? illustrationName.replace("fiori/", "") : illustrationName;
60
+ throw new Error(`No loader registered for the ${illustrationName} illustration. Probably you forgot to import the "@ui5/webcomponents-fiori/dist/illustrations/${illustrationPath}.js" module. Or you can import the "@ui5/webcomponents-fiori/dist/illustrations/AllIllustrations.js" module that will make all illustrations available, but fetch only the ones used.`);
61
+ }
62
+ const loadIllustrations = loaders.get(registryKey);
63
+ illustrationPromises.set(registryKey, loadIllustrations(registryKey));
64
+ }
65
+ return illustrationPromises.get(registryKey);
66
+ };
67
+ const getIllustrationDataSync = (illustrationName) => {
68
+ const { registryKey } = processName(illustrationName);
69
+ return registry.get(registryKey);
70
+ };
71
+ const getIllustrationData = async (illustrationName) => {
72
+ const { registryKey } = processName(illustrationName);
73
+ await _loadIllustrationOnce(illustrationName);
74
+ return registry.get(registryKey);
75
+ };
76
+ export { getIllustrationDataSync, registerIllustration, registerIllustrationLoader, getIllustrationData, };
77
+ //# sourceMappingURL=Illustrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Illustrations.js","sourceRoot":"","sources":["../../src/asset-registries/Illustrations.ts"],"names":[],"mappings":"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","sourcesContent":["import getSharedResource from \"../getSharedResource.js\";\nimport type { I18nText } from \"../i18nBundle.js\";\nimport { getTheme } from \"../config/Theme.js\";\n\ntype IllustrationLoader = (illustrationName: string) => Promise<IllustrationData>;\n\ntype IllustrationProperties = {\n\tdialogSvg: string,\n\tsceneSvg: string,\n\tspotSvg: string,\n\tdotSvg: string,\n\ttitle: I18nText,\n\tsubtitle: I18nText,\n};\n\ntype IllustrationData = IllustrationProperties & {\n\tset: string,\n\tcollection: string,\n};\n\nconst IllustrationCollections = new Map([\n\t[\"sap_horizon\", \"V5\"],\n\t[\"sap_horizon_dark\", \"V5\"],\n\t[\"sap_horizon_hcb\", \"V5/HC\"],\n\t[\"sap_horizon_hcw\", \"V5/HC\"],\n]);\n\nconst FALLBACK_COLLECTION = \"V4\";\n\nconst loaders = new Map<string, IllustrationLoader>();\nconst registry = getSharedResource<Map<string, IllustrationProperties>>(\"SVGIllustration.registry\", new Map());\nconst illustrationPromises = getSharedResource<Map<string, Promise<IllustrationData>>>(\"SVGIllustration.promises\", new Map());\n\nconst getCollection = () => {\n\tconst theme = getTheme();\n\n\tif (IllustrationCollections.has(theme)) {\n\t\treturn IllustrationCollections.get(theme);\n\t}\n\n\treturn FALLBACK_COLLECTION;\n};\n\n/**\n * Processes the name of the illustration\n * The name is used to generate the registry key and the loader key\n * The registry key is used to store and get the illustration data from the registry\n * The loader key is used to store and get the illustration loader from the loaders map\n * The function generates the correct registry key and loader key based on whether an loader exists for the illustration\n * If there is no loader registered for the collection, it falls back to the default collection\n */\nconst processName = (name: string) => {\n\tlet collection = getCollection();\n\tconst [set, illustrationName] = name.split(\"/\");\n\tlet registryKey = `${set}/${collection}/${illustrationName}`;\n\n\tif (!loaders.has(registryKey) && collection !== FALLBACK_COLLECTION) {\n\t\tcollection = FALLBACK_COLLECTION;\n\t\tregistryKey = `${set}/${collection}/${illustrationName}`;\n\t}\n\n\treturn {\n\t\tregistryKey,\n\t\tcollection,\n\t};\n};\n\nconst registerIllustration = (name: string, data: IllustrationData) => {\n\tconst collection = data.collection || FALLBACK_COLLECTION;\n\tregistry.set(`${data.set}/${collection}/${name}`, {\n\t\tdialogSvg: data.dialogSvg,\n\t\tsceneSvg: data.sceneSvg,\n\t\tspotSvg: data.spotSvg,\n\t\tdotSvg: data.dotSvg,\n\t\ttitle: data.title,\n\t\tsubtitle: data.subtitle,\n\t});\n};\n\nconst registerIllustrationLoader = (illustrationName: string, loader: IllustrationLoader) => {\n\tloaders.set(illustrationName, loader);\n};\n\nconst _loadIllustrationOnce = (illustrationName: string) => {\n\tconst { registryKey } = processName(illustrationName);\n\tif (!illustrationPromises.has(registryKey)) {\n\t\tif (!loaders.has(registryKey)) {\n\t\t\tconst illustrationPath = illustrationName.startsWith(\"fiori/\") ? illustrationName.replace(\"fiori/\", \"\") : illustrationName;\n\t\t\tthrow new Error(`No loader registered for the ${illustrationName} illustration. Probably you forgot to import the \"@ui5/webcomponents-fiori/dist/illustrations/${illustrationPath}.js\" module. Or you can import the \"@ui5/webcomponents-fiori/dist/illustrations/AllIllustrations.js\" module that will make all illustrations available, but fetch only the ones used.`);\n\t\t}\n\n\t\tconst loadIllustrations = loaders.get(registryKey)!;\n\t\tillustrationPromises.set(registryKey, loadIllustrations(registryKey));\n\t}\n\treturn illustrationPromises.get(registryKey);\n};\n\nconst getIllustrationDataSync = (illustrationName: string) => {\n\tconst { registryKey } = processName(illustrationName);\n\treturn registry.get(registryKey);\n};\n\nconst getIllustrationData = async (illustrationName: string) => {\n\tconst { registryKey } = processName(illustrationName);\n\n\tawait _loadIllustrationOnce(illustrationName);\n\treturn registry.get(registryKey);\n};\n\nexport {\n\tgetIllustrationDataSync,\n\tregisterIllustration,\n\tregisterIllustrationLoader,\n\tgetIllustrationData,\n};\n"]}
@@ -0,0 +1,7 @@
1
+ type LocaleDataLoader = (locale: string) => Promise<CLDRData>;
2
+ type CLDRData = Record<string, object | boolean | string>;
3
+ declare const getLocaleData: (localeId: string) => CLDRData;
4
+ declare const fetchCldr: (language: string, region: string, script: string) => Promise<void>;
5
+ declare const registerLocaleDataLoader: (localeId: string, loader: LocaleDataLoader) => void;
6
+ export { registerLocaleDataLoader, fetchCldr, getLocaleData, };
7
+ export type { CLDRData, };
@@ -1,101 +1,136 @@
1
- import { registerModuleContent } from "../ResourceLoaderOverrides.js";
2
- import { fetchJsonOnce } from "../util/FetchHelper.js";
3
-
4
- const supportedLocales = ["ar", "ar_EG", "ar_SA", "bg", "ca", "cs", "da", "de", "de_AT", "de_CH", "el", "el_CY", "en", "en_AU", "en_GB", "en_HK", "en_IE", "en_IN", "en_NZ", "en_PG", "en_SG", "en_ZA", "es", "es_AR", "es_BO", "es_CL", "es_CO", "es_MX", "es_PE", "es_UY", "es_VE", "et", "fa", "fi", "fr", "fr_BE", "fr_CA", "fr_CH", "fr_LU", "he", "hi", "hr", "hu", "id", "it", "it_CH", "ja", "kk", "ko", "lt", "lv", "ms", "nb", "nl", "nl_BE", "pl", "pt", "pt_PT", "ro", "ru", "ru_UA", "sk", "sl", "sr", "sv", "th", "tr", "uk", "vi", "zh_CN", "zh_HK", "zh_SG", "zh_TW"];
5
-
6
- const cldrData = {};
7
- const cldrUrls = {};
8
-
9
- // externally configurable mapping function for resolving (localeId -> URL)
10
- // default implementation - ui5 CDN
11
- let cldrMappingFn = locale => `https://ui5.sap.com/1.60.2/resources/sap/ui/core/cldr/${locale}.json`;
12
-
1
+ import { attachLanguageChange } from "../locale/languageChange.js";
2
+ import getLocale from "../locale/getLocale.js";
3
+ import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from "../generated/AssetParameters.js";
4
+ import { getFeature } from "../FeaturesRegistry.js";
5
+ const localeDataMap = new Map();
6
+ const loaders = new Map();
7
+ const cldrPromises = new Map();
8
+ const reportedErrors = new Set();
9
+ let warningShown = false;
13
10
  const M_ISO639_OLD_TO_NEW = {
14
- "iw": "he",
15
- "ji": "yi",
16
- "in": "id",
17
- "sh": "sr",
11
+ "iw": "he",
12
+ "ji": "yi",
13
+ "in": "id",
18
14
  };
19
-
20
- const calcLocale = (language, region, script) => {
21
- // normalize language and handle special cases
22
- language = (language && M_ISO639_OLD_TO_NEW[language]) || language;
23
- // Special case 1: in an SAP context, the inclusive language code "no" always means Norwegian Bokmal ("nb")
24
- if (language === "no") {
25
- language = "nb";
26
- }
27
- // Special case 2: for Chinese, derive a default region from the script (this behavior is inherited from Java)
28
- if (language === "zh" && !region) {
29
- if (script === "Hans") {
30
- region = "CN";
31
- } else if (script === "Hant") {
32
- region = "TW";
33
- }
34
- }
35
-
36
- // try language + region
37
- let localeId = `${language}_${region}`;
38
- if (!supportedLocales.includes(localeId)) {
39
- // fallback to language only
40
- localeId = language;
41
- }
42
- if (!supportedLocales.includes(localeId)) {
43
- // fallback to english
44
- localeId = "en";
45
- }
46
-
47
- return localeId;
48
- };
49
-
50
-
51
- const resolveMissingMappings = () => {
52
- if (!cldrMappingFn) {
53
- return;
54
- }
55
-
56
- const missingLocales = supportedLocales.filter(locale => !cldrData[locale] && !cldrUrls[locale]);
57
- missingLocales.forEach(locale => {
58
- cldrUrls[locale] = cldrMappingFn(locale);
59
- });
15
+ const _showAssetsWarningOnce = (localeId) => {
16
+ if (warningShown) {
17
+ return;
18
+ }
19
+ console.warn(`[LocaleData] Supported locale "${localeId}" not configured, import the "Assets.js" module from the webcomponents package you are using.`); /* eslint-disable-line */
20
+ warningShown = true;
60
21
  };
61
-
62
- const fetchCldr = async (language, region, script) => {
63
- resolveMissingMappings();
64
- const localeId = calcLocale(language, region, script);
65
-
66
- const cldrObj = cldrData[localeId];
67
- const url = cldrUrls[localeId];
68
-
69
- if (cldrObj) {
70
- // inlined from build or fetched independently
71
- registerModuleContent(`sap/ui/core/cldr/${localeId}.json`, cldrObj);
72
- } else if (url) {
73
- // fetch it
74
- const cldrContent = await fetchJsonOnce(url);
75
- registerModuleContent(`sap/ui/core/cldr/${localeId}.json`, cldrContent);
76
- }
22
+ const calcLocale = (language, region, script) => {
23
+ // normalize language and handle special cases
24
+ language = (language && M_ISO639_OLD_TO_NEW[language]) || language;
25
+ // Special case 1: in an SAP context, the inclusive language code "no" always means Norwegian Bokmal ("nb")
26
+ if (language === "no") {
27
+ language = "nb";
28
+ }
29
+ // Special case 2: for Chinese, derive a default region from the script (this behavior is inherited from Java)
30
+ if (language === "zh" && !region) {
31
+ if (script === "Hans") {
32
+ region = "CN";
33
+ }
34
+ else if (script === "Hant") {
35
+ region = "TW";
36
+ }
37
+ }
38
+ // Special case 3: for Serbian, there are cyrillic and latin scripts, "sh" and "sr-latn" map to "latin", "sr" maps to cyrillic.
39
+ if (language === "sh" || (language === "sr" && script === "Latn")) {
40
+ language = "sr";
41
+ region = "Latn";
42
+ }
43
+ // try language + region
44
+ let localeId = `${language}_${region}`;
45
+ if (SUPPORTED_LOCALES.includes(localeId)) {
46
+ if (loaders.has(localeId)) {
47
+ // supported and has loader
48
+ return localeId;
49
+ }
50
+ // supported, no loader - fallback to default and warn
51
+ _showAssetsWarningOnce(localeId);
52
+ return DEFAULT_LOCALE;
53
+ }
54
+ // not supported, try language only
55
+ localeId = language;
56
+ if (SUPPORTED_LOCALES.includes(localeId)) {
57
+ if (loaders.has(localeId)) {
58
+ // supported and has loader
59
+ return localeId;
60
+ }
61
+ // supported, no loader - fallback to default and warn
62
+ _showAssetsWarningOnce(localeId);
63
+ return DEFAULT_LOCALE;
64
+ }
65
+ // not supported - fallback to default locale
66
+ return DEFAULT_LOCALE;
77
67
  };
78
-
79
- const registerCldr = (locale, url) => {
80
- cldrUrls[locale] = url;
68
+ // internal set data
69
+ const setLocaleData = (localeId, content) => {
70
+ localeDataMap.set(localeId, content);
81
71
  };
82
-
83
- const setCldrData = (locale, data) => {
84
- cldrData[locale] = data;
72
+ // external getSync
73
+ const getLocaleData = (localeId) => {
74
+ // if there is no loader, the default fallback was fetched and a warning was given - use default locale instead
75
+ if (!loaders.has(localeId)) {
76
+ localeId = DEFAULT_LOCALE;
77
+ }
78
+ const content = localeDataMap.get(localeId);
79
+ if (!content) {
80
+ throw new Error(`CLDR data for locale ${localeId} is not loaded!`);
81
+ }
82
+ return content;
85
83
  };
86
-
87
- const getCldrData = locale => {
88
- return cldrData[locale];
84
+ // load bundle over the network once
85
+ const _loadCldrOnce = (localeId) => {
86
+ if (!cldrPromises.get(localeId)) {
87
+ const loadCldr = loaders.get(localeId);
88
+ if (!loadCldr) {
89
+ throw new Error(`CLDR data for locale ${localeId} is not loaded!`);
90
+ }
91
+ cldrPromises.set(localeId, loadCldr(localeId));
92
+ }
93
+ return cldrPromises.get(localeId);
89
94
  };
90
-
91
- const _registerMappingFunction = mappingFn => {
92
- cldrMappingFn = mappingFn;
95
+ // external getAsync
96
+ const fetchCldr = async (language, region, script) => {
97
+ const localeId = calcLocale(language, region, script);
98
+ // reuse OpenUI5 CLDR if present
99
+ const openUI5Support = getFeature("OpenUI5Support");
100
+ if (openUI5Support) {
101
+ const cldrContent = openUI5Support.getLocaleDataObject();
102
+ if (cldrContent) {
103
+ // only if openui5 actually returned valid content
104
+ setLocaleData(localeId, cldrContent);
105
+ return;
106
+ }
107
+ }
108
+ // fetch it
109
+ try {
110
+ const cldrContent = await _loadCldrOnce(localeId);
111
+ setLocaleData(localeId, cldrContent);
112
+ }
113
+ catch (error) {
114
+ const e = error;
115
+ if (!reportedErrors.has(e.message)) {
116
+ reportedErrors.add(e.message);
117
+ console.error(e.message); /* eslint-disable-line */
118
+ }
119
+ }
93
120
  };
94
-
95
- export {
96
- fetchCldr,
97
- registerCldr,
98
- setCldrData,
99
- getCldrData,
100
- _registerMappingFunction,
121
+ const registerLocaleDataLoader = (localeId, loader) => {
122
+ loaders.set(localeId, loader);
101
123
  };
124
+ // register default loader for "en" from ui5 CDN (dev workflow without assets)
125
+ registerLocaleDataLoader("en", async () => {
126
+ const cldrContent = await fetch(`https://sdk.openui5.org/1.120.5/resources/sap/ui/core/cldr/en.json`);
127
+ return cldrContent.json();
128
+ });
129
+ // When the language changes dynamically (the user calls setLanguage),
130
+ // re-fetch the required CDRD data.
131
+ attachLanguageChange(() => {
132
+ const locale = getLocale();
133
+ return fetchCldr(locale.getLanguage(), locale.getRegion(), locale.getScript());
134
+ });
135
+ export { registerLocaleDataLoader, fetchCldr, getLocaleData, };
136
+ //# sourceMappingURL=LocaleData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocaleData.js","sourceRoot":"","sources":["../../src/asset-registries/LocaleData.ts"],"names":[],"mappings":"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","sourcesContent":["import { attachLanguageChange } from \"../locale/languageChange.js\";\nimport getLocale from \"../locale/getLocale.js\";\nimport { DEFAULT_LOCALE, SUPPORTED_LOCALES } from \"../generated/AssetParameters.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport type OpenUI5Support from \"../features/OpenUI5Support.js\";\n\ntype LocaleDataLoader = (locale: string) => Promise<CLDRData>;\ntype CLDRData = Record<string, object | boolean | string>;\n\nconst localeDataMap = new Map<string, CLDRData>();\nconst loaders = new Map<string, LocaleDataLoader>();\nconst cldrPromises = new Map<string, Promise<CLDRData>>();\nconst reportedErrors = new Set<string>();\nlet warningShown = false;\n\nconst M_ISO639_OLD_TO_NEW = {\n\t\"iw\": \"he\",\n\t\"ji\": \"yi\",\n\t\"in\": \"id\",\n};\n\nconst _showAssetsWarningOnce = (localeId: string) => {\n\tif (warningShown) {\n\t\treturn;\n\t}\n\n\tconsole.warn(`[LocaleData] Supported locale \"${localeId}\" not configured, import the \"Assets.js\" module from the webcomponents package you are using.`); /* eslint-disable-line */\n\n\twarningShown = true;\n};\n\nconst calcLocale = (language: string, region: string, script: string) => {\n\t// normalize language and handle special cases\n\tlanguage = (language && M_ISO639_OLD_TO_NEW[language as keyof typeof M_ISO639_OLD_TO_NEW]) || language;\n\t// Special case 1: in an SAP context, the inclusive language code \"no\" always means Norwegian Bokmal (\"nb\")\n\tif (language === \"no\") {\n\t\tlanguage = \"nb\";\n\t}\n\t// Special case 2: for Chinese, derive a default region from the script (this behavior is inherited from Java)\n\tif (language === \"zh\" && !region) {\n\t\tif (script === \"Hans\") {\n\t\t\tregion = \"CN\";\n\t\t} else if (script === \"Hant\") {\n\t\t\tregion = \"TW\";\n\t\t}\n\t}\n\n\t// Special case 3: for Serbian, there are cyrillic and latin scripts, \"sh\" and \"sr-latn\" map to \"latin\", \"sr\" maps to cyrillic.\n\tif (language === \"sh\" || (language === \"sr\" && script === \"Latn\")) {\n\t\tlanguage = \"sr\";\n\t\tregion = \"Latn\";\n\t}\n\n\t// try language + region\n\tlet localeId = `${language}_${region}`;\n\tif (SUPPORTED_LOCALES.includes(localeId)) {\n\t\tif (loaders.has(localeId)) {\n\t\t\t// supported and has loader\n\t\t\treturn localeId;\n\t\t}\n\n\t\t// supported, no loader - fallback to default and warn\n\t\t_showAssetsWarningOnce(localeId);\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\t// not supported, try language only\n\tlocaleId = language;\n\tif (SUPPORTED_LOCALES.includes(localeId)) {\n\t\tif (loaders.has(localeId)) {\n\t\t\t// supported and has loader\n\t\t\treturn localeId;\n\t\t}\n\n\t\t// supported, no loader - fallback to default and warn\n\t\t_showAssetsWarningOnce(localeId);\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\t// not supported - fallback to default locale\n\treturn DEFAULT_LOCALE;\n};\n\n// internal set data\nconst setLocaleData = (localeId: string, content: CLDRData) => {\n\tlocaleDataMap.set(localeId, content);\n};\n\n// external getSync\nconst getLocaleData = (localeId: string) => {\n\t// if there is no loader, the default fallback was fetched and a warning was given - use default locale instead\n\tif (!loaders.has(localeId)) {\n\t\tlocaleId = DEFAULT_LOCALE;\n\t}\n\n\tconst content = localeDataMap.get(localeId);\n\tif (!content) {\n\t\tthrow new Error(`CLDR data for locale ${localeId} is not loaded!`);\n\t}\n\n\treturn content;\n};\n\n// load bundle over the network once\nconst _loadCldrOnce = (localeId: string) => {\n\tif (!cldrPromises.get(localeId)) {\n\t\tconst loadCldr = loaders.get(localeId);\n\n\t\tif (!loadCldr) {\n\t\t\tthrow new Error(`CLDR data for locale ${localeId} is not loaded!`);\n\t\t}\n\n\t\tcldrPromises.set(localeId, loadCldr(localeId));\n\t}\n\n\treturn cldrPromises.get(localeId);\n};\n\n// external getAsync\nconst fetchCldr = async (language: string, region: string, script: string) => {\n\tconst localeId = calcLocale(language, region, script);\n\n\t// reuse OpenUI5 CLDR if present\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (openUI5Support) {\n\t\tconst cldrContent = openUI5Support.getLocaleDataObject();\n\t\tif (cldrContent) {\n\t\t\t// only if openui5 actually returned valid content\n\t\t\tsetLocaleData(localeId, cldrContent);\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// fetch it\n\ttry {\n\t\tconst cldrContent = await _loadCldrOnce(localeId);\n\t\tsetLocaleData(localeId, cldrContent as CLDRData);\n\t} catch (error: unknown) {\n\t\tconst e = error as Error;\n\t\tif (!reportedErrors.has(e.message)) {\n\t\t\treportedErrors.add(e.message);\n\t\t\tconsole.error(e.message); /* eslint-disable-line */\n\t\t}\n\t}\n};\n\nconst registerLocaleDataLoader = (localeId: string, loader: LocaleDataLoader) => {\n\tloaders.set(localeId, loader);\n};\n\n// register default loader for \"en\" from ui5 CDN (dev workflow without assets)\nregisterLocaleDataLoader(\"en\", async () => {\n\tconst cldrContent = await fetch(`https://sdk.openui5.org/1.120.5/resources/sap/ui/core/cldr/en.json`);\n\treturn cldrContent.json() as Promise<CLDRData>;\n});\n\n// When the language changes dynamically (the user calls setLanguage),\n// re-fetch the required CDRD data.\nattachLanguageChange(() => {\n\tconst locale = getLocale();\n\treturn fetchCldr(locale.getLanguage(), locale.getRegion(), locale.getScript());\n});\n\nexport {\n\tregisterLocaleDataLoader,\n\tfetchCldr,\n\tgetLocaleData,\n};\n\nexport type {\n\tCLDRData,\n};\n"]}
@@ -0,0 +1,12 @@
1
+ import type { StyleData, StyleDataCSP } from "../ManagedStyles.js";
2
+ type ThemeData = {
3
+ _: StyleDataCSP;
4
+ } | StyleDataCSP | string;
5
+ type ThemeLoader = (themeName: string) => Promise<ThemeData>;
6
+ declare const registerThemePropertiesLoader: (packageName: string, themeName: string, loader: ThemeLoader) => void;
7
+ declare const registerCustomThemePropertiesLoader: (packageName: string, themeName: string, loader: ThemeLoader) => void;
8
+ declare const getThemeProperties: (packageName: string, themeName: string, externalThemeName?: string) => Promise<StyleData | undefined>;
9
+ declare const getRegisteredPackages: () => Set<string>;
10
+ declare const isThemeRegistered: (theme: string) => boolean;
11
+ export { registerThemePropertiesLoader, registerCustomThemePropertiesLoader, getThemeProperties, getRegisteredPackages, isThemeRegistered, };
12
+ export type { ThemeData, ThemeLoader, };