@ui5/webcomponents-base 0.0.0-bad80d0d6 → 0.0.0-bf8366eb6

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 (668) hide show
  1. package/.npsrc.json +3 -0
  2. package/CHANGELOG.md +1710 -0
  3. package/README.md +50 -7
  4. package/config/wdio.conf.cjs +392 -0
  5. package/dist/.tsbuildinfo +1 -0
  6. package/dist/AssetRegistry.d.ts +5 -0
  7. package/dist/AssetRegistry.js +3 -8
  8. package/dist/AssetRegistry.js.map +1 -0
  9. package/dist/Boot.d.ts +10 -0
  10. package/dist/Boot.js +58 -28
  11. package/dist/Boot.js.map +1 -0
  12. package/dist/CustomElementsRegistry.d.ts +5 -0
  13. package/dist/CustomElementsRegistry.js +69 -30
  14. package/dist/CustomElementsRegistry.js.map +1 -0
  15. package/dist/CustomElementsScope.d.ts +7 -0
  16. package/dist/CustomElementsScope.js +11 -108
  17. package/dist/CustomElementsScope.js.map +1 -0
  18. package/dist/CustomElementsScopeUtils.d.ts +62 -0
  19. package/dist/CustomElementsScopeUtils.js +102 -0
  20. package/dist/CustomElementsScopeUtils.js.map +1 -0
  21. package/dist/DOMObserver.d.ts +11 -0
  22. package/dist/DOMObserver.js +12 -54
  23. package/dist/DOMObserver.js.map +1 -0
  24. package/dist/Device.d.ts +12 -0
  25. package/dist/Device.js +152 -84
  26. package/dist/Device.js.map +1 -0
  27. package/dist/EventProvider.d.ts +25 -0
  28. package/dist/EventProvider.js +67 -88
  29. package/dist/EventProvider.js.map +1 -0
  30. package/dist/FeaturesRegistry.d.ts +3 -0
  31. package/dist/FeaturesRegistry.js +5 -7
  32. package/dist/FeaturesRegistry.js.map +1 -0
  33. package/dist/FontFace.d.ts +2 -0
  34. package/dist/FontFace.js +17 -110
  35. package/dist/FontFace.js.map +1 -0
  36. package/dist/IgnoreCustomElements.d.ts +25 -0
  37. package/dist/IgnoreCustomElements.js +37 -0
  38. package/dist/IgnoreCustomElements.js.map +1 -0
  39. package/dist/InitialConfiguration.d.ts +27 -0
  40. package/dist/InitialConfiguration.js +123 -115
  41. package/dist/InitialConfiguration.js.map +1 -0
  42. package/dist/Keys.d.ts +63 -0
  43. package/dist/Keys.js +179 -227
  44. package/dist/Keys.js.map +1 -0
  45. package/dist/ManagedStyles.d.ts +9 -0
  46. package/dist/ManagedStyles.js +79 -0
  47. package/dist/ManagedStyles.js.map +1 -0
  48. package/dist/MarkedEvents.d.ts +9 -0
  49. package/dist/MarkedEvents.js +15 -0
  50. package/dist/MarkedEvents.js.map +1 -0
  51. package/dist/MediaRange.d.ts +31 -0
  52. package/dist/MediaRange.js +62 -83
  53. package/dist/MediaRange.js.map +1 -0
  54. package/dist/PropertiesFileFormat.d.ts +8 -0
  55. package/dist/PropertiesFileFormat.js +72 -82
  56. package/dist/PropertiesFileFormat.js.map +1 -0
  57. package/dist/Render.d.ts +47 -0
  58. package/dist/Render.js +82 -112
  59. package/dist/Render.js.map +1 -0
  60. package/dist/RenderQueue.d.ts +19 -0
  61. package/dist/RenderQueue.js +52 -62
  62. package/dist/RenderQueue.js.map +1 -0
  63. package/dist/Runtimes.d.ts +27 -0
  64. package/dist/Runtimes.js +86 -0
  65. package/dist/Runtimes.js.map +1 -0
  66. package/dist/SystemCSSVars.d.ts +2 -0
  67. package/dist/SystemCSSVars.js +6 -28
  68. package/dist/SystemCSSVars.js.map +1 -0
  69. package/{src/Theming.js → dist/Theming.d.ts} +0 -1
  70. package/dist/Theming.js +1 -1
  71. package/dist/Theming.js.map +1 -0
  72. package/dist/UI5Element.d.ts +376 -0
  73. package/dist/UI5Element.js +1004 -1003
  74. package/dist/UI5Element.js.map +1 -0
  75. package/dist/UI5ElementMetadata.d.ts +150 -0
  76. package/dist/UI5ElementMetadata.js +290 -299
  77. package/dist/UI5ElementMetadata.js.map +1 -0
  78. package/dist/animations/AnimationQueue.d.ts +8 -0
  79. package/dist/animations/AnimationQueue.js +31 -38
  80. package/dist/animations/AnimationQueue.js.map +1 -0
  81. package/dist/animations/animate.d.ts +14 -0
  82. package/dist/animations/animate.js +46 -51
  83. package/dist/animations/animate.js.map +1 -0
  84. package/dist/animations/scroll.d.ts +5 -0
  85. package/dist/animations/scroll.js +18 -27
  86. package/dist/animations/scroll.js.map +1 -0
  87. package/dist/animations/slideDown.d.ts +5 -0
  88. package/dist/animations/slideDown.js +53 -78
  89. package/dist/animations/slideDown.js.map +1 -0
  90. package/dist/animations/slideUp.d.ts +5 -0
  91. package/dist/animations/slideUp.js +49 -70
  92. package/dist/animations/slideUp.js.map +1 -0
  93. package/dist/asset-registries/Icons.d.ts +39 -0
  94. package/dist/asset-registries/Icons.js +120 -102
  95. package/dist/asset-registries/Icons.js.map +1 -0
  96. package/dist/asset-registries/Illustrations.d.ts +19 -0
  97. package/dist/asset-registries/Illustrations.js +77 -0
  98. package/dist/asset-registries/Illustrations.js.map +1 -0
  99. package/dist/asset-registries/LocaleData.d.ts +7 -0
  100. package/dist/asset-registries/LocaleData.js +104 -118
  101. package/dist/asset-registries/LocaleData.js.map +1 -0
  102. package/dist/asset-registries/Themes.d.ts +12 -0
  103. package/dist/asset-registries/Themes.js +57 -67
  104. package/dist/asset-registries/Themes.js.map +1 -0
  105. package/dist/asset-registries/i18n.d.ts +23 -0
  106. package/dist/asset-registries/i18n.js +64 -83
  107. package/dist/asset-registries/i18n.js.map +1 -0
  108. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  109. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  110. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  111. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  112. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  113. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  114. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  115. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  116. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  117. package/dist/config/AnimationMode.d.ts +14 -0
  118. package/dist/config/AnimationMode.js +22 -18
  119. package/dist/config/AnimationMode.js.map +1 -0
  120. package/dist/config/CalendarType.d.ts +15 -0
  121. package/dist/config/CalendarType.js +31 -14
  122. package/dist/config/CalendarType.js.map +1 -0
  123. package/dist/config/FormatSettings.d.ts +15 -0
  124. package/dist/config/FormatSettings.js +15 -9
  125. package/dist/config/FormatSettings.js.map +1 -0
  126. package/dist/config/Icons.d.ts +40 -0
  127. package/dist/config/Icons.js +44 -0
  128. package/dist/config/Icons.js.map +1 -0
  129. package/dist/config/Language.d.ts +40 -0
  130. package/dist/config/Language.js +47 -44
  131. package/dist/config/Language.js.map +1 -0
  132. package/dist/config/NoConflict.d.ts +20 -0
  133. package/dist/config/NoConflict.js +41 -41
  134. package/dist/config/NoConflict.js.map +1 -0
  135. package/dist/config/Theme.d.ts +39 -0
  136. package/dist/config/Theme.js +71 -22
  137. package/dist/config/Theme.js.map +1 -0
  138. package/dist/config/ThemeRoot.d.ts +27 -0
  139. package/dist/config/ThemeRoot.js +57 -0
  140. package/dist/config/ThemeRoot.js.map +1 -0
  141. package/dist/config/Timezone.d.ts +17 -0
  142. package/dist/config/Timezone.js +30 -0
  143. package/dist/config/Timezone.js.map +1 -0
  144. package/dist/connectToComponent.d.ts +9 -0
  145. package/dist/connectToComponent.js +59 -0
  146. package/dist/connectToComponent.js.map +1 -0
  147. package/dist/css/BusyIndicator.css +80 -0
  148. package/dist/css/FontFace.css +96 -0
  149. package/dist/css/OverrideFontFace.css +32 -0
  150. package/dist/css/SystemCSSVars.css +9 -0
  151. package/dist/decorators/customElement.d.ts +23 -0
  152. package/dist/decorators/customElement.js +42 -0
  153. package/dist/decorators/customElement.js.map +1 -0
  154. package/dist/decorators/event.d.ts +13 -0
  155. package/dist/decorators/event.js +24 -0
  156. package/dist/decorators/event.js.map +1 -0
  157. package/dist/decorators/property.d.ts +9 -0
  158. package/dist/decorators/property.js +24 -0
  159. package/dist/decorators/property.js.map +1 -0
  160. package/dist/decorators/slot.d.ts +9 -0
  161. package/dist/decorators/slot.js +37 -0
  162. package/dist/decorators/slot.js.map +1 -0
  163. package/dist/decorators.d.ts +5 -0
  164. package/dist/decorators.js +6 -0
  165. package/dist/decorators.js.map +1 -0
  166. package/dist/delegate/ItemNavigation.d.ts +114 -0
  167. package/dist/delegate/ItemNavigation.js +283 -253
  168. package/dist/delegate/ItemNavigation.js.map +1 -0
  169. package/dist/delegate/ResizeHandler.d.ts +23 -0
  170. package/dist/delegate/ResizeHandler.js +70 -91
  171. package/dist/delegate/ResizeHandler.js.map +1 -0
  172. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  173. package/dist/delegate/ScrollEnablement.js +157 -174
  174. package/dist/delegate/ScrollEnablement.js.map +1 -0
  175. package/dist/features/F6Navigation.d.ts +19 -0
  176. package/dist/features/F6Navigation.js +151 -0
  177. package/dist/features/F6Navigation.js.map +1 -0
  178. package/dist/features/InputElementsFormSupport.d.ts +18 -0
  179. package/dist/features/InputElementsFormSupport.js +40 -0
  180. package/dist/features/InputElementsFormSupport.js.map +1 -0
  181. package/dist/features/LegacyDateFormats.d.ts +18 -0
  182. package/dist/features/LegacyDateFormats.js +20 -0
  183. package/dist/features/LegacyDateFormats.js.map +1 -0
  184. package/dist/features/OpenUI5Element.d.ts +9 -0
  185. package/dist/features/OpenUI5Element.js +5 -0
  186. package/dist/features/OpenUI5Element.js.map +1 -0
  187. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  188. package/dist/features/OpenUI5Enablement.js +96 -0
  189. package/dist/features/OpenUI5Enablement.js.map +1 -0
  190. package/dist/features/OpenUI5Support.d.ts +34 -0
  191. package/dist/features/OpenUI5Support.js +137 -122
  192. package/dist/features/OpenUI5Support.js.map +1 -0
  193. package/dist/features/patchPatcher.d.ts +11 -0
  194. package/dist/features/patchPatcher.js +11 -0
  195. package/dist/features/patchPatcher.js.map +1 -0
  196. package/dist/features/patchPopup.d.ts +14 -0
  197. package/dist/features/patchPopup.js +50 -0
  198. package/dist/features/patchPopup.js.map +1 -0
  199. package/dist/generated/AssetParameters.d.ts +6 -0
  200. package/dist/generated/AssetParameters.js +4 -9
  201. package/dist/generated/AssetParameters.js.map +1 -0
  202. package/dist/generated/VersionInfo.d.ts +10 -0
  203. package/dist/generated/VersionInfo.js +11 -0
  204. package/dist/generated/VersionInfo.js.map +1 -0
  205. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  206. package/dist/generated/css/BusyIndicator.css.js +7 -0
  207. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  208. package/dist/generated/css/FontFace.css.d.ts +3 -0
  209. package/dist/generated/css/FontFace.css.js +7 -0
  210. package/dist/generated/css/FontFace.css.js.map +1 -0
  211. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  212. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  213. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  214. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  215. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  216. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  217. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  218. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
  219. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  220. package/dist/getSharedResource.d.ts +11 -0
  221. package/dist/getSharedResource.js +28 -18
  222. package/dist/getSharedResource.js.map +1 -0
  223. package/dist/global.d.ts +40 -0
  224. package/dist/i18nBundle.d.ts +41 -0
  225. package/dist/i18nBundle.js +65 -44
  226. package/dist/i18nBundle.js.map +1 -0
  227. package/dist/locale/Locale.d.ts +22 -0
  228. package/dist/locale/Locale.js +75 -87
  229. package/dist/locale/Locale.js.map +1 -0
  230. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  231. package/dist/locale/RTLAwareRegistry.js +6 -11
  232. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  233. package/dist/locale/applyDirection.d.ts +11 -0
  234. package/dist/locale/applyDirection.js +8 -7
  235. package/dist/locale/applyDirection.js.map +1 -0
  236. package/dist/locale/directionChange.d.ts +15 -0
  237. package/dist/locale/directionChange.js +7 -15
  238. package/dist/locale/directionChange.js.map +1 -0
  239. package/dist/locale/getEffectiveDir.d.ts +2 -0
  240. package/dist/locale/getEffectiveDir.js +6 -26
  241. package/dist/locale/getEffectiveDir.js.map +1 -0
  242. package/dist/locale/getLocale.d.ts +7 -0
  243. package/dist/locale/getLocale.js +26 -29
  244. package/dist/locale/getLocale.js.map +1 -0
  245. package/dist/locale/languageChange.d.ts +5 -0
  246. package/dist/locale/languageChange.js +8 -16
  247. package/dist/locale/languageChange.js.map +1 -0
  248. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  249. package/dist/locale/nextFallbackLocale.js +15 -19
  250. package/dist/locale/nextFallbackLocale.js.map +1 -0
  251. package/dist/locale/normalizeLocale.d.ts +7 -0
  252. package/dist/locale/normalizeLocale.js +34 -41
  253. package/dist/locale/normalizeLocale.js.map +1 -0
  254. package/dist/renderer/LitRenderer.d.ts +14 -0
  255. package/dist/renderer/LitRenderer.js +28 -24
  256. package/dist/renderer/LitRenderer.js.map +1 -0
  257. package/dist/renderer/directives/style-map.d.ts +13 -0
  258. package/dist/renderer/directives/style-map.js +72 -0
  259. package/dist/renderer/directives/style-map.js.map +1 -0
  260. package/dist/renderer/executeTemplate.d.ts +21 -0
  261. package/dist/renderer/executeTemplate.js +21 -7
  262. package/dist/renderer/executeTemplate.js.map +1 -0
  263. package/dist/sap/base/Log.js +750 -0
  264. package/dist/sap/base/assert.js +34 -0
  265. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  266. package/dist/sap/base/security/URLListValidator.js +406 -0
  267. package/dist/sap/base/security/encodeCSS.js +40 -0
  268. package/dist/sap/base/security/encodeXML.js +53 -0
  269. package/dist/sap/base/security/sanitizeHTML.js +38 -0
  270. package/dist/sap/base/strings/toHex.js +33 -0
  271. package/dist/sap/base/util/now.js +28 -0
  272. package/dist/sap/base/util/uid.js +27 -0
  273. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  274. package/dist/ssr-dom-shim.d.ts +1 -0
  275. package/dist/ssr-dom-shim.js +12 -0
  276. package/dist/ssr-dom-shim.js.map +1 -0
  277. package/dist/ssr-dom.d.ts +0 -0
  278. package/dist/ssr-dom.js +0 -0
  279. package/dist/theming/CustomStyle.d.ts +6 -0
  280. package/dist/theming/CustomStyle.js +39 -31
  281. package/dist/theming/CustomStyle.js.map +1 -0
  282. package/dist/theming/ThemeLoaded.d.ts +5 -0
  283. package/dist/theming/ThemeLoaded.js +8 -16
  284. package/dist/theming/ThemeLoaded.js.map +1 -0
  285. package/dist/theming/ThemeRegistered.d.ts +4 -0
  286. package/dist/theming/ThemeRegistered.js +11 -0
  287. package/dist/theming/ThemeRegistered.js.map +1 -0
  288. package/dist/theming/applyTheme.d.ts +2 -0
  289. package/dist/theming/applyTheme.js +63 -65
  290. package/dist/theming/applyTheme.js.map +1 -0
  291. package/dist/theming/getConstructableStyle.d.ts +9 -0
  292. package/dist/theming/getConstructableStyle.js +13 -18
  293. package/dist/theming/getConstructableStyle.js.map +1 -0
  294. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  295. package/dist/theming/getEffectiveStyle.js +19 -24
  296. package/dist/theming/getEffectiveStyle.js.map +1 -0
  297. package/dist/theming/getStylesString.d.ts +3 -0
  298. package/dist/theming/getStylesString.js +9 -11
  299. package/dist/theming/getStylesString.js.map +1 -0
  300. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  301. package/dist/theming/getThemeDesignerTheme.js +73 -60
  302. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  303. package/dist/thirdparty/_merge.d.ts +2 -0
  304. package/dist/thirdparty/_merge.js +7 -4
  305. package/dist/thirdparty/_merge.js.map +1 -0
  306. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  307. package/dist/thirdparty/isPlainObject.js +11 -10
  308. package/dist/thirdparty/isPlainObject.js.map +1 -0
  309. package/dist/thirdparty/merge.d.ts +2 -0
  310. package/dist/thirdparty/merge.js +4 -8
  311. package/dist/thirdparty/merge.js.map +1 -0
  312. package/dist/types/AnimationMode.d.ts +24 -0
  313. package/dist/types/AnimationMode.js +25 -6
  314. package/dist/types/AnimationMode.js.map +1 -0
  315. package/dist/types/AriaHasPopup.d.ts +32 -0
  316. package/dist/types/AriaHasPopup.js +34 -0
  317. package/dist/types/AriaHasPopup.js.map +1 -0
  318. package/dist/types/AriaLandmarkRole.d.ts +79 -0
  319. package/dist/types/AriaLandmarkRole.js +81 -0
  320. package/dist/types/AriaLandmarkRole.js.map +1 -0
  321. package/dist/types/AriaRole.d.ts +27 -0
  322. package/dist/types/AriaRole.js +29 -0
  323. package/dist/types/AriaRole.js.map +1 -0
  324. package/dist/types/CSSColor.d.ts +11 -0
  325. package/dist/types/CSSColor.js +10 -5
  326. package/dist/types/CSSColor.js.map +1 -0
  327. package/dist/types/CSSSize.d.ts +11 -0
  328. package/dist/types/CSSSize.js +10 -5
  329. package/dist/types/CSSSize.js.map +1 -0
  330. package/dist/types/CalendarType.d.ts +28 -0
  331. package/dist/types/CalendarType.js +26 -18
  332. package/dist/types/CalendarType.js.map +1 -0
  333. package/dist/types/DOMReference.d.ts +13 -0
  334. package/dist/types/DOMReference.js +21 -0
  335. package/dist/types/DOMReference.js.map +1 -0
  336. package/dist/types/DataType.d.ts +20 -0
  337. package/dist/types/DataType.js +31 -17
  338. package/dist/types/DataType.js.map +1 -0
  339. package/dist/types/Float.d.ts +14 -0
  340. package/dist/types/Float.js +14 -6
  341. package/dist/types/Float.js.map +1 -0
  342. package/dist/types/Integer.d.ts +14 -0
  343. package/dist/types/Integer.js +14 -5
  344. package/dist/types/Integer.js.map +1 -0
  345. package/dist/types/InvisibleMessageMode.d.ts +20 -0
  346. package/dist/types/InvisibleMessageMode.js +20 -0
  347. package/dist/types/InvisibleMessageMode.js.map +1 -0
  348. package/dist/types/ItemNavigationBehavior.d.ts +18 -0
  349. package/dist/types/ItemNavigationBehavior.js +16 -12
  350. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  351. package/dist/types/MovePlacement.d.ts +20 -0
  352. package/dist/types/MovePlacement.js +22 -0
  353. package/dist/types/MovePlacement.js.map +1 -0
  354. package/dist/types/NavigationMode.d.ts +24 -0
  355. package/dist/types/NavigationMode.js +25 -6
  356. package/dist/types/NavigationMode.js.map +1 -0
  357. package/dist/types/Orientation.d.ts +16 -0
  358. package/dist/types/Orientation.js +18 -0
  359. package/dist/types/Orientation.js.map +1 -0
  360. package/dist/types/ValueState.d.ts +28 -0
  361. package/dist/types/ValueState.js +27 -19
  362. package/dist/types/ValueState.js.map +1 -0
  363. package/dist/types.d.ts +41 -0
  364. package/dist/types.js +2 -0
  365. package/dist/types.js.map +1 -0
  366. package/dist/updateShadowRoot.d.ts +7 -0
  367. package/dist/updateShadowRoot.js +11 -19
  368. package/dist/updateShadowRoot.js.map +1 -0
  369. package/dist/util/AriaLabelHelper.d.ts +15 -0
  370. package/dist/util/AriaLabelHelper.js +166 -36
  371. package/dist/util/AriaLabelHelper.js.map +1 -0
  372. package/dist/util/Caret.d.ts +7 -0
  373. package/dist/util/Caret.js +16 -38
  374. package/dist/util/Caret.js.map +1 -0
  375. package/dist/util/ColorConversion.d.ts +30 -0
  376. package/dist/util/ColorConversion.js +320 -348
  377. package/dist/util/ColorConversion.js.map +1 -0
  378. package/dist/util/FetchHelper.d.ts +3 -0
  379. package/dist/util/FetchHelper.js +19 -25
  380. package/dist/util/FetchHelper.js.map +1 -0
  381. package/dist/util/FocusableElements.d.ts +4 -0
  382. package/dist/util/FocusableElements.js +67 -68
  383. package/dist/util/FocusableElements.js.map +1 -0
  384. package/dist/util/HTMLSanitizer.d.ts +3 -0
  385. package/dist/util/HTMLSanitizer.js +6 -0
  386. package/dist/util/HTMLSanitizer.js.map +1 -0
  387. package/dist/util/InvisibleMessage.d.ts +10 -0
  388. package/dist/util/InvisibleMessage.js +56 -0
  389. package/dist/util/InvisibleMessage.js.map +1 -0
  390. package/dist/util/PopupUtils.d.ts +5 -0
  391. package/dist/util/PopupUtils.js +53 -86
  392. package/dist/util/PopupUtils.js.map +1 -0
  393. package/dist/util/SlotsHelper.d.ts +9 -0
  394. package/dist/util/SlotsHelper.js +22 -35
  395. package/dist/util/SlotsHelper.js.map +1 -0
  396. package/dist/util/StringHelper.d.ts +3 -0
  397. package/dist/util/StringHelper.js +17 -20
  398. package/dist/util/StringHelper.js.map +1 -0
  399. package/dist/util/TabbableElements.d.ts +17 -0
  400. package/dist/util/TabbableElements.js +53 -43
  401. package/dist/util/TabbableElements.js.map +1 -0
  402. package/dist/util/arraysAreEqual.d.ts +2 -0
  403. package/dist/util/arraysAreEqual.js +10 -12
  404. package/dist/util/arraysAreEqual.js.map +1 -0
  405. package/{src/util/clamp.js → dist/util/clamp.d.ts} +1 -4
  406. package/dist/util/clamp.js +3 -2
  407. package/dist/util/clamp.js.map +1 -0
  408. package/dist/util/createLinkInHead.d.ts +7 -0
  409. package/dist/util/createLinkInHead.js +21 -0
  410. package/dist/util/createLinkInHead.js.map +1 -0
  411. package/dist/util/debounce.d.ts +2 -0
  412. package/dist/util/debounce.js +6 -8
  413. package/dist/util/debounce.js.map +1 -0
  414. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  415. package/dist/util/detectNavigatorLanguage.js +13 -11
  416. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  417. package/dist/util/dragAndDrop/DragRegistry.d.ts +12 -0
  418. package/dist/util/dragAndDrop/DragRegistry.js +68 -0
  419. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
  420. package/dist/util/dragAndDrop/findClosestPosition.d.ts +7 -0
  421. package/dist/util/dragAndDrop/findClosestPosition.js +59 -0
  422. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
  423. package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
  424. package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
  425. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
  426. package/dist/util/escapeRegex.d.ts +8 -0
  427. package/dist/util/escapeRegex.js +11 -0
  428. package/dist/util/escapeRegex.js.map +1 -0
  429. package/dist/util/formatMessage.d.ts +2 -0
  430. package/dist/util/formatMessage.js +15 -19
  431. package/dist/util/formatMessage.js.map +1 -0
  432. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  433. package/dist/util/generateHighlightedMarkup.js +41 -0
  434. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  435. package/dist/util/getActiveElement.d.ts +2 -0
  436. package/dist/util/getActiveElement.js +6 -8
  437. package/dist/util/getActiveElement.js.map +1 -0
  438. package/dist/util/getClassCopy.d.ts +421 -0
  439. package/dist/util/getClassCopy.js +7 -7
  440. package/dist/util/getClassCopy.js.map +1 -0
  441. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  442. package/dist/util/getDesigntimePropertyAsArray.js +5 -3
  443. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  444. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  445. package/dist/util/getEffectiveContentDensity.js +2 -3
  446. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  447. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  448. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  449. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  450. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  451. package/dist/util/getFastNavigationGroups.js +51 -0
  452. package/dist/util/getFastNavigationGroups.js.map +1 -0
  453. package/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
  454. package/dist/util/getFileExtension.js +9 -11
  455. package/dist/util/getFileExtension.js.map +1 -0
  456. package/dist/util/getNormalizedTarget.d.ts +7 -0
  457. package/dist/util/getNormalizedTarget.js +14 -0
  458. package/dist/util/getNormalizedTarget.js.map +1 -0
  459. package/dist/util/getParentElement.d.ts +2 -0
  460. package/dist/util/getParentElement.js +5 -0
  461. package/dist/util/getParentElement.js.map +1 -0
  462. package/dist/util/getSingletonElementInstance.d.ts +11 -0
  463. package/dist/util/getSingletonElementInstance.js +17 -11
  464. package/dist/util/getSingletonElementInstance.js.map +1 -0
  465. package/dist/util/isElementClickable.d.ts +2 -0
  466. package/dist/util/isElementClickable.js +16 -0
  467. package/dist/util/isElementClickable.js.map +1 -0
  468. package/dist/util/isElementContainingBlock.d.ts +2 -0
  469. package/dist/util/isElementContainingBlock.js +11 -0
  470. package/dist/util/isElementContainingBlock.js.map +1 -0
  471. package/dist/util/isElementHidden.d.ts +2 -0
  472. package/dist/util/isElementHidden.js +8 -0
  473. package/dist/util/isElementHidden.js.map +1 -0
  474. package/dist/util/isElementInView.d.ts +6 -0
  475. package/dist/util/isElementInView.js +6 -9
  476. package/dist/util/isElementInView.js.map +1 -0
  477. package/dist/util/isElementTabbable.d.ts +9 -0
  478. package/dist/util/isElementTabbable.js +30 -0
  479. package/dist/util/isElementTabbable.js.map +1 -0
  480. package/dist/util/isValidPropertyName.d.ts +8 -0
  481. package/dist/util/isValidPropertyName.js +16 -17
  482. package/dist/util/isValidPropertyName.js.map +1 -0
  483. package/dist/util/whenDOMReady.d.ts +2 -0
  484. package/dist/util/whenDOMReady.js +11 -10
  485. package/dist/util/whenDOMReady.js.map +1 -0
  486. package/dist/util/willShowContent.d.ts +2 -0
  487. package/dist/util/willShowContent.js +7 -0
  488. package/dist/util/willShowContent.js.map +1 -0
  489. package/dist/validateThemeRoot.d.ts +2 -0
  490. package/dist/validateThemeRoot.js +48 -0
  491. package/dist/validateThemeRoot.js.map +1 -0
  492. package/index.js +212 -2
  493. package/package-scripts.cjs +74 -0
  494. package/package.json +35 -10
  495. package/src/css/BusyIndicator.css +80 -0
  496. package/src/css/FontFace.css +96 -0
  497. package/src/css/OverrideFontFace.css +32 -0
  498. package/src/css/SystemCSSVars.css +9 -0
  499. package/tsconfig.json +20 -0
  500. package/.eslintignore +0 -12
  501. package/bundle.esm.js +0 -54
  502. package/config/.eslintrc.js +0 -3
  503. package/config/rollup.config.js +0 -1
  504. package/config/wdio.conf.js +0 -1
  505. package/dist/RenderScheduler.js +0 -44
  506. package/dist/StaticArea.js +0 -3
  507. package/dist/StaticAreaItem.js +0 -96
  508. package/dist/animations/config.js +0 -5
  509. package/dist/config/AssetsPath.js +0 -17
  510. package/dist/config/RTL.js +0 -31
  511. package/dist/isLegacyBrowser.js +0 -3
  512. package/dist/renderer/ifDefined.js +0 -21
  513. package/dist/renderer/scopeHTML.js +0 -32
  514. package/dist/resources/bundle.esm.js +0 -121
  515. package/dist/resources/bundle.esm.js.map +0 -1
  516. package/dist/test-resources/assets/Themes.js +0 -17
  517. package/dist/test-resources/elements/Child.js +0 -35
  518. package/dist/test-resources/elements/Generic.js +0 -84
  519. package/dist/test-resources/elements/GenericExt.js +0 -26
  520. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  521. package/dist/test-resources/elements/Parent.js +0 -41
  522. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  523. package/dist/test-resources/pages/AllTestElements.html +0 -39
  524. package/dist/test-resources/pages/Configuration.html +0 -18
  525. package/dist/test-resources/pages/ConfigurationScript.html +0 -34
  526. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  527. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  528. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  529. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  530. package/dist/test-resources/pages/i18n.html +0 -35
  531. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
  532. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
  533. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -47
  534. package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
  535. package/dist/test-resources/specs/StaticArea.spec.js +0 -36
  536. package/dist/test-resources/specs/Theming.spec.js +0 -33
  537. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
  538. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
  539. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
  540. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
  541. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
  542. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
  543. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
  544. package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
  545. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  546. package/dist/types/PopupState.js +0 -37
  547. package/dist/util/createStyleInHead.js +0 -18
  548. package/dist/util/encodeCSS.js +0 -24
  549. package/dist/util/findNodeOwner.js +0 -35
  550. package/dist/util/isDescendantOf.js +0 -15
  551. package/dist/util/isNodeClickable.js +0 -19
  552. package/dist/util/isNodeHidden.js +0 -9
  553. package/dist/util/isNodeTabbable.js +0 -28
  554. package/dist/util/setToArray.js +0 -10
  555. package/hash.txt +0 -1
  556. package/lib/generate-asset-parameters/index.js +0 -22
  557. package/package-scripts.js +0 -43
  558. package/src/AssetRegistry.js +0 -11
  559. package/src/Boot.js +0 -43
  560. package/src/CustomElementsRegistry.js +0 -39
  561. package/src/CustomElementsScope.js +0 -108
  562. package/src/DOMObserver.js +0 -65
  563. package/src/Device.js +0 -100
  564. package/src/EventProvider.js +0 -91
  565. package/src/FeaturesRegistry.js +0 -11
  566. package/src/FontFace.js +0 -118
  567. package/src/InitialConfiguration.js +0 -149
  568. package/src/Keys.js +0 -233
  569. package/src/MediaRange.js +0 -109
  570. package/src/PropertiesFileFormat.js +0 -95
  571. package/src/Render.js +0 -173
  572. package/src/RenderQueue.js +0 -66
  573. package/src/RenderScheduler.js +0 -44
  574. package/src/StaticArea.js +0 -3
  575. package/src/StaticAreaItem.js +0 -96
  576. package/src/SystemCSSVars.js +0 -31
  577. package/src/UI5Element.js +0 -1034
  578. package/src/UI5ElementMetadata.js +0 -311
  579. package/src/animations/AnimationQueue.js +0 -42
  580. package/src/animations/animate.js +0 -53
  581. package/src/animations/config.js +0 -5
  582. package/src/animations/scroll.js +0 -28
  583. package/src/animations/slideDown.js +0 -79
  584. package/src/animations/slideUp.js +0 -71
  585. package/src/asset-registries/Icons.js +0 -118
  586. package/src/asset-registries/LocaleData.js +0 -150
  587. package/src/asset-registries/Themes.js +0 -78
  588. package/src/asset-registries/i18n.js +0 -121
  589. package/src/config/AnimationMode.js +0 -23
  590. package/src/config/AssetsPath.js +0 -17
  591. package/src/config/CalendarType.js +0 -18
  592. package/src/config/FormatSettings.js +0 -13
  593. package/src/config/Language.js +0 -68
  594. package/src/config/NoConflict.js +0 -51
  595. package/src/config/RTL.js +0 -31
  596. package/src/config/Theme.js +0 -28
  597. package/src/delegate/ItemNavigation.js +0 -285
  598. package/src/delegate/ResizeHandler.js +0 -106
  599. package/src/delegate/ScrollEnablement.js +0 -182
  600. package/src/features/OpenUI5Support.js +0 -125
  601. package/src/getSharedResource.js +0 -30
  602. package/src/i18nBundle.js +0 -55
  603. package/src/isLegacyBrowser.js +0 -3
  604. package/src/locale/Locale.js +0 -91
  605. package/src/locale/RTLAwareRegistry.js +0 -14
  606. package/src/locale/applyDirection.js +0 -17
  607. package/src/locale/directionChange.js +0 -32
  608. package/src/locale/getEffectiveDir.js +0 -28
  609. package/src/locale/getLocale.js +0 -41
  610. package/src/locale/languageChange.js +0 -22
  611. package/src/locale/nextFallbackLocale.js +0 -28
  612. package/src/locale/normalizeLocale.js +0 -54
  613. package/src/renderer/LitRenderer.js +0 -31
  614. package/src/renderer/executeTemplate.js +0 -17
  615. package/src/renderer/ifDefined.js +0 -21
  616. package/src/renderer/scopeHTML.js +0 -32
  617. package/src/theming/CustomStyle.js +0 -40
  618. package/src/theming/ThemeLoaded.js +0 -22
  619. package/src/theming/applyTheme.js +0 -78
  620. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  621. package/src/theming/getConstructableStyle.js +0 -30
  622. package/src/theming/getEffectiveStyle.js +0 -30
  623. package/src/theming/getStylesString.js +0 -13
  624. package/src/theming/getThemeDesignerTheme.js +0 -67
  625. package/src/thirdparty/_merge.js +0 -32
  626. package/src/thirdparty/isPlainObject.js +0 -18
  627. package/src/thirdparty/merge.js +0 -10
  628. package/src/types/AnimationMode.js +0 -7
  629. package/src/types/CSSColor.js +0 -9
  630. package/src/types/CSSSize.js +0 -9
  631. package/src/types/CalendarType.js +0 -22
  632. package/src/types/DataType.js +0 -25
  633. package/src/types/Float.js +0 -10
  634. package/src/types/Integer.js +0 -9
  635. package/src/types/ItemNavigationBehavior.js +0 -16
  636. package/src/types/NavigationMode.js +0 -7
  637. package/src/types/PopupState.js +0 -37
  638. package/src/types/ValueState.js +0 -22
  639. package/src/updateShadowRoot.js +0 -26
  640. package/src/util/AriaLabelHelper.js +0 -41
  641. package/src/util/Caret.js +0 -45
  642. package/src/util/ColorConversion.js +0 -370
  643. package/src/util/FetchHelper.js +0 -31
  644. package/src/util/FocusableElements.js +0 -73
  645. package/src/util/PopupUtils.js +0 -93
  646. package/src/util/SlotsHelper.js +0 -43
  647. package/src/util/StringHelper.js +0 -26
  648. package/src/util/TabbableElements.js +0 -47
  649. package/src/util/arraysAreEqual.js +0 -15
  650. package/src/util/createStyleInHead.js +0 -18
  651. package/src/util/debounce.js +0 -17
  652. package/src/util/detectNavigatorLanguage.js +0 -13
  653. package/src/util/encodeCSS.js +0 -24
  654. package/src/util/findNodeOwner.js +0 -35
  655. package/src/util/formatMessage.js +0 -23
  656. package/src/util/getActiveElement.js +0 -11
  657. package/src/util/getClassCopy.js +0 -10
  658. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  659. package/src/util/getEffectiveContentDensity.js +0 -5
  660. package/src/util/getSingletonElementInstance.js +0 -13
  661. package/src/util/isDescendantOf.js +0 -15
  662. package/src/util/isElementInView.js +0 -15
  663. package/src/util/isNodeClickable.js +0 -19
  664. package/src/util/isNodeHidden.js +0 -9
  665. package/src/util/isNodeTabbable.js +0 -28
  666. package/src/util/isValidPropertyName.js +0 -29
  667. package/src/util/setToArray.js +0 -10
  668. package/src/util/whenDOMReady.js +0 -13
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorConversion.js","sourceRoot":"","sources":["../../src/util/ColorConversion.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * @param {String} color Color in one of the following formats: RGBA or HEX\n */\n\ntype ColorHSL = {\n\th: number,\n\ts: number,\n\tl: number,\n};\n\ntype ColorRGB = {\n\tr: number,\n\tb: number,\n\tg: number,\n};\n\n/**\n * Map of CSS colors to hex representation\n */\nconst CSSColors = new Map([\n\t[\"aliceblue\", \"f0f8ff\"],\n\t[\"antiquewhite\", \"faebd7\"],\n\t[\"aqua\", \"00ffff\"],\n\t[\"aquamarine\", \"7fffd4\"],\n\t[\"azure\", \"f0ffff\"],\n\t[\"beige\", \"f5f5dc\"],\n\t[\"bisque\", \"ffe4c4\"],\n\t[\"black\", \"000000\"],\n\t[\"blanchedalmond\", \"ffebcd\"],\n\t[\"blue\", \"0000ff\"],\n\t[\"blueviolet\", \"8a2be2\"],\n\t[\"brown\", \"a52a2a\"],\n\t[\"burlywood\", \"deb887\"],\n\t[\"cadetblue\", \"5f9ea0\"],\n\t[\"chartreuse\", \"7fff00\"],\n\t[\"chocolate\", \"d2691e\"],\n\t[\"coral\", \"ff7f50\"],\n\t[\"cornflowerblue\", \"6495ed\"],\n\t[\"cornsilk\", \"fff8dc\"],\n\t[\"crimson\", \"dc143c\"],\n\t[\"cyan\", \"00ffff\"],\n\t[\"darkblue\", \"00008b\"],\n\t[\"darkcyan\", \"008b8b\"],\n\t[\"darkgoldenrod\", \"b8860b\"],\n\t[\"darkgray\", \"a9a9a9\"],\n\t[\"darkgrey\", \"a9a9a9\"],\n\t[\"darkgreen\", \"006400\"],\n\t[\"darkkhaki\", \"bdb76b\"],\n\t[\"darkmagenta\", \"8b008b\"],\n\t[\"darkolivegreen\", \"556b2f\"],\n\t[\"darkorange\", \"ff8c00\"],\n\t[\"darkorchid\", \"9932cc\"],\n\t[\"darkred\", \"8b0000\"],\n\t[\"darksalmon\", \"e9967a\"],\n\t[\"darkseagreen\", \"8fbc8f\"],\n\t[\"darkslateblue\", \"483d8b\"],\n\t[\"darkslategray\", \"2f4f4f\"],\n\t[\"darkslategrey\", \"2f4f4f\"],\n\t[\"darkturquoise\", \"00ced1\"],\n\t[\"darkviolet\", \"9400d3\"],\n\t[\"deeppink\", \"ff1493\"],\n\t[\"deepskyblue\", \"00bfff\"],\n\t[\"dimgray\", \"696969\"],\n\t[\"dimgrey\", \"696969\"],\n\t[\"dodgerblue\", \"1e90ff\"],\n\t[\"firebrick\", \"b22222\"],\n\t[\"floralwhite\", \"fffaf0\"],\n\t[\"forestgreen\", \"228b22\"],\n\t[\"fuchsia\", \"ff00ff\"],\n\t[\"gainsboro\", \"dcdcdc\"],\n\t[\"ghostwhite\", \"f8f8ff\"],\n\t[\"gold\", \"ffd700\"],\n\t[\"goldenrod\", \"daa520\"],\n\t[\"gray\", \"808080\"],\n\t[\"grey\", \"808080\"],\n\t[\"green\", \"008000\"],\n\t[\"greenyellow\", \"adff2f\"],\n\t[\"honeydew\", \"f0fff0\"],\n\t[\"hotpink\", \"ff69b4\"],\n\t[\"indianred\", \"cd5c5c\"],\n\t[\"indigo\", \"4b0082\"],\n\t[\"ivory\", \"fffff0\"],\n\t[\"khaki\", \"f0e68c\"],\n\t[\"lavender\", \"e6e6fa\"],\n\t[\"lavenderblush\", \"fff0f5\"],\n\t[\"lawngreen\", \"7cfc00\"],\n\t[\"lemonchiffon\", \"fffacd\"],\n\t[\"lightblue\", \"add8e6\"],\n\t[\"lightcoral\", \"f08080\"],\n\t[\"lightcyan\", \"e0ffff\"],\n\t[\"lightgoldenrodyellow\", \"fafad2\"],\n\t[\"lightgray\", \"d3d3d3\"],\n\t[\"lightgrey\", \"d3d3d3\"],\n\t[\"lightgreen\", \"90ee90\"],\n\t[\"lightpink\", \"ffb6c1\"],\n\t[\"lightsalmon\", \"ffa07a\"],\n\t[\"lightseagreen\", \"20b2aa\"],\n\t[\"lightskyblue\", \"87cefa\"],\n\t[\"lightslategray\", \"778899\"],\n\t[\"lightslategrey\", \"778899\"],\n\t[\"lightsteelblue\", \"b0c4de\"],\n\t[\"lightyellow\", \"ffffe0\"],\n\t[\"lime\", \"00ff00\"],\n\t[\"limegreen\", \"32cd32\"],\n\t[\"linen\", \"faf0e6\"],\n\t[\"magenta\", \"ff00ff\"],\n\t[\"maroon\", \"800000\"],\n\t[\"mediumaquamarine\", \"66cdaa\"],\n\t[\"mediumblue\", \"0000cd\"],\n\t[\"mediumorchid\", \"ba55d3\"],\n\t[\"mediumpurple\", \"9370db\"],\n\t[\"mediumseagreen\", \"3cb371\"],\n\t[\"mediumslateblue\", \"7b68ee\"],\n\t[\"mediumspringgreen\", \"00fa9a\"],\n\t[\"mediumturquoise\", \"48d1cc\"],\n\t[\"mediumvioletred\", \"c71585\"],\n\t[\"midnightblue\", \"191970\"],\n\t[\"mintcream\", \"f5fffa\"],\n\t[\"mistyrose\", \"ffe4e1\"],\n\t[\"moccasin\", \"ffe4b5\"],\n\t[\"navajowhite\", \"ffdead\"],\n\t[\"navy\", \"000080\"],\n\t[\"oldlace\", \"fdf5e6\"],\n\t[\"olive\", \"808000\"],\n\t[\"olivedrab\", \"6b8e23\"],\n\t[\"orange\", \"ffa500\"],\n\t[\"orangered\", \"ff4500\"],\n\t[\"orchid\", \"da70d6\"],\n\t[\"palegoldenrod\", \"eee8aa\"],\n\t[\"palegreen\", \"98fb98\"],\n\t[\"paleturquoise\", \"afeeee\"],\n\t[\"palevioletred\", \"db7093\"],\n\t[\"papayawhip\", \"ffefd5\"],\n\t[\"peachpuff\", \"ffdab9\"],\n\t[\"peru\", \"cd853f\"],\n\t[\"pink\", \"ffc0cb\"],\n\t[\"plum\", \"dda0dd\"],\n\t[\"powderblue\", \"b0e0e6\"],\n\t[\"purple\", \"800080\"],\n\t[\"red\", \"ff0000\"],\n\t[\"rosybrown\", \"bc8f8f\"],\n\t[\"royalblue\", \"4169e1\"],\n\t[\"saddlebrown\", \"8b4513\"],\n\t[\"salmon\", \"fa8072\"],\n\t[\"sandybrown\", \"f4a460\"],\n\t[\"seagreen\", \"2e8b57\"],\n\t[\"seashell\", \"fff5ee\"],\n\t[\"sienna\", \"a0522d\"],\n\t[\"silver\", \"c0c0c0\"],\n\t[\"skyblue\", \"87ceeb\"],\n\t[\"slateblue\", \"6a5acd\"],\n\t[\"slategray\", \"708090\"],\n\t[\"slategrey\", \"708090\"],\n\t[\"snow\", \"fffafa\"],\n\t[\"springgreen\", \"00ff7f\"],\n\t[\"steelblue\", \"4682b4\"],\n\t[\"tan\", \"d2b48c\"],\n\t[\"teal\", \"008080\"],\n\t[\"thistle\", \"d8bfd8\"],\n\t[\"tomato\", \"ff6347\"],\n\t[\"turquoise\", \"40e0d0\"],\n\t[\"violet\", \"ee82ee\"],\n\t[\"wheat\", \"f5deb3\"],\n\t[\"white\", \"ffffff\"],\n\t[\"whitesmoke\", \"f5f5f5\"],\n\t[\"yellow\", \"ffff00\"],\n\t[\"yellowgreen\", \"9acd32\"],\n\t[\"transparent\", \"00000000\"],\n]);\n\nconst getRGBColor = (color: string): ColorRGB => {\n\tif (color.startsWith(\"rgba\")) {\n\t\treturn RGBAToRGB(color);\n\t}\n\n\tif (color.startsWith(\"rgb\")) {\n\t\treturn RGBStringToRGBObject(color);\n\t}\n\n\t// HEX\n\tif (color.indexOf(\"#\") === 0) {\n\t\t// Shorthand Syntax\n\t\tif (color.length === 4) {\n\t\t\tcolor = `${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\n\t\t} else {\n\t\t\tcolor = color.slice(1, color.length);\n\t\t}\n\t}\n\n\t// Css Color\n\tif (CSSColors.has(color)) {\n\t\tcolor = CSSColors.get(color)!;\n\t}\n\n\treturn HEXToRGB(color);\n};\n\n/**\n * Return an object with the properties for each of the main colors(red, green, blue)\n * @param {String} color Receives a color in the following format: \"rgba(0, 0, 0, 1)\n */\nconst RGBAToRGB = (color: string): ColorRGB => {\n\tconst openingBracketIndex = color.indexOf(\"(\"),\n\t\tcommasIndexes = [];\n\n\tfor (let i = 0; i < color.length; i++) {\n\t\tif (color[i] === \",\") {\n\t\t\tcommasIndexes.push(i);\n\t\t}\n\t}\n\n\treturn {\n\t\tr: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),\n\t\tg: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),\n\t\tb: parseInt(color.slice(commasIndexes[1] + 1, commasIndexes[2]).trim()),\n\t};\n};\n\n/**\n * Return an object with the properties for each of the main colors(red, green, blue)\n * @param {String} color Receives a color in the following format: \"rgb(0, 0, 0)\n */\nconst RGBStringToRGBObject = (color: string): ColorRGB => {\n\tconst openingBracketIndex = color.indexOf(\"(\"),\n\t\tclosingBraketIndex = color.indexOf(\")\"),\n\t\tcommasIndexes = [];\n\n\tfor (let i = 0; i < color.length; i++) {\n\t\tif (color[i] === \",\") {\n\t\t\tcommasIndexes.push(i);\n\t\t}\n\t}\n\n\treturn {\n\t\tr: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),\n\t\tg: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),\n\t\tb: parseInt(color.slice(commasIndexes[1] + 1, closingBraketIndex).trim()),\n\t};\n};\n\nconst HSLToRGB = (color: ColorHSL): ColorRGB => {\n\t// Formula taken from https://www.rapidtables.com/convert/color/hsl-to-rgb.html\n\tlet saturation = color.s * 100,\n\t\tlightness = color.l * 100,\n\t\tred,\n\t\tgreen,\n\t\tblue;\n\n\tif (saturation > 100) {\n\t\tsaturation = 1;\n\t} else if (saturation < 0) {\n\t\tsaturation = 0;\n\t} else {\n\t\tsaturation /= 100;\n\t}\n\n\tif (lightness > 100) {\n\t\tlightness = 1;\n\t} else if (lightness < 0) {\n\t\tlightness = 0;\n\t} else {\n\t\tlightness /= 100;\n\t}\n\n\tconst hue = color.h,\n\t\td = saturation * (1 - Math.abs(2 * lightness - 1)),\n\t\tm = 255 * (lightness - 0.5 * d),\n\t\tx = d * (1 - Math.abs(((hue / 60) % 2) - 1)),\n\t\ti = Math.floor(hue / 60),\n\t\tm255x = m + 255 * x,\n\t\tm255d = m + 255 * d;\n\n\tswitch (i) {\n\tcase 0:\n\t\tred = m255d;\n\t\tgreen = m255x;\n\t\tblue = m;\n\t\tbreak;\n\tcase 1:\n\t\tred = m255x;\n\t\tgreen = m255d;\n\t\tblue = m;\n\t\tbreak;\n\tcase 2:\n\t\tred = m;\n\t\tgreen = m255d;\n\t\tblue = m255x;\n\t\tbreak;\n\tcase 3:\n\t\tred = m;\n\t\tgreen = m255x;\n\t\tblue = m255d;\n\t\tbreak;\n\tcase 4:\n\t\tred = m255x;\n\t\tgreen = m;\n\t\tblue = m255d;\n\t\tbreak;\n\tcase 5:\n\t\tred = m255d;\n\t\tgreen = m;\n\t\tblue = m255x;\n\t\tbreak;\n\tdefault:\n\t\tred = 0;\n\t\tgreen = 0;\n\t\tblue = 0;\n\t\tbreak;\n\t}\n\n\treturn {\n\t\tr: Math.round(red),\n\t\tg: Math.round(green),\n\t\tb: Math.round(blue),\n\t};\n};\n\nconst HEXToRGB = (hex: string): ColorRGB => {\n\t// Please make sure you pass a valid 6 digit hex color\n\t// In the implementation of this method we assume that the hex argument is a 6 digit valid hex color\n\n\treturn {\n\t\tr: parseInt(hex.substr(0, 2), 16),\n\t\tg: parseInt(hex.substr(2, 2), 16),\n\t\tb: parseInt(hex.substr(4, 2), 16),\n\t};\n};\n\n/**\n * Returns the hex value of the color as string\n * @param {Object} color Receives an object with the properties for each of the main colors(r, g, b)\n */\nconst RGBtoHEX = (color: ColorRGB): string => {\n\tconst hexMap = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\"];\n\tlet hexValue = \"#\";\n\n\tlet divisionNumber = color.r / 16;\n\tlet remainder = color.r % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\tdivisionNumber = color.g / 16;\n\tremainder = color.g % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\tdivisionNumber = color.b / 16;\n\tremainder = color.b % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\treturn hexValue;\n};\n\nconst RGBToHSL = (color: ColorRGB): ColorHSL => {\n\tconst R = color.r / 255,\n\t\tG = color.g / 255,\n\t\tB = color.b / 255,\n\t\tmax = Math.max(R, G, B),\n\t\tmin = Math.min(R, G, B),\n\t\tdelta = max - min;\n\n\tlet h = 0,\n\t\ts;\n\n\t// Hue calculation\n\tif (delta === 0) {\n\t\th = 0;\n\t} else if (max === R) {\n\t\th = 60 * (((G - B) / delta) % 6);\n\t} else if (max === G) {\n\t\th = 60 * (((B - R) / delta) + 2);\n\t} else if (max === B) {\n\t\th = 60 * (((R - G) / delta) + 4);\n\t}\n\n\t// Lightness calculation\n\tconst l = (max + min) / 2;\n\n\t// Saturation calculation\n\tif (delta === 0) {\n\t\ts = 0;\n\t} else {\n\t\ts = delta / (1 - Math.abs(2 * l - 1));\n\t}\n\n\treturn {\n\t\th,\n\t\ts,\n\t\tl,\n\t};\n};\n\nexport {\n\tgetRGBColor,\n\tHSLToRGB,\n\tHEXToRGB,\n\tRGBToHSL,\n\tRGBStringToRGBObject,\n\tRGBtoHEX,\n};\n\nexport type {\n\tColorHSL,\n\tColorRGB,\n};\n"]}
@@ -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,73 +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 = async 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 = async 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 = async (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
- /* eslint-disable no-await-in-loop */
39
-
40
- while (child) {
41
- const originalChild = child;
42
-
43
- if (child.isUI5Element) {
44
- child = await child.getFocusDomRefAsync();
45
- }
46
-
47
- if (!child) {
48
- return null;
49
- }
50
-
51
- if (child.nodeType === 1 && !isNodeHidden(child) && !isFocusTrap(child)) {
52
- if (isNodeClickable(child)) {
53
- return (child && typeof child.focus === "function") ? child : null;
54
- }
55
-
56
- focusableDescendant = await findFocusableElement(child, forward);
57
- if (focusableDescendant) {
58
- return (focusableDescendant && typeof focusableDescendant.focus === "function") ? focusableDescendant : null;
59
- }
60
- }
61
-
62
- child = forward ? originalChild.nextSibling : originalChild.previousSibling;
63
- }
64
-
65
- /* eslint-enable no-await-in-loop */
66
-
67
- return null;
19
+ const isElemFocusable = (el) => {
20
+ return el.hasAttribute("data-ui5-focus-redirect") || !isElementHidden(el);
68
21
  };
69
-
70
- export {
71
- getFirstFocusableElement,
72
- 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;
73
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":"AAAA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,MAAM,WAAW,GAAG,CAAC,EAAe,EAAE,EAAE;IACvC,OAAO,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,KAAK,EAAE,SAAsB,EAAE,kBAA4B,EAA2B,EAAE;IACxH,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;QAC7C,OAAO,IAAI,CAAC;KACZ;IAED,OAAO,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,KAAK,EAAE,SAAsB,EAAE,kBAA4B,EAA2B,EAAE;IACvH,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;QAC7C,OAAO,IAAI,CAAC;KACZ;IAED,OAAO,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAe,EAAE,EAAE;IAC3C,OAAO,EAAE,CAAC,YAAY,CAAC,yBAAyB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAsB,EAAE,OAAgB,EAAE,kBAA4B,EAA2B,EAAE;IACtI,IAAI,KAA8B,CAAC;IACnC,IAAI,gBAAgB,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IAEtB,IAAI,SAAS,CAAC,UAAU,EAAE;QACzB,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAwB,CAAC;KACjH;SAAM,IAAI,SAAS,YAAY,eAAe,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE;QAC7E,gBAAgB,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;QAC7C,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,KAAK,GAAG,gBAAgB,CAAC,YAAY,CAAgB,CAAC;KACtD;SAAM,IAAI,kBAAkB,EAAE;QAC9B,KAAK,GAAG,SAAS,CAAC;KAClB;SAAM;QACN,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAgC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAA+B,CAAC;KACzG;IAED,IAAI,mBAAmB,CAAC;IAExB,qCAAqC;IAErC,OAAO,KAAK,EAAE;QACb,MAAM,aAAa,GAA4B,KAAK,CAAC;QAErD,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE;YAChC,KAAK,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;SAC1C;QAED,IAAI,CAAC,KAAK,EAAE;YACX,OAAO,IAAI,CAAC;SACZ;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YAC1E,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;aACnE;YAED,mBAAmB,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjE,IAAI,mBAAmB,EAAE;gBACxB,OAAO,CAAC,mBAAmB,IAAI,OAAO,mBAAmB,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;aAC7G;SACD;QAED,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,WAA0B,CAAC,CAAC,CAAC,aAAa,CAAC,eAA8B,CAAC;QAE1G,sEAAsE;QACtE,0HAA0H;QAC1H,sFAAsF;QACtF,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACxE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;YAE7D,KAAK,GAAG,gBAAgB,CAAC,YAAY,CAAgB,CAAC;SACtD;KACD;IAED,oCAAoC;IAEpC,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,OAAO,EACN,wBAAwB,EACxB,uBAAuB,GACvB,CAAC","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-announcement-area").appendChild(politeSpan);
29
+ getSingletonElementInstance("ui5-announcement-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,uBAAuB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7E,2BAA2B,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AACjF,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-announcement-area\").appendChild(politeSpan);\n\tgetSingletonElementInstance(\"ui5-announcement-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,5 @@
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
+ export { getFocusedElement, isClickInRect, getClosedPopupParent, isFocusedElementWithinNode, };
@@ -1,93 +1,60 @@
1
- import getSharedResource from "../getSharedResource.js";
2
- import { getFeature } from "../FeaturesRegistry.js";
3
1
  import getActiveElement from "./getActiveElement.js";
4
-
5
- const PopupUtilsData = getSharedResource("PopupUtilsData", {});
6
- PopupUtilsData.currentZIndex = PopupUtilsData.currentZIndex || 100;
7
-
8
2
  const getFocusedElement = () => {
9
- const element = getActiveElement();
10
- return (element && typeof element.focus === "function") ? element : null;
3
+ const element = getActiveElement();
4
+ return (element && typeof element.focus === "function") ? element : null;
11
5
  };
12
-
13
- const isFocusedElementWithinNode = node => {
14
- const fe = getFocusedElement();
15
-
16
- if (fe) {
17
- return isNodeContainedWithin(node, fe);
18
- }
19
-
20
- return false;
6
+ const isFocusedElementWithinNode = (node) => {
7
+ const fe = getFocusedElement();
8
+ if (fe) {
9
+ return isNodeContainedWithin(node, fe);
10
+ }
11
+ return false;
21
12
  };
22
-
23
13
  const isNodeContainedWithin = (parent, child) => {
24
- let currentNode = parent;
25
-
26
- if (currentNode.shadowRoot) {
27
- currentNode = Array.from(currentNode.shadowRoot.children).find(n => n.localName !== "style");
28
- }
29
-
30
- if (currentNode === child) {
31
- return true;
32
- }
33
-
34
- const childNodes = currentNode.localName === "slot" ? currentNode.assignedNodes() : currentNode.children;
35
-
36
- if (childNodes) {
37
- return Array.from(childNodes).some(n => isNodeContainedWithin(n, child));
38
- }
14
+ let currentNode = parent;
15
+ if (currentNode.shadowRoot) {
16
+ const children = Array.from(currentNode.shadowRoot.children);
17
+ currentNode = children.find(n => n.localName !== "style");
18
+ if (!currentNode) {
19
+ return false;
20
+ }
21
+ }
22
+ if (currentNode === child) {
23
+ return true;
24
+ }
25
+ const childNodes = currentNode.localName === "slot" ? currentNode.assignedNodes() : currentNode.children;
26
+ if (childNodes) {
27
+ return Array.from(childNodes).some(n => isNodeContainedWithin(n, child));
28
+ }
29
+ return false;
39
30
  };
40
-
41
31
  const isPointInRect = (x, y, rect) => {
42
- return x >= rect.left && x <= rect.right
43
- && y >= rect.top && y <= rect.bottom;
44
- };
45
-
46
- const isClickInRect = (event, rect) => {
47
- let x;
48
- let y;
49
-
50
- if (event.touches) {
51
- const touch = event.touches[0];
52
- x = touch.clientX;
53
- y = touch.clientY;
54
- } else {
55
- x = event.clientX;
56
- y = event.clientY;
57
- }
58
-
59
- return isPointInRect(x, y, rect);
60
- };
61
-
62
- const getClosedPopupParent = el => {
63
- const parent = el.parentElement || (el.getRootNode && el.getRootNode().host);
64
-
65
- if (parent && ((parent.openBy && parent.isUI5Element) || (parent.open && parent.isUI5Element) || parent === document.documentElement)) {
66
- return parent;
67
- }
68
-
69
- return getClosedPopupParent(parent);
70
- };
71
-
72
- const getNextZIndex = () => {
73
- const OpenUI5Support = getFeature("OpenUI5Support");
74
- if (OpenUI5Support && OpenUI5Support.isLoaded()) { // use OpenUI5 for getting z-index values, if loaded
75
- return OpenUI5Support.getNextZIndex();
76
- }
77
-
78
- PopupUtilsData.currentZIndex += 2;
79
- return PopupUtilsData.currentZIndex;
80
- };
81
-
82
- const getCurrentZIndex = () => {
83
- return PopupUtilsData.currentZIndex;
84
- };
85
-
86
- export {
87
- getFocusedElement,
88
- isClickInRect,
89
- getClosedPopupParent,
90
- getNextZIndex,
91
- getCurrentZIndex,
92
- isFocusedElementWithinNode,
93
- };
32
+ return x >= rect.left && x <= rect.right
33
+ && y >= rect.top && y <= rect.bottom;
34
+ };
35
+ const isClickInRect = (e, rect) => {
36
+ let x;
37
+ let y;
38
+ if (e instanceof MouseEvent) {
39
+ x = e.clientX;
40
+ y = e.clientY;
41
+ }
42
+ else {
43
+ const touch = e.touches[0];
44
+ x = touch.clientX;
45
+ y = touch.clientY;
46
+ }
47
+ return isPointInRect(x, y, rect);
48
+ };
49
+ function instanceOfPopup(object) {
50
+ return "isUI5Element" in object && "_show" in object;
51
+ }
52
+ const getClosedPopupParent = (el) => {
53
+ const parent = el.parentElement || (el.getRootNode && el.getRootNode().host);
54
+ if (parent && ((instanceOfPopup(parent) || parent === document.documentElement))) {
55
+ return parent;
56
+ }
57
+ return getClosedPopupParent(parent);
58
+ };
59
+ export { getFocusedElement, isClickInRect, getClosedPopupParent, isFocusedElementWithinNode, };
60
+ //# 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 getActiveElement from \"./getActiveElement.js\";\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\nexport {\n\tgetFocusedElement,\n\tisClickInRect,\n\tgetClosedPopupParent,\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, };
@@ -3,41 +3,28 @@
3
3
  * @param node Text node or HTML element
4
4
  * @returns {string}
5
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
-
12
- // Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)
13
- const slot = node.getAttribute("slot");
14
- if (slot) {
15
- const match = slot.match(/^(.+?)-\d+$/);
16
- return match ? match[1] : slot;
17
- }
18
-
19
- // Use default slot as a fallback
20
- return "default";
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";
21
19
  };
22
-
23
- const isSlot = el => el && el instanceof HTMLElement && el.localName === "slot";
24
-
25
- const getSlottedElements = el => {
26
- if (isSlot(el)) {
27
- return el.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);
28
- }
29
-
30
- return [el];
20
+ const getSlottedNodes = (node) => {
21
+ if (node instanceof HTMLSlotElement) {
22
+ return node.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);
23
+ }
24
+ return [node];
31
25
  };
32
-
33
- const getSlottedElementsList = elList => {
34
- const reducer = (acc, curr) => acc.concat(getSlottedElements(curr));
35
- return elList.reduce(reducer, []);
36
- };
37
-
38
- export {
39
- getSlotName,
40
- isSlot,
41
- getSlottedElements,
42
- getSlottedElementsList,
26
+ const getSlottedNodesList = (nodeList) => {
27
+ return nodeList.reduce((acc, curr) => acc.concat(getSlottedNodes(curr)), []);
43
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"]}