@ui5/webcomponents-base 0.0.0-d9933bd82 → 0.0.0-da0d3eb88

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 (713) hide show
  1. package/.npsrc.json +3 -0
  2. package/CHANGELOG.md +1813 -0
  3. package/README.md +50 -7
  4. package/config/wdio.conf.cjs +392 -0
  5. package/dist/.tsbuildinfo +1 -0
  6. package/dist/AssetRegistry.d.ts +5 -0
  7. package/dist/AssetRegistry.js +6 -9
  8. package/dist/AssetRegistry.js.map +1 -0
  9. package/dist/Boot.d.ts +10 -0
  10. package/dist/Boot.js +73 -0
  11. package/dist/Boot.js.map +1 -0
  12. package/dist/CustomElementsRegistry.d.ts +5 -0
  13. package/dist/CustomElementsRegistry.js +73 -18
  14. package/dist/CustomElementsRegistry.js.map +1 -0
  15. package/dist/CustomElementsScope.d.ts +7 -0
  16. package/dist/CustomElementsScope.js +11 -0
  17. package/dist/CustomElementsScope.js.map +1 -0
  18. package/dist/CustomElementsScopeUtils.d.ts +62 -0
  19. package/dist/CustomElementsScopeUtils.js +102 -0
  20. package/dist/CustomElementsScopeUtils.js.map +1 -0
  21. package/dist/DOMObserver.d.ts +11 -0
  22. package/dist/DOMObserver.js +23 -0
  23. package/dist/DOMObserver.js.map +1 -0
  24. package/dist/Device.d.ts +12 -0
  25. package/dist/Device.js +160 -815
  26. package/dist/Device.js.map +1 -0
  27. package/dist/EventProvider.d.ts +25 -0
  28. package/dist/EventProvider.js +67 -70
  29. package/dist/EventProvider.js.map +1 -0
  30. package/dist/FeaturesRegistry.d.ts +3 -0
  31. package/dist/FeaturesRegistry.js +5 -7
  32. package/dist/FeaturesRegistry.js.map +1 -0
  33. package/dist/FontFace.d.ts +2 -0
  34. package/dist/FontFace.js +21 -69
  35. package/dist/FontFace.js.map +1 -0
  36. package/dist/IgnoreCustomElements.d.ts +25 -0
  37. package/dist/IgnoreCustomElements.js +37 -0
  38. package/dist/IgnoreCustomElements.js.map +1 -0
  39. package/dist/InitialConfiguration.d.ts +27 -0
  40. package/dist/InitialConfiguration.js +130 -104
  41. package/dist/InitialConfiguration.js.map +1 -0
  42. package/dist/Keys.d.ts +63 -0
  43. package/dist/Keys.js +181 -157
  44. package/dist/Keys.js.map +1 -0
  45. package/dist/ManagedStyles.d.ts +9 -0
  46. package/dist/ManagedStyles.js +79 -0
  47. package/dist/ManagedStyles.js.map +1 -0
  48. package/dist/MarkedEvents.d.ts +9 -0
  49. package/dist/MarkedEvents.js +15 -0
  50. package/dist/MarkedEvents.js.map +1 -0
  51. package/dist/MediaRange.d.ts +31 -0
  52. package/dist/MediaRange.js +88 -0
  53. package/dist/MediaRange.js.map +1 -0
  54. package/dist/PropertiesFileFormat.d.ts +8 -0
  55. package/dist/PropertiesFileFormat.js +85 -0
  56. package/dist/PropertiesFileFormat.js.map +1 -0
  57. package/dist/Render.d.ts +47 -0
  58. package/dist/Render.js +143 -0
  59. package/dist/Render.js.map +1 -0
  60. package/dist/RenderQueue.d.ts +19 -0
  61. package/dist/RenderQueue.js +53 -39
  62. package/dist/RenderQueue.js.map +1 -0
  63. package/dist/Runtimes.d.ts +27 -0
  64. package/dist/Runtimes.js +86 -0
  65. package/dist/Runtimes.js.map +1 -0
  66. package/dist/StaticArea.d.ts +3 -0
  67. package/dist/SystemCSSVars.d.ts +2 -0
  68. package/dist/SystemCSSVars.js +9 -0
  69. package/dist/SystemCSSVars.js.map +1 -0
  70. package/dist/Theming.d.ts +3 -0
  71. package/dist/Theming.js +3 -2
  72. package/dist/Theming.js.map +1 -0
  73. package/dist/UI5Element.d.ts +376 -0
  74. package/dist/UI5Element.js +1019 -910
  75. package/dist/UI5Element.js.map +1 -0
  76. package/dist/UI5ElementMetadata.d.ts +150 -0
  77. package/dist/UI5ElementMetadata.js +290 -159
  78. package/dist/UI5ElementMetadata.js.map +1 -0
  79. package/dist/animations/AnimationQueue.d.ts +8 -0
  80. package/dist/animations/AnimationQueue.js +31 -38
  81. package/dist/animations/AnimationQueue.js.map +1 -0
  82. package/dist/animations/animate.d.ts +14 -0
  83. package/dist/animations/animate.js +46 -51
  84. package/dist/animations/animate.js.map +1 -0
  85. package/dist/animations/scroll.d.ts +5 -0
  86. package/dist/animations/scroll.js +18 -27
  87. package/dist/animations/scroll.js.map +1 -0
  88. package/dist/animations/slideDown.d.ts +5 -0
  89. package/dist/animations/slideDown.js +53 -78
  90. package/dist/animations/slideDown.js.map +1 -0
  91. package/dist/animations/slideUp.d.ts +5 -0
  92. package/dist/animations/slideUp.js +49 -70
  93. package/dist/animations/slideUp.js.map +1 -0
  94. package/dist/asset-registries/Icons.d.ts +39 -0
  95. package/dist/asset-registries/Icons.js +136 -24
  96. package/dist/asset-registries/Icons.js.map +1 -0
  97. package/dist/asset-registries/Illustrations.d.ts +19 -0
  98. package/dist/asset-registries/Illustrations.js +77 -0
  99. package/dist/asset-registries/Illustrations.js.map +1 -0
  100. package/dist/asset-registries/LocaleData.d.ts +7 -0
  101. package/dist/asset-registries/LocaleData.js +125 -114
  102. package/dist/asset-registries/LocaleData.js.map +1 -0
  103. package/dist/asset-registries/Themes.d.ts +12 -0
  104. package/dist/asset-registries/Themes.js +58 -77
  105. package/dist/asset-registries/Themes.js.map +1 -0
  106. package/dist/asset-registries/i18n.d.ts +23 -0
  107. package/dist/asset-registries/i18n.js +83 -60
  108. package/dist/asset-registries/i18n.js.map +1 -0
  109. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  110. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  111. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  112. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  113. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  114. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  115. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  116. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  117. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  118. package/dist/config/AnimationMode.d.ts +14 -0
  119. package/dist/config/AnimationMode.js +24 -10
  120. package/dist/config/AnimationMode.js.map +1 -0
  121. package/dist/config/CalendarType.d.ts +15 -0
  122. package/dist/config/CalendarType.js +31 -14
  123. package/dist/config/CalendarType.js.map +1 -0
  124. package/dist/config/FormatSettings.d.ts +15 -0
  125. package/dist/config/FormatSettings.js +15 -9
  126. package/dist/config/FormatSettings.js.map +1 -0
  127. package/dist/config/Icons.d.ts +40 -0
  128. package/dist/config/Icons.js +44 -0
  129. package/dist/config/Icons.js.map +1 -0
  130. package/dist/config/Language.d.ts +40 -0
  131. package/dist/config/Language.js +69 -10
  132. package/dist/config/Language.js.map +1 -0
  133. package/dist/config/NoConflict.d.ts +20 -0
  134. package/dist/config/NoConflict.js +41 -41
  135. package/dist/config/NoConflict.js.map +1 -0
  136. package/dist/config/Theme.d.ts +39 -0
  137. package/dist/config/Theme.js +71 -22
  138. package/dist/config/Theme.js.map +1 -0
  139. package/dist/config/ThemeRoot.d.ts +27 -0
  140. package/dist/config/ThemeRoot.js +57 -0
  141. package/dist/config/ThemeRoot.js.map +1 -0
  142. package/dist/config/Timezone.d.ts +17 -0
  143. package/dist/config/Timezone.js +30 -0
  144. package/dist/config/Timezone.js.map +1 -0
  145. package/dist/connectToComponent.d.ts +9 -0
  146. package/dist/connectToComponent.js +59 -0
  147. package/dist/connectToComponent.js.map +1 -0
  148. package/dist/css/BusyIndicator.css +80 -0
  149. package/dist/css/FontFace.css +96 -0
  150. package/dist/css/OverrideFontFace.css +32 -0
  151. package/dist/css/SystemCSSVars.css +9 -0
  152. package/dist/decorators/customElement.d.ts +23 -0
  153. package/dist/decorators/customElement.js +42 -0
  154. package/dist/decorators/customElement.js.map +1 -0
  155. package/dist/decorators/event.d.ts +13 -0
  156. package/dist/decorators/event.js +24 -0
  157. package/dist/decorators/event.js.map +1 -0
  158. package/dist/decorators/property.d.ts +9 -0
  159. package/dist/decorators/property.js +24 -0
  160. package/dist/decorators/property.js.map +1 -0
  161. package/dist/decorators/slot.d.ts +9 -0
  162. package/dist/decorators/slot.js +37 -0
  163. package/dist/decorators/slot.js.map +1 -0
  164. package/dist/decorators.d.ts +5 -0
  165. package/dist/decorators.js +6 -0
  166. package/dist/decorators.js.map +1 -0
  167. package/dist/delegate/ItemNavigation.d.ts +114 -0
  168. package/dist/delegate/ItemNavigation.js +311 -274
  169. package/dist/delegate/ItemNavigation.js.map +1 -0
  170. package/dist/delegate/ResizeHandler.d.ts +23 -0
  171. package/dist/delegate/ResizeHandler.js +82 -63
  172. package/dist/delegate/ResizeHandler.js.map +1 -0
  173. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  174. package/dist/delegate/ScrollEnablement.js +159 -153
  175. package/dist/delegate/ScrollEnablement.js.map +1 -0
  176. package/dist/features/F6Navigation.d.ts +19 -0
  177. package/dist/features/F6Navigation.js +151 -0
  178. package/dist/features/F6Navigation.js.map +1 -0
  179. package/dist/features/InputElementsFormSupport.d.ts +18 -0
  180. package/dist/features/InputElementsFormSupport.js +40 -0
  181. package/dist/features/InputElementsFormSupport.js.map +1 -0
  182. package/dist/features/LegacyDateFormats.d.ts +18 -0
  183. package/dist/features/LegacyDateFormats.js +20 -0
  184. package/dist/features/LegacyDateFormats.js.map +1 -0
  185. package/dist/features/OpenUI5Element.d.ts +9 -0
  186. package/dist/features/OpenUI5Element.js +5 -0
  187. package/dist/features/OpenUI5Element.js.map +1 -0
  188. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  189. package/dist/features/OpenUI5Enablement.js +96 -0
  190. package/dist/features/OpenUI5Enablement.js.map +1 -0
  191. package/dist/features/OpenUI5Support.d.ts +34 -0
  192. package/dist/features/OpenUI5Support.js +137 -87
  193. package/dist/features/OpenUI5Support.js.map +1 -0
  194. package/dist/features/patchPatcher.d.ts +11 -0
  195. package/dist/features/patchPatcher.js +11 -0
  196. package/dist/features/patchPatcher.js.map +1 -0
  197. package/dist/features/patchPopup.d.ts +14 -0
  198. package/dist/features/patchPopup.js +50 -0
  199. package/dist/features/patchPopup.js.map +1 -0
  200. package/dist/generated/AssetParameters.d.ts +6 -0
  201. package/dist/generated/AssetParameters.js +4 -9
  202. package/dist/generated/AssetParameters.js.map +1 -0
  203. package/dist/generated/VersionInfo.d.ts +10 -0
  204. package/dist/generated/VersionInfo.js +11 -0
  205. package/dist/generated/VersionInfo.js.map +1 -0
  206. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  207. package/dist/generated/css/BusyIndicator.css.js +7 -0
  208. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  209. package/dist/generated/css/FontFace.css.d.ts +3 -0
  210. package/dist/generated/css/FontFace.css.js +7 -0
  211. package/dist/generated/css/FontFace.css.js.map +1 -0
  212. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  213. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  214. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  215. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  216. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  217. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  218. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  219. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
  220. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  221. package/dist/getSharedResource.d.ts +11 -0
  222. package/dist/getSharedResource.js +40 -0
  223. package/dist/getSharedResource.js.map +1 -0
  224. package/dist/global.d.ts +40 -0
  225. package/dist/i18nBundle.d.ts +41 -0
  226. package/dist/i18nBundle.js +71 -28
  227. package/dist/i18nBundle.js.map +1 -0
  228. package/dist/locale/Locale.d.ts +22 -0
  229. package/dist/locale/Locale.js +75 -87
  230. package/dist/locale/Locale.js.map +1 -0
  231. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  232. package/dist/locale/RTLAwareRegistry.js +9 -0
  233. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  234. package/dist/locale/applyDirection.d.ts +11 -0
  235. package/dist/locale/applyDirection.js +18 -0
  236. package/dist/locale/applyDirection.js.map +1 -0
  237. package/dist/locale/directionChange.d.ts +15 -0
  238. package/dist/locale/directionChange.js +24 -0
  239. package/dist/locale/directionChange.js.map +1 -0
  240. package/dist/locale/getEffectiveDir.d.ts +2 -0
  241. package/dist/locale/getEffectiveDir.js +8 -0
  242. package/dist/locale/getEffectiveDir.js.map +1 -0
  243. package/dist/locale/getLocale.d.ts +7 -0
  244. package/dist/locale/getLocale.js +28 -21
  245. package/dist/locale/getLocale.js.map +1 -0
  246. package/dist/locale/languageChange.d.ts +5 -0
  247. package/dist/locale/languageChange.js +14 -0
  248. package/dist/locale/languageChange.js.map +1 -0
  249. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  250. package/dist/locale/nextFallbackLocale.js +15 -19
  251. package/dist/locale/nextFallbackLocale.js.map +1 -0
  252. package/dist/locale/normalizeLocale.d.ts +7 -0
  253. package/dist/locale/normalizeLocale.js +34 -41
  254. package/dist/locale/normalizeLocale.js.map +1 -0
  255. package/dist/renderer/LitRenderer.d.ts +14 -0
  256. package/dist/renderer/LitRenderer.js +32 -12
  257. package/dist/renderer/LitRenderer.js.map +1 -0
  258. package/dist/renderer/directives/style-map.d.ts +13 -0
  259. package/dist/renderer/directives/style-map.js +72 -0
  260. package/dist/renderer/directives/style-map.js.map +1 -0
  261. package/dist/renderer/executeTemplate.d.ts +21 -0
  262. package/dist/renderer/executeTemplate.js +31 -0
  263. package/dist/renderer/executeTemplate.js.map +1 -0
  264. package/dist/sap/base/Log.js +750 -0
  265. package/dist/sap/base/assert.js +34 -0
  266. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  267. package/dist/sap/base/security/URLListValidator.js +406 -0
  268. package/dist/sap/base/security/encodeCSS.js +40 -0
  269. package/dist/sap/base/security/encodeXML.js +53 -0
  270. package/dist/sap/base/security/sanitizeHTML.js +38 -0
  271. package/dist/sap/base/strings/toHex.js +33 -0
  272. package/dist/sap/base/util/now.js +28 -0
  273. package/dist/sap/base/util/uid.js +27 -0
  274. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  275. package/dist/ssr-dom-shim.d.ts +1 -0
  276. package/dist/ssr-dom-shim.js +12 -0
  277. package/dist/ssr-dom-shim.js.map +1 -0
  278. package/dist/ssr-dom.d.ts +0 -0
  279. package/dist/ssr-dom.js +0 -0
  280. package/dist/theming/CustomStyle.d.ts +6 -0
  281. package/dist/theming/CustomStyle.js +46 -17
  282. package/dist/theming/CustomStyle.js.map +1 -0
  283. package/dist/theming/ThemeLoaded.d.ts +5 -0
  284. package/dist/theming/ThemeLoaded.js +14 -0
  285. package/dist/theming/ThemeLoaded.js.map +1 -0
  286. package/dist/theming/ThemeRegistered.d.ts +4 -0
  287. package/dist/theming/ThemeRegistered.js +11 -0
  288. package/dist/theming/ThemeRegistered.js.map +1 -0
  289. package/dist/theming/applyTheme.d.ts +2 -0
  290. package/dist/theming/applyTheme.js +64 -69
  291. package/dist/theming/applyTheme.js.map +1 -0
  292. package/dist/theming/getConstructableStyle.d.ts +9 -0
  293. package/dist/theming/getConstructableStyle.js +15 -15
  294. package/dist/theming/getConstructableStyle.js.map +1 -0
  295. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  296. package/dist/theming/getEffectiveStyle.js +23 -13
  297. package/dist/theming/getEffectiveStyle.js.map +1 -0
  298. package/dist/theming/getStylesString.d.ts +3 -0
  299. package/dist/theming/getStylesString.js +11 -0
  300. package/dist/theming/getStylesString.js.map +1 -0
  301. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  302. package/dist/theming/getThemeDesignerTheme.js +73 -60
  303. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  304. package/dist/thirdparty/_merge.d.ts +2 -0
  305. package/dist/thirdparty/_merge.js +7 -4
  306. package/dist/thirdparty/_merge.js.map +1 -0
  307. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  308. package/dist/thirdparty/isPlainObject.js +11 -10
  309. package/dist/thirdparty/isPlainObject.js.map +1 -0
  310. package/dist/thirdparty/merge.d.ts +2 -0
  311. package/dist/thirdparty/merge.js +4 -8
  312. package/dist/thirdparty/merge.js.map +1 -0
  313. package/dist/types/AnimationMode.d.ts +24 -0
  314. package/dist/types/AnimationMode.js +25 -6
  315. package/dist/types/AnimationMode.js.map +1 -0
  316. package/dist/types/AriaHasPopup.d.ts +32 -0
  317. package/dist/types/AriaHasPopup.js +34 -0
  318. package/dist/types/AriaHasPopup.js.map +1 -0
  319. package/dist/types/AriaLandmarkRole.d.ts +79 -0
  320. package/dist/types/AriaLandmarkRole.js +81 -0
  321. package/dist/types/AriaLandmarkRole.js.map +1 -0
  322. package/dist/types/AriaRole.d.ts +27 -0
  323. package/dist/types/AriaRole.js +29 -0
  324. package/dist/types/AriaRole.js.map +1 -0
  325. package/dist/types/CSSColor.d.ts +11 -0
  326. package/dist/types/CSSColor.js +14 -0
  327. package/dist/types/CSSColor.js.map +1 -0
  328. package/dist/types/CSSSize.d.ts +11 -0
  329. package/dist/types/CSSSize.js +10 -5
  330. package/dist/types/CSSSize.js.map +1 -0
  331. package/dist/types/CalendarType.d.ts +28 -0
  332. package/dist/types/CalendarType.js +26 -18
  333. package/dist/types/CalendarType.js.map +1 -0
  334. package/dist/types/DOMReference.d.ts +13 -0
  335. package/dist/types/DOMReference.js +21 -0
  336. package/dist/types/DOMReference.js.map +1 -0
  337. package/dist/types/DataType.d.ts +20 -0
  338. package/dist/types/DataType.js +31 -17
  339. package/dist/types/DataType.js.map +1 -0
  340. package/dist/types/Float.d.ts +14 -0
  341. package/dist/types/Float.js +18 -0
  342. package/dist/types/Float.js.map +1 -0
  343. package/dist/types/Integer.d.ts +14 -0
  344. package/dist/types/Integer.js +14 -5
  345. package/dist/types/Integer.js.map +1 -0
  346. package/dist/types/InvisibleMessageMode.d.ts +20 -0
  347. package/dist/types/InvisibleMessageMode.js +20 -0
  348. package/dist/types/InvisibleMessageMode.js.map +1 -0
  349. package/dist/types/ItemNavigationBehavior.d.ts +18 -0
  350. package/dist/types/ItemNavigationBehavior.js +16 -17
  351. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  352. package/dist/types/MovePlacement.d.ts +20 -0
  353. package/dist/types/MovePlacement.js +22 -0
  354. package/dist/types/MovePlacement.js.map +1 -0
  355. package/dist/types/NavigationMode.d.ts +24 -0
  356. package/dist/types/NavigationMode.js +25 -5
  357. package/dist/types/NavigationMode.js.map +1 -0
  358. package/dist/types/Orientation.d.ts +16 -0
  359. package/dist/types/Orientation.js +18 -0
  360. package/dist/types/Orientation.js.map +1 -0
  361. package/dist/types/ValueState.d.ts +28 -0
  362. package/dist/types/ValueState.js +27 -19
  363. package/dist/types/ValueState.js.map +1 -0
  364. package/dist/types.d.ts +41 -0
  365. package/dist/types.js +2 -0
  366. package/dist/types.js.map +1 -0
  367. package/dist/updateShadowRoot.d.ts +7 -0
  368. package/dist/updateShadowRoot.js +18 -0
  369. package/dist/updateShadowRoot.js.map +1 -0
  370. package/dist/util/AriaLabelHelper.d.ts +15 -0
  371. package/dist/util/AriaLabelHelper.js +171 -0
  372. package/dist/util/AriaLabelHelper.js.map +1 -0
  373. package/dist/util/Caret.d.ts +7 -0
  374. package/dist/util/Caret.js +23 -0
  375. package/dist/util/Caret.js.map +1 -0
  376. package/dist/util/ColorConversion.d.ts +30 -0
  377. package/dist/util/ColorConversion.js +342 -0
  378. package/dist/util/ColorConversion.js.map +1 -0
  379. package/dist/util/FetchHelper.d.ts +3 -0
  380. package/dist/util/FetchHelper.js +19 -25
  381. package/dist/util/FetchHelper.js.map +1 -0
  382. package/dist/util/FocusableElements.d.ts +4 -0
  383. package/dist/util/FocusableElements.js +68 -56
  384. package/dist/util/FocusableElements.js.map +1 -0
  385. package/dist/util/HTMLSanitizer.d.ts +3 -0
  386. package/dist/util/HTMLSanitizer.js +6 -0
  387. package/dist/util/HTMLSanitizer.js.map +1 -0
  388. package/dist/util/InvisibleMessage.d.ts +10 -0
  389. package/dist/util/InvisibleMessage.js +56 -0
  390. package/dist/util/InvisibleMessage.js.map +1 -0
  391. package/dist/util/PopupUtils.d.ts +5 -0
  392. package/dist/util/PopupUtils.js +60 -0
  393. package/dist/util/PopupUtils.js.map +1 -0
  394. package/dist/util/SlotsHelper.d.ts +9 -0
  395. package/dist/util/SlotsHelper.js +30 -0
  396. package/dist/util/SlotsHelper.js.map +1 -0
  397. package/dist/util/StringHelper.d.ts +3 -0
  398. package/dist/util/StringHelper.js +17 -20
  399. package/dist/util/StringHelper.js.map +1 -0
  400. package/dist/util/TabbableElements.d.ts +17 -0
  401. package/dist/util/TabbableElements.js +53 -43
  402. package/dist/util/TabbableElements.js.map +1 -0
  403. package/dist/util/arraysAreEqual.d.ts +2 -0
  404. package/dist/util/arraysAreEqual.js +13 -0
  405. package/dist/util/arraysAreEqual.js.map +1 -0
  406. package/dist/util/clamp.d.ts +9 -0
  407. package/dist/util/clamp.js +13 -0
  408. package/dist/util/clamp.js.map +1 -0
  409. package/dist/util/createLinkInHead.d.ts +7 -0
  410. package/dist/util/createLinkInHead.js +21 -0
  411. package/dist/util/createLinkInHead.js.map +1 -0
  412. package/dist/util/debounce.d.ts +2 -0
  413. package/dist/util/debounce.js +15 -0
  414. package/dist/util/debounce.js.map +1 -0
  415. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  416. package/dist/util/detectNavigatorLanguage.js +13 -11
  417. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  418. package/dist/util/dragAndDrop/DragRegistry.d.ts +12 -0
  419. package/dist/util/dragAndDrop/DragRegistry.js +68 -0
  420. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
  421. package/dist/util/dragAndDrop/findClosestPosition.d.ts +7 -0
  422. package/dist/util/dragAndDrop/findClosestPosition.js +59 -0
  423. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
  424. package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
  425. package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
  426. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
  427. package/dist/util/escapeRegex.d.ts +8 -0
  428. package/dist/util/escapeRegex.js +11 -0
  429. package/dist/util/escapeRegex.js.map +1 -0
  430. package/dist/util/formatMessage.d.ts +2 -0
  431. package/dist/util/formatMessage.js +15 -19
  432. package/dist/util/formatMessage.js.map +1 -0
  433. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  434. package/dist/util/generateHighlightedMarkup.js +41 -0
  435. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  436. package/dist/util/getActiveElement.d.ts +2 -0
  437. package/dist/util/getActiveElement.js +9 -0
  438. package/dist/util/getActiveElement.js.map +1 -0
  439. package/dist/util/getClassCopy.d.ts +421 -0
  440. package/dist/util/getClassCopy.js +10 -0
  441. package/dist/util/getClassCopy.js.map +1 -0
  442. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  443. package/dist/util/getDesigntimePropertyAsArray.js +5 -3
  444. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  445. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  446. package/dist/util/getEffectiveContentDensity.js +4 -0
  447. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  448. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  449. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  450. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  451. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  452. package/dist/util/getFastNavigationGroups.js +51 -0
  453. package/dist/util/getFastNavigationGroups.js.map +1 -0
  454. package/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
  455. package/dist/util/getFileExtension.js +9 -11
  456. package/dist/util/getFileExtension.js.map +1 -0
  457. package/dist/util/getNormalizedTarget.d.ts +7 -0
  458. package/dist/util/getNormalizedTarget.js +14 -0
  459. package/dist/util/getNormalizedTarget.js.map +1 -0
  460. package/dist/util/getParentElement.d.ts +2 -0
  461. package/dist/util/getParentElement.js +5 -0
  462. package/dist/util/getParentElement.js.map +1 -0
  463. package/dist/util/getSingletonElementInstance.d.ts +11 -0
  464. package/dist/util/getSingletonElementInstance.js +19 -0
  465. package/dist/util/getSingletonElementInstance.js.map +1 -0
  466. package/dist/util/isElementClickable.d.ts +2 -0
  467. package/dist/util/isElementClickable.js +16 -0
  468. package/dist/util/isElementClickable.js.map +1 -0
  469. package/dist/util/isElementContainingBlock.d.ts +2 -0
  470. package/dist/util/isElementContainingBlock.js +11 -0
  471. package/dist/util/isElementContainingBlock.js.map +1 -0
  472. package/dist/util/isElementHidden.d.ts +2 -0
  473. package/dist/util/isElementHidden.js +8 -0
  474. package/dist/util/isElementHidden.js.map +1 -0
  475. package/dist/util/isElementInView.d.ts +6 -0
  476. package/dist/util/isElementInView.js +12 -0
  477. package/dist/util/isElementInView.js.map +1 -0
  478. package/dist/util/isElementTabbable.d.ts +9 -0
  479. package/dist/util/isElementTabbable.js +30 -0
  480. package/dist/util/isElementTabbable.js.map +1 -0
  481. package/dist/util/isValidPropertyName.d.ts +8 -0
  482. package/dist/util/isValidPropertyName.js +19 -14
  483. package/dist/util/isValidPropertyName.js.map +1 -0
  484. package/dist/util/whenDOMReady.d.ts +2 -0
  485. package/dist/util/whenDOMReady.js +11 -10
  486. package/dist/util/whenDOMReady.js.map +1 -0
  487. package/dist/util/willShowContent.d.ts +2 -0
  488. package/dist/util/willShowContent.js +7 -0
  489. package/dist/util/willShowContent.js.map +1 -0
  490. package/dist/validateThemeRoot.d.ts +2 -0
  491. package/dist/validateThemeRoot.js +48 -0
  492. package/dist/validateThemeRoot.js.map +1 -0
  493. package/index.js +212 -2
  494. package/package-scripts.cjs +74 -0
  495. package/package.json +37 -13
  496. package/src/css/BusyIndicator.css +80 -0
  497. package/src/css/FontFace.css +96 -0
  498. package/src/css/OverrideFontFace.css +32 -0
  499. package/src/css/SystemCSSVars.css +9 -0
  500. package/tsconfig.json +20 -0
  501. package/.eslintignore +0 -11
  502. package/bundle.es5.js +0 -28
  503. package/bundle.esm.js +0 -49
  504. package/config/.eslintrc.js +0 -3
  505. package/config/rollup.config.js +0 -1
  506. package/config/wdio.conf.js +0 -1
  507. package/dist/RenderScheduler.js +0 -146
  508. package/dist/SVGIconRegistry.js +0 -60
  509. package/dist/StaticArea.js +0 -41
  510. package/dist/StaticAreaItem.js +0 -105
  511. package/dist/animations/config.js +0 -5
  512. package/dist/boot.js +0 -32
  513. package/dist/compatibility/DOMObserver.js +0 -62
  514. package/dist/compatibility/patchNodeValue.js +0 -24
  515. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  516. package/dist/config/RTL.js +0 -31
  517. package/dist/delegate/CustomResize.js +0 -78
  518. package/dist/delegate/NativeResize.js +0 -44
  519. package/dist/features/browsersupport/Edge.js +0 -6
  520. package/dist/features/browsersupport/IE11.js +0 -41
  521. package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  522. package/dist/renderer/ifDefined.js +0 -21
  523. package/dist/resources/bundle.es5.js +0 -212
  524. package/dist/resources/bundle.es5.js.map +0 -1
  525. package/dist/resources/bundle.esm.js +0 -129
  526. package/dist/resources/bundle.esm.js.map +0 -1
  527. package/dist/test-resources/assets/Themes.js +0 -13
  528. package/dist/test-resources/elements/Child.js +0 -35
  529. package/dist/test-resources/elements/Generic.js +0 -84
  530. package/dist/test-resources/elements/GenericExt.js +0 -26
  531. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  532. package/dist/test-resources/elements/Parent.js +0 -37
  533. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  534. package/dist/test-resources/pages/AllTestElements.html +0 -42
  535. package/dist/test-resources/pages/Configuration.html +0 -20
  536. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  537. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  538. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  539. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  540. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  541. package/dist/test-resources/specs/StaticArea.spec.js +0 -34
  542. package/dist/test-resources/specs/Theming.spec.js +0 -31
  543. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  544. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  545. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  546. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  547. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  548. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  549. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  550. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  551. package/dist/theming/CSSVarsPonyfill.js +0 -24
  552. package/dist/theming/adaptCSSForIE.js +0 -90
  553. package/dist/theming/createComponentStyleTag.js +0 -49
  554. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  555. package/dist/thirdparty/Array.from.js +0 -16
  556. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  557. package/dist/thirdparty/Array.prototype.find.js +0 -46
  558. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  559. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  560. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  561. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  562. package/dist/thirdparty/Number.isInteger.js +0 -5
  563. package/dist/thirdparty/Number.isNaN.js +0 -1
  564. package/dist/thirdparty/Number.parseInt.js +0 -1
  565. package/dist/thirdparty/Object.assign.js +0 -31
  566. package/dist/thirdparty/Object.entries.js +0 -11
  567. package/dist/thirdparty/Symbol.js +0 -2
  568. package/dist/thirdparty/WeakSet.js +0 -27
  569. package/dist/thirdparty/es6-string-methods.js +0 -182
  570. package/dist/thirdparty/events-polyfills.js +0 -89
  571. package/dist/thirdparty/fetch.js +0 -1
  572. package/dist/thirdparty/template.js +0 -600
  573. package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  574. package/dist/types/PopupState.js +0 -37
  575. package/dist/util/createStyleInHead.js +0 -18
  576. package/dist/util/findNodeOwner.js +0 -35
  577. package/dist/util/isDescendantOf.js +0 -15
  578. package/dist/util/isNodeClickable.js +0 -19
  579. package/dist/util/isNodeHidden.js +0 -13
  580. package/dist/util/isNodeTabbable.js +0 -28
  581. package/dist/util/isSlot.js +0 -3
  582. package/dist/webcomponentsjs/LICENSE.md +0 -19
  583. package/dist/webcomponentsjs/README.md +0 -229
  584. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  585. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  586. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  587. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  588. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  589. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  590. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  591. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  592. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  593. package/dist/webcomponentsjs/package.json +0 -46
  594. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  595. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  596. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  597. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  598. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  599. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  600. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  601. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  602. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  603. package/lib/generate-asset-parameters/index.js +0 -22
  604. package/package-scripts.js +0 -47
  605. package/src/AssetRegistry.js +0 -9
  606. package/src/CustomElementsRegistry.js +0 -23
  607. package/src/Device.js +0 -823
  608. package/src/EventProvider.js +0 -73
  609. package/src/FeaturesRegistry.js +0 -11
  610. package/src/FontFace.js +0 -73
  611. package/src/InitialConfiguration.js +0 -131
  612. package/src/Keys.js +0 -161
  613. package/src/RenderQueue.js +0 -42
  614. package/src/RenderScheduler.js +0 -146
  615. package/src/SVGIconRegistry.js +0 -60
  616. package/src/StaticArea.js +0 -41
  617. package/src/StaticAreaItem.js +0 -105
  618. package/src/Theming.js +0 -3
  619. package/src/UI5Element.js +0 -926
  620. package/src/UI5ElementMetadata.js +0 -171
  621. package/src/animations/AnimationQueue.js +0 -42
  622. package/src/animations/animate.js +0 -53
  623. package/src/animations/config.js +0 -5
  624. package/src/animations/scroll.js +0 -28
  625. package/src/animations/slideDown.js +0 -79
  626. package/src/animations/slideUp.js +0 -71
  627. package/src/asset-registries/Icons.js +0 -24
  628. package/src/asset-registries/LocaleData.js +0 -125
  629. package/src/asset-registries/Themes.js +0 -87
  630. package/src/asset-registries/i18n.js +0 -79
  631. package/src/boot.js +0 -32
  632. package/src/compatibility/DOMObserver.js +0 -62
  633. package/src/compatibility/patchNodeValue.js +0 -24
  634. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  635. package/src/config/AnimationMode.js +0 -13
  636. package/src/config/CalendarType.js +0 -18
  637. package/src/config/FormatSettings.js +0 -13
  638. package/src/config/Language.js +0 -12
  639. package/src/config/NoConflict.js +0 -51
  640. package/src/config/RTL.js +0 -31
  641. package/src/config/Theme.js +0 -28
  642. package/src/delegate/CustomResize.js +0 -78
  643. package/src/delegate/ItemNavigation.js +0 -278
  644. package/src/delegate/NativeResize.js +0 -44
  645. package/src/delegate/ResizeHandler.js +0 -66
  646. package/src/delegate/ScrollEnablement.js +0 -159
  647. package/src/features/OpenUI5Support.js +0 -90
  648. package/src/features/browsersupport/Edge.js +0 -6
  649. package/src/features/browsersupport/IE11.js +0 -41
  650. package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  651. package/src/i18nBundle.js +0 -33
  652. package/src/locale/Locale.js +0 -91
  653. package/src/locale/getLocale.js +0 -31
  654. package/src/locale/nextFallbackLocale.js +0 -28
  655. package/src/locale/normalizeLocale.js +0 -54
  656. package/src/renderer/LitRenderer.js +0 -15
  657. package/src/renderer/ifDefined.js +0 -21
  658. package/src/theming/CSSVarsPonyfill.js +0 -24
  659. package/src/theming/CustomStyle.js +0 -19
  660. package/src/theming/adaptCSSForIE.js +0 -90
  661. package/src/theming/applyTheme.js +0 -81
  662. package/src/theming/createComponentStyleTag.js +0 -49
  663. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  664. package/src/theming/getConstructableStyle.js +0 -25
  665. package/src/theming/getEffectiveStyle.js +0 -15
  666. package/src/theming/getThemeDesignerTheme.js +0 -67
  667. package/src/thirdparty/Array.from.js +0 -16
  668. package/src/thirdparty/Array.prototype.fill.js +0 -44
  669. package/src/thirdparty/Array.prototype.find.js +0 -46
  670. package/src/thirdparty/Array.prototype.includes.js +0 -51
  671. package/src/thirdparty/Element.prototype.closest.js +0 -11
  672. package/src/thirdparty/Element.prototype.matches.js +0 -6
  673. package/src/thirdparty/Map.prototype.keys.js +0 -9
  674. package/src/thirdparty/Number.isInteger.js +0 -5
  675. package/src/thirdparty/Number.isNaN.js +0 -1
  676. package/src/thirdparty/Number.parseInt.js +0 -1
  677. package/src/thirdparty/Object.assign.js +0 -31
  678. package/src/thirdparty/Object.entries.js +0 -11
  679. package/src/thirdparty/Symbol.js +0 -2
  680. package/src/thirdparty/WeakSet.js +0 -27
  681. package/src/thirdparty/_merge.js +0 -32
  682. package/src/thirdparty/es6-string-methods.js +0 -182
  683. package/src/thirdparty/events-polyfills.js +0 -89
  684. package/src/thirdparty/fetch.js +0 -1
  685. package/src/thirdparty/isPlainObject.js +0 -18
  686. package/src/thirdparty/merge.js +0 -10
  687. package/src/thirdparty/template.js +0 -600
  688. package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  689. package/src/types/AnimationMode.js +0 -7
  690. package/src/types/CSSSize.js +0 -9
  691. package/src/types/CalendarType.js +0 -22
  692. package/src/types/DataType.js +0 -25
  693. package/src/types/Integer.js +0 -9
  694. package/src/types/ItemNavigationBehavior.js +0 -21
  695. package/src/types/NavigationMode.js +0 -6
  696. package/src/types/PopupState.js +0 -37
  697. package/src/types/ValueState.js +0 -22
  698. package/src/util/FetchHelper.js +0 -31
  699. package/src/util/FocusableElements.js +0 -60
  700. package/src/util/StringHelper.js +0 -26
  701. package/src/util/TabbableElements.js +0 -47
  702. package/src/util/createStyleInHead.js +0 -18
  703. package/src/util/detectNavigatorLanguage.js +0 -13
  704. package/src/util/findNodeOwner.js +0 -35
  705. package/src/util/formatMessage.js +0 -23
  706. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  707. package/src/util/isDescendantOf.js +0 -15
  708. package/src/util/isNodeClickable.js +0 -19
  709. package/src/util/isNodeHidden.js +0 -13
  710. package/src/util/isNodeTabbable.js +0 -28
  711. package/src/util/isSlot.js +0 -3
  712. package/src/util/isValidPropertyName.js +0 -23
  713. package/src/util/whenDOMReady.js +0 -13
@@ -1,87 +1,68 @@
1
- import { fetchJsonOnce, fetchTextOnce } from "../util/FetchHelper.js";
2
1
  import { DEFAULT_THEME } from "../generated/AssetParameters.js";
3
- import getFileExtension from "../util/getFileExtension.js";
4
-
5
- const themeURLs = new Map();
2
+ import { mergeStyles } from "../ManagedStyles.js";
3
+ import { fireThemeRegistered } from "../theming/ThemeRegistered.js";
6
4
  const themeStyles = new Map();
5
+ const loaders = new Map();
6
+ const customLoaders = new Map();
7
7
  const registeredPackages = new Set();
8
8
  const registeredThemes = new Set();
9
-
10
- /**
11
- * Used to provide CSS Vars for a specific theme for a specific package.
12
- * The CSS Vars can be passed directly as a string (containing them), as an object with a "_" property(containing them in the "_" property), or as a URL.
13
- * This URL must point to a JSON file, containing a "_" property.
14
- *
15
- * Example usage:
16
- * 1) Pass the CSS Vars as a string directly.
17
- * registerThemeProperties("my-package", "my_theme", ":root{--var1: red;}");
18
- * 2) Pass the CSS Vars as an object directly
19
- * registerThemeProperties("my-package", "my_theme", {"_": ":root{--var1: red;}"});
20
- * 3) Pass a URL to a CSS file, containing the CSS Vars. Will be fetched on demand, not upon registration.
21
- * registerThemeProperties("my-package", "my_theme", "http://url/to/my/theme.css");
22
- * 4) Pass a URL to a JSON file, containing the CSS Vars in its "_" property. Will be fetched on demand, not upon registration.
23
- * registerThemeProperties("my-package", "my_theme", "http://url/to/my/theme.json");
24
- *
25
- * @public
26
- * @param packageName - the NPM package for which CSS Vars are registered
27
- * @param themeName - the theme which the CSS Vars implement
28
- * @param style - can be one of four options: a string, an object with a "_" property, URL to a CSS file, or URL to a JSON file with a "_" property
29
- */
30
- const registerThemeProperties = (packageName, themeName, style) => {
31
- if (style._) {
32
- // JSON object like ({"_": ":root"})
33
- themeStyles.set(`${packageName}_${themeName}`, style._);
34
- } else if (style.includes(":root") || style === "") {
35
- // pure string, including empty string
36
- themeStyles.set(`${packageName}_${themeName}`, style);
37
- } else {
38
- // url for fetching
39
- themeURLs.set(`${packageName}_${themeName}`, style);
40
- }
41
- registeredPackages.add(packageName);
42
- registeredThemes.add(themeName);
9
+ const registerThemePropertiesLoader = (packageName, themeName, loader) => {
10
+ loaders.set(`${packageName}/${themeName}`, loader);
11
+ registeredPackages.add(packageName);
12
+ registeredThemes.add(themeName);
13
+ fireThemeRegistered(themeName);
43
14
  };
44
-
45
- const getThemeProperties = async (packageName, themeName) => {
46
- const style = themeStyles.get(`${packageName}_${themeName}`);
47
- if (style !== undefined) { // it's valid for style to be an empty string
48
- return style;
49
- }
50
-
51
- if (!registeredThemes.has(themeName)) {
52
- const regThemesStr = [...registeredThemes.values()].join(", ");
53
- console.warn(`You have requested a non-registered theme - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
54
- return themeStyles.get(`${packageName}_${DEFAULT_THEME}`);
55
- }
56
-
57
- const data = await fetchThemeProperties(packageName, themeName);
58
- const themeProps = data._ || data;
59
-
60
- themeStyles.set(`${packageName}_${themeName}`, themeProps);
61
- return themeProps;
15
+ const registerCustomThemePropertiesLoader = (packageName, themeName, loader) => {
16
+ customLoaders.set(`${packageName}/${themeName}`, loader);
62
17
  };
63
-
64
- const fetchThemeProperties = async (packageName, themeName) => {
65
- const url = themeURLs.get(`${packageName}_${themeName}`);
66
-
67
- if (!url) {
68
- throw new Error(`You have to import the ${packageName}/dist/Assets.js module to switch to additional themes`);
69
- }
70
-
71
- return getFileExtension(url) === ".css" ? fetchTextOnce(url) : fetchJsonOnce(url);
18
+ const getThemeProperties = async (packageName, themeName, externalThemeName) => {
19
+ const cacheKey = `${packageName}_${themeName}_${externalThemeName || ""}`;
20
+ const cachedStyleData = themeStyles.get(cacheKey);
21
+ if (cachedStyleData !== undefined) { // it's valid for style to be an empty string
22
+ return cachedStyleData;
23
+ }
24
+ if (!registeredThemes.has(themeName)) {
25
+ const regThemesStr = [...registeredThemes.values()].join(", ");
26
+ console.warn(`You have requested a non-registered theme ${themeName} - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
27
+ return _getThemeProperties(packageName, DEFAULT_THEME);
28
+ }
29
+ const [style, customStyle] = await Promise.all([
30
+ _getThemeProperties(packageName, themeName),
31
+ externalThemeName ? _getThemeProperties(packageName, externalThemeName, true) : undefined,
32
+ ]);
33
+ const styleData = mergeStyles(style, customStyle);
34
+ if (styleData) {
35
+ themeStyles.set(cacheKey, styleData);
36
+ }
37
+ return styleData;
72
38
  };
73
-
74
- const getRegisteredPackages = () => {
75
- return registeredPackages;
39
+ const _getThemeProperties = async (packageName, themeName, forCustomTheme = false) => {
40
+ const loadersMap = forCustomTheme ? customLoaders : loaders;
41
+ const loader = loadersMap.get(`${packageName}/${themeName}`);
42
+ if (!loader) {
43
+ // no themes for package
44
+ if (!forCustomTheme) {
45
+ console.error(`Theme [${themeName}] not registered for package [${packageName}]`); /* eslint-disable-line */
46
+ }
47
+ return;
48
+ }
49
+ let data;
50
+ try {
51
+ data = await loader(themeName);
52
+ }
53
+ catch (error) {
54
+ const e = error;
55
+ console.error(packageName, e.message); /* eslint-disable-line */
56
+ return;
57
+ }
58
+ const themeProps = data._ || data; // Refactor: remove _ everywhere
59
+ return themeProps;
76
60
  };
77
-
78
- const isThemeRegistered = theme => {
79
- return registeredThemes.has(theme);
61
+ const getRegisteredPackages = () => {
62
+ return registeredPackages;
80
63
  };
81
-
82
- export {
83
- registerThemeProperties,
84
- getThemeProperties,
85
- getRegisteredPackages,
86
- isThemeRegistered,
64
+ const isThemeRegistered = (theme) => {
65
+ return registeredThemes.has(theme);
87
66
  };
67
+ export { registerThemePropertiesLoader, registerCustomThemePropertiesLoader, getThemeProperties, getRegisteredPackages, isThemeRegistered, };
68
+ //# sourceMappingURL=Themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../src/asset-registries/Themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAKpE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;AACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;AAC/C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;AACrD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAC7C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE3C,MAAM,6BAA6B,GAAG,CAAC,WAAmB,EAAE,SAAiB,EAAE,MAAmB,EAAE,EAAE;IACrG,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;IACnD,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,mCAAmC,GAAG,CAAC,WAAmB,EAAE,SAAiB,EAAE,MAAmB,EAAE,EAAE;IAC3G,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,WAAmB,EAAE,SAAiB,EAAE,iBAA0B,EAAE,EAAE;IACvG,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,SAAS,IAAI,iBAAiB,IAAI,EAAE,EAAE,CAAC;IAC1E,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,eAAe,KAAK,SAAS,EAAE,EAAE,6CAA6C;QACjF,OAAO,eAAe,CAAC;KACvB;IAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACrC,MAAM,YAAY,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,6CAA6C,SAAS,sBAAsB,aAAa,4BAA4B,YAAY,EAAE,CAAC,CAAC,CAAC,yBAAyB;QAC5K,OAAO,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;KACvD;IAED,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC;QAC3C,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KACzF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,SAAS,EAAE;QACd,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;KACrC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,WAAmB,EAAE,SAAiB,EAAE,cAAc,GAAG,KAAK,EAAE,EAAE;IACpG,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE;QACZ,wBAAwB;QACxB,IAAI,CAAC,cAAc,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,iCAAiC,WAAW,GAAG,CAAC,CAAC,CAAC,yBAAyB;SAC5G;QACD,OAAO;KACP;IACD,IAAI,IAAI,CAAC;IACT,IAAI;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;KAC/B;IAAC,OAAO,KAAc,EAAE;QACxB,MAAM,CAAC,GAAG,KAAc,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;QAChE,OAAO;KACP;IAED,MAAM,UAAU,GAAI,IAA0B,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,gCAAgC;IAC1F,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;IAClC,OAAO,kBAAkB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,EAAE;IAC3C,OAAO,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,OAAO,EACN,6BAA6B,EAC7B,mCAAmC,EACnC,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,GACjB,CAAC","sourcesContent":["import { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport type { StyleData, StyleDataCSP } from \"../ManagedStyles.js\";\nimport { mergeStyles } from \"../ManagedStyles.js\";\nimport { fireThemeRegistered } from \"../theming/ThemeRegistered.js\";\n\ntype ThemeData = {_: StyleDataCSP } | StyleDataCSP | string;\ntype ThemeLoader = (themeName: string) => Promise<ThemeData>;\n\nconst themeStyles = new Map<string, StyleData>();\nconst loaders = new Map<string, ThemeLoader>();\nconst customLoaders = new Map<string, ThemeLoader>();\nconst registeredPackages = new Set<string>();\nconst registeredThemes = new Set<string>();\n\nconst registerThemePropertiesLoader = (packageName: string, themeName: string, loader: ThemeLoader) => {\n\tloaders.set(`${packageName}/${themeName}`, loader);\n\tregisteredPackages.add(packageName);\n\tregisteredThemes.add(themeName);\n\tfireThemeRegistered(themeName);\n};\n\nconst registerCustomThemePropertiesLoader = (packageName: string, themeName: string, loader: ThemeLoader) => {\n\tcustomLoaders.set(`${packageName}/${themeName}`, loader);\n};\n\nconst getThemeProperties = async (packageName: string, themeName: string, externalThemeName?: string) => {\n\tconst cacheKey = `${packageName}_${themeName}_${externalThemeName || \"\"}`;\n\tconst cachedStyleData = themeStyles.get(cacheKey);\n\tif (cachedStyleData !== undefined) { // it's valid for style to be an empty string\n\t\treturn cachedStyleData;\n\t}\n\n\tif (!registeredThemes.has(themeName)) {\n\t\tconst regThemesStr = [...registeredThemes.values()].join(\", \");\n\t\tconsole.warn(`You have requested a non-registered theme ${themeName} - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */\n\t\treturn _getThemeProperties(packageName, DEFAULT_THEME);\n\t}\n\n\tconst [style, customStyle] = await Promise.all([\n\t\t_getThemeProperties(packageName, themeName),\n\t\texternalThemeName ? _getThemeProperties(packageName, externalThemeName, true) : undefined,\n\t]);\n\n\tconst styleData = mergeStyles(style, customStyle);\n\tif (styleData) {\n\t\tthemeStyles.set(cacheKey, styleData);\n\t}\n\n\treturn styleData;\n};\n\nconst _getThemeProperties = async (packageName: string, themeName: string, forCustomTheme = false) => {\n\tconst loadersMap = forCustomTheme ? customLoaders : loaders;\n\tconst loader = loadersMap.get(`${packageName}/${themeName}`);\n\tif (!loader) {\n\t\t// no themes for package\n\t\tif (!forCustomTheme) {\n\t\t\tconsole.error(`Theme [${themeName}] not registered for package [${packageName}]`); /* eslint-disable-line */\n\t\t}\n\t\treturn;\n\t}\n\tlet data;\n\ttry {\n\t\tdata = await loader(themeName);\n\t} catch (error: unknown) {\n\t\tconst e = error as Error;\n\t\tconsole.error(packageName, e.message); /* eslint-disable-line */\n\t\treturn;\n\t}\n\n\tconst themeProps = (data as {_: StyleDataCSP})._ || data; // Refactor: remove _ everywhere\n\treturn themeProps;\n};\n\nconst getRegisteredPackages = () => {\n\treturn registeredPackages;\n};\n\nconst isThemeRegistered = (theme: string) => {\n\treturn registeredThemes.has(theme);\n};\n\nexport {\n\tregisterThemePropertiesLoader,\n\tregisterCustomThemePropertiesLoader,\n\tgetThemeProperties,\n\tgetRegisteredPackages,\n\tisThemeRegistered,\n};\n\nexport type {\n\tThemeData,\n\tThemeLoader,\n};\n"]}
@@ -0,0 +1,23 @@
1
+ type I18nLoader = (localeId: string) => Promise<I18nData>;
2
+ type I18nData = Record<string, string>;
3
+ /**
4
+ * Registers i18n loader function for given package and locale.
5
+ *
6
+ * @public
7
+ * @param {string} packageName for which package this loader can fetch data
8
+ * @param {string} localeId locale that this loader can handle
9
+ * @param {function} loader async function that will be passed a localeId and should return a JSON object
10
+ */
11
+ declare const registerI18nLoader: (packageName: string, localeId: string, loader: I18nLoader) => void;
12
+ declare const getI18nBundleData: (packageName: string) => I18nData | null | undefined;
13
+ /**
14
+ * This method preforms the asynchronous task of fetching the actual text resources. It will fetch
15
+ * each text resource over the network once (even for multiple calls to the same method).
16
+ * It should be fully finished before the i18nBundle class is created in the webcomponents.
17
+ * This method uses the bundle URLs that are populated by the `registerI18nBundle` method.
18
+ * To simplify the usage, the synchronization of both methods happens internally for the same `bundleId`
19
+ * @param {packageName} packageName the NPM package name
20
+ * @public
21
+ */
22
+ declare const fetchI18nBundle: (packageName: string) => Promise<void>;
23
+ export { registerI18nLoader, fetchI18nBundle, getI18nBundleData, };
@@ -1,79 +1,102 @@
1
1
  import getLocale from "../locale/getLocale.js";
2
- import { fetchJsonOnce } from "../util/FetchHelper.js";
2
+ import { attachLanguageChange } from "../locale/languageChange.js";
3
3
  import normalizeLocale from "../locale/normalizeLocale.js";
4
4
  import nextFallbackLocale from "../locale/nextFallbackLocale.js";
5
5
  import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
6
-
6
+ import { getFetchDefaultLanguage } from "../config/Language.js";
7
+ // contains package names for which the warning has been shown
8
+ const warningShown = new Set();
9
+ const reportedErrors = new Set();
7
10
  const bundleData = new Map();
8
- const bundleURLs = new Map();
9
-
11
+ const bundlePromises = new Map();
12
+ const loaders = new Map();
10
13
  /**
11
- * Sets a map with texts and ID the are related to.
12
- * @param {string} packageName package ID that the i18n bundle will be related to
13
- * @param {Object} data an object with string locales as keys and text translataions as values
14
+ * Registers i18n loader function for given package and locale.
15
+ *
14
16
  * @public
17
+ * @param {string} packageName for which package this loader can fetch data
18
+ * @param {string} localeId locale that this loader can handle
19
+ * @param {function} loader async function that will be passed a localeId and should return a JSON object
15
20
  */
16
- const setI18nBundleData = (packageName, data) => {
17
- bundleData.set(packageName, data);
21
+ const registerI18nLoader = (packageName, localeId, loader) => {
22
+ // register loader by key
23
+ const bundleKey = `${packageName}/${localeId}`;
24
+ loaders.set(bundleKey, loader);
18
25
  };
19
-
20
- const getI18nBundleData = packageName => {
21
- return bundleData.get(packageName);
26
+ const _setI18nBundleData = (packageName, data) => {
27
+ bundleData.set(packageName, data);
22
28
  };
23
-
24
- /**
25
- * Registers a map of locale/url information, to be used by the <code>fetchI18nBundle</code> method.
26
- * @param {string} packageName package ID that the i18n bundle will be related to
27
- * @param {Object} bundle an object with string locales as keys and the URLs of where the corresponding locale can be fetched from, f.e {"en": "path/en.json", ...}
28
- * @public
29
- */
30
- const registerI18nBundle = (packageName, bundle) => {
31
- bundleURLs.set(packageName, bundle);
29
+ const getI18nBundleData = (packageName) => {
30
+ return bundleData.get(packageName);
31
+ };
32
+ const _hasLoader = (packageName, localeId) => {
33
+ const bundleKey = `${packageName}/${localeId}`;
34
+ return loaders.has(bundleKey);
35
+ };
36
+ // load bundle over the network once
37
+ const _loadMessageBundleOnce = (packageName, localeId) => {
38
+ const bundleKey = `${packageName}/${localeId}`;
39
+ const loadMessageBundle = loaders.get(bundleKey);
40
+ if (loadMessageBundle && !bundlePromises.get(bundleKey)) {
41
+ bundlePromises.set(bundleKey, loadMessageBundle(localeId));
42
+ }
43
+ return bundlePromises.get(bundleKey); // Investigate if i18n loader exists and this won't return undefined.
44
+ };
45
+ const _showAssetsWarningOnce = (packageName) => {
46
+ if (!warningShown.has(packageName)) {
47
+ console.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */ ` Add \`import "${packageName}/dist/Assets.js"\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section "Assets" in the documentation for more information.`); /* eslint-disable-line */
48
+ warningShown.add(packageName);
49
+ }
50
+ };
51
+ const useFallbackBundle = (packageName, localeId) => {
52
+ return localeId !== DEFAULT_LANGUAGE && !_hasLoader(packageName, localeId);
32
53
  };
33
-
34
54
  /**
35
55
  * This method preforms the asynchronous task of fetching the actual text resources. It will fetch
36
56
  * each text resource over the network once (even for multiple calls to the same method).
37
57
  * It should be fully finished before the i18nBundle class is created in the webcomponents.
38
- * This method uses the bundle URLs that are populated by the <code>registerI18nBundle</code> method.
39
- * To simplify the usage, the synchronization of both methods happens internally for the same <code>bundleId</code>
58
+ * This method uses the bundle URLs that are populated by the `registerI18nBundle` method.
59
+ * To simplify the usage, the synchronization of both methods happens internally for the same `bundleId`
40
60
  * @param {packageName} packageName the NPM package name
41
61
  * @public
42
62
  */
43
- const fetchI18nBundle = async packageName => {
44
- const bundlesForPackage = bundleURLs.get(packageName);
45
-
46
- if (!bundlesForPackage) {
47
- console.warn(`Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */
48
- ` You need to import ${packageName}/dist/Assets.js with a build tool that supports JSON imports.`); /* eslint-disable-line */
49
- return;
50
- }
51
-
52
- const language = getLocale().getLanguage();
53
-
54
- let localeId = normalizeLocale(language);
55
- while (!bundlesForPackage[localeId]) {
56
- localeId = nextFallbackLocale(localeId);
57
- }
58
-
59
- if (localeId === DEFAULT_LANGUAGE) {
60
- return;
61
- }
62
-
63
- const bundleURL = bundlesForPackage[localeId];
64
-
65
- if (typeof bundleURL === "object") { // inlined from build
66
- setI18nBundleData(packageName, bundleURL);
67
- return;
68
- }
69
-
70
- const data = await fetchJsonOnce(bundleURL);
71
- setI18nBundleData(packageName, data);
72
- };
73
-
74
- export {
75
- fetchI18nBundle,
76
- registerI18nBundle,
77
- setI18nBundleData,
78
- getI18nBundleData,
63
+ const fetchI18nBundle = async (packageName) => {
64
+ const language = getLocale().getLanguage();
65
+ const region = getLocale().getRegion();
66
+ const variant = getLocale().getVariant();
67
+ let localeId = language + (region ? `-${region}` : ``) + (variant ? `-${variant}` : ``);
68
+ if (useFallbackBundle(packageName, localeId)) {
69
+ localeId = normalizeLocale(localeId);
70
+ while (useFallbackBundle(packageName, localeId)) {
71
+ localeId = nextFallbackLocale(localeId);
72
+ }
73
+ }
74
+ // use default language unless configured to always fetch it from the network
75
+ const fetchDefaultLanguage = getFetchDefaultLanguage();
76
+ if (localeId === DEFAULT_LANGUAGE && !fetchDefaultLanguage) {
77
+ _setI18nBundleData(packageName, null); // reset for the default language (if data was set for a previous language)
78
+ return;
79
+ }
80
+ if (!_hasLoader(packageName, localeId)) {
81
+ _showAssetsWarningOnce(packageName);
82
+ return;
83
+ }
84
+ try {
85
+ const data = await _loadMessageBundleOnce(packageName, localeId);
86
+ _setI18nBundleData(packageName, data);
87
+ }
88
+ catch (error) {
89
+ const e = error;
90
+ if (!reportedErrors.has(e.message)) {
91
+ reportedErrors.add(e.message);
92
+ console.error(e.message); /* eslint-disable-line */
93
+ }
94
+ }
79
95
  };
96
+ // When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles
97
+ attachLanguageChange((lang /* eslint-disable-line */) => {
98
+ const allPackages = [...bundleData.keys()];
99
+ return Promise.all(allPackages.map(fetchI18nBundle));
100
+ });
101
+ export { registerI18nLoader, fetchI18nBundle, getI18nBundleData, };
102
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/asset-registries/i18n.ts"],"names":[],"mappings":"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","sourcesContent":["import getLocale from \"../locale/getLocale.js\";\nimport { attachLanguageChange } from \"../locale/languageChange.js\";\nimport normalizeLocale from \"../locale/normalizeLocale.js\";\nimport nextFallbackLocale from \"../locale/nextFallbackLocale.js\";\nimport { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\nimport { getFetchDefaultLanguage } from \"../config/Language.js\";\n\ntype I18nLoader = (localeId: string) => Promise<I18nData>;\ntype I18nData = Record<string, string>;\n\n// contains package names for which the warning has been shown\nconst warningShown = new Set();\nconst reportedErrors = new Set();\n\nconst bundleData = new Map<string, I18nData | null>();\nconst bundlePromises = new Map<string, Promise<I18nData>>();\nconst loaders = new Map<string, I18nLoader>();\n\n/**\n * Registers i18n loader function for given package and locale.\n *\n * @public\n * @param {string} packageName for which package this loader can fetch data\n * @param {string} localeId locale that this loader can handle\n * @param {function} loader async function that will be passed a localeId and should return a JSON object\n */\nconst registerI18nLoader = (packageName: string, localeId: string, loader: I18nLoader) => {\n\t// register loader by key\n\tconst bundleKey = `${packageName}/${localeId}`;\n\tloaders.set(bundleKey, loader);\n};\n\nconst _setI18nBundleData = (packageName: string, data: I18nData | null) => {\n\tbundleData.set(packageName, data);\n};\n\nconst getI18nBundleData = (packageName: string) => {\n\treturn bundleData.get(packageName);\n};\n\nconst _hasLoader = (packageName: string, localeId: string) => {\n\tconst bundleKey = `${packageName}/${localeId}`;\n\treturn loaders.has(bundleKey);\n};\n\n// load bundle over the network once\nconst _loadMessageBundleOnce = (packageName: string, localeId: string) => {\n\tconst bundleKey = `${packageName}/${localeId}`;\n\tconst loadMessageBundle = loaders.get(bundleKey);\n\n\tif (loadMessageBundle && !bundlePromises.get(bundleKey)) {\n\t\tbundlePromises.set(bundleKey, loadMessageBundle(localeId));\n\t}\n\n\treturn bundlePromises.get(bundleKey)!; // Investigate if i18n loader exists and this won't return undefined.\n};\n\nconst _showAssetsWarningOnce = (packageName: string) => {\n\tif (!warningShown.has(packageName)) {\n\t\tconsole.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */\n\t\t\t` Add \\`import \"${packageName}/dist/Assets.js\"\\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section \"Assets\" in the documentation for more information.`); /* eslint-disable-line */\n\t\twarningShown.add(packageName);\n\t}\n};\n\nconst useFallbackBundle = (packageName: string, localeId: string) => {\n\treturn localeId !== DEFAULT_LANGUAGE && !_hasLoader(packageName, localeId);\n};\n\n/**\n * This method preforms the asynchronous task of fetching the actual text resources. It will fetch\n * each text resource over the network once (even for multiple calls to the same method).\n * It should be fully finished before the i18nBundle class is created in the webcomponents.\n * This method uses the bundle URLs that are populated by the `registerI18nBundle` method.\n * To simplify the usage, the synchronization of both methods happens internally for the same `bundleId`\n * @param {packageName} packageName the NPM package name\n * @public\n */\nconst fetchI18nBundle = async (packageName: string) => {\n\tconst language = getLocale().getLanguage();\n\tconst region = getLocale().getRegion();\n\tconst variant = getLocale().getVariant();\n\tlet localeId = language + (region ? `-${region}` : ``) + (variant ? `-${variant}` : ``);\n\n\tif (useFallbackBundle(packageName, localeId)) {\n\t\tlocaleId = normalizeLocale(localeId);\n\n\t\twhile (useFallbackBundle(packageName, localeId)) {\n\t\t\tlocaleId = nextFallbackLocale(localeId);\n\t\t}\n\t}\n\n\t// use default language unless configured to always fetch it from the network\n\tconst fetchDefaultLanguage = getFetchDefaultLanguage();\n\tif (localeId === DEFAULT_LANGUAGE && !fetchDefaultLanguage) {\n\t\t_setI18nBundleData(packageName, null); // reset for the default language (if data was set for a previous language)\n\t\treturn;\n\t}\n\n\tif (!_hasLoader(packageName, localeId)) {\n\t\t_showAssetsWarningOnce(packageName);\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst data = await _loadMessageBundleOnce(packageName, localeId);\n\t\t_setI18nBundleData(packageName, data);\n\t} catch (error: unknown) {\n\t\tconst e = error as Error;\n\t\tif (!reportedErrors.has(e.message)) {\n\t\t\treportedErrors.add(e.message);\n\t\t\tconsole.error(e.message); /* eslint-disable-line */\n\t\t}\n\t}\n};\n\n// When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles\nattachLanguageChange((lang: string /* eslint-disable-line */) => {\n\tconst allPackages = [...bundleData.keys()];\n\treturn Promise.all(allPackages.map(fetchI18nBundle));\n});\n\nexport {\n\tregisterI18nLoader,\n\tfetchI18nBundle,\n\tgetI18nBundleData,\n};\n"]}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Supported icon collection aliases.
3
+ *
4
+ * Users might specify a collection, using both the key and the value in the following key-value pairs,
5
+ * e.g the following pairs are completely exchangeable:
6
+ *
7
+ * - "SAP-icons/accept" and "SAP-icons-v4/accept"
8
+ * - "horizon/accept" and "SAP-icons-v5/accept"
9
+ * - "SAP-icons-TNT/actor" and "tnt/actor"
10
+ * - "BusinessSuiteInAppSymbols/3d" and "business-suite/3d"
11
+ */
12
+ declare enum IconCollectionsAlias {
13
+ "SAP-icons" = "SAP-icons-v4",
14
+ "horizon" = "SAP-icons-v5",
15
+ "SAP-icons-TNT" = "tnt",
16
+ "BusinessSuiteInAppSymbols" = "business-suite"
17
+ }
18
+ /**
19
+ * Returns the collection name for a given alias:
20
+ *
21
+ * - "SAP-icons-TNT"resolves to "tnt"
22
+ * - "BusinessSuiteInAppSymbols" resolves to "business-suite"
23
+ * - "horizon" resolves to "SAP-icons-v5"
24
+ *
25
+ * @param { string } collectionName
26
+ * @return { string } the normalized collection name
27
+ */
28
+ declare const getIconCollectionByAlias: (collectionName: string) => string;
29
+ export default IconCollectionsAlias;
30
+ export { getIconCollectionByAlias, };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Supported icon collection aliases.
3
+ *
4
+ * Users might specify a collection, using both the key and the value in the following key-value pairs,
5
+ * e.g the following pairs are completely exchangeable:
6
+ *
7
+ * - "SAP-icons/accept" and "SAP-icons-v4/accept"
8
+ * - "horizon/accept" and "SAP-icons-v5/accept"
9
+ * - "SAP-icons-TNT/actor" and "tnt/actor"
10
+ * - "BusinessSuiteInAppSymbols/3d" and "business-suite/3d"
11
+ */
12
+ var IconCollectionsAlias;
13
+ (function (IconCollectionsAlias) {
14
+ IconCollectionsAlias["SAP-icons"] = "SAP-icons-v4";
15
+ IconCollectionsAlias["horizon"] = "SAP-icons-v5";
16
+ IconCollectionsAlias["SAP-icons-TNT"] = "tnt";
17
+ IconCollectionsAlias["BusinessSuiteInAppSymbols"] = "business-suite";
18
+ })(IconCollectionsAlias || (IconCollectionsAlias = {}));
19
+ /**
20
+ * Returns the collection name for a given alias:
21
+ *
22
+ * - "SAP-icons-TNT"resolves to "tnt"
23
+ * - "BusinessSuiteInAppSymbols" resolves to "business-suite"
24
+ * - "horizon" resolves to "SAP-icons-v5"
25
+ *
26
+ * @param { string } collectionName
27
+ * @return { string } the normalized collection name
28
+ */
29
+ const getIconCollectionByAlias = (collectionName) => {
30
+ if (IconCollectionsAlias[collectionName]) {
31
+ return IconCollectionsAlias[collectionName];
32
+ }
33
+ return collectionName;
34
+ };
35
+ export default IconCollectionsAlias;
36
+ export { getIconCollectionByAlias, };
37
+ //# sourceMappingURL=IconCollectionsAlias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconCollectionsAlias.js","sourceRoot":"","sources":["../../../src/asset-registries/util/IconCollectionsAlias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,IAAK,oBAKJ;AALD,WAAK,oBAAoB;IACxB,kDAA4B,CAAA;IAC5B,gDAA0B,CAAA;IAC1B,6CAAuB,CAAA;IACvB,oEAA8C,CAAA;AAC/C,CAAC,EALI,oBAAoB,KAApB,oBAAoB,QAKxB;AAED;;;;;;;;;GASG;AACH,MAAM,wBAAwB,GAAG,CAAC,cAAsB,EAAE,EAAE;IAC3D,IAAI,oBAAoB,CAAC,cAAmD,CAAC,EAAE;QAC9E,OAAO,oBAAoB,CAAC,cAAmD,CAAC,CAAC;KACjF;IAED,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC;AACpC,OAAO,EACN,wBAAwB,GACxB,CAAC","sourcesContent":["/**\n * Supported icon collection aliases.\n *\n * Users might specify a collection, using both the key and the value in the following key-value pairs,\n * e.g the following pairs are completely exchangeable:\n *\n * - \"SAP-icons/accept\" and \"SAP-icons-v4/accept\"\n * - \"horizon/accept\" and \"SAP-icons-v5/accept\"\n * - \"SAP-icons-TNT/actor\" and \"tnt/actor\"\n * - \"BusinessSuiteInAppSymbols/3d\" and \"business-suite/3d\"\n */\nenum IconCollectionsAlias {\n\t\"SAP-icons\" = \"SAP-icons-v4\",\n\t\"horizon\" = \"SAP-icons-v5\",\n\t\"SAP-icons-TNT\" = \"tnt\",\n\t\"BusinessSuiteInAppSymbols\" = \"business-suite\",\n}\n\n/**\n * Returns the collection name for a given alias:\n *\n * - \"SAP-icons-TNT\"resolves to \"tnt\"\n * - \"BusinessSuiteInAppSymbols\" resolves to \"business-suite\"\n * - \"horizon\" resolves to \"SAP-icons-v5\"\n *\n * @param { string } collectionName\n * @return { string } the normalized collection name\n */\nconst getIconCollectionByAlias = (collectionName: string) => {\n\tif (IconCollectionsAlias[collectionName as keyof typeof IconCollectionsAlias]) {\n\t\treturn IconCollectionsAlias[collectionName as keyof typeof IconCollectionsAlias];\n\t}\n\n\treturn collectionName;\n};\n\nexport default IconCollectionsAlias;\nexport {\n\tgetIconCollectionByAlias,\n};\n"]}
@@ -0,0 +1,20 @@
1
+ declare enum RegisteredIconCollection {
2
+ SAPIconsV4 = "SAP-icons-v4",
3
+ SAPIconsV5 = "SAP-icons-v5",
4
+ SAPIconsTNTV2 = "tnt-v2",
5
+ SAPIconsTNTV3 = "tnt-v3",
6
+ SAPBSIconsV1 = "business-suite-v1",
7
+ SAPBSIconsV2 = "business-suite-v2"
8
+ }
9
+ type ThemeToCollectionMap = {
10
+ [x: string]: string;
11
+ };
12
+ /**
13
+ * Registers collection version per theme.
14
+ * **For exmaple:** registerIconCollectionForTheme("my-custom-icons", {"sap_horizon": "my-custom-icons-v5"})
15
+ * @param { string } collectionName
16
+ * @param { ThemeToCollectionMap } themeCollectionMap
17
+ */
18
+ declare const registerIconCollectionForTheme: (collectionName: string, themeCollectionMap: ThemeToCollectionMap) => void;
19
+ declare const getIconCollectionForTheme: (collectionName: string) => string;
20
+ export { registerIconCollectionForTheme, getIconCollectionForTheme, RegisteredIconCollection, };
@@ -0,0 +1,42 @@
1
+ import { isLegacyThemeFamily } from "../../config/Theme.js";
2
+ var RegisteredIconCollection;
3
+ (function (RegisteredIconCollection) {
4
+ RegisteredIconCollection["SAPIconsV4"] = "SAP-icons-v4";
5
+ RegisteredIconCollection["SAPIconsV5"] = "SAP-icons-v5";
6
+ RegisteredIconCollection["SAPIconsTNTV2"] = "tnt-v2";
7
+ RegisteredIconCollection["SAPIconsTNTV3"] = "tnt-v3";
8
+ RegisteredIconCollection["SAPBSIconsV1"] = "business-suite-v1";
9
+ RegisteredIconCollection["SAPBSIconsV2"] = "business-suite-v2";
10
+ })(RegisteredIconCollection || (RegisteredIconCollection = {}));
11
+ const iconCollections = new Map();
12
+ iconCollections.set("SAP-icons", {
13
+ "legacy": RegisteredIconCollection.SAPIconsV4,
14
+ "sap_horizon": RegisteredIconCollection.SAPIconsV5,
15
+ });
16
+ iconCollections.set("tnt", {
17
+ "legacy": RegisteredIconCollection.SAPIconsTNTV2,
18
+ "sap_horizon": RegisteredIconCollection.SAPIconsTNTV3,
19
+ });
20
+ iconCollections.set("business-suite", {
21
+ "legacy": RegisteredIconCollection.SAPBSIconsV1,
22
+ "sap_horizon": RegisteredIconCollection.SAPBSIconsV2,
23
+ });
24
+ /**
25
+ * Registers collection version per theme.
26
+ * **For exmaple:** registerIconCollectionForTheme("my-custom-icons", {"sap_horizon": "my-custom-icons-v5"})
27
+ * @param { string } collectionName
28
+ * @param { ThemeToCollectionMap } themeCollectionMap
29
+ */
30
+ const registerIconCollectionForTheme = (collectionName, themeCollectionMap) => {
31
+ if (iconCollections.has(collectionName)) {
32
+ iconCollections.set(collectionName, { ...themeCollectionMap, ...iconCollections.get(collectionName) });
33
+ return;
34
+ }
35
+ iconCollections.set(collectionName, themeCollectionMap);
36
+ };
37
+ const getIconCollectionForTheme = (collectionName) => {
38
+ const themeFamily = isLegacyThemeFamily() ? "legacy" : "sap_horizon";
39
+ return iconCollections.has(collectionName) ? iconCollections.get(collectionName)[themeFamily] : collectionName;
40
+ };
41
+ export { registerIconCollectionForTheme, getIconCollectionForTheme, RegisteredIconCollection, };
42
+ //# sourceMappingURL=IconCollectionsByTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconCollectionsByTheme.js","sourceRoot":"","sources":["../../../src/asset-registries/util/IconCollectionsByTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,IAAK,wBAOJ;AAPD,WAAK,wBAAwB;IAC5B,uDAA2B,CAAA;IAC3B,uDAA2B,CAAA;IAC3B,oDAAwB,CAAA;IACxB,oDAAwB,CAAA;IACxB,8DAAkC,CAAA;IAClC,8DAAkC,CAAA;AACnC,CAAC,EAPI,wBAAwB,KAAxB,wBAAwB,QAO5B;AAID,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgC,CAAC;AAChE,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE;IAChC,QAAQ,EAAE,wBAAwB,CAAC,UAAU;IAC7C,aAAa,EAAE,wBAAwB,CAAC,UAAU;CAClD,CAAC,CAAC;AACH,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE;IAC1B,QAAQ,EAAE,wBAAwB,CAAC,aAAa;IAChD,aAAa,EAAE,wBAAwB,CAAC,aAAa;CACrD,CAAC,CAAC;AACH,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE;IACrC,QAAQ,EAAE,wBAAwB,CAAC,YAAY;IAC/C,aAAa,EAAE,wBAAwB,CAAC,YAAY;CACpD,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,8BAA8B,GAAG,CAAC,cAAsB,EAAE,kBAAwC,EAAE,EAAE;IAC3G,IAAI,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;QACxC,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,kBAAkB,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACvG,OAAO;KACP;IACD,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,cAAsB,EAAE,EAAE;IAC5D,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;IACrE,OAAO,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;AACjH,CAAC,CAAC;AAEF,OAAO,EACN,8BAA8B,EAC9B,yBAAyB,EACzB,wBAAwB,GACxB,CAAC","sourcesContent":["import { isLegacyThemeFamily } from \"../../config/Theme.js\";\n\nenum RegisteredIconCollection {\n\tSAPIconsV4 = \"SAP-icons-v4\",\n\tSAPIconsV5 = \"SAP-icons-v5\",\n\tSAPIconsTNTV2 = \"tnt-v2\",\n\tSAPIconsTNTV3 = \"tnt-v3\",\n\tSAPBSIconsV1 = \"business-suite-v1\",\n\tSAPBSIconsV2 = \"business-suite-v2\",\n}\n\ntype ThemeToCollectionMap = {[x: string]: string; };\n\nconst iconCollections = new Map<string, ThemeToCollectionMap>();\niconCollections.set(\"SAP-icons\", {\n\t\"legacy\": RegisteredIconCollection.SAPIconsV4,\n\t\"sap_horizon\": RegisteredIconCollection.SAPIconsV5,\n});\niconCollections.set(\"tnt\", {\n\t\"legacy\": RegisteredIconCollection.SAPIconsTNTV2,\n\t\"sap_horizon\": RegisteredIconCollection.SAPIconsTNTV3,\n});\niconCollections.set(\"business-suite\", {\n\t\"legacy\": RegisteredIconCollection.SAPBSIconsV1,\n\t\"sap_horizon\": RegisteredIconCollection.SAPBSIconsV2,\n});\n\n/**\n * Registers collection version per theme.\n * **For exmaple:** registerIconCollectionForTheme(\"my-custom-icons\", {\"sap_horizon\": \"my-custom-icons-v5\"})\n * @param { string } collectionName\n * @param { ThemeToCollectionMap } themeCollectionMap\n */\nconst registerIconCollectionForTheme = (collectionName: string, themeCollectionMap: ThemeToCollectionMap) => {\n\tif (iconCollections.has(collectionName)) {\n\t\ticonCollections.set(collectionName, { ...themeCollectionMap, ...iconCollections.get(collectionName) });\n\t\treturn;\n\t}\n\ticonCollections.set(collectionName, themeCollectionMap);\n};\n\nconst getIconCollectionForTheme = (collectionName: string) => {\n\tconst themeFamily = isLegacyThemeFamily() ? \"legacy\" : \"sap_horizon\";\n\treturn iconCollections.has(collectionName) ? iconCollections.get(collectionName)![themeFamily] : collectionName;\n};\n\nexport {\n\tregisterIconCollectionForTheme,\n\tgetIconCollectionForTheme,\n\tRegisteredIconCollection,\n};\n"]}
@@ -0,0 +1,13 @@
1
+ import type { IconCollection } from "../../config/Icons.js";
2
+ /**
3
+ * Returns the effective theme dependant icon collection:
4
+ *
5
+ * - "no collection" resolves to "SAP-icons-v4" in "Quartz" and to "SAP-icons-v5" in "Horizon"
6
+ * - "tnt" (and its alias "SAP-icons-TNT") resolves to "tnt-v2" in "Quartz" and resolves to "tnt-v3" in "Horizon"
7
+ * - "business-suite" (and its alias "BusinessSuiteInAppSymbols") resolves to "business-suite-v1" in "Quartz" and resolves to "business-suite-v2" in "Horizon"
8
+ *
9
+ * @param { IconCollection } collectionName
10
+ * @returns { IconCollection } the effective collection name
11
+ */
12
+ declare const getEffectiveIconCollection: (collectionName?: IconCollection) => IconCollection;
13
+ export default getEffectiveIconCollection;
@@ -0,0 +1,29 @@
1
+ import { getTheme } from "../../config/Theme.js";
2
+ import { getDefaultIconCollection } from "../../config/Icons.js";
3
+ import { getIconCollectionByAlias } from "./IconCollectionsAlias.js";
4
+ import { getIconCollectionForTheme } from "./IconCollectionsByTheme.js";
5
+ /**
6
+ * Returns the effective theme dependant icon collection:
7
+ *
8
+ * - "no collection" resolves to "SAP-icons-v4" in "Quartz" and to "SAP-icons-v5" in "Horizon"
9
+ * - "tnt" (and its alias "SAP-icons-TNT") resolves to "tnt-v2" in "Quartz" and resolves to "tnt-v3" in "Horizon"
10
+ * - "business-suite" (and its alias "BusinessSuiteInAppSymbols") resolves to "business-suite-v1" in "Quartz" and resolves to "business-suite-v2" in "Horizon"
11
+ *
12
+ * @param { IconCollection } collectionName
13
+ * @returns { IconCollection } the effective collection name
14
+ */
15
+ const getEffectiveIconCollection = (collectionName) => {
16
+ const defaultIconCollection = getDefaultIconCollection(getTheme());
17
+ // no collection + default collection, configured via setDefaultIconCollection - return the configured icon collection.
18
+ if (!collectionName && defaultIconCollection) {
19
+ return getIconCollectionByAlias(defaultIconCollection);
20
+ }
21
+ // no collection - return "SAP-icons-v4" or "SAP-icons-v5".
22
+ if (!collectionName) {
23
+ return getIconCollectionForTheme("SAP-icons");
24
+ }
25
+ // has collection - return "SAP-icons-v4", "SAP-icons-v5", "tnt-v1", "tnt-v2", "business-suite-v1", "business-suite-v2", or custom ones.
26
+ return getIconCollectionForTheme(collectionName);
27
+ };
28
+ export default getEffectiveIconCollection;
29
+ //# sourceMappingURL=getIconCollectionByTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIconCollectionByTheme.js","sourceRoot":"","sources":["../../../src/asset-registries/util/getIconCollectionByTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;;;;;;;GASG;AACH,MAAM,0BAA0B,GAAG,CAAC,cAA+B,EAAkB,EAAE;IACtF,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnE,uHAAuH;IACvH,IAAI,CAAC,cAAc,IAAI,qBAAqB,EAAE;QAC7C,OAAO,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;KACvD;IAED,4DAA4D;IAC5D,IAAI,CAAC,cAAc,EAAE;QACpB,OAAO,yBAAyB,CAAC,WAAW,CAAC,CAAC;KAC9C;IAED,wIAAwI;IACxI,OAAO,yBAAyB,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,eAAe,0BAA0B,CAAC","sourcesContent":["import { getTheme } from \"../../config/Theme.js\";\nimport type { IconCollection } from \"../../config/Icons.js\";\nimport { getDefaultIconCollection } from \"../../config/Icons.js\";\nimport { getIconCollectionByAlias } from \"./IconCollectionsAlias.js\";\nimport { getIconCollectionForTheme } from \"./IconCollectionsByTheme.js\";\n\n/**\n * Returns the effective theme dependant icon collection:\n *\n * - \"no collection\" resolves to \"SAP-icons-v4\" in \"Quartz\" and to \"SAP-icons-v5\" in \"Horizon\"\n * - \"tnt\" (and its alias \"SAP-icons-TNT\") resolves to \"tnt-v2\" in \"Quartz\" and resolves to \"tnt-v3\" in \"Horizon\"\n * - \"business-suite\" (and its alias \"BusinessSuiteInAppSymbols\") resolves to \"business-suite-v1\" in \"Quartz\" and resolves to \"business-suite-v2\" in \"Horizon\"\n *\n * @param { IconCollection } collectionName\n * @returns { IconCollection } the effective collection name\n */\nconst getEffectiveIconCollection = (collectionName?: IconCollection): IconCollection => {\n\tconst defaultIconCollection = getDefaultIconCollection(getTheme());\n\n\t// no collection + default collection, configured via setDefaultIconCollection - return the configured icon collection.\n\tif (!collectionName && defaultIconCollection) {\n\t\treturn getIconCollectionByAlias(defaultIconCollection);\n\t}\n\n\t// no collection - return \"SAP-icons-v4\" or \"SAP-icons-v5\".\n\tif (!collectionName) {\n\t\treturn getIconCollectionForTheme(\"SAP-icons\");\n\t}\n\n\t// has collection - return \"SAP-icons-v4\", \"SAP-icons-v5\", \"tnt-v1\", \"tnt-v2\", \"business-suite-v1\", \"business-suite-v2\", or custom ones.\n\treturn getIconCollectionForTheme(collectionName);\n};\n\nexport default getEffectiveIconCollection;\n"]}
@@ -0,0 +1,14 @@
1
+ import AnimationMode from "../types/AnimationMode.js";
2
+ /**
3
+ * Returns the animation mode - "full", "basic", "minimal" or "none".
4
+ * @public
5
+ * @returns { AnimationMode }
6
+ */
7
+ declare const getAnimationMode: () => `${AnimationMode}`;
8
+ /**
9
+ * Sets the animation mode - "full", "basic", "minimal" or "none".
10
+ * @public
11
+ * @param { AnimationMode } animationMode
12
+ */
13
+ declare const setAnimationMode: (animationMode: `${AnimationMode}`) => void;
14
+ export { getAnimationMode, setAnimationMode, };
@@ -1,13 +1,27 @@
1
1
  import { getAnimationMode as getConfiguredAnimationMode } from "../InitialConfiguration.js";
2
-
3
- let animationMode;
4
-
2
+ import AnimationMode from "../types/AnimationMode.js";
3
+ let curAnimationMode;
4
+ /**
5
+ * Returns the animation mode - "full", "basic", "minimal" or "none".
6
+ * @public
7
+ * @returns { AnimationMode }
8
+ */
5
9
  const getAnimationMode = () => {
6
- if (animationMode === undefined) {
7
- animationMode = getConfiguredAnimationMode();
8
- }
9
-
10
- return animationMode;
10
+ if (curAnimationMode === undefined) {
11
+ curAnimationMode = getConfiguredAnimationMode();
12
+ }
13
+ return curAnimationMode;
11
14
  };
12
-
13
- export { getAnimationMode }; // eslint-disable-line
15
+ /**
16
+ * Sets the animation mode - "full", "basic", "minimal" or "none".
17
+ * @public
18
+ * @param { AnimationMode } animationMode
19
+ */
20
+ const setAnimationMode = (animationMode) => {
21
+ const options = Object.values(AnimationMode);
22
+ if (options.includes(animationMode)) {
23
+ curAnimationMode = animationMode;
24
+ }
25
+ };
26
+ export { getAnimationMode, setAnimationMode, };
27
+ //# sourceMappingURL=AnimationMode.js.map