@ui5/webcomponents-base 0.0.0-306572ffa → 0.0.0-31ad69296

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 (744) hide show
  1. package/.eslintignore +10 -3
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +1396 -0
  4. package/README.md +58 -7
  5. package/bundle.esm.js +34 -24
  6. package/config/wdio.conf.cjs +400 -0
  7. package/dist/.tsbuildinfo +1 -0
  8. package/dist/AssetRegistry.d.ts +5 -0
  9. package/dist/AssetRegistry.js +6 -10
  10. package/dist/AssetRegistry.js.map +1 -0
  11. package/dist/Boot.d.ts +10 -0
  12. package/dist/Boot.js +74 -0
  13. package/dist/Boot.js.map +1 -0
  14. package/dist/CSP.d.ts +33 -0
  15. package/dist/CSP.js +54 -0
  16. package/dist/CSP.js.map +1 -0
  17. package/dist/CustomElementsRegistry.d.ts +5 -0
  18. package/dist/CustomElementsRegistry.js +69 -30
  19. package/dist/CustomElementsRegistry.js.map +1 -0
  20. package/dist/CustomElementsScope.d.ts +7 -0
  21. package/dist/CustomElementsScope.js +11 -108
  22. package/dist/CustomElementsScope.js.map +1 -0
  23. package/dist/CustomElementsScopeUtils.d.ts +62 -0
  24. package/dist/CustomElementsScopeUtils.js +102 -0
  25. package/dist/CustomElementsScopeUtils.js.map +1 -0
  26. package/dist/DOMObserver.d.ts +11 -0
  27. package/dist/DOMObserver.js +23 -0
  28. package/dist/DOMObserver.js.map +1 -0
  29. package/dist/Device.d.ts +13 -0
  30. package/dist/Device.js +167 -815
  31. package/dist/Device.js.map +1 -0
  32. package/dist/EventProvider.d.ts +25 -0
  33. package/dist/EventProvider.js +67 -78
  34. package/dist/EventProvider.js.map +1 -0
  35. package/dist/FeaturesRegistry.d.ts +3 -0
  36. package/dist/FeaturesRegistry.js +5 -7
  37. package/dist/FeaturesRegistry.js.map +1 -0
  38. package/dist/FontFace.d.ts +2 -0
  39. package/dist/FontFace.js +21 -69
  40. package/dist/FontFace.js.map +1 -0
  41. package/dist/IgnoreCustomElements.d.ts +25 -0
  42. package/dist/IgnoreCustomElements.js +37 -0
  43. package/dist/IgnoreCustomElements.js.map +1 -0
  44. package/dist/InitialConfiguration.d.ts +27 -0
  45. package/dist/InitialConfiguration.js +130 -104
  46. package/dist/InitialConfiguration.js.map +1 -0
  47. package/dist/Keys.d.ts +61 -0
  48. package/dist/Keys.js +175 -182
  49. package/dist/Keys.js.map +1 -0
  50. package/dist/ManagedStyles.d.ts +9 -0
  51. package/dist/ManagedStyles.js +157 -0
  52. package/dist/ManagedStyles.js.map +1 -0
  53. package/dist/MarkedEvents.d.ts +9 -0
  54. package/dist/MarkedEvents.js +15 -0
  55. package/dist/MarkedEvents.js.map +1 -0
  56. package/dist/MediaRange.d.ts +31 -0
  57. package/dist/MediaRange.js +88 -0
  58. package/dist/MediaRange.js.map +1 -0
  59. package/dist/PropertiesFileFormat.d.ts +8 -0
  60. package/dist/PropertiesFileFormat.js +85 -0
  61. package/dist/PropertiesFileFormat.js.map +1 -0
  62. package/dist/Render.d.ts +47 -0
  63. package/dist/Render.js +143 -0
  64. package/dist/Render.js.map +1 -0
  65. package/dist/RenderQueue.d.ts +19 -0
  66. package/dist/RenderQueue.js +52 -62
  67. package/dist/RenderQueue.js.map +1 -0
  68. package/dist/Runtimes.d.ts +27 -0
  69. package/dist/Runtimes.js +86 -0
  70. package/dist/Runtimes.js.map +1 -0
  71. package/dist/StaticArea.d.ts +3 -0
  72. package/dist/StaticArea.js +4 -28
  73. package/dist/StaticArea.js.map +1 -0
  74. package/dist/StaticAreaItem.d.ts +35 -0
  75. package/dist/StaticAreaItem.js +94 -102
  76. package/dist/StaticAreaItem.js.map +1 -0
  77. package/dist/SystemCSSVars.d.ts +2 -0
  78. package/dist/SystemCSSVars.js +6 -28
  79. package/dist/SystemCSSVars.js.map +1 -0
  80. package/dist/Theming.d.ts +3 -0
  81. package/dist/Theming.js +3 -2
  82. package/dist/Theming.js.map +1 -0
  83. package/dist/UI5Element.d.ts +389 -0
  84. package/dist/UI5Element.js +999 -1058
  85. package/dist/UI5Element.js.map +1 -0
  86. package/dist/UI5ElementMetadata.d.ts +143 -0
  87. package/dist/UI5ElementMetadata.js +281 -200
  88. package/dist/UI5ElementMetadata.js.map +1 -0
  89. package/dist/animations/AnimationQueue.d.ts +8 -0
  90. package/dist/animations/AnimationQueue.js +31 -38
  91. package/dist/animations/AnimationQueue.js.map +1 -0
  92. package/dist/animations/animate.d.ts +14 -0
  93. package/dist/animations/animate.js +46 -51
  94. package/dist/animations/animate.js.map +1 -0
  95. package/dist/animations/scroll.d.ts +5 -0
  96. package/dist/animations/scroll.js +18 -27
  97. package/dist/animations/scroll.js.map +1 -0
  98. package/dist/animations/slideDown.d.ts +5 -0
  99. package/dist/animations/slideDown.js +53 -78
  100. package/dist/animations/slideDown.js.map +1 -0
  101. package/dist/animations/slideUp.d.ts +5 -0
  102. package/dist/animations/slideUp.js +49 -70
  103. package/dist/animations/slideUp.js.map +1 -0
  104. package/dist/asset-registries/Icons.d.ts +39 -0
  105. package/dist/asset-registries/Icons.js +136 -31
  106. package/dist/asset-registries/Icons.js.map +1 -0
  107. package/dist/asset-registries/Illustrations.d.ts +19 -0
  108. package/dist/asset-registries/Illustrations.js +77 -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 +12 -0
  114. package/dist/asset-registries/Themes.js +58 -77
  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 -85
  118. package/dist/asset-registries/i18n.js.map +1 -0
  119. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  120. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  121. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  122. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  123. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  124. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  125. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  126. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  127. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  128. package/dist/config/AnimationMode.d.ts +14 -0
  129. package/dist/config/AnimationMode.js +21 -18
  130. package/dist/config/AnimationMode.js.map +1 -0
  131. package/dist/config/CalendarType.d.ts +15 -0
  132. package/dist/config/CalendarType.js +31 -14
  133. package/dist/config/CalendarType.js.map +1 -0
  134. package/dist/config/FormatSettings.d.ts +15 -0
  135. package/dist/config/FormatSettings.js +15 -9
  136. package/dist/config/FormatSettings.js.map +1 -0
  137. package/dist/config/Icons.d.ts +40 -0
  138. package/dist/config/Icons.js +44 -0
  139. package/dist/config/Icons.js.map +1 -0
  140. package/dist/config/Language.d.ts +40 -0
  141. package/dist/config/Language.js +59 -29
  142. package/dist/config/Language.js.map +1 -0
  143. package/dist/config/NoConflict.d.ts +20 -0
  144. package/dist/config/NoConflict.js +41 -41
  145. package/dist/config/NoConflict.js.map +1 -0
  146. package/dist/config/Theme.d.ts +38 -0
  147. package/dist/config/Theme.js +67 -22
  148. package/dist/config/Theme.js.map +1 -0
  149. package/dist/config/ThemeRoot.d.ts +27 -0
  150. package/dist/config/ThemeRoot.js +57 -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/connectToComponent.d.ts +9 -0
  156. package/dist/connectToComponent.js +59 -0
  157. package/dist/connectToComponent.js.map +1 -0
  158. package/dist/css/BusyIndicator.css +80 -0
  159. package/dist/css/FontFace.css +96 -0
  160. package/dist/css/OverrideFontFace.css +32 -0
  161. package/dist/css/SystemCSSVars.css +9 -0
  162. package/dist/custom-elements-internal.json +2863 -0
  163. package/dist/custom-elements.json +2593 -0
  164. package/dist/decorators/customElement.d.ts +23 -0
  165. package/dist/decorators/customElement.js +36 -0
  166. package/dist/decorators/customElement.js.map +1 -0
  167. package/dist/decorators/event.d.ts +13 -0
  168. package/dist/decorators/event.js +24 -0
  169. package/dist/decorators/event.js.map +1 -0
  170. package/dist/decorators/property.d.ts +9 -0
  171. package/dist/decorators/property.js +24 -0
  172. package/dist/decorators/property.js.map +1 -0
  173. package/dist/decorators/slot.d.ts +9 -0
  174. package/dist/decorators/slot.js +37 -0
  175. package/dist/decorators/slot.js.map +1 -0
  176. package/dist/decorators.d.ts +5 -0
  177. package/dist/decorators.js +6 -0
  178. package/dist/decorators.js.map +1 -0
  179. package/dist/delegate/ItemNavigation.d.ts +114 -0
  180. package/dist/delegate/ItemNavigation.js +311 -278
  181. package/dist/delegate/ItemNavigation.js.map +1 -0
  182. package/dist/delegate/ResizeHandler.d.ts +23 -0
  183. package/dist/delegate/ResizeHandler.js +82 -62
  184. package/dist/delegate/ResizeHandler.js.map +1 -0
  185. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  186. package/dist/delegate/ScrollEnablement.js +159 -153
  187. package/dist/delegate/ScrollEnablement.js.map +1 -0
  188. package/dist/features/F6Navigation.d.ts +19 -0
  189. package/dist/features/F6Navigation.js +151 -0
  190. package/dist/features/F6Navigation.js.map +1 -0
  191. package/dist/features/LegacyDateFormats.d.ts +18 -0
  192. package/dist/features/LegacyDateFormats.js +20 -0
  193. package/dist/features/LegacyDateFormats.js.map +1 -0
  194. package/dist/features/OpenUI5Element.d.ts +9 -0
  195. package/dist/features/OpenUI5Element.js +5 -0
  196. package/dist/features/OpenUI5Element.js.map +1 -0
  197. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  198. package/dist/features/OpenUI5Enablement.js +96 -0
  199. package/dist/features/OpenUI5Enablement.js.map +1 -0
  200. package/dist/features/OpenUI5Support.d.ts +36 -0
  201. package/dist/features/OpenUI5Support.js +157 -87
  202. package/dist/features/OpenUI5Support.js.map +1 -0
  203. package/dist/features/patchPopup.d.ts +10 -0
  204. package/dist/features/patchPopup.js +15 -0
  205. package/dist/features/patchPopup.js.map +1 -0
  206. package/dist/generated/AssetParameters.d.ts +6 -0
  207. package/dist/generated/AssetParameters.js +4 -9
  208. package/dist/generated/AssetParameters.js.map +1 -0
  209. package/dist/generated/VersionInfo.d.ts +10 -0
  210. package/dist/generated/VersionInfo.js +11 -0
  211. package/dist/generated/VersionInfo.js.map +1 -0
  212. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  213. package/dist/generated/css/BusyIndicator.css.js +7 -0
  214. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  215. package/dist/generated/css/FontFace.css.d.ts +3 -0
  216. package/dist/generated/css/FontFace.css.js +7 -0
  217. package/dist/generated/css/FontFace.css.js.map +1 -0
  218. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  219. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  220. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  221. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  222. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  223. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  224. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  225. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
  226. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  227. package/dist/getSharedResource.d.ts +11 -0
  228. package/dist/getSharedResource.js +28 -18
  229. package/dist/getSharedResource.js.map +1 -0
  230. package/dist/global.d.ts +40 -0
  231. package/dist/i18nBundle.d.ts +41 -0
  232. package/dist/i18nBundle.js +66 -42
  233. package/dist/i18nBundle.js.map +1 -0
  234. package/dist/locale/Locale.d.ts +22 -0
  235. package/dist/locale/Locale.js +75 -87
  236. package/dist/locale/Locale.js.map +1 -0
  237. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  238. package/dist/locale/RTLAwareRegistry.js +6 -11
  239. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  240. package/dist/locale/applyDirection.d.ts +11 -0
  241. package/dist/locale/applyDirection.js +11 -8
  242. package/dist/locale/applyDirection.js.map +1 -0
  243. package/dist/locale/directionChange.d.ts +15 -0
  244. package/dist/locale/directionChange.js +24 -0
  245. package/dist/locale/directionChange.js.map +1 -0
  246. package/dist/locale/getEffectiveDir.d.ts +2 -0
  247. package/dist/locale/getEffectiveDir.js +8 -0
  248. package/dist/locale/getEffectiveDir.js.map +1 -0
  249. package/dist/locale/getLocale.d.ts +7 -0
  250. package/dist/locale/getLocale.js +28 -21
  251. package/dist/locale/getLocale.js.map +1 -0
  252. package/dist/locale/languageChange.d.ts +5 -0
  253. package/dist/locale/languageChange.js +8 -16
  254. package/dist/locale/languageChange.js.map +1 -0
  255. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  256. package/dist/locale/nextFallbackLocale.js +15 -19
  257. package/dist/locale/nextFallbackLocale.js.map +1 -0
  258. package/dist/locale/normalizeLocale.d.ts +7 -0
  259. package/dist/locale/normalizeLocale.js +34 -41
  260. package/dist/locale/normalizeLocale.js.map +1 -0
  261. package/dist/renderer/LitRenderer.d.ts +14 -0
  262. package/dist/renderer/LitRenderer.js +34 -24
  263. package/dist/renderer/LitRenderer.js.map +1 -0
  264. package/dist/renderer/directives/style-map.d.ts +13 -0
  265. package/dist/renderer/directives/style-map.js +72 -0
  266. package/dist/renderer/directives/style-map.js.map +1 -0
  267. package/dist/renderer/executeTemplate.d.ts +13 -0
  268. package/dist/renderer/executeTemplate.js +20 -7
  269. package/dist/renderer/executeTemplate.js.map +1 -0
  270. package/dist/sap/base/Log.js +750 -0
  271. package/dist/sap/base/assert.js +34 -0
  272. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  273. package/dist/sap/base/security/URLListValidator.js +406 -0
  274. package/dist/sap/base/security/encodeCSS.js +40 -0
  275. package/dist/sap/base/security/encodeXML.js +53 -0
  276. package/dist/sap/base/security/sanitizeHTML.js +38 -0
  277. package/dist/sap/base/strings/toHex.js +33 -0
  278. package/dist/sap/base/util/now.js +28 -0
  279. package/dist/sap/base/util/uid.js +27 -0
  280. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  281. package/dist/ssr-dom-shim.d.ts +1 -0
  282. package/dist/ssr-dom-shim.js +12 -0
  283. package/dist/ssr-dom-shim.js.map +1 -0
  284. package/dist/ssr-dom.d.ts +0 -0
  285. package/dist/ssr-dom.js +3 -0
  286. package/dist/ssr-dom.js.map +1 -0
  287. package/dist/theming/CustomStyle.d.ts +6 -0
  288. package/dist/theming/CustomStyle.js +40 -32
  289. package/dist/theming/CustomStyle.js.map +1 -0
  290. package/dist/theming/ThemeLoaded.d.ts +5 -0
  291. package/dist/theming/ThemeLoaded.js +14 -0
  292. package/dist/theming/ThemeLoaded.js.map +1 -0
  293. package/dist/theming/ThemeRegistered.d.ts +4 -0
  294. package/dist/theming/ThemeRegistered.js +11 -0
  295. package/dist/theming/ThemeRegistered.js.map +1 -0
  296. package/dist/theming/applyTheme.d.ts +2 -0
  297. package/dist/theming/applyTheme.js +64 -69
  298. package/dist/theming/applyTheme.js.map +1 -0
  299. package/dist/theming/getConstructableStyle.d.ts +9 -0
  300. package/dist/theming/getConstructableStyle.js +13 -17
  301. package/dist/theming/getConstructableStyle.js.map +1 -0
  302. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  303. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  304. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  305. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  306. package/dist/theming/getEffectiveStyle.js +26 -17
  307. package/dist/theming/getEffectiveStyle.js.map +1 -0
  308. package/dist/theming/getStylesString.d.ts +3 -0
  309. package/dist/theming/getStylesString.js +9 -11
  310. package/dist/theming/getStylesString.js.map +1 -0
  311. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  312. package/dist/theming/getThemeDesignerTheme.js +73 -60
  313. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  314. package/dist/theming/preloadLinks.d.ts +3 -0
  315. package/dist/theming/preloadLinks.js +19 -0
  316. package/dist/theming/preloadLinks.js.map +1 -0
  317. package/dist/thirdparty/_merge.d.ts +2 -0
  318. package/dist/thirdparty/_merge.js +7 -4
  319. package/dist/thirdparty/_merge.js.map +1 -0
  320. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  321. package/dist/thirdparty/isPlainObject.js +11 -10
  322. package/dist/thirdparty/isPlainObject.js.map +1 -0
  323. package/dist/thirdparty/merge.d.ts +2 -0
  324. package/dist/thirdparty/merge.js +4 -8
  325. package/dist/thirdparty/merge.js.map +1 -0
  326. package/dist/types/AnimationMode.d.ts +24 -0
  327. package/dist/types/AnimationMode.js +25 -6
  328. package/dist/types/AnimationMode.js.map +1 -0
  329. package/dist/types/CSSColor.d.ts +11 -0
  330. package/dist/types/CSSColor.js +14 -0
  331. package/dist/types/CSSColor.js.map +1 -0
  332. package/dist/types/CSSSize.d.ts +11 -0
  333. package/dist/types/CSSSize.js +10 -5
  334. package/dist/types/CSSSize.js.map +1 -0
  335. package/dist/types/CalendarType.d.ts +28 -0
  336. package/dist/types/CalendarType.js +26 -18
  337. package/dist/types/CalendarType.js.map +1 -0
  338. package/dist/types/DOMReference.d.ts +13 -0
  339. package/dist/types/DOMReference.js +21 -0
  340. package/dist/types/DOMReference.js.map +1 -0
  341. package/dist/types/DataType.d.ts +20 -0
  342. package/dist/types/DataType.js +31 -17
  343. package/dist/types/DataType.js.map +1 -0
  344. package/dist/types/Float.d.ts +14 -0
  345. package/dist/types/Float.js +14 -6
  346. package/dist/types/Float.js.map +1 -0
  347. package/dist/types/Integer.d.ts +14 -0
  348. package/dist/types/Integer.js +14 -5
  349. package/dist/types/Integer.js.map +1 -0
  350. package/dist/types/InvisibleMessageMode.d.ts +20 -0
  351. package/dist/types/InvisibleMessageMode.js +20 -0
  352. package/dist/types/InvisibleMessageMode.js.map +1 -0
  353. package/dist/types/ItemNavigationBehavior.d.ts +18 -0
  354. package/dist/types/ItemNavigationBehavior.js +16 -17
  355. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  356. package/dist/types/MovePlacement.d.ts +20 -0
  357. package/dist/types/MovePlacement.js +22 -0
  358. package/dist/types/MovePlacement.js.map +1 -0
  359. package/dist/types/NavigationMode.d.ts +24 -0
  360. package/dist/types/NavigationMode.js +25 -6
  361. package/dist/types/NavigationMode.js.map +1 -0
  362. package/dist/types/Orientation.d.ts +16 -0
  363. package/dist/types/Orientation.js +18 -0
  364. package/dist/types/Orientation.js.map +1 -0
  365. package/dist/types/ValueState.d.ts +28 -0
  366. package/dist/types/ValueState.js +27 -19
  367. package/dist/types/ValueState.js.map +1 -0
  368. package/dist/types.d.ts +28 -0
  369. package/dist/types.js +2 -0
  370. package/dist/types.js.map +1 -0
  371. package/dist/updateShadowRoot.d.ts +8 -0
  372. package/dist/updateShadowRoot.js +42 -0
  373. package/dist/updateShadowRoot.js.map +1 -0
  374. package/dist/util/AriaLabelHelper.d.ts +15 -0
  375. package/dist/util/AriaLabelHelper.js +171 -0
  376. package/dist/util/AriaLabelHelper.js.map +1 -0
  377. package/dist/util/Caret.d.ts +7 -0
  378. package/dist/util/Caret.js +23 -0
  379. package/dist/util/Caret.js.map +1 -0
  380. package/dist/util/ColorConversion.d.ts +30 -0
  381. package/dist/util/ColorConversion.js +342 -0
  382. package/dist/util/ColorConversion.js.map +1 -0
  383. package/dist/util/FetchHelper.d.ts +3 -0
  384. package/dist/util/FetchHelper.js +19 -25
  385. package/dist/util/FetchHelper.js.map +1 -0
  386. package/dist/util/FocusableElements.d.ts +4 -0
  387. package/dist/util/FocusableElements.js +67 -61
  388. package/dist/util/FocusableElements.js.map +1 -0
  389. package/dist/util/HTMLSanitizer.d.ts +3 -0
  390. package/dist/util/HTMLSanitizer.js +6 -0
  391. package/dist/util/HTMLSanitizer.js.map +1 -0
  392. package/dist/util/InvisibleMessage.d.ts +10 -0
  393. package/dist/util/InvisibleMessage.js +56 -0
  394. package/dist/util/InvisibleMessage.js.map +1 -0
  395. package/dist/util/PopupUtils.d.ts +7 -0
  396. package/dist/util/PopupUtils.js +74 -0
  397. package/dist/util/PopupUtils.js.map +1 -0
  398. package/dist/util/SlotsHelper.d.ts +9 -0
  399. package/dist/util/SlotsHelper.js +30 -0
  400. package/dist/util/SlotsHelper.js.map +1 -0
  401. package/dist/util/StringHelper.d.ts +3 -0
  402. package/dist/util/StringHelper.js +17 -20
  403. package/dist/util/StringHelper.js.map +1 -0
  404. package/dist/util/TabbableElements.d.ts +17 -0
  405. package/dist/util/TabbableElements.js +53 -43
  406. package/dist/util/TabbableElements.js.map +1 -0
  407. package/dist/util/arraysAreEqual.d.ts +2 -0
  408. package/dist/util/arraysAreEqual.js +13 -0
  409. package/dist/util/arraysAreEqual.js.map +1 -0
  410. package/dist/util/clamp.d.ts +9 -0
  411. package/dist/util/clamp.js +13 -0
  412. package/dist/util/clamp.js.map +1 -0
  413. package/dist/util/createLinkInHead.d.ts +7 -0
  414. package/dist/util/createLinkInHead.js +21 -0
  415. package/dist/util/createLinkInHead.js.map +1 -0
  416. package/dist/util/createStyleInHead.d.ts +8 -0
  417. package/dist/util/createStyleInHead.js +11 -11
  418. package/dist/util/createStyleInHead.js.map +1 -0
  419. package/dist/util/debounce.d.ts +2 -0
  420. package/dist/util/debounce.js +15 -0
  421. package/dist/util/debounce.js.map +1 -0
  422. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  423. package/dist/util/detectNavigatorLanguage.js +13 -11
  424. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  425. package/dist/util/dragAndDrop/DragRegistry.d.ts +12 -0
  426. package/dist/util/dragAndDrop/DragRegistry.js +66 -0
  427. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
  428. package/dist/util/dragAndDrop/findClosestPosition.d.ts +7 -0
  429. package/dist/util/dragAndDrop/findClosestPosition.js +59 -0
  430. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
  431. package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
  432. package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
  433. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
  434. package/dist/util/escapeRegex.d.ts +8 -0
  435. package/dist/util/escapeRegex.js +11 -0
  436. package/dist/util/escapeRegex.js.map +1 -0
  437. package/dist/util/formatMessage.d.ts +2 -0
  438. package/dist/util/formatMessage.js +15 -19
  439. package/dist/util/formatMessage.js.map +1 -0
  440. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  441. package/dist/util/generateHighlightedMarkup.js +41 -0
  442. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  443. package/dist/util/getActiveElement.d.ts +2 -0
  444. package/dist/util/getActiveElement.js +9 -0
  445. package/dist/util/getActiveElement.js.map +1 -0
  446. package/dist/util/getClassCopy.d.ts +420 -0
  447. package/dist/util/getClassCopy.js +10 -0
  448. package/dist/util/getClassCopy.js.map +1 -0
  449. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  450. package/dist/util/getDesigntimePropertyAsArray.js +5 -3
  451. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  452. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  453. package/dist/util/getEffectiveContentDensity.js +4 -0
  454. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  455. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  456. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  457. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  458. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  459. package/dist/util/getFastNavigationGroups.js +51 -0
  460. package/dist/util/getFastNavigationGroups.js.map +1 -0
  461. package/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
  462. package/dist/util/getFileExtension.js +9 -11
  463. package/dist/util/getFileExtension.js.map +1 -0
  464. package/dist/util/getNormalizedTarget.d.ts +7 -0
  465. package/dist/util/getNormalizedTarget.js +14 -0
  466. package/dist/util/getNormalizedTarget.js.map +1 -0
  467. package/dist/util/getParentElement.d.ts +2 -0
  468. package/dist/util/getParentElement.js +5 -0
  469. package/dist/util/getParentElement.js.map +1 -0
  470. package/dist/util/getSingletonElementInstance.d.ts +11 -0
  471. package/dist/util/getSingletonElementInstance.js +17 -11
  472. package/dist/util/getSingletonElementInstance.js.map +1 -0
  473. package/dist/util/isElementClickable.d.ts +2 -0
  474. package/dist/util/isElementClickable.js +16 -0
  475. package/dist/util/isElementClickable.js.map +1 -0
  476. package/dist/util/isElementContainingBlock.d.ts +2 -0
  477. package/dist/util/isElementContainingBlock.js +11 -0
  478. package/dist/util/isElementContainingBlock.js.map +1 -0
  479. package/dist/util/isElementHidden.d.ts +2 -0
  480. package/dist/util/isElementHidden.js +8 -0
  481. package/dist/util/isElementHidden.js.map +1 -0
  482. package/dist/util/isElementInView.d.ts +6 -0
  483. package/dist/util/isElementInView.js +12 -0
  484. package/dist/util/isElementInView.js.map +1 -0
  485. package/dist/util/isElementTabbable.d.ts +9 -0
  486. package/dist/util/isElementTabbable.js +30 -0
  487. package/dist/util/isElementTabbable.js.map +1 -0
  488. package/dist/util/isValidPropertyName.d.ts +8 -0
  489. package/dist/util/isValidPropertyName.js +17 -16
  490. package/dist/util/isValidPropertyName.js.map +1 -0
  491. package/dist/util/whenDOMReady.d.ts +2 -0
  492. package/dist/util/whenDOMReady.js +11 -10
  493. package/dist/util/whenDOMReady.js.map +1 -0
  494. package/dist/util/willShowContent.d.ts +2 -0
  495. package/dist/util/willShowContent.js +7 -0
  496. package/dist/util/willShowContent.js.map +1 -0
  497. package/dist/validateThemeRoot.d.ts +2 -0
  498. package/dist/validateThemeRoot.js +48 -0
  499. package/dist/validateThemeRoot.js.map +1 -0
  500. package/dist/vscode.html-custom-data.json +22 -0
  501. package/index.js +226 -2
  502. package/lib/generate-asset-parameters/index.js +11 -6
  503. package/lib/generate-styles/index.js +31 -0
  504. package/lib/generate-version-info/index.js +32 -0
  505. package/package-scripts.cjs +67 -0
  506. package/package.json +30 -14
  507. package/src/css/BusyIndicator.css +80 -0
  508. package/src/css/FontFace.css +96 -0
  509. package/src/css/OverrideFontFace.css +32 -0
  510. package/src/css/SystemCSSVars.css +9 -0
  511. package/tsconfig.json +20 -0
  512. package/used-modules.txt +14 -0
  513. package/bundle.es5.js +0 -28
  514. package/config/rollup.config.js +0 -1
  515. package/config/wdio.conf.js +0 -1
  516. package/dist/RenderScheduler.js +0 -166
  517. package/dist/SVGIconRegistry.js +0 -62
  518. package/dist/animations/config.js +0 -5
  519. package/dist/boot.js +0 -34
  520. package/dist/compatibility/DOMObserver.js +0 -62
  521. package/dist/compatibility/patchNodeValue.js +0 -24
  522. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  523. package/dist/config/RTL.js +0 -31
  524. package/dist/delegate/CustomResize.js +0 -78
  525. package/dist/delegate/NativeResize.js +0 -44
  526. package/dist/features/PropertiesFormatSupport.js +0 -8
  527. package/dist/features/browsersupport/Edge.js +0 -6
  528. package/dist/features/browsersupport/IE11.js +0 -41
  529. package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  530. package/dist/renderer/ifDefined.js +0 -21
  531. package/dist/renderer/scopeHTML.js +0 -32
  532. package/dist/resources/bundle.es5.js +0 -212
  533. package/dist/resources/bundle.es5.js.map +0 -1
  534. package/dist/resources/bundle.esm.js +0 -129
  535. package/dist/resources/bundle.esm.js.map +0 -1
  536. package/dist/test-resources/assets/Themes.js +0 -17
  537. package/dist/test-resources/elements/Child.js +0 -35
  538. package/dist/test-resources/elements/Generic.js +0 -84
  539. package/dist/test-resources/elements/GenericExt.js +0 -26
  540. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  541. package/dist/test-resources/elements/Parent.js +0 -37
  542. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  543. package/dist/test-resources/pages/AllTestElements.html +0 -42
  544. package/dist/test-resources/pages/Configuration.html +0 -20
  545. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  546. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  547. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  548. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  549. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  550. package/dist/test-resources/pages/i18n.html +0 -40
  551. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  552. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  553. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  554. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  555. package/dist/test-resources/specs/StaticArea.spec.js +0 -34
  556. package/dist/test-resources/specs/Theming.spec.js +0 -31
  557. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  558. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -96
  559. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  560. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  561. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  562. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  563. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  564. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  565. package/dist/theming/CSSVarsPonyfill.js +0 -24
  566. package/dist/theming/adaptCSSForIE.js +0 -95
  567. package/dist/theming/createComponentStyleTag.js +0 -55
  568. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  569. package/dist/thirdparty/Array.from.js +0 -16
  570. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  571. package/dist/thirdparty/Array.prototype.find.js +0 -46
  572. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  573. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  574. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  575. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  576. package/dist/thirdparty/Number.isInteger.js +0 -5
  577. package/dist/thirdparty/Number.isNaN.js +0 -1
  578. package/dist/thirdparty/Number.parseInt.js +0 -1
  579. package/dist/thirdparty/Object.assign.js +0 -31
  580. package/dist/thirdparty/Object.entries.js +0 -11
  581. package/dist/thirdparty/Symbol.js +0 -2
  582. package/dist/thirdparty/WeakSet.js +0 -27
  583. package/dist/thirdparty/es6-string-methods.js +0 -182
  584. package/dist/thirdparty/events-polyfills.js +0 -89
  585. package/dist/thirdparty/fetch.js +0 -1
  586. package/dist/thirdparty/template.js +0 -600
  587. package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  588. package/dist/types/PopupState.js +0 -37
  589. package/dist/util/findNodeOwner.js +0 -35
  590. package/dist/util/getEffectiveAriaLabelText.js +0 -28
  591. package/dist/util/isDescendantOf.js +0 -15
  592. package/dist/util/isNodeClickable.js +0 -19
  593. package/dist/util/isNodeHidden.js +0 -9
  594. package/dist/util/isNodeTabbable.js +0 -28
  595. package/dist/util/isSlot.js +0 -3
  596. package/dist/util/parseProperties.js +0 -89
  597. package/dist/util/setToArray.js +0 -10
  598. package/dist/webcomponentsjs/LICENSE.md +0 -19
  599. package/dist/webcomponentsjs/README.md +0 -229
  600. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  601. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  602. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  603. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  604. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  605. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  606. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  607. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  608. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  609. package/dist/webcomponentsjs/package.json +0 -46
  610. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  611. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  612. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  613. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  614. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  615. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  616. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  617. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  618. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  619. package/package-scripts.js +0 -47
  620. package/src/AssetRegistry.js +0 -10
  621. package/src/CustomElementsRegistry.js +0 -39
  622. package/src/CustomElementsScope.js +0 -108
  623. package/src/Device.js +0 -823
  624. package/src/EventProvider.js +0 -81
  625. package/src/FeaturesRegistry.js +0 -11
  626. package/src/FontFace.js +0 -73
  627. package/src/InitialConfiguration.js +0 -131
  628. package/src/Keys.js +0 -188
  629. package/src/RenderQueue.js +0 -66
  630. package/src/RenderScheduler.js +0 -166
  631. package/src/SVGIconRegistry.js +0 -62
  632. package/src/StaticArea.js +0 -31
  633. package/src/StaticAreaItem.js +0 -108
  634. package/src/SystemCSSVars.js +0 -31
  635. package/src/Theming.js +0 -3
  636. package/src/UI5Element.js +0 -1078
  637. package/src/UI5ElementMetadata.js +0 -212
  638. package/src/animations/AnimationQueue.js +0 -42
  639. package/src/animations/animate.js +0 -53
  640. package/src/animations/config.js +0 -5
  641. package/src/animations/scroll.js +0 -28
  642. package/src/animations/slideDown.js +0 -79
  643. package/src/animations/slideUp.js +0 -71
  644. package/src/asset-registries/Icons.js +0 -31
  645. package/src/asset-registries/LocaleData.js +0 -125
  646. package/src/asset-registries/Themes.js +0 -87
  647. package/src/asset-registries/i18n.js +0 -107
  648. package/src/boot.js +0 -34
  649. package/src/compatibility/DOMObserver.js +0 -62
  650. package/src/compatibility/patchNodeValue.js +0 -24
  651. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  652. package/src/config/AnimationMode.js +0 -23
  653. package/src/config/CalendarType.js +0 -18
  654. package/src/config/FormatSettings.js +0 -13
  655. package/src/config/Language.js +0 -41
  656. package/src/config/NoConflict.js +0 -51
  657. package/src/config/RTL.js +0 -31
  658. package/src/config/Theme.js +0 -28
  659. package/src/delegate/CustomResize.js +0 -78
  660. package/src/delegate/ItemNavigation.js +0 -282
  661. package/src/delegate/NativeResize.js +0 -44
  662. package/src/delegate/ResizeHandler.js +0 -65
  663. package/src/delegate/ScrollEnablement.js +0 -159
  664. package/src/features/OpenUI5Support.js +0 -90
  665. package/src/features/PropertiesFormatSupport.js +0 -8
  666. package/src/features/browsersupport/Edge.js +0 -6
  667. package/src/features/browsersupport/IE11.js +0 -41
  668. package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  669. package/src/getSharedResource.js +0 -30
  670. package/src/i18nBundle.js +0 -52
  671. package/src/locale/Locale.js +0 -91
  672. package/src/locale/RTLAwareRegistry.js +0 -14
  673. package/src/locale/applyDirection.js +0 -15
  674. package/src/locale/getLocale.js +0 -31
  675. package/src/locale/languageChange.js +0 -22
  676. package/src/locale/nextFallbackLocale.js +0 -28
  677. package/src/locale/normalizeLocale.js +0 -54
  678. package/src/renderer/LitRenderer.js +0 -31
  679. package/src/renderer/executeTemplate.js +0 -17
  680. package/src/renderer/ifDefined.js +0 -21
  681. package/src/renderer/scopeHTML.js +0 -32
  682. package/src/theming/CSSVarsPonyfill.js +0 -24
  683. package/src/theming/CustomStyle.js +0 -40
  684. package/src/theming/adaptCSSForIE.js +0 -95
  685. package/src/theming/applyTheme.js +0 -81
  686. package/src/theming/createComponentStyleTag.js +0 -55
  687. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  688. package/src/theming/getConstructableStyle.js +0 -29
  689. package/src/theming/getEffectiveStyle.js +0 -23
  690. package/src/theming/getStylesString.js +0 -13
  691. package/src/theming/getThemeDesignerTheme.js +0 -67
  692. package/src/thirdparty/Array.from.js +0 -16
  693. package/src/thirdparty/Array.prototype.fill.js +0 -44
  694. package/src/thirdparty/Array.prototype.find.js +0 -46
  695. package/src/thirdparty/Array.prototype.includes.js +0 -51
  696. package/src/thirdparty/Element.prototype.closest.js +0 -11
  697. package/src/thirdparty/Element.prototype.matches.js +0 -6
  698. package/src/thirdparty/Map.prototype.keys.js +0 -9
  699. package/src/thirdparty/Number.isInteger.js +0 -5
  700. package/src/thirdparty/Number.isNaN.js +0 -1
  701. package/src/thirdparty/Number.parseInt.js +0 -1
  702. package/src/thirdparty/Object.assign.js +0 -31
  703. package/src/thirdparty/Object.entries.js +0 -11
  704. package/src/thirdparty/Symbol.js +0 -2
  705. package/src/thirdparty/WeakSet.js +0 -27
  706. package/src/thirdparty/_merge.js +0 -32
  707. package/src/thirdparty/es6-string-methods.js +0 -182
  708. package/src/thirdparty/events-polyfills.js +0 -89
  709. package/src/thirdparty/fetch.js +0 -1
  710. package/src/thirdparty/isPlainObject.js +0 -18
  711. package/src/thirdparty/merge.js +0 -10
  712. package/src/thirdparty/template.js +0 -600
  713. package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  714. package/src/types/AnimationMode.js +0 -7
  715. package/src/types/CSSSize.js +0 -9
  716. package/src/types/CalendarType.js +0 -22
  717. package/src/types/DataType.js +0 -25
  718. package/src/types/Float.js +0 -10
  719. package/src/types/Integer.js +0 -9
  720. package/src/types/ItemNavigationBehavior.js +0 -21
  721. package/src/types/NavigationMode.js +0 -7
  722. package/src/types/PopupState.js +0 -37
  723. package/src/types/ValueState.js +0 -22
  724. package/src/util/FetchHelper.js +0 -31
  725. package/src/util/FocusableElements.js +0 -66
  726. package/src/util/StringHelper.js +0 -26
  727. package/src/util/TabbableElements.js +0 -47
  728. package/src/util/createStyleInHead.js +0 -18
  729. package/src/util/detectNavigatorLanguage.js +0 -13
  730. package/src/util/findNodeOwner.js +0 -35
  731. package/src/util/formatMessage.js +0 -23
  732. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  733. package/src/util/getEffectiveAriaLabelText.js +0 -28
  734. package/src/util/getSingletonElementInstance.js +0 -13
  735. package/src/util/isDescendantOf.js +0 -15
  736. package/src/util/isNodeClickable.js +0 -19
  737. package/src/util/isNodeHidden.js +0 -9
  738. package/src/util/isNodeTabbable.js +0 -28
  739. package/src/util/isSlot.js +0 -3
  740. package/src/util/isValidPropertyName.js +0 -27
  741. package/src/util/parseProperties.js +0 -89
  742. package/src/util/setToArray.js +0 -10
  743. package/src/util/whenDOMReady.js +0 -13
  744. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -0,0 +1,3 @@
1
+ declare const fetchTextOnce: (url: string) => Promise<string | undefined>;
2
+ declare const fetchJsonOnce: (url: string) => Promise<any>;
3
+ export { fetchTextOnce, fetchJsonOnce };
@@ -1,31 +1,25 @@
1
1
  const fetchPromises = new Map();
2
2
  const jsonPromises = new Map();
3
3
  const textPromises = new Map();
4
-
5
- const fetchTextOnce = async url => {
6
- if (!fetchPromises.get(url)) {
7
- fetchPromises.set(url, fetch(url));
8
- }
9
- const response = await fetchPromises.get(url);
10
-
11
- if (!textPromises.get(url)) {
12
- textPromises.set(url, response.text());
13
- }
14
-
15
- return textPromises.get(url);
4
+ const fetchTextOnce = async (url) => {
5
+ if (!fetchPromises.get(url)) {
6
+ fetchPromises.set(url, fetch(url));
7
+ }
8
+ const response = await fetchPromises.get(url);
9
+ if (response && !textPromises.get(url)) {
10
+ textPromises.set(url, response.text());
11
+ }
12
+ return textPromises.get(url);
16
13
  };
17
-
18
- const fetchJsonOnce = async url => {
19
- if (!fetchPromises.get(url)) {
20
- fetchPromises.set(url, fetch(url));
21
- }
22
- const response = await fetchPromises.get(url);
23
-
24
- if (!jsonPromises.get(url)) {
25
- jsonPromises.set(url, response.json());
26
- }
27
-
28
- return jsonPromises.get(url);
14
+ const fetchJsonOnce = async (url) => {
15
+ if (!fetchPromises.get(url)) {
16
+ fetchPromises.set(url, fetch(url));
17
+ }
18
+ const response = await fetchPromises.get(url);
19
+ if (response && !jsonPromises.get(url)) {
20
+ jsonPromises.set(url, response.json());
21
+ }
22
+ return jsonPromises.get(url);
29
23
  };
30
-
31
24
  export { fetchTextOnce, fetchJsonOnce };
25
+ //# sourceMappingURL=FetchHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchHelper.js","sourceRoot":"","sources":["../../src/util/FetchHelper.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAC;AAC3D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;AACrD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;AAExD,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KACnC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KACvC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KACnC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KACvC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC","sourcesContent":["const fetchPromises = new Map<string, Promise<Response>>();\nconst jsonPromises = new Map<string, Promise<any>>();\nconst textPromises = new Map<string, Promise<string>>();\n\nconst fetchTextOnce = async (url: string) => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (response && !textPromises.get(url)) {\n\t\ttextPromises.set(url, response.text());\n\t}\n\n\treturn textPromises.get(url);\n};\n\nconst fetchJsonOnce = async (url: string) => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (response && !jsonPromises.get(url)) {\n\t\tjsonPromises.set(url, response.json());\n\t}\n\n\treturn jsonPromises.get(url);\n};\n\nexport { fetchTextOnce, fetchJsonOnce };\n"]}
@@ -0,0 +1,4 @@
1
+ type FocusableElementPromise = Promise<HTMLElement | null>;
2
+ declare const getFirstFocusableElement: (container: HTMLElement, startFromContainer?: boolean) => FocusableElementPromise;
3
+ declare const getLastFocusableElement: (container: HTMLElement, startFromContainer?: boolean) => FocusableElementPromise;
4
+ export { getFirstFocusableElement, getLastFocusableElement, };
@@ -1,66 +1,72 @@
1
- import isNodeHidden from "./isNodeHidden.js";
2
- import isNodeClickable from "./isNodeClickable.js";
3
-
4
- const isFocusTrap = el => {
5
- return el.hasAttribute("data-ui5-focus-trap");
1
+ import isElementHidden from "./isElementHidden.js";
2
+ import isElementClickable from "./isElementClickable.js";
3
+ import { instanceOfUI5Element } from "../UI5Element.js";
4
+ const isFocusTrap = (el) => {
5
+ return el.hasAttribute("data-ui5-focus-trap");
6
6
  };
7
-
8
- const getFirstFocusableElement = container => {
9
- if (!container || isNodeHidden(container)) {
10
- return null;
11
- }
12
-
13
- return findFocusableElement(container, true);
7
+ const getFirstFocusableElement = async (container, startFromContainer) => {
8
+ if (!container || isElementHidden(container)) {
9
+ return null;
10
+ }
11
+ return findFocusableElement(container, true, startFromContainer);
14
12
  };
15
-
16
- const getLastFocusableElement = container => {
17
- if (!container || isNodeHidden(container)) {
18
- return null;
19
- }
20
-
21
- return findFocusableElement(container, false);
13
+ const getLastFocusableElement = async (container, startFromContainer) => {
14
+ if (!container || isElementHidden(container)) {
15
+ return null;
16
+ }
17
+ return findFocusableElement(container, false, startFromContainer);
22
18
  };
23
-
24
- const findFocusableElement = (container, forward) => {
25
- let child;
26
-
27
- if (container.shadowRoot) {
28
- child = forward ? container.shadowRoot.firstChild : container.shadowRoot.lastChild;
29
- } else if (container.assignedNodes && container.assignedNodes()) {
30
- const assignedElements = container.assignedNodes();
31
- child = forward ? assignedElements[0] : assignedElements[assignedElements.length - 1];
32
- } else {
33
- child = forward ? container.firstChild : container.lastChild;
34
- }
35
-
36
- let focusableDescendant;
37
-
38
- while (child) {
39
- const originalChild = child;
40
-
41
- child = child.isUI5Element ? child.getFocusDomRef() : child;
42
- if (!child) {
43
- return null;
44
- }
45
-
46
- if (child.nodeType === 1 && !isNodeHidden(child) && !isFocusTrap(child)) {
47
- if (isNodeClickable(child)) {
48
- return (child && typeof child.focus === "function") ? child : null;
49
- }
50
-
51
- focusableDescendant = findFocusableElement(child, forward);
52
- if (focusableDescendant) {
53
- return (focusableDescendant && typeof focusableDescendant.focus === "function") ? focusableDescendant : null;
54
- }
55
- }
56
-
57
- child = forward ? originalChild.nextSibling : originalChild.previousSibling;
58
- }
59
-
60
- return null;
19
+ const isElemFocusable = (el) => {
20
+ return el.hasAttribute("data-ui5-focus-redirect") || !isElementHidden(el);
61
21
  };
62
-
63
- export {
64
- getFirstFocusableElement,
65
- getLastFocusableElement,
22
+ const findFocusableElement = async (container, forward, startFromContainer) => {
23
+ let child;
24
+ let assignedElements;
25
+ let currentIndex = -1;
26
+ if (container.shadowRoot) {
27
+ child = forward ? container.shadowRoot.firstChild : container.shadowRoot.lastChild;
28
+ }
29
+ else if (container instanceof HTMLSlotElement && container.assignedNodes()) {
30
+ assignedElements = container.assignedNodes();
31
+ currentIndex = forward ? 0 : assignedElements.length - 1;
32
+ child = assignedElements[currentIndex];
33
+ }
34
+ else if (startFromContainer) {
35
+ child = container;
36
+ }
37
+ else {
38
+ child = forward ? container.firstElementChild : container.lastElementChild;
39
+ }
40
+ let focusableDescendant;
41
+ /* eslint-disable no-await-in-loop */
42
+ while (child) {
43
+ const originalChild = child;
44
+ if (instanceOfUI5Element(child)) {
45
+ child = await child.getFocusDomRefAsync();
46
+ }
47
+ if (!child) {
48
+ return null;
49
+ }
50
+ if (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {
51
+ if (isElementClickable(child)) {
52
+ return (child && typeof child.focus === "function") ? child : null;
53
+ }
54
+ focusableDescendant = await findFocusableElement(child, forward);
55
+ if (focusableDescendant) {
56
+ return (focusableDescendant && typeof focusableDescendant.focus === "function") ? focusableDescendant : null;
57
+ }
58
+ }
59
+ child = forward ? originalChild.nextSibling : originalChild.previousSibling;
60
+ // If the child element is not part of the currently assigned element,
61
+ // we have to check the next/previous element assigned to the slot or continue with the next/previous sibling of the slot,
62
+ // otherwise, the nextSibling/previousSibling is the next element inside the light DOM
63
+ if (assignedElements && !assignedElements[currentIndex].contains(child)) {
64
+ currentIndex = forward ? currentIndex + 1 : currentIndex - 1;
65
+ child = assignedElements[currentIndex];
66
+ }
67
+ }
68
+ /* eslint-enable no-await-in-loop */
69
+ return null;
66
70
  };
71
+ export { getFirstFocusableElement, getLastFocusableElement, };
72
+ //# sourceMappingURL=FocusableElements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FocusableElements.js","sourceRoot":"","sources":["../../src/util/FocusableElements.ts"],"names":[],"mappings":"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","sourcesContent":["import isElementHidden from \"./isElementHidden.js\";\nimport isElementClickable from \"./isElementClickable.js\";\nimport { instanceOfUI5Element } from \"../UI5Element.js\";\n\ntype FocusableElementPromise = Promise<HTMLElement | null>;\n\nconst isFocusTrap = (el: HTMLElement) => {\n\treturn el.hasAttribute(\"data-ui5-focus-trap\");\n};\n\nconst getFirstFocusableElement = async (container: HTMLElement, startFromContainer?: boolean): FocusableElementPromise => {\n\tif (!container || isElementHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, true, startFromContainer);\n};\n\nconst getLastFocusableElement = async (container: HTMLElement, startFromContainer?: boolean): FocusableElementPromise => {\n\tif (!container || isElementHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, false, startFromContainer);\n};\n\nconst isElemFocusable = (el: HTMLElement) => {\n\treturn el.hasAttribute(\"data-ui5-focus-redirect\") || !isElementHidden(el);\n};\n\nconst findFocusableElement = async (container: HTMLElement, forward: boolean, startFromContainer?: boolean): FocusableElementPromise => {\n\tlet child: HTMLElement | undefined;\n\tlet assignedElements;\n\tlet currentIndex = -1;\n\n\tif (container.shadowRoot) {\n\t\tchild = forward ? container.shadowRoot.firstChild as HTMLElement : container.shadowRoot.lastChild as HTMLElement;\n\t} else if (container instanceof HTMLSlotElement && container.assignedNodes()) {\n\t\tassignedElements = container.assignedNodes();\n\t\tcurrentIndex = forward ? 0 : assignedElements.length - 1;\n\t\tchild = assignedElements[currentIndex] as HTMLElement;\n\t} else if (startFromContainer) {\n\t\tchild = container;\n\t} else {\n\t\tchild = forward ? container.firstElementChild as HTMLElement : container.lastElementChild as HTMLElement;\n\t}\n\n\tlet focusableDescendant;\n\n\t/* eslint-disable no-await-in-loop */\n\n\twhile (child) {\n\t\tconst originalChild: HTMLElement | undefined = child;\n\n\t\tif (instanceOfUI5Element(child)) {\n\t\t\tchild = await child.getFocusDomRefAsync();\n\t\t}\n\n\t\tif (!child) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {\n\t\t\tif (isElementClickable(child)) {\n\t\t\t\treturn (child && typeof child.focus === \"function\") ? child : null;\n\t\t\t}\n\n\t\t\tfocusableDescendant = await findFocusableElement(child, forward);\n\t\t\tif (focusableDescendant) {\n\t\t\t\treturn (focusableDescendant && typeof focusableDescendant.focus === \"function\") ? focusableDescendant : null;\n\t\t\t}\n\t\t}\n\n\t\tchild = forward ? originalChild.nextSibling as HTMLElement : originalChild.previousSibling as HTMLElement;\n\n\t\t// If the child element is not part of the currently assigned element,\n\t\t// we have to check the next/previous element assigned to the slot or continue with the next/previous sibling of the slot,\n\t\t// otherwise, the nextSibling/previousSibling is the next element inside the light DOM\n\t\tif (assignedElements && !assignedElements[currentIndex].contains(child)) {\n\t\t\tcurrentIndex = forward ? currentIndex + 1 : currentIndex - 1;\n\n\t\t\tchild = assignedElements[currentIndex] as HTMLElement;\n\t\t}\n\t}\n\n\t/* eslint-enable no-await-in-loop */\n\n\treturn null;\n};\n\nexport {\n\tgetFirstFocusableElement,\n\tgetLastFocusableElement,\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import sanitizeHTML from "../sap/base/security/sanitizeHTML.js";
2
+ import URLListValidator from "../sap/base/security/URLListValidator.js";
3
+ export { URLListValidator, sanitizeHTML, };
@@ -0,0 +1,6 @@
1
+ // @ts-ignore
2
+ import sanitizeHTML from "../sap/base/security/sanitizeHTML.js";
3
+ // @ts-ignore
4
+ import URLListValidator from "../sap/base/security/URLListValidator.js";
5
+ export { URLListValidator, sanitizeHTML, };
6
+ //# sourceMappingURL=HTMLSanitizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLSanitizer.js","sourceRoot":"","sources":["../../src/util/HTMLSanitizer.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,YAAY,MAAM,sCAAsC,CAAC;AAChE,aAAa;AACb,OAAO,gBAAgB,MAAM,0CAA0C,CAAC;AAExE,OAAO,EACN,gBAAgB,EAChB,YAAY,GACZ,CAAC","sourcesContent":["// @ts-ignore\nimport sanitizeHTML from \"../sap/base/security/sanitizeHTML.js\";\n// @ts-ignore\nimport URLListValidator from \"../sap/base/security/URLListValidator.js\";\n\nexport {\n\tURLListValidator,\n\tsanitizeHTML,\n};\n"]}
@@ -0,0 +1,10 @@
1
+ import InvisibleMessageMode from "../types/InvisibleMessageMode.js";
2
+ /**
3
+ * Inserts the string into the respective span, depending on the mode provided.
4
+ *
5
+ * @param { string } message String to be announced by the screen reader.
6
+ * @param { InvisibleMessageMode } mode The mode to be inserted in the aria-live attribute.
7
+ * @public
8
+ */
9
+ declare const announce: (message: string, mode: InvisibleMessageMode) => void;
10
+ export default announce;
@@ -0,0 +1,56 @@
1
+ import InvisibleMessageMode from "../types/InvisibleMessageMode.js";
2
+ import getSingletonElementInstance from "./getSingletonElementInstance.js";
3
+ import { attachBoot } from "../Boot.js";
4
+ let politeSpan;
5
+ let assertiveSpan;
6
+ const setOutOfViewportStyles = (el) => {
7
+ el.style.position = "absolute";
8
+ el.style.clip = "rect(1px,1px,1px,1px)";
9
+ el.style.userSelect = "none";
10
+ el.style.left = "-1000px";
11
+ el.style.top = "-1000px";
12
+ el.style.pointerEvents = "none";
13
+ };
14
+ attachBoot(() => {
15
+ if (politeSpan && assertiveSpan) {
16
+ return;
17
+ }
18
+ politeSpan = document.createElement("span");
19
+ assertiveSpan = document.createElement("span");
20
+ politeSpan.classList.add("ui5-invisiblemessage-polite");
21
+ assertiveSpan.classList.add("ui5-invisiblemessage-assertive");
22
+ politeSpan.setAttribute("aria-live", "polite");
23
+ assertiveSpan.setAttribute("aria-live", "assertive");
24
+ politeSpan.setAttribute("role", "alert");
25
+ assertiveSpan.setAttribute("role", "alert");
26
+ setOutOfViewportStyles(politeSpan);
27
+ setOutOfViewportStyles(assertiveSpan);
28
+ getSingletonElementInstance("ui5-static-area").appendChild(politeSpan);
29
+ getSingletonElementInstance("ui5-static-area").appendChild(assertiveSpan);
30
+ });
31
+ /**
32
+ * Inserts the string into the respective span, depending on the mode provided.
33
+ *
34
+ * @param { string } message String to be announced by the screen reader.
35
+ * @param { InvisibleMessageMode } mode The mode to be inserted in the aria-live attribute.
36
+ * @public
37
+ */
38
+ const announce = (message, mode) => {
39
+ // If no type is presented, fallback to polite announcement.
40
+ const span = mode === InvisibleMessageMode.Assertive ? assertiveSpan : politeSpan;
41
+ // Set textContent to empty string in order to trigger screen reader's announcement.
42
+ span.textContent = "";
43
+ span.textContent = message;
44
+ if (mode !== InvisibleMessageMode.Assertive && mode !== InvisibleMessageMode.Polite) {
45
+ console.warn(`You have entered an invalid mode. Valid values are: "Polite" and "Assertive". The framework will automatically set the mode to "Polite".`); // eslint-disable-line
46
+ }
47
+ // clear the span in order to avoid reading it out while in JAWS reading node
48
+ setTimeout(() => {
49
+ // ensure that we clear the text node only if no announce is made in the meantime
50
+ if (span.textContent === message) {
51
+ span.textContent = "";
52
+ }
53
+ }, 3000);
54
+ };
55
+ export default announce;
56
+ //# sourceMappingURL=InvisibleMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvisibleMessage.js","sourceRoot":"","sources":["../../src/util/InvisibleMessage.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AACpE,OAAO,2BAA2B,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,IAAI,UAAuB,CAAC;AAC5B,IAAI,aAA0B,CAAC;AAE/B,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAE,EAAE;IAClD,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC/B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACxC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IAC7B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC;IACzB,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;AACjC,CAAC,CAAC;AAEF,UAAU,CAAC,GAAG,EAAE;IACf,IAAI,UAAU,IAAI,aAAa,EAAE;QAChC,OAAO;KACP;IAED,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE/C,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACxD,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9D,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/C,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAErD,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5C,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAEtC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACvE,2BAA2B,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,IAA0B,EAAE,EAAE;IAChE,4DAA4D;IAC5D,MAAM,IAAI,GAAG,IAAI,KAAK,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;IAElF,oFAAoF;IACpF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAE3B,IAAI,IAAI,KAAK,oBAAoB,CAAC,SAAS,IAAI,IAAI,KAAK,oBAAoB,CAAC,MAAM,EAAE;QACpF,OAAO,CAAC,IAAI,CAAC,0IAA0I,CAAC,CAAC,CAAC,sBAAsB;KAChL;IAED,6EAA6E;IAC7E,UAAU,CAAC,GAAG,EAAE;QACf,iFAAiF;QACjF,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;YACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACtB;IACF,CAAC,EAAE,IAAI,CAAC,CAAC;AACV,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import InvisibleMessageMode from \"../types/InvisibleMessageMode.js\";\nimport getSingletonElementInstance from \"./getSingletonElementInstance.js\";\nimport { attachBoot } from \"../Boot.js\";\n\nlet politeSpan: HTMLElement;\nlet assertiveSpan: HTMLElement;\n\nconst setOutOfViewportStyles = (el: HTMLElement) => {\n\tel.style.position = \"absolute\";\n\tel.style.clip = \"rect(1px,1px,1px,1px)\";\n\tel.style.userSelect = \"none\";\n\tel.style.left = \"-1000px\";\n\tel.style.top = \"-1000px\";\n\tel.style.pointerEvents = \"none\";\n};\n\nattachBoot(() => {\n\tif (politeSpan && assertiveSpan) {\n\t\treturn;\n\t}\n\n\tpoliteSpan = document.createElement(\"span\");\n\tassertiveSpan = document.createElement(\"span\");\n\n\tpoliteSpan.classList.add(\"ui5-invisiblemessage-polite\");\n\tassertiveSpan.classList.add(\"ui5-invisiblemessage-assertive\");\n\n\tpoliteSpan.setAttribute(\"aria-live\", \"polite\");\n\tassertiveSpan.setAttribute(\"aria-live\", \"assertive\");\n\n\tpoliteSpan.setAttribute(\"role\", \"alert\");\n\tassertiveSpan.setAttribute(\"role\", \"alert\");\n\n\tsetOutOfViewportStyles(politeSpan);\n\tsetOutOfViewportStyles(assertiveSpan);\n\n\tgetSingletonElementInstance(\"ui5-static-area\").appendChild(politeSpan);\n\tgetSingletonElementInstance(\"ui5-static-area\").appendChild(assertiveSpan);\n});\n\n/**\n * Inserts the string into the respective span, depending on the mode provided.\n *\n * @param { string } message String to be announced by the screen reader.\n * @param { InvisibleMessageMode } mode The mode to be inserted in the aria-live attribute.\n * @public\n */\nconst announce = (message: string, mode: InvisibleMessageMode) => {\n\t// If no type is presented, fallback to polite announcement.\n\tconst span = mode === InvisibleMessageMode.Assertive ? assertiveSpan : politeSpan;\n\n\t// Set textContent to empty string in order to trigger screen reader's announcement.\n\tspan.textContent = \"\";\n\tspan.textContent = message;\n\n\tif (mode !== InvisibleMessageMode.Assertive && mode !== InvisibleMessageMode.Polite) {\n\t\tconsole.warn(`You have entered an invalid mode. Valid values are: \"Polite\" and \"Assertive\". The framework will automatically set the mode to \"Polite\".`); // eslint-disable-line\n\t}\n\n\t// clear the span in order to avoid reading it out while in JAWS reading node\n\tsetTimeout(() => {\n\t\t// ensure that we clear the text node only if no announce is made in the meantime\n\t\tif (span.textContent === message) {\n\t\t\tspan.textContent = \"\";\n\t\t}\n\t}, 3000);\n};\n\nexport default announce;\n"]}
@@ -0,0 +1,7 @@
1
+ declare const getFocusedElement: () => HTMLElement | null;
2
+ declare const isFocusedElementWithinNode: (node: HTMLElement) => boolean;
3
+ declare const isClickInRect: (e: MouseEvent | TouchEvent, rect: DOMRect) => boolean;
4
+ declare const getClosedPopupParent: (el: HTMLElement) => HTMLElement;
5
+ declare const getNextZIndex: () => number | undefined;
6
+ declare const getCurrentZIndex: () => number;
7
+ export { getFocusedElement, isClickInRect, getClosedPopupParent, getNextZIndex, getCurrentZIndex, isFocusedElementWithinNode, };
@@ -0,0 +1,74 @@
1
+ import getSharedResource from "../getSharedResource.js";
2
+ import { getFeature } from "../FeaturesRegistry.js";
3
+ import getActiveElement from "./getActiveElement.js";
4
+ const popupUtilsData = getSharedResource("PopupUtilsData", { currentZIndex: 100 });
5
+ const getFocusedElement = () => {
6
+ const element = getActiveElement();
7
+ return (element && typeof element.focus === "function") ? element : null;
8
+ };
9
+ const isFocusedElementWithinNode = (node) => {
10
+ const fe = getFocusedElement();
11
+ if (fe) {
12
+ return isNodeContainedWithin(node, fe);
13
+ }
14
+ return false;
15
+ };
16
+ const isNodeContainedWithin = (parent, child) => {
17
+ let currentNode = parent;
18
+ if (currentNode.shadowRoot) {
19
+ const children = Array.from(currentNode.shadowRoot.children);
20
+ currentNode = children.find(n => n.localName !== "style");
21
+ if (!currentNode) {
22
+ return false;
23
+ }
24
+ }
25
+ if (currentNode === child) {
26
+ return true;
27
+ }
28
+ const childNodes = currentNode.localName === "slot" ? currentNode.assignedNodes() : currentNode.children;
29
+ if (childNodes) {
30
+ return Array.from(childNodes).some(n => isNodeContainedWithin(n, child));
31
+ }
32
+ return false;
33
+ };
34
+ const isPointInRect = (x, y, rect) => {
35
+ return x >= rect.left && x <= rect.right
36
+ && y >= rect.top && y <= rect.bottom;
37
+ };
38
+ const isClickInRect = (e, rect) => {
39
+ let x;
40
+ let y;
41
+ if (e instanceof MouseEvent) {
42
+ x = e.clientX;
43
+ y = e.clientY;
44
+ }
45
+ else {
46
+ const touch = e.touches[0];
47
+ x = touch.clientX;
48
+ y = touch.clientY;
49
+ }
50
+ return isPointInRect(x, y, rect);
51
+ };
52
+ function instanceOfPopup(object) {
53
+ return "isUI5Element" in object && "_show" in object;
54
+ }
55
+ const getClosedPopupParent = (el) => {
56
+ const parent = el.parentElement || (el.getRootNode && el.getRootNode().host);
57
+ if (parent && ((instanceOfPopup(parent) || parent === document.documentElement))) {
58
+ return parent;
59
+ }
60
+ return getClosedPopupParent(parent);
61
+ };
62
+ const getNextZIndex = () => {
63
+ const openUI5Support = getFeature("OpenUI5Support");
64
+ if (openUI5Support && openUI5Support.isOpenUI5Detected()) { // use OpenUI5 for getting z-index values, if loaded
65
+ return openUI5Support.getNextZIndex();
66
+ }
67
+ popupUtilsData.currentZIndex += 2;
68
+ return popupUtilsData.currentZIndex;
69
+ };
70
+ const getCurrentZIndex = () => {
71
+ return popupUtilsData.currentZIndex;
72
+ };
73
+ export { getFocusedElement, isClickInRect, getClosedPopupParent, getNextZIndex, getCurrentZIndex, isFocusedElementWithinNode, };
74
+ //# sourceMappingURL=PopupUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopupUtils.js","sourceRoot":"","sources":["../../src/util/PopupUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import getSharedResource from \"../getSharedResource.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport getActiveElement from \"./getActiveElement.js\";\nimport type OpenUI5Support from \"../features/OpenUI5Support.js\";\n\ntype PopupUtilsData = {\n\tcurrentZIndex: number\n};\n\nconst popupUtilsData = getSharedResource<PopupUtilsData>(\"PopupUtilsData\", { currentZIndex: 100 });\n\nconst getFocusedElement = () => {\n\tconst element = getActiveElement() as HTMLElement;\n\treturn (element && typeof element.focus === \"function\") ? element : null;\n};\n\nconst isFocusedElementWithinNode = (node: HTMLElement) => {\n\tconst fe = getFocusedElement();\n\n\tif (fe) {\n\t\treturn isNodeContainedWithin(node, fe);\n\t}\n\n\treturn false;\n};\n\nconst isNodeContainedWithin = (parent: HTMLElement, child: HTMLElement): boolean => {\n\tlet currentNode: HTMLElement | undefined = parent;\n\n\tif (currentNode.shadowRoot) {\n\t\tconst children = Array.from(currentNode.shadowRoot.children) as Array<HTMLElement>;\n\t\tcurrentNode = children.find(n => n.localName !== \"style\");\n\n\t\tif (!currentNode) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (currentNode === child) {\n\t\treturn true;\n\t}\n\n\tconst childNodes = currentNode.localName === \"slot\" ? (currentNode as HTMLSlotElement).assignedNodes() : currentNode.children;\n\n\tif (childNodes) {\n\t\treturn Array.from(childNodes).some(n => isNodeContainedWithin(n as HTMLElement, child));\n\t}\n\n\treturn false;\n};\n\nconst isPointInRect = (x: number, y: number, rect: DOMRect) => {\n\treturn x >= rect.left && x <= rect.right\n\t\t&& y >= rect.top && y <= rect.bottom;\n};\n\nconst isClickInRect = (e: MouseEvent | TouchEvent, rect: DOMRect) => {\n\tlet x;\n\tlet y;\n\n\tif (e instanceof MouseEvent) {\n\t\tx = e.clientX;\n\t\ty = e.clientY;\n\t} else {\n\t\tconst touch = e.touches[0];\n\t\tx = touch.clientX;\n\t\ty = touch.clientY;\n\t}\n\n\treturn isPointInRect(x, y, rect);\n};\n\ninterface PopupInterface { // Refactor: replace with Popup.js\n\t_show: () => void,\n\topen: boolean,\n}\nfunction instanceOfPopup(object: any): object is PopupInterface {\n\treturn \"isUI5Element\" in object && \"_show\" in object;\n}\n\nconst getClosedPopupParent = (el: HTMLElement): HTMLElement => {\n\tconst parent = el.parentElement || (el.getRootNode && (el.getRootNode() as ShadowRoot).host);\n\n\tif (parent && ((instanceOfPopup(parent) || parent === document.documentElement))) {\n\t\treturn parent as HTMLElement;\n\t}\n\n\treturn getClosedPopupParent(parent as HTMLElement);\n};\n\nconst getNextZIndex = () => {\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (openUI5Support && openUI5Support.isOpenUI5Detected()) { // use OpenUI5 for getting z-index values, if loaded\n\t\treturn openUI5Support.getNextZIndex();\n\t}\n\n\tpopupUtilsData.currentZIndex += 2;\n\treturn popupUtilsData.currentZIndex;\n};\n\nconst getCurrentZIndex = () => {\n\treturn popupUtilsData.currentZIndex;\n};\n\nexport {\n\tgetFocusedElement,\n\tisClickInRect,\n\tgetClosedPopupParent,\n\tgetNextZIndex,\n\tgetCurrentZIndex,\n\tisFocusedElementWithinNode,\n};\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Determines the slot to which a node should be assigned
3
+ * @param node Text node or HTML element
4
+ * @returns {string}
5
+ */
6
+ declare const getSlotName: (node: Node) => string;
7
+ declare const getSlottedNodes: (node: Node) => Node[];
8
+ declare const getSlottedNodesList: (nodeList: Array<Node>) => Node[];
9
+ export { getSlotName, getSlottedNodes, getSlottedNodesList, };
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Determines the slot to which a node should be assigned
3
+ * @param node Text node or HTML element
4
+ * @returns {string}
5
+ */
6
+ const getSlotName = (node) => {
7
+ // Text nodes can only go to the default slot
8
+ if (!(node instanceof HTMLElement)) {
9
+ return "default";
10
+ }
11
+ // Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)
12
+ const slot = node.getAttribute("slot");
13
+ if (slot) {
14
+ const match = slot.match(/^(.+?)-\d+$/);
15
+ return match ? match[1] : slot;
16
+ }
17
+ // Use default slot as a fallback
18
+ return "default";
19
+ };
20
+ const getSlottedNodes = (node) => {
21
+ if (node instanceof HTMLSlotElement) {
22
+ return node.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);
23
+ }
24
+ return [node];
25
+ };
26
+ const getSlottedNodesList = (nodeList) => {
27
+ return nodeList.reduce((acc, curr) => acc.concat(getSlottedNodes(curr)), []);
28
+ };
29
+ export { getSlotName, getSlottedNodes, getSlottedNodesList, };
30
+ //# sourceMappingURL=SlotsHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlotsHelper.js","sourceRoot":"","sources":["../../src/util/SlotsHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,EAAE;IAClC,6CAA6C;IAC7C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE;QACnC,OAAO,SAAS,CAAC;KACjB;IAED,kGAAkG;IAClG,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAC/B;IAED,iCAAiC;IACjC,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,EAAE;IACtC,IAAI,IAAI,YAAY,eAAe,EAAE;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC;KACzF;IAED,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAE,EAAE;IACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAiB,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,OAAO,EACN,WAAW,EACX,eAAe,EACf,mBAAmB,GACnB,CAAC","sourcesContent":["/**\n * Determines the slot to which a node should be assigned\n * @param node Text node or HTML element\n * @returns {string}\n */\nconst getSlotName = (node: Node) => {\n\t// Text nodes can only go to the default slot\n\tif (!(node instanceof HTMLElement)) {\n\t\treturn \"default\";\n\t}\n\n\t// Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)\n\tconst slot = node.getAttribute(\"slot\");\n\tif (slot) {\n\t\tconst match = slot.match(/^(.+?)-\\d+$/);\n\t\treturn match ? match[1] : slot;\n\t}\n\n\t// Use default slot as a fallback\n\treturn \"default\";\n};\n\nconst getSlottedNodes = (node: Node) => {\n\tif (node instanceof HTMLSlotElement) {\n\t\treturn node.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);\n\t}\n\n\treturn [node];\n};\n\nconst getSlottedNodesList = (nodeList: Array<Node>) => {\n\treturn nodeList.reduce((acc, curr) => acc.concat(getSlottedNodes(curr)), [] as Array<Node>);\n};\n\nexport {\n\tgetSlotName,\n\tgetSlottedNodes,\n\tgetSlottedNodesList,\n};\n"]}
@@ -0,0 +1,3 @@
1
+ declare const kebabToCamelCase: (string: string) => string;
2
+ declare const camelToKebabCase: (string: string) => string;
3
+ export { kebabToCamelCase, camelToKebabCase };
@@ -1,26 +1,23 @@
1
1
  const kebabToCamelMap = new Map();
2
2
  const camelToKebabMap = new Map();
3
-
4
- const kebabToCamelCase = string => {
5
- if (!kebabToCamelMap.has(string)) {
6
- const result = toCamelCase(string.split("-"));
7
- kebabToCamelMap.set(string, result);
8
- }
9
- return kebabToCamelMap.get(string);
3
+ const kebabToCamelCase = (string) => {
4
+ if (!kebabToCamelMap.has(string)) {
5
+ const result = toCamelCase(string.split("-"));
6
+ kebabToCamelMap.set(string, result);
7
+ }
8
+ return kebabToCamelMap.get(string);
10
9
  };
11
-
12
- const camelToKebabCase = string => {
13
- if (!camelToKebabMap.has(string)) {
14
- const result = string.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
15
- camelToKebabMap.set(string, result);
16
- }
17
- return camelToKebabMap.get(string);
10
+ const camelToKebabCase = (string) => {
11
+ if (!camelToKebabMap.has(string)) {
12
+ const result = string.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
13
+ camelToKebabMap.set(string, result);
14
+ }
15
+ return camelToKebabMap.get(string);
18
16
  };
19
-
20
- const toCamelCase = parts => {
21
- return parts.map((string, index) => {
22
- return index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
23
- }).join("");
17
+ const toCamelCase = (parts) => {
18
+ return parts.map((string, index) => {
19
+ return index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
20
+ }).join("");
24
21
  };
25
-
26
22
  export { kebabToCamelCase, camelToKebabCase };
23
+ //# sourceMappingURL=StringHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringHelper.js","sourceRoot":"","sources":["../../src/util/StringHelper.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAElD,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACjC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAoB,EAAE,EAAE;IAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAClC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5G,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["const kebabToCamelMap = new Map<string, string>();\nconst camelToKebabMap = new Map<string, string>();\n\nconst kebabToCamelCase = (string: string) => {\n\tif (!kebabToCamelMap.has(string)) {\n\t\tconst result = toCamelCase(string.split(\"-\"));\n\t\tkebabToCamelMap.set(string, result);\n\t}\n\treturn kebabToCamelMap.get(string)!;\n};\n\nconst camelToKebabCase = (string: string) => {\n\tif (!camelToKebabMap.has(string)) {\n\t\tconst result = string.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\t\tcamelToKebabMap.set(string, result);\n\t}\n\treturn camelToKebabMap.get(string)!;\n};\n\nconst toCamelCase = (parts: Array<string>) => {\n\treturn parts.map((string, index) => {\n\t\treturn index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\t}).join(\"\");\n};\n\nexport { kebabToCamelCase, camelToKebabCase };\n"]}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Returns the tabbable elements within the provided HTMLElement.
3
+ *
4
+ * @public
5
+ * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)
6
+ * @returns { Array<HTMLElement> } the tabbable elements
7
+ */
8
+ declare const getTabbableElements: (el: HTMLElement) => Array<HTMLElement>;
9
+ /**
10
+ * Returns the last tabbable element within the provided HTMLElement.
11
+ *
12
+ * @public
13
+ * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)
14
+ * @returns { HTMLElement | null } the last tabbable element or "null" if not found
15
+ */
16
+ declare const getLastTabbableElement: (el: HTMLElement) => HTMLElement | null;
17
+ export { getTabbableElements, getLastTabbableElement, };