@ui5/webcomponents-base 0.0.0-8e1845415 → 0.0.0-90f690396

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 (315) hide show
  1. package/.eslintignore +4 -4
  2. package/.eslintrc.cjs +3 -0
  3. package/.npsrc.json +3 -0
  4. package/CHANGELOG.md +35 -0
  5. package/bundle.esm.js +2 -0
  6. package/config/wdio.conf.cjs +400 -0
  7. package/dist/AssetRegistry.js.map +1 -1
  8. package/dist/Boot.js +15 -7
  9. package/dist/Boot.js.map +1 -1
  10. package/dist/CSP.js.map +1 -1
  11. package/dist/CustomElementsRegistry.js.map +1 -1
  12. package/dist/CustomElementsScope.js.map +1 -1
  13. package/dist/CustomElementsScopeUtils.js.map +1 -1
  14. package/dist/DOMObserver.js.map +1 -1
  15. package/dist/Device.js.map +1 -1
  16. package/dist/EventProvider.js.map +1 -1
  17. package/dist/FeaturesRegistry.js.map +1 -1
  18. package/dist/FontFace.js.map +1 -1
  19. package/dist/InitialConfiguration.js.map +1 -1
  20. package/dist/Keys.js.map +1 -1
  21. package/dist/ManagedStyles.js.map +1 -1
  22. package/dist/MarkedEvents.js.map +1 -1
  23. package/dist/MediaRange.js.map +1 -1
  24. package/dist/PropertiesFileFormat.js.map +1 -1
  25. package/dist/Render.js.map +1 -1
  26. package/dist/RenderQueue.js.map +1 -1
  27. package/dist/Runtimes.js.map +1 -1
  28. package/dist/StaticArea.js.map +1 -1
  29. package/dist/StaticAreaItem.js.map +1 -1
  30. package/dist/SystemCSSVars.js.map +1 -1
  31. package/dist/Theming.js.map +1 -1
  32. package/dist/UI5Element.js.map +1 -1
  33. package/dist/UI5ElementMetadata.js.map +1 -1
  34. package/dist/animations/AnimationQueue.js.map +1 -1
  35. package/dist/animations/animate.js.map +1 -1
  36. package/dist/animations/scroll.js.map +1 -1
  37. package/dist/animations/slideDown.js.map +1 -1
  38. package/dist/animations/slideUp.js.map +1 -1
  39. package/dist/asset-registries/Icons.d.ts +17 -9
  40. package/dist/asset-registries/Icons.js +20 -2
  41. package/dist/asset-registries/Icons.js.map +1 -1
  42. package/dist/asset-registries/Illustrations.js.map +1 -1
  43. package/dist/asset-registries/LocaleData.js.map +1 -1
  44. package/dist/asset-registries/Themes.js +1 -2
  45. package/dist/asset-registries/Themes.js.map +1 -1
  46. package/dist/asset-registries/i18n.js +9 -3
  47. package/dist/asset-registries/i18n.js.map +1 -1
  48. package/dist/assets/Boot.34b7cea0.css +1 -0
  49. package/dist/assets/Boot.65c46afc.js +9 -0
  50. package/dist/assets/bundle.esm.46fe57b1.js +52 -0
  51. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -1
  52. package/dist/config/AnimationMode.js.map +1 -1
  53. package/dist/config/CalendarType.js.map +1 -1
  54. package/dist/config/FormatSettings.js.map +1 -1
  55. package/dist/config/Icons.js +5 -5
  56. package/dist/config/Icons.js.map +1 -1
  57. package/dist/config/Language.d.ts +10 -1
  58. package/dist/config/Language.js +13 -1
  59. package/dist/config/Language.js.map +1 -1
  60. package/dist/config/NoConflict.js.map +1 -1
  61. package/dist/config/RTL.js.map +1 -1
  62. package/dist/config/Theme.d.ts +15 -5
  63. package/dist/config/Theme.js +25 -6
  64. package/dist/config/Theme.js.map +1 -1
  65. package/dist/config/ThemeRoots.js.map +1 -1
  66. package/dist/decorators/customElement.js.map +1 -1
  67. package/dist/decorators/event.js.map +1 -1
  68. package/dist/decorators/property.js.map +1 -1
  69. package/dist/decorators/slot.js +2 -2
  70. package/dist/decorators/slot.js.map +1 -1
  71. package/dist/delegate/ItemNavigation.js.map +1 -1
  72. package/dist/delegate/ResizeHandler.js.map +1 -1
  73. package/dist/delegate/ScrollEnablement.js.map +1 -1
  74. package/dist/features/F6Navigation.js.map +1 -1
  75. package/dist/features/LegacyDateFormats.js.map +1 -1
  76. package/dist/features/OpenUI5Element.js.map +1 -1
  77. package/dist/features/OpenUI5Enablement.js.map +1 -1
  78. package/dist/features/OpenUI5Support.js.map +1 -1
  79. package/dist/generated/AssetParameters.js +2 -0
  80. package/dist/generated/VersionInfo.js +3 -3
  81. package/dist/generated/css/BusyIndicator.css.js.map +1 -1
  82. package/dist/generated/css/FontFace.css.js.map +1 -1
  83. package/dist/generated/css/OverrideFontFace.css.js.map +1 -1
  84. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  85. package/dist/getSharedResource.js.map +1 -1
  86. package/dist/global.d.ts +2 -0
  87. package/dist/i18nBundle.js.map +1 -1
  88. package/dist/locale/Locale.js.map +1 -1
  89. package/dist/locale/RTLAwareRegistry.js.map +1 -1
  90. package/dist/locale/applyDirection.js.map +1 -1
  91. package/dist/locale/directionChange.js.map +1 -1
  92. package/dist/locale/getEffectiveDir.js.map +1 -1
  93. package/dist/locale/getLocale.js.map +1 -1
  94. package/dist/locale/languageChange.js.map +1 -1
  95. package/dist/locale/nextFallbackLocale.js.map +1 -1
  96. package/dist/locale/normalizeLocale.js.map +1 -1
  97. package/dist/renderer/LitRenderer.js.map +1 -1
  98. package/dist/renderer/executeTemplate.js.map +1 -1
  99. package/dist/theming/CustomStyle.js.map +1 -1
  100. package/dist/theming/ThemeLoaded.js.map +1 -1
  101. package/dist/theming/ThemeRegistered.d.ts +1 -2
  102. package/dist/theming/ThemeRegistered.js +1 -4
  103. package/dist/theming/ThemeRegistered.js.map +1 -1
  104. package/dist/theming/applyTheme.js +0 -1
  105. package/dist/theming/applyTheme.js.map +1 -1
  106. package/dist/theming/getConstructableStyle.js.map +1 -1
  107. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -1
  108. package/dist/theming/getEffectiveStyle.js.map +1 -1
  109. package/dist/theming/getStylesString.js.map +1 -1
  110. package/dist/theming/getThemeDesignerTheme.js.map +1 -1
  111. package/dist/theming/preloadLinks.js.map +1 -1
  112. package/dist/thirdparty/_merge.js.map +1 -1
  113. package/dist/thirdparty/isPlainObject.js.map +1 -1
  114. package/dist/thirdparty/merge.js.map +1 -1
  115. package/dist/types/AnimationMode.js.map +1 -1
  116. package/dist/types/CSSColor.js.map +1 -1
  117. package/dist/types/CalendarType.js.map +1 -1
  118. package/dist/types/DOMReference.js.map +1 -1
  119. package/dist/types/DataType.js.map +1 -1
  120. package/dist/types/Float.js.map +1 -1
  121. package/dist/types/Integer.js.map +1 -1
  122. package/dist/types/InvisibleMessageMode.js.map +1 -1
  123. package/dist/types/ItemNavigationBehavior.js.map +1 -1
  124. package/dist/types/NavigationMode.js.map +1 -1
  125. package/dist/types/ValueState.js.map +1 -1
  126. package/dist/types.js.map +1 -1
  127. package/dist/updateShadowRoot.js.map +1 -1
  128. package/dist/util/AriaLabelHelper.js.map +1 -1
  129. package/dist/util/Caret.js.map +1 -1
  130. package/dist/util/ColorConversion.js.map +1 -1
  131. package/dist/util/FetchHelper.js.map +1 -1
  132. package/dist/util/FocusableElements.js.map +1 -1
  133. package/dist/util/HTMLSanitizer.js.map +1 -1
  134. package/dist/util/InvisibleMessage.js.map +1 -1
  135. package/dist/util/PopupUtils.js.map +1 -1
  136. package/dist/util/SlotsHelper.js.map +1 -1
  137. package/dist/util/StringHelper.js.map +1 -1
  138. package/dist/util/TabbableElements.js.map +1 -1
  139. package/dist/util/arraysAreEqual.js.map +1 -1
  140. package/dist/util/clamp.js.map +1 -1
  141. package/dist/util/createLinkInHead.js.map +1 -1
  142. package/dist/util/createStyleInHead.js.map +1 -1
  143. package/dist/util/debounce.js.map +1 -1
  144. package/dist/util/detectNavigatorLanguage.js.map +1 -1
  145. package/dist/util/escapeRegex.js.map +1 -1
  146. package/dist/util/formatMessage.js.map +1 -1
  147. package/dist/util/generateHighlightedMarkup.js.map +1 -1
  148. package/dist/util/getActiveElement.js.map +1 -1
  149. package/dist/util/getClassCopy.js.map +1 -1
  150. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -1
  151. package/dist/util/getEffectiveContentDensity.js.map +1 -1
  152. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -1
  153. package/dist/util/getFastNavigationGroups.js.map +1 -1
  154. package/dist/util/getFileExtension.js.map +1 -1
  155. package/dist/util/getNormalizedTarget.js.map +1 -1
  156. package/dist/util/getSingletonElementInstance.js.map +1 -1
  157. package/dist/util/isElementClickable.js.map +1 -1
  158. package/dist/util/isElementHidden.js.map +1 -1
  159. package/dist/util/isElementInView.js.map +1 -1
  160. package/dist/util/isElementTabbable.js.map +1 -1
  161. package/dist/util/isValidPropertyName.js.map +1 -1
  162. package/dist/util/whenDOMReady.js.map +1 -1
  163. package/dist/util/willShowContent.js.map +1 -1
  164. package/dist/validateThemeRoot.js +14 -13
  165. package/dist/validateThemeRoot.js.map +1 -1
  166. package/index.js +227 -1
  167. package/lib/generate-asset-parameters/index.js +4 -2
  168. package/lib/generate-styles/index.js +3 -3
  169. package/lib/generate-version-info/index.js +1 -1
  170. package/{package-scripts.js → package-scripts.cjs} +3 -3
  171. package/package.json +4 -3
  172. package/tsconfig.json +1 -0
  173. package/config/wdio.conf.js +0 -1
  174. package/dist/assets/Boot.6335ce08.css +0 -1
  175. package/dist/assets/bundle.esm.f40d91c9.js +0 -24
  176. package/dist/assets/i18nBundle.cf399e86.js +0 -37
  177. package/src/AssetRegistry.ts +0 -11
  178. package/src/Boot.ts +0 -82
  179. package/src/CSP.ts +0 -66
  180. package/src/CustomElementsRegistry.ts +0 -98
  181. package/src/CustomElementsScope.ts +0 -33
  182. package/src/CustomElementsScopeUtils.ts +0 -115
  183. package/src/DOMObserver.ts +0 -28
  184. package/src/Device.ts +0 -203
  185. package/src/EventProvider.ts +0 -87
  186. package/src/FeaturesRegistry.ts +0 -14
  187. package/src/FontFace.ts +0 -31
  188. package/src/InitialConfiguration.ts +0 -207
  189. package/src/Keys.ts +0 -295
  190. package/src/ManagedStyles.ts +0 -92
  191. package/src/MarkedEvents.ts +0 -20
  192. package/src/MediaRange.ts +0 -110
  193. package/src/PropertiesFileFormat.ts +0 -95
  194. package/src/Render.ts +0 -180
  195. package/src/RenderQueue.ts +0 -71
  196. package/src/Runtimes.ts +0 -114
  197. package/src/StaticArea.ts +0 -3
  198. package/src/StaticAreaItem.ts +0 -113
  199. package/src/SystemCSSVars.ts +0 -10
  200. package/src/Theming.ts +0 -4
  201. package/src/UI5Element.ts +0 -1159
  202. package/src/UI5ElementMetadata.ts +0 -389
  203. package/src/animations/AnimationQueue.ts +0 -43
  204. package/src/animations/animate.ts +0 -64
  205. package/src/animations/scroll.ts +0 -21
  206. package/src/animations/slideDown.ts +0 -72
  207. package/src/animations/slideUp.ts +0 -67
  208. package/src/asset-registries/Icons.ts +0 -161
  209. package/src/asset-registries/Illustrations.ts +0 -75
  210. package/src/asset-registries/LocaleData.ts +0 -172
  211. package/src/asset-registries/Themes.ts +0 -75
  212. package/src/asset-registries/i18n.ts +0 -118
  213. package/src/assets-meta/IconCollectionsAlias.ts +0 -41
  214. package/src/config/AnimationMode.ts +0 -33
  215. package/src/config/CalendarType.ts +0 -23
  216. package/src/config/FormatSettings.ts +0 -35
  217. package/src/config/Icons.ts +0 -126
  218. package/src/config/Language.ts +0 -72
  219. package/src/config/NoConflict.ts +0 -67
  220. package/src/config/RTL.ts +0 -45
  221. package/src/config/Theme.ts +0 -64
  222. package/src/config/ThemeRoots.ts +0 -41
  223. package/src/decorators/customElement.ts +0 -57
  224. package/src/decorators/event.ts +0 -28
  225. package/src/decorators/property.ts +0 -30
  226. package/src/decorators/slot.ts +0 -49
  227. package/src/delegate/ItemNavigation.ts +0 -393
  228. package/src/delegate/ResizeHandler.ts +0 -100
  229. package/src/delegate/ScrollEnablement.ts +0 -224
  230. package/src/features/F6Navigation.ts +0 -195
  231. package/src/features/LegacyDateFormats.ts +0 -40
  232. package/src/features/OpenUI5Element.ts +0 -11
  233. package/src/features/OpenUI5Enablement.ts +0 -117
  234. package/src/features/OpenUI5Support.ts +0 -153
  235. package/src/generated/css/BusyIndicator.css.ts +0 -9
  236. package/src/generated/css/FontFace.css.ts +0 -9
  237. package/src/generated/css/OverrideFontFace.css.ts +0 -9
  238. package/src/generated/css/SystemCSSVars.css.ts +0 -9
  239. package/src/getSharedResource.ts +0 -39
  240. package/src/global.d.ts +0 -38
  241. package/src/i18nBundle.ts +0 -108
  242. package/src/locale/Locale.ts +0 -101
  243. package/src/locale/RTLAwareRegistry.ts +0 -16
  244. package/src/locale/applyDirection.ts +0 -18
  245. package/src/locale/directionChange.ts +0 -34
  246. package/src/locale/getEffectiveDir.ts +0 -28
  247. package/src/locale/getLocale.ts +0 -46
  248. package/src/locale/languageChange.ts +0 -24
  249. package/src/locale/nextFallbackLocale.ts +0 -28
  250. package/src/locale/normalizeLocale.ts +0 -56
  251. package/src/renderer/LitRenderer.ts +0 -60
  252. package/src/renderer/executeTemplate.ts +0 -40
  253. package/src/theming/CustomStyle.ts +0 -64
  254. package/src/theming/ThemeLoaded.ts +0 -24
  255. package/src/theming/ThemeRegistered.ts +0 -24
  256. package/src/theming/applyTheme.ts +0 -91
  257. package/src/theming/getConstructableStyle.ts +0 -31
  258. package/src/theming/getEffectiveLinksHrefs.ts +0 -26
  259. package/src/theming/getEffectiveStyle.ts +0 -41
  260. package/src/theming/getStylesString.ts +0 -15
  261. package/src/theming/getThemeDesignerTheme.ts +0 -101
  262. package/src/theming/preloadLinks.ts +0 -24
  263. package/src/thirdparty/_merge.ts +0 -32
  264. package/src/thirdparty/isPlainObject.ts +0 -18
  265. package/src/thirdparty/merge.ts +0 -5
  266. package/src/types/AnimationMode.ts +0 -33
  267. package/src/types/CSSColor.ts +0 -19
  268. package/src/types/CalendarType.ts +0 -38
  269. package/src/types/DOMReference.ts +0 -28
  270. package/src/types/DataType.ts +0 -51
  271. package/src/types/Float.ts +0 -24
  272. package/src/types/Integer.ts +0 -24
  273. package/src/types/InvisibleMessageMode.ts +0 -27
  274. package/src/types/ItemNavigationBehavior.ts +0 -26
  275. package/src/types/NavigationMode.ts +0 -33
  276. package/src/types/ValueState.ts +0 -47
  277. package/src/types.ts +0 -30
  278. package/src/updateShadowRoot.ts +0 -42
  279. package/src/util/AriaLabelHelper.ts +0 -218
  280. package/src/util/Caret.ts +0 -28
  281. package/src/util/ColorConversion.ts +0 -399
  282. package/src/util/FetchHelper.ts +0 -31
  283. package/src/util/FocusableElements.ts +0 -92
  284. package/src/util/HTMLSanitizer.ts +0 -9
  285. package/src/util/InvisibleMessage.ts +0 -69
  286. package/src/util/PopupUtils.ts +0 -112
  287. package/src/util/SlotsHelper.ts +0 -39
  288. package/src/util/StringHelper.ts +0 -26
  289. package/src/util/TabbableElements.ts +0 -70
  290. package/src/util/arraysAreEqual.ts +0 -15
  291. package/src/util/clamp.ts +0 -12
  292. package/src/util/createLinkInHead.ts +0 -25
  293. package/src/util/createStyleInHead.ts +0 -20
  294. package/src/util/debounce.ts +0 -18
  295. package/src/util/detectNavigatorLanguage.ts +0 -13
  296. package/src/util/escapeRegex.ts +0 -11
  297. package/src/util/formatMessage.ts +0 -24
  298. package/src/util/generateHighlightedMarkup.ts +0 -43
  299. package/src/util/getActiveElement.ts +0 -11
  300. package/src/util/getClassCopy.ts +0 -12
  301. package/src/util/getDesigntimePropertyAsArray.ts +0 -4
  302. package/src/util/getEffectiveContentDensity.ts +0 -5
  303. package/src/util/getEffectiveScrollbarStyle.ts +0 -5
  304. package/src/util/getFastNavigationGroups.ts +0 -63
  305. package/src/util/getFileExtension.ts +0 -21
  306. package/src/util/getNormalizedTarget.ts +0 -16
  307. package/src/util/getSingletonElementInstance.ts +0 -13
  308. package/src/util/isElementClickable.ts +0 -19
  309. package/src/util/isElementHidden.ts +0 -9
  310. package/src/util/isElementInView.ts +0 -15
  311. package/src/util/isElementTabbable.ts +0 -37
  312. package/src/util/isValidPropertyName.ts +0 -29
  313. package/src/util/whenDOMReady.ts +0 -13
  314. package/src/util/willShowContent.ts +0 -7
  315. package/src/validateThemeRoot.ts +0 -58
@@ -1,37 +0,0 @@
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"]'))n(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function s(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerpolicy&&(o.referrerPolicy=r.referrerpolicy),r.crossorigin==="use-credentials"?o.credentials="include":r.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(r){if(r.ep)return;r.ep=!0;const o=s(r);fetch(r.href,o)}})();const gt={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"]}},ct=gt.themes.default,lt=gt.languages.default,v=gt.locales.default,te=gt.locales.all,Ue=()=>{const e=navigator.languages,t=()=>navigator.language;return e&&e[0]||t()||lt};var Ne={},ke=Ne.hasOwnProperty,Ns=Ne.toString,Be=ke.toString,ks=Be.call(Object),ee=function(e){var t,s;return!e||Ns.call(e)!=="[object Object]"?!1:(t=Object.getPrototypeOf(e),t?(s=ke.call(t,"constructor")&&t.constructor,typeof s=="function"&&Be.call(s)===ks):!0)},Bs=Object.create(null),He=function(e,t,s,n){var r,o,i,a,c,l,f=arguments[2]||{},u=3,d=arguments.length,h=arguments[0]||!1,p=arguments[1]?void 0:Bs;for(typeof f!="object"&&typeof f!="function"&&(f={});u<d;u++)if((c=arguments[u])!=null)for(a in c)r=f[a],i=c[a],!(a==="__proto__"||f===i)&&(h&&i&&(ee(i)||(o=Array.isArray(i)))?(o?(o=!1,l=r&&Array.isArray(r)?r:[]):l=r&&ee(r)?r:{},f[a]=He(h,arguments[1],l,i)):i!==p&&(f[a]=i));return f};const zt=function(e,t){return He(!0,!1,...arguments)},Ve=new Map,vo=(e,t)=>{Ve.set(e,t)},A=e=>Ve.get(e),Hs=e=>{const t=document.querySelector(`META[name="${e}"]`);return t&&t.getAttribute("content")},Vs=e=>{const t=Hs("sap-allowedThemeOrigins");return t&&t.split(",").some(s=>s==="*"||e===s.trim())},Fs=(e,t)=>{const s=new URL(e).pathname;return new URL(s,t).toString()},js=e=>{let t,s;try{t=new URL(e);const n=t.origin;return t=t.toString(),t.startsWith(".")||t.startsWith("/")?s=new URL(t,window.location.href).toString():n&&Vs(n)?s=t.toString():s=Fs(t,window.location.href),s.endsWith("/")||(s=`${s}/`),`${s}UI5/`}catch{}};var Nt;(function(e){e.Full="full",e.Basic="basic",e.Minimal="minimal",e.None="none"})(Nt||(Nt={}));const zs=Nt;let se=!1,_={animationMode:zs.Full,theme:ct,themeRoot:void 0,rtl:void 0,language:void 0,calendarType:void 0,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const So=()=>(S(),_.animationMode),Ws=()=>(S(),_.theme),Zs=()=>(S(),_.themeRoot),qs=()=>(S(),_.rtl),Gs=()=>(S(),_.language),Ks=()=>(S(),_.fetchDefaultLanguage),Xs=()=>(S(),_.noConflict),$o=()=>(S(),_.calendarType),bo=()=>(S(),_.formatSettings),ut=new Map;ut.set("true",!0);ut.set("false",!1);const Ys=()=>{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&&(_=zt(_,t))}},Js=()=>{const e=new URLSearchParams(window.location.search);e.forEach((t,s)=>{const n=s.split("sap-").length;n===0||n===s.split("sap-ui-").length||ne(s,t,"sap")}),e.forEach((t,s)=>{!s.startsWith("sap-ui")||ne(s,t,"sap-ui")})},Qs=e=>{const t=e.split("@")[1];return js(t)},tn=(e,t)=>e==="theme"&&t.includes("@")?t.split("@")[0]:t,ne=(e,t,s)=>{const n=t.toLowerCase(),r=e.split(`${s}-`)[1];ut.has(t)&&(t=ut.get(n)),r==="theme"?(_.theme=tn(r,t),t&&t.includes("@")&&(_.themeRoot=Qs(t))):_[r]=t},en=()=>{const e=A("OpenUI5Support");if(!e||!e.isLoaded())return;const t=e.getConfigurationSettingsObject();_=zt(_,t)},S=()=>{typeof document>"u"||se||(Ys(),Js(),en(),se=!0)};class M{constructor(){this._eventRegistry=new Map}attachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!Array.isArray(r)){n.set(t,[s]);return}r.includes(s)||r.push(s)}detachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!r)return;const o=r.indexOf(s);o!==-1&&r.splice(o,1),r.length===0&&n.delete(t)}fireEvent(t,s){const r=this._eventRegistry.get(t);return r?r.map(o=>o.call(this,s)):[]}fireEventAsync(t,s){return Promise.all(this.fireEvent(t,s))}isHandlerAttached(t,s){const r=this._eventRegistry.get(t);return r?r.includes(s):!1}hasListeners(t){return!!this._eventRegistry.get(t)}}const Fe=new M,je="languageChange",ze=e=>{Fe.attachEvent(je,e)},sn=e=>Fe.fireEventAsync(je,e),re=10;class nn{constructor(){this.list=[],this.lookup=new Set}add(t){this.lookup.has(t)||(this.list.push(t),this.lookup.add(t))}remove(t){!this.lookup.has(t)||(this.list=this.list.filter(s=>s!==t),this.lookup.delete(t))}shift(){const t=this.list.shift();if(t)return this.lookup.delete(t),t}isEmpty(){return this.list.length===0}isAdded(t){return this.lookup.has(t)}process(t){let s;const n=new Map;for(s=this.shift();s;){const r=n.get(s)||0;if(r>re)throw new Error(`Web component processed too many times this task, max allowed is: ${re}`);t(s),n.set(s,r+1),s=this.shift()}}}const We=(e,t=document.body)=>{let s=document.querySelector(e);return s||(s=document.createElement(e),t.insertBefore(s,t.firstChild))},rn=()=>typeof document>"u"?null:We("ui5-shared-resources",document.head),P=(e,t)=>{const s=e.split(".");let n=rn();if(!n)return t;for(let r=0;r<s.length;r++){const o=s[r],i=r===s.length-1;Object.prototype.hasOwnProperty.call(n,o)||(n[o]=i?t:{}),n=n[o]}return n},on={version:"0.0.0-8e1845415",major:0,minor:0,patch:0,suffix:"-8e1845415",isNext:!0,buildTime:1678698189};let nt,an="";const wt=new Map,z=P("Runtimes",[]),cn=()=>{if(nt===void 0){nt=z.length;const e=on;z.push({...e,alias:an,description:`Runtime ${nt} - ver ${e.version}`})}},Ze=()=>nt,ln=(e,t)=>{const s=`${e},${t}`;if(wt.has(s))return wt.get(s);const n=z[e],r=z[t];if(!n||!r)throw new Error("Invalid runtime index supplied");if(n.isNext||r.isNext)return n.buildTime-r.buildTime;const o=n.major-r.major;if(o)return o;const i=n.minor-r.minor;if(i)return i;const a=n.patch-r.patch;if(a)return a;const l=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(n.suffix,r.suffix);return wt.set(s,l),l},un=()=>z,qe=P("Tags",new Map),Wt=new Set;let E=new Map,vt;const Ge=-1,dn=e=>{Wt.add(e),qe.set(e,Ze())},hn=e=>Wt.has(e),fn=()=>[...Wt.values()],pn=e=>{let t=qe.get(e);t===void 0&&(t=Ge),E.has(t)||E.set(t,new Set),E.get(t).add(e),vt||(vt=setTimeout(()=>{gn(),E=new Map,vt=void 0},1e3))},gn=()=>{const e=un(),t=Ze(),s=e[t];let n="Multiple UI5 Web Components instances detected.";e.length>1&&(n=`${n}
2
- Loading order (versions before 1.1.0 not listed): ${e.map(r=>`
3
- ${r.description}`).join("")}`),[...E.keys()].forEach(r=>{let o,i;r===Ge?(o=1,i={description:"Older unknown runtime"}):(o=ln(t,r),i=e[r]);let a;o>0?a="an older":o<0?a="a newer":a="the same",n=`${n}
4
-
5
- "${s.description}" failed to define ${E.get(r).size} tag(s) as they were defined by a runtime of ${a} version "${i.description}": ${[...E.get(r)].sort().join(", ")}.`,o>0?n=`${n}
6
- WARNING! If your code uses features of the above web components, unavailable in ${i.description}, it might not work as expected!`:n=`${n}
7
- Since the above web components were defined by the same or newer version runtime, they should be compatible with your code.`}),n=`${n}
8
-
9
- To prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/main/docs/2-advanced/03-scoping.md.`,console.warn(n)},Ke=new Set,mn=e=>{Ke.add(e)},yn=e=>Ke.has(e),Zt=new Set,_n=new M,x=new nn;let I,rt,St,Q;const Xe=async e=>{x.add(e),await wn()},Ye=e=>{_n.fireEvent("beforeComponentRender",e),Zt.add(e),e._render()},An=e=>{x.remove(e),Zt.delete(e)},wn=async()=>{Q||(Q=new Promise(e=>{window.requestAnimationFrame(()=>{x.process(Ye),Q=null,e(),St||(St=setTimeout(()=>{St=void 0,x.isEmpty()&&$n()},200))})})),await Q},vn=()=>I||(I=new Promise(e=>{rt=e,window.requestAnimationFrame(()=>{x.isEmpty()&&(I=void 0,e())})}),I),Sn=()=>{const e=fn().map(t=>customElements.whenDefined(t));return Promise.all(e)},Je=async()=>{await Sn(),await vn()},$n=()=>{!x.isEmpty()||rt&&(rt(),rt=void 0,I=void 0)},qt=async e=>{Zt.forEach(t=>{const s=t.constructor,n=s.getMetadata().getTag(),r=yn(s),o=s.getMetadata().isLanguageAware(),i=s.getMetadata().isThemeAware();(!e||e.tag===n||e.rtlAware&&r||e.languageAware&&o||e.themeAware&&i)&&Xe(t)}),await Je()};let F,kt;const Qe=()=>(F===void 0&&(F=Gs()),F),Co=async e=>{F!==e&&(F=e,await sn(e),await qt({languageAware:!0}))},bn=e=>{kt=e},Cn=()=>(kt===void 0&&bn(Ks()),kt),En=/^((?:[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 ts{constructor(t){const s=En.exec(t.replace(/_/g,"-"));if(s===null)throw new Error(`The given language ${t} does not adhere to BCP-47.`);this.sLocaleId=t,this.sLanguage=s[1]||lt,this.sScript=s[2]||"",this.sRegion=s[3]||"",this.sVariant=s[4]&&s[4].slice(1)||null,this.sExtension=s[5]&&s[5].slice(1)||null,this.sPrivateUse=s[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,n=>n.toUpperCase())),this.sRegion&&(this.sRegion=this.sRegion.toUpperCase())}getLanguage(){return this.sLanguage}getScript(){return this.sScript}getRegion(){return this.sRegion}getVariant(){return this.sVariant}getVariantSubtags(){return this.sVariant?this.sVariant.split("-"):[]}getExtension(){return this.sExtension}getExtensionSubtags(){return this.sExtension?this.sExtension.slice(2).split("-"):[]}getPrivateUse(){return this.sPrivateUse}getPrivateUseSubtags(){return this.sPrivateUse?this.sPrivateUse.slice(2).split("-"):[]}hasPrivateUseSubtag(t){return this.getPrivateUseSubtags().indexOf(t)>=0}toString(){const t=[this.sLanguage];return this.sScript&&t.push(this.sScript),this.sRegion&&t.push(this.sRegion),this.sVariant&&t.push(this.sVariant),this.sExtension&&t.push(this.sExtension),this.sPrivateUse&&t.push(this.sPrivateUse),t.join("-")}}const $t=new Map,es=e=>($t.has(e)||$t.set(e,new ts(e)),$t.get(e)),oe=e=>{try{if(e&&typeof e=="string")return es(e)}catch{}return new ts(v)},Bt=e=>{if(e)return oe(e);const t=Qe();return t?es(t):oe(Ue())},Tn=/^((?:[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,ie=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,Ln={he:"iw",yi:"ji",nb:"no",sr:"sh"},Mn=e=>{let t;if(!e)return v;if(typeof e=="string"&&(t=Tn.exec(e.replace(/_/g,"-")))){let s=t[1].toLowerCase(),n=t[3]?t[3].toUpperCase():void 0;const r=t[2]?t[2].toLowerCase():void 0,o=t[4]?t[4].slice(1):void 0,i=t[6];return s=Ln[s]||s,i&&(t=ie.exec(i))||o&&(t=ie.exec(o))?`en_US_${t[1].toLowerCase()}`:(s==="zh"&&!n&&(r==="hans"?n="CN":r==="hant"&&(n="TW")),s+(n?"_"+n+(o?"_"+o.replace("-","_"):""):""))}return v},Pn=e=>{if(!e)return v;if(e==="zh_HK")return"zh_TW";const t=e.lastIndexOf("_");return t>=0?e.slice(0,t):e!==v?v:""},ae=new Set,ce=new Set,Gt=new Map,bt=new Map,Kt=new Map,Eo=(e,t,s)=>{const n=`${e}/${t}`;Kt.set(n,s)},le=(e,t)=>{Gt.set(e,t)},In=e=>Gt.get(e),ue=(e,t)=>{const s=`${e}/${t}`;return Kt.has(s)},Rn=(e,t)=>{const s=`${e}/${t}`,n=Kt.get(s);return n&&!bt.get(s)&&bt.set(s,n(t)),bt.get(s)},On=e=>{ae.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.`),ae.add(e))},ss=async e=>{const t=Bt().getLanguage(),s=Bt().getRegion();let n=Mn(t+(s?`-${s}`:""));for(;n!==lt&&!ue(e,n);)n=Pn(n);const r=Cn();if(n===lt&&!r){le(e,null);return}if(!ue(e,n)){On(e);return}try{const o=await Rn(e,n);le(e,o)}catch(o){const i=o;ce.has(i.message)||(ce.add(i.message),console.error(i.message))}};ze(e=>{const t=[...Gt.keys()];return Promise.all(t.map(ss))});const Dn=new Map,dt=new Map,Ct=new Map,de=new Set;let he=!1;const xn={iw:"he",ji:"yi",in:"id"},fe=e=>{he||(console.warn(`[LocaleData] Supported locale "${e}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),he=!0)},Un=(e,t,s)=>{e=e&&xn[e]||e,e==="no"&&(e="nb"),e==="zh"&&!t&&(s==="Hans"?t="CN":s==="Hant"&&(t="TW")),(e==="sh"||e==="sr"&&s==="Latn")&&(e="sr",t="Latn");let n=`${e}_${t}`;return te.includes(n)||(n=e,te.includes(n))?dt.has(n)?n:(fe(n),v):v},pe=(e,t)=>{Dn.set(e,t)},Nn=e=>{if(!Ct.get(e)){const t=dt.get(e);if(!t)throw new Error(`CLDR data for locale ${e} is not loaded!`);Ct.set(e,t(e))}return Ct.get(e)},kn=async(e,t,s)=>{const n=Un(e,t,s),r=A("OpenUI5Support");if(r){const o=r.getLocaleDataObject();if(o){pe(n,o);return}}try{const o=await Nn(n);pe(n,o)}catch(o){const i=o;de.has(i.message)||(de.add(i.message),console.error(i.message))}},Bn=(e,t)=>{dt.set(e,t)};Bn("en",async()=>(await fetch("https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json")).json());ze(()=>{const e=Bt();return kn(e.getLanguage(),e.getRegion(),e.getScript())});const ns=new M,rs="themeRegistered",Hn=e=>{ns.attachEvent(rs,e)},Vn=e=>ns.fireEvent(rs,e),os=new Map,is=new Map,as=new Set,ht=new Set,To=(e,t,s)=>{is.set(`${e}/${t}`,s),as.add(e),ht.add(t),Vn(`${e}/${t}`),console.log("fireThemeRegistered :: ",{packageName:e,themeName:t})},cs=async(e,t)=>{const s=os.get(`${e}_${t}`);if(s!==void 0)return s;if(!ht.has(t)){const n=[...ht.values()].join(", ");return console.warn(`You have requested a non-registered theme ${t} - falling back to ${ct}. Registered themes are: ${n}`),ge(e,ct)}return ge(e,t)},ge=async(e,t)=>{const s=is.get(`${e}/${t}`);if(!s){console.error(`Theme [${t}] not registered for package [${e}]`);return}let n;try{n=await s(t)}catch(o){console.error(e,o.message);return}const r=n._||n;return os.set(`${e}_${t}`,r),r},ls=()=>as,Fn=e=>ht.has(e);var ft;(function(e){e["SAP-icons"]="SAP-icons-v4",e.horizon="SAP-icons-v5",e["SAP-icons-TNT"]="tnt",e.BusinessSuiteInAppSymbols="business-suite"})(ft||(ft={}));const us=e=>ft[e]?ft[e]:e,jn=(e,t)=>{const s=document.createElement("style");return s.type="text/css",t&&Object.entries(t).forEach(n=>s.setAttribute(...n)),s.textContent=e,document.head.appendChild(s),s},zn=(e,t)=>{const s=document.createElement("link");return s.type="text/css",s.rel="stylesheet",t&&Object.entries(t).forEach(n=>s.setAttribute(...n)),s.href=e,document.head.appendChild(s),new Promise(n=>{s.addEventListener("load",n),s.addEventListener("error",n)})},mt=(e,t)=>t?`${e}|${t}`:e,yt=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;if(document.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(n),r._ui5StyleId=mt(t,s),document.adoptedStyleSheets=[...document.adoptedStyleSheets,r]}else{const r={};r[t]=s,jn(n,r)}},Wn=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;if(document.adoptedStyleSheets){const r=document.adoptedStyleSheets.find(o=>o._ui5StyleId===mt(t,s));r&&r.replaceSync(n||"")}else{const r=document.querySelector(`head>style[${t}="${s}"]`);r&&(r.textContent=n||"")}},_t=(e,t="")=>document.adoptedStyleSheets?!!document.adoptedStyleSheets.find(s=>s._ui5StyleId===mt(e,t)):!!document.querySelector(`head>style[${e}="${t}"]`),Zn=(e,t="")=>{var s;if(document.adoptedStyleSheets)document.adoptedStyleSheets=document.adoptedStyleSheets.filter(n=>n._ui5StyleId!==mt(e,t));else{const n=document.querySelector(`head > style[${e}="${t}"]`);(s=n==null?void 0:n.parentElement)==null||s.removeChild(n)}},ds=(e,t,s="")=>{_t(t,s)?Wn(e,t,s):yt(e,t,s)},R=new Set,qn=()=>{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},Gn=e=>{const t=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(e);if(t&&t.length>=2){let s=t[1];if(s=s.replace(/\\"/g,'"'),s.charAt(0)!=="{"&&s.charAt(s.length-1)!=="}")try{s=decodeURIComponent(s)}catch{R.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),R.add("decode"));return}try{return JSON.parse(s)}catch{R.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),R.add("parse"))}}},Kn=e=>{let t,s;try{t=e.Path.match(/\.([^.]+)\.css_variables$/)[1],s=e.Extends[0]}catch{R.has("object")||(console.warn("Malformed theme metadata Object",e),R.add("object"));return}return{themeName:t,baseThemeName:s}},me=()=>{const e=qn();if(!e||e==="none")return;const t=Gn(e);if(t)return Kn(t)},Xn=new M,Yn="themeLoaded",Jn=e=>Xn.fireEvent(Yn,e);let Et;const hs=()=>(Et===void 0&&(Et=Zs()),Et),Qn=e=>`${hs()}Base/baseLib/${e}/css_variables.css`,tr=async e=>{const t=document.querySelector(`[sap-ui-webcomponents-theme="${e}"]`);t&&document.head.removeChild(t),await zn(Qn(e),{"sap-ui-webcomponents-theme":e})},W="@ui5/webcomponents-theming",er=()=>ls().has(W),sr=async e=>{if(!er())return;const t=await cs(W,e);t&&ds(t,"data-ui5-theme-properties",W)},nr=()=>{Zn("data-ui5-theme-properties",W)},rr=async e=>{const s=[...ls()].map(async n=>{if(n===W)return;const r=await cs(n,e);r&&ds(r,"data-ui5-theme-properties",n)});return Promise.all(s)},or=async e=>{var n;const t=me();if(t)return t;const s=A("OpenUI5Support");if(s){if(s.cssVariablesLoaded())return{themeName:(n=s.getConfigurationSettingsObject())==null?void 0:n.theme,baseThemeName:""}}else if(hs())return await tr(e),me()},fs=async e=>{console.log("applyTheme :: ",{theme:e});const t=await or(e);!t||e!==t.themeName?await sr(e):nr();const s=Fn(e)?e:t&&t.baseThemeName;await rr(s||ct),Jn(e)};let O;const Xt=()=>(O===void 0&&(O=Ws()),O),Lo=async e=>{O!==e&&(O=e,await fs(O),await qt({themeAware:!0}))},ir=e=>Xt().startsWith(e),ar=new Map;var $;(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"})($||($={}));const cr=e=>{const t=Xt(),s=ar.get(t);return!e&&s?us(s):lr(e)},lr=e=>{const t=ir("sap_horizon");return e?e==="tnt"?t?$.SAPIconsTNTV3:$.SAPIconsTNTV2:e==="business-suite"?t?$.SAPBSIconsV2:$.SAPBSIconsV1:e:t?$.SAPIconsV5:$.SAPIconsV4},ye=new Map,Z=P("SVGIcons.registry",new Map),Tt=P("SVGIcons.promises",new Map),_e="ICON_NOT_FOUND",ur=async e=>{if(!Tt.has(e)){if(!ye.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=ye.get(e);Tt.set(e,t(e))}return Tt.get(e)},dr=e=>{Object.keys(e.data).forEach(t=>{const s=e.data[t];hr(t,{pathData:s.path||s.paths,ltr:s.ltr,accData:s.acc,collection:e.collection,packageName:e.packageName})})},hr=(e,t)=>{const s=`${t.collection}/${e}`;Z.set(s,{pathData:t.pathData,ltr:t.ltr,accData:t.accData,packageName:t.packageName,customTemplate:t.customTemplate,viewBox:t.viewBox,collection:t.collection})},ps=e=>{e.startsWith("sap-icon://")&&(e=e.replace("sap-icon://",""));let t;[e,t]=e.split("/").reverse(),e=e.replace("icon-",""),t&&(t=us(t)),t=cr(t);const s=`${t}/${e}`;return{name:e,collection:t,registryKey:s}},Mo=e=>{const{registryKey:t}=ps(e);return Z.get(t)},Lt=async e=>{const{collection:t,registryKey:s}=ps(e);let n=_e;try{n=await ur(t)}catch(r){console.error(r.message)}return n===_e?n:(Z.has(s)||dr(n),Z.get(s))},Po=async()=>(await Lt("edit"),await Lt("tnt/arrow"),await Lt("business-suite/3d"),Array.from(Z.keys())),fr=()=>{let e=document.activeElement;for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e},Ht=P("PopupUtilsData",{currentZIndex:100}),pr=()=>{const e=fr();return e&&typeof e.focus=="function"?e:null},Io=e=>{const t=pr();return t?gs(e,t):!1},gs=(e,t)=>{let s=e;if(s.shadowRoot&&(s=Array.from(s.shadowRoot.children).find(o=>o.localName!=="style"),!s))return!1;if(s===t)return!0;const n=s.localName==="slot"?s.assignedNodes():s.children;return n?Array.from(n).some(r=>gs(r,t)):!1},gr=(e,t,s)=>e>=s.left&&e<=s.right&&t>=s.top&&t<=s.bottom,Ro=(e,t)=>{let s,n;if(e instanceof MouseEvent)s=e.clientX,n=e.clientY;else{const r=e.touches[0];s=r.clientX,n=r.clientY}return gr(s,n,t)};function mr(e){return"isUI5Element"in e&&"_show"in e}const yr=e=>{const t=e.parentElement||e.getRootNode&&e.getRootNode().host;return t&&(mr(t)||t===document.documentElement)?t:yr(t)},Oo=()=>{const e=A("OpenUI5Support");return e&&e.isLoaded()?e.getNextZIndex():(Ht.currentZIndex+=2,Ht.currentZIndex)},Do=()=>Ht.currentZIndex,_r=()=>new Promise(e=>{document.body?e():document.addEventListener("DOMContentLoaded",()=>{e()})}),Ar={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")}`},wr={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')}"},vr=()=>{const e=A("OpenUI5Support");(!e||!e.isLoaded())&&Sr(),$r()},Sr=()=>{_t("data-ui5-font-face")||yt(Ar,"data-ui5-font-face")},$r=()=>{_t("data-ui5-font-face-override")||yt(wr,"data-ui5-font-face-override")},br={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}"},Cr=()=>{_t("data-ui5-system-css-vars")||yt(br,"data-ui5-system-css-vars")};let tt;const Er=new M,Tr=async()=>{if(tt!==void 0)return tt;const e=async t=>{if(typeof document>"u"){t();return}Hn(()=>{console.log("apply theme on theme registered"),fs(Xt())}),cn();const s=A("OpenUI5Support"),n=s?s.isLoaded():!1,r=A("F6Navigation");s&&await s.init(),r&&!n&&r.init(),await _r(),s&&s.attachListeners(),vr(),Cr(),t(),await Er.fireEventAsync("boot")};return tt=new Promise(e),tt},Mt=new Map,Pt=new Map,Ae=e=>{if(!Mt.has(e)){const t=Lr(e.split("-"));Mt.set(e,t)}return Mt.get(e)},ms=e=>{if(!Pt.has(e)){const t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();Pt.set(e,t)}return Pt.get(e)},Lr=e=>e.map((t,s)=>s===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(""),Mr=e=>{if(!(e instanceof HTMLElement))return"default";const t=e.getAttribute("slot");if(t){const s=t.match(/^(.+?)-\d+$/);return s?s[1]:t}return"default"},ys=e=>e instanceof HTMLSlotElement?e.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[e],Pr=e=>e.reduce((t,s)=>t.concat(ys(s)),[]);let Ir,we={include:[/^ui5-/],exclude:[]};const It=new Map,_s=()=>Ir,Vt=e=>{if(!It.has(e)){const t=we.include.some(s=>e.match(s))&&!we.exclude.some(s=>e.match(s));It.set(e,t)}return It.get(e)},As=e=>{if(Vt(e))return _s()};class Rr{constructor(t){this.metadata=t}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={},s=this.slotsAreManaged(),n=this.getProperties();for(const r in n){const o=n[r].type,i=n[r].defaultValue;o===Boolean?(t[r]=!1,i!==void 0&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):n[r].multiple?t[r]=[]:o===Object?t[r]="defaultValue"in n[r]?n[r].defaultValue:{}:o===String?t[r]="defaultValue"in n[r]?n[r].defaultValue:"":t[r]=i}if(s){const r=this.getSlots();for(const[o,i]of Object.entries(r)){const a=i.propertyName||o;t[a]=[]}}return this._initialState=t,t}static validatePropertyValue(t,s){return s.multiple&&t?t.map(r=>ve(r,s)):ve(t,s)}static validateSlotValue(t,s){return Or(t,s)}getPureTag(){return this.metadata.tag||""}getTag(){const t=this.metadata.tag;if(!t)return"";const s=As(t);return s?`${t}-${s}`:t}hasAttribute(t){const s=this.getProperties()[t];return s.type!==Object&&!s.noAttribute&&!s.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(ms)}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,s,n){const r=this.getSlots()[t].invalidateOnChildChange;if(r===void 0)return!1;if(typeof r=="boolean")return r;if(typeof r=="object"){if(s==="property"){if(r.properties===void 0)return!1;if(typeof r.properties=="boolean")return r.properties;if(Array.isArray(r.properties))return r.properties.includes(n);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if(s==="slot"){if(r.slots===void 0)return!1;if(typeof r.slots=="boolean")return r.slots;if(Array.isArray(r.slots))return r.slots.includes(n);throw new Error("Wrong format for invalidateOnChildChange.slots: boolean or array is expected")}}throw new Error("Wrong format for invalidateOnChildChange: boolean or object is expected")}}const ve=(e,t)=>{const s=t.type;let n=t.validator;return s&&s.isDataTypeClass&&(n=s),n?n.isValid(e)?e:t.defaultValue:!s||s===String?typeof e=="string"||typeof e>"u"||e===null?e:e.toString():s===Boolean?typeof e=="boolean"?e:!1:s===Object?typeof e=="object"?e:t.defaultValue:e in s?e:t.defaultValue},Or=(e,t)=>(e&&ys(e).forEach(s=>{if(!(s instanceof t.type))throw new Error(`The element is not of type ${t.type.toString()}`)}),e);customElements.get("ui5-static-area")||customElements.define("ui5-static-area",class extends HTMLElement{});const Dr=(e,t)=>{const s=xr(t),n=_s();return e(t,s,n)},xr=e=>{const t=e.constructor,s=t.getMetadata().getPureTag(),n=t.getUniqueDependencies().map(r=>r.getMetadata().getPureTag()).filter(Vt);return Vt(s)&&n.push(s),n},Ur=()=>P("CustomStyle.eventProvider",new M),Nr="CustomCSSChange",Yt=e=>{Ur().attachEvent(Nr,e)},kr=()=>P("CustomStyle.customCSSFor",{});Yt(e=>{qt({tag:e})});const Br=e=>{const t=kr();return t[e]?t[e].join(""):""},Hr=10,Rt=e=>Array.isArray(e)?e.filter(t=>!!t).flat(Hr).map(t=>typeof t=="string"?t:t.content).join(" "):typeof e=="string"?e:e.content,ot=new Map;Yt(e=>{ot.delete(`${e}_normal`)});const ws=(e,t=!1)=>{const s=e.getMetadata().getTag(),n=`${s}_${t?"static":"normal"}`,r=A("OpenUI5Enablement");if(!ot.has(n)){let o,i="";if(r&&(i=Rt(r.getBusyIndicatorStyles())),t)o=Rt(e.staticAreaStyles);else{const a=Br(s)||"";o=`${Rt(e.styles)} ${a}`}o=`${o} ${i}`,ot.set(n,o)}return ot.get(n)},it=new Map;Yt(e=>{it.delete(`${e}_normal`)});const Vr=(e,t=!1)=>{const n=`${e.getMetadata().getTag()}_${t?"static":"normal"}`;if(!it.has(n)){const r=ws(e,t),o=new CSSStyleSheet;o.replaceSync(r),it.set(n,[o])}return it.get(n)},Ft=(e,t=!1)=>{let s;const n=e.constructor,o=n[t?"staticAreaTemplate":"template"],i=t?e.staticAreaItem.shadowRoot:e.shadowRoot,a=Dr(o,e);if(!i){console.warn("There is no shadow root to update");return}if(document.adoptedStyleSheets?i.adoptedStyleSheets=Vr(n,t):s=ws(n,t),n.renderer){n.renderer(a,i,s,t,{host:e});return}n.render(a,i,s,t,{host:e})},Fr="--_ui5_content_density",jr=e=>getComputedStyle(e).getPropertyValue(Fr),zr=e=>{const t=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(e);return t&&t[2]?t[2].split(/,/):null},Wr={iw:"he",ji:"yi",in:"id",sh:"sr"},Zr=zr("$cldr-rtl-locales:ar,fa,he$")||[],qr=e=>(e=e&&Wr[e]||e,Zr.indexOf(e)>=0),Gr=()=>{if(typeof document>"u")return!1;const e=qs();return e!==void 0?!!e:qr(Qe()||Ue())},Kr="--_ui5_dir",vs=e=>{const t=window.document,s=["ltr","rtl"],n=getComputedStyle(e).getPropertyValue(Kr);return s.includes(n)?n:s.includes(e.dir)?e.dir:s.includes(t.documentElement.dir)?t.documentElement.dir:s.includes(t.body.dir)?t.body.dir:Gr()?"rtl":void 0},et="ui5-static-area-item",Xr="data-sap-ui-integration-popup-content";class j extends HTMLElement{constructor(){super(),this._rendered=!1,this.attachShadow({mode:"open"})}setOwnerElement(t){this.ownerElement=t,this.classList.add(this.ownerElement._id),this.ownerElement.hasAttribute("data-ui5-static-stable")&&this.setAttribute("data-ui5-stable",this.ownerElement.getAttribute("data-ui5-static-stable"))}update(){this._rendered&&(this._updateAdditionalAttrs(),this._updateContentDensity(),this._updateDirection(),Ft(this.ownerElement,!0))}_updateContentDensity(){jr(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=vs(this.ownerElement);t?this.setAttribute("dir",t):this.removeAttribute("dir")}}_updateAdditionalAttrs(){this.setAttribute(et,""),this.setAttribute(Xr,"")}async getDomRef(){return this._updateContentDensity(),this._rendered||(this._rendered=!0,Ft(this.ownerElement,!0)),await Je(),this.shadowRoot}static getTag(){const t=As(et);return t?`${et}-${t}`:et}static createInstance(){return customElements.get(j.getTag())||customElements.define(j.getTag(),j),document.createElement(this.getTag())}}const jt=new WeakMap,Yr=(e,t,s)=>{const n=new MutationObserver(t);jt.set(e,n),n.observe(e,s)},Jr=e=>{const t=jt.get(e);t&&(t.disconnect(),jt.delete(e))},Qr=["value-changed"];let at;const to=e=>Qr.includes(e),eo=e=>{const t=Ss();return!(typeof t!="boolean"&&t.events&&t.events.includes&&t.events.includes(e))},Ss=()=>(at===void 0&&(at=Xs()),at),xo=e=>{at=e},so=e=>{const t=Ss();return to(e)?!1:t===!0?!0:!eo(e)},no=["disabled","title","hidden","role","draggable"],Se=e=>no.includes(e)||e.startsWith("aria")?!0:![HTMLElement,Element,Node].some(s=>s.prototype.hasOwnProperty(e)),$e=(e,t)=>{if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==t[s])return!1;return!0};let ro=0;const be=new Map,Ot=new Map;function B(e){this._suppressInvalidation||(this.onInvalidation(e),this._changedState.push(e),Xe(this),this._eventProvider.fireEvent("invalidate",{...e,target:this}))}class Jt 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 M;let s;this._domRefReadyPromise=new Promise(n=>{s=n}),this._domRefReadyPromise._deferredResolve=s,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_${++ro}`),this.__id}async connectedCallback(){const t=this.constructor;this.setAttribute(t.getMetadata().getPureTag(),""),t.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const s=t.getMetadata().slotsAreManaged();this._inDOM=!0,s&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&(Ye(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,this.onEnterDOM())}disconnectedCallback(){const s=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!1,s&&this._stopObservingDOMChildren(),this._fullyConnected&&(this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),An(this)}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}_startObservingDOMChildren(){const t=this.constructor;if(!t.getMetadata().hasSlots())return;const n=t.getMetadata().canSlotText(),r={childList:!0,subtree:n,characterData:n};Yr(this,this._processChildren.bind(this),r)}_stopObservingDOMChildren(){Jr(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const t=this.constructor,s=t.getMetadata().getSlots(),n=t.getMetadata().canSlotText(),r=Array.from(n?this.childNodes:this.children),o=new Map,i=new Map;for(const[u,d]of Object.entries(s)){const h=d.propertyName||u;i.set(h,u),o.set(h,[...this._state[h]]),this._clearSlot(u,d)}const a=new Map,c=new Map,l=r.map(async(u,d)=>{const h=Mr(u),p=s[h];if(p===void 0){if(h!=="default"){const g=Object.keys(s).join(", ");console.warn(`Unknown slotName: ${h}, ignoring`,u,`Valid values are: ${g}`)}return}if(p.individualSlots){const g=(a.get(h)||0)+1;a.set(h,g),u._individualSlot=`${h}-${g}`}if(u instanceof HTMLElement){const g=u.localName;if(g.includes("-")){if(!window.customElements.get(g)){const xs=window.customElements.whenDefined(g);let J=be.get(g);J||(J=new Promise(Us=>setTimeout(Us,1e3)),be.set(g,J)),await Promise.race([xs,J])}window.customElements.upgrade(u)}}if(u=t.getMetadata().constructor.validateSlotValue(u,p),Ce(u)&&p.invalidateOnChildChange){const g=this._getChildChangeListener(h);g&&u.attachInvalidate.call(u,g)}u instanceof HTMLSlotElement&&this._attachSlotChange(u,h);const m=p.propertyName||h;c.has(m)?c.get(m).push({child:u,idx:d}):c.set(m,[{child:u,idx:d}])});await Promise.all(l),c.forEach((u,d)=>{this._state[d]=u.sort((h,p)=>h.idx-p.idx).map(h=>h.child)});let f=!1;for(const[u,d]of Object.entries(s)){const h=d.propertyName||u;$e(o.get(h),this._state[h])||(B.call(this,{type:"slot",name:i.get(h),reason:"children"}),f=!0)}f||B.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(t,s){const n=s.propertyName||t;this._state[n].forEach(o=>{if(Ce(o)){const i=this._getChildChangeListener(t);i&&o.detachInvalidate.call(o,i)}o instanceof HTMLSlotElement&&this._detachSlotChange(o,t)}),this._state[n]=[]}attachInvalidate(t){this._eventProvider.attachEvent("invalidate",t)}detachInvalidate(t){this._eventProvider.detachEvent("invalidate",t)}_onChildChange(t,s){!this.constructor.getMetadata().shouldInvalidateOnChildChange(t,s.type,s.name)||B.call(this,{type:"slot",name:t,reason:"childchange",child:s.target})}attributeChangedCallback(t,s,n){let r;if(this._doNotSyncAttributes.has(t))return;const o=this.constructor.getMetadata().getProperties(),i=t.replace(/^ui5-/,""),a=Ae(i);if(o.hasOwnProperty(a)){const c=o[a],l=c.type;let f=c.validator;l&&l.isDataTypeClass&&(f=l),f?r=f.attributeToProperty(n):l===Boolean?r=n!==null:r=n,this[a]=r}}_updateAttribute(t,s){const n=this.constructor;if(!n.getMetadata().hasAttribute(t))return;const o=n.getMetadata().getProperties()[t],i=o.type;let a=o.validator;const c=ms(t),l=this.getAttribute(c);if(i&&i.isDataTypeClass&&(a=i),a){const f=a.propertyToAttribute(s);f===null?(this._doNotSyncAttributes.add(c),this.removeAttribute(c),this._doNotSyncAttributes.delete(c)):this.setAttribute(c,f)}else i===Boolean?s===!0&&l===null?this.setAttribute(c,""):s===!1&&l!==null&&this.removeAttribute(c):typeof s!="object"&&l!==s&&this.setAttribute(c,s)}_upgradeProperty(t){if(this.hasOwnProperty(t)){const s=this[t];delete this[t],this[t]=s}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty.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,s){const n=this._getSlotChangeListener(s);n&&t.addEventListener("slotchange",n)}_detachSlotChange(t,s){t.removeEventListener("slotchange",this._getSlotChangeListener(s))}_onSlotChange(t){B.call(this,{type:"slot",name:t,reason:"slotchange"})}onInvalidation(t){}_render(){const t=this.constructor,s=t.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),this._suppressInvalidation=!1,this._changedState=[],t._needsShadowDOM()&&Ft(this),this.staticAreaItem&&this.staticAreaItem.update(),s&&this._assignIndividualSlotsToChildren(),this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(s=>{s._individualSlot&&s.setAttribute("slot",s._individualSlot)})}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(typeof this._getRealDomRef=="function")return this._getRealDomRef();if(!this.shadowRoot||this.shadowRoot.children.length===0)return;const t=[...this.shadowRoot.children].filter(s=>!["link","style"].includes(s.localName));return t.length!==1&&console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`),t[0]}getFocusDomRef(){const t=this.getDomRef();if(t)return t.querySelector("[data-sap-focus-ref]")||t}async getFocusDomRefAsync(){return await this._waitForDomRef(),this.getFocusDomRef()}async focus(t){await this._waitForDomRef();const s=this.getFocusDomRef();s&&typeof s.focus=="function"&&s.focus(t)}fireEvent(t,s,n=!1,r=!0){const o=this._fireEvent(t,s,n,r),i=Ae(t);return i!==t?o&&this._fireEvent(i,s,n):o}_fireEvent(t,s,n=!1,r=!0){const o=new CustomEvent(`ui5-${t}`,{detail:s,composed:!1,bubbles:r,cancelable:n}),i=this.dispatchEvent(o);if(so(t))return i;const a=new CustomEvent(t,{detail:s,composed:!1,bubbles:r,cancelable:n});return this.dispatchEvent(a)&&i}getSlottedNodes(t){return Pr(this[t])}get effectiveDir(){return mn(this.constructor),vs(this)}get isUI5Element(){return!0}get classes(){return{}}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _needsShadowDOM(){return!!this.template}static _needsStaticArea(){return!!this.staticAreaTemplate}getStaticAreaItemDomRef(){if(!this.constructor._needsStaticArea())throw new Error("This component does not use the static area");return this.staticAreaItem||(this.staticAreaItem=j.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||We("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const t=this.prototype,s=this.getMetadata().slotsAreManaged(),n=this.getMetadata().getProperties();for(const[r,o]of Object.entries(n)){if(Se(r)||console.warn(`"${r}" is not a valid property name. Use a name that does not collide with DOM APIs`),o.type===Boolean&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All booleans are false by default.`);if(o.type===Array)throw new Error(`Wrong type for property "${r}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(o.type===Object&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All properties of type "Object" are empty objects by default.`);if(o.multiple&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All multiple properties are empty arrays by default.`);Object.defineProperty(t,r,{get(){if(this._state[r]!==void 0)return this._state[r];const i=o.defaultValue;return o.type===Boolean?!1:o.type===String?i:o.multiple?[]:i},set(i){let a;i=this.constructor.getMetadata().constructor.validatePropertyValue(i,o);const f=o.type;let u=o.validator;const d=this._state[r];f&&f.isDataTypeClass&&(u=f),u?a=!u.valuesAreEqual(d,i):Array.isArray(d)&&Array.isArray(i)&&o.multiple&&o.compareValues?a=!$e(d,i):a=d!==i,a&&(this._state[r]=i,B.call(this,{type:"property",name:r,newValue:i,oldValue:d}),this._updateAttribute(r,i))}})}if(s){const r=this.getMetadata().getSlots();for(const[o,i]of Object.entries(r)){Se(o)||console.warn(`"${o}" is not a valid property name. Use a name that does not collide with DOM APIs`);const a=i.propertyName||o;Object.defineProperty(t,a,{get(){return this._state[a]!==void 0?this._state[a]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!Ot.has(this)){const t=this.dependencies.filter((s,n,r)=>r.indexOf(s)===n);Ot.set(this,t)}return Ot.get(this)||[]}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map(t=>t.define()))}static async onDefine(){return Promise.resolve()}static async define(){await Tr(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const t=this.getMetadata().getTag(),s=hn(t),n=customElements.get(t);return n&&!s?pn(t):n||(this._generateAccessors(),dn(t),window.customElements.define(t,this)),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let s=this;for(;s!==Jt;)s=Object.getPrototypeOf(s),t.unshift(s.metadata);const n=zt({},...t);return this._metadata=new Rr(n),this._metadata}}Jt.metadata={};const Ce=e=>"isUI5Element"in e;/**
10
- * @license
11
- * Copyright 2017 Google LLC
12
- * SPDX-License-Identifier: BSD-3-Clause
13
- */var Dt;const pt=window,U=pt.trustedTypes,Ee=U?U.createPolicy("lit-html",{createHTML:e=>e}):void 0,w=`lit$${(Math.random()+"").slice(9)}$`,Qt="?"+w,oo=`<${Qt}>`,N=document,q=(e="")=>N.createComment(e),G=e=>e===null||typeof e!="object"&&typeof e!="function",$s=Array.isArray,bs=e=>$s(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",H=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Te=/-->/g,Le=/>/g,b=RegExp(`>|[
14
- \f\r](?:([^\\s"'>=/]+)([
15
- \f\r]*=[
16
- \f\r]*(?:[^
17
- \f\r"'\`<>=]|("|')|))|$)`,"g"),Me=/'/g,Pe=/"/g,Cs=/^(?:script|style|textarea|title)$/i,Es=e=>(t,...s)=>({_$litType$:e,strings:t,values:s}),io=Es(1),ao=Es(2),T=Symbol.for("lit-noChange"),y=Symbol.for("lit-nothing"),Ie=new WeakMap,D=N.createTreeWalker(N,129,null,!1),Ts=(e,t)=>{const s=e.length-1,n=[];let r,o=t===2?"<svg>":"",i=H;for(let c=0;c<s;c++){const l=e[c];let f,u,d=-1,h=0;for(;h<l.length&&(i.lastIndex=h,u=i.exec(l),u!==null);)h=i.lastIndex,i===H?u[1]==="!--"?i=Te:u[1]!==void 0?i=Le:u[2]!==void 0?(Cs.test(u[2])&&(r=RegExp("</"+u[2],"g")),i=b):u[3]!==void 0&&(i=b):i===b?u[0]===">"?(i=r!=null?r:H,d=-1):u[1]===void 0?d=-2:(d=i.lastIndex-u[2].length,f=u[1],i=u[3]===void 0?b:u[3]==='"'?Pe:Me):i===Pe||i===Me?i=b:i===Te||i===Le?i=H:(i=b,r=void 0);const p=i===b&&e[c+1].startsWith("/>")?" ":"";o+=i===H?l+oo:d>=0?(n.push(f),l.slice(0,d)+"$lit$"+l.slice(d)+w+p):l+w+(d===-2?(n.push(void 0),c):p)}const a=o+(e[s]||"<?>")+(t===2?"</svg>":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[Ee!==void 0?Ee.createHTML(a):a,n]};class K{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let o=0,i=0;const a=t.length-1,c=this.parts,[l,f]=Ts(t,s);if(this.el=K.createElement(l,n),D.currentNode=this.el.content,s===2){const u=this.el.content,d=u.firstChild;d.remove(),u.append(...d.childNodes)}for(;(r=D.nextNode())!==null&&c.length<a;){if(r.nodeType===1){if(r.hasAttributes()){const u=[];for(const d of r.getAttributeNames())if(d.endsWith("$lit$")||d.startsWith(w)){const h=f[i++];if(u.push(d),h!==void 0){const p=r.getAttribute(h.toLowerCase()+"$lit$").split(w),m=/([.?@])?(.*)/.exec(h);c.push({type:1,index:o,name:m[2],strings:p,ctor:m[1]==="."?Ms:m[1]==="?"?Ps:m[1]==="@"?Is:X})}else c.push({type:6,index:o})}for(const d of u)r.removeAttribute(d)}if(Cs.test(r.tagName)){const u=r.textContent.split(w),d=u.length-1;if(d>0){r.textContent=U?U.emptyScript:"";for(let h=0;h<d;h++)r.append(u[h],q()),D.nextNode(),c.push({type:2,index:++o});r.append(u[d],q())}}}else if(r.nodeType===8)if(r.data===Qt)c.push({type:2,index:o});else{let u=-1;for(;(u=r.data.indexOf(w,u+1))!==-1;)c.push({type:7,index:o}),u+=w.length-1}o++}}static createElement(t,s){const n=N.createElement("template");return n.innerHTML=t,n}}function L(e,t,s=e,n){var r,o,i,a;if(t===T)return t;let c=n!==void 0?(r=s._$Co)===null||r===void 0?void 0:r[n]:s._$Cl;const l=G(t)?void 0:t._$litDirective$;return(c==null?void 0:c.constructor)!==l&&((o=c==null?void 0:c._$AO)===null||o===void 0||o.call(c,!1),l===void 0?c=void 0:(c=new l(e),c._$AT(e,s,n)),n!==void 0?((i=(a=s)._$Co)!==null&&i!==void 0?i:a._$Co=[])[n]=c:s._$Cl=c),c!==void 0&&(t=L(e,c._$AS(e,t.values),c,n)),t}class Ls{constructor(t,s){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=s}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var s;const{el:{content:n},parts:r}=this._$AD,o=((s=t==null?void 0:t.creationScope)!==null&&s!==void 0?s:N).importNode(n,!0);D.currentNode=o;let i=D.nextNode(),a=0,c=0,l=r[0];for(;l!==void 0;){if(a===l.index){let f;l.type===2?f=new k(i,i.nextSibling,this,t):l.type===1?f=new l.ctor(i,l.name,l.strings,this,t):l.type===6&&(f=new Rs(i,this,t)),this.u.push(f),l=r[++c]}a!==(l==null?void 0:l.index)&&(i=D.nextNode(),a++)}return o}p(t){let s=0;for(const n of this.u)n!==void 0&&(n.strings!==void 0?(n._$AI(t,n,s),s+=n.strings.length-2):n._$AI(t[s])),s++}}class k{constructor(t,s,n,r){var o;this.type=2,this._$AH=y,this._$AN=void 0,this._$AA=t,this._$AB=s,this._$AM=n,this.options=r,this._$Cm=(o=r==null?void 0:r.isConnected)===null||o===void 0||o}get _$AU(){var t,s;return(s=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&s!==void 0?s:this._$Cm}get parentNode(){let t=this._$AA.parentNode;const s=this._$AM;return s!==void 0&&t.nodeType===11&&(t=s.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,s=this){t=L(this,t,s),G(t)?t===y||t==null||t===""?(this._$AH!==y&&this._$AR(),this._$AH=y):t!==this._$AH&&t!==T&&this.g(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):bs(t)?this.k(t):this.g(t)}O(t,s=this._$AB){return this._$AA.parentNode.insertBefore(t,s)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==y&&G(this._$AH)?this._$AA.nextSibling.data=t:this.T(N.createTextNode(t)),this._$AH=t}$(t){var s;const{values:n,_$litType$:r}=t,o=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=K.createElement(r.h,this.options)),r);if(((s=this._$AH)===null||s===void 0?void 0:s._$AD)===o)this._$AH.p(n);else{const i=new Ls(o,this),a=i.v(this.options);i.p(n),this.T(a),this._$AH=i}}_$AC(t){let s=Ie.get(t.strings);return s===void 0&&Ie.set(t.strings,s=new K(t)),s}k(t){$s(this._$AH)||(this._$AH=[],this._$AR());const s=this._$AH;let n,r=0;for(const o of t)r===s.length?s.push(n=new k(this.O(q()),this.O(q()),this,this.options)):n=s[r],n._$AI(o),r++;r<s.length&&(this._$AR(n&&n._$AB.nextSibling,r),s.length=r)}_$AR(t=this._$AA.nextSibling,s){var n;for((n=this._$AP)===null||n===void 0||n.call(this,!1,!0,s);t&&t!==this._$AB;){const r=t.nextSibling;t.remove(),t=r}}setConnected(t){var s;this._$AM===void 0&&(this._$Cm=t,(s=this._$AP)===null||s===void 0||s.call(this,t))}}class X{constructor(t,s,n,r,o){this.type=1,this._$AH=y,this._$AN=void 0,this.element=t,this.name=s,this._$AM=r,this.options=o,n.length>2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=y}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,s=this,n,r){const o=this.strings;let i=!1;if(o===void 0)t=L(this,t,s,0),i=!G(t)||t!==this._$AH&&t!==T,i&&(this._$AH=t);else{const a=t;let c,l;for(t=o[0],c=0;c<o.length-1;c++)l=L(this,a[n+c],s,c),l===T&&(l=this._$AH[c]),i||(i=!G(l)||l!==this._$AH[c]),l===y?t=y:t!==y&&(t+=(l!=null?l:"")+o[c+1]),this._$AH[c]=l}i&&!r&&this.j(t)}j(t){t===y?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t!=null?t:"")}}class Ms extends X{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===y?void 0:t}}const co=U?U.emptyScript:"";class Ps extends X{constructor(){super(...arguments),this.type=4}j(t){t&&t!==y?this.element.setAttribute(this.name,co):this.element.removeAttribute(this.name)}}class Is extends X{constructor(t,s,n,r,o){super(t,s,n,r,o),this.type=5}_$AI(t,s=this){var n;if((t=(n=L(this,t,s,0))!==null&&n!==void 0?n:y)===T)return;const r=this._$AH,o=t===y&&r!==y||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,i=t!==y&&(r===y||o);o&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var s,n;typeof this._$AH=="function"?this._$AH.call((n=(s=this.options)===null||s===void 0?void 0:s.host)!==null&&n!==void 0?n:this.element,t):this._$AH.handleEvent(t)}}class Rs{constructor(t,s,n){this.element=t,this.type=6,this._$AN=void 0,this._$AM=s,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(t){L(this,t)}}const lo={P:"$lit$",A:w,M:Qt,C:1,L:Ts,R:Ls,D:bs,V:L,I:k,H:X,N:Ps,U:Is,B:Ms,F:Rs},Re=pt.litHtmlPolyfillSupport;Re==null||Re(K,k),((Dt=pt.litHtmlVersions)!==null&&Dt!==void 0?Dt:pt.litHtmlVersions=[]).push("2.6.0");const uo=(e,t,s)=>{var n,r;const o=(n=s==null?void 0:s.renderBefore)!==null&&n!==void 0?n:t;let i=o._$litPart$;if(i===void 0){const a=(r=s==null?void 0:s.renderBefore)!==null&&r!==void 0?r:null;o._$litPart$=i=new k(t.insertBefore(q(),a),a,void 0,s!=null?s:{})}return i._$AI(e),i};/**
18
- * @license
19
- * Copyright 2017 Google LLC
20
- * SPDX-License-Identifier: BSD-3-Clause
21
- */const Os={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ho=e=>(...t)=>({_$litDirective$:e,values:t});class Ds{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,s,n){this._$Ct=t,this._$AM=s,this._$Ci=n}_$AS(t,s){return this.update(t,s)}update(t,s){return this.render(...s)}}/**
22
- * @license
23
- * Copyright 2020 Google LLC
24
- * SPDX-License-Identifier: BSD-3-Clause
25
- */const{I:fo}=lo,Oe=()=>document.createComment(""),V=(e,t,s)=>{var n;const r=e._$AA.parentNode,o=t===void 0?e._$AB:t._$AA;if(s===void 0){const i=r.insertBefore(Oe(),o),a=r.insertBefore(Oe(),o);s=new fo(i,a,e,e.options)}else{const i=s._$AB.nextSibling,a=s._$AM,c=a!==e;if(c){let l;(n=s._$AQ)===null||n===void 0||n.call(s,e),s._$AM=e,s._$AP!==void 0&&(l=e._$AU)!==a._$AU&&s._$AP(l)}if(i!==o||c){let l=s._$AA;for(;l!==i;){const f=l.nextSibling;r.insertBefore(l,o),l=f}}}return s},C=(e,t,s=e)=>(e._$AI(t,s),e),po={},go=(e,t=po)=>e._$AH=t,mo=e=>e._$AH,xt=e=>{var t;(t=e._$AP)===null||t===void 0||t.call(e,!1,!0);let s=e._$AA;const n=e._$AB.nextSibling;for(;s!==n;){const r=s.nextSibling;s.remove(),s=r}};/**
26
- * @license
27
- * Copyright 2017 Google LLC
28
- * SPDX-License-Identifier: BSD-3-Clause
29
- */const De=(e,t,s)=>{const n=new Map;for(let r=t;r<=s;r++)n.set(e[r],r);return n},Uo=ho(class extends Ds{constructor(e){if(super(e),e.type!==Os.CHILD)throw Error("repeat() can only be used in text expressions")}ht(e,t,s){let n;s===void 0?s=t:t!==void 0&&(n=t);const r=[],o=[];let i=0;for(const a of e)r[i]=n?n(a,i):i,o[i]=s(a,i),i++;return{values:o,keys:r}}render(e,t,s){return this.ht(e,t,s).values}update(e,[t,s,n]){var r;const o=mo(e),{values:i,keys:a}=this.ht(t,s,n);if(!Array.isArray(o))return this.ut=a,i;const c=(r=this.ut)!==null&&r!==void 0?r:this.ut=[],l=[];let f,u,d=0,h=o.length-1,p=0,m=i.length-1;for(;d<=h&&p<=m;)if(o[d]===null)d++;else if(o[h]===null)h--;else if(c[d]===a[p])l[p]=C(o[d],i[p]),d++,p++;else if(c[h]===a[m])l[m]=C(o[h],i[m]),h--,m--;else if(c[d]===a[m])l[m]=C(o[d],i[m]),V(e,l[m+1],o[d]),d++,m--;else if(c[h]===a[p])l[p]=C(o[h],i[p]),V(e,o[d],o[h]),h--,p++;else if(f===void 0&&(f=De(a,p,m),u=De(c,d,h)),f.has(c[d]))if(f.has(c[h])){const g=u.get(a[p]),Y=g!==void 0?o[g]:null;if(Y===null){const At=V(e,o[d]);C(At,i[p]),l[p]=At}else l[p]=C(Y,i[p]),V(e,o[d],Y),o[g]=null;p++}else xt(o[h]),h--;else xt(o[d]),d++;for(;p<=m;){const g=V(e,l[m+1]);C(g,i[p]),l[p++]=g}for(;d<=h;){const g=o[d++];g!==null&&xt(g)}return this.ut=a,go(e,l),T}});/**
30
- * @license
31
- * Copyright 2018 Google LLC
32
- * SPDX-License-Identifier: BSD-3-Clause
33
- */const No=e=>e!=null?e:y;/**
34
- * @license
35
- * Copyright 2017 Google LLC
36
- * SPDX-License-Identifier: BSD-3-Clause
37
- */class xe extends Ds{constructor(t){if(super(t),this.it=y,t.type!==Os.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===y||t==null)return this._t=void 0,this.it=t;if(t===T)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;const s=[t];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}xe.directiveName="unsafeHTML",xe.resultType=1;const st=(e,...t)=>{const s=A("LitStatic");return(s?s.html:io)(e,...t)},ko=(e,...t)=>{const s=A("LitStatic");return(s?s.svg:ao)(e,...t)},Bo=(e,t,s,n,r)=>{const o=A("OpenUI5Enablement");o&&!n&&(e=o.wrapTemplateResultInBusyMarkup(st,r.host,e)),typeof s=="string"?e=st`<style>${s}</style>${e}`:Array.isArray(s)&&s.length&&(e=st`${s.map(i=>st`<link type="text/css" rel="stylesheet" href="${i}">`)}${e}`),uo(e,t,r)},Ho=(e,t,s)=>{const n=A("LitStatic");if(n)return n.unsafeStatic((t||[]).includes(e)?`${e}-${s}`:e)},yo=/('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)\}|[{}]/g,_o=(e,t)=>(t=t||[],e.replace(yo,(s,n,r,o,i)=>{if(n)return"'";if(r)return r.replace(/''/g,"'");if(o){const a=typeof o=="string"?parseInt(o):o;return String(t[a])}throw new Error(`[i18n]: pattern syntax error at pos ${i}`)})),Ut=new Map;class Ao{constructor(t){this.packageName=t}getText(t,...s){if(typeof t=="string"&&(t={key:t,defaultText:t}),!t||!t.key)return"";const n=In(this.packageName);n&&!n[t.key]&&console.warn(`Key ${t.key} not found in the i18n bundle, the default text will be used`);const r=n&&n[t.key]?n[t.key]:t.defaultText||t.key;return _o(r,s)}}const wo=e=>{if(Ut.has(e))return Ut.get(e);const t=new Ao(e);return Ut.set(e,t),t},Vo=async e=>(await ss(e),wo(e));export{Ce as A,Ho as B,ko as C,Mo as D,M as E,Lt as F,Dr as G,_t as H,yt as I,Io as J,Oo as K,pr as L,Ro as M,yr as N,hr as O,ir as P,Jt as U,Po as _,No as a,To as b,Uo as c,So as d,st as e,$o as f,Do as g,bo as h,A as i,qt as j,Qe as k,Bo as l,Co as m,Xt as n,Ss as o,xo as p,Gr as q,vo as r,Lo as s,Eo as t,Vo as u,Je as v,ho as w,Ds as x,Os as y,T as z};
@@ -1,11 +0,0 @@
1
- import { registerI18nLoader } from "./asset-registries/i18n.js";
2
- import { registerLocaleDataLoader } from "./asset-registries/LocaleData.js";
3
- import { registerThemePropertiesLoader } from "./asset-registries/Themes.js";
4
- import { registerIconLoader } from "./asset-registries/Icons.js";
5
-
6
- export {
7
- registerI18nLoader,
8
- registerLocaleDataLoader,
9
- registerThemePropertiesLoader,
10
- registerIconLoader,
11
- };
package/src/Boot.ts DELETED
@@ -1,82 +0,0 @@
1
- import whenDOMReady from "./util/whenDOMReady.js";
2
- import EventProvider from "./EventProvider.js";
3
- import insertFontFace from "./FontFace.js";
4
- import insertSystemCSSVars from "./SystemCSSVars.js";
5
- import { getTheme } from "./config/Theme.js";
6
- import applyTheme from "./theming/applyTheme.js";
7
- import { attachThemeRegistered } from "./theming/ThemeRegistered.js";
8
- import { registerCurrentRuntime } from "./Runtimes.js";
9
- import { getFeature } from "./FeaturesRegistry.js";
10
- import type OpenUI5Support from "./features/OpenUI5Support.js";
11
- import type F6Navigation from "./features/F6Navigation.js";
12
- import { PromiseResolve } from "./types.js";
13
-
14
- let booted = false;
15
- let bootPromise: Promise<void>;
16
- const eventProvider = new EventProvider<void, void>();
17
-
18
- /**
19
- * Attaches a callback that will be executed after boot finishes.
20
- * <b>Note:</b> If the framework already booted, the callback will be immediately executed.
21
- * @public
22
- * @param { Function } listener
23
- */
24
- const attachBoot = (listener: () => void) => {
25
- if (!booted) {
26
- eventProvider.attachEvent("boot", listener);
27
- return;
28
- }
29
-
30
- listener();
31
- };
32
-
33
- const boot = async (): Promise<void> => {
34
- if (bootPromise !== undefined) {
35
- return bootPromise;
36
- }
37
-
38
- const bootExecutor = async (resolve: PromiseResolve) => {
39
- if (typeof document === "undefined") {
40
- resolve();
41
- return;
42
- }
43
- attachThemeRegistered(() => {
44
- console.log("apply theme on theme registered"); // eslint-disable-line
45
- applyTheme(getTheme());
46
- });
47
-
48
- registerCurrentRuntime();
49
-
50
- const openUI5Support = getFeature<typeof OpenUI5Support>("OpenUI5Support");
51
- const isOpenUI5Loaded = openUI5Support ? openUI5Support.isLoaded() : false;
52
- const f6Navigation = getFeature<typeof F6Navigation>("F6Navigation");
53
-
54
- if (openUI5Support) {
55
- await openUI5Support.init();
56
- }
57
-
58
- if (f6Navigation && !isOpenUI5Loaded) {
59
- f6Navigation.init();
60
- }
61
-
62
- await whenDOMReady();
63
- // console.log("boot :: call applyTheme"); // eslint-disable-line
64
- // await applyTheme(getTheme());
65
- openUI5Support && openUI5Support.attachListeners();
66
- insertFontFace();
67
- insertSystemCSSVars();
68
-
69
- resolve();
70
-
71
- booted = true;
72
- await eventProvider.fireEventAsync("boot");
73
- };
74
-
75
- bootPromise = new Promise(bootExecutor as (resolve: PromiseResolve) => void);
76
- return bootPromise;
77
- };
78
-
79
- export {
80
- boot,
81
- attachBoot,
82
- };
package/src/CSP.ts DELETED
@@ -1,66 +0,0 @@
1
- const roots = new Map<string, string>();
2
- let useLinks = false;
3
- let preloadLinks = true;
4
-
5
- /**
6
- * Use this function to provide the path to the directory where the css resources for the given package will be served from.
7
- *
8
- * @public
9
- * @param packageName name of the package that is being configured
10
- * @param root path, accessible by the server that will serve the css resources
11
- */
12
- const setPackageCSSRoot = (packageName: string, root: string) => {
13
- roots.set(packageName, root);
14
- };
15
-
16
- const getUrl = (packageName: string, path: string) => {
17
- const packageCSSRoot = roots.get(packageName);
18
-
19
- if (!packageCSSRoot) {
20
- console.warn(`Root path to the CSS resources ${packageName} not provided - use "setPackageCSSRoot" to provide the root.`); // eslint-disable-line
21
- return "";
22
- }
23
-
24
- return `${packageCSSRoot}${path}`;
25
- };
26
-
27
- /**
28
- * Call this function to enable or disable the usage of <link> tags instead of <style> tags to achieve CSP compliance
29
- * Example: "setUseLinks(true)" will unconditionally use <link> tags for all browsers;
30
- * Example: "setUseLinks(!document.adoptedStyleSheets) will only enable the usage of <link> tags for browsers that do not support constructable stylesheets.
31
- *
32
- * @public
33
- * @param use whether links will be used
34
- */
35
- const setUseLinks = (use: boolean) => {
36
- useLinks = use;
37
- };
38
-
39
- /**
40
- * Call this function to enable or disable the preloading of <link> tags.
41
- * Note: only taken into account when <link> tags are being used.
42
- * Note: links are being preloaded by default, so call "setPreloadLinks(false)" to opt out of this.
43
- *
44
- * @public
45
- * @param preload
46
- */
47
- const setPreloadLinks = (preload: boolean) => {
48
- preloadLinks = preload;
49
- };
50
-
51
- const shouldUseLinks = () => {
52
- return useLinks;
53
- };
54
-
55
- const shouldPreloadLinks = () => {
56
- return preloadLinks;
57
- };
58
-
59
- export {
60
- setPackageCSSRoot,
61
- getUrl,
62
- setUseLinks,
63
- setPreloadLinks,
64
- shouldUseLinks,
65
- shouldPreloadLinks,
66
- };
@@ -1,98 +0,0 @@
1
- import getSharedResource from "./getSharedResource.js";
2
- import { getCurrentRuntimeIndex, compareRuntimes, getAllRuntimes } from "./Runtimes.js";
3
- import { Timeout } from "./types.js";
4
-
5
- const Tags = getSharedResource<Map<string, number>>("Tags", new Map());
6
- const Definitions = new Set<string>();
7
-
8
- let Failures = new Map<number, Set<string>>();
9
- let failureTimeout: Timeout | undefined;
10
-
11
- const UNKNOWN_RUNTIME = -1;
12
-
13
- const registerTag = (tag: string) => {
14
- Definitions.add(tag);
15
- Tags.set(tag, getCurrentRuntimeIndex());
16
- };
17
-
18
- const isTagRegistered = (tag: string) => {
19
- return Definitions.has(tag);
20
- };
21
-
22
- const getAllRegisteredTags = () => {
23
- return [...Definitions.values()];
24
- };
25
-
26
- const recordTagRegistrationFailure = (tag: string) => {
27
- let tagRegRuntimeIndex = Tags.get(tag);
28
- if (tagRegRuntimeIndex === undefined) {
29
- tagRegRuntimeIndex = UNKNOWN_RUNTIME; // If the tag is taken, but not registered in Tags, then a version before 1.1.0 defined it => use the "unknown" key
30
- }
31
-
32
- if (!Failures.has(tagRegRuntimeIndex)) {
33
- Failures.set(tagRegRuntimeIndex, new Set());
34
- }
35
- Failures.get(tagRegRuntimeIndex)!.add(tag);
36
-
37
- if (!failureTimeout) {
38
- failureTimeout = setTimeout(() => {
39
- displayFailedRegistrations();
40
- Failures = new Map();
41
- failureTimeout = undefined;
42
- }, 1000);
43
- }
44
- };
45
-
46
- const displayFailedRegistrations = () => {
47
- const allRuntimes = getAllRuntimes();
48
- const currentRuntimeIndex = getCurrentRuntimeIndex();
49
- const currentRuntime = allRuntimes[currentRuntimeIndex];
50
-
51
- let message = `Multiple UI5 Web Components instances detected.`;
52
-
53
- if (allRuntimes.length > 1) {
54
- message = `${message}\nLoading order (versions before 1.1.0 not listed): ${allRuntimes.map(runtime => `\n${runtime.description}`).join("")}`;
55
- }
56
-
57
- [...Failures.keys()].forEach(otherRuntimeIndex => {
58
- let comparison: number;
59
- let otherRuntime;
60
-
61
- if (otherRuntimeIndex === UNKNOWN_RUNTIME) { // version < 1.1.0 defined the tag
62
- comparison = 1; // the current runtime is considered newer
63
- otherRuntime = {
64
- description: `Older unknown runtime`,
65
- };
66
- } else {
67
- comparison = compareRuntimes(currentRuntimeIndex, otherRuntimeIndex);
68
- otherRuntime = allRuntimes[otherRuntimeIndex];
69
- }
70
-
71
- let compareWord;
72
- if (comparison > 0) {
73
- compareWord = "an older";
74
- } else if (comparison < 0) {
75
- compareWord = "a newer";
76
- } else {
77
- compareWord = "the same";
78
- }
79
- message = `${message}\n\n"${currentRuntime.description}" failed to define ${Failures.get(otherRuntimeIndex)!.size} tag(s) as they were defined by a runtime of ${compareWord} version "${otherRuntime.description}": ${([...Failures.get(otherRuntimeIndex)!]).sort().join(", ")}.`;
80
-
81
- if (comparison > 0) {
82
- message = `${message}\nWARNING! If your code uses features of the above web components, unavailable in ${otherRuntime.description}, it might not work as expected!`;
83
- } else {
84
- message = `${message}\nSince the above web components were defined by the same or newer version runtime, they should be compatible with your code.`;
85
- }
86
- });
87
-
88
- message = `${message}\n\nTo 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.`;
89
-
90
- console.warn(message); // eslint-disable-line
91
- };
92
-
93
- export {
94
- registerTag,
95
- isTagRegistered,
96
- getAllRegisteredTags,
97
- recordTagRegistrationFailure,
98
- };
@@ -1,33 +0,0 @@
1
- import {
2
- html,
3
- svg,
4
- unsafeStatic,
5
- } from "lit-html/static.js";
6
-
7
- import {
8
- setCustomElementsScopingSuffix,
9
- getCustomElementsScopingSuffix,
10
- setCustomElementsScopingRules,
11
- getCustomElementsScopingRules,
12
- shouldScopeCustomElement,
13
- getEffectiveScopingSuffixForTag,
14
- } from "./CustomElementsScopeUtils.js";
15
- import { registerFeature } from "./FeaturesRegistry.js";
16
-
17
- class LitStatic {
18
- static html = html;
19
- static svg = svg;
20
- static unsafeStatic: (value: string) => object = unsafeStatic;
21
- }
22
-
23
- registerFeature("LitStatic", LitStatic);
24
-
25
- export {
26
- LitStatic,
27
- setCustomElementsScopingSuffix,
28
- getCustomElementsScopingSuffix,
29
- setCustomElementsScopingRules,
30
- getCustomElementsScopingRules,
31
- shouldScopeCustomElement,
32
- getEffectiveScopingSuffixForTag,
33
- };
@@ -1,115 +0,0 @@
1
- let suf: string;
2
-
3
- type Rules = {
4
- include: Array<RegExp>,
5
- exclude: Array<RegExp>,
6
- };
7
-
8
- let rulesObj: Rules = {
9
- include: [/^ui5-/],
10
- exclude: [],
11
- };
12
-
13
- const tagsCache = new Map<string, boolean>(); // true/false means the tag should/should not be cached, undefined means not known yet.
14
-
15
- /**
16
- * Sets the suffix to be used for custom elements scoping, f.e. pass "demo" to get tags such as "ui5-button-demo".
17
- * Note: by default all tags starting with "ui5-" will be scoped, unless you change this by calling "setCustomElementsScopingRules"
18
- *
19
- * @public
20
- * @param suffix The scoping suffix
21
- */
22
- const setCustomElementsScopingSuffix = (suffix: string) => {
23
- if (!suffix.match(/^[a-zA-Z0-9_-]+$/)) {
24
- throw new Error("Only alphanumeric characters and dashes allowed for the scoping suffix");
25
- }
26
-
27
- suf = suffix;
28
- };
29
-
30
- /**
31
- * Returns the currently set scoping suffix, or undefined if not set.
32
- *
33
- * @public
34
- * @returns {String|undefined}
35
- */
36
- const getCustomElementsScopingSuffix = () => {
37
- return suf;
38
- };
39
-
40
- /**
41
- * Sets the rules, governing which custom element tags to scope and which not, f.e.
42
- * setCustomElementsScopingRules({include: [/^ui5-/]}, exclude: [/^ui5-mylib-/, /^ui5-carousel$/]);
43
- * will scope all elements starting with "ui5-" but not the ones starting with "ui5-mylib-" and not "ui5-carousel".
44
- *
45
- * @public
46
- * @param rules Object with "include" and "exclude" properties, both arrays of regular expressions. Note that "include"
47
- * rules are applied first and "exclude" rules second.
48
- */
49
- const setCustomElementsScopingRules = (rules: Rules) => {
50
- if (!rules || !rules.include) {
51
- throw new Error(`"rules" must be an object with at least an "include" property`);
52
- }
53
-
54
- if (!Array.isArray(rules.include) || rules.include.some(rule => !(rule instanceof RegExp))) {
55
- throw new Error(`"rules.include" must be an array of regular expressions`);
56
- }
57
-
58
- if (rules.exclude && (!Array.isArray(rules.exclude) || rules.exclude.some(rule => !(rule instanceof RegExp)))) {
59
- throw new Error(`"rules.exclude" must be an array of regular expressions`);
60
- }
61
-
62
- rules.exclude = rules.exclude || [];
63
- rulesObj = rules;
64
- tagsCache.clear(); // reset the cache upon setting new rules
65
- };
66
-
67
- /**
68
- * Returns the rules, governing which custom element tags to scope and which not. By default, all elements
69
- * starting with "ui5-" are scoped. The default rules are: {include: [/^ui5-/]}.
70
- *
71
- * @public
72
- * @returns {Object}
73
- */
74
- const getCustomElementsScopingRules = () => {
75
- return rulesObj;
76
- };
77
-
78
- /**
79
- * Determines whether custom elements with the given tag should be scoped or not.
80
- * The tag is first matched against the "include" rules and then against the "exclude" rules and the
81
- * result is cached until new rules are set.
82
- *
83
- * @public
84
- * @param tag
85
- */
86
- const shouldScopeCustomElement = (tag: string) => {
87
- if (!tagsCache.has(tag)) {
88
- const result = rulesObj.include.some(rule => tag.match(rule)) && !rulesObj.exclude.some(rule => tag.match(rule));
89
- tagsCache.set(tag, result);
90
- }
91
-
92
- return tagsCache.get(tag);
93
- };
94
-
95
- /**
96
- * Returns the currently set scoping suffix, if any and if the tag should be scoped, or undefined otherwise.
97
- *
98
- * @public
99
- * @param tag
100
- * @returns {String}
101
- */
102
- const getEffectiveScopingSuffixForTag = (tag: string) => {
103
- if (shouldScopeCustomElement(tag)) {
104
- return getCustomElementsScopingSuffix();
105
- }
106
- };
107
-
108
- export {
109
- setCustomElementsScopingSuffix,
110
- getCustomElementsScopingSuffix,
111
- setCustomElementsScopingRules,
112
- getCustomElementsScopingRules,
113
- shouldScopeCustomElement,
114
- getEffectiveScopingSuffixForTag,
115
- };
@@ -1,28 +0,0 @@
1
- const observers = new WeakMap<Node, MutationObserver>();
2
-
3
- /**
4
- * @param node
5
- * @param callback
6
- * @param options
7
- */
8
- const observeDOMNode = (node: Node, callback: MutationCallback, options?: MutationObserverInit) => {
9
- const observer = new MutationObserver(callback);
10
- observers.set(node, observer);
11
- observer.observe(node, options);
12
- };
13
-
14
- /**
15
- * @param node
16
- */
17
- const unobserveDOMNode = (node: Node) => {
18
- const observer = observers.get(node);
19
- if (observer) {
20
- observer.disconnect();
21
- observers.delete(node);
22
- }
23
- };
24
-
25
- export {
26
- observeDOMNode,
27
- unobserveDOMNode,
28
- };