@ui5/webcomponents-base 0.0.0-f734ea2da → 0.0.0-f79db712b

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