@ui5/webcomponents-base 0.0.0-e463d2345 → 0.0.0-e818f286e

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 (469) hide show
  1. package/.eslintignore +4 -0
  2. package/CHANGELOG.md +437 -0
  3. package/README.md +53 -7
  4. package/bundle.esm.js +24 -20
  5. package/dist/AssetRegistry.js +8 -6
  6. package/dist/Boot.js +59 -0
  7. package/dist/CSP.js +59 -0
  8. package/dist/CustomElementsRegistry.js +95 -0
  9. package/dist/CustomElementsScope.js +30 -0
  10. package/dist/CustomElementsScopeUtils.js +108 -0
  11. package/dist/DOMObserver.js +65 -0
  12. package/dist/Device.js +71 -773
  13. package/dist/EventProvider.js +38 -26
  14. package/dist/FeaturesRegistry.js +4 -1
  15. package/dist/FontFace.js +20 -56
  16. package/dist/InitialConfiguration.js +64 -17
  17. package/dist/Keys.js +295 -0
  18. package/dist/ManagedStyles.js +83 -0
  19. package/dist/MediaRange.js +109 -0
  20. package/dist/PropertiesFileFormat.js +95 -0
  21. package/dist/Render.js +175 -0
  22. package/dist/RenderQueue.js +41 -17
  23. package/dist/RenderScheduler.js +24 -145
  24. package/dist/Runtimes.js +107 -0
  25. package/dist/StaticArea.js +2 -34
  26. package/dist/StaticAreaItem.js +69 -35
  27. package/dist/SystemCSSVars.js +10 -0
  28. package/dist/Theming.js +3 -44
  29. package/dist/UI5Element.js +497 -306
  30. package/dist/UI5ElementMetadata.js +198 -19
  31. package/dist/asset-registries/Icons.js +125 -14
  32. package/dist/asset-registries/Illustrations.js +30 -0
  33. package/dist/asset-registries/LocaleData.js +114 -51
  34. package/dist/asset-registries/Themes.js +37 -30
  35. package/dist/asset-registries/i18n.js +81 -33
  36. package/dist/assets/bundle.esm.81ba431e.js +43 -0
  37. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  38. package/dist/config/AnimationMode.js +16 -2
  39. package/dist/config/CalendarType.js +7 -7
  40. package/dist/config/FormatSettings.js +5 -1
  41. package/dist/config/Icons.js +52 -0
  42. package/dist/config/Language.js +62 -3
  43. package/dist/config/NoConflict.js +10 -3
  44. package/dist/config/Theme.js +32 -3
  45. package/dist/css/BusyIndicator.css +80 -0
  46. package/dist/css/FontFace.css +75 -0
  47. package/dist/css/OverrideFontFace.css +32 -0
  48. package/dist/css/SystemCSSVars.css +17 -0
  49. package/dist/delegate/ItemNavigation.js +249 -127
  50. package/dist/delegate/ResizeHandler.js +78 -38
  51. package/dist/delegate/ScrollEnablement.js +122 -14
  52. package/dist/features/F6Navigation.js +110 -0
  53. package/dist/features/OpenUI5Enablement.js +119 -0
  54. package/dist/features/OpenUI5Support.js +125 -0
  55. package/dist/generated/AssetParameters.js +13 -0
  56. package/dist/generated/VersionInfo.js +10 -0
  57. package/dist/generated/css/BusyIndicator.css.js +5 -0
  58. package/dist/generated/css/FontFace.css.js +5 -0
  59. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  60. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  61. package/dist/getSharedResource.js +30 -0
  62. package/dist/i18nBundle.js +62 -11
  63. package/{src → dist/locale}/Locale.js +0 -10
  64. package/dist/locale/RTLAwareRegistry.js +14 -0
  65. package/dist/locale/applyDirection.js +17 -0
  66. package/dist/locale/directionChange.js +32 -0
  67. package/dist/locale/getEffectiveDir.js +28 -0
  68. package/dist/locale/getLocale.js +41 -0
  69. package/dist/locale/languageChange.js +22 -0
  70. package/dist/locale/nextFallbackLocale.js +28 -0
  71. package/dist/{util → locale}/normalizeLocale.js +8 -31
  72. package/dist/renderer/LitRenderer.js +44 -7
  73. package/dist/renderer/directives/style-map.js +72 -0
  74. package/dist/renderer/executeTemplate.js +34 -0
  75. package/dist/sap/base/Log.js +241 -0
  76. package/dist/sap/base/assert.js +8 -0
  77. package/dist/sap/base/security/URLListValidator.js +148 -0
  78. package/dist/sap/base/security/encodeCSS.js +14 -0
  79. package/dist/sap/base/security/encodeXML.js +23 -0
  80. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  81. package/dist/sap/base/strings/toHex.js +8 -0
  82. package/dist/sap/base/util/now.js +7 -0
  83. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  84. package/dist/theming/CustomStyle.js +47 -6
  85. package/dist/theming/ThemeLoaded.js +22 -0
  86. package/dist/theming/applyTheme.js +79 -0
  87. package/dist/theming/getConstructableStyle.js +30 -0
  88. package/dist/theming/getEffectiveLinksHrefs.js +27 -0
  89. package/dist/theming/getEffectiveStyle.js +39 -0
  90. package/dist/theming/getStylesString.js +15 -0
  91. package/dist/theming/getThemeDesignerTheme.js +87 -0
  92. package/dist/theming/preloadLinks.js +23 -0
  93. package/dist/thirdparty/_merge.js +32 -0
  94. package/dist/thirdparty/isPlainObject.js +18 -0
  95. package/dist/thirdparty/merge.js +10 -0
  96. package/dist/types/CSSColor.js +9 -0
  97. package/dist/{dates → types}/CalendarType.js +2 -2
  98. package/dist/types/DataType.js +13 -1
  99. package/dist/types/Float.js +14 -0
  100. package/dist/types/Integer.js +4 -0
  101. package/dist/types/InvisibleMessageMode.js +30 -0
  102. package/dist/types/ItemNavigationBehavior.js +2 -7
  103. package/dist/types/NavigationMode.js +1 -0
  104. package/dist/types/PopupState.js +1 -1
  105. package/dist/types/ValueState.js +2 -1
  106. package/dist/updateShadowRoot.js +29 -0
  107. package/dist/util/AriaLabelHelper.js +39 -0
  108. package/dist/util/Caret.js +32 -0
  109. package/dist/util/ColorConversion.js +398 -0
  110. package/dist/util/FocusableElements.js +30 -11
  111. package/dist/util/HTMLSanitizer.js +7 -0
  112. package/dist/util/InvisibleMessage.js +69 -0
  113. package/dist/util/PopupUtils.js +93 -0
  114. package/dist/util/SlotsHelper.js +43 -0
  115. package/dist/util/StringHelper.js +17 -2
  116. package/dist/util/TabbableElements.js +9 -2
  117. package/dist/util/arraysAreEqual.js +15 -0
  118. package/dist/util/clamp.js +12 -0
  119. package/dist/util/createLinkInHead.js +19 -0
  120. package/dist/util/debounce.js +17 -0
  121. package/dist/util/detectNavigatorLanguage.js +3 -1
  122. package/dist/util/escapeRegex.js +10 -0
  123. package/dist/util/generateHighlightedMarkup.js +42 -0
  124. package/dist/util/getActiveElement.js +11 -0
  125. package/dist/util/getClassCopy.js +10 -0
  126. package/dist/util/getEffectiveContentDensity.js +5 -0
  127. package/dist/util/getFileExtension.js +21 -0
  128. package/dist/util/getNormalizedTarget.js +16 -0
  129. package/dist/util/getSingletonElementInstance.js +13 -0
  130. package/dist/util/isDefaultSlotProvided.js +11 -0
  131. package/dist/util/isElementInView.js +15 -0
  132. package/dist/util/isNodeHidden.js +1 -5
  133. package/dist/util/isNodeTabbable.js +4 -4
  134. package/dist/util/isValidPropertyName.js +11 -2
  135. package/dist/util/setToArray.js +10 -0
  136. package/hash.txt +1 -0
  137. package/index.js +1 -1
  138. package/lib/generate-asset-parameters/index.js +25 -0
  139. package/lib/generate-styles/index.js +26 -0
  140. package/lib/generate-version-info/index.js +32 -0
  141. package/package-scripts.js +41 -27
  142. package/package.json +22 -14
  143. package/src/AssetRegistry.js +8 -6
  144. package/src/Boot.js +59 -0
  145. package/src/CSP.js +59 -0
  146. package/src/CustomElementsRegistry.js +95 -0
  147. package/src/CustomElementsScope.js +30 -0
  148. package/src/CustomElementsScopeUtils.js +108 -0
  149. package/src/DOMObserver.js +65 -0
  150. package/src/Device.js +71 -773
  151. package/src/EventProvider.js +38 -26
  152. package/src/FeaturesRegistry.js +4 -1
  153. package/src/FontFace.js +20 -56
  154. package/src/InitialConfiguration.js +64 -17
  155. package/src/Keys.js +295 -0
  156. package/src/ManagedStyles.js +83 -0
  157. package/src/MediaRange.js +109 -0
  158. package/src/PropertiesFileFormat.js +95 -0
  159. package/src/Render.js +175 -0
  160. package/src/RenderQueue.js +41 -17
  161. package/src/RenderScheduler.js +24 -145
  162. package/src/Runtimes.js +107 -0
  163. package/src/StaticArea.js +2 -34
  164. package/src/StaticAreaItem.js +69 -35
  165. package/src/SystemCSSVars.js +10 -0
  166. package/src/Theming.js +3 -44
  167. package/src/UI5Element.js +497 -306
  168. package/src/UI5ElementMetadata.js +198 -19
  169. package/src/asset-registries/Icons.js +125 -14
  170. package/src/asset-registries/Illustrations.js +30 -0
  171. package/src/asset-registries/LocaleData.js +114 -51
  172. package/src/asset-registries/Themes.js +37 -30
  173. package/src/asset-registries/i18n.js +81 -33
  174. package/src/assets-meta/IconCollectionsAlias.js +18 -0
  175. package/src/config/AnimationMode.js +16 -2
  176. package/src/config/CalendarType.js +7 -7
  177. package/src/config/FormatSettings.js +5 -1
  178. package/src/config/Icons.js +52 -0
  179. package/src/config/Language.js +62 -3
  180. package/src/config/NoConflict.js +10 -3
  181. package/src/config/Theme.js +32 -3
  182. package/src/css/BusyIndicator.css +80 -0
  183. package/src/css/FontFace.css +75 -0
  184. package/src/css/OverrideFontFace.css +32 -0
  185. package/src/css/SystemCSSVars.css +17 -0
  186. package/src/delegate/ItemNavigation.js +249 -127
  187. package/src/delegate/ResizeHandler.js +78 -38
  188. package/src/delegate/ScrollEnablement.js +122 -14
  189. package/src/features/F6Navigation.js +110 -0
  190. package/src/features/OpenUI5Enablement.js +119 -0
  191. package/src/features/OpenUI5Support.js +125 -0
  192. package/src/getSharedResource.js +30 -0
  193. package/src/i18nBundle.js +62 -11
  194. package/{dist → src/locale}/Locale.js +0 -10
  195. package/src/locale/RTLAwareRegistry.js +14 -0
  196. package/src/locale/applyDirection.js +17 -0
  197. package/src/locale/directionChange.js +32 -0
  198. package/src/locale/getEffectiveDir.js +28 -0
  199. package/src/locale/getLocale.js +41 -0
  200. package/src/locale/languageChange.js +22 -0
  201. package/src/locale/nextFallbackLocale.js +28 -0
  202. package/src/{util → locale}/normalizeLocale.js +8 -31
  203. package/src/renderer/LitRenderer.js +44 -7
  204. package/src/renderer/directives/style-map.js +72 -0
  205. package/src/renderer/executeTemplate.js +34 -0
  206. package/src/theming/CustomStyle.js +47 -6
  207. package/src/theming/ThemeLoaded.js +22 -0
  208. package/src/theming/applyTheme.js +79 -0
  209. package/src/theming/getConstructableStyle.js +30 -0
  210. package/src/theming/getEffectiveLinksHrefs.js +27 -0
  211. package/src/theming/getEffectiveStyle.js +39 -0
  212. package/src/theming/getStylesString.js +15 -0
  213. package/src/theming/getThemeDesignerTheme.js +87 -0
  214. package/src/theming/preloadLinks.js +23 -0
  215. package/src/thirdparty/_merge.js +32 -0
  216. package/src/thirdparty/isPlainObject.js +18 -0
  217. package/src/thirdparty/merge.js +10 -0
  218. package/src/types/CSSColor.js +9 -0
  219. package/src/{dates → types}/CalendarType.js +2 -2
  220. package/src/types/DataType.js +13 -1
  221. package/src/types/Float.js +14 -0
  222. package/src/types/Integer.js +4 -0
  223. package/src/types/InvisibleMessageMode.js +30 -0
  224. package/src/types/ItemNavigationBehavior.js +2 -7
  225. package/src/types/NavigationMode.js +1 -0
  226. package/src/types/PopupState.js +1 -1
  227. package/src/types/ValueState.js +2 -1
  228. package/src/updateShadowRoot.js +29 -0
  229. package/src/util/AriaLabelHelper.js +39 -0
  230. package/src/util/Caret.js +32 -0
  231. package/src/util/ColorConversion.js +398 -0
  232. package/src/util/FocusableElements.js +30 -11
  233. package/src/util/HTMLSanitizer.js +7 -0
  234. package/src/util/InvisibleMessage.js +69 -0
  235. package/src/util/PopupUtils.js +93 -0
  236. package/src/util/SlotsHelper.js +43 -0
  237. package/src/util/StringHelper.js +17 -2
  238. package/src/util/TabbableElements.js +9 -2
  239. package/src/util/arraysAreEqual.js +15 -0
  240. package/src/util/clamp.js +12 -0
  241. package/src/util/createLinkInHead.js +19 -0
  242. package/src/util/debounce.js +17 -0
  243. package/src/util/detectNavigatorLanguage.js +3 -1
  244. package/src/util/escapeRegex.js +10 -0
  245. package/src/util/generateHighlightedMarkup.js +42 -0
  246. package/src/util/getActiveElement.js +11 -0
  247. package/src/util/getClassCopy.js +10 -0
  248. package/src/util/getEffectiveContentDensity.js +5 -0
  249. package/src/util/getFileExtension.js +21 -0
  250. package/src/util/getNormalizedTarget.js +16 -0
  251. package/src/util/getSingletonElementInstance.js +13 -0
  252. package/src/util/isDefaultSlotProvided.js +11 -0
  253. package/src/util/isElementInView.js +15 -0
  254. package/src/util/isNodeHidden.js +1 -5
  255. package/src/util/isNodeTabbable.js +4 -4
  256. package/src/util/isValidPropertyName.js +11 -2
  257. package/src/util/setToArray.js +10 -0
  258. package/used-modules.txt +10 -0
  259. package/bundle.es5.js +0 -28
  260. package/config/.eslintrc.js +0 -3
  261. package/config/rollup.config.js +0 -1
  262. package/dist/Assets.js +0 -2
  263. package/dist/CSS.js +0 -48
  264. package/dist/FormatSettings.js +0 -31
  265. package/dist/LocaleProvider.js +0 -34
  266. package/dist/ResourceLoaderOverrides.js +0 -38
  267. package/dist/SVGIconRegistry.js +0 -54
  268. package/dist/boot.js +0 -25
  269. package/dist/compatibility/DOMObserver.js +0 -62
  270. package/dist/compatibility/patchNodeValue.js +0 -24
  271. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  272. package/dist/dates/CalendarDate.js +0 -203
  273. package/dist/dates/CalendarUtils.js +0 -99
  274. package/dist/delegate/CustomResize.js +0 -78
  275. package/dist/delegate/NativeResize.js +0 -44
  276. package/dist/events/PseudoEvents.js +0 -58
  277. package/dist/features/browsersupport/Edge.js +0 -6
  278. package/dist/features/browsersupport/IE11.js +0 -41
  279. package/dist/features/calendar/Buddhist.js +0 -1
  280. package/dist/features/calendar/Islamic.js +0 -1
  281. package/dist/features/calendar/Japanese.js +0 -1
  282. package/dist/features/calendar/Persian.js +0 -1
  283. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  284. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  285. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  286. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  287. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  288. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  289. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  290. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  291. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  292. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  293. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  294. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  295. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  296. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  297. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  298. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  299. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  300. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  301. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  302. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  303. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  304. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  305. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  306. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  307. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  308. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  309. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  310. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  311. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  312. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  313. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  314. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  315. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  316. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  317. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  318. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  319. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  320. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  321. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  322. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  323. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  324. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  325. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  326. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  327. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  328. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  329. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  330. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  331. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  332. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  333. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  334. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  335. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  336. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  337. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  338. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  339. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  340. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  341. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  342. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  343. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  344. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  345. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  346. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  347. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  348. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  349. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  350. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  351. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  352. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  353. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  354. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  355. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  356. package/dist/json-imports/LocaleData.js +0 -171
  357. package/dist/renderer/ifDefined.js +0 -21
  358. package/dist/resources/bundle.es5.js +0 -12643
  359. package/dist/resources/bundle.es5.js.map +0 -1
  360. package/dist/resources/bundle.esm.js +0 -7450
  361. package/dist/resources/bundle.esm.js.map +0 -1
  362. package/dist/shims/Core-shim.js +0 -52
  363. package/dist/shims/jquery-shim.js +0 -89
  364. package/dist/test-resources/assets/Themes.js +0 -11
  365. package/dist/test-resources/elements/Child.js +0 -35
  366. package/dist/test-resources/elements/Generic.js +0 -83
  367. package/dist/test-resources/elements/GenericExt.js +0 -26
  368. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  369. package/dist/test-resources/elements/Parent.js +0 -36
  370. package/dist/test-resources/pages/AllTestElements.html +0 -42
  371. package/dist/test-resources/pages/Configuration.html +0 -20
  372. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  373. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  374. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  375. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  376. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  377. package/dist/test-resources/specs/Theming.spec.js +0 -31
  378. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  379. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  380. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  381. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  382. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  383. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  384. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  385. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  386. package/dist/theming/StyleInjection.js +0 -67
  387. package/dist/thirdparty/Array.from.js +0 -16
  388. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  389. package/dist/thirdparty/Array.prototype.find.js +0 -46
  390. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  391. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  392. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  393. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  394. package/dist/thirdparty/Number.isInteger.js +0 -5
  395. package/dist/thirdparty/Number.isNaN.js +0 -1
  396. package/dist/thirdparty/Number.parseInt.js +0 -1
  397. package/dist/thirdparty/Object.assign.js +0 -31
  398. package/dist/thirdparty/Object.entries.js +0 -11
  399. package/dist/thirdparty/Symbol.js +0 -2
  400. package/dist/thirdparty/WeakSet.js +0 -27
  401. package/dist/thirdparty/events-polyfills.js +0 -89
  402. package/dist/thirdparty/fetch.js +0 -1
  403. package/dist/thirdparty/template.js +0 -600
  404. package/dist/util/CSSTransformUtils.js +0 -90
  405. package/dist/webcomponentsjs/LICENSE.md +0 -19
  406. package/dist/webcomponentsjs/README.md +0 -229
  407. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  408. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  409. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  410. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  411. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  412. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  413. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  414. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  415. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  416. package/dist/webcomponentsjs/package.json +0 -46
  417. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  418. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  419. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  420. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  421. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  422. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  423. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  424. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  425. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  426. package/src/Assets.js +0 -2
  427. package/src/CSS.js +0 -48
  428. package/src/FormatSettings.js +0 -31
  429. package/src/LocaleProvider.js +0 -34
  430. package/src/ResourceLoaderOverrides.js +0 -38
  431. package/src/SVGIconRegistry.js +0 -54
  432. package/src/boot.js +0 -25
  433. package/src/compatibility/DOMObserver.js +0 -62
  434. package/src/compatibility/patchNodeValue.js +0 -24
  435. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  436. package/src/dates/CalendarDate.js +0 -203
  437. package/src/dates/CalendarUtils.js +0 -99
  438. package/src/delegate/CustomResize.js +0 -78
  439. package/src/delegate/NativeResize.js +0 -44
  440. package/src/events/PseudoEvents.js +0 -58
  441. package/src/features/browsersupport/Edge.js +0 -6
  442. package/src/features/browsersupport/IE11.js +0 -41
  443. package/src/features/calendar/Buddhist.js +0 -1
  444. package/src/features/calendar/Islamic.js +0 -1
  445. package/src/features/calendar/Japanese.js +0 -1
  446. package/src/features/calendar/Persian.js +0 -1
  447. package/src/json-imports/LocaleData.js +0 -171
  448. package/src/renderer/ifDefined.js +0 -21
  449. package/src/shims/Core-shim.js +0 -52
  450. package/src/shims/jquery-shim.js +0 -89
  451. package/src/theming/StyleInjection.js +0 -67
  452. package/src/thirdparty/Array.from.js +0 -16
  453. package/src/thirdparty/Array.prototype.fill.js +0 -44
  454. package/src/thirdparty/Array.prototype.find.js +0 -46
  455. package/src/thirdparty/Array.prototype.includes.js +0 -51
  456. package/src/thirdparty/Element.prototype.closest.js +0 -11
  457. package/src/thirdparty/Element.prototype.matches.js +0 -6
  458. package/src/thirdparty/Map.prototype.keys.js +0 -9
  459. package/src/thirdparty/Number.isInteger.js +0 -5
  460. package/src/thirdparty/Number.isNaN.js +0 -1
  461. package/src/thirdparty/Number.parseInt.js +0 -1
  462. package/src/thirdparty/Object.assign.js +0 -31
  463. package/src/thirdparty/Object.entries.js +0 -11
  464. package/src/thirdparty/Symbol.js +0 -2
  465. package/src/thirdparty/WeakSet.js +0 -27
  466. package/src/thirdparty/events-polyfills.js +0 -89
  467. package/src/thirdparty/fetch.js +0 -1
  468. package/src/thirdparty/template.js +0 -600
  469. package/src/util/CSSTransformUtils.js +0 -90
@@ -1,7 +1,7 @@
1
- import { fetchJsonOnce } from "../util/FetchHelper.js";
1
+ import { DEFAULT_THEME } from "../generated/AssetParameters.js";
2
2
 
3
- const themeURLs = new Map();
4
3
  const themeStyles = new Map();
4
+ const loaders = new Map();
5
5
  const registeredPackages = new Set();
6
6
  const registeredThemes = new Set();
7
7
 
@@ -13,63 +13,70 @@ const registeredThemes = new Set();
13
13
  * Example usage:
14
14
  * 1) Pass the CSS Vars as a string directly.
15
15
  * registerThemeProperties("my-package", "my_theme", ":root{--var1: red;}");
16
- * 2) Pass the CSS Vars as an object directly
17
- * registerThemeProperties("my-package", "my_theme", {"_": ":root{--var1: red;}"});
18
- * 3) Pass a URL to a JSON file, containing the CSS Vars in its "_" property. Will be fetched on demand, not upon registration.
19
- * registerThemeProperties("my-package", "my_theme", "http://url/to/my/theme.json");
20
16
  *
21
17
  * @public
22
18
  * @param packageName - the NPM package for which CSS Vars are registered
23
19
  * @param themeName - the theme which the CSS Vars implement
24
- * @param style - can be one of three options: a string, an object with a "_" property or a URL to a JSON file with a "_" property
20
+ * @param style - the style content directly
21
+ * @deprecated
25
22
  */
26
- const registerThemeProperties = (packageName, themeName, style) => {
27
- if (style._) {
28
- // JSON object like ({"_": ":root"})
29
- themeStyles.set(`${packageName}_${themeName}`, style._);
30
- } else if (style.includes(":root")) {
31
- // pure string
32
- themeStyles.set(`${packageName}_${themeName}`, style);
33
- } else {
34
- // url for fetching
35
- themeURLs.set(`${packageName}_${themeName}`, style);
36
- }
23
+ const registerThemeProperties = (_packageName, _themeName, _style) => {
24
+ throw new Error("`registerThemeProperties` has been depracated. Use `registerThemePropertiesLoader` instead.");
25
+ };
26
+
27
+ const registerThemePropertiesLoader = (packageName, themeName, loader) => {
28
+ loaders.set(`${packageName}/${themeName}`, loader);
37
29
  registeredPackages.add(packageName);
38
30
  registeredThemes.add(themeName);
39
31
  };
40
32
 
41
33
  const getThemeProperties = async (packageName, themeName) => {
42
34
  const style = themeStyles.get(`${packageName}_${themeName}`);
43
- if (style) {
35
+ if (style !== undefined) { // it's valid for style to be an empty string
44
36
  return style;
45
37
  }
46
38
 
47
39
  if (!registeredThemes.has(themeName)) {
48
40
  const regThemesStr = [...registeredThemes.values()].join(", ");
49
- console.warn(`You have requested a non-registered theme - falling back to sap_fiori_3. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
50
- return themeStyles.get(`${packageName}_sap_fiori_3`);
41
+ console.warn(`You have requested a non-registered theme ${themeName} - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
42
+ return _getThemeProperties(packageName, DEFAULT_THEME);
51
43
  }
52
44
 
53
- const data = await fetchThemeProperties(packageName, themeName);
54
- themeStyles.set(`${packageName}_${themeName}`, data._);
55
- return data._;
45
+ return _getThemeProperties(packageName, themeName);
56
46
  };
57
47
 
58
- const fetchThemeProperties = async (packageName, themeName) => {
59
- const url = themeURLs.get(`${packageName}_${themeName}`);
60
-
61
- if (!url) {
62
- throw new Error(`You have to import the ${packageName}/dist/Assets.js module to switch to additional themes`);
48
+ const _getThemeProperties = async (packageName, themeName) => {
49
+ const loader = loaders.get(`${packageName}/${themeName}`);
50
+ if (!loader) {
51
+ // no themes for package
52
+ console.error(`Theme [${themeName}] not registered for package [${packageName}]`); /* eslint-disable-line */
53
+ return;
63
54
  }
64
- return fetchJsonOnce(url);
55
+ let data;
56
+ try {
57
+ data = await loader(themeName);
58
+ } catch (e) {
59
+ console.error(packageName, e.message); /* eslint-disable-line */
60
+ return;
61
+ }
62
+ const themeProps = data._ || data;
63
+
64
+ themeStyles.set(`${packageName}_${themeName}`, themeProps);
65
+ return themeProps;
65
66
  };
66
67
 
67
68
  const getRegisteredPackages = () => {
68
69
  return registeredPackages;
69
70
  };
70
71
 
72
+ const isThemeRegistered = theme => {
73
+ return registeredThemes.has(theme);
74
+ };
75
+
71
76
  export {
77
+ registerThemePropertiesLoader,
72
78
  registerThemeProperties,
73
79
  getThemeProperties,
74
80
  getRegisteredPackages,
81
+ isThemeRegistered,
75
82
  };
@@ -1,19 +1,33 @@
1
- import "../shims/jquery-shim.js";
2
- import "../shims/Core-shim.js";
3
- import { getLanguage } from "../LocaleProvider.js";
4
- import { fetchJsonOnce } from "../util/FetchHelper.js";
5
- import { normalizeLocale, nextFallbackLocale } from "../util/normalizeLocale.js";
1
+ import getLocale from "../locale/getLocale.js";
2
+ import { attachLanguageChange } from "../locale/languageChange.js";
3
+ import normalizeLocale from "../locale/normalizeLocale.js";
4
+ import nextFallbackLocale from "../locale/nextFallbackLocale.js";
5
+ import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
6
+ import { getFetchDefaultLanguage } from "../config/Language.js";
7
+
8
+ // contains package names for which the warning has been shown
9
+ const warningShown = new Set();
10
+ const reportedErrors = new Set();
6
11
 
7
12
  const bundleData = new Map();
8
- const bundleURLs = new Map();
13
+ const bundlePromises = new Map();
14
+ const loaders = new Map();
9
15
 
10
16
  /**
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
17
+ * Registers i18n loader function for given package and locale.
18
+ *
14
19
  * @public
20
+ * @param {string} packageName for which package this loader can fetch data
21
+ * @param {string} localeId locale that this loader can handle
22
+ * @param {function} loader async function that will be passed a localeId and should return a JSON object
15
23
  */
16
- const setI18nBundleData = (packageName, data) => {
24
+ const registerI18nLoader = (packageName, localeId, loader) => {
25
+ // register loader by key
26
+ const bundleKey = `${packageName}/${localeId}`;
27
+ loaders.set(bundleKey, loader);
28
+ };
29
+
30
+ const _setI18nBundleData = (packageName, data) => {
17
31
  bundleData.set(packageName, data);
18
32
  };
19
33
 
@@ -22,13 +36,36 @@ const getI18nBundleData = packageName => {
22
36
  };
23
37
 
24
38
  /**
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
39
  * @public
40
+ * @deprecated
29
41
  */
30
- const registerI18nBundle = (packageName, bundle) => {
31
- bundleURLs.set(packageName, bundle);
42
+ const registerI18nBundle = (_packageName, _bundle) => {
43
+ throw new Error("This method has been removed. Use `registerI18nLoader` instead.");
44
+ };
45
+
46
+ const _hasLoader = (packageName, localeId) => {
47
+ const bundleKey = `${packageName}/${localeId}`;
48
+ return loaders.has(bundleKey);
49
+ };
50
+
51
+ // load bundle over the network once
52
+ const _loadMessageBundleOnce = (packageName, localeId) => {
53
+ const bundleKey = `${packageName}/${localeId}`;
54
+ const loadMessageBundle = loaders.get(bundleKey);
55
+
56
+ if (!bundlePromises.get(bundleKey)) {
57
+ bundlePromises.set(bundleKey, loadMessageBundle(localeId));
58
+ }
59
+
60
+ return bundlePromises.get(bundleKey);
61
+ };
62
+
63
+ const _showAssetsWarningOnce = packageName => {
64
+ if (!warningShown.has(packageName)) {
65
+ console.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */
66
+ ` 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 */
67
+ warningShown.add(packageName);
68
+ }
32
69
  };
33
70
 
34
71
  /**
@@ -41,35 +78,46 @@ const registerI18nBundle = (packageName, bundle) => {
41
78
  * @public
42
79
  */
43
80
  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 = getLanguage();
81
+ const language = getLocale().getLanguage();
82
+ const region = getLocale().getRegion();
83
+ let localeId = normalizeLocale(language + (region ? `-${region}` : ``));
53
84
 
54
- let localeId = normalizeLocale(language);
55
- while (!bundlesForPackage[localeId]) {
85
+ while (localeId !== DEFAULT_LANGUAGE && !_hasLoader(packageName, localeId)) {
56
86
  localeId = nextFallbackLocale(localeId);
57
87
  }
58
88
 
59
- const bundleURL = bundlesForPackage[localeId];
89
+ // use default language unless configured to always fetch it from the network
90
+ const fetchDefaultLanguage = getFetchDefaultLanguage();
91
+ if (localeId === DEFAULT_LANGUAGE && !fetchDefaultLanguage) {
92
+ _setI18nBundleData(packageName, null); // reset for the default language (if data was set for a previous language)
93
+ return;
94
+ }
60
95
 
61
- if (typeof bundleURL === "object") { // inlined from build
62
- setI18nBundleData(packageName, bundleURL);
63
- return bundleURL;
96
+ if (!_hasLoader(packageName, localeId)) {
97
+ _showAssetsWarningOnce(packageName);
98
+ return;
64
99
  }
65
100
 
66
- const data = await fetchJsonOnce(bundleURL);
67
- setI18nBundleData(packageName, data);
101
+ try {
102
+ const data = await _loadMessageBundleOnce(packageName, localeId);
103
+ _setI18nBundleData(packageName, data);
104
+ } catch (e) {
105
+ if (!reportedErrors.has(e.message)) {
106
+ reportedErrors.add(e.message);
107
+ console.error(e.message); /* eslint-disable-line */
108
+ }
109
+ }
68
110
  };
69
111
 
112
+ // When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles
113
+ attachLanguageChange(() => {
114
+ const allPackages = [...bundleData.keys()];
115
+ return Promise.all(allPackages.map(fetchI18nBundle));
116
+ });
117
+
70
118
  export {
119
+ registerI18nLoader,
71
120
  fetchI18nBundle,
72
121
  registerI18nBundle,
73
- setI18nBundleData,
74
122
  getI18nBundleData,
75
123
  };
@@ -0,0 +1,43 @@
1
+ const Cs=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function s(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerpolicy&&(o.referrerPolicy=r.referrerpolicy),r.crossorigin==="use-credentials"?o.credentials="include":r.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(r){if(r.ep)return;r.ep=!0;const o=s(r);fetch(r.href,o)}};Cs();const ut={themes:{default:"sap_fiori_3",all:["sap_fiori_3","sap_fiori_3_dark","sap_belize","sap_belize_hcb","sap_belize_hcw","sap_fiori_3_hcb","sap_fiori_3_hcw","sap_horizon","sap_horizon_dark","sap_horizon_hcb","sap_horizon_hcw","sap_horizon_exp"]},languages:{default:"en",all:["ar","bg","ca","cs","cy","da","de","el","en","en_GB","en_US_sappsd","en_US_saprigi","en_US_saptrc","es","es_MX","et","fi","fr","fr_CA","hi","hr","hu","in","it","iw","ja","kk","ko","lt","lv","ms","nl","no","pl","pt_PT","pt","ro","ru","sh","sk","sl","sv","th","tr","uk","vi","zh_CN","zh_TW"]},locales:{default:"en",all:["ar","ar_EG","ar_SA","bg","ca","cs","da","de","de_AT","de_CH","el","el_CY","en","en_AU","en_GB","en_HK","en_IE","en_IN","en_NZ","en_PG","en_SG","en_ZA","es","es_AR","es_BO","es_CL","es_CO","es_MX","es_PE","es_UY","es_VE","et","fa","fi","fr","fr_BE","fr_CA","fr_CH","fr_LU","he","hi","hr","hu","id","it","it_CH","ja","kk","ko","lt","lv","ms","nb","nl","nl_BE","pl","pt","pt_PT","ro","ru","ru_UA","sk","sl","sr","sr_Latn","sv","th","tr","uk","vi","zh_CN","zh_HK","zh_SG","zh_TW"]}},xt=ut.themes.default,Nt=ut.languages.default,E=ut.locales.default,ee=ut.locales.all;var ke=()=>{const e=navigator.languages,t=()=>navigator.language;return e&&e[0]||t()||navigator.userLanguage||navigator.browserLanguage||Nt},Be={},He=Be.hasOwnProperty,Es=Be.toString,Fe=He.toString,Ts=Fe.call(Object),se=function(e){var t,s;return!e||Es.call(e)!=="[object Object]"?!1:(t=Object.getPrototypeOf(e),t?(s=He.call(t,"constructor")&&t.constructor,typeof s=="function"&&Fe.call(s)===Ts):!0)},Ms=Object.create(null),je=function(){var e,t,s,n,r,o,i=arguments[2]||{},a=3,c=arguments.length,l=arguments[0]||!1,h=arguments[1]?void 0:Ms;for(typeof i!="object"&&typeof i!="function"&&(i={});a<c;a++)if((r=arguments[a])!=null)for(n in r)e=i[n],s=r[n],!(n==="__proto__"||i===s)&&(l&&s&&(se(s)||(t=Array.isArray(s)))?(t?(t=!1,o=e&&Array.isArray(e)?e:[]):o=e&&se(e)?e:{},i[n]=je(l,arguments[1],o,s)):s!==h&&(i[n]=s));return i},Zt=function(){var e=[!0,!1];return e.push.apply(e,arguments),je.apply(null,e)};const Ve=new Map,Ls=(e,t)=>{Ve.set(e,t)},_=e=>Ve.get(e);let ne=!1,m={animationMode:"full",theme:xt,rtl:null,language:null,calendarType:null,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const Os=()=>(A(),m.animationMode),Ps=()=>(A(),m.theme),Is=()=>(A(),m.rtl),Ds=()=>(A(),m.language),Rs=()=>(A(),m.fetchDefaultLanguage),xs=()=>(A(),m.noConflict),Ns=()=>(A(),m.calendarType),Us=()=>(A(),m.formatSettings),ot=new Map;ot.set("true",!0);ot.set("false",!1);const ks=()=>{const e=document.querySelector("[data-ui5-config]")||document.querySelector("[data-id='sap-ui-config']");let t;if(e){try{t=JSON.parse(e.innerHTML)}catch{console.warn("Incorrect data-sap-ui-config format. Please use JSON")}t&&(m=Zt(m,t))}},Bs=()=>{const e=new URLSearchParams(window.location.search);e.forEach((t,s)=>{const n=s.split("sap-").length;n===0||n===s.split("sap-ui-").length||re(s,t,"sap")}),e.forEach((t,s)=>{!s.startsWith("sap-ui")||re(s,t,"sap-ui")})},Hs=(e,t)=>e==="theme"&&t.includes("@")?t.split("@")[0]:t,re=(e,t,s)=>{const n=t.toLowerCase(),r=e.split(`${s}-`)[1];ot.has(t)&&(t=ot.get(n)),t=Hs(r,t),m[r]=t},Fs=()=>{const e=_("OpenUI5Support");if(!e||!e.isLoaded())return;const t=e.getConfigurationSettingsObject();m=Zt(m,t)},A=()=>{ne||(ks(),Bs(),Fs(),ne=!0)};class T{constructor(){this._eventRegistry=new Map}attachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!Array.isArray(r)){n.set(t,[s]);return}r.includes(s)||r.push(s)}detachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!r)return;const o=r.indexOf(s);o!==-1&&r.splice(o,1),r.length===0&&n.delete(t)}fireEvent(t,s){const r=this._eventRegistry.get(t);return r?r.map(o=>o.call(this,s)):[]}fireEventAsync(t,s){return Promise.all(this.fireEvent(t,s))}isHandlerAttached(t,s){const r=this._eventRegistry.get(t);return r?r.includes(s):!1}hasListeners(t){return!!this._eventRegistry.get(t)}}const js=new T,Vs="languageChange",ze=e=>{js.attachEvent(Vs,e)},oe=10;class zs{constructor(){this.list=[],this.lookup=new Set}add(t){this.lookup.has(t)||(this.list.push(t),this.lookup.add(t))}remove(t){!this.lookup.has(t)||(this.list=this.list.filter(s=>s!==t),this.lookup.delete(t))}shift(){const t=this.list.shift();if(t)return this.lookup.delete(t),t}isEmpty(){return this.list.length===0}isAdded(t){return this.lookup.has(t)}process(t){let s;const n=new Map;for(s=this.shift();s;){const r=n.get(s)||0;if(r>oe)throw new Error(`Web component processed too many times this task, max allowed is: ${oe}`);t(s),n.set(s,r+1),s=this.shift()}}}const We=e=>{const t=[];return e.forEach(s=>{t.push(s)}),t},Ze=(e,t=document.body)=>{let s=document.querySelector(e);return s||(s=document.createElement(e),t.insertBefore(s,t.firstChild))},Ws=()=>Ze("ui5-shared-resources",document.head),M=(e,t)=>{const s=e.split(".");let n=Ws();for(let r=0;r<s.length;r++){const o=s[r],i=r===s.length-1;Object.prototype.hasOwnProperty.call(n,o)||(n[o]=i?t:{}),n=n[o]}return n},ie={version:"0.0.0-e818f286e",major:0,minor:0,patch:0,suffix:"-e818f286e",isNext:!0,buildTime:1658998006};let Q,Zs="";const yt=new Map,V=M("Runtimes",[]),qs=()=>{Q===void 0&&(Q=V.length,V.push({...ie,alias:Zs,description:`Runtime ${Q} - ver ${ie.version}`}))},qe=()=>Q,Gs=(e,t)=>{const s=`${e},${t}`;if(yt.has(s))return yt.get(s);const n=V[e],r=V[t];if(!n||!r)throw new Error("Invalid runtime index supplied");if(n.isNext||r.isNext)return n.buildTime-r.buildTime;const o=n.major-r.major;if(o)return o;const i=n.minor-r.minor;if(i)return i;const a=n.patch-r.patch;if(a)return a;const l=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(n.suffix,r.suffix);return yt.set(s,l),l},Ks=()=>V,Ge=M("Tags",new Map),qt=new Set;let C={},_t;const Ke="unknown",ae=e=>{qt.add(e),Ge.set(e,qe())},Js=e=>qt.has(e),Xs=()=>We(qt),Ys=e=>{let t=Ge.get(e);t===void 0&&(t=Ke),C[t]=C[t]||new Set,C[t].add(e),_t||(_t=setTimeout(()=>{Qs(),C={},_t=void 0},1e3))},Qs=()=>{const e=Ks(),t=qe(),s=e[t];let n="Multiple UI5 Web Components instances detected.";e.length>1&&(n=`${n}
2
+ Loading order (versions before 1.1.0 not listed): ${e.map(r=>`
3
+ ${r.description}`).join("")}`),Object.keys(C).forEach(r=>{let o,i;r===Ke?(o=1,i={description:"Older unknown runtime"}):(o=Gs(t,r),i=e[r]);let a;o>0?a="an older":o<0?a="a newer":a="the same",n=`${n}
4
+
5
+ "${s.description}" failed to define ${C[r].size} tag(s) as they were defined by a runtime of ${a} version "${i.description}": ${We(C[r]).sort().join(", ")}.`,o>0?n=`${n}
6
+ WARNING! If your code uses features of the above web components, unavailable in ${i.description}, it might not work as expected!`:n=`${n}
7
+ Since the above web components were defined by the same or newer version runtime, they should be compatible with your code.`}),n=`${n}
8
+
9
+ To prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/main/docs/2-advanced/03-scoping.md.`,console.warn(n)},Je=new Set,tn=e=>{Je.add(e)},en=e=>Je.has(e),Gt=new Set,sn=new T,R=new zs;let O,tt,wt,J;const Xe=async e=>{R.add(e),await rn()},Ye=e=>{sn.fireEvent("beforeComponentRender",e),Gt.add(e),e._render()},nn=e=>{R.remove(e),Gt.delete(e)},rn=async()=>{J||(J=new Promise(e=>{window.requestAnimationFrame(()=>{R.process(Ye),J=null,e(),wt||(wt=setTimeout(()=>{wt=void 0,R.isEmpty()&&cn()},200))})})),await J},on=()=>O||(O=new Promise(e=>{tt=e,window.requestAnimationFrame(()=>{R.isEmpty()&&(O=void 0,e())})}),O),an=()=>{const e=Xs().map(t=>customElements.whenDefined(t));return Promise.all(e)},Kt=async()=>{await an(),await on()},cn=()=>{!R.isEmpty()||tt&&(tt(),tt=void 0,O=void 0)},Jt=async e=>{Gt.forEach(t=>{const s=t.constructor.getMetadata().getTag(),n=en(t.constructor),r=t.constructor.getMetadata().isLanguageAware(),o=t.constructor.getMetadata().isThemeAware();(!e||e.tag===s||e.rtlAware&&n||e.languageAware&&r||e.themeAware&&o)&&Xe(t)}),await Kt()};let vt,Ut;const it=()=>(vt===void 0&&(vt=Ds()),vt),ln=e=>{Ut=e},un=()=>(Ut===void 0&&ln(Rs()),Ut),dn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;class hn{constructor(t){const s=dn.exec(t.replace(/_/g,"-"));if(s===null)throw new Error(`The given language ${t} does not adhere to BCP-47.`);this.sLocaleId=t,this.sLanguage=s[1]||null,this.sScript=s[2]||null,this.sRegion=s[3]||null,this.sVariant=s[4]&&s[4].slice(1)||null,this.sExtension=s[5]&&s[5].slice(1)||null,this.sPrivateUse=s[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,n=>n.toUpperCase())),this.sRegion&&(this.sRegion=this.sRegion.toUpperCase())}getLanguage(){return this.sLanguage}getScript(){return this.sScript}getRegion(){return this.sRegion}getVariant(){return this.sVariant}getVariantSubtags(){return this.sVariant?this.sVariant.split("-"):[]}getExtension(){return this.sExtension}getExtensionSubtags(){return this.sExtension?this.sExtension.slice(2).split("-"):[]}getPrivateUse(){return this.sPrivateUse}getPrivateUseSubtags(){return this.sPrivateUse?this.sPrivateUse.slice(2).split("-"):[]}hasPrivateUseSubtag(t){return this.getPrivateUseSubtags().indexOf(t)>=0}toString(){const t=[this.sLanguage];return this.sScript&&t.push(this.sScript),this.sRegion&&t.push(this.sRegion),this.sVariant&&t.push(this.sVariant),this.sExtension&&t.push(this.sExtension),this.sPrivateUse&&t.push(this.sPrivateUse),t.join("-")}}const St=new Map,Qe=e=>(St.has(e)||St.set(e,new hn(e)),St.get(e)),ce=e=>{try{if(e&&typeof e=="string")return Qe(e)}catch{}},kt=e=>e?ce(e):it()?Qe(it()):ce(ke()),fn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i,le=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,pn={he:"iw",yi:"ji",id:"in",sr:"sh"},gn=e=>{let t;if(!e)return E;if(typeof e=="string"&&(t=fn.exec(e.replace(/_/g,"-")))){let s=t[1].toLowerCase(),n=t[3]?t[3].toUpperCase():void 0;const r=t[2]?t[2].toLowerCase():void 0,o=t[4]?t[4].slice(1):void 0,i=t[6];return s=pn[s]||s,i&&(t=le.exec(i))||o&&(t=le.exec(o))?`en_US_${t[1].toLowerCase()}`:(s==="zh"&&!n&&(r==="hans"?n="CN":r==="hant"&&(n="TW")),s+(n?"_"+n+(o?"_"+o.replace("-","_"):""):""))}},mn=e=>{if(!e)return E;if(e==="zh_HK")return"zh_TW";const t=e.lastIndexOf("_");return t>=0?e.slice(0,t):e!==E?E:""},ue=new Set,de=new Set,Xt=new Map,At=new Map,Yt=new Map,yn=(e,t,s)=>{const n=`${e}/${t}`;Yt.set(n,s)},he=(e,t)=>{Xt.set(e,t)},_n=e=>Xt.get(e),fe=(e,t)=>{const s=`${e}/${t}`;return Yt.has(s)},wn=(e,t)=>{const s=`${e}/${t}`,n=Yt.get(s);return At.get(s)||At.set(s,n(t)),At.get(s)},vn=e=>{ue.has(e)||(console.warn(`[${e}]: Message bundle assets are not configured. Falling back to English texts.`,` Add \`import "${e}/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.`),ue.add(e))},ts=async e=>{const t=kt().getLanguage(),s=kt().getRegion();let n=gn(t+(s?`-${s}`:""));for(;n!==Nt&&!fe(e,n);)n=mn(n);const r=un();if(n===Nt&&!r){he(e,null);return}if(!fe(e,n)){vn(e);return}try{const o=await wn(e,n);he(e,o)}catch(o){de.has(o.message)||(de.add(o.message),console.error(o.message))}};ze(()=>{const e=[...Xt.keys()];return Promise.all(e.map(ts))});const Sn=new Map,at=new Map,bt=new Map,pe=new Set;let ge=!1;const An={iw:"he",ji:"yi",in:"id"},me=e=>{ge||(console.warn(`[LocaleData] Supported locale "${e}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),ge=!0)},bn=(e,t,s)=>{e=e&&An[e]||e,e==="no"&&(e="nb"),e==="zh"&&!t&&(s==="Hans"?t="CN":s==="Hant"&&(t="TW")),(e==="sh"||e==="sr"&&s==="Latn")&&(e="sr",t="Latn");let n=`${e}_${t}`;return ee.includes(n)||(n=e,ee.includes(n))?at.has(n)?n:(me(n),E):E},ye=(e,t)=>{Sn.set(e,t)},$n=e=>{const t=at.get(e);return bt.get(e)||bt.set(e,t(e)),bt.get(e)},Cn=async(e,t,s)=>{const n=bn(e,t,s),r=_("OpenUI5Support");if(r){const o=r.getLocaleDataObject();if(o){ye(n,o);return}}try{const o=await $n(n);ye(n,o)}catch(o){pe.has(o.message)||(pe.add(o.message),console.error(o.message))}},En=(e,t)=>{at.set(e,t)};En("en",async e=>(await fetch("https://ui5.sap.com/1.103.0/resources/sap/ui/core/cldr/en.json")).json());ze(()=>{const e=kt();return Cn(e.getLanguage(),e.getRegion(),e.getScript())});const es=new Map,ss=new Map,ns=new Set,ct=new Set,b=(e,t,s)=>{ss.set(`${e}/${t}`,s),ns.add(e),ct.add(t)},rs=async(e,t)=>{const s=es.get(`${e}_${t}`);if(s!==void 0)return s;if(!ct.has(t)){const n=[...ct.values()].join(", ");return console.warn(`You have requested a non-registered theme ${t} - falling back to ${xt}. Registered themes are: ${n}`),_e(e,xt)}return _e(e,t)},_e=async(e,t)=>{const s=ss.get(`${e}/${t}`);if(!s){console.error(`Theme [${t}] not registered for package [${e}]`);return}let n;try{n=await s(t)}catch(o){console.error(e,o.message);return}const r=n._||n;return es.set(`${e}_${t}`,r),r},os=()=>ns,Tn=e=>ct.has(e),we={"SAP-icons-TNT":"tnt",BusinessSuiteInAppSymbols:"business-suite",horizon:"SAP-icons-v5"},Mn=(e,t={})=>{const s=document.createElement("style");return s.type="text/css",Object.entries(t).forEach(n=>s.setAttribute(...n)),s.textContent=e,document.head.appendChild(s),s},dt=(e,t)=>t?`${e}|${t}`:e,ht=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;if(document.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(n),r._ui5StyleId=dt(t,s),document.adoptedStyleSheets=[...document.adoptedStyleSheets,r]}else{const r={};r[t]=s,Mn(n,r)}},Ln=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;document.adoptedStyleSheets?document.adoptedStyleSheets.find(r=>r._ui5StyleId===dt(t,s)).replaceSync(n||""):document.querySelector(`head>style[${t}="${s}"]`).textContent=n||""},ft=(e,t="")=>document.adoptedStyleSheets?!!document.adoptedStyleSheets.find(s=>s._ui5StyleId===dt(e,t)):!!document.querySelector(`head>style[${e}="${t}"]`),On=(e,t="")=>{if(document.adoptedStyleSheets)document.adoptedStyleSheets=document.adoptedStyleSheets.filter(s=>s._ui5StyleId!==dt(e,t));else{const s=document.querySelector(`head > style[${e}="${t}"]`);s&&s.parentElement.removeChild(s)}},is=(e,t,s="")=>{ft(t,s)?Ln(e,t,s):ht(e,t,s)},P=new Set,Pn=()=>{let e=document.querySelector(".sapThemeMetaData-Base-baseLib")||document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");if(e)return getComputedStyle(e).backgroundImage;e=document.createElement("span"),e.style.display="none",e.classList.add("sapThemeMetaData-Base-baseLib"),document.body.appendChild(e);let t=getComputedStyle(e).backgroundImage;return t==="none"&&(e.classList.add("sapThemeMetaData-UI5-sap-ui-core"),t=getComputedStyle(e).backgroundImage),document.body.removeChild(e),t},In=e=>{const t=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(e);if(t&&t.length>=2){let s=t[1];if(s=s.replace(/\\"/g,'"'),s.charAt(0)!=="{"&&s.charAt(s.length-1)!=="}")try{s=decodeURIComponent(s)}catch{P.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),P.add("decode"));return}try{return JSON.parse(s)}catch{P.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),P.add("parse"))}}},Dn=e=>{let t,s;try{t=e.Path.match(/\.([^.]+)\.css_variables$/)[1],s=e.Extends[0]}catch{P.has("object")||(console.warn("Malformed theme metadata Object",e),P.add("object"));return}return{themeName:t,baseThemeName:s}},Rn=()=>{const e=Pn();if(!e||e==="none")return;const t=In(e);return Dn(t)},xn=new T,Nn="themeLoaded",Un=e=>xn.fireEvent(Nn,e),z="@ui5/webcomponents-theming",kn=()=>os().has(z),Bn=async e=>{if(!kn())return;const t=await rs(z,e);t&&is(t,"data-ui5-theme-properties",z)},Hn=()=>{On("data-ui5-theme-properties",z)},Fn=async e=>{os().forEach(async s=>{if(s===z)return;const n=await rs(s,e);n&&is(n,"data-ui5-theme-properties",s)})},jn=()=>{const e=Rn();if(e)return e;const t=_("OpenUI5Support");if(t&&t.cssVariablesLoaded())return{themeName:t.getConfigurationSettingsObject().theme}},as=async e=>{const t=jn();!t||e!==t.themeName?await Bn(e):Hn();const s=Tn(e)?e:t&&t.baseThemeName;await Fn(s),Un(e)};let I;const pt=()=>(I===void 0&&(I=Ps()),I),cs=async e=>{I!==e&&(I=e,await as(I),await Jt({themeAware:!0}))},Vn=e=>pt().startsWith(e),zn=new Map,ls=()=>{const e=pt(),t=zn.get(e);return t||(Vn("sap_horizon")?"SAP-icons-v5":"SAP-icons")},ve=new Map,lt=M("SVGIcons.registry",new Map),$t=M("SVGIcons.promises",new Map),Se="ICON_NOT_FOUND",Wn=async e=>{if(!$t.has(e)){if(!ve.has(e))throw new Error(`No loader registered for the ${e} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);const t=ve.get(e);$t.set(e,t(e))}return $t.get(e)},Zn=e=>{Object.keys(e.data).forEach(t=>{const s=e.data[t];qn(t,{pathData:s.path,ltr:s.ltr,accData:s.acc,collection:e.collection,packageName:e.packageName})})},qn=(e,{pathData:t,ltr:s,accData:n,collection:r,packageName:o}={})=>{r||(r=ls());const i=`${r}/${e}`;lt.set(i,{pathData:t,ltr:s,accData:n,packageName:o})},Gn=e=>{e.startsWith("sap-icon://")&&(e=e.replace("sap-icon://",""));let t;[e,t]=e.split("/").reverse(),t=t||ls(),t=Jn(t),e=e.replace("icon-","");const s=`${t}/${e}`;return{name:e,collection:t,registryKey:s}},Ct=async e=>{const{collection:t,registryKey:s}=Gn(e);let n=Se;try{n=await Wn(t)}catch(r){console.error(r.message)}return n===Se?n:(lt.has(s)||Zn(n),lt.get(s))},Kn=async()=>(await Ct("edit"),await Ct("tnt/arrow"),await Ct("business-suite/3d"),Array.from(lt.keys())),Jn=e=>we[e]?we[e]:e,Bt=M("PopupUtilsData",{});Bt.currentZIndex=Bt.currentZIndex||100;const us=()=>Bt.currentZIndex,w=()=>{const e=window.sap;return e&&e.ui&&typeof e.ui.getCore=="function"&&e.ui.getCore()},Xn=()=>!!w(),Yn=()=>{const e=w();return e?new Promise(t=>{e.attachInit(()=>{window.sap.ui.require(["sap/ui/core/LocaleData","sap/ui/core/Popup"],(s,n)=>{n.setInitialZIndex(us()),t()})})}):Promise.resolve()},Qn=()=>{const e=w();if(!e)return;const t=e.getConfiguration(),s=window.sap.ui.require("sap/ui/core/LocaleData");return{animationMode:t.getAnimationMode(),language:t.getLanguage(),theme:t.getTheme(),rtl:t.getRTL(),calendarType:t.getCalendarType(),formatSettings:{firstDayOfWeek:s?s.getInstance(t.getLocale()).getFirstDayOfWeek():void 0}}},tr=()=>{const e=w();if(!e)return;const t=e.getConfiguration();return window.sap.ui.require("sap/ui/core/LocaleData").getInstance(t.getLocale())._get()},er=()=>{const e=w(),t=e.getConfiguration();e.attachThemeChanged(async()=>{await cs(t.getTheme())})},sr=()=>{!w()||er()},nr=()=>{if(!w())return;const t=[...document.head.children].find(s=>s.id==="sap-ui-theme-sap.ui.core");if(!!t)return!!t.href.match(/\/css(-|_)variables\.css/)},rr=()=>w()?window.sap.ui.require("sap/ui/core/Popup").getNextZIndex():void 0,or=()=>{if(!w())return;window.sap.ui.require("sap/ui/core/Popup").setInitialZIndex(us())},ir={isLoaded:Xn,init:Yn,getConfigurationSettingsObject:Qn,getLocaleDataObject:tr,attachListeners:sr,cssVariablesLoaded:nr,getNextZIndex:rr,setInitialZIndex:or};Ls("OpenUI5Support",ir);const ar=()=>new Promise(e=>{document.body?e():document.addEventListener("DOMContentLoaded",()=>{e()})});var cr={packageName:"@ui5/webcomponents-base",fileName:"FontFace.css",content:`@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff?ui5-webcomponents) format("woff")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff?ui5-webcomponents) format("woff")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents) format("woff")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents) format("woff")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents) format("woff")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents) format("woff")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff?ui5-webcomponents) format("woff")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff?ui5-webcomponents) format("woff")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://openui5nightly.hana.ondemand.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2"),url(https://openui5nightly.hana.ondemand.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff?ui5-webcomponents) format("woff")}`},lr={packageName:"@ui5/webcomponents-base",fileName:"OverrideFontFace.css",content:"@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}"};const ur=()=>{const e=_("OpenUI5Support");(!e||!e.isLoaded())&&dr(),hr()},dr=()=>{ft("data-ui5-font-face")||ht(cr,"data-ui5-font-face")},hr=()=>{ft("data-ui5-font-face-override")||ht(lr,"data-ui5-font-face-override")};var fr={packageName:"@ui5/webcomponents-base",fileName:"SystemCSSVars.css",content:":root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}"};const pr=()=>{ft("data-ui5-system-css-vars")||ht(fr,"data-ui5-system-css-vars")};let X;const gr=async()=>X||(X=new Promise(async e=>{qs();const t=_("OpenUI5Support"),s=_("F6Navigation");t?await t.init():s&&s.init(),await ar(),await as(pt()),t&&t.attachListeners(),ur(),pr(),e()}),X);class F{static isValid(t){}static attributeToProperty(t){return t}static propertyToAttribute(t){return`${t}`}static valuesAreEqual(t,s){return t===s}static generateTypeAccessors(t){Object.keys(t).forEach(s=>{Object.defineProperty(this,s,{get(){return t[s]}})})}}const et=(e,t,s=!1)=>{if(typeof e!="function"||typeof t!="function")return!1;if(s&&e===t)return!0;let n=e;do n=Object.getPrototypeOf(n);while(n!==null&&n!==t);return n===t},Et=new Map,Tt=new Map,Ae=e=>{if(!Et.has(e)){const t=mr(e.split("-"));Et.set(e,t)}return Et.get(e)},ds=e=>{if(!Tt.has(e)){const t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();Tt.set(e,t)}return Tt.get(e)},mr=e=>e.map((t,s)=>s===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(""),yr=e=>{if(!(e instanceof HTMLElement))return"default";const t=e.getAttribute("slot");if(t){const s=t.match(/^(.+?)-\d+$/);return s?s[1]:t}return"default"},Ht=e=>e&&e instanceof HTMLElement&&e.localName==="slot",hs=e=>Ht(e)?e.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[e],_r=e=>{const t=(s,n)=>s.concat(hs(n));return e.reduce(t,[])};let wr,be={include:[/^ui5-/],exclude:[]};const Mt=new Map,fs=()=>wr,Ft=e=>{if(!Mt.has(e)){const t=be.include.some(s=>e.match(s))&&!be.exclude.some(s=>e.match(s));Mt.set(e,t)}return Mt.get(e)},jt=e=>{if(Ft(e))return fs()};class vr{constructor(t){this.metadata=t}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={},s=this.slotsAreManaged(),n=this.getProperties();for(const r in n){const o=n[r].type,i=n[r].defaultValue;o===Boolean?(t[r]=!1,i!==void 0&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):n[r].multiple?t[r]=[]:o===Object?t[r]="defaultValue"in n[r]?n[r].defaultValue:{}:o===String?t[r]="defaultValue"in n[r]?n[r].defaultValue:"":t[r]=i}if(s){const r=this.getSlots();for(const[o,i]of Object.entries(r)){const a=i.propertyName||o;t[a]=[]}}return this._initialState=t,t}static validatePropertyValue(t,s){return s.multiple?t.map(r=>$e(r,s)):$e(t,s)}static validateSlotValue(t,s){return Sr(t,s)}getPureTag(){return this.metadata.tag}getTag(){const t=this.metadata.tag,s=jt(t);return s?`${t}-${s}`:t}getAltTag(){const t=this.metadata.altTag;if(!t)return;const s=jt(t);return s?`${t}-${s}`:t}hasAttribute(t){const s=this.getProperties()[t];return s.type!==Object&&!s.noAttribute&&!s.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute,this).map(ds)}getSlots(){return this.metadata.slots||{}}canSlotText(){const t=this.getSlots().default;return t&&t.type===Node}hasSlots(){return!!Object.entries(this.getSlots()).length}hasIndividualSlots(){return this.slotsAreManaged()&&Object.entries(this.getSlots()).some(([t,s])=>s.individualSlots)}slotsAreManaged(){return!!this.metadata.managedSlots}supportsF6FastNavigation(){return!!this.metadata.fastNavigation}getProperties(){return this.metadata.properties||{}}getEvents(){return this.metadata.events||{}}isLanguageAware(){return!!this.metadata.languageAware}isThemeAware(){return!!this.metadata.themeAware}shouldInvalidateOnChildChange(t,s,n){const r=this.getSlots()[t].invalidateOnChildChange;if(r===void 0)return!1;if(typeof r=="boolean")return r;if(typeof r=="object"){if(s==="property"){if(r.properties===void 0)return!1;if(typeof r.properties=="boolean")return r.properties;if(Array.isArray(r.properties))return r.properties.includes(n);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if(s==="slot"){if(r.slots===void 0)return!1;if(typeof r.slots=="boolean")return r.slots;if(Array.isArray(r.slots))return r.slots.includes(n);throw new Error("Wrong format for invalidateOnChildChange.slots: boolean or array is expected")}}throw new Error("Wrong format for invalidateOnChildChange: boolean or object is expected")}}const $e=(e,t)=>{const s=t.type;if(s===Boolean)return typeof e=="boolean"?e:!1;if(s===String)return typeof e=="string"||typeof e=="undefined"||e===null?e:e.toString();if(s===Object)return typeof e=="object"?e:t.defaultValue;if(et(s,F))return s.isValid(e)?e:t.defaultValue},Sr=(e,t)=>(e&&hs(e).forEach(s=>{if(!(s instanceof t.type))throw new Error(`${s} is not of type ${t.type}`)}),e);customElements.get("ui5-static-area")||customElements.define("ui5-static-area",class extends HTMLElement{});const Ar=(e,t)=>{const s=br(t),n=fs();return e(t,s,n)},br=e=>{const t=e.constructor.getMetadata().getPureTag(),s=e.constructor.getUniqueDependencies().map(n=>n.getMetadata().getPureTag()).filter(Ft);return Ft(t)&&s.push(t),s},$r=M("CustomStyle.eventProvider",new T),Cr="CustomCSSChange",Qt=e=>{$r.attachEvent(Cr,e)},Ce=M("CustomStyle.customCSSFor",{});Qt(e=>{Jt({tag:e})});const Er=e=>Ce[e]?Ce[e].join(""):"",Lt=e=>Array.isArray(e)?ps(e.filter(t=>!!t)).map(t=>typeof t=="string"?t:t.content).join(" "):typeof e=="string"?e:e.content,ps=e=>e.reduce((t,s)=>t.concat(Array.isArray(s)?ps(s):s),[]),st=new Map;Qt(e=>{st.delete(`${e}_normal`)});const gs=(e,t=!1)=>{const s=e.getMetadata().getTag(),n=`${s}_${t?"static":"normal"}`,r=_("OpenUI5Enablement");if(!st.has(n)){let o,i="";if(r&&(i=Lt(r.getBusyIndicatorStyles())),t)o=Lt(e.staticAreaStyles);else{const a=Er(s)||"";o=`${Lt(e.styles)} ${a}`}o=`${o} ${i}`,st.set(n,o)}return st.get(n)},nt=new Map;Qt(e=>{nt.delete(`${e}_normal`)});const Tr=(e,t=!1)=>{const n=`${e.getMetadata().getTag()}_${t?"static":"normal"}`;if(!nt.has(n)){const r=gs(e,t),o=new CSSStyleSheet;o.replaceSync(r),nt.set(n,[o])}return nt.get(n)},Vt=(e,t=!1)=>{let s;const n=t?"staticAreaTemplate":"template",r=t?e.staticAreaItem.shadowRoot:e.shadowRoot,o=Ar(e.constructor[n],e);document.adoptedStyleSheets?r.adoptedStyleSheets=Tr(e.constructor,t):s=gs(e.constructor,t),e.constructor.render(o,r,s,t,{host:e})},Mr="--_ui5_content_density",Lr=e=>getComputedStyle(e).getPropertyValue(Mr);var Or=e=>{const t=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(e);return t&&t[2]?t[2].split(/,/):null};const Pr={iw:"he",ji:"yi",in:"id",sh:"sr"},Ir=Or("$cldr-rtl-locales:ar,fa,he$")||[],Dr=e=>(e=e&&Pr[e]||e,Ir.indexOf(e)>=0),ms=()=>{const e=Is();return e!==null?!!e:Dr(it()||ke())},Rr="--_ui5_dir",ys=e=>{const t=window.document,s=["ltr","rtl"],n=getComputedStyle(e).getPropertyValue(Rr);return s.includes(n)?n:s.includes(e.dir)?e.dir:s.includes(t.documentElement.dir)?t.documentElement.dir:s.includes(t.body.dir)?t.body.dir:ms()?"rtl":void 0};class j extends HTMLElement{constructor(){super(),this._rendered=!1,this.attachShadow({mode:"open"})}setOwnerElement(t){this.ownerElement=t,this.classList.add(this.ownerElement._id),this.ownerElement.hasAttribute("data-ui5-static-stable")&&this.setAttribute("data-ui5-stable",this.ownerElement.getAttribute("data-ui5-static-stable"))}update(){this._rendered&&(this._updateContentDensity(),this._updateDirection(),Vt(this.ownerElement,!0))}_updateContentDensity(){Lr(this.ownerElement)==="compact"?(this.classList.add("sapUiSizeCompact"),this.classList.add("ui5-content-density-compact")):(this.classList.remove("sapUiSizeCompact"),this.classList.remove("ui5-content-density-compact"))}_updateDirection(){const t=ys(this.ownerElement);t?this.setAttribute("dir",t):this.removeAttribute("dir")}async getDomRef(){return this._updateContentDensity(),this._rendered||(this._rendered=!0,Vt(this.ownerElement,!0)),await Kt(),this.shadowRoot}static getTag(){const t="ui5-static-area-item",s=jt(t);return s?`${t}-${s}`:t}static createInstance(){return customElements.get(j.getTag())||customElements.define(j.getTag(),j),document.createElement(this.getTag())}}const zt=new WeakMap;let xr=(e,t,s)=>{const n=new MutationObserver(t);return n.observe(e,s),n},Nr=e=>{e.disconnect()};const Ur=(e,t,s)=>{const n=xr(e,t,s);zt.set(e,n)},kr=e=>{const t=zt.get(e);t&&(Nr(t),zt.delete(e))},Br=["value-changed"],Hr=e=>Br.includes(e);let rt;const Fr=e=>{const t=te();return!(t.events&&t.events.includes&&t.events.includes(e))},te=()=>(rt===void 0&&(rt=xs()),rt),jr=e=>{const t=te();return Hr(e)?!1:t===!0?!0:!Fr(e)},Vr=e=>{rt=e},zr=["disabled","title","hidden","role","draggable"],Ee=e=>zr.includes(e)||e.startsWith("aria")?!0:![HTMLElement,Element,Node].some(s=>s.prototype.hasOwnProperty(e)),Te=(e,t)=>{if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==t[s])return!1;return!0},Wr=(e,t)=>class extends e{constructor(){super(),t&&t()}};let Zr=0;const Me=new Map,Ot=new Map;function B(e){this._suppressInvalidation||(this.onInvalidation(e),this._changedState.push(e),Xe(this),this._eventProvider.fireEvent("invalidate",{...e,target:this}))}let Le={};class L extends HTMLElement{constructor(){super(),this._changedState=[],this._suppressInvalidation=!0,this._inDOM=!1,this._fullyConnected=!1,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._eventProvider=new T;let t;this._domRefReadyPromise=new Promise(s=>{t=s}),this._domRefReadyPromise._deferredResolve=t,this._initializeState(),this._upgradeAllProperties(),this.constructor._needsShadowDOM()&&this.attachShadow({mode:"open"})}get _id(){return this.__id||(this.__id=`ui5wc_${++Zr}`),this.__id}async connectedCallback(){this.setAttribute(this.constructor.getMetadata().getPureTag(),""),this.constructor.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const t=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!0,t&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&(Ye(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,typeof this.onEnterDOM=="function"&&this.onEnterDOM())}disconnectedCallback(){const t=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!1,t&&this._stopObservingDOMChildren(),this._fullyConnected&&(typeof this.onExitDOM=="function"&&this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),nn(this)}_startObservingDOMChildren(){if(!this.constructor.getMetadata().hasSlots())return;const s=this.constructor.getMetadata().canSlotText(),n={childList:!0,subtree:s,characterData:s};Ur(this,this._processChildren.bind(this),n)}_stopObservingDOMChildren(){kr(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const t=this.constructor.getMetadata().getSlots(),s=this.constructor.getMetadata().canSlotText(),n=Array.from(s?this.childNodes:this.children),r=new Map,o=new Map;for(const[h,d]of Object.entries(t)){const u=d.propertyName||h;o.set(u,h),r.set(u,[...this._state[u]]),this._clearSlot(h,d)}const i=new Map,a=new Map,c=n.map(async(h,d)=>{const u=yr(h),p=t[u];if(p===void 0){const g=Object.keys(t).join(", ");console.warn(`Unknown slotName: ${u}, ignoring`,h,`Valid values are: ${g}`);return}if(p.individualSlots){const g=(i.get(u)||0)+1;i.set(u,g),h._individualSlot=`${u}-${g}`}if(h instanceof HTMLElement){const g=h.localName;if(g.includes("-")){if(!window.customElements.get(g)){const bs=window.customElements.whenDefined(g);let K=Me.get(g);K||(K=new Promise($s=>setTimeout($s,1e3)),Me.set(g,K)),await Promise.race([bs,K])}window.customElements.upgrade(h)}}h=this.constructor.getMetadata().constructor.validateSlotValue(h,p),h.isUI5Element&&p.invalidateOnChildChange&&(h.attachInvalidate||h._attachChange).bind(h)(this._getChildChangeListener(u)),Ht(h)&&this._attachSlotChange(h,u);const v=p.propertyName||u;a.has(v)?a.get(v).push({child:h,idx:d}):a.set(v,[{child:h,idx:d}])});await Promise.all(c),a.forEach((h,d)=>{this._state[d]=h.sort((u,p)=>u.idx-p.idx).map(u=>u.child)});let l=!1;for(const[h,d]of Object.entries(t)){const u=d.propertyName||h;Te(r.get(u),this._state[u])||(B.call(this,{type:"slot",name:o.get(u),reason:"children"}),l=!0)}l||B.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(t,s){const n=s.propertyName||t;this._state[n].forEach(o=>{o&&o.isUI5Element&&(o.detachInvalidate||o._detachChange).bind(o)(this._getChildChangeListener(t)),Ht(o)&&this._detachSlotChange(o,t)}),this._state[n]=[]}attachInvalidate(t){this._eventProvider.attachEvent("invalidate",t)}detachInvalidate(t){this._eventProvider.detachEvent("invalidate",t)}_onChildChange(t,s){!this.constructor.getMetadata().shouldInvalidateOnChildChange(t,s.type,s.name)||B.call(this,{type:"slot",name:t,reason:"childchange",child:s.target})}attributeChangedCallback(t,s,n){const r=this.constructor.getMetadata().getProperties(),o=t.replace(/^ui5-/,""),i=Ae(o);if(r.hasOwnProperty(i)){const a=r[i].type;a===Boolean?n=n!==null:et(a,F)&&(n=a.attributeToProperty(n)),this[i]=n}}_updateAttribute(t,s){if(!this.constructor.getMetadata().hasAttribute(t))return;const r=this.constructor.getMetadata().getProperties()[t].type,o=ds(t),i=this.getAttribute(o);r===Boolean?s===!0&&i===null?this.setAttribute(o,""):s===!1&&i!==null&&this.removeAttribute(o):et(r,F)?this.setAttribute(o,r.propertyToAttribute(s)):typeof s!="object"&&i!==s&&this.setAttribute(o,s)}_upgradeProperty(t){if(this.hasOwnProperty(t)){const s=this[t];delete this[t],this[t]=s}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty,this)}_initializeState(){this._state={...this.constructor.getMetadata().getInitialState()}}_getChildChangeListener(t){return this._childChangeListeners.has(t)||this._childChangeListeners.set(t,this._onChildChange.bind(this,t)),this._childChangeListeners.get(t)}_getSlotChangeListener(t){return this._slotChangeListeners.has(t)||this._slotChangeListeners.set(t,this._onSlotChange.bind(this,t)),this._slotChangeListeners.get(t)}_attachSlotChange(t,s){t.addEventListener("slotchange",this._getSlotChangeListener(s))}_detachSlotChange(t,s){t.removeEventListener("slotchange",this._getSlotChangeListener(s))}_onSlotChange(t){B.call(this,{type:"slot",name:t,reason:"slotchange"})}onInvalidation(t){}_render(){const t=this.constructor.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,typeof this.onBeforeRendering=="function"&&this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),this._suppressInvalidation=!1,this._changedState=[],this.constructor._needsShadowDOM()&&Vt(this),this.staticAreaItem&&this.staticAreaItem.update(),t&&this._assignIndividualSlotsToChildren(),typeof this.onAfterRendering=="function"&&this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(s=>{s._individualSlot&&s.setAttribute("slot",s._individualSlot)})}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(typeof this._getRealDomRef=="function")return this._getRealDomRef();if(!this.shadowRoot||this.shadowRoot.children.length===0)return;const t=[...this.shadowRoot.children].filter(s=>!["link","style"].includes(s.localName));return t.length!==1&&console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`),t[0]}getFocusDomRef(){const t=this.getDomRef();if(t)return t.querySelector("[data-sap-focus-ref]")||t}async getFocusDomRefAsync(){return await this._waitForDomRef(),this.getFocusDomRef()}async focus(){await this._waitForDomRef();const t=this.getFocusDomRef();t&&typeof t.focus=="function"&&t.focus()}fireEvent(t,s,n=!1,r=!0){const o=this._fireEvent(t,s,n,r),i=Ae(t);return i!==t?o&&this._fireEvent(i,s,n):o}_fireEvent(t,s,n=!1,r=!0){const o=new CustomEvent(`ui5-${t}`,{detail:s,composed:!1,bubbles:r,cancelable:n}),i=this.dispatchEvent(o);if(jr(t))return i;const a=new CustomEvent(t,{detail:s,composed:!1,bubbles:r,cancelable:n});return this.dispatchEvent(a)&&i}getSlottedNodes(t){return _r(this[t])}get effectiveDir(){return tn(this.constructor),ys(this)}get isUI5Element(){return!0}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _needsShadowDOM(){return!!this.template}static _needsStaticArea(){return!!this.staticAreaTemplate}getStaticAreaItemDomRef(){if(!this.constructor._needsStaticArea())throw new Error("This component does not use the static area");return this.staticAreaItem||(this.staticAreaItem=j.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||Ze("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const t=this.prototype,s=this.getMetadata().slotsAreManaged(),n=this.getMetadata().getProperties();for(const[r,o]of Object.entries(n)){if(Ee(r)||console.warn(`"${r}" is not a valid property name. Use a name that does not collide with DOM APIs`),o.type===Boolean&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All booleans are false by default.`);if(o.type===Array)throw new Error(`Wrong type for property "${r}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(o.type===Object&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All properties of type "Object" are empty objects by default.`);if(o.multiple&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All multiple properties are empty arrays by default.`);Object.defineProperty(t,r,{get(){if(this._state[r]!==void 0)return this._state[r];const i=o.defaultValue;return o.type===Boolean?!1:o.type===String?i:o.multiple?[]:i},set(i){let a;i=this.constructor.getMetadata().constructor.validatePropertyValue(i,o);const c=this._state[r];o.multiple&&o.compareValues?a=!Te(c,i):et(o.type,F)?a=!o.type.valuesAreEqual(c,i):a=c!==i,a&&(this._state[r]=i,B.call(this,{type:"property",name:r,newValue:i,oldValue:c}),this._updateAttribute(r,i))}})}if(s){const r=this.getMetadata().getSlots();for(const[o,i]of Object.entries(r)){Ee(o)||console.warn(`"${o}" is not a valid property name. Use a name that does not collide with DOM APIs`);const a=i.propertyName||o;Object.defineProperty(t,a,{get(){return this._state[a]!==void 0?this._state[a]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get metadata(){return Le}static set metadata(t){Le=t}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!Ot.has(this)){const t=this.dependencies.filter((s,n,r)=>r.indexOf(s)===n);Ot.set(this,t)}return Ot.get(this)}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map(t=>t.define()))}static async onDefine(){return Promise.resolve()}static async define(){await gr(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const t=this.getMetadata().getTag(),s=this.getMetadata().getAltTag(),n=Js(t),r=customElements.get(t);return r&&!n?Ys(t):r||(this._generateAccessors(),ae(t),window.customElements.define(t,this),s&&!customElements.get(s)&&(ae(s),window.customElements.define(s,Wr(this,()=>{console.log(`The ${s} tag is deprecated and will be removed in the next release, please use ${t} instead.`)})))),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let s=this;for(;s!==L;)s=Object.getPrototypeOf(s),t.unshift(s.metadata);const n=Zt({},...t);return this._metadata=new vr(n),this._metadata}}/**
10
+ * @license
11
+ * Copyright 2017 Google LLC
12
+ * SPDX-License-Identifier: BSD-3-Clause
13
+ */var Pt;const x=globalThis.trustedTypes,Oe=x?x.createPolicy("lit-html",{createHTML:e=>e}):void 0,S=`lit$${(Math.random()+"").slice(9)}$`,_s="?"+S,qr=`<${_s}>`,N=document,W=(e="")=>N.createComment(e),Z=e=>e===null||typeof e!="object"&&typeof e!="function",ws=Array.isArray,Gr=e=>{var t;return ws(e)||typeof((t=e)===null||t===void 0?void 0:t[Symbol.iterator])=="function"},H=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Pe=/-->/g,Ie=/>/g,$=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,De=/'/g,Re=/"/g,vs=/^(?:script|style|textarea|title)$/i,Kr=e=>(t,...s)=>({_$litType$:e,strings:t,values:s}),Jr=Kr(1),U=Symbol.for("lit-noChange"),f=Symbol.for("lit-nothing"),xe=new WeakMap,Xr=(e,t,s)=>{var n,r;const o=(n=s==null?void 0:s.renderBefore)!==null&&n!==void 0?n:t;let i=o._$litPart$;if(i===void 0){const a=(r=s==null?void 0:s.renderBefore)!==null&&r!==void 0?r:null;o._$litPart$=i=new G(t.insertBefore(W(),a),a,void 0,s!=null?s:{})}return i._$AI(e),i},D=N.createTreeWalker(N,129,null,!1),Yr=(e,t)=>{const s=e.length-1,n=[];let r,o=t===2?"<svg>":"",i=H;for(let c=0;c<s;c++){const l=e[c];let h,d,u=-1,p=0;for(;p<l.length&&(i.lastIndex=p,d=i.exec(l),d!==null);)p=i.lastIndex,i===H?d[1]==="!--"?i=Pe:d[1]!==void 0?i=Ie:d[2]!==void 0?(vs.test(d[2])&&(r=RegExp("</"+d[2],"g")),i=$):d[3]!==void 0&&(i=$):i===$?d[0]===">"?(i=r!=null?r:H,u=-1):d[1]===void 0?u=-2:(u=i.lastIndex-d[2].length,h=d[1],i=d[3]===void 0?$:d[3]==='"'?Re:De):i===Re||i===De?i=$:i===Pe||i===Ie?i=H:(i=$,r=void 0);const v=i===$&&e[c+1].startsWith("/>")?" ":"";o+=i===H?l+qr:u>=0?(n.push(h),l.slice(0,u)+"$lit$"+l.slice(u)+S+v):l+S+(u===-2?(n.push(void 0),c):v)}const a=o+(e[s]||"<?>")+(t===2?"</svg>":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[Oe!==void 0?Oe.createHTML(a):a,n]};class q{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let o=0,i=0;const a=t.length-1,c=this.parts,[l,h]=Yr(t,s);if(this.el=q.createElement(l,n),D.currentNode=this.el.content,s===2){const d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(r=D.nextNode())!==null&&c.length<a;){if(r.nodeType===1){if(r.hasAttributes()){const d=[];for(const u of r.getAttributeNames())if(u.endsWith("$lit$")||u.startsWith(S)){const p=h[i++];if(d.push(u),p!==void 0){const v=r.getAttribute(p.toLowerCase()+"$lit$").split(S),g=/([.?@])?(.*)/.exec(p);c.push({type:1,index:o,name:g[2],strings:v,ctor:g[1]==="."?to:g[1]==="?"?so:g[1]==="@"?no:gt})}else c.push({type:6,index:o})}for(const u of d)r.removeAttribute(u)}if(vs.test(r.tagName)){const d=r.textContent.split(S),u=d.length-1;if(u>0){r.textContent=x?x.emptyScript:"";for(let p=0;p<u;p++)r.append(d[p],W()),D.nextNode(),c.push({type:2,index:++o});r.append(d[u],W())}}}else if(r.nodeType===8)if(r.data===_s)c.push({type:2,index:o});else{let d=-1;for(;(d=r.data.indexOf(S,d+1))!==-1;)c.push({type:7,index:o}),d+=S.length-1}o++}}static createElement(t,s){const n=N.createElement("template");return n.innerHTML=t,n}}function k(e,t,s=e,n){var r,o,i,a;if(t===U)return t;let c=n!==void 0?(r=s._$Cl)===null||r===void 0?void 0:r[n]:s._$Cu;const l=Z(t)?void 0:t._$litDirective$;return(c==null?void 0:c.constructor)!==l&&((o=c==null?void 0:c._$AO)===null||o===void 0||o.call(c,!1),l===void 0?c=void 0:(c=new l(e),c._$AT(e,s,n)),n!==void 0?((i=(a=s)._$Cl)!==null&&i!==void 0?i:a._$Cl=[])[n]=c:s._$Cu=c),c!==void 0&&(t=k(e,c._$AS(e,t.values),c,n)),t}class Qr{constructor(t,s){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=s}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var s;const{el:{content:n},parts:r}=this._$AD,o=((s=t==null?void 0:t.creationScope)!==null&&s!==void 0?s:N).importNode(n,!0);D.currentNode=o;let i=D.nextNode(),a=0,c=0,l=r[0];for(;l!==void 0;){if(a===l.index){let h;l.type===2?h=new G(i,i.nextSibling,this,t):l.type===1?h=new l.ctor(i,l.name,l.strings,this,t):l.type===6&&(h=new ro(i,this,t)),this.v.push(h),l=r[++c]}a!==(l==null?void 0:l.index)&&(i=D.nextNode(),a++)}return o}m(t){let s=0;for(const n of this.v)n!==void 0&&(n.strings!==void 0?(n._$AI(t,n,s),s+=n.strings.length-2):n._$AI(t[s])),s++}}class G{constructor(t,s,n,r){var o;this.type=2,this._$AH=f,this._$AN=void 0,this._$AA=t,this._$AB=s,this._$AM=n,this.options=r,this._$Cg=(o=r==null?void 0:r.isConnected)===null||o===void 0||o}get _$AU(){var t,s;return(s=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&s!==void 0?s:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const s=this._$AM;return s!==void 0&&t.nodeType===11&&(t=s.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,s=this){t=k(this,t,s),Z(t)?t===f||t==null||t===""?(this._$AH!==f&&this._$AR(),this._$AH=f):t!==this._$AH&&t!==U&&this.$(t):t._$litType$!==void 0?this.T(t):t.nodeType!==void 0?this.k(t):Gr(t)?this.S(t):this.$(t)}M(t,s=this._$AB){return this._$AA.parentNode.insertBefore(t,s)}k(t){this._$AH!==t&&(this._$AR(),this._$AH=this.M(t))}$(t){this._$AH!==f&&Z(this._$AH)?this._$AA.nextSibling.data=t:this.k(N.createTextNode(t)),this._$AH=t}T(t){var s;const{values:n,_$litType$:r}=t,o=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=q.createElement(r.h,this.options)),r);if(((s=this._$AH)===null||s===void 0?void 0:s._$AD)===o)this._$AH.m(n);else{const i=new Qr(o,this),a=i.p(this.options);i.m(n),this.k(a),this._$AH=i}}_$AC(t){let s=xe.get(t.strings);return s===void 0&&xe.set(t.strings,s=new q(t)),s}S(t){ws(this._$AH)||(this._$AH=[],this._$AR());const s=this._$AH;let n,r=0;for(const o of t)r===s.length?s.push(n=new G(this.M(W()),this.M(W()),this,this.options)):n=s[r],n._$AI(o),r++;r<s.length&&(this._$AR(n&&n._$AB.nextSibling,r),s.length=r)}_$AR(t=this._$AA.nextSibling,s){var n;for((n=this._$AP)===null||n===void 0||n.call(this,!1,!0,s);t&&t!==this._$AB;){const r=t.nextSibling;t.remove(),t=r}}setConnected(t){var s;this._$AM===void 0&&(this._$Cg=t,(s=this._$AP)===null||s===void 0||s.call(this,t))}}class gt{constructor(t,s,n,r,o){this.type=1,this._$AH=f,this._$AN=void 0,this.element=t,this.name=s,this._$AM=r,this.options=o,n.length>2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=f}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,s=this,n,r){const o=this.strings;let i=!1;if(o===void 0)t=k(this,t,s,0),i=!Z(t)||t!==this._$AH&&t!==U,i&&(this._$AH=t);else{const a=t;let c,l;for(t=o[0],c=0;c<o.length-1;c++)l=k(this,a[n+c],s,c),l===U&&(l=this._$AH[c]),i||(i=!Z(l)||l!==this._$AH[c]),l===f?t=f:t!==f&&(t+=(l!=null?l:"")+o[c+1]),this._$AH[c]=l}i&&!r&&this.C(t)}C(t){t===f?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t!=null?t:"")}}class to extends gt{constructor(){super(...arguments),this.type=3}C(t){this.element[this.name]=t===f?void 0:t}}const eo=x?x.emptyScript:"";class so extends gt{constructor(){super(...arguments),this.type=4}C(t){t&&t!==f?this.element.setAttribute(this.name,eo):this.element.removeAttribute(this.name)}}class no extends gt{constructor(t,s,n,r,o){super(t,s,n,r,o),this.type=5}_$AI(t,s=this){var n;if((t=(n=k(this,t,s,0))!==null&&n!==void 0?n:f)===U)return;const r=this._$AH,o=t===f&&r!==f||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,i=t!==f&&(r===f||o);o&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var s,n;typeof this._$AH=="function"?this._$AH.call((n=(s=this.options)===null||s===void 0?void 0:s.host)!==null&&n!==void 0?n:this.element,t):this._$AH.handleEvent(t)}}class ro{constructor(t,s,n){this.element=t,this.type=6,this._$AN=void 0,this._$AM=s,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(t){k(this,t)}}const Ne=window.litHtmlPolyfillSupport;Ne==null||Ne(q,G),((Pt=globalThis.litHtmlVersions)!==null&&Pt!==void 0?Pt:globalThis.litHtmlVersions=[]).push("2.2.2");/**
14
+ * @license
15
+ * Copyright 2017 Google LLC
16
+ * SPDX-License-Identifier: BSD-3-Clause
17
+ */const oo={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6};class io{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,s,n){this._$Ct=t,this._$AM=s,this._$Ci=n}_$AS(t,s){return this.update(t,s)}update(t,s){return this.render(...s)}}/**
18
+ * @license
19
+ * Copyright 2017 Google LLC
20
+ * SPDX-License-Identifier: BSD-3-Clause
21
+ */class Ue extends io{constructor(t){if(super(t),this.it=f,t.type!==oo.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===f||t==null)return this.ft=void 0,this.it=t;if(t===U)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this.ft;this.it=t;const s=[t];return s.raw=s,this.ft={_$litType$:this.constructor.resultType,strings:s,values:[]}}}Ue.directiveName="unsafeHTML",Ue.resultType=1;const y=(...e)=>{const t=_("LitStatic");return(t?t.html:Jr)(...e)},mt=(e,t,s,n,{host:r}={})=>{const o=_("OpenUI5Enablement");o&&!n&&(e=o.wrapTemplateResultInBusyMarkup(y,r,e)),typeof s=="string"?e=y`<style>${s}</style>${e}`:Array.isArray(s)&&s.length&&(e=y`${s.map(i=>y`<link type="text/css" rel="stylesheet" href="${i}">`)}${e}`),Xr(e,t,{host:r})},ao={tag:"ui5-test-generic",properties:{strProp:{type:String},boolProp:{type:Boolean},objectProp:{type:Object},noAttributeProp:{type:String,noAttribute:!0},multiProp:{type:String,multiple:!0},defaultValueProp:{type:String,defaultValue:"Hello"}},managedSlots:!0,slots:{default:{type:Node},other:{type:HTMLElement},individual:{type:HTMLElement,individualSlots:!0},named:{type:HTMLElement,propertyName:"items"}}};class Ss extends L{static get metadata(){return ao}static get render(){return mt}static get template(){return t=>y`<div><p>
22
+ <slot></slot>
23
+ <slot name="other"></slot>
24
+ <slot name="individual-1"></slot>
25
+ <slot name="individual-2"></slot>
26
+ </p></div>`}static get styles(){return`:host {
27
+ display: inline-block;
28
+ border: 1px solid black;
29
+ color: var(--var1);
30
+ }`}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}Ss.define();const co={tag:"ui5-test-no-shadow"};class lo extends L{static get metadata(){return co}}lo.define();const uo={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,invalidateOnChildChange:{properties:["prop1"]}},items:{type:HTMLElement,invalidateOnChildChange:{properties:!0}}}};class ho extends L{static get metadata(){return uo}static get render(){return mt}static get template(){return t=>y`<div>
31
+ <slot></slot>
32
+ </div>`}}ho.define();const fo={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};class po extends L{static get metadata(){return fo}static get render(){return mt}static get template(){return t=>y`<div></div>`}}po.define();const go={tag:"ui5-with-static-area",properties:{staticContent:{type:Boolean}},slots:{}};class mo extends L{static get metadata(){return go}static get render(){return mt}static get template(){return t=>y`
33
+ <div dir=${t.effectiveDir}>
34
+ WithStaticArea works!
35
+ </div>`}static get staticAreaTemplate(){return t=>y`
36
+ <div class="ui5-with-static-area-content">
37
+ Static area content.
38
+ </div>`}static get styles(){return`
39
+ :host {
40
+ display: inline-block;
41
+ border: 1px solid black;
42
+ color: red;
43
+ }`}async addStaticArea(){if(!this.staticContent)return;const t=await this.getStaticAreaItemDomRef();return this.responsivePopover=t.querySelector(".ui5-with-static-area-content"),this.responsivePopover}onBeforeRendering(){this.addStaticArea()}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}mo.define();const yo={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};class _o extends Ss{static get metadata(){return yo}}_o.define();const wo=":root{ --var1: red; }",vo=":root{ --var1: green; }",So=":root{ --var1: blue; }",Ao=":root{ --var1: orange; }",bo=":root{ --var1: orange; }",$o=":root{ --var1: yellow; }",Co=":root{ --var1: yellow; }";b("@ui5/webcomponents-base-test","sap_fiori_3",()=>wo);b("@ui5/webcomponents-base-test","sap_fiori_3_dark",()=>vo);b("@ui5/webcomponents-base-test","sap_belize",()=>So);b("@ui5/webcomponents-base-test","sap_belize_hcb",()=>Ao);b("@ui5/webcomponents-base-test","sap_belize_hcw",()=>bo);b("@ui5/webcomponents-base-test","sap_fiori_3_hcb",()=>$o);b("@ui5/webcomponents-base-test","sap_fiori_3_hcw",()=>Co);const Eo=/('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)\}|[{}]/g,To=(e,t)=>(t=t||[],e.replace(Eo,(s,n,r,o,i)=>{if(n)return"'";if(r)return r.replace(/''/g,"'");if(o)return String(t[parseInt(o)]);throw new Error(`[i18n]: pattern syntax error at pos ${i}`)})),It=new Map;class Mo{constructor(t){this.packageName=t}getText(t,...s){if(typeof t=="string"&&(t={key:t,defaultText:t}),!t||!t.key)return"";const n=_n(this.packageName);n&&!n[t.key]&&console.warn(`Key ${t.key} not found in the i18n bundle, the default text will be used`);const r=n&&n[t.key]?n[t.key]:t.defaultText||t.key;return To(r,s)}}const Lo=e=>{if(It.has(e))return It.get(e);const t=new Mo(e);return It.set(e,t),t},Oo=async e=>(await ts(e),Lo(e));let Dt;const Po=()=>(Dt===void 0&&(Dt=Os()),Dt),As={Gregorian:"Gregorian",Islamic:"Islamic",Japanese:"Japanese",Buddhist:"Buddhist",Persian:"Persian"};class Wt extends F{static isValid(t){return!!As[t]}}Wt.generateTypeAccessors(As);let Y;const Io=()=>(Y===void 0&&(Y=Ns()),Wt.isValid(Y)?Y:Wt.Gregorian);let Rt;const Do=()=>(Rt===void 0&&(Rt=Us()),Rt.firstDayOfWeek),Ro=new T,xo="directionChange",No=()=>Ro.fireEvent(xo),Uo=async()=>{const e=No();await Promise.all(e),await Jt({rtlAware:!0})};window.registerThemePropertiesLoader=b;window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:Po,getLanguage:it,getTheme:pt,setTheme:cs,getNoConflict:te,setNoConflict:Vr,getCalendarType:Io,getRTL:ms,getFirstDayOfWeek:Do},getIconNames:Kn,registerI18nLoader:yn,getI18nBundle:Oo,renderFinished:Kt,applyDirection:Uo,EventProvider:T};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Supported icon collection names and 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
+ * "SAP-icons-TNT/actor" and "tnt/actor", "BusinessSuiteInAppSymbols/3d" and "business-suite/3d",
7
+ * "SAP-icons-v5/accept" and "horizon/accept".
8
+ *
9
+ * Note: technically, in the code we maintain the collections under the "value" name - "tnt", "business-suite",
10
+ * SAP-icons-v5" and "SAP-icons"(which does not have an alias).
11
+ */
12
+ const IconCollectionsAlias = {
13
+ "SAP-icons-TNT": "tnt",
14
+ "BusinessSuiteInAppSymbols": "business-suite",
15
+ "horizon": "SAP-icons-v5",
16
+ };
17
+
18
+ export default IconCollectionsAlias;
@@ -1,9 +1,23 @@
1
1
  import { getAnimationMode as getConfiguredAnimationMode } from "../InitialConfiguration.js";
2
+ import AnimationMode from "../types/AnimationMode.js";
2
3
 
3
- const animationMode = getConfiguredAnimationMode();
4
+ let animationMode;
4
5
 
5
6
  const getAnimationMode = () => {
7
+ if (animationMode === undefined) {
8
+ animationMode = getConfiguredAnimationMode();
9
+ }
10
+
6
11
  return animationMode;
7
12
  };
8
13
 
9
- export { getAnimationMode }; // eslint-disable-line
14
+ const setAnimationMode = newAnimationMode => {
15
+ if (Object.values(AnimationMode).includes(newAnimationMode)) {
16
+ animationMode = newAnimationMode;
17
+ }
18
+ };
19
+
20
+ export {
21
+ getAnimationMode,
22
+ setAnimationMode,
23
+ };
@@ -1,15 +1,15 @@
1
- import CalendarType from "@ui5/webcomponents-utils/dist/sap/ui/core/CalendarType.js";
1
+ import CalendarType from "../types/CalendarType.js";
2
2
  import { getCalendarType as getConfiguredCalendarType } from "../InitialConfiguration.js";
3
3
 
4
- const calendarType = getConfiguredCalendarType();
4
+ let calendarType;
5
5
 
6
6
  const getCalendarType = () => {
7
- if (calendarType) {
8
- const type = Object.keys(CalendarType).find(calType => calType === calendarType);
7
+ if (calendarType === undefined) {
8
+ calendarType = getConfiguredCalendarType();
9
+ }
9
10
 
10
- if (type) {
11
- return type;
12
- }
11
+ if (CalendarType.isValid(calendarType)) {
12
+ return calendarType;
13
13
  }
14
14
 
15
15
  return CalendarType.Gregorian;
@@ -1,8 +1,12 @@
1
1
  import { getFormatSettings } from "../InitialConfiguration.js";
2
2
 
3
- const formatSettings = getFormatSettings();
3
+ let formatSettings;
4
4
 
5
5
  const getFirstDayOfWeek = () => {
6
+ if (formatSettings === undefined) {
7
+ formatSettings = getFormatSettings();
8
+ }
9
+
6
10
  return formatSettings.firstDayOfWeek;
7
11
  };
8
12
 
@@ -0,0 +1,52 @@
1
+ import { getTheme, isThemeFamily } from "./Theme.js";
2
+
3
+ const IconCollectionConfiguration = new Map();
4
+
5
+ /**
6
+ * Sets the default icon collection (v4 or v5) per theme,
7
+ * which will be applied in case icon collection is not specified.
8
+ *
9
+ * Note: by default SAP-icons-v5 is used in SAP Horizon and SAP-icons-v4 for all the rest.
10
+ * @param {String} theme
11
+ * @param {String} collectionName
12
+ */
13
+ const setDefaultIconCollection = (theme, collectionName) => {
14
+ if (collectionName === "horizon") {
15
+ collectionName = "SAP-icons-v5";
16
+ }
17
+
18
+ IconCollectionConfiguration.set(theme, collectionName);
19
+ };
20
+
21
+ /**
22
+ * Returns the default icon collection (v4 or v5) for given theme,
23
+ * that is configured.
24
+ *
25
+ * @param {String} theme
26
+ * @returns {String}
27
+ */
28
+ const getDefaultIconCollection = theme => {
29
+ return IconCollectionConfiguration.get(theme);
30
+ };
31
+
32
+ /**
33
+ * Returns the effective icon collection that will be applied for icon web components
34
+ * whenever namespace is not specified.
35
+ * @returns {String}
36
+ */
37
+ const getEffectiveDefaultIconCollection = () => {
38
+ const currentTheme = getTheme();
39
+ const currentThemeConfiguration = IconCollectionConfiguration.get(currentTheme);
40
+
41
+ if (currentThemeConfiguration) {
42
+ return currentThemeConfiguration;
43
+ }
44
+
45
+ return isThemeFamily("sap_horizon") ? "SAP-icons-v5" : "SAP-icons";
46
+ };
47
+
48
+ export {
49
+ setDefaultIconCollection,
50
+ getDefaultIconCollection,
51
+ getEffectiveDefaultIconCollection,
52
+ };