@ui5/webcomponents-base 0.0.0-35e2c9666 → 0.0.0-38861c872

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 (637) hide show
  1. package/.eslintignore +6 -4
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +898 -0
  4. package/README.md +33 -6
  5. package/bundle.esm.js +20 -11
  6. package/config/wdio.conf.cjs +400 -0
  7. package/dist/.tsbuildinfo +1 -0
  8. package/dist/AssetRegistry.d.ts +5 -0
  9. package/dist/AssetRegistry.js +3 -8
  10. package/dist/AssetRegistry.js.map +1 -0
  11. package/dist/Boot.d.ts +9 -0
  12. package/dist/Boot.js +56 -44
  13. package/dist/Boot.js.map +1 -0
  14. package/{src/CSP.js → dist/CSP.d.ts} +8 -37
  15. package/dist/CSP.js +16 -24
  16. package/dist/CSP.js.map +1 -0
  17. package/dist/CustomElementsRegistry.d.ts +5 -0
  18. package/dist/CustomElementsRegistry.js +66 -83
  19. package/dist/CustomElementsRegistry.js.map +1 -0
  20. package/dist/CustomElementsScope.d.ts +7 -0
  21. package/dist/CustomElementsScope.js +11 -108
  22. package/dist/CustomElementsScope.js.map +1 -0
  23. package/dist/CustomElementsScopeUtils.d.ts +62 -0
  24. package/dist/CustomElementsScopeUtils.js +102 -0
  25. package/dist/CustomElementsScopeUtils.js.map +1 -0
  26. package/dist/DOMObserver.d.ts +11 -0
  27. package/dist/DOMObserver.js +12 -54
  28. package/dist/DOMObserver.js.map +1 -0
  29. package/dist/Device.d.ts +13 -0
  30. package/dist/Device.js +155 -96
  31. package/dist/Device.js.map +1 -0
  32. package/dist/EventProvider.d.ts +25 -0
  33. package/dist/EventProvider.js +67 -82
  34. package/dist/EventProvider.js.map +1 -0
  35. package/dist/FeaturesRegistry.d.ts +3 -0
  36. package/dist/FeaturesRegistry.js +5 -10
  37. package/dist/FeaturesRegistry.js.map +1 -0
  38. package/dist/FontFace.d.ts +2 -0
  39. package/dist/FontFace.js +14 -19
  40. package/dist/FontFace.js.map +1 -0
  41. package/dist/IgnoreCustomElements.d.ts +27 -0
  42. package/dist/IgnoreCustomElements.js +39 -0
  43. package/dist/IgnoreCustomElements.js.map +1 -0
  44. package/dist/InitialConfiguration.d.ts +28 -0
  45. package/dist/InitialConfiguration.js +126 -131
  46. package/dist/InitialConfiguration.js.map +1 -0
  47. package/dist/Keys.d.ts +61 -0
  48. package/dist/Keys.js +175 -289
  49. package/dist/Keys.js.map +1 -0
  50. package/dist/ManagedStyles.d.ts +9 -0
  51. package/dist/ManagedStyles.js +140 -70
  52. package/dist/ManagedStyles.js.map +1 -0
  53. package/dist/MarkedEvents.d.ts +9 -0
  54. package/dist/MarkedEvents.js +15 -0
  55. package/dist/MarkedEvents.js.map +1 -0
  56. package/dist/MediaRange.d.ts +31 -0
  57. package/dist/MediaRange.js +54 -75
  58. package/dist/MediaRange.js.map +1 -0
  59. package/dist/PropertiesFileFormat.d.ts +8 -0
  60. package/dist/PropertiesFileFormat.js +72 -82
  61. package/dist/PropertiesFileFormat.js.map +1 -0
  62. package/dist/Render.d.ts +47 -0
  63. package/dist/Render.js +81 -113
  64. package/dist/Render.js.map +1 -0
  65. package/dist/RenderQueue.d.ts +19 -0
  66. package/dist/RenderQueue.js +52 -62
  67. package/dist/RenderQueue.js.map +1 -0
  68. package/dist/Runtimes.d.ts +27 -0
  69. package/dist/Runtimes.js +49 -70
  70. package/dist/Runtimes.js.map +1 -0
  71. package/dist/StaticArea.d.ts +3 -0
  72. package/dist/StaticArea.js +5 -1
  73. package/dist/StaticArea.js.map +1 -0
  74. package/dist/StaticAreaItem.d.ts +35 -0
  75. package/dist/StaticAreaItem.js +88 -89
  76. package/dist/StaticAreaItem.js.map +1 -0
  77. package/dist/SystemCSSVars.d.ts +2 -0
  78. package/dist/SystemCSSVars.js +4 -5
  79. package/dist/SystemCSSVars.js.map +1 -0
  80. package/{src/Theming.js → dist/Theming.d.ts} +0 -1
  81. package/dist/Theming.js +1 -1
  82. package/dist/Theming.js.map +1 -0
  83. package/dist/UI5Element.d.ts +383 -0
  84. package/dist/UI5Element.js +938 -988
  85. package/dist/UI5Element.js.map +1 -0
  86. package/dist/UI5ElementMetadata.d.ts +143 -0
  87. package/dist/UI5ElementMetadata.js +271 -315
  88. package/dist/UI5ElementMetadata.js.map +1 -0
  89. package/dist/animations/AnimationQueue.d.ts +8 -0
  90. package/dist/animations/AnimationQueue.js +31 -38
  91. package/dist/animations/AnimationQueue.js.map +1 -0
  92. package/dist/animations/animate.d.ts +14 -0
  93. package/dist/animations/animate.js +46 -51
  94. package/dist/animations/animate.js.map +1 -0
  95. package/dist/animations/scroll.d.ts +5 -0
  96. package/dist/animations/scroll.js +18 -27
  97. package/dist/animations/scroll.js.map +1 -0
  98. package/dist/animations/slideDown.d.ts +5 -0
  99. package/dist/animations/slideDown.js +53 -78
  100. package/dist/animations/slideDown.js.map +1 -0
  101. package/dist/animations/slideUp.d.ts +5 -0
  102. package/dist/animations/slideUp.js +49 -70
  103. package/dist/animations/slideUp.js.map +1 -0
  104. package/dist/asset-registries/Icons.d.ts +39 -0
  105. package/dist/asset-registries/Icons.js +120 -123
  106. package/dist/asset-registries/Icons.js.map +1 -0
  107. package/dist/asset-registries/Illustrations.d.ts +18 -0
  108. package/dist/asset-registries/Illustrations.js +71 -25
  109. package/dist/asset-registries/Illustrations.js.map +1 -0
  110. package/dist/asset-registries/LocaleData.d.ts +7 -0
  111. package/dist/asset-registries/LocaleData.js +104 -132
  112. package/dist/asset-registries/LocaleData.js.map +1 -0
  113. package/dist/asset-registries/Themes.d.ts +12 -0
  114. package/dist/asset-registries/Themes.js +57 -67
  115. package/dist/asset-registries/Themes.js.map +1 -0
  116. package/dist/asset-registries/i18n.d.ts +23 -0
  117. package/dist/asset-registries/i18n.js +62 -81
  118. package/dist/asset-registries/i18n.js.map +1 -0
  119. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  120. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  121. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  122. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  123. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  124. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  125. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  126. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  127. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  128. package/dist/config/AnimationMode.d.ts +14 -0
  129. package/dist/config/AnimationMode.js +21 -18
  130. package/dist/config/AnimationMode.js.map +1 -0
  131. package/dist/config/CalendarType.d.ts +15 -0
  132. package/dist/config/CalendarType.js +31 -14
  133. package/dist/config/CalendarType.js.map +1 -0
  134. package/dist/config/FormatSettings.d.ts +15 -0
  135. package/dist/config/FormatSettings.js +15 -9
  136. package/dist/config/FormatSettings.js.map +1 -0
  137. package/dist/config/Icons.d.ts +40 -0
  138. package/dist/config/Icons.js +44 -0
  139. package/dist/config/Icons.js.map +1 -0
  140. package/dist/config/Language.d.ts +40 -0
  141. package/dist/config/Language.js +43 -43
  142. package/dist/config/Language.js.map +1 -0
  143. package/dist/config/NoConflict.d.ts +20 -0
  144. package/dist/config/NoConflict.js +41 -41
  145. package/dist/config/NoConflict.js.map +1 -0
  146. package/dist/config/RTL.d.ts +7 -0
  147. package/dist/config/RTL.js +26 -20
  148. package/dist/config/RTL.js.map +1 -0
  149. package/dist/config/Theme.d.ts +38 -0
  150. package/dist/config/Theme.js +54 -37
  151. package/dist/config/Theme.js.map +1 -0
  152. package/dist/config/ThemeRoot.d.ts +29 -0
  153. package/dist/config/ThemeRoot.js +59 -0
  154. package/dist/config/ThemeRoot.js.map +1 -0
  155. package/dist/config/Timezone.d.ts +17 -0
  156. package/dist/config/Timezone.js +30 -0
  157. package/dist/config/Timezone.js.map +1 -0
  158. package/dist/connectToComponent.d.ts +9 -0
  159. package/dist/connectToComponent.js +59 -0
  160. package/dist/connectToComponent.js.map +1 -0
  161. package/dist/css/BusyIndicator.css +80 -0
  162. package/dist/css/FontFace.css +67 -16
  163. package/dist/custom-elements-internal.json +5154 -0
  164. package/dist/custom-elements.json +4917 -0
  165. package/dist/decorators/customElement.d.ts +23 -0
  166. package/dist/decorators/customElement.js +37 -0
  167. package/dist/decorators/customElement.js.map +1 -0
  168. package/dist/decorators/event.d.ts +10 -0
  169. package/dist/decorators/event.js +24 -0
  170. package/dist/decorators/event.js.map +1 -0
  171. package/dist/decorators/property.d.ts +9 -0
  172. package/dist/decorators/property.js +24 -0
  173. package/dist/decorators/property.js.map +1 -0
  174. package/dist/decorators/slot.d.ts +9 -0
  175. package/dist/decorators/slot.js +37 -0
  176. package/dist/decorators/slot.js.map +1 -0
  177. package/dist/delegate/ItemNavigation.d.ts +114 -0
  178. package/dist/delegate/ItemNavigation.js +276 -312
  179. package/dist/delegate/ItemNavigation.js.map +1 -0
  180. package/dist/delegate/ResizeHandler.d.ts +23 -0
  181. package/dist/delegate/ResizeHandler.js +70 -91
  182. package/dist/delegate/ResizeHandler.js.map +1 -0
  183. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  184. package/dist/delegate/ScrollEnablement.js +157 -180
  185. package/dist/delegate/ScrollEnablement.js.map +1 -0
  186. package/dist/features/F6Navigation.d.ts +19 -0
  187. package/dist/features/F6Navigation.js +145 -102
  188. package/dist/features/F6Navigation.js.map +1 -0
  189. package/dist/features/LegacyDateFormats.d.ts +18 -0
  190. package/dist/features/LegacyDateFormats.js +20 -0
  191. package/dist/features/LegacyDateFormats.js.map +1 -0
  192. package/dist/features/OpenUI5Element.d.ts +9 -0
  193. package/dist/features/OpenUI5Element.js +5 -0
  194. package/dist/features/OpenUI5Element.js.map +1 -0
  195. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  196. package/dist/features/OpenUI5Enablement.js +96 -0
  197. package/dist/features/OpenUI5Enablement.js.map +1 -0
  198. package/dist/features/OpenUI5Support.d.ts +36 -0
  199. package/dist/features/OpenUI5Support.js +151 -121
  200. package/dist/features/OpenUI5Support.js.map +1 -0
  201. package/dist/generated/AssetParameters.d.ts +6 -0
  202. package/dist/generated/AssetParameters.js +4 -9
  203. package/dist/generated/AssetParameters.js.map +1 -0
  204. package/dist/generated/VersionInfo.d.ts +10 -0
  205. package/dist/generated/VersionInfo.js +9 -8
  206. package/dist/generated/VersionInfo.js.map +1 -0
  207. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  208. package/dist/generated/css/BusyIndicator.css.js +7 -0
  209. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  210. package/dist/generated/css/FontFace.css.d.ts +3 -0
  211. package/dist/generated/css/FontFace.css.js +7 -5
  212. package/dist/generated/css/FontFace.css.js.map +1 -0
  213. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  214. package/dist/generated/css/OverrideFontFace.css.js +7 -5
  215. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  216. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  217. package/dist/generated/css/SystemCSSVars.css.js +7 -5
  218. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  219. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  220. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
  221. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  222. package/dist/getSharedResource.d.ts +11 -0
  223. package/dist/getSharedResource.js +28 -18
  224. package/dist/getSharedResource.js.map +1 -0
  225. package/dist/global.d.ts +40 -0
  226. package/dist/i18nBundle.d.ts +41 -0
  227. package/dist/i18nBundle.js +54 -64
  228. package/dist/i18nBundle.js.map +1 -0
  229. package/dist/locale/Locale.d.ts +22 -0
  230. package/dist/locale/Locale.js +75 -87
  231. package/dist/locale/Locale.js.map +1 -0
  232. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  233. package/dist/locale/RTLAwareRegistry.js +6 -11
  234. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  235. package/dist/locale/applyDirection.d.ts +10 -0
  236. package/dist/locale/applyDirection.js +7 -7
  237. package/dist/locale/applyDirection.js.map +1 -0
  238. package/dist/locale/directionChange.d.ts +15 -0
  239. package/dist/locale/directionChange.js +7 -15
  240. package/dist/locale/directionChange.js.map +1 -0
  241. package/dist/locale/getEffectiveDir.d.ts +2 -0
  242. package/dist/locale/getEffectiveDir.js +20 -24
  243. package/dist/locale/getEffectiveDir.js.map +1 -0
  244. package/dist/locale/getLocale.d.ts +7 -0
  245. package/dist/locale/getLocale.js +26 -29
  246. package/dist/locale/getLocale.js.map +1 -0
  247. package/dist/locale/languageChange.d.ts +5 -0
  248. package/dist/locale/languageChange.js +8 -16
  249. package/dist/locale/languageChange.js.map +1 -0
  250. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  251. package/dist/locale/nextFallbackLocale.js +15 -19
  252. package/dist/locale/nextFallbackLocale.js.map +1 -0
  253. package/dist/locale/normalizeLocale.d.ts +7 -0
  254. package/dist/locale/normalizeLocale.js +34 -41
  255. package/dist/locale/normalizeLocale.js.map +1 -0
  256. package/dist/renderer/LitRenderer.d.ts +14 -0
  257. package/dist/renderer/LitRenderer.js +31 -24
  258. package/dist/renderer/LitRenderer.js.map +1 -0
  259. package/dist/renderer/executeTemplate.d.ts +13 -0
  260. package/dist/renderer/executeTemplate.js +20 -7
  261. package/dist/renderer/executeTemplate.js.map +1 -0
  262. package/dist/sap/base/Log.js +28 -29
  263. package/dist/sap/base/assert.js +5 -6
  264. package/dist/sap/base/security/URLListValidator.js +13 -2
  265. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +112 -97
  266. package/dist/theming/CustomStyle.d.ts +6 -0
  267. package/dist/theming/CustomStyle.js +33 -45
  268. package/dist/theming/CustomStyle.js.map +1 -0
  269. package/dist/theming/ThemeLoaded.d.ts +5 -0
  270. package/dist/theming/ThemeLoaded.js +8 -16
  271. package/dist/theming/ThemeLoaded.js.map +1 -0
  272. package/dist/theming/ThemeRegistered.d.ts +4 -0
  273. package/dist/theming/ThemeRegistered.js +11 -0
  274. package/dist/theming/ThemeRegistered.js.map +1 -0
  275. package/dist/theming/applyTheme.d.ts +2 -0
  276. package/dist/theming/applyTheme.js +61 -64
  277. package/dist/theming/applyTheme.js.map +1 -0
  278. package/dist/theming/getConstructableStyle.d.ts +9 -0
  279. package/dist/theming/getConstructableStyle.js +12 -17
  280. package/dist/theming/getConstructableStyle.js.map +1 -0
  281. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  282. package/dist/theming/getEffectiveLinksHrefs.js +13 -16
  283. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  284. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  285. package/dist/theming/getEffectiveStyle.js +25 -23
  286. package/dist/theming/getEffectiveStyle.js.map +1 -0
  287. package/dist/theming/getStylesString.d.ts +3 -0
  288. package/dist/theming/getStylesString.js +9 -13
  289. package/dist/theming/getStylesString.js.map +1 -0
  290. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  291. package/dist/theming/getThemeDesignerTheme.js +72 -79
  292. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  293. package/dist/theming/preloadLinks.d.ts +3 -0
  294. package/dist/theming/preloadLinks.js +13 -17
  295. package/dist/theming/preloadLinks.js.map +1 -0
  296. package/dist/thirdparty/_merge.d.ts +2 -0
  297. package/dist/thirdparty/_merge.js +7 -4
  298. package/dist/thirdparty/_merge.js.map +1 -0
  299. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  300. package/dist/thirdparty/isPlainObject.js +11 -10
  301. package/dist/thirdparty/isPlainObject.js.map +1 -0
  302. package/dist/thirdparty/merge.d.ts +2 -0
  303. package/dist/thirdparty/merge.js +4 -8
  304. package/dist/thirdparty/merge.js.map +1 -0
  305. package/dist/types/AnimationMode.d.ts +24 -0
  306. package/dist/types/AnimationMode.js +25 -6
  307. package/dist/types/AnimationMode.js.map +1 -0
  308. package/dist/types/CSSColor.d.ts +11 -0
  309. package/dist/types/CSSColor.js +10 -5
  310. package/dist/types/CSSColor.js.map +1 -0
  311. package/dist/types/CSSSize.d.ts +11 -0
  312. package/dist/types/CSSSize.js +10 -5
  313. package/dist/types/CSSSize.js.map +1 -0
  314. package/dist/types/CalendarType.d.ts +28 -0
  315. package/dist/types/CalendarType.js +26 -18
  316. package/dist/types/CalendarType.js.map +1 -0
  317. package/dist/types/DOMReference.d.ts +13 -0
  318. package/dist/types/DOMReference.js +21 -0
  319. package/dist/types/DOMReference.js.map +1 -0
  320. package/dist/types/DataType.d.ts +20 -0
  321. package/dist/types/DataType.js +31 -29
  322. package/dist/types/DataType.js.map +1 -0
  323. package/dist/types/Float.d.ts +14 -0
  324. package/dist/types/Float.js +14 -10
  325. package/dist/types/Float.js.map +1 -0
  326. package/dist/types/Integer.d.ts +14 -0
  327. package/dist/types/Integer.js +14 -9
  328. package/dist/types/Integer.js.map +1 -0
  329. package/dist/types/InvisibleMessageMode.d.ts +20 -0
  330. package/dist/types/InvisibleMessageMode.js +12 -22
  331. package/dist/types/InvisibleMessageMode.js.map +1 -0
  332. package/dist/types/ItemNavigationBehavior.d.ts +18 -0
  333. package/dist/types/ItemNavigationBehavior.js +16 -12
  334. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  335. package/dist/types/NavigationMode.d.ts +24 -0
  336. package/dist/types/NavigationMode.js +25 -6
  337. package/dist/types/NavigationMode.js.map +1 -0
  338. package/dist/types/ValueState.d.ts +28 -0
  339. package/dist/types/ValueState.js +27 -19
  340. package/dist/types/ValueState.js.map +1 -0
  341. package/dist/types.d.ts +18 -0
  342. package/dist/types.js +2 -0
  343. package/dist/types.js.map +1 -0
  344. package/dist/updateShadowRoot.d.ts +8 -0
  345. package/dist/updateShadowRoot.js +30 -18
  346. package/dist/updateShadowRoot.js.map +1 -0
  347. package/dist/util/AriaLabelHelper.d.ts +15 -0
  348. package/dist/util/AriaLabelHelper.js +166 -36
  349. package/dist/util/AriaLabelHelper.js.map +1 -0
  350. package/dist/util/Caret.d.ts +7 -0
  351. package/dist/util/Caret.js +16 -38
  352. package/dist/util/Caret.js.map +1 -0
  353. package/dist/util/ColorConversion.d.ts +30 -0
  354. package/dist/util/ColorConversion.js +320 -348
  355. package/dist/util/ColorConversion.js.map +1 -0
  356. package/dist/util/FetchHelper.d.ts +3 -0
  357. package/dist/util/FetchHelper.js +19 -25
  358. package/dist/util/FetchHelper.js.map +1 -0
  359. package/dist/util/FocusableElements.d.ts +4 -0
  360. package/dist/util/FocusableElements.js +64 -71
  361. package/dist/util/FocusableElements.js.map +1 -0
  362. package/{src/util/HTMLSanitizer.js → dist/util/HTMLSanitizer.d.ts} +1 -5
  363. package/dist/util/HTMLSanitizer.js +4 -5
  364. package/dist/util/HTMLSanitizer.js.map +1 -0
  365. package/dist/util/InvisibleMessage.d.ts +10 -0
  366. package/dist/util/InvisibleMessage.js +41 -45
  367. package/dist/util/InvisibleMessage.js.map +1 -0
  368. package/dist/util/PopupUtils.d.ts +7 -0
  369. package/dist/util/PopupUtils.js +58 -77
  370. package/dist/util/PopupUtils.js.map +1 -0
  371. package/dist/util/SlotsHelper.d.ts +9 -0
  372. package/dist/util/SlotsHelper.js +22 -35
  373. package/dist/util/SlotsHelper.js.map +1 -0
  374. package/dist/util/StringHelper.d.ts +3 -0
  375. package/dist/util/StringHelper.js +17 -20
  376. package/dist/util/StringHelper.js.map +1 -0
  377. package/dist/util/TabbableElements.d.ts +17 -0
  378. package/dist/util/TabbableElements.js +53 -47
  379. package/dist/util/TabbableElements.js.map +1 -0
  380. package/dist/util/arraysAreEqual.d.ts +2 -0
  381. package/dist/util/arraysAreEqual.js +10 -12
  382. package/dist/util/arraysAreEqual.js.map +1 -0
  383. package/{src/util/clamp.js → dist/util/clamp.d.ts} +1 -4
  384. package/dist/util/clamp.js +2 -2
  385. package/dist/util/clamp.js.map +1 -0
  386. package/dist/util/createLinkInHead.d.ts +7 -0
  387. package/dist/util/createLinkInHead.js +14 -12
  388. package/dist/util/createLinkInHead.js.map +1 -0
  389. package/dist/util/createStyleInHead.d.ts +8 -0
  390. package/dist/util/createStyleInHead.js +10 -10
  391. package/dist/util/createStyleInHead.js.map +1 -0
  392. package/dist/util/debounce.d.ts +2 -0
  393. package/dist/util/debounce.js +6 -8
  394. package/dist/util/debounce.js.map +1 -0
  395. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  396. package/dist/util/detectNavigatorLanguage.js +9 -11
  397. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  398. package/dist/util/escapeRegex.d.ts +8 -0
  399. package/dist/util/escapeRegex.js +8 -7
  400. package/dist/util/escapeRegex.js.map +1 -0
  401. package/dist/util/formatMessage.d.ts +2 -0
  402. package/dist/util/formatMessage.js +15 -19
  403. package/dist/util/formatMessage.js.map +1 -0
  404. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  405. package/dist/util/generateHighlightedMarkup.js +26 -27
  406. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  407. package/dist/util/getActiveElement.d.ts +2 -0
  408. package/dist/util/getActiveElement.js +6 -8
  409. package/dist/util/getActiveElement.js.map +1 -0
  410. package/dist/util/getClassCopy.d.ts +416 -0
  411. package/dist/util/getClassCopy.js +7 -7
  412. package/dist/util/getClassCopy.js.map +1 -0
  413. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  414. package/dist/util/getDesigntimePropertyAsArray.js +5 -3
  415. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  416. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  417. package/dist/util/getEffectiveContentDensity.js +2 -3
  418. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  419. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  420. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  421. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  422. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  423. package/dist/util/getFastNavigationGroups.js +51 -0
  424. package/dist/util/getFastNavigationGroups.js.map +1 -0
  425. package/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
  426. package/dist/util/getFileExtension.js +9 -11
  427. package/dist/util/getFileExtension.js.map +1 -0
  428. package/dist/util/getNormalizedTarget.d.ts +7 -0
  429. package/dist/util/getNormalizedTarget.js +14 -0
  430. package/dist/util/getNormalizedTarget.js.map +1 -0
  431. package/dist/util/getParentElement.d.ts +2 -0
  432. package/dist/util/getParentElement.js +5 -0
  433. package/dist/util/getParentElement.js.map +1 -0
  434. package/dist/util/getSingletonElementInstance.d.ts +11 -0
  435. package/dist/util/getSingletonElementInstance.js +17 -11
  436. package/dist/util/getSingletonElementInstance.js.map +1 -0
  437. package/dist/util/isElementClickable.d.ts +2 -0
  438. package/dist/util/isElementClickable.js +16 -0
  439. package/dist/util/isElementClickable.js.map +1 -0
  440. package/dist/util/isElementContainingBlock.d.ts +2 -0
  441. package/dist/util/isElementContainingBlock.js +11 -0
  442. package/dist/util/isElementContainingBlock.js.map +1 -0
  443. package/dist/util/isElementHidden.d.ts +2 -0
  444. package/dist/util/isElementHidden.js +8 -0
  445. package/dist/util/isElementHidden.js.map +1 -0
  446. package/dist/util/isElementInView.d.ts +6 -0
  447. package/dist/util/isElementInView.js +6 -9
  448. package/dist/util/isElementInView.js.map +1 -0
  449. package/dist/util/isElementTabbable.d.ts +9 -0
  450. package/dist/util/isElementTabbable.js +30 -0
  451. package/dist/util/isElementTabbable.js.map +1 -0
  452. package/dist/util/isValidPropertyName.d.ts +8 -0
  453. package/dist/util/isValidPropertyName.js +16 -17
  454. package/dist/util/isValidPropertyName.js.map +1 -0
  455. package/dist/util/whenDOMReady.d.ts +2 -0
  456. package/dist/util/whenDOMReady.js +11 -10
  457. package/dist/util/whenDOMReady.js.map +1 -0
  458. package/dist/util/willShowContent.d.ts +2 -0
  459. package/dist/util/willShowContent.js +7 -0
  460. package/dist/util/willShowContent.js.map +1 -0
  461. package/dist/validateThemeRoot.d.ts +2 -0
  462. package/dist/validateThemeRoot.js +48 -0
  463. package/dist/validateThemeRoot.js.map +1 -0
  464. package/index.js +227 -1
  465. package/lib/generate-asset-parameters/index.js +11 -5
  466. package/lib/generate-styles/index.js +26 -13
  467. package/lib/generate-version-info/index.js +18 -13
  468. package/{package-scripts.js → package-scripts.cjs} +27 -22
  469. package/package.json +12 -7
  470. package/src/css/BusyIndicator.css +80 -0
  471. package/src/css/FontFace.css +67 -16
  472. package/tsconfig.json +18 -0
  473. package/config/rollup.config.js +0 -1
  474. package/config/wdio.conf.js +0 -1
  475. package/dist/RenderScheduler.js +0 -44
  476. package/dist/animations/config.js +0 -5
  477. package/dist/assets-meta/IconCollectionsAlias.js +0 -18
  478. package/dist/isLegacyBrowser.js +0 -3
  479. package/dist/resources/bundle.esm.js +0 -37
  480. package/dist/resources/bundle.esm.js.map +0 -1
  481. package/dist/test-resources/assets/Themes.js +0 -17
  482. package/dist/test-resources/elements/Child.js +0 -35
  483. package/dist/test-resources/elements/Generic.js +0 -84
  484. package/dist/test-resources/elements/GenericExt.js +0 -26
  485. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  486. package/dist/test-resources/elements/Parent.js +0 -41
  487. package/dist/test-resources/elements/WithStaticArea.js +0 -77
  488. package/dist/test-resources/pages/AllTestElements.html +0 -42
  489. package/dist/test-resources/pages/Configuration.html +0 -18
  490. package/dist/test-resources/pages/ConfigurationScript.html +0 -34
  491. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  492. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  493. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  494. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  495. package/dist/test-resources/pages/i18n.html +0 -33
  496. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
  497. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
  498. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -93
  499. package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
  500. package/dist/test-resources/specs/EventProvider.spec.js +0 -63
  501. package/dist/test-resources/specs/StaticArea.spec.js +0 -78
  502. package/dist/test-resources/specs/Theming.spec.js +0 -33
  503. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
  504. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
  505. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
  506. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
  507. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
  508. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
  509. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
  510. package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
  511. package/dist/types/PopupState.js +0 -37
  512. package/dist/util/findNodeOwner.js +0 -35
  513. package/dist/util/isDescendantOf.js +0 -15
  514. package/dist/util/isNodeClickable.js +0 -19
  515. package/dist/util/isNodeHidden.js +0 -9
  516. package/dist/util/isNodeTabbable.js +0 -28
  517. package/dist/util/setToArray.js +0 -10
  518. package/hash.txt +0 -1
  519. package/src/AssetRegistry.js +0 -11
  520. package/src/Boot.js +0 -59
  521. package/src/CustomElementsRegistry.js +0 -95
  522. package/src/CustomElementsScope.js +0 -108
  523. package/src/DOMObserver.js +0 -65
  524. package/src/Device.js +0 -116
  525. package/src/EventProvider.js +0 -85
  526. package/src/FeaturesRegistry.js +0 -14
  527. package/src/FontFace.js +0 -30
  528. package/src/InitialConfiguration.js +0 -166
  529. package/src/Keys.js +0 -295
  530. package/src/ManagedStyles.js +0 -83
  531. package/src/MediaRange.js +0 -109
  532. package/src/PropertiesFileFormat.js +0 -95
  533. package/src/Render.js +0 -175
  534. package/src/RenderQueue.js +0 -66
  535. package/src/RenderScheduler.js +0 -44
  536. package/src/Runtimes.js +0 -107
  537. package/src/StaticArea.js +0 -3
  538. package/src/StaticAreaItem.js +0 -101
  539. package/src/SystemCSSVars.js +0 -10
  540. package/src/UI5Element.js +0 -1023
  541. package/src/UI5ElementMetadata.js +0 -327
  542. package/src/animations/AnimationQueue.js +0 -42
  543. package/src/animations/animate.js +0 -53
  544. package/src/animations/config.js +0 -5
  545. package/src/animations/scroll.js +0 -28
  546. package/src/animations/slideDown.js +0 -79
  547. package/src/animations/slideUp.js +0 -71
  548. package/src/asset-registries/Icons.js +0 -139
  549. package/src/asset-registries/Illustrations.js +0 -30
  550. package/src/asset-registries/LocaleData.js +0 -164
  551. package/src/asset-registries/Themes.js +0 -78
  552. package/src/asset-registries/i18n.js +0 -121
  553. package/src/assets-meta/IconCollectionsAlias.js +0 -18
  554. package/src/config/AnimationMode.js +0 -23
  555. package/src/config/CalendarType.js +0 -18
  556. package/src/config/FormatSettings.js +0 -13
  557. package/src/config/Language.js +0 -68
  558. package/src/config/NoConflict.js +0 -51
  559. package/src/config/RTL.js +0 -31
  560. package/src/config/Theme.js +0 -53
  561. package/src/delegate/ItemNavigation.js +0 -351
  562. package/src/delegate/ResizeHandler.js +0 -106
  563. package/src/delegate/ScrollEnablement.js +0 -188
  564. package/src/features/F6Navigation.js +0 -108
  565. package/src/features/OpenUI5Support.js +0 -125
  566. package/src/getSharedResource.js +0 -30
  567. package/src/i18nBundle.js +0 -86
  568. package/src/isLegacyBrowser.js +0 -3
  569. package/src/locale/Locale.js +0 -91
  570. package/src/locale/RTLAwareRegistry.js +0 -14
  571. package/src/locale/applyDirection.js +0 -17
  572. package/src/locale/directionChange.js +0 -32
  573. package/src/locale/getEffectiveDir.js +0 -28
  574. package/src/locale/getLocale.js +0 -41
  575. package/src/locale/languageChange.js +0 -22
  576. package/src/locale/nextFallbackLocale.js +0 -28
  577. package/src/locale/normalizeLocale.js +0 -54
  578. package/src/renderer/LitRenderer.js +0 -34
  579. package/src/renderer/executeTemplate.js +0 -17
  580. package/src/theming/CustomStyle.js +0 -60
  581. package/src/theming/ThemeLoaded.js +0 -22
  582. package/src/theming/applyTheme.js +0 -79
  583. package/src/theming/getConstructableStyle.js +0 -30
  584. package/src/theming/getEffectiveLinksHrefs.js +0 -20
  585. package/src/theming/getEffectiveStyle.js +0 -30
  586. package/src/theming/getStylesString.js +0 -15
  587. package/src/theming/getThemeDesignerTheme.js +0 -87
  588. package/src/theming/preloadLinks.js +0 -23
  589. package/src/thirdparty/_merge.js +0 -32
  590. package/src/thirdparty/isPlainObject.js +0 -18
  591. package/src/thirdparty/merge.js +0 -10
  592. package/src/types/AnimationMode.js +0 -7
  593. package/src/types/CSSColor.js +0 -9
  594. package/src/types/CSSSize.js +0 -9
  595. package/src/types/CalendarType.js +0 -22
  596. package/src/types/DataType.js +0 -37
  597. package/src/types/Float.js +0 -14
  598. package/src/types/Integer.js +0 -13
  599. package/src/types/InvisibleMessageMode.js +0 -30
  600. package/src/types/ItemNavigationBehavior.js +0 -16
  601. package/src/types/NavigationMode.js +0 -7
  602. package/src/types/PopupState.js +0 -37
  603. package/src/types/ValueState.js +0 -22
  604. package/src/updateShadowRoot.js +0 -30
  605. package/src/util/AriaLabelHelper.js +0 -41
  606. package/src/util/Caret.js +0 -45
  607. package/src/util/ColorConversion.js +0 -370
  608. package/src/util/FetchHelper.js +0 -31
  609. package/src/util/FocusableElements.js +0 -79
  610. package/src/util/InvisibleMessage.js +0 -60
  611. package/src/util/PopupUtils.js +0 -93
  612. package/src/util/SlotsHelper.js +0 -43
  613. package/src/util/StringHelper.js +0 -26
  614. package/src/util/TabbableElements.js +0 -51
  615. package/src/util/arraysAreEqual.js +0 -15
  616. package/src/util/createLinkInHead.js +0 -19
  617. package/src/util/createStyleInHead.js +0 -18
  618. package/src/util/debounce.js +0 -17
  619. package/src/util/detectNavigatorLanguage.js +0 -13
  620. package/src/util/escapeRegex.js +0 -10
  621. package/src/util/findNodeOwner.js +0 -35
  622. package/src/util/formatMessage.js +0 -23
  623. package/src/util/generateHighlightedMarkup.js +0 -42
  624. package/src/util/getActiveElement.js +0 -11
  625. package/src/util/getClassCopy.js +0 -10
  626. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  627. package/src/util/getEffectiveContentDensity.js +0 -5
  628. package/src/util/getSingletonElementInstance.js +0 -13
  629. package/src/util/isDescendantOf.js +0 -15
  630. package/src/util/isElementInView.js +0 -15
  631. package/src/util/isNodeClickable.js +0 -19
  632. package/src/util/isNodeHidden.js +0 -9
  633. package/src/util/isNodeTabbable.js +0 -28
  634. package/src/util/isValidPropertyName.js +0 -29
  635. package/src/util/setToArray.js +0 -10
  636. package/src/util/whenDOMReady.js +0 -13
  637. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -1,139 +1,136 @@
1
1
  import getSharedResource from "../getSharedResource.js";
2
- import IconCollectionsAlias from "../assets-meta/IconCollectionsAlias.js";
3
- import { isThemeFamily } from "../config/Theme.js";
4
-
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_belize_* and sap_fiori_*
5
7
  const loaders = new Map();
6
8
  const registry = getSharedResource("SVGIcons.registry", new Map());
7
9
  const iconCollectionPromises = getSharedResource("SVGIcons.promises", new Map());
8
-
9
10
  const ICON_NOT_FOUND = "ICON_NOT_FOUND";
10
-
11
- /**
12
- * @deprecated
13
- */
14
- const registerIconBundle = async (collectionName, bundleData) => {
15
- throw new Error("This method has been removed. Use `registerIconLoader` instead.");
16
- };
17
-
18
- const registerIconLoader = async (collectionName, loader) => {
19
- loaders.set(collectionName, loader);
11
+ const registerIconLoader = (collectionName, loader) => {
12
+ loaders.set(collectionName, loader);
20
13
  };
21
-
22
- const _loadIconCollectionOnce = async collectionName => {
23
- if (!iconCollectionPromises.has(collectionName)) {
24
- if (!loaders.has(collectionName)) {
25
- throw new Error(`No loader registered for the ${collectionName} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);
26
- }
27
- const loadIcons = loaders.get(collectionName);
28
- iconCollectionPromises.set(collectionName, loadIcons(collectionName));
29
- }
30
-
31
- return iconCollectionPromises.get(collectionName);
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);
32
23
  };
33
-
34
- const _fillRegistry = bundleData => {
35
- Object.keys(bundleData.data).forEach(iconName => {
36
- const iconData = bundleData.data[iconName];
37
-
38
- registerIcon(iconName, {
39
- pathData: iconData.path,
40
- ltr: iconData.ltr,
41
- accData: iconData.acc,
42
- collection: bundleData.collection,
43
- packageName: bundleData.packageName,
44
- });
45
- });
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
+ });
46
35
  };
47
-
48
36
  // set
49
- const registerIcon = (name, { pathData, ltr, accData, collection, packageName } = {}) => { // eslint-disable-line
50
- if (!collection) {
51
- collection = _getDefaultCollection();
52
- }
53
-
54
- const key = `${collection}/${name}`;
55
- registry.set(key, {
56
- pathData,
57
- ltr,
58
- accData,
59
- packageName,
60
- });
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
+ });
61
48
  };
62
-
63
- const _parseName = name => {
64
- // silently support ui5-compatible URIs
65
- if (name.startsWith("sap-icon://")) {
66
- name = name.replace("sap-icon://", "");
67
- }
68
-
69
- let collection;
70
- [name, collection] = name.split("/").reverse();
71
- collection = collection || _getDefaultCollection();
72
-
73
- // Normalize collection name.
74
- // - resolve `SAP-icons-TNT` to `tnt`.
75
- // - resolve `BusinessSuiteInAppSymbols` to `business-suite`.
76
- // - resolve `horizon` to `SAP-icons-v5`,
77
- // Note: aliases can be made as a feature, if more collections need it or more aliases are needed.
78
- collection = _normalizeCollection(collection);
79
- name = name.replace("icon-", "");
80
-
81
- const registryKey = `${collection}/${name}`;
82
- return { name, collection, registryKey };
83
- };
84
-
85
- const getIconDataSync = nameProp => {
86
- const { registryKey } = _parseName(nameProp);
87
- return registry.get(registryKey);
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 };
88
69
  };
89
-
90
- const getIconData = async nameProp => {
91
- const { collection, registryKey } = _parseName(nameProp);
92
-
93
- let iconData = ICON_NOT_FOUND;
94
- try {
95
- iconData = await _loadIconCollectionOnce(collection);
96
- } catch (e) {
97
- console.error(e.message); /* eslint-disable-line */
98
- }
99
-
100
- if (iconData === ICON_NOT_FOUND) {
101
- return iconData;
102
- }
103
-
104
- if (!registry.has(registryKey)) {
105
- // not filled by another await. many getters will await on the same loader, but fill only once
106
- _fillRegistry(iconData);
107
- }
108
- return registry.get(registryKey);
70
+ const getIconDataSync = (iconName) => {
71
+ const { name, collection } = processName(iconName);
72
+ return getRegisteredIconData(collection, name);
109
73
  };
110
-
111
- // test page usage only
112
- const _getRegisteredNames = async () => {
113
- // fetch one icon of each collection to trigger the bundle load
114
- await getIconData("edit");
115
- await getIconData("tnt/arrow");
116
- await getIconData("business-suite/3d");
117
- return Array.from(registry.keys());
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);
118
102
  };
119
-
120
- const _getDefaultCollection = () => {
121
- return isThemeFamily("sap_horizon") ? "SAP-icons-v5" : "SAP-icons";
103
+ const getRegisteredIconData = (collection, name) => {
104
+ const registryKey = `${getEffectiveIconCollection(collection)}/${name}`;
105
+ return registry.get(registryKey);
122
106
  };
123
-
124
- const _normalizeCollection = collectionName => {
125
- if (IconCollectionsAlias[collectionName]) {
126
- return IconCollectionsAlias[collectionName];
127
- }
128
-
129
- return collectionName;
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
+ }
130
126
  };
131
-
132
- export {
133
- registerIconBundle,
134
- registerIconLoader,
135
- getIconData,
136
- getIconDataSync,
137
- registerIcon,
138
- _getRegisteredNames,
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());
139
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_belize_* and 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,18 @@
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
+ title: I18nText;
8
+ subtitle: I18nText;
9
+ };
10
+ type IllustrationData = IllustrationProperties & {
11
+ set: string;
12
+ collection: string;
13
+ };
14
+ declare const registerIllustration: (name: string, data: IllustrationData) => void;
15
+ declare const registerIllustrationLoader: (illustrationName: string, loader: IllustrationLoader) => void;
16
+ declare const getIllustrationDataSync: (illustrationName: string) => IllustrationProperties | undefined;
17
+ declare const getIllustrationData: (illustrationName: string) => Promise<IllustrationProperties | undefined>;
18
+ export { getIllustrationDataSync, registerIllustration, registerIllustrationLoader, getIllustrationData, };
@@ -1,30 +1,76 @@
1
1
  import getSharedResource from "../getSharedResource.js";
2
-
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();
3
11
  const registry = getSharedResource("SVGIllustration.registry", new Map());
4
- const ILLUSTRATION_NOT_FOUND = "ILLUSTRATION_NOT_FOUND";
5
-
6
- const registerIllustration = (name, { dialogSvg, sceneSvg, spotSvg, set, title, subtitle } = {}) => { // eslint-disable-line
7
- registry.set(`${set}/${name}`, {
8
- dialogSvg,
9
- sceneSvg,
10
- spotSvg,
11
- title,
12
- subtitle,
13
- });
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;
14
19
  };
15
-
16
- const getIllustrationDataSync = nameProp => {
17
- let set = "fiori";
18
-
19
- if (nameProp.startsWith("Tnt")) {
20
- set = "tnt";
21
- nameProp = nameProp.replace(/^Tnt/, "");
22
- }
23
-
24
- return registry.get(`${set}/${nameProp}`) || ILLUSTRATION_NOT_FOUND;
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
+ };
25
40
  };
26
-
27
- export {
28
- getIllustrationDataSync,
29
- registerIllustration,
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
+ title: data.title,
48
+ subtitle: data.subtitle,
49
+ });
30
50
  };
51
+ const registerIllustrationLoader = (illustrationName, loader) => {
52
+ loaders.set(illustrationName, loader);
53
+ };
54
+ const _loadIllustrationOnce = (illustrationName) => {
55
+ const { registryKey } = processName(illustrationName);
56
+ if (!illustrationPromises.has(registryKey)) {
57
+ if (!loaders.has(registryKey)) {
58
+ const illustrationPath = illustrationName.startsWith("fiori/") ? illustrationName.replace("fiori/", "") : illustrationName;
59
+ 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.`);
60
+ }
61
+ const loadIllustrations = loaders.get(registryKey);
62
+ illustrationPromises.set(registryKey, loadIllustrations(registryKey));
63
+ }
64
+ return illustrationPromises.get(registryKey);
65
+ };
66
+ const getIllustrationDataSync = (illustrationName) => {
67
+ const { registryKey } = processName(illustrationName);
68
+ return registry.get(registryKey);
69
+ };
70
+ const getIllustrationData = async (illustrationName) => {
71
+ const { registryKey } = processName(illustrationName);
72
+ await _loadIllustrationOnce(illustrationName);
73
+ return registry.get(registryKey);
74
+ };
75
+ export { getIllustrationDataSync, registerIllustration, registerIllustrationLoader, getIllustrationData, };
76
+ //# sourceMappingURL=Illustrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Illustrations.js","sourceRoot":"","sources":["../../src/asset-registries/Illustrations.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAiB9C,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACvC,CAAC,aAAa,EAAE,IAAI,CAAC;IACrB,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAC1B,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAC5B,CAAC,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;AACtD,MAAM,QAAQ,GAAG,iBAAiB,CAAsC,0BAA0B,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAC/G,MAAM,oBAAoB,GAAG,iBAAiB,CAAyC,0BAA0B,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAE9H,MAAM,aAAa,GAAG,GAAG,EAAE;IAC1B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,IAAI,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACvC,OAAO,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC1C;IAED,OAAO,mBAAmB,CAAC;AAC5B,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IACpC,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,WAAW,GAAG,GAAG,GAAG,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAAC;IAE7D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,UAAU,KAAK,mBAAmB,EAAE;QACpE,UAAU,GAAG,mBAAmB,CAAC;QACjC,WAAW,GAAG,GAAG,GAAG,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAAC;KACzD;IAED,OAAO;QACN,WAAW;QACX,UAAU;KACV,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,IAAsB,EAAE,EAAE;IACrE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAC1D,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,IAAI,IAAI,EAAE,EAAE;QACjD,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,gBAAwB,EAAE,MAA0B,EAAE,EAAE;IAC3F,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,gBAAwB,EAAE,EAAE;IAC1D,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACtD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC9B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAC3H,MAAM,IAAI,KAAK,CAAC,gCAAgC,gBAAgB,iGAAiG,gBAAgB,uLAAuL,CAAC,CAAC;SAC1W;QAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;QACpD,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;KACtE;IACD,OAAO,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,gBAAwB,EAAE,EAAE;IAC5D,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,gBAAwB,EAAE,EAAE;IAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAEtD,MAAM,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,OAAO,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,GACnB,CAAC","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\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\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, };