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

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 (670) hide show
  1. package/.eslintignore +8 -3
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +758 -0
  4. package/README.md +57 -7
  5. package/bundle.esm.js +36 -18
  6. package/config/wdio.conf.cjs +400 -0
  7. package/dist/AssetRegistry.d.ts +5 -0
  8. package/dist/AssetRegistry.js +6 -9
  9. package/dist/AssetRegistry.js.map +1 -0
  10. package/dist/Boot.d.ts +9 -0
  11. package/dist/Boot.js +71 -0
  12. package/dist/Boot.js.map +1 -0
  13. package/dist/CSP.d.ts +30 -0
  14. package/dist/CSP.js +51 -0
  15. package/dist/CSP.js.map +1 -0
  16. package/dist/CustomElementsRegistry.d.ts +5 -0
  17. package/dist/CustomElementsRegistry.js +73 -18
  18. package/dist/CustomElementsRegistry.js.map +1 -0
  19. package/dist/CustomElementsScope.d.ts +7 -0
  20. package/dist/CustomElementsScope.js +11 -0
  21. package/dist/CustomElementsScope.js.map +1 -0
  22. package/dist/CustomElementsScopeUtils.d.ts +55 -0
  23. package/dist/CustomElementsScopeUtils.js +90 -0
  24. package/dist/CustomElementsScopeUtils.js.map +1 -0
  25. package/dist/DOMObserver.d.ts +11 -0
  26. package/dist/DOMObserver.js +23 -0
  27. package/dist/DOMObserver.js.map +1 -0
  28. package/dist/Device.d.ts +12 -0
  29. package/dist/Device.js +159 -816
  30. package/dist/Device.js.map +1 -0
  31. package/dist/EventProvider.d.ts +25 -0
  32. package/dist/EventProvider.js +67 -70
  33. package/dist/EventProvider.js.map +1 -0
  34. package/dist/FeaturesRegistry.d.ts +3 -0
  35. package/dist/FeaturesRegistry.js +5 -7
  36. package/dist/FeaturesRegistry.js.map +1 -0
  37. package/dist/FontFace.d.ts +2 -0
  38. package/dist/FontFace.js +21 -69
  39. package/dist/FontFace.js.map +1 -0
  40. package/dist/IgnoreCustomElements.d.ts +27 -0
  41. package/dist/IgnoreCustomElements.js +39 -0
  42. package/dist/IgnoreCustomElements.js.map +1 -0
  43. package/dist/InitialConfiguration.d.ts +27 -0
  44. package/dist/InitialConfiguration.js +128 -103
  45. package/dist/InitialConfiguration.js.map +1 -0
  46. package/dist/Keys.d.ts +57 -0
  47. package/dist/Keys.js +175 -158
  48. package/dist/Keys.js.map +1 -0
  49. package/dist/ManagedStyles.d.ts +8 -0
  50. package/dist/ManagedStyles.js +84 -0
  51. package/dist/ManagedStyles.js.map +1 -0
  52. package/dist/MarkedEvents.d.ts +9 -0
  53. package/dist/MarkedEvents.js +15 -0
  54. package/dist/MarkedEvents.js.map +1 -0
  55. package/dist/MediaRange.d.ts +37 -0
  56. package/dist/MediaRange.js +98 -0
  57. package/dist/MediaRange.js.map +1 -0
  58. package/dist/PropertiesFileFormat.d.ts +8 -0
  59. package/dist/PropertiesFileFormat.js +85 -0
  60. package/dist/PropertiesFileFormat.js.map +1 -0
  61. package/dist/Render.d.ts +47 -0
  62. package/dist/Render.js +143 -0
  63. package/dist/Render.js.map +1 -0
  64. package/dist/RenderQueue.d.ts +19 -0
  65. package/dist/RenderQueue.js +53 -39
  66. package/dist/RenderQueue.js.map +1 -0
  67. package/dist/Runtimes.d.ts +27 -0
  68. package/dist/Runtimes.js +86 -0
  69. package/dist/Runtimes.js.map +1 -0
  70. package/dist/StaticArea.d.ts +3 -0
  71. package/dist/StaticArea.js +4 -38
  72. package/dist/StaticArea.js.map +1 -0
  73. package/dist/StaticAreaItem.d.ts +36 -0
  74. package/dist/StaticAreaItem.js +95 -98
  75. package/dist/StaticAreaItem.js.map +1 -0
  76. package/dist/SystemCSSVars.d.ts +2 -0
  77. package/dist/SystemCSSVars.js +9 -0
  78. package/dist/SystemCSSVars.js.map +1 -0
  79. package/dist/Theming.d.ts +3 -0
  80. package/dist/Theming.js +3 -2
  81. package/dist/Theming.js.map +1 -0
  82. package/dist/UI5Element.d.ts +380 -0
  83. package/dist/UI5Element.js +948 -906
  84. package/dist/UI5Element.js.map +1 -0
  85. package/dist/UI5ElementMetadata.d.ts +150 -0
  86. package/dist/UI5ElementMetadata.js +278 -158
  87. package/dist/UI5ElementMetadata.js.map +1 -0
  88. package/dist/animations/AnimationQueue.d.ts +8 -0
  89. package/dist/animations/AnimationQueue.js +31 -38
  90. package/dist/animations/AnimationQueue.js.map +1 -0
  91. package/dist/animations/animate.d.ts +14 -0
  92. package/dist/animations/animate.js +46 -51
  93. package/dist/animations/animate.js.map +1 -0
  94. package/dist/animations/scroll.d.ts +5 -0
  95. package/dist/animations/scroll.js +18 -27
  96. package/dist/animations/scroll.js.map +1 -0
  97. package/dist/animations/slideDown.d.ts +5 -0
  98. package/dist/animations/slideDown.js +53 -78
  99. package/dist/animations/slideDown.js.map +1 -0
  100. package/dist/animations/slideUp.d.ts +5 -0
  101. package/dist/animations/slideUp.js +49 -70
  102. package/dist/animations/slideUp.js.map +1 -0
  103. package/dist/api.json +1 -0
  104. package/dist/asset-registries/Icons.d.ts +38 -0
  105. package/dist/asset-registries/Icons.js +125 -24
  106. package/dist/asset-registries/Icons.js.map +1 -0
  107. package/dist/asset-registries/Illustrations.d.ts +17 -0
  108. package/dist/asset-registries/Illustrations.js +46 -0
  109. package/dist/asset-registries/Illustrations.js.map +1 -0
  110. package/dist/asset-registries/LocaleData.d.ts +7 -0
  111. package/dist/asset-registries/LocaleData.js +125 -114
  112. package/dist/asset-registries/LocaleData.js.map +1 -0
  113. package/dist/asset-registries/Themes.d.ts +11 -0
  114. package/dist/asset-registries/Themes.js +41 -76
  115. package/dist/asset-registries/Themes.js.map +1 -0
  116. package/dist/asset-registries/i18n.d.ts +23 -0
  117. package/dist/asset-registries/i18n.js +80 -58
  118. package/dist/asset-registries/i18n.js.map +1 -0
  119. package/dist/assets/Boot.34b7cea0.css +1 -0
  120. package/dist/assets/Boot.48b53df7.js +9 -0
  121. package/dist/assets/bundle.esm.7885cd75.js +50 -0
  122. package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
  123. package/dist/assets-meta/IconCollectionsAlias.js +38 -0
  124. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  125. package/dist/config/AnimationMode.d.ts +14 -0
  126. package/dist/config/AnimationMode.js +23 -10
  127. package/dist/config/AnimationMode.js.map +1 -0
  128. package/dist/config/CalendarType.d.ts +8 -0
  129. package/dist/config/CalendarType.js +13 -12
  130. package/dist/config/CalendarType.js.map +1 -0
  131. package/dist/config/FormatSettings.d.ts +15 -0
  132. package/dist/config/FormatSettings.js +15 -9
  133. package/dist/config/FormatSettings.js.map +1 -0
  134. package/dist/config/Icons.d.ts +55 -0
  135. package/dist/config/Icons.js +103 -0
  136. package/dist/config/Icons.js.map +1 -0
  137. package/dist/config/Language.d.ts +40 -0
  138. package/dist/config/Language.js +66 -10
  139. package/dist/config/Language.js.map +1 -0
  140. package/dist/config/NoConflict.d.ts +20 -0
  141. package/dist/config/NoConflict.js +41 -41
  142. package/dist/config/NoConflict.js.map +1 -0
  143. package/dist/config/RTL.d.ts +7 -0
  144. package/dist/config/RTL.js +26 -20
  145. package/dist/config/RTL.js.map +1 -0
  146. package/dist/config/Theme.d.ts +38 -0
  147. package/dist/config/Theme.js +64 -22
  148. package/dist/config/Theme.js.map +1 -0
  149. package/dist/config/ThemeRoot.d.ts +29 -0
  150. package/dist/config/ThemeRoot.js +59 -0
  151. package/dist/config/ThemeRoot.js.map +1 -0
  152. package/dist/config/Timezone.d.ts +17 -0
  153. package/dist/config/Timezone.js +30 -0
  154. package/dist/config/Timezone.js.map +1 -0
  155. package/dist/css/BusyIndicator.css +80 -0
  156. package/dist/css/FontFace.css +66 -0
  157. package/dist/css/OverrideFontFace.css +32 -0
  158. package/dist/css/SystemCSSVars.css +17 -0
  159. package/dist/decorators/customElement.d.ts +23 -0
  160. package/dist/decorators/customElement.js +37 -0
  161. package/dist/decorators/customElement.js.map +1 -0
  162. package/dist/decorators/event.d.ts +10 -0
  163. package/dist/decorators/event.js +24 -0
  164. package/dist/decorators/event.js.map +1 -0
  165. package/dist/decorators/property.d.ts +9 -0
  166. package/dist/decorators/property.js +24 -0
  167. package/dist/decorators/property.js.map +1 -0
  168. package/dist/decorators/slot.d.ts +9 -0
  169. package/dist/decorators/slot.js +37 -0
  170. package/dist/decorators/slot.js.map +1 -0
  171. package/dist/delegate/ItemNavigation.d.ts +113 -0
  172. package/dist/delegate/ItemNavigation.js +312 -274
  173. package/dist/delegate/ItemNavigation.js.map +1 -0
  174. package/dist/delegate/ResizeHandler.d.ts +25 -0
  175. package/dist/delegate/ResizeHandler.js +84 -63
  176. package/dist/delegate/ResizeHandler.js.map +1 -0
  177. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  178. package/dist/delegate/ScrollEnablement.js +159 -153
  179. package/dist/delegate/ScrollEnablement.js.map +1 -0
  180. package/dist/features/F6Navigation.d.ts +19 -0
  181. package/dist/features/F6Navigation.js +151 -0
  182. package/dist/features/F6Navigation.js.map +1 -0
  183. package/dist/features/LegacyDateFormats.d.ts +18 -0
  184. package/dist/features/LegacyDateFormats.js +20 -0
  185. package/dist/features/LegacyDateFormats.js.map +1 -0
  186. package/dist/features/OpenUI5Element.d.ts +9 -0
  187. package/dist/features/OpenUI5Element.js +5 -0
  188. package/dist/features/OpenUI5Element.js.map +1 -0
  189. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  190. package/dist/features/OpenUI5Enablement.js +96 -0
  191. package/dist/features/OpenUI5Enablement.js.map +1 -0
  192. package/dist/features/OpenUI5Support.d.ts +26 -0
  193. package/dist/features/OpenUI5Support.js +95 -86
  194. package/dist/features/OpenUI5Support.js.map +1 -0
  195. package/dist/generated/AssetParameters.js +3 -1
  196. package/dist/generated/VersionInfo.js +10 -0
  197. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  198. package/dist/generated/css/BusyIndicator.css.js +7 -0
  199. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  200. package/dist/generated/css/FontFace.css.d.ts +3 -0
  201. package/dist/generated/css/FontFace.css.js +7 -0
  202. package/dist/generated/css/FontFace.css.js.map +1 -0
  203. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  204. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  205. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  206. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  207. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  208. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  209. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  210. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
  211. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  212. package/dist/getSharedResource.d.ts +11 -0
  213. package/dist/getSharedResource.js +40 -0
  214. package/dist/getSharedResource.js.map +1 -0
  215. package/dist/global.d.ts +40 -0
  216. package/dist/i18nBundle.d.ts +43 -0
  217. package/dist/i18nBundle.js +74 -28
  218. package/dist/i18nBundle.js.map +1 -0
  219. package/dist/locale/Locale.d.ts +22 -0
  220. package/dist/locale/Locale.js +75 -87
  221. package/dist/locale/Locale.js.map +1 -0
  222. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  223. package/dist/locale/RTLAwareRegistry.js +9 -0
  224. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  225. package/dist/locale/applyDirection.d.ts +10 -0
  226. package/dist/locale/applyDirection.js +17 -0
  227. package/dist/locale/applyDirection.js.map +1 -0
  228. package/dist/locale/directionChange.d.ts +15 -0
  229. package/dist/locale/directionChange.js +24 -0
  230. package/dist/locale/directionChange.js.map +1 -0
  231. package/dist/locale/getEffectiveDir.d.ts +2 -0
  232. package/dist/locale/getEffectiveDir.js +24 -0
  233. package/dist/locale/getEffectiveDir.js.map +1 -0
  234. package/dist/locale/getLocale.d.ts +7 -0
  235. package/dist/locale/getLocale.js +28 -21
  236. package/dist/locale/getLocale.js.map +1 -0
  237. package/dist/locale/languageChange.d.ts +5 -0
  238. package/dist/locale/languageChange.js +14 -0
  239. package/dist/locale/languageChange.js.map +1 -0
  240. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  241. package/dist/locale/nextFallbackLocale.js +15 -19
  242. package/dist/locale/nextFallbackLocale.js.map +1 -0
  243. package/dist/locale/normalizeLocale.d.ts +7 -0
  244. package/dist/locale/normalizeLocale.js +34 -41
  245. package/dist/locale/normalizeLocale.js.map +1 -0
  246. package/dist/renderer/LitRenderer.d.ts +14 -0
  247. package/dist/renderer/LitRenderer.js +38 -12
  248. package/dist/renderer/LitRenderer.js.map +1 -0
  249. package/dist/renderer/directives/style-map.js +72 -0
  250. package/dist/renderer/executeTemplate.d.ts +13 -0
  251. package/dist/renderer/executeTemplate.js +30 -0
  252. package/dist/renderer/executeTemplate.js.map +1 -0
  253. package/dist/sap/base/Log.js +240 -0
  254. package/dist/sap/base/assert.js +7 -0
  255. package/dist/sap/base/security/URLListValidator.js +159 -0
  256. package/dist/sap/base/security/encodeCSS.js +14 -0
  257. package/dist/sap/base/security/encodeXML.js +23 -0
  258. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  259. package/dist/sap/base/strings/toHex.js +8 -0
  260. package/dist/sap/base/util/now.js +7 -0
  261. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  262. package/dist/theming/CustomStyle.d.ts +6 -0
  263. package/dist/theming/CustomStyle.js +46 -17
  264. package/dist/theming/CustomStyle.js.map +1 -0
  265. package/dist/theming/ThemeLoaded.d.ts +5 -0
  266. package/dist/theming/ThemeLoaded.js +14 -0
  267. package/dist/theming/ThemeLoaded.js.map +1 -0
  268. package/dist/theming/ThemeRegistered.d.ts +4 -0
  269. package/dist/theming/ThemeRegistered.js +11 -0
  270. package/dist/theming/ThemeRegistered.js.map +1 -0
  271. package/dist/theming/applyTheme.d.ts +2 -0
  272. package/dist/theming/applyTheme.js +64 -69
  273. package/dist/theming/applyTheme.js.map +1 -0
  274. package/dist/theming/getConstructableStyle.d.ts +9 -0
  275. package/dist/theming/getConstructableStyle.js +15 -15
  276. package/dist/theming/getConstructableStyle.js.map +1 -0
  277. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  278. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  279. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  280. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  281. package/dist/theming/getEffectiveStyle.js +30 -13
  282. package/dist/theming/getEffectiveStyle.js.map +1 -0
  283. package/dist/theming/getStylesString.d.ts +3 -0
  284. package/dist/theming/getStylesString.js +11 -0
  285. package/dist/theming/getStylesString.js.map +1 -0
  286. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  287. package/dist/theming/getThemeDesignerTheme.js +73 -60
  288. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  289. package/dist/theming/preloadLinks.d.ts +3 -0
  290. package/dist/theming/preloadLinks.js +19 -0
  291. package/dist/theming/preloadLinks.js.map +1 -0
  292. package/dist/thirdparty/_merge.d.ts +2 -0
  293. package/dist/thirdparty/_merge.js +7 -4
  294. package/dist/thirdparty/_merge.js.map +1 -0
  295. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  296. package/dist/thirdparty/isPlainObject.js +11 -10
  297. package/dist/thirdparty/isPlainObject.js.map +1 -0
  298. package/dist/thirdparty/merge.d.ts +2 -0
  299. package/dist/thirdparty/merge.js +4 -8
  300. package/dist/thirdparty/merge.js.map +1 -0
  301. package/dist/types/AnimationMode.d.ts +32 -0
  302. package/dist/types/AnimationMode.js +33 -6
  303. package/dist/types/AnimationMode.js.map +1 -0
  304. package/dist/types/CSSColor.d.ts +15 -0
  305. package/dist/types/CSSColor.js +18 -0
  306. package/dist/types/CSSColor.js.map +1 -0
  307. package/dist/types/CalendarType.d.ts +37 -0
  308. package/dist/types/CalendarType.js +35 -18
  309. package/dist/types/CalendarType.js.map +1 -0
  310. package/dist/types/DOMReference.d.ts +17 -0
  311. package/dist/types/DOMReference.js +25 -0
  312. package/dist/types/DOMReference.js.map +1 -0
  313. package/dist/types/DataType.d.ts +25 -0
  314. package/dist/types/DataType.js +33 -14
  315. package/dist/types/DataType.js.map +1 -0
  316. package/dist/types/Float.d.ts +17 -0
  317. package/dist/types/Float.js +21 -0
  318. package/dist/types/Float.js.map +1 -0
  319. package/dist/types/Integer.d.ts +17 -0
  320. package/dist/types/Integer.js +17 -5
  321. package/dist/types/Integer.js.map +1 -0
  322. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  323. package/dist/types/InvisibleMessageMode.js +27 -0
  324. package/dist/types/InvisibleMessageMode.js.map +1 -0
  325. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  326. package/dist/types/ItemNavigationBehavior.js +22 -17
  327. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  328. package/dist/types/NavigationMode.d.ts +32 -0
  329. package/dist/types/NavigationMode.js +33 -5
  330. package/dist/types/NavigationMode.js.map +1 -0
  331. package/dist/types/ValueState.d.ts +42 -0
  332. package/dist/types/ValueState.js +41 -19
  333. package/dist/types/ValueState.js.map +1 -0
  334. package/dist/types.d.ts +18 -0
  335. package/dist/types.js +2 -0
  336. package/dist/types.js.map +1 -0
  337. package/dist/updateShadowRoot.d.ts +8 -0
  338. package/dist/updateShadowRoot.js +41 -0
  339. package/dist/updateShadowRoot.js.map +1 -0
  340. package/dist/util/AriaLabelHelper.d.ts +15 -0
  341. package/dist/util/AriaLabelHelper.js +171 -0
  342. package/dist/util/AriaLabelHelper.js.map +1 -0
  343. package/dist/util/Caret.d.ts +7 -0
  344. package/dist/util/Caret.js +23 -0
  345. package/dist/util/Caret.js.map +1 -0
  346. package/dist/util/ColorConversion.d.ts +30 -0
  347. package/dist/util/ColorConversion.js +337 -0
  348. package/dist/util/ColorConversion.js.map +1 -0
  349. package/dist/util/FetchHelper.d.ts +3 -0
  350. package/dist/util/FetchHelper.js +19 -25
  351. package/dist/util/FetchHelper.js.map +1 -0
  352. package/dist/util/FocusableElements.d.ts +4 -0
  353. package/dist/util/FocusableElements.js +68 -56
  354. package/dist/util/FocusableElements.js.map +1 -0
  355. package/dist/util/HTMLSanitizer.d.ts +3 -0
  356. package/dist/util/HTMLSanitizer.js +6 -0
  357. package/dist/util/HTMLSanitizer.js.map +1 -0
  358. package/dist/util/InvisibleMessage.d.ts +10 -0
  359. package/dist/util/InvisibleMessage.js +56 -0
  360. package/dist/util/InvisibleMessage.js.map +1 -0
  361. package/dist/util/PopupUtils.d.ts +7 -0
  362. package/dist/util/PopupUtils.js +74 -0
  363. package/dist/util/PopupUtils.js.map +1 -0
  364. package/dist/util/SlotsHelper.d.ts +9 -0
  365. package/dist/util/SlotsHelper.js +30 -0
  366. package/dist/util/SlotsHelper.js.map +1 -0
  367. package/dist/util/StringHelper.d.ts +3 -0
  368. package/dist/util/StringHelper.js +17 -20
  369. package/dist/util/StringHelper.js.map +1 -0
  370. package/dist/util/TabbableElements.d.ts +17 -0
  371. package/dist/util/TabbableElements.js +53 -43
  372. package/dist/util/TabbableElements.js.map +1 -0
  373. package/dist/util/arraysAreEqual.d.ts +2 -0
  374. package/dist/util/arraysAreEqual.js +13 -0
  375. package/dist/util/arraysAreEqual.js.map +1 -0
  376. package/dist/util/clamp.d.ts +9 -0
  377. package/dist/util/clamp.js +12 -0
  378. package/dist/util/clamp.js.map +1 -0
  379. package/dist/util/createLinkInHead.d.ts +7 -0
  380. package/dist/util/createLinkInHead.js +21 -0
  381. package/dist/util/createLinkInHead.js.map +1 -0
  382. package/dist/util/createStyleInHead.d.ts +8 -0
  383. package/dist/util/createStyleInHead.js +10 -10
  384. package/dist/util/createStyleInHead.js.map +1 -0
  385. package/dist/util/debounce.d.ts +2 -0
  386. package/dist/util/debounce.js +15 -0
  387. package/dist/util/debounce.js.map +1 -0
  388. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  389. package/dist/util/detectNavigatorLanguage.js +7 -10
  390. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  391. package/dist/util/escapeRegex.d.ts +8 -0
  392. package/dist/util/escapeRegex.js +11 -0
  393. package/dist/util/escapeRegex.js.map +1 -0
  394. package/dist/util/formatMessage.d.ts +2 -0
  395. package/dist/util/formatMessage.js +15 -19
  396. package/dist/util/formatMessage.js.map +1 -0
  397. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  398. package/dist/util/generateHighlightedMarkup.js +41 -0
  399. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  400. package/dist/util/getActiveElement.d.ts +2 -0
  401. package/dist/util/getActiveElement.js +9 -0
  402. package/dist/util/getActiveElement.js.map +1 -0
  403. package/dist/util/getClassCopy.d.ts +400 -0
  404. package/dist/util/getClassCopy.js +10 -0
  405. package/dist/util/getClassCopy.js.map +1 -0
  406. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  407. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  408. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  409. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  410. package/dist/util/getEffectiveContentDensity.js +4 -0
  411. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  412. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  413. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  414. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  415. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  416. package/dist/util/getFastNavigationGroups.js +51 -0
  417. package/dist/util/getFastNavigationGroups.js.map +1 -0
  418. package/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
  419. package/dist/util/getFileExtension.js +9 -11
  420. package/dist/util/getFileExtension.js.map +1 -0
  421. package/dist/util/getNormalizedTarget.d.ts +7 -0
  422. package/dist/util/getNormalizedTarget.js +14 -0
  423. package/dist/util/getNormalizedTarget.js.map +1 -0
  424. package/dist/util/getSingletonElementInstance.d.ts +11 -0
  425. package/dist/util/getSingletonElementInstance.js +19 -0
  426. package/dist/util/getSingletonElementInstance.js.map +1 -0
  427. package/dist/util/isElementClickable.d.ts +2 -0
  428. package/dist/util/isElementClickable.js +16 -0
  429. package/dist/util/isElementClickable.js.map +1 -0
  430. package/dist/util/isElementHidden.d.ts +2 -0
  431. package/dist/util/isElementHidden.js +8 -0
  432. package/dist/util/isElementHidden.js.map +1 -0
  433. package/dist/util/isElementInView.d.ts +6 -0
  434. package/dist/util/isElementInView.js +12 -0
  435. package/dist/util/isElementInView.js.map +1 -0
  436. package/dist/util/isElementTabbable.d.ts +9 -0
  437. package/dist/util/isElementTabbable.js +30 -0
  438. package/dist/util/isElementTabbable.js.map +1 -0
  439. package/dist/util/isValidPropertyName.d.ts +8 -0
  440. package/dist/util/isValidPropertyName.js +19 -14
  441. package/dist/util/isValidPropertyName.js.map +1 -0
  442. package/dist/util/whenDOMReady.d.ts +2 -0
  443. package/dist/util/whenDOMReady.js +11 -10
  444. package/dist/util/whenDOMReady.js.map +1 -0
  445. package/dist/util/willShowContent.d.ts +2 -0
  446. package/dist/util/willShowContent.js +7 -0
  447. package/dist/util/willShowContent.js.map +1 -0
  448. package/dist/validateThemeRoot.d.ts +2 -0
  449. package/dist/validateThemeRoot.js +48 -0
  450. package/dist/validateThemeRoot.js.map +1 -0
  451. package/index.js +228 -2
  452. package/lib/generate-asset-parameters/index.js +11 -6
  453. package/lib/generate-styles/index.js +31 -0
  454. package/lib/generate-version-info/index.js +32 -0
  455. package/package-scripts.cjs +71 -0
  456. package/package.json +21 -12
  457. package/src/css/BusyIndicator.css +80 -0
  458. package/src/css/FontFace.css +66 -0
  459. package/src/css/OverrideFontFace.css +32 -0
  460. package/src/css/SystemCSSVars.css +17 -0
  461. package/src/renderer/directives/style-map.js +72 -0
  462. package/tsconfig.json +14 -0
  463. package/used-modules.txt +10 -0
  464. package/bundle.es5.js +0 -28
  465. package/config/rollup.config.js +0 -1
  466. package/config/wdio.conf.js +0 -1
  467. package/dist/RenderScheduler.js +0 -146
  468. package/dist/SVGIconRegistry.js +0 -60
  469. package/dist/animations/config.js +0 -5
  470. package/dist/boot.js +0 -32
  471. package/dist/compatibility/DOMObserver.js +0 -62
  472. package/dist/compatibility/patchNodeValue.js +0 -24
  473. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  474. package/dist/delegate/CustomResize.js +0 -78
  475. package/dist/delegate/NativeResize.js +0 -44
  476. package/dist/features/browsersupport/Edge.js +0 -6
  477. package/dist/features/browsersupport/IE11.js +0 -41
  478. package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  479. package/dist/renderer/ifDefined.js +0 -21
  480. package/dist/resources/bundle.es5.js +0 -212
  481. package/dist/resources/bundle.es5.js.map +0 -1
  482. package/dist/resources/bundle.esm.js +0 -129
  483. package/dist/resources/bundle.esm.js.map +0 -1
  484. package/dist/test-resources/assets/Themes.js +0 -13
  485. package/dist/test-resources/elements/Child.js +0 -35
  486. package/dist/test-resources/elements/Generic.js +0 -84
  487. package/dist/test-resources/elements/GenericExt.js +0 -26
  488. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  489. package/dist/test-resources/elements/Parent.js +0 -37
  490. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  491. package/dist/test-resources/pages/AllTestElements.html +0 -42
  492. package/dist/test-resources/pages/Configuration.html +0 -20
  493. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  494. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  495. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  496. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  497. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  498. package/dist/test-resources/specs/StaticArea.spec.js +0 -34
  499. package/dist/test-resources/specs/Theming.spec.js +0 -31
  500. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  501. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  502. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  503. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  504. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  505. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  506. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  507. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  508. package/dist/theming/CSSVarsPonyfill.js +0 -24
  509. package/dist/theming/adaptCSSForIE.js +0 -90
  510. package/dist/theming/createComponentStyleTag.js +0 -49
  511. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  512. package/dist/thirdparty/Array.from.js +0 -16
  513. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  514. package/dist/thirdparty/Array.prototype.find.js +0 -46
  515. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  516. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  517. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  518. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  519. package/dist/thirdparty/Number.isInteger.js +0 -5
  520. package/dist/thirdparty/Number.isNaN.js +0 -1
  521. package/dist/thirdparty/Number.parseInt.js +0 -1
  522. package/dist/thirdparty/Object.assign.js +0 -31
  523. package/dist/thirdparty/Object.entries.js +0 -11
  524. package/dist/thirdparty/Symbol.js +0 -2
  525. package/dist/thirdparty/WeakSet.js +0 -27
  526. package/dist/thirdparty/es6-string-methods.js +0 -182
  527. package/dist/thirdparty/events-polyfills.js +0 -89
  528. package/dist/thirdparty/fetch.js +0 -1
  529. package/dist/thirdparty/template.js +0 -600
  530. package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  531. package/dist/types/CSSSize.js +0 -9
  532. package/dist/types/PopupState.js +0 -37
  533. package/dist/util/findNodeOwner.js +0 -35
  534. package/dist/util/isDescendantOf.js +0 -15
  535. package/dist/util/isNodeClickable.js +0 -19
  536. package/dist/util/isNodeHidden.js +0 -13
  537. package/dist/util/isNodeTabbable.js +0 -28
  538. package/dist/util/isSlot.js +0 -3
  539. package/dist/webcomponentsjs/LICENSE.md +0 -19
  540. package/dist/webcomponentsjs/README.md +0 -229
  541. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  542. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  543. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  544. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  545. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  546. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  547. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  548. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  549. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  550. package/dist/webcomponentsjs/package.json +0 -46
  551. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  552. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  553. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  554. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  555. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  556. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  557. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  558. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  559. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  560. package/package-scripts.js +0 -47
  561. package/src/AssetRegistry.js +0 -9
  562. package/src/CustomElementsRegistry.js +0 -23
  563. package/src/Device.js +0 -823
  564. package/src/EventProvider.js +0 -73
  565. package/src/FeaturesRegistry.js +0 -11
  566. package/src/FontFace.js +0 -73
  567. package/src/InitialConfiguration.js +0 -131
  568. package/src/Keys.js +0 -161
  569. package/src/RenderQueue.js +0 -42
  570. package/src/RenderScheduler.js +0 -146
  571. package/src/SVGIconRegistry.js +0 -60
  572. package/src/StaticArea.js +0 -41
  573. package/src/StaticAreaItem.js +0 -105
  574. package/src/Theming.js +0 -3
  575. package/src/UI5Element.js +0 -926
  576. package/src/UI5ElementMetadata.js +0 -171
  577. package/src/animations/AnimationQueue.js +0 -42
  578. package/src/animations/animate.js +0 -53
  579. package/src/animations/config.js +0 -5
  580. package/src/animations/scroll.js +0 -28
  581. package/src/animations/slideDown.js +0 -79
  582. package/src/animations/slideUp.js +0 -71
  583. package/src/asset-registries/Icons.js +0 -24
  584. package/src/asset-registries/LocaleData.js +0 -125
  585. package/src/asset-registries/Themes.js +0 -87
  586. package/src/asset-registries/i18n.js +0 -79
  587. package/src/boot.js +0 -32
  588. package/src/compatibility/DOMObserver.js +0 -62
  589. package/src/compatibility/patchNodeValue.js +0 -24
  590. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  591. package/src/config/AnimationMode.js +0 -13
  592. package/src/config/CalendarType.js +0 -18
  593. package/src/config/FormatSettings.js +0 -13
  594. package/src/config/Language.js +0 -12
  595. package/src/config/NoConflict.js +0 -51
  596. package/src/config/RTL.js +0 -31
  597. package/src/config/Theme.js +0 -28
  598. package/src/delegate/CustomResize.js +0 -78
  599. package/src/delegate/ItemNavigation.js +0 -278
  600. package/src/delegate/NativeResize.js +0 -44
  601. package/src/delegate/ResizeHandler.js +0 -66
  602. package/src/delegate/ScrollEnablement.js +0 -159
  603. package/src/features/OpenUI5Support.js +0 -90
  604. package/src/features/browsersupport/Edge.js +0 -6
  605. package/src/features/browsersupport/IE11.js +0 -41
  606. package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  607. package/src/i18nBundle.js +0 -33
  608. package/src/locale/Locale.js +0 -91
  609. package/src/locale/getLocale.js +0 -31
  610. package/src/locale/nextFallbackLocale.js +0 -28
  611. package/src/locale/normalizeLocale.js +0 -54
  612. package/src/renderer/LitRenderer.js +0 -15
  613. package/src/renderer/ifDefined.js +0 -21
  614. package/src/theming/CSSVarsPonyfill.js +0 -24
  615. package/src/theming/CustomStyle.js +0 -19
  616. package/src/theming/adaptCSSForIE.js +0 -90
  617. package/src/theming/applyTheme.js +0 -81
  618. package/src/theming/createComponentStyleTag.js +0 -49
  619. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  620. package/src/theming/getConstructableStyle.js +0 -25
  621. package/src/theming/getEffectiveStyle.js +0 -15
  622. package/src/theming/getThemeDesignerTheme.js +0 -67
  623. package/src/thirdparty/Array.from.js +0 -16
  624. package/src/thirdparty/Array.prototype.fill.js +0 -44
  625. package/src/thirdparty/Array.prototype.find.js +0 -46
  626. package/src/thirdparty/Array.prototype.includes.js +0 -51
  627. package/src/thirdparty/Element.prototype.closest.js +0 -11
  628. package/src/thirdparty/Element.prototype.matches.js +0 -6
  629. package/src/thirdparty/Map.prototype.keys.js +0 -9
  630. package/src/thirdparty/Number.isInteger.js +0 -5
  631. package/src/thirdparty/Number.isNaN.js +0 -1
  632. package/src/thirdparty/Number.parseInt.js +0 -1
  633. package/src/thirdparty/Object.assign.js +0 -31
  634. package/src/thirdparty/Object.entries.js +0 -11
  635. package/src/thirdparty/Symbol.js +0 -2
  636. package/src/thirdparty/WeakSet.js +0 -27
  637. package/src/thirdparty/_merge.js +0 -32
  638. package/src/thirdparty/es6-string-methods.js +0 -182
  639. package/src/thirdparty/events-polyfills.js +0 -89
  640. package/src/thirdparty/fetch.js +0 -1
  641. package/src/thirdparty/isPlainObject.js +0 -18
  642. package/src/thirdparty/merge.js +0 -10
  643. package/src/thirdparty/template.js +0 -600
  644. package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  645. package/src/types/AnimationMode.js +0 -7
  646. package/src/types/CSSSize.js +0 -9
  647. package/src/types/CalendarType.js +0 -22
  648. package/src/types/DataType.js +0 -25
  649. package/src/types/Integer.js +0 -9
  650. package/src/types/ItemNavigationBehavior.js +0 -21
  651. package/src/types/NavigationMode.js +0 -6
  652. package/src/types/PopupState.js +0 -37
  653. package/src/types/ValueState.js +0 -22
  654. package/src/util/FetchHelper.js +0 -31
  655. package/src/util/FocusableElements.js +0 -60
  656. package/src/util/StringHelper.js +0 -26
  657. package/src/util/TabbableElements.js +0 -47
  658. package/src/util/createStyleInHead.js +0 -18
  659. package/src/util/detectNavigatorLanguage.js +0 -13
  660. package/src/util/findNodeOwner.js +0 -35
  661. package/src/util/formatMessage.js +0 -23
  662. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  663. package/src/util/isDescendantOf.js +0 -15
  664. package/src/util/isNodeClickable.js +0 -19
  665. package/src/util/isNodeHidden.js +0 -13
  666. package/src/util/isNodeTabbable.js +0 -28
  667. package/src/util/isSlot.js +0 -3
  668. package/src/util/isValidPropertyName.js +0 -23
  669. package/src/util/whenDOMReady.js +0 -13
  670. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -1,87 +1,52 @@
1
- import { fetchJsonOnce, fetchTextOnce } from "../util/FetchHelper.js";
2
1
  import { DEFAULT_THEME } from "../generated/AssetParameters.js";
3
- import getFileExtension from "../util/getFileExtension.js";
4
-
5
- const themeURLs = new Map();
2
+ import { fireThemeRegistered } from "../theming/ThemeRegistered.js";
6
3
  const themeStyles = new Map();
4
+ const loaders = new Map();
7
5
  const registeredPackages = new Set();
8
6
  const registeredThemes = new Set();
9
-
10
- /**
11
- * Used to provide CSS Vars for a specific theme for a specific package.
12
- * The CSS Vars can be passed directly as a string (containing them), as an object with a "_" property(containing them in the "_" property), or as a URL.
13
- * This URL must point to a JSON file, containing a "_" property.
14
- *
15
- * Example usage:
16
- * 1) Pass the CSS Vars as a string directly.
17
- * registerThemeProperties("my-package", "my_theme", ":root{--var1: red;}");
18
- * 2) Pass the CSS Vars as an object directly
19
- * registerThemeProperties("my-package", "my_theme", {"_": ":root{--var1: red;}"});
20
- * 3) Pass a URL to a CSS file, containing the CSS Vars. Will be fetched on demand, not upon registration.
21
- * registerThemeProperties("my-package", "my_theme", "http://url/to/my/theme.css");
22
- * 4) Pass a URL to a JSON file, containing the CSS Vars in its "_" property. Will be fetched on demand, not upon registration.
23
- * registerThemeProperties("my-package", "my_theme", "http://url/to/my/theme.json");
24
- *
25
- * @public
26
- * @param packageName - the NPM package for which CSS Vars are registered
27
- * @param themeName - the theme which the CSS Vars implement
28
- * @param style - can be one of four options: a string, an object with a "_" property, URL to a CSS file, or URL to a JSON file with a "_" property
29
- */
30
- const registerThemeProperties = (packageName, themeName, style) => {
31
- if (style._) {
32
- // JSON object like ({"_": ":root"})
33
- themeStyles.set(`${packageName}_${themeName}`, style._);
34
- } else if (style.includes(":root") || style === "") {
35
- // pure string, including empty string
36
- themeStyles.set(`${packageName}_${themeName}`, style);
37
- } else {
38
- // url for fetching
39
- themeURLs.set(`${packageName}_${themeName}`, style);
40
- }
41
- registeredPackages.add(packageName);
42
- registeredThemes.add(themeName);
7
+ const registerThemePropertiesLoader = (packageName, themeName, loader) => {
8
+ loaders.set(`${packageName}/${themeName}`, loader);
9
+ registeredPackages.add(packageName);
10
+ registeredThemes.add(themeName);
11
+ fireThemeRegistered(themeName);
43
12
  };
44
-
45
13
  const getThemeProperties = async (packageName, themeName) => {
46
- const style = themeStyles.get(`${packageName}_${themeName}`);
47
- if (style !== undefined) { // it's valid for style to be an empty string
48
- return style;
49
- }
50
-
51
- if (!registeredThemes.has(themeName)) {
52
- const regThemesStr = [...registeredThemes.values()].join(", ");
53
- console.warn(`You have requested a non-registered theme - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
54
- return themeStyles.get(`${packageName}_${DEFAULT_THEME}`);
55
- }
56
-
57
- const data = await fetchThemeProperties(packageName, themeName);
58
- const themeProps = data._ || data;
59
-
60
- themeStyles.set(`${packageName}_${themeName}`, themeProps);
61
- return themeProps;
14
+ const style = themeStyles.get(`${packageName}_${themeName}`);
15
+ if (style !== undefined) { // it's valid for style to be an empty string
16
+ return style;
17
+ }
18
+ if (!registeredThemes.has(themeName)) {
19
+ const regThemesStr = [...registeredThemes.values()].join(", ");
20
+ console.warn(`You have requested a non-registered theme ${themeName} - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
21
+ return _getThemeProperties(packageName, DEFAULT_THEME);
22
+ }
23
+ return _getThemeProperties(packageName, themeName);
62
24
  };
63
-
64
- const fetchThemeProperties = async (packageName, themeName) => {
65
- const url = themeURLs.get(`${packageName}_${themeName}`);
66
-
67
- if (!url) {
68
- throw new Error(`You have to import the ${packageName}/dist/Assets.js module to switch to additional themes`);
69
- }
70
-
71
- return getFileExtension(url) === ".css" ? fetchTextOnce(url) : fetchJsonOnce(url);
25
+ const _getThemeProperties = async (packageName, themeName) => {
26
+ const loader = loaders.get(`${packageName}/${themeName}`);
27
+ if (!loader) {
28
+ // no themes for package
29
+ console.error(`Theme [${themeName}] not registered for package [${packageName}]`); /* eslint-disable-line */
30
+ return;
31
+ }
32
+ let data;
33
+ try {
34
+ data = await loader(themeName);
35
+ }
36
+ catch (error) {
37
+ const e = error;
38
+ console.error(packageName, e.message); /* eslint-disable-line */
39
+ return;
40
+ }
41
+ const themeProps = data._ || data; // Refactor: remove _ everywhere
42
+ themeStyles.set(`${packageName}_${themeName}`, themeProps);
43
+ return themeProps;
72
44
  };
73
-
74
45
  const getRegisteredPackages = () => {
75
- return registeredPackages;
46
+ return registeredPackages;
76
47
  };
77
-
78
- const isThemeRegistered = theme => {
79
- return registeredThemes.has(theme);
80
- };
81
-
82
- export {
83
- registerThemeProperties,
84
- getThemeProperties,
85
- getRegisteredPackages,
86
- isThemeRegistered,
48
+ const isThemeRegistered = (theme) => {
49
+ return registeredThemes.has(theme);
87
50
  };
51
+ export { registerThemePropertiesLoader, getThemeProperties, getRegisteredPackages, isThemeRegistered, };
52
+ //# sourceMappingURL=Themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../src/asset-registries/Themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAKpE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;AACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;AAC/C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAC7C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE3C,MAAM,6BAA6B,GAAG,CAAC,WAAmB,EAAE,SAAiB,EAAE,MAAmB,EAAE,EAAE;IACrG,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;IACnD,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,WAAmB,EAAE,SAAiB,EAAE,EAAE;IAC3E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;IAC7D,IAAI,KAAK,KAAK,SAAS,EAAE,EAAE,6CAA6C;QACvE,OAAO,KAAK,CAAC;KACb;IAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACrC,MAAM,YAAY,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,6CAA6C,SAAS,sBAAsB,aAAa,4BAA4B,YAAY,EAAE,CAAC,CAAC,CAAC,yBAAyB;QAC5K,OAAO,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;KACvD;IAED,OAAO,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,WAAmB,EAAE,SAAiB,EAAE,EAAE;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE;QACZ,wBAAwB;QACxB,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,iCAAiC,WAAW,GAAG,CAAC,CAAC,CAAC,yBAAyB;QAC5G,OAAO;KACP;IACD,IAAI,IAAI,CAAC;IACT,IAAI;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;KAC/B;IAAC,OAAO,KAAc,EAAE;QACxB,MAAM,CAAC,GAAG,KAAc,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;QAChE,OAAO;KACP;IACD,MAAM,UAAU,GAAI,IAA0B,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,gCAAgC;IAE1F,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;IAClC,OAAO,kBAAkB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,EAAE;IAC3C,OAAO,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,OAAO,EACN,6BAA6B,EAC7B,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,GACjB,CAAC","sourcesContent":["import { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { StyleData, StyleDataCSP } from \"../types.js\";\nimport { fireThemeRegistered } from \"../theming/ThemeRegistered.js\";\n\ntype ThemeData = {_: StyleDataCSP } | StyleDataCSP | string;\ntype ThemeLoader = (themeName: string) => Promise<ThemeData>;\n\nconst themeStyles = new Map<string, StyleData>();\nconst loaders = new Map<string, ThemeLoader>();\nconst registeredPackages = new Set<string>();\nconst registeredThemes = new Set<string>();\n\nconst registerThemePropertiesLoader = (packageName: string, themeName: string, loader: ThemeLoader) => {\n\tloaders.set(`${packageName}/${themeName}`, loader);\n\tregisteredPackages.add(packageName);\n\tregisteredThemes.add(themeName);\n\tfireThemeRegistered(themeName);\n};\n\nconst getThemeProperties = async (packageName: string, themeName: string) => {\n\tconst style = themeStyles.get(`${packageName}_${themeName}`);\n\tif (style !== undefined) { // it's valid for style to be an empty string\n\t\treturn style;\n\t}\n\n\tif (!registeredThemes.has(themeName)) {\n\t\tconst regThemesStr = [...registeredThemes.values()].join(\", \");\n\t\tconsole.warn(`You have requested a non-registered theme ${themeName} - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */\n\t\treturn _getThemeProperties(packageName, DEFAULT_THEME);\n\t}\n\n\treturn _getThemeProperties(packageName, themeName);\n};\n\nconst _getThemeProperties = async (packageName: string, themeName: string) => {\n\tconst loader = loaders.get(`${packageName}/${themeName}`);\n\tif (!loader) {\n\t\t// no themes for package\n\t\tconsole.error(`Theme [${themeName}] not registered for package [${packageName}]`); /* eslint-disable-line */\n\t\treturn;\n\t}\n\tlet data;\n\ttry {\n\t\tdata = await loader(themeName);\n\t} catch (error: unknown) {\n\t\tconst e = error as Error;\n\t\tconsole.error(packageName, e.message); /* eslint-disable-line */\n\t\treturn;\n\t}\n\tconst themeProps = (data as {_: StyleDataCSP})._ || data; // Refactor: remove _ everywhere\n\n\tthemeStyles.set(`${packageName}_${themeName}`, themeProps);\n\treturn themeProps;\n};\n\nconst getRegisteredPackages = () => {\n\treturn registeredPackages;\n};\n\nconst isThemeRegistered = (theme: string) => {\n\treturn registeredThemes.has(theme);\n};\n\nexport {\n\tregisterThemePropertiesLoader,\n\tgetThemeProperties,\n\tgetRegisteredPackages,\n\tisThemeRegistered,\n};\n\nexport type {\n\tThemeData,\n\tThemeLoader,\n};\n"]}
@@ -0,0 +1,23 @@
1
+ type I18nLoader = (localeId: string) => Promise<I18nData>;
2
+ type I18nData = Record<string, string>;
3
+ /**
4
+ * Registers i18n loader function for given package and locale.
5
+ *
6
+ * @public
7
+ * @param {string} packageName for which package this loader can fetch data
8
+ * @param {string} localeId locale that this loader can handle
9
+ * @param {function} loader async function that will be passed a localeId and should return a JSON object
10
+ */
11
+ declare const registerI18nLoader: (packageName: string, localeId: string, loader: I18nLoader) => void;
12
+ declare const getI18nBundleData: (packageName: string) => I18nData | null | undefined;
13
+ /**
14
+ * This method preforms the asynchronous task of fetching the actual text resources. It will fetch
15
+ * each text resource over the network once (even for multiple calls to the same method).
16
+ * It should be fully finished before the i18nBundle class is created in the webcomponents.
17
+ * This method uses the bundle URLs that are populated by the <code>registerI18nBundle</code> method.
18
+ * To simplify the usage, the synchronization of both methods happens internally for the same <code>bundleId</code>
19
+ * @param {packageName} packageName the NPM package name
20
+ * @public
21
+ */
22
+ declare const fetchI18nBundle: (packageName: string) => Promise<void>;
23
+ export { registerI18nLoader, fetchI18nBundle, getI18nBundleData, };
@@ -1,36 +1,56 @@
1
1
  import getLocale from "../locale/getLocale.js";
2
- import { fetchJsonOnce } from "../util/FetchHelper.js";
2
+ import { attachLanguageChange } from "../locale/languageChange.js";
3
3
  import normalizeLocale from "../locale/normalizeLocale.js";
4
4
  import nextFallbackLocale from "../locale/nextFallbackLocale.js";
5
5
  import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
6
-
6
+ import { getFetchDefaultLanguage } from "../config/Language.js";
7
+ // contains package names for which the warning has been shown
8
+ const warningShown = new Set();
9
+ const reportedErrors = new Set();
7
10
  const bundleData = new Map();
8
- const bundleURLs = new Map();
9
-
11
+ const bundlePromises = new Map();
12
+ const loaders = new Map();
10
13
  /**
11
- * Sets a map with texts and ID the are related to.
12
- * @param {string} packageName package ID that the i18n bundle will be related to
13
- * @param {Object} data an object with string locales as keys and text translataions as values
14
+ * Registers i18n loader function for given package and locale.
15
+ *
14
16
  * @public
17
+ * @param {string} packageName for which package this loader can fetch data
18
+ * @param {string} localeId locale that this loader can handle
19
+ * @param {function} loader async function that will be passed a localeId and should return a JSON object
15
20
  */
16
- const setI18nBundleData = (packageName, data) => {
17
- bundleData.set(packageName, data);
21
+ const registerI18nLoader = (packageName, localeId, loader) => {
22
+ // register loader by key
23
+ const bundleKey = `${packageName}/${localeId}`;
24
+ loaders.set(bundleKey, loader);
18
25
  };
19
-
20
- const getI18nBundleData = packageName => {
21
- return bundleData.get(packageName);
26
+ const _setI18nBundleData = (packageName, data) => {
27
+ bundleData.set(packageName, data);
22
28
  };
23
-
24
- /**
25
- * Registers a map of locale/url information, to be used by the <code>fetchI18nBundle</code> method.
26
- * @param {string} packageName package ID that the i18n bundle will be related to
27
- * @param {Object} bundle an object with string locales as keys and the URLs of where the corresponding locale can be fetched from, f.e {"en": "path/en.json", ...}
28
- * @public
29
- */
30
- const registerI18nBundle = (packageName, bundle) => {
31
- bundleURLs.set(packageName, bundle);
29
+ const getI18nBundleData = (packageName) => {
30
+ return bundleData.get(packageName);
31
+ };
32
+ const _hasLoader = (packageName, localeId) => {
33
+ const bundleKey = `${packageName}/${localeId}`;
34
+ return loaders.has(bundleKey);
35
+ };
36
+ // load bundle over the network once
37
+ const _loadMessageBundleOnce = (packageName, localeId) => {
38
+ const bundleKey = `${packageName}/${localeId}`;
39
+ const loadMessageBundle = loaders.get(bundleKey);
40
+ if (loadMessageBundle && !bundlePromises.get(bundleKey)) {
41
+ bundlePromises.set(bundleKey, loadMessageBundle(localeId));
42
+ }
43
+ return bundlePromises.get(bundleKey); // Investigate if i18n loader exists and this won't return undefined.
44
+ };
45
+ const _showAssetsWarningOnce = (packageName) => {
46
+ if (!warningShown.has(packageName)) {
47
+ console.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */ ` Add \`import "${packageName}/dist/Assets.js"\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section "Assets" in the documentation for more information.`); /* eslint-disable-line */
48
+ warningShown.add(packageName);
49
+ }
50
+ };
51
+ const useFallbackBundle = (packageName, localeId) => {
52
+ return localeId !== DEFAULT_LANGUAGE && !_hasLoader(packageName, localeId);
32
53
  };
33
-
34
54
  /**
35
55
  * This method preforms the asynchronous task of fetching the actual text resources. It will fetch
36
56
  * each text resource over the network once (even for multiple calls to the same method).
@@ -40,40 +60,42 @@ const registerI18nBundle = (packageName, bundle) => {
40
60
  * @param {packageName} packageName the NPM package name
41
61
  * @public
42
62
  */
43
- const fetchI18nBundle = async packageName => {
44
- const bundlesForPackage = bundleURLs.get(packageName);
45
-
46
- if (!bundlesForPackage) {
47
- console.warn(`Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */
48
- ` You need to import ${packageName}/dist/Assets.js with a build tool that supports JSON imports.`); /* eslint-disable-line */
49
- return;
50
- }
51
-
52
- const language = getLocale().getLanguage();
53
-
54
- let localeId = normalizeLocale(language);
55
- while (!bundlesForPackage[localeId]) {
56
- localeId = nextFallbackLocale(localeId);
57
- }
58
-
59
- if (localeId === DEFAULT_LANGUAGE) {
60
- return;
61
- }
62
-
63
- const bundleURL = bundlesForPackage[localeId];
64
-
65
- if (typeof bundleURL === "object") { // inlined from build
66
- setI18nBundleData(packageName, bundleURL);
67
- return;
68
- }
69
-
70
- const data = await fetchJsonOnce(bundleURL);
71
- setI18nBundleData(packageName, data);
72
- };
73
-
74
- export {
75
- fetchI18nBundle,
76
- registerI18nBundle,
77
- setI18nBundleData,
78
- getI18nBundleData,
63
+ const fetchI18nBundle = async (packageName) => {
64
+ const language = getLocale().getLanguage();
65
+ const region = getLocale().getRegion();
66
+ let localeId = language + (region ? `-${region}` : ``);
67
+ if (useFallbackBundle(packageName, localeId)) {
68
+ localeId = normalizeLocale(localeId);
69
+ while (useFallbackBundle(packageName, localeId)) {
70
+ localeId = nextFallbackLocale(localeId);
71
+ }
72
+ }
73
+ // use default language unless configured to always fetch it from the network
74
+ const fetchDefaultLanguage = getFetchDefaultLanguage();
75
+ if (localeId === DEFAULT_LANGUAGE && !fetchDefaultLanguage) {
76
+ _setI18nBundleData(packageName, null); // reset for the default language (if data was set for a previous language)
77
+ return;
78
+ }
79
+ if (!_hasLoader(packageName, localeId)) {
80
+ _showAssetsWarningOnce(packageName);
81
+ return;
82
+ }
83
+ try {
84
+ const data = await _loadMessageBundleOnce(packageName, localeId);
85
+ _setI18nBundleData(packageName, data);
86
+ }
87
+ catch (error) {
88
+ const e = error;
89
+ if (!reportedErrors.has(e.message)) {
90
+ reportedErrors.add(e.message);
91
+ console.error(e.message); /* eslint-disable-line */
92
+ }
93
+ }
79
94
  };
95
+ // When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles
96
+ attachLanguageChange((lang /* eslint-disable-line */) => {
97
+ const allPackages = [...bundleData.keys()];
98
+ return Promise.all(allPackages.map(fetchI18nBundle));
99
+ });
100
+ export { registerI18nLoader, fetchI18nBundle, getI18nBundleData, };
101
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/asset-registries/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAKhE,8DAA8D;AAC9D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AAC/B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;AAEjC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;AACtD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;AAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAE,QAAgB,EAAE,MAAkB,EAAE,EAAE;IACxF,yBAAyB;IACzB,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAE,IAAqB,EAAE,EAAE;IACzE,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,EAAE;IACjD,OAAO,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,QAAgB,EAAE,EAAE;IAC5D,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC;IAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,oCAAoC;AACpC,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,QAAgB,EAAE,EAAE;IACxE,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC;IAC/C,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,iBAAiB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACxD,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC3D;IAED,OAAO,cAAc,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,CAAC,qEAAqE;AAC7G,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,EAAE;IACtD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACnC,OAAO,CAAC,IAAI,CAAC,IAAI,WAAW,6EAA6E,EAAE,yBAAyB,CACnI,kBAAkB,WAAW,4KAA4K,CAAC,CAAC,CAAC,yBAAyB;QACtO,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KAC9B;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,QAAgB,EAAE,EAAE;IACnE,OAAO,QAAQ,KAAK,gBAAgB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;IACrD,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC;IACvC,IAAI,QAAQ,GAAG,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEvD,IAAI,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;QAC7C,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAErC,OAAO,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;YAChD,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SACxC;KACD;IAED,6EAA6E;IAC7E,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;IACvD,IAAI,QAAQ,KAAK,gBAAgB,IAAI,CAAC,oBAAoB,EAAE;QAC3D,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,2EAA2E;QAClH,OAAO;KACP;IAED,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;QACvC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO;KACP;IAED,IAAI;QACH,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACjE,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KACtC;IAAC,OAAO,KAAc,EAAE;QACxB,MAAM,CAAC,GAAG,KAAc,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;YACnC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;SACnD;KACD;AACF,CAAC,CAAC;AAEF,8GAA8G;AAC9G,oBAAoB,CAAC,CAAC,IAAY,CAAC,yBAAyB,EAAE,EAAE;IAC/D,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GACjB,CAAC","sourcesContent":["import getLocale from \"../locale/getLocale.js\";\nimport { attachLanguageChange } from \"../locale/languageChange.js\";\nimport normalizeLocale from \"../locale/normalizeLocale.js\";\nimport nextFallbackLocale from \"../locale/nextFallbackLocale.js\";\nimport { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\nimport { getFetchDefaultLanguage } from \"../config/Language.js\";\n\ntype I18nLoader = (localeId: string) => Promise<I18nData>;\ntype I18nData = Record<string, string>;\n\n// contains package names for which the warning has been shown\nconst warningShown = new Set();\nconst reportedErrors = new Set();\n\nconst bundleData = new Map<string, I18nData | null>();\nconst bundlePromises = new Map<string, Promise<I18nData>>();\nconst loaders = new Map<string, I18nLoader>();\n\n/**\n * Registers i18n loader function for given package and locale.\n *\n * @public\n * @param {string} packageName for which package this loader can fetch data\n * @param {string} localeId locale that this loader can handle\n * @param {function} loader async function that will be passed a localeId and should return a JSON object\n */\nconst registerI18nLoader = (packageName: string, localeId: string, loader: I18nLoader) => {\n\t// register loader by key\n\tconst bundleKey = `${packageName}/${localeId}`;\n\tloaders.set(bundleKey, loader);\n};\n\nconst _setI18nBundleData = (packageName: string, data: I18nData | null) => {\n\tbundleData.set(packageName, data);\n};\n\nconst getI18nBundleData = (packageName: string) => {\n\treturn bundleData.get(packageName);\n};\n\nconst _hasLoader = (packageName: string, localeId: string) => {\n\tconst bundleKey = `${packageName}/${localeId}`;\n\treturn loaders.has(bundleKey);\n};\n\n// load bundle over the network once\nconst _loadMessageBundleOnce = (packageName: string, localeId: string) => {\n\tconst bundleKey = `${packageName}/${localeId}`;\n\tconst loadMessageBundle = loaders.get(bundleKey);\n\n\tif (loadMessageBundle && !bundlePromises.get(bundleKey)) {\n\t\tbundlePromises.set(bundleKey, loadMessageBundle(localeId));\n\t}\n\n\treturn bundlePromises.get(bundleKey)!; // Investigate if i18n loader exists and this won't return undefined.\n};\n\nconst _showAssetsWarningOnce = (packageName: string) => {\n\tif (!warningShown.has(packageName)) {\n\t\tconsole.warn(`[${packageName}]: Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */\n\t\t\t` Add \\`import \"${packageName}/dist/Assets.js\"\\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section \"Assets\" in the documentation for more information.`); /* eslint-disable-line */\n\t\twarningShown.add(packageName);\n\t}\n};\n\nconst useFallbackBundle = (packageName: string, localeId: string) => {\n\treturn localeId !== DEFAULT_LANGUAGE && !_hasLoader(packageName, localeId);\n};\n\n/**\n * This method preforms the asynchronous task of fetching the actual text resources. It will fetch\n * each text resource over the network once (even for multiple calls to the same method).\n * It should be fully finished before the i18nBundle class is created in the webcomponents.\n * This method uses the bundle URLs that are populated by the <code>registerI18nBundle</code> method.\n * To simplify the usage, the synchronization of both methods happens internally for the same <code>bundleId</code>\n * @param {packageName} packageName the NPM package name\n * @public\n */\nconst fetchI18nBundle = async (packageName: string) => {\n\tconst language = getLocale().getLanguage();\n\tconst region = getLocale().getRegion();\n\tlet localeId = language + (region ? `-${region}` : ``);\n\n\tif (useFallbackBundle(packageName, localeId)) {\n\t\tlocaleId = normalizeLocale(localeId);\n\n\t\twhile (useFallbackBundle(packageName, localeId)) {\n\t\t\tlocaleId = nextFallbackLocale(localeId);\n\t\t}\n\t}\n\n\t// use default language unless configured to always fetch it from the network\n\tconst fetchDefaultLanguage = getFetchDefaultLanguage();\n\tif (localeId === DEFAULT_LANGUAGE && !fetchDefaultLanguage) {\n\t\t_setI18nBundleData(packageName, null); // reset for the default language (if data was set for a previous language)\n\t\treturn;\n\t}\n\n\tif (!_hasLoader(packageName, localeId)) {\n\t\t_showAssetsWarningOnce(packageName);\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst data = await _loadMessageBundleOnce(packageName, localeId);\n\t\t_setI18nBundleData(packageName, data);\n\t} catch (error: unknown) {\n\t\tconst e = error as Error;\n\t\tif (!reportedErrors.has(e.message)) {\n\t\t\treportedErrors.add(e.message);\n\t\t\tconsole.error(e.message); /* eslint-disable-line */\n\t\t}\n\t}\n};\n\n// When the language changes dynamically (the user calls setLanguage), re-fetch all previously fetched bundles\nattachLanguageChange((lang: string /* eslint-disable-line */) => {\n\tconst allPackages = [...bundleData.keys()];\n\treturn Promise.all(allPackages.map(fetchI18nBundle));\n});\n\nexport {\n\tregisterI18nLoader,\n\tfetchI18nBundle,\n\tgetI18nBundleData,\n};\n"]}
@@ -0,0 +1 @@
1
+ .content{color:var(--customCol);background-color:var(--customBg)}
@@ -0,0 +1,9 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&s(a)}).observe(document,{childList:!0,subtree:!0});function n(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 s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();const v={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"]}},I=v.themes.default,ot=v.themes.all,F=v.languages.default,u=v.locales.default,le=v.locales.all,at=()=>{const e=navigator.languages,t=()=>navigator.language;return e&&e[0]||t()||F};var $e={},Ce=$e.hasOwnProperty,it=$e.toString,Re=Ce.toString,ct=Re.call(Object),fe=function(e){var t,n;return!e||it.call(e)!=="[object Object]"?!1:(t=Object.getPrototypeOf(e),t?(n=Ce.call(t,"constructor")&&t.constructor,typeof n=="function"&&Re.call(n)===ct):!0)},ut=Object.create(null),Oe=function(e,t,n,s){var r,o,a,c,$,p,f=arguments[2]||{},W=3,st=arguments.length,ue=arguments[0]||!1,rt=arguments[1]?void 0:ut;for(typeof f!="object"&&typeof f!="function"&&(f={});W<st;W++)if(($=arguments[W])!=null)for(c in $)r=f[c],a=$[c],!(c==="__proto__"||f===a)&&(ue&&a&&(fe(a)||(o=Array.isArray(a)))?(o?(o=!1,p=r&&Array.isArray(r)?r:[]):p=r&&fe(r)?r:{},f[c]=Oe(ue,arguments[1],p,a)):a!==rt&&(f[c]=a));return f};const Ue=function(e,t){return Oe(!0,!1,...arguments)},Ie=new Map,Zn=(e,t)=>{Ie.set(e,t)},w=e=>Ie.get(e),lt=e=>{const t=document.querySelector(`META[name="${e}"]`);return t&&t.getAttribute("content")},ft=e=>{const t=lt("sap-allowedThemeOrigins");return t&&t.split(",").some(n=>n==="*"||e===n.trim())},dt=(e,t)=>{const n=new URL(e).pathname;return new URL(n,t).toString()},Me=e=>{let t;try{if(e.startsWith(".")||e.startsWith("/"))t=new URL(e,window.location.href).toString();else{const n=new URL(e),s=n.origin;s&&ft(s)?t=n.toString():t=dt(n.toString(),window.location.href)}return t.endsWith("/")||(t=`${t}/`),`${t}UI5/`}catch{}};var Q;(function(e){e.Full="full",e.Basic="basic",e.Minimal="minimal",e.None="none"})(Q||(Q={}));const ht=Q;let de=!1,i={animationMode:ht.Full,theme:I,themeRoot:void 0,rtl:void 0,language:void 0,timezone:void 0,calendarType:void 0,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const Hn=()=>(l(),i.animationMode),pt=()=>(l(),i.theme),gt=()=>(l(),i.themeRoot),qn=()=>(l(),i.rtl),mt=()=>(l(),i.language),yt=()=>(l(),i.fetchDefaultLanguage),Gn=()=>(l(),i.noConflict),Kn=()=>(l(),i.calendarType),Jn=()=>(l(),i.formatSettings),M=new Map;M.set("true",!0);M.set("false",!1);const wt=()=>{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&&(i=Ue(i,t))}},St=()=>{const e=new URLSearchParams(window.location.search);e.forEach((t,n)=>{const s=n.split("sap-").length;s===0||s===n.split("sap-ui-").length||he(n,t,"sap")}),e.forEach((t,n)=>{!n.startsWith("sap-ui")||he(n,t,"sap-ui")})},_t=e=>{const t=e.split("@")[1];return Me(t)},bt=(e,t)=>e==="theme"&&t.includes("@")?t.split("@")[0]:t,he=(e,t,n)=>{const s=t.toLowerCase(),r=e.split(`${n}-`)[1];M.has(t)&&(t=M.get(s)),r==="theme"?(i.theme=bt(r,t),t&&t.includes("@")&&(i.themeRoot=_t(t))):i[r]=t},Tt=()=>{const e=w("OpenUI5Support");if(!e||!e.isLoaded())return;const t=e.getConfigurationSettingsObject();i=Ue(i,t)},l=()=>{typeof document>"u"||de||(wt(),St(),Tt(),de=!0)};class L{constructor(){this._eventRegistry=new Map}attachEvent(t,n){const s=this._eventRegistry,r=s.get(t);if(!Array.isArray(r)){s.set(t,[n]);return}r.includes(n)||r.push(n)}detachEvent(t,n){const s=this._eventRegistry,r=s.get(t);if(!r)return;const o=r.indexOf(n);o!==-1&&r.splice(o,1),r.length===0&&s.delete(t)}fireEvent(t,n){const r=this._eventRegistry.get(t);return r?r.map(o=>o.call(this,n)):[]}fireEventAsync(t,n){return Promise.all(this.fireEvent(t,n))}isHandlerAttached(t,n){const r=this._eventRegistry.get(t);return r?r.includes(n):!1}hasListeners(t){return!!this._eventRegistry.get(t)}}const ke=new L,De="languageChange",Be=e=>{ke.attachEvent(De,e)},At=e=>ke.fireEventAsync(De,e),pe=10;class vt{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(n=>n!==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 n;const s=new Map;for(n=this.shift();n;){const r=s.get(n)||0;if(r>pe)throw new Error(`Web component processed too many times this task, max allowed is: ${pe}`);t(n),s.set(n,r+1),n=this.shift()}}}const Lt=(e,t=document.body,n)=>{let s=document.querySelector(e);return s||(s=n?n():document.createElement(e),t.insertBefore(s,t.firstChild))},Et=()=>{const e=document.createElement("meta");return e.setAttribute("name","ui5-shared-resources"),e.setAttribute("content",""),e},Pt=()=>typeof document>"u"?null:Lt('meta[name="ui5-shared-resources"]',document.head,Et),j=(e,t)=>{const n=e.split(".");let s=Pt();if(!s)return t;for(let r=0;r<n.length;r++){const o=n[r],a=r===n.length-1;Object.prototype.hasOwnProperty.call(s,o)||(s[o]=a?t:{}),s=s[o]}return s},$t={version:"0.0.0-db622d8a8",major:0,minor:0,patch:0,suffix:"-db622d8a8",isNext:!0,buildTime:1685708291};let O,Ct="";const Z=new Map,T=j("Runtimes",[]),Rt=()=>{if(O===void 0){O=T.length;const e=$t;T.push({...e,alias:Ct,description:`Runtime ${O} - ver ${e.version}`})}},E=()=>O,Ot=(e,t)=>{const n=`${e},${t}`;if(Z.has(n))return Z.get(n);const s=T[e],r=T[t];if(!s||!r)throw new Error("Invalid runtime index supplied");if(s.isNext||r.isNext)return s.buildTime-r.buildTime;const o=s.major-r.major;if(o)return o;const a=s.minor-r.minor;if(a)return a;const c=s.patch-r.patch;if(c)return c;const p=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(s.suffix,r.suffix);return Z.set(n,p),p},Ut=()=>T,xe=j("Tags",new Map),se=new Set;let h=new Map,H;const Fe=-1,Xn=e=>{se.add(e),xe.set(e,E())},Yn=e=>se.has(e),It=()=>[...se.values()],Qn=e=>{let t=xe.get(e);t===void 0&&(t=Fe),h.has(t)||h.set(t,new Set),h.get(t).add(e),H||(H=setTimeout(()=>{Mt(),h=new Map,H=void 0},1e3))},Mt=()=>{const e=Ut(),t=E(),n=e[t];let s="Multiple UI5 Web Components instances detected.";e.length>1&&(s=`${s}
2
+ Loading order (versions before 1.1.0 not listed): ${e.map(r=>`
3
+ ${r.description}`).join("")}`),[...h.keys()].forEach(r=>{let o,a;r===Fe?(o=1,a={description:"Older unknown runtime"}):(o=Ot(t,r),a=e[r]);let c;o>0?c="an older":o<0?c="a newer":c="the same",s=`${s}
4
+
5
+ "${n.description}" failed to define ${h.get(r).size} tag(s) as they were defined by a runtime of ${c} version "${a.description}": ${[...h.get(r)].sort().join(", ")}.`,o>0?s=`${s}
6
+ WARNING! If your code uses features of the above web components, unavailable in ${a.description}, it might not work as expected!`:s=`${s}
7
+ Since the above web components were defined by the same or newer version runtime, they should be compatible with your code.`}),s=`${s}
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(s)},je=new Set,es=e=>{je.add(e)},kt=e=>je.has(e),re=new Set,Dt=new L,S=new vt;let g,U,q,C;const Bt=async e=>{S.add(e),await Ft()},xt=e=>{Dt.fireEvent("beforeComponentRender",e),re.add(e),e._render()},ts=e=>{S.remove(e),re.delete(e)},Ft=async()=>{C||(C=new Promise(e=>{window.requestAnimationFrame(()=>{S.process(xt),C=null,e(),q||(q=setTimeout(()=>{q=void 0,S.isEmpty()&&Nt()},200))})})),await C},jt=()=>g||(g=new Promise(e=>{U=e,window.requestAnimationFrame(()=>{S.isEmpty()&&(g=void 0,e())})}),g),zt=()=>{const e=It().map(t=>customElements.whenDefined(t));return Promise.all(e)},Vt=async()=>{await zt(),await jt()},Nt=()=>{!S.isEmpty()||U&&(U(),U=void 0,g=void 0)},ze=async e=>{re.forEach(t=>{const n=t.constructor,s=n.getMetadata().getTag(),r=kt(n),o=n.getMetadata().isLanguageAware(),a=n.getMetadata().isThemeAware();(!e||e.tag===s||e.rtlAware&&r||e.languageAware&&o||e.themeAware&&a)&&Bt(t)}),await Vt()};let _,ee;const Wt=()=>(_===void 0&&(_=mt()),_),ns=async e=>{_!==e&&(_=e,await At(e),await ze({languageAware:!0}))},Zt=e=>{ee=e},Ht=()=>(ee===void 0&&Zt(yt()),ee),qt=/^((?:[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 Ve{constructor(t){const n=qt.exec(t.replace(/_/g,"-"));if(n===null)throw new Error(`The given language ${t} does not adhere to BCP-47.`);this.sLocaleId=t,this.sLanguage=n[1]||F,this.sScript=n[2]||"",this.sRegion=n[3]||"",this.sVariant=n[4]&&n[4].slice(1)||null,this.sExtension=n[5]&&n[5].slice(1)||null,this.sPrivateUse=n[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,s=>s.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 G=new Map,Ne=e=>(G.has(e)||G.set(e,new Ve(e)),G.get(e)),ge=e=>{try{if(e&&typeof e=="string")return Ne(e)}catch{}return new Ve(u)},te=e=>{if(e)return ge(e);const t=Wt();return t?Ne(t):ge(at())},Gt=/^((?:[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,me=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,Kt={he:"iw",yi:"ji",nb:"no",sr:"sh"},Jt=e=>{let t;if(!e)return u;if(typeof e=="string"&&(t=Gt.exec(e.replace(/_/g,"-")))){let n=t[1].toLowerCase(),s=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,a=t[6];return n=Kt[n]||n,a&&(t=me.exec(a))||o&&(t=me.exec(o))?`en_US_${t[1].toLowerCase()}`:(n==="zh"&&!s&&(r==="hans"?s="CN":r==="hant"&&(s="TW")),n+(s?"_"+s+(o?"_"+o.replace("-","_"):""):""))}return u},Xt=e=>{if(!e)return u;if(e==="zh_HK")return"zh_TW";const t=e.lastIndexOf("_");return t>=0?e.slice(0,t):e!==u?u:""},ye=new Set,we=new Set,oe=new Map,K=new Map,ae=new Map,ss=(e,t,n)=>{const s=`${e}/${t}`;ae.set(s,n)},Se=(e,t)=>{oe.set(e,t)},rs=e=>oe.get(e),We=(e,t)=>{const n=`${e}/${t}`;return ae.has(n)},Yt=(e,t)=>{const n=`${e}/${t}`,s=ae.get(n);return s&&!K.get(n)&&K.set(n,s(t)),K.get(n)},Qt=e=>{ye.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.`),ye.add(e))},_e=(e,t)=>t!==F&&!We(e,t),en=async e=>{const t=te().getLanguage(),n=te().getRegion();let s=t+(n?`-${n}`:"");if(_e(e,s))for(s=Jt(s);_e(e,s);)s=Xt(s);const r=Ht();if(s===F&&!r){Se(e,null);return}if(!We(e,s)){Qt(e);return}try{const o=await Yt(e,s);Se(e,o)}catch(o){const a=o;we.has(a.message)||(we.add(a.message),console.error(a.message))}};Be(e=>{const t=[...oe.keys()];return Promise.all(t.map(en))});const tn=new Map,k=new Map,J=new Map,be=new Set;let Te=!1;const nn={iw:"he",ji:"yi",in:"id"},Ae=e=>{Te||(console.warn(`[LocaleData] Supported locale "${e}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),Te=!0)},sn=(e,t,n)=>{e=e&&nn[e]||e,e==="no"&&(e="nb"),e==="zh"&&!t&&(n==="Hans"?t="CN":n==="Hant"&&(t="TW")),(e==="sh"||e==="sr"&&n==="Latn")&&(e="sr",t="Latn");let s=`${e}_${t}`;return le.includes(s)||(s=e,le.includes(s))?k.has(s)?s:(Ae(s),u):u},ve=(e,t)=>{tn.set(e,t)},rn=e=>{if(!J.get(e)){const t=k.get(e);if(!t)throw new Error(`CLDR data for locale ${e} is not loaded!`);J.set(e,t(e))}return J.get(e)},on=async(e,t,n)=>{const s=sn(e,t,n),r=w("OpenUI5Support");if(r){const o=r.getLocaleDataObject();if(o){ve(s,o);return}}try{const o=await rn(s);ve(s,o)}catch(o){const a=o;be.has(a.message)||(be.add(a.message),console.error(a.message))}},an=(e,t)=>{k.set(e,t)};an("en",async()=>(await fetch("https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json")).json());Be(()=>{const e=te();return on(e.getLanguage(),e.getRegion(),e.getScript())});const Ze=new L,He="themeRegistered",cn=e=>{Ze.attachEvent(He,e)},un=e=>Ze.fireEvent(He,e),qe=new Map,Ge=new Map,Ke=new Set,D=new Set,os=(e,t,n)=>{Ge.set(`${e}/${t}`,n),Ke.add(e),D.add(t),un(t)},Je=async(e,t)=>{const n=qe.get(`${e}_${t}`);if(n!==void 0)return n;if(!D.has(t)){const s=[...D.values()].join(", ");return console.warn(`You have requested a non-registered theme ${t} - falling back to ${I}. Registered themes are: ${s}`),Le(e,I)}return Le(e,t)},Le=async(e,t)=>{const n=Ge.get(`${e}/${t}`);if(!n){console.error(`Theme [${t}] not registered for package [${e}]`);return}let s;try{s=await n(t)}catch(o){console.error(e,o.message);return}const r=s._||s;return qe.set(`${e}_${t}`,r),r},Xe=()=>Ke,ln=e=>D.has(e);var B;(function(e){e["SAP-icons"]="SAP-icons-v4",e.horizon="SAP-icons-v5",e["SAP-icons-TNT"]="tnt",e.BusinessSuiteInAppSymbols="business-suite"})(B||(B={}));const Ye=e=>B[e]?B[e]:e,fn=(e,t)=>{const n=document.createElement("style");return n.type="text/css",t&&Object.entries(t).forEach(s=>n.setAttribute(...s)),n.textContent=e,document.head.appendChild(n),n},dn=(e,t)=>{const n=document.createElement("link");return n.type="text/css",n.rel="stylesheet",t&&Object.entries(t).forEach(s=>n.setAttribute(...s)),n.href=e,document.head.appendChild(n),new Promise(s=>{n.addEventListener("load",s),n.addEventListener("error",s)})},z=(e,t)=>t?`${e}|${t}`:e,V=(e,t,n="")=>{let s=typeof e=="string"?e:e.content;if(s.includes("[_ui5host]")&&(s=s.replaceAll("[_ui5host]",`[_ui5rt${E()}]`)),document.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(s),r._ui5StyleId=z(t,n),document.adoptedStyleSheets=[...document.adoptedStyleSheets,r]}else{const r={};r[t]=n,fn(s,r)}},hn=(e,t,n="")=>{let s=typeof e=="string"?e:e.content;if(s.includes("[_ui5host]")&&(s=s.replaceAll("[_ui5host]",`[_ui5rt${E()}]`)),document.adoptedStyleSheets){const r=document.adoptedStyleSheets.find(o=>o._ui5StyleId===z(t,n));r&&r.replaceSync(s||"")}else{const r=document.querySelector(`head>style[${t}="${n}"]`);r&&(r.textContent=s||"")}},N=(e,t="")=>document.adoptedStyleSheets?!!document.adoptedStyleSheets.find(n=>n._ui5StyleId===z(e,t)):!!document.querySelector(`head>style[${e}="${t}"]`),pn=(e,t="")=>{var n;if(document.adoptedStyleSheets)document.adoptedStyleSheets=document.adoptedStyleSheets.filter(s=>s._ui5StyleId!==z(e,t));else{const s=document.querySelector(`head > style[${e}="${t}"]`);(n=s==null?void 0:s.parentElement)==null||n.removeChild(s)}},Qe=(e,t,n="")=>{N(t,n)?hn(e,t,n):V(e,t,n)},m=new Set,gn=()=>{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},mn=e=>{const t=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(e);if(t&&t.length>=2){let n=t[1];if(n=n.replace(/\\"/g,'"'),n.charAt(0)!=="{"&&n.charAt(n.length-1)!=="}")try{n=decodeURIComponent(n)}catch{m.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),m.add("decode"));return}try{return JSON.parse(n)}catch{m.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),m.add("parse"))}}},yn=e=>{let t,n;try{t=e.Path.match(/\.([^.]+)\.css_variables$/)[1],n=e.Extends[0]}catch{m.has("object")||(console.warn("Malformed theme metadata Object",e),m.add("object"));return}return{themeName:t,baseThemeName:n}},ne=()=>{const e=gn();if(!e||e==="none")return;const t=mn(e);if(t)return yn(t)},wn=new L,Sn="themeLoaded",_n=e=>wn.fireEvent(Sn,e);let b;const et=()=>(b===void 0&&(b=gt()),b),as=e=>{if(b!==e){if(b=e,!Me(e)){console.warn(`The ${e} is not valid. Check the allowed origins as suggested in the "setThemeRoot" description.`);return}return tt(P())}},bn=e=>`${et()}Base/baseLib/${e}/css_variables.css`,tt=async e=>{const t=document.querySelector(`[sap-ui-webcomponents-theme="${e}"]`);t&&document.head.removeChild(t),await dn(bn(e),{"sap-ui-webcomponents-theme":e})},A="@ui5/webcomponents-theming",Tn=()=>Xe().has(A),An=async e=>{if(!Tn())return;const t=await Je(A,e);t&&Qe(t,"data-ui5-theme-properties",A)},vn=()=>{pn("data-ui5-theme-properties",A)},Ln=async e=>{const n=[...Xe()].map(async s=>{if(s===A)return;const r=await Je(s,e);r&&Qe(r,`data-ui5-component-properties-${E()}`,s)});return Promise.all(n)},En=async e=>{var s;const t=ne();if(t)return t;const n=w("OpenUI5Support");if(n){if(n.cssVariablesLoaded())return{themeName:(s=n.getConfigurationSettingsObject())==null?void 0:s.theme,baseThemeName:""}}else if(et())return await tt(e),ne()},ie=async e=>{const t=await En(e);!t||e!==t.themeName?await An(e):vn();const n=ln(e)?e:t&&t.baseThemeName;await Ln(n||I),_n(e)};let y;const P=()=>(y===void 0&&(y=pt()),y),is=async e=>{y!==e&&(y=e,await ie(y),await ze({themeAware:!0}))},Pn=()=>{var t,n;const e=P();return $n(e)?!e.startsWith("sap_horizon"):!((n=(t=ne())==null?void 0:t.baseThemeName)!=null&&n.startsWith("sap_horizon"))},$n=e=>ot.includes(e),Cn=new Map;var d;(function(e){e.SAPIconsV4="SAP-icons-v4",e.SAPIconsV5="SAP-icons-v5",e.SAPIconsTNTV2="tnt-v2",e.SAPIconsTNTV3="tnt-v3",e.SAPBSIconsV1="business-suite-v1",e.SAPBSIconsV2="business-suite-v2"})(d||(d={}));const Rn=e=>{const t=P(),n=Cn.get(t);return!e&&n?Ye(n):On(e)},On=e=>{const t=Pn();return e?e==="tnt"?t?d.SAPIconsTNTV2:d.SAPIconsTNTV3:e==="business-suite"?t?d.SAPBSIconsV1:d.SAPBSIconsV2:e:t?d.SAPIconsV4:d.SAPIconsV5},Ee=new Map,x=j("SVGIcons.registry",new Map),X=j("SVGIcons.promises",new Map),Pe="ICON_NOT_FOUND",Un=async e=>{if(!X.has(e)){if(!Ee.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=Ee.get(e);X.set(e,t(e))}return X.get(e)},In=e=>{Object.keys(e.data).forEach(t=>{const n=e.data[t];Mn(t,{pathData:n.path||n.paths,ltr:n.ltr,accData:n.acc,collection:e.collection,packageName:e.packageName})})},Mn=(e,t)=>{const n=`${t.collection}/${e}`;x.set(n,{pathData:t.pathData,ltr:t.ltr,accData:t.accData,packageName:t.packageName,customTemplate:t.customTemplate,viewBox:t.viewBox,collection:t.collection})},kn=e=>{e.startsWith("sap-icon://")&&(e=e.replace("sap-icon://",""));let t;[e,t]=e.split("/").reverse(),e=e.replace("icon-",""),t&&(t=Ye(t)),t=Rn(t);const n=`${t}/${e}`;return{name:e,collection:t,registryKey:n}},Y=async e=>{const{collection:t,registryKey:n}=kn(e);let s=Pe;try{s=await Un(t)}catch(r){console.error(r.message)}return s===Pe?s:(x.has(n)||In(s),x.get(n))},cs=async()=>(await Y("edit"),await Y("tnt/arrow"),await Y("business-suite/3d"),Array.from(x.keys())),Dn=()=>new Promise(e=>{document.body?e():document.addEventListener("DOMContentLoaded",()=>{e()})}),Bn={packageName:"@ui5/webcomponents-base",fileName:"FontFace.css",content:`@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`},xn={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')}"},Fn=()=>{const e=w("OpenUI5Support");(!e||!e.isLoaded())&&jn(),zn()},jn=()=>{N("data-ui5-font-face")||V(Bn,"data-ui5-font-face")},zn=()=>{N("data-ui5-font-face-override")||V(xn,"data-ui5-font-face-override")},Vn={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}"},Nn=()=>{N("data-ui5-system-css-vars")||V(Vn,"data-ui5-system-css-vars")};let ce=!1,R;const nt=new L,us=e=>{if(!ce){nt.attachEvent("boot",e);return}e()},ls=async()=>{if(R!==void 0)return R;const e=async t=>{if(typeof document>"u"){t();return}cn(Wn),Rt();const n=w("OpenUI5Support"),s=n?n.isLoaded():!1,r=w("F6Navigation");n&&await n.init(),r&&!s&&r.init(),await Dn(),await ie(P()),n&&n.attachListeners(),Fn(),Nn(),t(),ce=!0,await nt.fireEventAsync("boot")};return R=new Promise(e),R},Wn=e=>{const t=P();ce&&e===t&&ie(t)};export{Jn as A,ns as B,P as C,et as D,L as E,as as F,ss as G,us as H,cs as _,j as a,ze as b,w as c,qn as d,Wt as e,en as f,rs as g,at as h,E as i,Vt as j,Gn as k,xt as l,ts as m,es as n,Lt as o,ls as p,Yn as q,Zn as r,is as s,Qn as t,Xn as u,Ue as v,Bt as w,os as x,Hn as y,Kn as z};
@@ -0,0 +1,50 @@
1
+ import{f as me,g as _e,a as gt,r as Ft,s as Ut,b as jt,E as J,c as X,d as ye,e as zt,h as ve,i as mt,j as Wt,k as Ae,l as $e,m as we,n as Ce,o as Se,p as be,q as Ee,t as Me,u as Te,v as xe,w as De,x as C,y as Ie,z as Le,A as qt,B as Pe,C as Ne,D as Oe,F as Re,_ as He,G as ke}from"./Boot.48b53df7.js";const Be=/('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)\}|[{}]/g,Ve=(s,t)=>(t=t||[],s.replace(Be,(e,n,i,r,o)=>{if(n)return"'";if(i)return i.replace(/''/g,"'");if(r){const c=typeof r=="string"?parseInt(r):r;return String(t[c])}throw new Error(`[i18n]: pattern syntax error at pos ${o}`)})),Q=new Map;class Fe{constructor(t){this.packageName=t}getText(t,...e){if(typeof t=="string"&&(t={key:t,defaultText:t}),!t||!t.key)return"";const n=_e(this.packageName);n&&!n[t.key]&&console.warn(`Key ${t.key} not found in the i18n bundle, the default text will be used`);const i=n&&n[t.key]?n[t.key]:t.defaultText||t.key;return Ve(i,e)}}const Ue=s=>{if(Q.has(s))return Q.get(s);const t=new Fe(s);return Q.set(s,t),t},je=async s=>(await me(s),Ue(s)),ze=gt("PopupUtilsData",{currentZIndex:100}),$t=()=>ze.currentZIndex,A=()=>{var s,t,e;return(e=(t=(s=window.sap)==null?void 0:s.ui)==null?void 0:t.getCore)==null?void 0:e.call(t)};class _t{static isLoaded(){return!!A()}static init(){const t=A();return t?new Promise(e=>{t.attachInit(()=>{window.sap.ui.require(["sap/ui/core/LocaleData","sap/ui/core/Popup"],(n,i)=>{i.setInitialZIndex($t()),e()})})}):Promise.resolve()}static getConfigurationSettingsObject(){const t=A();if(!t)return;const e=t.getConfiguration(),n=window.sap.ui.require("sap/ui/core/LocaleData");return{animationMode:e.getAnimationMode(),language:e.getLanguage(),theme:e.getTheme(),themeRoot:e.getThemeRoot(),rtl:e.getRTL(),timezone:e.getTimezone(),calendarType:e.getCalendarType(),formatSettings:{firstDayOfWeek:n?n.getInstance(e.getLocale()).getFirstDayOfWeek():void 0,legacyDateCalendarCustomizing:e.getFormatSettings().getLegacyDateCalendarCustomizing()}}}static getLocaleDataObject(){const t=A();if(!t)return;const e=t.getConfiguration();return window.sap.ui.require("sap/ui/core/LocaleData").getInstance(e.getLocale())._get()}static _listenForThemeChange(){const t=A(),e=t.getConfiguration();t.attachThemeChanged(async()=>{await Ut(e.getTheme())})}static attachListeners(){!A()||_t._listenForThemeChange()}static cssVariablesLoaded(){if(!A())return;const e=[...document.head.children].find(n=>n.id==="sap-ui-theme-sap.ui.core");if(!!e)return!!e.href.match(/\/css(-|_)variables\.css/)}static getNextZIndex(){return A()?window.sap.ui.require("sap/ui/core/Popup").getNextZIndex():void 0}static setInitialZIndex(){if(!A())return;window.sap.ui.require("sap/ui/core/Popup").setInitialZIndex($t())}}Ft("OpenUI5Support",_t);const tt=new Map,et=new Map,wt=s=>{if(!tt.has(s)){const t=We(s.split("-"));tt.set(s,t)}return tt.get(s)},Zt=s=>{if(!et.has(s)){const t=s.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();et.set(s,t)}return et.get(s)},We=s=>s.map((t,e)=>e===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(""),qe=s=>{if(!(s instanceof HTMLElement))return"default";const t=s.getAttribute("slot");if(t){const e=t.match(/^(.+?)-\d+$/);return e?e[1]:t}return"default"},Gt=s=>s instanceof HTMLSlotElement?s.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[s],Ze=s=>s.reduce((t,e)=>t.concat(Gt(e)),[]);let Ge,Ct={include:[/^ui5-/],exclude:[]};const st=new Map,Kt=()=>Ge,ut=s=>{if(!st.has(s)){const t=Ct.include.some(e=>s.match(e))&&!Ct.exclude.some(e=>s.match(e));st.set(s,t)}return st.get(s)},Jt=s=>{if(ut(s))return Kt()};class Ke{constructor(t){this.metadata=t}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={},e=this.slotsAreManaged(),n=this.getProperties();for(const i in n){const r=n[i].type,o=n[i].defaultValue;r===Boolean?(t[i]=!1,o!==void 0&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):n[i].multiple?t[i]=[]:r===Object?t[i]="defaultValue"in n[i]?n[i].defaultValue:{}:r===String?t[i]="defaultValue"in n[i]?n[i].defaultValue:"":t[i]=o}if(e){const i=this.getSlots();for(const[r,o]of Object.entries(i)){const c=o.propertyName||r;t[c]=[]}}return this._initialState=t,t}static validatePropertyValue(t,e){return e.multiple&&t?t.map(i=>St(i,e)):St(t,e)}static validateSlotValue(t,e){return Je(t,e)}getPureTag(){return this.metadata.tag||""}getTag(){const t=this.metadata.tag;if(!t)return"";const e=Jt(t);return e?`${t}-${e}`:t}hasAttribute(t){const e=this.getProperties()[t];return e.type!==Object&&!e.noAttribute&&!e.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(Zt)}canSlotText(){const t=this.getSlots().default;return t&&t.type===Node}hasSlots(){return!!Object.entries(this.getSlots()).length}hasIndividualSlots(){return this.slotsAreManaged()&&Object.values(this.getSlots()).some(t=>t.individualSlots)}slotsAreManaged(){return!!this.metadata.managedSlots}supportsF6FastNavigation(){return!!this.metadata.fastNavigation}getProperties(){return this.metadata.properties||(this.metadata.properties={}),this.metadata.properties}getEvents(){return this.metadata.events||(this.metadata.events={}),this.metadata.events}getSlots(){return this.metadata.slots||(this.metadata.slots={}),this.metadata.slots}isLanguageAware(){return!!this.metadata.languageAware}isThemeAware(){return!!this.metadata.themeAware}shouldInvalidateOnChildChange(t,e,n){const i=this.getSlots()[t].invalidateOnChildChange;if(i===void 0)return!1;if(typeof i=="boolean")return i;if(typeof i=="object"){if(e==="property"){if(i.properties===void 0)return!1;if(typeof i.properties=="boolean")return i.properties;if(Array.isArray(i.properties))return i.properties.includes(n);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if(e==="slot"){if(i.slots===void 0)return!1;if(typeof i.slots=="boolean")return i.slots;if(Array.isArray(i.slots))return i.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 St=(s,t)=>{const e=t.type;let n=t.validator;return e&&e.isDataTypeClass&&(n=e),n?n.isValid(s)?s:t.defaultValue:!e||e===String?typeof s=="string"||typeof s>"u"||s===null?s:s.toString():e===Boolean?typeof s=="boolean"?s:!1:e===Object?typeof s=="object"?s:t.defaultValue:s in e?s:t.defaultValue},Je=(s,t)=>(s&&Gt(s).forEach(e=>{if(!(e instanceof t.type))throw new Error(`The element is not of type ${t.type.toString()}`)}),s);class Xe extends HTMLElement{}customElements.get("ui5-static-area")||customElements.define("ui5-static-area",Xe);const Ye=()=>gt("CustomStyle.eventProvider",new J),Qe="CustomCSSChange",yt=s=>{Ye().attachEvent(Qe,s)},ts=()=>gt("CustomStyle.customCSSFor",{});yt(s=>{jt({tag:s})});const es=s=>{const t=ts();return t[s]?t[s].join(""):""},ss=10,nt=s=>Array.isArray(s)?s.filter(t=>!!t).flat(ss).map(t=>typeof t=="string"?t:t.content).join(" "):typeof s=="string"?s:s.content,W=new Map;yt(s=>{W.delete(`${s}_normal`)});const Xt=(s,t=!1)=>{const e=s.getMetadata().getTag(),n=`${e}_${t?"static":"normal"}`,i=X("OpenUI5Enablement");if(!W.has(n)){let r,o="";if(i&&(o=nt(i.getBusyIndicatorStyles())),t)r=nt(s.staticAreaStyles);else{const c=es(e)||"";r=`${nt(s.styles)} ${c}`}r=`${r} ${o}`,W.set(n,r)}return W.get(n)},q=new Map;yt(s=>{q.delete(`${s}_normal`)});const ns=(s,t=!1)=>{const n=`${s.getMetadata().getTag()}_${t?"static":"normal"}`;if(!q.has(n)){const i=Xt(s,t),r=new CSSStyleSheet;r.replaceSync(i),q.set(n,[r])}return q.get(n)},ht=(s,t=!1)=>{let e;const n=s.constructor,i=t?s.staticAreaItem.shadowRoot:s.shadowRoot;let r;if(t?r=s.renderStatic():r=s.render(),!i){console.warn("There is no shadow root to update");return}if(document.adoptedStyleSheets?i.adoptedStyleSheets=ns(n,t):e=Xt(n,t),n.renderer){n.renderer(r,i,e,t,{host:s});return}n.render(r,i,e,t,{host:s})},is="--_ui5_content_density",rs=s=>getComputedStyle(s).getPropertyValue(is),os=s=>{const t=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(s);return t&&t[2]?t[2].split(/,/):null},as={iw:"he",ji:"yi",in:"id",sh:"sr"},ls=os("$cldr-rtl-locales:ar,fa,he$")||[],cs=s=>(s=s&&as[s]||s,ls.indexOf(s)>=0),Yt=()=>{if(typeof document>"u")return!1;const s=ye();return s!==void 0?!!s:cs(zt()||ve())},ds="--_ui5_dir",Qt=s=>{const t=window.document,e=["ltr","rtl"],n=getComputedStyle(s).getPropertyValue(ds);return e.includes(n)?n:e.includes(s.dir)?s.dir:e.includes(t.documentElement.dir)?t.documentElement.dir:e.includes(t.body.dir)?t.body.dir:Yt()?"rtl":void 0},z="ui5-static-area-item",us="data-sap-ui-integration-popup-content";class R 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._updateAdditionalAttrs(),this._updateContentDensity(),this._updateDirection(),ht(this.ownerElement,!0))}_updateContentDensity(){rs(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(){if(this.ownerElement){const t=Qt(this.ownerElement);t?this.setAttribute("dir",t):this.removeAttribute("dir")}}_updateAdditionalAttrs(){this.setAttribute(`_ui5rt${mt()}`,""),this.setAttribute("_ui5host",""),this.setAttribute(z,""),this.setAttribute(us,"")}async getDomRef(){return this._updateContentDensity(),this._rendered||(this._rendered=!0,ht(this.ownerElement,!0)),await Wt(),this.shadowRoot}static getTag(){const t=Jt(z);return t?`${z}-${t}`:z}static createInstance(){return customElements.get(R.getTag())||customElements.define(R.getTag(),R),document.createElement(this.getTag())}}const hs=[],ps=s=>hs.some(t=>s.startsWith(t)),pt=new WeakMap,fs=(s,t,e)=>{const n=new MutationObserver(t);pt.set(s,n),n.observe(s,e)},gs=s=>{const t=pt.get(s);t&&(t.disconnect(),pt.delete(s))},ms=["value-changed","click"];let Z;const _s=s=>ms.includes(s),ys=s=>{const t=vt();return!(typeof t!="boolean"&&t.events&&t.events.includes&&t.events.includes(s))},vt=()=>(Z===void 0&&(Z=Ae()),Z),vs=s=>{Z=s},As=s=>{const t=vt();return _s(s)?!1:t===!0?!0:!ys(s)},$s=["disabled","title","hidden","role","draggable"],bt=s=>$s.includes(s)||s.startsWith("aria")?!0:![HTMLElement,Element,Node].some(e=>e.prototype.hasOwnProperty(s)),Et=(s,t)=>{if(s.length!==t.length)return!1;for(let e=0;e<s.length;e++)if(s[e]!==t[e])return!1;return!0},Mt=(s,t)=>{const e=ws(t),n=Kt();return s.call(t,t,e,n)},ws=s=>{const t=s.constructor,e=t.getMetadata().getPureTag(),n=t.getUniqueDependencies().map(i=>i.getMetadata().getPureTag()).filter(ut);return ut(e)&&n.push(e),n};let Cs=0;const Tt=new Map,it=new Map;function L(s){this._suppressInvalidation||(this.onInvalidation(s),this._changedState.push(s),De(this),this._eventProvider.fireEvent("invalidate",{...s,target:this}))}class w extends HTMLElement{constructor(){super();const t=this.constructor;this._changedState=[],this._suppressInvalidation=!0,this._inDOM=!1,this._fullyConnected=!1,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._eventProvider=new J;let e;this._domRefReadyPromise=new Promise(n=>{e=n}),this._domRefReadyPromise._deferredResolve=e,this._doNotSyncAttributes=new Set,this._state={...t.getMetadata().getInitialState()},this._upgradeAllProperties(),t._needsShadowDOM()&&this.attachShadow({mode:"open"})}get _id(){return this.__id||(this.__id=`ui5wc_${++Cs}`),this.__id}render(){const t=this.constructor.template;return Mt(t,this)}renderStatic(){const t=this.constructor.staticAreaTemplate;return Mt(t,this)}async connectedCallback(){const t=this.constructor;this.setAttribute(`_ui5rt${mt()}`,""),this.setAttribute("_ui5host",""),this.setAttribute(t.getMetadata().getPureTag(),""),t.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const e=t.getMetadata().slotsAreManaged();this._inDOM=!0,e&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&($e(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,this.onEnterDOM())}disconnectedCallback(){const e=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!1,e&&this._stopObservingDOMChildren(),this._fullyConnected&&(this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),we(this)}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}_startObservingDOMChildren(){const t=this.constructor;if(!t.getMetadata().hasSlots())return;const n=t.getMetadata().canSlotText(),i={childList:!0,subtree:n,characterData:n};fs(this,this._processChildren.bind(this),i)}_stopObservingDOMChildren(){gs(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const t=this.constructor,e=t.getMetadata().getSlots(),n=t.getMetadata().canSlotText(),i=Array.from(n?this.childNodes:this.children),r=new Map,o=new Map;for(const[d,u]of Object.entries(e)){const h=u.propertyName||d;o.set(h,d),r.set(h,[...this._state[h]]),this._clearSlot(d,u)}const c=new Map,a=new Map,l=i.map(async(d,u)=>{const h=qe(d),f=e[h];if(f===void 0){if(h!=="default"){const g=Object.keys(e).join(", ");console.warn(`Unknown slotName: ${h}, ignoring`,d,`Valid values are: ${g}`)}return}if(f.individualSlots){const g=(c.get(h)||0)+1;c.set(h,g),d._individualSlot=`${h}-${g}`}if(d instanceof HTMLElement){const g=d.localName;if(g.includes("-")&&!ps(g)){if(!window.customElements.get(g)){const fe=window.customElements.whenDefined(g);let j=Tt.get(g);j||(j=new Promise(ge=>setTimeout(ge,1e3)),Tt.set(g,j)),await Promise.race([fe,j])}window.customElements.upgrade(d)}}if(d=t.getMetadata().constructor.validateSlotValue(d,f),xt(d)&&f.invalidateOnChildChange){const g=this._getChildChangeListener(h);g&&d.attachInvalidate.call(d,g)}d instanceof HTMLSlotElement&&this._attachSlotChange(d,h);const m=f.propertyName||h;a.has(m)?a.get(m).push({child:d,idx:u}):a.set(m,[{child:d,idx:u}])});await Promise.all(l),a.forEach((d,u)=>{this._state[u]=d.sort((h,f)=>h.idx-f.idx).map(h=>h.child)});let p=!1;for(const[d,u]of Object.entries(e)){const h=u.propertyName||d;Et(r.get(h),this._state[h])||(L.call(this,{type:"slot",name:o.get(h),reason:"children"}),p=!0)}p||L.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(t,e){const n=e.propertyName||t;this._state[n].forEach(r=>{if(xt(r)){const o=this._getChildChangeListener(t);o&&r.detachInvalidate.call(r,o)}r instanceof HTMLSlotElement&&this._detachSlotChange(r,t)}),this._state[n]=[]}attachInvalidate(t){this._eventProvider.attachEvent("invalidate",t)}detachInvalidate(t){this._eventProvider.detachEvent("invalidate",t)}_onChildChange(t,e){!this.constructor.getMetadata().shouldInvalidateOnChildChange(t,e.type,e.name)||L.call(this,{type:"slot",name:t,reason:"childchange",child:e.target})}attributeChangedCallback(t,e,n){let i;if(this._doNotSyncAttributes.has(t))return;const r=this.constructor.getMetadata().getProperties(),o=t.replace(/^ui5-/,""),c=wt(o);if(r.hasOwnProperty(c)){const a=r[c],l=a.type;let p=a.validator;l&&l.isDataTypeClass&&(p=l),p?i=p.attributeToProperty(n):l===Boolean?i=n!==null:i=n,this[c]=i}}_updateAttribute(t,e){const n=this.constructor;if(!n.getMetadata().hasAttribute(t))return;const r=n.getMetadata().getProperties()[t],o=r.type;let c=r.validator;const a=Zt(t),l=this.getAttribute(a);if(o&&o.isDataTypeClass&&(c=o),c){const p=c.propertyToAttribute(e);p===null?(this._doNotSyncAttributes.add(a),this.removeAttribute(a),this._doNotSyncAttributes.delete(a)):this.setAttribute(a,p)}else o===Boolean?e===!0&&l===null?this.setAttribute(a,""):e===!1&&l!==null&&this.removeAttribute(a):typeof e!="object"&&l!==e&&this.setAttribute(a,e)}_upgradeProperty(t){if(this.hasOwnProperty(t)){const e=this[t];delete this[t],this[t]=e}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty.bind(this))}_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,e){const n=this._getSlotChangeListener(e);n&&t.addEventListener("slotchange",n)}_detachSlotChange(t,e){t.removeEventListener("slotchange",this._getSlotChangeListener(e))}_onSlotChange(t){L.call(this,{type:"slot",name:t,reason:"slotchange"})}onInvalidation(t){}_render(){const t=this.constructor,e=t.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),this._suppressInvalidation=!1,this._changedState=[],t._needsShadowDOM()&&ht(this),this.staticAreaItem&&this.staticAreaItem.update(),e&&this._assignIndividualSlotsToChildren(),this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(e=>{e._individualSlot&&e.setAttribute("slot",e._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(e=>!["link","style"].includes(e.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(t){await this._waitForDomRef();const e=this.getFocusDomRef();e&&typeof e.focus=="function"&&e.focus(t)}fireEvent(t,e,n=!1,i=!0){const r=this._fireEvent(t,e,n,i),o=wt(t);return o!==t?r&&this._fireEvent(o,e,n):r}_fireEvent(t,e,n=!1,i=!0){const r=new CustomEvent(`ui5-${t}`,{detail:e,composed:!1,bubbles:i,cancelable:n}),o=this.dispatchEvent(r);if(As(t))return o;const c=new CustomEvent(t,{detail:e,composed:!1,bubbles:i,cancelable:n});return this.dispatchEvent(c)&&o}getSlottedNodes(t){return Ze(this[t])}get effectiveDir(){return Ce(this.constructor),Qt(this)}get isUI5Element(){return!0}get classes(){return{}}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _needsShadowDOM(){return!!this.template||Object.prototype.hasOwnProperty.call(this.prototype,"render")}static _needsStaticArea(){return!!this.staticAreaTemplate||Object.prototype.hasOwnProperty.call(this.prototype,"renderStatic")}getStaticAreaItemDomRef(){if(!this.constructor._needsStaticArea())throw new Error("This component does not use the static area");return this.staticAreaItem||(this.staticAreaItem=R.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||Se("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const t=this.prototype,e=this.getMetadata().slotsAreManaged(),n=this.getMetadata().getProperties();for(const[i,r]of Object.entries(n)){if(bt(i)||console.warn(`"${i}" is not a valid property name. Use a name that does not collide with DOM APIs`),r.type===Boolean&&r.defaultValue)throw new Error(`Cannot set a default value for property "${i}". All booleans are false by default.`);if(r.type===Array)throw new Error(`Wrong type for property "${i}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(r.type===Object&&r.defaultValue)throw new Error(`Cannot set a default value for property "${i}". All properties of type "Object" are empty objects by default.`);if(r.multiple&&r.defaultValue)throw new Error(`Cannot set a default value for property "${i}". All multiple properties are empty arrays by default.`);Object.defineProperty(t,i,{get(){if(this._state[i]!==void 0)return this._state[i];const o=r.defaultValue;return r.type===Boolean?!1:r.type===String?o:r.multiple?[]:o},set(o){let c;o=this.constructor.getMetadata().constructor.validatePropertyValue(o,r);const p=r.type;let d=r.validator;const u=this._state[i];p&&p.isDataTypeClass&&(d=p),d?c=!d.valuesAreEqual(u,o):Array.isArray(u)&&Array.isArray(o)&&r.multiple&&r.compareValues?c=!Et(u,o):c=u!==o,c&&(this._state[i]=o,L.call(this,{type:"property",name:i,newValue:o,oldValue:u}),this._updateAttribute(i,o))}})}if(e){const i=this.getMetadata().getSlots();for(const[r,o]of Object.entries(i)){bt(r)||console.warn(`"${r}" is not a valid property name. Use a name that does not collide with DOM APIs`);const c=o.propertyName||r;Object.defineProperty(t,c,{get(){return this._state[c]!==void 0?this._state[c]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!it.has(this)){const t=this.dependencies.filter((e,n,i)=>i.indexOf(e)===n);it.set(this,t)}return it.get(this)||[]}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map(t=>t.define()))}static async onDefine(){return Promise.resolve()}static async define(){await be(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const t=this.getMetadata().getTag(),e=Ee(t),n=customElements.get(t);return n&&!e?Me(t):n||(this._generateAccessors(),Te(t),window.customElements.define(t,this)),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let e=this;for(;e!==w;)e=Object.getPrototypeOf(e),t.unshift(e.metadata);const n=xe({},...t);return this._metadata=new Ke(n),this._metadata}}w.metadata={};const xt=s=>"isUI5Element"in s;/**
2
+ * @license
3
+ * Copyright 2017 Google LLC
4
+ * SPDX-License-Identifier: BSD-3-Clause
5
+ */var rt;const G=window,x=G.trustedTypes,Dt=x?x.createPolicy("lit-html",{createHTML:s=>s}):void 0,K="$lit$",$=`lit$${(Math.random()+"").slice(9)}$`,At="?"+$,Ss=`<${At}>`,D=document,H=()=>D.createComment(""),k=s=>s===null||typeof s!="object"&&typeof s!="function",te=Array.isArray,ee=s=>te(s)||typeof(s==null?void 0:s[Symbol.iterator])=="function",ot=`[
6
+ \f\r]`,P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,It=/-->/g,Lt=/>/g,S=RegExp(`>|${ot}(?:([^\\s"'>=/]+)(${ot}*=${ot}*(?:[^
7
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),Pt=/'/g,Nt=/"/g,se=/^(?:script|style|textarea|title)$/i,bs=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),Es=bs(1),E=Symbol.for("lit-noChange"),_=Symbol.for("lit-nothing"),Ot=new WeakMap,T=D.createTreeWalker(D,129,null,!1),ne=(s,t)=>{const e=s.length-1,n=[];let i,r=t===2?"<svg>":"",o=P;for(let a=0;a<e;a++){const l=s[a];let p,d,u=-1,h=0;for(;h<l.length&&(o.lastIndex=h,d=o.exec(l),d!==null);)h=o.lastIndex,o===P?d[1]==="!--"?o=It:d[1]!==void 0?o=Lt:d[2]!==void 0?(se.test(d[2])&&(i=RegExp("</"+d[2],"g")),o=S):d[3]!==void 0&&(o=S):o===S?d[0]===">"?(o=i!=null?i:P,u=-1):d[1]===void 0?u=-2:(u=o.lastIndex-d[2].length,p=d[1],o=d[3]===void 0?S:d[3]==='"'?Nt:Pt):o===Nt||o===Pt?o=S:o===It||o===Lt?o=P:(o=S,i=void 0);const f=o===S&&s[a+1].startsWith("/>")?" ":"";r+=o===P?l+Ss:u>=0?(n.push(p),l.slice(0,u)+K+l.slice(u)+$+f):l+$+(u===-2?(n.push(void 0),a):f)}const c=r+(s[e]||"<?>")+(t===2?"</svg>":"");if(!Array.isArray(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return[Dt!==void 0?Dt.createHTML(c):c,n]};class B{constructor({strings:t,_$litType$:e},n){let i;this.parts=[];let r=0,o=0;const c=t.length-1,a=this.parts,[l,p]=ne(t,e);if(this.el=B.createElement(l,n),T.currentNode=this.el.content,e===2){const d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=T.nextNode())!==null&&a.length<c;){if(i.nodeType===1){if(i.hasAttributes()){const d=[];for(const u of i.getAttributeNames())if(u.endsWith(K)||u.startsWith($)){const h=p[o++];if(d.push(u),h!==void 0){const f=i.getAttribute(h.toLowerCase()+K).split($),m=/([.?@])?(.*)/.exec(h);a.push({type:1,index:r,name:m[2],strings:f,ctor:m[1]==="."?re:m[1]==="?"?oe:m[1]==="@"?ae:V})}else a.push({type:6,index:r})}for(const u of d)i.removeAttribute(u)}if(se.test(i.tagName)){const d=i.textContent.split($),u=d.length-1;if(u>0){i.textContent=x?x.emptyScript:"";for(let h=0;h<u;h++)i.append(d[h],H()),T.nextNode(),a.push({type:2,index:++r});i.append(d[u],H())}}}else if(i.nodeType===8)if(i.data===At)a.push({type:2,index:r});else{let d=-1;for(;(d=i.data.indexOf($,d+1))!==-1;)a.push({type:7,index:r}),d+=$.length-1}r++}}static createElement(t,e){const n=D.createElement("template");return n.innerHTML=t,n}}function M(s,t,e=s,n){var i,r,o,c;if(t===E)return t;let a=n!==void 0?(i=e._$Co)===null||i===void 0?void 0:i[n]:e._$Cl;const l=k(t)?void 0:t._$litDirective$;return(a==null?void 0:a.constructor)!==l&&((r=a==null?void 0:a._$AO)===null||r===void 0||r.call(a,!1),l===void 0?a=void 0:(a=new l(s),a._$AT(s,e,n)),n!==void 0?((o=(c=e)._$Co)!==null&&o!==void 0?o:c._$Co=[])[n]=a:e._$Cl=a),a!==void 0&&(t=M(s,a._$AS(s,t.values),a,n)),t}class ie{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var e;const{el:{content:n},parts:i}=this._$AD,r=((e=t==null?void 0:t.creationScope)!==null&&e!==void 0?e:D).importNode(n,!0);T.currentNode=r;let o=T.nextNode(),c=0,a=0,l=i[0];for(;l!==void 0;){if(c===l.index){let p;l.type===2?p=new I(o,o.nextSibling,this,t):l.type===1?p=new l.ctor(o,l.name,l.strings,this,t):l.type===6&&(p=new le(o,this,t)),this._$AV.push(p),l=i[++a]}c!==(l==null?void 0:l.index)&&(o=T.nextNode(),c++)}return r}v(t){let e=0;for(const n of this._$AV)n!==void 0&&(n.strings!==void 0?(n._$AI(t,n,e),e+=n.strings.length-2):n._$AI(t[e])),e++}}class I{constructor(t,e,n,i){var r;this.type=2,this._$AH=_,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=n,this.options=i,this._$Cp=(r=i==null?void 0:i.isConnected)===null||r===void 0||r}get _$AU(){var t,e;return(e=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&e!==void 0?e:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return e!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=M(this,t,e),k(t)?t===_||t==null||t===""?(this._$AH!==_&&this._$AR(),this._$AH=_):t!==this._$AH&&t!==E&&this._(t):t._$litType$!==void 0?this.g(t):t.nodeType!==void 0?this.$(t):ee(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==_&&k(this._$AH)?this._$AA.nextSibling.data=t:this.$(D.createTextNode(t)),this._$AH=t}g(t){var e;const{values:n,_$litType$:i}=t,r=typeof i=="number"?this._$AC(t):(i.el===void 0&&(i.el=B.createElement(i.h,this.options)),i);if(((e=this._$AH)===null||e===void 0?void 0:e._$AD)===r)this._$AH.v(n);else{const o=new ie(r,this),c=o.u(this.options);o.v(n),this.$(c),this._$AH=o}}_$AC(t){let e=Ot.get(t.strings);return e===void 0&&Ot.set(t.strings,e=new B(t)),e}T(t){te(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let n,i=0;for(const r of t)i===e.length?e.push(n=new I(this.k(H()),this.k(H()),this,this.options)):n=e[i],n._$AI(r),i++;i<e.length&&(this._$AR(n&&n._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){var n;for((n=this._$AP)===null||n===void 0||n.call(this,!1,!0,e);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var e;this._$AM===void 0&&(this._$Cp=t,(e=this._$AP)===null||e===void 0||e.call(this,t))}}class V{constructor(t,e,n,i,r){this.type=1,this._$AH=_,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=r,n.length>2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=_}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,n,i){const r=this.strings;let o=!1;if(r===void 0)t=M(this,t,e,0),o=!k(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const c=t;let a,l;for(t=r[0],a=0;a<r.length-1;a++)l=M(this,c[n+a],e,a),l===E&&(l=this._$AH[a]),o||(o=!k(l)||l!==this._$AH[a]),l===_?t=_:t!==_&&(t+=(l!=null?l:"")+r[a+1]),this._$AH[a]=l}o&&!i&&this.j(t)}j(t){t===_?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t!=null?t:"")}}class re extends V{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===_?void 0:t}}const Ms=x?x.emptyScript:"";class oe extends V{constructor(){super(...arguments),this.type=4}j(t){t&&t!==_?this.element.setAttribute(this.name,Ms):this.element.removeAttribute(this.name)}}class ae extends V{constructor(t,e,n,i,r){super(t,e,n,i,r),this.type=5}_$AI(t,e=this){var n;if((t=(n=M(this,t,e,0))!==null&&n!==void 0?n:_)===E)return;const i=this._$AH,r=t===_&&i!==_||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,o=t!==_&&(i===_||r);r&&this.element.removeEventListener(this.name,this,i),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,n;typeof this._$AH=="function"?this._$AH.call((n=(e=this.options)===null||e===void 0?void 0:e.host)!==null&&n!==void 0?n:this.element,t):this._$AH.handleEvent(t)}}class le{constructor(t,e,n){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const Ts={O:K,P:$,A:At,C:1,M:ne,L:ie,D:ee,R:M,I,V,H:oe,N:ae,U:re,F:le},Rt=G.litHtmlPolyfillSupport;Rt==null||Rt(B,I),((rt=G.litHtmlVersions)!==null&&rt!==void 0?rt:G.litHtmlVersions=[]).push("2.7.2");const xs=(s,t,e)=>{var n,i;const r=(n=e==null?void 0:e.renderBefore)!==null&&n!==void 0?n:t;let o=r._$litPart$;if(o===void 0){const c=(i=e==null?void 0:e.renderBefore)!==null&&i!==void 0?i:null;r._$litPart$=o=new I(t.insertBefore(H(),c),c,void 0,e!=null?e:{})}return o._$AI(s),o};/**
8
+ * @license
9
+ * Copyright 2017 Google LLC
10
+ * SPDX-License-Identifier: BSD-3-Clause
11
+ */const ce={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ds=s=>(...t)=>({_$litDirective$:s,values:t});class de{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,n){this._$Ct=t,this._$AM=e,this._$Ci=n}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}/**
12
+ * @license
13
+ * Copyright 2020 Google LLC
14
+ * SPDX-License-Identifier: BSD-3-Clause
15
+ */const{I:Is}=Ts,Ht=()=>document.createComment(""),N=(s,t,e)=>{var n;const i=s._$AA.parentNode,r=t===void 0?s._$AB:t._$AA;if(e===void 0){const o=i.insertBefore(Ht(),r),c=i.insertBefore(Ht(),r);e=new Is(o,c,s,s.options)}else{const o=e._$AB.nextSibling,c=e._$AM,a=c!==s;if(a){let l;(n=e._$AQ)===null||n===void 0||n.call(e,s),e._$AM=s,e._$AP!==void 0&&(l=s._$AU)!==c._$AU&&e._$AP(l)}if(o!==r||a){let l=e._$AA;for(;l!==o;){const p=l.nextSibling;i.insertBefore(l,r),l=p}}}return e},b=(s,t,e=s)=>(s._$AI(t,e),s),Ls={},Ps=(s,t=Ls)=>s._$AH=t,Ns=s=>s._$AH,at=s=>{var t;(t=s._$AP)===null||t===void 0||t.call(s,!1,!0);let e=s._$AA;const n=s._$AB.nextSibling;for(;e!==n;){const i=e.nextSibling;e.remove(),e=i}};/**
16
+ * @license
17
+ * Copyright 2017 Google LLC
18
+ * SPDX-License-Identifier: BSD-3-Clause
19
+ */const kt=(s,t,e)=>{const n=new Map;for(let i=t;i<=e;i++)n.set(s[i],i);return n},ue=Ds(class extends de{constructor(s){if(super(s),s.type!==ce.CHILD)throw Error("repeat() can only be used in text expressions")}dt(s,t,e){let n;e===void 0?e=t:t!==void 0&&(n=t);const i=[],r=[];let o=0;for(const c of s)i[o]=n?n(c,o):o,r[o]=e(c,o),o++;return{values:r,keys:i}}render(s,t,e){return this.dt(s,t,e).values}update(s,[t,e,n]){var i;const r=Ns(s),{values:o,keys:c}=this.dt(t,e,n);if(!Array.isArray(r))return this.ht=c,o;const a=(i=this.ht)!==null&&i!==void 0?i:this.ht=[],l=[];let p,d,u=0,h=r.length-1,f=0,m=o.length-1;for(;u<=h&&f<=m;)if(r[u]===null)u++;else if(r[h]===null)h--;else if(a[u]===c[f])l[f]=b(r[u],o[f]),u++,f++;else if(a[h]===c[m])l[m]=b(r[h],o[m]),h--,m--;else if(a[u]===c[m])l[m]=b(r[u],o[m]),N(s,l[m+1],r[u]),u++,m--;else if(a[h]===c[f])l[f]=b(r[h],o[f]),N(s,r[u],r[h]),h--,f++;else if(p===void 0&&(p=kt(c,f,m),d=kt(a,u,h)),p.has(a[u]))if(p.has(a[h])){const g=d.get(c[f]),U=g!==void 0?r[g]:null;if(U===null){const Y=N(s,r[u]);b(Y,o[f]),l[f]=Y}else l[f]=b(U,o[f]),N(s,r[u],U),r[g]=null;f++}else at(r[h]),h--;else at(r[u]),u++;for(;f<=m;){const g=N(s,l[m+1]);b(g,o[f]),l[f++]=g}for(;u<=h;){const g=r[u++];g!==null&&at(g)}return this.ht=c,Ps(s,l),E}});/**
20
+ * @license
21
+ * Copyright 2018 Google LLC
22
+ * SPDX-License-Identifier: BSD-3-Clause
23
+ */const v=s=>s!=null?s:_;/**
24
+ * @license
25
+ * Copyright 2017 Google LLC
26
+ * SPDX-License-Identifier: BSD-3-Clause
27
+ */class Bt extends de{constructor(t){if(super(t),this.et=_,t.type!==ce.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===_||t==null)return this.ft=void 0,this.et=t;if(t===E)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.et)return this.ft;this.et=t;const e=[t];return e.raw=e,this.ft={_$litType$:this.constructor.resultType,strings:e,values:[]}}}Bt.directiveName="unsafeHTML",Bt.resultType=1;const y=(s,...t)=>{const e=X("LitStatic");return(e?e.html:Es)(s,...t)},F=(s,t,e,n,i)=>{const r=X("OpenUI5Enablement");r&&!n&&(s=r.wrapTemplateResultInBusyMarkup(y,i.host,s)),typeof e=="string"?s=y`<style>${e}</style>${s}`:Array.isArray(e)&&e.length&&(s=y`${e.map(o=>y`<link type="text/css" rel="stylesheet" href="${o}">`)}${s}`),xs(s,t,i)},Os={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 he extends w{static get metadata(){return Os}static get render(){return F}static get template(){return t=>y`<div><p>
28
+ <slot></slot>
29
+ <slot name="other"></slot>
30
+ <slot name="individual-1"></slot>
31
+ <slot name="individual-2"></slot>
32
+ </p></div>`}static get styles(){return`:host {
33
+ display: inline-block;
34
+ border: 1px solid black;
35
+ color: var(--var1);
36
+ }`}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}he.define();const Rs={tag:"ui5-test-no-shadow"};class Hs extends w{static get metadata(){return Rs}}Hs.define();const ks={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,invalidateOnChildChange:{properties:["prop1"]}},items:{type:HTMLElement,invalidateOnChildChange:{properties:!0}}}};class Bs extends w{static get metadata(){return ks}static get render(){return F}static get template(){return t=>y`<div>
37
+ <slot></slot>
38
+ </div>`}}Bs.define();const Vs={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};class Fs extends w{static get metadata(){return Vs}static get render(){return F}static get template(){return t=>y`<div></div>`}}Fs.define();const Us={tag:"ui5-with-static-area",properties:{staticContent:{type:Boolean}},slots:{}};class js extends w{static get metadata(){return Us}static get render(){return F}static get template(){return t=>y`
39
+ <div dir=${t.effectiveDir}>
40
+ WithStaticArea works!
41
+ </div>`}static get staticAreaTemplate(){return t=>y`
42
+ <div class="ui5-with-static-area-content">
43
+ Static area content.
44
+ </div>`}static get styles(){return`
45
+ :host {
46
+ display: inline-block;
47
+ border: 1px solid black;
48
+ color: red;
49
+ }`}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(){}}js.define();function zs(s,t,e){return y`<div>Root text: ${v(this.text)}${ue(this.items,(n,i)=>n._id||i,(n,i)=>Ws.call(this,s,t,e,n,i))} Root text: ${v(this.text)}</div>`}function Ws(s,t,e,n,i){return y`<h3>Item-${i}</h3>${n.text?qs.call(this,s,t,e,n,i):void 0}<ul>${ue(n.words,(r,o)=>r._id||o,(r,o)=>Zs.call(this,s,t,e,r,o))}</ul>${n.text?Gs.call(this,s,t,e,n,i):void 0}`}function qs(s,t,e,n,i){return y`<div class="before-each-content--start--${i}">Root text: ${v(this.text)}, Item text: ${v(n.text)}</div>`}function Zs(s,t,e,n,i){return y`<li><h3>Word-${i}</h3><div class="nested-each-content--${i}--0">Root Text: ${v(this.text)}, Word text: ${v(n.text)}</div><div class="nested-each-content--${i}--1">Root Text: ${v(this.text)}, Word text: ${v(n.text)}</div></li>`}function Gs(s,t,e,n,i){return y`<div class="after-each-content--end--${i}">Root text: ${v(this.text)}, Item text: ${v(n.text)}</div>`}class Ks extends w{static get metadata(){return{tag:"ui5-test-complex-template"}}static get render(){return F}static get template(){return zs}get text(){return"root"}get items(){return[{text:"positives",words:[{text:"word1_good"},{text:"word2_nice"},{text:"word3_kind"}]},{text:"negatives",words:[{text:"word4_bad"},{text:"word5_rude"},{text:"word6_unpolite"}]}]}}Ks.define();const Js={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};class Xs extends he{static get metadata(){return Js}}Xs.define();const Ys={content:":root{ --var1: red; }",packageName:"",fileName:""},Qs={content:":root{ --var1: green; }",packageName:"",fileName:""},tn={content:":root{ --var1: blue; }",packageName:"",fileName:""},en={content:":root{ --var1: orange; }",packageName:"",fileName:""},sn={content:":root{ --var1: orange; }",packageName:"",fileName:""},nn={content:":root{ --var1: yellow; }",packageName:"",fileName:""},rn={content:":root{ --var1: yellow; }",packageName:"",fileName:""};C("@ui5/webcomponents-base-test","sap_fiori_3",()=>Ys);C("@ui5/webcomponents-base-test","sap_fiori_3_dark",()=>Qs);C("@ui5/webcomponents-base-test","sap_belize",()=>tn);C("@ui5/webcomponents-base-test","sap_belize_hcb",()=>en);C("@ui5/webcomponents-base-test","sap_belize_hcw",()=>sn);C("@ui5/webcomponents-base-test","sap_fiori_3_hcb",()=>nn);C("@ui5/webcomponents-base-test","sap_fiori_3_hcw",()=>rn);const on=typeof window.chrome=="object"||typeof window.v8=="object"?(s,t)=>(t>2&&40*t>s.length,s):s=>s,an=/(?:\r\n|\r|\n|^)[ \t\f]*/,ln=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)|([ \t\f]*[ \t\f:=][ \t\f]*)/g,cn=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)/g,dn={"\\f":"\f","\\n":`
50
+ `,"\\r":"\r","\\t":" "},un=s=>{const t={},e=s.split(an);let n,i,r,o,c,a,l,p;const d=u=>{o?(o=`${o}${u}`,p++):(o=u,p=0)};for(c=0;c<e.length;c++)if(n=e[c],!(n===""||n.charAt(0)==="#"||n.charAt(0)==="!")){for(i=ln,l=0,i.lastIndex=l,r=null,o="",a=i.exec(n);a!==null;){if(l<a.index&&d(n.slice(l,a.index)),l=i.lastIndex,a[1]){if(a[1].length!==6)throw new Error(`Incomplete Unicode Escape '${a[1]}'`);d(String.fromCharCode(parseInt(a[1].slice(2),16)))}else a[2]?d(dn[a[2]]||a[2].slice(1)):a[3]?(n=e[++c],l=0,i.lastIndex=l):a[4]&&(r=o,o="",i=cn,i.lastIndex=l);a=i.exec(n)}l<n.length&&d(n.slice(l)),r==null&&(r=o,o=""),t[r]=on(o,o?p:0)}return t};let lt;const hn=()=>(lt===void 0&&(lt=Ie()),lt);var ft;(function(s){s.Gregorian="Gregorian",s.Islamic="Islamic",s.Japanese="Japanese",s.Buddhist="Buddhist",s.Persian="Persian"})(ft||(ft={}));const Vt=ft;let O;const pn=()=>(O===void 0&&(O=Le()),O&&O in Vt?O:Vt.Gregorian);let ct;class pe{static getLegacyDateCalendarCustomizing(){return ct===void 0&&(ct=qt()),ct.legacyDateCalendarCustomizing||[]}}Ft("LegacyDateFormats",pe);let dt;const fn=()=>(dt===void 0&&(dt=qt()),dt.firstDayOfWeek),gn=X("LegacyDateFormats"),mn=gn?pe.getLegacyDateCalendarCustomizing:()=>[],_n=new J,yn="directionChange",vn=()=>_n.fireEvent(yn,void 0),An=async()=>{const s=vn();await Promise.all(s),await jt({rtlAware:!0})};window.registerThemePropertiesLoader=C;window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:hn,getLanguage:zt,setLanguage:Pe,getTheme:Ne,getThemeRoot:Oe,setThemeRoot:Re,setTheme:Ut,getNoConflict:vt,setNoConflict:vs,getCalendarType:pn,getRTL:Yt,getFirstDayOfWeek:fn,getLegacyDateCalendarCustomizing:mn},getCurrentRuntimeIndex:mt,getIconNames:He,parseProperties:un,registerI18nLoader:ke,getI18nBundle:je,renderFinished:Wt,applyDirection:An,EventProvider:J};
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Supported icon collection aliases.
3
+ *
4
+ * Users might specify a collection, using both the key and the value in the following key-value pairs,
5
+ * e.g the following pairs are completely exchangeable:
6
+ *
7
+ * - "SAP-icons/accept" and "SAP-icons-v4/accept"
8
+ * - "horizon/accept" and "SAP-icons-v5/accept"
9
+ * - "SAP-icons-TNT/actor" and "tnt/actor"
10
+ * - "BusinessSuiteInAppSymbols/3d" and "business-suite/3d"
11
+ */
12
+ declare enum IconCollectionsAlias {
13
+ "SAP-icons" = "SAP-icons-v4",
14
+ "horizon" = "SAP-icons-v5",
15
+ "SAP-icons-TNT" = "tnt",
16
+ "BusinessSuiteInAppSymbols" = "business-suite"
17
+ }
18
+ /**
19
+ * Returns the mapped collection name for a given alias.
20
+ *
21
+ * <b>For example</b>:
22
+ * - "SAP-icons-TNT"resolves to "tnt"
23
+ * - "BusinessSuiteInAppSymbols" resolves to "business-suite"
24
+ * - "horizon" resolves to "SAP-icons-v5"
25
+ *
26
+ * @param { string } collectionName
27
+ * @return { string } the normalized collection name
28
+ */
29
+ declare const getIconCollectionByAlias: (collectionName: string) => string;
30
+ export default IconCollectionsAlias;
31
+ export { getIconCollectionByAlias, };