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

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 (689) hide show
  1. package/.eslintignore +8 -3
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +1160 -0
  4. package/README.md +58 -7
  5. package/bundle.esm.js +36 -18
  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 -9
  10. package/dist/AssetRegistry.js.map +1 -0
  11. package/dist/Boot.d.ts +9 -0
  12. package/dist/Boot.js +71 -0
  13. package/dist/Boot.js.map +1 -0
  14. package/dist/CSP.d.ts +30 -0
  15. package/dist/CSP.js +51 -0
  16. package/dist/CSP.js.map +1 -0
  17. package/dist/CustomElementsRegistry.d.ts +5 -0
  18. package/dist/CustomElementsRegistry.js +73 -18
  19. package/dist/CustomElementsRegistry.js.map +1 -0
  20. package/dist/CustomElementsScope.d.ts +7 -0
  21. package/dist/CustomElementsScope.js +11 -0
  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 -70
  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 +27 -0
  42. package/dist/IgnoreCustomElements.js +39 -0
  43. package/dist/IgnoreCustomElements.js.map +1 -0
  44. package/dist/InitialConfiguration.d.ts +28 -0
  45. package/dist/InitialConfiguration.js +133 -103
  46. package/dist/InitialConfiguration.js.map +1 -0
  47. package/dist/Keys.d.ts +61 -0
  48. package/dist/Keys.js +177 -157
  49. package/dist/Keys.js.map +1 -0
  50. package/dist/ManagedStyles.d.ts +9 -0
  51. package/dist/ManagedStyles.js +153 -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 +37 -0
  57. package/dist/MediaRange.js +98 -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 +53 -39
  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 -38
  73. package/dist/StaticArea.js.map +1 -0
  74. package/dist/StaticAreaItem.d.ts +37 -0
  75. package/dist/StaticAreaItem.js +95 -98
  76. package/dist/StaticAreaItem.js.map +1 -0
  77. package/dist/SystemCSSVars.d.ts +2 -0
  78. package/dist/SystemCSSVars.js +9 -0
  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 +394 -0
  84. package/dist/UI5Element.js +964 -906
  85. package/dist/UI5Element.js.map +1 -0
  86. package/dist/UI5ElementMetadata.d.ts +151 -0
  87. package/dist/UI5ElementMetadata.js +278 -158
  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/api.json +1 -0
  105. package/dist/asset-registries/Icons.d.ts +39 -0
  106. package/dist/asset-registries/Icons.js +136 -24
  107. package/dist/asset-registries/Icons.js.map +1 -0
  108. package/dist/asset-registries/Illustrations.d.ts +18 -0
  109. package/dist/asset-registries/Illustrations.js +84 -0
  110. package/dist/asset-registries/Illustrations.js.map +1 -0
  111. package/dist/asset-registries/LocaleData.d.ts +7 -0
  112. package/dist/asset-registries/LocaleData.js +125 -114
  113. package/dist/asset-registries/LocaleData.js.map +1 -0
  114. package/dist/asset-registries/Themes.d.ts +12 -0
  115. package/dist/asset-registries/Themes.js +58 -77
  116. package/dist/asset-registries/Themes.js.map +1 -0
  117. package/dist/asset-registries/i18n.d.ts +23 -0
  118. package/dist/asset-registries/i18n.js +81 -58
  119. package/dist/asset-registries/i18n.js.map +1 -0
  120. package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
  121. package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
  122. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  123. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  124. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  125. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  126. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  127. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  128. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  129. package/dist/config/AnimationMode.d.ts +14 -0
  130. package/dist/config/AnimationMode.js +23 -10
  131. package/dist/config/AnimationMode.js.map +1 -0
  132. package/dist/config/CalendarType.d.ts +15 -0
  133. package/dist/config/CalendarType.js +31 -14
  134. package/dist/config/CalendarType.js.map +1 -0
  135. package/dist/config/FormatSettings.d.ts +15 -0
  136. package/dist/config/FormatSettings.js +15 -9
  137. package/dist/config/FormatSettings.js.map +1 -0
  138. package/dist/config/Icons.d.ts +40 -0
  139. package/dist/config/Icons.js +44 -0
  140. package/dist/config/Icons.js.map +1 -0
  141. package/dist/config/Language.d.ts +40 -0
  142. package/dist/config/Language.js +66 -10
  143. package/dist/config/Language.js.map +1 -0
  144. package/dist/config/NoConflict.d.ts +20 -0
  145. package/dist/config/NoConflict.js +41 -41
  146. package/dist/config/NoConflict.js.map +1 -0
  147. package/dist/config/RTL.d.ts +7 -0
  148. package/dist/config/RTL.js +26 -20
  149. package/dist/config/RTL.js.map +1 -0
  150. package/dist/config/Theme.d.ts +38 -0
  151. package/dist/config/Theme.js +64 -22
  152. package/dist/config/Theme.js.map +1 -0
  153. package/dist/config/ThemeRoot.d.ts +29 -0
  154. package/dist/config/ThemeRoot.js +59 -0
  155. package/dist/config/ThemeRoot.js.map +1 -0
  156. package/dist/config/Timezone.d.ts +17 -0
  157. package/dist/config/Timezone.js +30 -0
  158. package/dist/config/Timezone.js.map +1 -0
  159. package/dist/connectToComponent.d.ts +9 -0
  160. package/dist/connectToComponent.js +59 -0
  161. package/dist/connectToComponent.js.map +1 -0
  162. package/dist/css/BusyIndicator.css +80 -0
  163. package/dist/css/FontFace.css +96 -0
  164. package/dist/css/OverrideFontFace.css +32 -0
  165. package/dist/css/SystemCSSVars.css +17 -0
  166. package/dist/decorators/customElement.d.ts +23 -0
  167. package/dist/decorators/customElement.js +37 -0
  168. package/dist/decorators/customElement.js.map +1 -0
  169. package/dist/decorators/event.d.ts +10 -0
  170. package/dist/decorators/event.js +24 -0
  171. package/dist/decorators/event.js.map +1 -0
  172. package/dist/decorators/property.d.ts +9 -0
  173. package/dist/decorators/property.js +24 -0
  174. package/dist/decorators/property.js.map +1 -0
  175. package/dist/decorators/slot.d.ts +9 -0
  176. package/dist/decorators/slot.js +37 -0
  177. package/dist/decorators/slot.js.map +1 -0
  178. package/dist/delegate/ItemNavigation.d.ts +114 -0
  179. package/dist/delegate/ItemNavigation.js +311 -274
  180. package/dist/delegate/ItemNavigation.js.map +1 -0
  181. package/dist/delegate/ResizeHandler.d.ts +25 -0
  182. package/dist/delegate/ResizeHandler.js +84 -63
  183. package/dist/delegate/ResizeHandler.js.map +1 -0
  184. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  185. package/dist/delegate/ScrollEnablement.js +159 -153
  186. package/dist/delegate/ScrollEnablement.js.map +1 -0
  187. package/dist/features/F6Navigation.d.ts +19 -0
  188. package/dist/features/F6Navigation.js +151 -0
  189. package/dist/features/F6Navigation.js.map +1 -0
  190. package/dist/features/LegacyDateFormats.d.ts +18 -0
  191. package/dist/features/LegacyDateFormats.js +20 -0
  192. package/dist/features/LegacyDateFormats.js.map +1 -0
  193. package/dist/features/OpenUI5Element.d.ts +9 -0
  194. package/dist/features/OpenUI5Element.js +5 -0
  195. package/dist/features/OpenUI5Element.js.map +1 -0
  196. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  197. package/dist/features/OpenUI5Enablement.js +96 -0
  198. package/dist/features/OpenUI5Enablement.js.map +1 -0
  199. package/dist/features/OpenUI5Support.d.ts +36 -0
  200. package/dist/features/OpenUI5Support.js +152 -87
  201. package/dist/features/OpenUI5Support.js.map +1 -0
  202. package/dist/generated/AssetParameters.d.ts +6 -0
  203. package/dist/generated/AssetParameters.js +4 -9
  204. package/dist/generated/AssetParameters.js.map +1 -0
  205. package/dist/generated/VersionInfo.d.ts +10 -0
  206. package/dist/generated/VersionInfo.js +11 -0
  207. package/dist/generated/VersionInfo.js.map +1 -0
  208. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  209. package/dist/generated/css/BusyIndicator.css.js +7 -0
  210. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  211. package/dist/generated/css/FontFace.css.d.ts +3 -0
  212. package/dist/generated/css/FontFace.css.js +7 -0
  213. package/dist/generated/css/FontFace.css.js.map +1 -0
  214. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  215. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  216. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  217. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  218. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  219. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  220. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
  221. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
  222. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
  223. package/dist/getSharedResource.d.ts +11 -0
  224. package/dist/getSharedResource.js +40 -0
  225. package/dist/getSharedResource.js.map +1 -0
  226. package/dist/global.d.ts +40 -0
  227. package/dist/i18nBundle.d.ts +43 -0
  228. package/dist/i18nBundle.js +74 -28
  229. package/dist/i18nBundle.js.map +1 -0
  230. package/dist/locale/Locale.d.ts +22 -0
  231. package/dist/locale/Locale.js +75 -87
  232. package/dist/locale/Locale.js.map +1 -0
  233. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  234. package/dist/locale/RTLAwareRegistry.js +9 -0
  235. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  236. package/dist/locale/applyDirection.d.ts +10 -0
  237. package/dist/locale/applyDirection.js +17 -0
  238. package/dist/locale/applyDirection.js.map +1 -0
  239. package/dist/locale/directionChange.d.ts +15 -0
  240. package/dist/locale/directionChange.js +24 -0
  241. package/dist/locale/directionChange.js.map +1 -0
  242. package/dist/locale/getEffectiveDir.d.ts +2 -0
  243. package/dist/locale/getEffectiveDir.js +24 -0
  244. package/dist/locale/getEffectiveDir.js.map +1 -0
  245. package/dist/locale/getLocale.d.ts +7 -0
  246. package/dist/locale/getLocale.js +28 -21
  247. package/dist/locale/getLocale.js.map +1 -0
  248. package/dist/locale/languageChange.d.ts +5 -0
  249. package/dist/locale/languageChange.js +14 -0
  250. package/dist/locale/languageChange.js.map +1 -0
  251. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  252. package/dist/locale/nextFallbackLocale.js +15 -19
  253. package/dist/locale/nextFallbackLocale.js.map +1 -0
  254. package/dist/locale/normalizeLocale.d.ts +7 -0
  255. package/dist/locale/normalizeLocale.js +34 -41
  256. package/dist/locale/normalizeLocale.js.map +1 -0
  257. package/dist/renderer/LitRenderer.d.ts +14 -0
  258. package/dist/renderer/LitRenderer.js +38 -12
  259. package/dist/renderer/LitRenderer.js.map +1 -0
  260. package/dist/renderer/directives/style-map.js +72 -0
  261. package/dist/renderer/executeTemplate.d.ts +13 -0
  262. package/dist/renderer/executeTemplate.js +30 -0
  263. package/dist/renderer/executeTemplate.js.map +1 -0
  264. package/dist/sap/base/Log.js +240 -0
  265. package/dist/sap/base/assert.js +7 -0
  266. package/dist/sap/base/security/URLListValidator.js +159 -0
  267. package/dist/sap/base/security/encodeCSS.js +14 -0
  268. package/dist/sap/base/security/encodeXML.js +23 -0
  269. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  270. package/dist/sap/base/strings/toHex.js +8 -0
  271. package/dist/sap/base/util/now.js +7 -0
  272. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  273. package/dist/theming/CustomStyle.d.ts +6 -0
  274. package/dist/theming/CustomStyle.js +46 -17
  275. package/dist/theming/CustomStyle.js.map +1 -0
  276. package/dist/theming/ThemeLoaded.d.ts +5 -0
  277. package/dist/theming/ThemeLoaded.js +14 -0
  278. package/dist/theming/ThemeLoaded.js.map +1 -0
  279. package/dist/theming/ThemeRegistered.d.ts +4 -0
  280. package/dist/theming/ThemeRegistered.js +11 -0
  281. package/dist/theming/ThemeRegistered.js.map +1 -0
  282. package/dist/theming/applyTheme.d.ts +2 -0
  283. package/dist/theming/applyTheme.js +64 -69
  284. package/dist/theming/applyTheme.js.map +1 -0
  285. package/dist/theming/getConstructableStyle.d.ts +9 -0
  286. package/dist/theming/getConstructableStyle.js +15 -15
  287. package/dist/theming/getConstructableStyle.js.map +1 -0
  288. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  289. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  290. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  291. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  292. package/dist/theming/getEffectiveStyle.js +30 -13
  293. package/dist/theming/getEffectiveStyle.js.map +1 -0
  294. package/dist/theming/getStylesString.d.ts +3 -0
  295. package/dist/theming/getStylesString.js +11 -0
  296. package/dist/theming/getStylesString.js.map +1 -0
  297. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  298. package/dist/theming/getThemeDesignerTheme.js +73 -60
  299. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  300. package/dist/theming/preloadLinks.d.ts +3 -0
  301. package/dist/theming/preloadLinks.js +19 -0
  302. package/dist/theming/preloadLinks.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 +32 -0
  313. package/dist/types/AnimationMode.js +33 -6
  314. package/dist/types/AnimationMode.js.map +1 -0
  315. package/dist/types/CSSColor.d.ts +15 -0
  316. package/dist/types/CSSColor.js +18 -0
  317. package/dist/types/CSSColor.js.map +1 -0
  318. package/dist/types/CSSSize.d.ts +15 -0
  319. package/dist/types/CSSSize.js +14 -5
  320. package/dist/types/CSSSize.js.map +1 -0
  321. package/dist/types/CalendarType.d.ts +37 -0
  322. package/dist/types/CalendarType.js +35 -18
  323. package/dist/types/CalendarType.js.map +1 -0
  324. package/dist/types/DOMReference.d.ts +17 -0
  325. package/dist/types/DOMReference.js +25 -0
  326. package/dist/types/DOMReference.js.map +1 -0
  327. package/dist/types/DataType.d.ts +25 -0
  328. package/dist/types/DataType.js +33 -14
  329. package/dist/types/DataType.js.map +1 -0
  330. package/dist/types/Float.d.ts +17 -0
  331. package/dist/types/Float.js +21 -0
  332. package/dist/types/Float.js.map +1 -0
  333. package/dist/types/Integer.d.ts +17 -0
  334. package/dist/types/Integer.js +17 -5
  335. package/dist/types/Integer.js.map +1 -0
  336. package/dist/types/InvisibleMessageMode.d.ts +26 -0
  337. package/dist/types/InvisibleMessageMode.js +26 -0
  338. package/dist/types/InvisibleMessageMode.js.map +1 -0
  339. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  340. package/dist/types/ItemNavigationBehavior.js +22 -17
  341. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  342. package/dist/types/NavigationMode.d.ts +32 -0
  343. package/dist/types/NavigationMode.js +33 -5
  344. package/dist/types/NavigationMode.js.map +1 -0
  345. package/dist/types/ValueState.d.ts +42 -0
  346. package/dist/types/ValueState.js +41 -19
  347. package/dist/types/ValueState.js.map +1 -0
  348. package/dist/types.d.ts +18 -0
  349. package/dist/types.js +2 -0
  350. package/dist/types.js.map +1 -0
  351. package/dist/updateShadowRoot.d.ts +8 -0
  352. package/dist/updateShadowRoot.js +42 -0
  353. package/dist/updateShadowRoot.js.map +1 -0
  354. package/dist/util/AriaLabelHelper.d.ts +15 -0
  355. package/dist/util/AriaLabelHelper.js +171 -0
  356. package/dist/util/AriaLabelHelper.js.map +1 -0
  357. package/dist/util/Caret.d.ts +7 -0
  358. package/dist/util/Caret.js +23 -0
  359. package/dist/util/Caret.js.map +1 -0
  360. package/dist/util/ColorConversion.d.ts +30 -0
  361. package/dist/util/ColorConversion.js +342 -0
  362. package/dist/util/ColorConversion.js.map +1 -0
  363. package/dist/util/FetchHelper.d.ts +3 -0
  364. package/dist/util/FetchHelper.js +19 -25
  365. package/dist/util/FetchHelper.js.map +1 -0
  366. package/dist/util/FocusableElements.d.ts +4 -0
  367. package/dist/util/FocusableElements.js +68 -56
  368. package/dist/util/FocusableElements.js.map +1 -0
  369. package/dist/util/HTMLSanitizer.d.ts +3 -0
  370. package/dist/util/HTMLSanitizer.js +6 -0
  371. package/dist/util/HTMLSanitizer.js.map +1 -0
  372. package/dist/util/InvisibleMessage.d.ts +10 -0
  373. package/dist/util/InvisibleMessage.js +56 -0
  374. package/dist/util/InvisibleMessage.js.map +1 -0
  375. package/dist/util/PopupUtils.d.ts +7 -0
  376. package/dist/util/PopupUtils.js +74 -0
  377. package/dist/util/PopupUtils.js.map +1 -0
  378. package/dist/util/SlotsHelper.d.ts +9 -0
  379. package/dist/util/SlotsHelper.js +30 -0
  380. package/dist/util/SlotsHelper.js.map +1 -0
  381. package/dist/util/StringHelper.d.ts +3 -0
  382. package/dist/util/StringHelper.js +17 -20
  383. package/dist/util/StringHelper.js.map +1 -0
  384. package/dist/util/TabbableElements.d.ts +17 -0
  385. package/dist/util/TabbableElements.js +53 -43
  386. package/dist/util/TabbableElements.js.map +1 -0
  387. package/dist/util/arraysAreEqual.d.ts +2 -0
  388. package/dist/util/arraysAreEqual.js +13 -0
  389. package/dist/util/arraysAreEqual.js.map +1 -0
  390. package/dist/util/clamp.d.ts +9 -0
  391. package/dist/util/clamp.js +12 -0
  392. package/dist/util/clamp.js.map +1 -0
  393. package/dist/util/createLinkInHead.d.ts +7 -0
  394. package/dist/util/createLinkInHead.js +21 -0
  395. package/dist/util/createLinkInHead.js.map +1 -0
  396. package/dist/util/createStyleInHead.d.ts +8 -0
  397. package/dist/util/createStyleInHead.js +10 -10
  398. package/dist/util/createStyleInHead.js.map +1 -0
  399. package/dist/util/debounce.d.ts +2 -0
  400. package/dist/util/debounce.js +15 -0
  401. package/dist/util/debounce.js.map +1 -0
  402. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  403. package/dist/util/detectNavigatorLanguage.js +7 -10
  404. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  405. package/dist/util/escapeRegex.d.ts +8 -0
  406. package/dist/util/escapeRegex.js +11 -0
  407. package/dist/util/escapeRegex.js.map +1 -0
  408. package/dist/util/formatMessage.d.ts +2 -0
  409. package/dist/util/formatMessage.js +15 -19
  410. package/dist/util/formatMessage.js.map +1 -0
  411. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  412. package/dist/util/generateHighlightedMarkup.js +41 -0
  413. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  414. package/dist/util/getActiveElement.d.ts +2 -0
  415. package/dist/util/getActiveElement.js +9 -0
  416. package/dist/util/getActiveElement.js.map +1 -0
  417. package/dist/util/getClassCopy.d.ts +416 -0
  418. package/dist/util/getClassCopy.js +10 -0
  419. package/dist/util/getClassCopy.js.map +1 -0
  420. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  421. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  422. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  423. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  424. package/dist/util/getEffectiveContentDensity.js +4 -0
  425. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  426. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  427. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  428. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  429. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  430. package/dist/util/getFastNavigationGroups.js +51 -0
  431. package/dist/util/getFastNavigationGroups.js.map +1 -0
  432. package/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
  433. package/dist/util/getFileExtension.js +9 -11
  434. package/dist/util/getFileExtension.js.map +1 -0
  435. package/dist/util/getNormalizedTarget.d.ts +7 -0
  436. package/dist/util/getNormalizedTarget.js +14 -0
  437. package/dist/util/getNormalizedTarget.js.map +1 -0
  438. package/dist/util/getParentElement.d.ts +2 -0
  439. package/dist/util/getParentElement.js +5 -0
  440. package/dist/util/getParentElement.js.map +1 -0
  441. package/dist/util/getSingletonElementInstance.d.ts +11 -0
  442. package/dist/util/getSingletonElementInstance.js +19 -0
  443. package/dist/util/getSingletonElementInstance.js.map +1 -0
  444. package/dist/util/isElementClickable.d.ts +2 -0
  445. package/dist/util/isElementClickable.js +16 -0
  446. package/dist/util/isElementClickable.js.map +1 -0
  447. package/dist/util/isElementContainingBlock.d.ts +2 -0
  448. package/dist/util/isElementContainingBlock.js +11 -0
  449. package/dist/util/isElementContainingBlock.js.map +1 -0
  450. package/dist/util/isElementHidden.d.ts +2 -0
  451. package/dist/util/isElementHidden.js +8 -0
  452. package/dist/util/isElementHidden.js.map +1 -0
  453. package/dist/util/isElementInView.d.ts +6 -0
  454. package/dist/util/isElementInView.js +12 -0
  455. package/dist/util/isElementInView.js.map +1 -0
  456. package/dist/util/isElementTabbable.d.ts +9 -0
  457. package/dist/util/isElementTabbable.js +30 -0
  458. package/dist/util/isElementTabbable.js.map +1 -0
  459. package/dist/util/isValidPropertyName.d.ts +8 -0
  460. package/dist/util/isValidPropertyName.js +19 -14
  461. package/dist/util/isValidPropertyName.js.map +1 -0
  462. package/dist/util/whenDOMReady.d.ts +2 -0
  463. package/dist/util/whenDOMReady.js +11 -10
  464. package/dist/util/whenDOMReady.js.map +1 -0
  465. package/dist/util/willShowContent.d.ts +2 -0
  466. package/dist/util/willShowContent.js +7 -0
  467. package/dist/util/willShowContent.js.map +1 -0
  468. package/dist/validateThemeRoot.d.ts +2 -0
  469. package/dist/validateThemeRoot.js +48 -0
  470. package/dist/validateThemeRoot.js.map +1 -0
  471. package/index.js +228 -2
  472. package/lib/generate-asset-parameters/index.js +11 -6
  473. package/lib/generate-styles/index.js +31 -0
  474. package/lib/generate-version-info/index.js +32 -0
  475. package/package-scripts.cjs +70 -0
  476. package/package.json +25 -13
  477. package/src/css/BusyIndicator.css +80 -0
  478. package/src/css/FontFace.css +96 -0
  479. package/src/css/OverrideFontFace.css +32 -0
  480. package/src/css/SystemCSSVars.css +17 -0
  481. package/src/renderer/directives/style-map.js +72 -0
  482. package/tsconfig.json +17 -0
  483. package/used-modules.txt +10 -0
  484. package/bundle.es5.js +0 -28
  485. package/config/rollup.config.js +0 -1
  486. package/config/wdio.conf.js +0 -1
  487. package/dist/RenderScheduler.js +0 -146
  488. package/dist/SVGIconRegistry.js +0 -60
  489. package/dist/animations/config.js +0 -5
  490. package/dist/boot.js +0 -32
  491. package/dist/compatibility/DOMObserver.js +0 -62
  492. package/dist/compatibility/patchNodeValue.js +0 -24
  493. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  494. package/dist/delegate/CustomResize.js +0 -78
  495. package/dist/delegate/NativeResize.js +0 -44
  496. package/dist/features/browsersupport/Edge.js +0 -6
  497. package/dist/features/browsersupport/IE11.js +0 -41
  498. package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  499. package/dist/renderer/ifDefined.js +0 -21
  500. package/dist/resources/bundle.es5.js +0 -212
  501. package/dist/resources/bundle.es5.js.map +0 -1
  502. package/dist/resources/bundle.esm.js +0 -129
  503. package/dist/resources/bundle.esm.js.map +0 -1
  504. package/dist/test-resources/assets/Themes.js +0 -13
  505. package/dist/test-resources/elements/Child.js +0 -35
  506. package/dist/test-resources/elements/Generic.js +0 -84
  507. package/dist/test-resources/elements/GenericExt.js +0 -26
  508. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  509. package/dist/test-resources/elements/Parent.js +0 -37
  510. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  511. package/dist/test-resources/pages/AllTestElements.html +0 -42
  512. package/dist/test-resources/pages/Configuration.html +0 -20
  513. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  514. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  515. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  516. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  517. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  518. package/dist/test-resources/specs/StaticArea.spec.js +0 -34
  519. package/dist/test-resources/specs/Theming.spec.js +0 -31
  520. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  521. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  522. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  523. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  524. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  525. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  526. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  527. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  528. package/dist/theming/CSSVarsPonyfill.js +0 -24
  529. package/dist/theming/adaptCSSForIE.js +0 -90
  530. package/dist/theming/createComponentStyleTag.js +0 -49
  531. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  532. package/dist/thirdparty/Array.from.js +0 -16
  533. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  534. package/dist/thirdparty/Array.prototype.find.js +0 -46
  535. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  536. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  537. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  538. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  539. package/dist/thirdparty/Number.isInteger.js +0 -5
  540. package/dist/thirdparty/Number.isNaN.js +0 -1
  541. package/dist/thirdparty/Number.parseInt.js +0 -1
  542. package/dist/thirdparty/Object.assign.js +0 -31
  543. package/dist/thirdparty/Object.entries.js +0 -11
  544. package/dist/thirdparty/Symbol.js +0 -2
  545. package/dist/thirdparty/WeakSet.js +0 -27
  546. package/dist/thirdparty/es6-string-methods.js +0 -182
  547. package/dist/thirdparty/events-polyfills.js +0 -89
  548. package/dist/thirdparty/fetch.js +0 -1
  549. package/dist/thirdparty/template.js +0 -600
  550. package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  551. package/dist/types/PopupState.js +0 -37
  552. package/dist/util/findNodeOwner.js +0 -35
  553. package/dist/util/isDescendantOf.js +0 -15
  554. package/dist/util/isNodeClickable.js +0 -19
  555. package/dist/util/isNodeHidden.js +0 -13
  556. package/dist/util/isNodeTabbable.js +0 -28
  557. package/dist/util/isSlot.js +0 -3
  558. package/dist/webcomponentsjs/LICENSE.md +0 -19
  559. package/dist/webcomponentsjs/README.md +0 -229
  560. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  561. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  562. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  563. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  564. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  565. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  566. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  567. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  568. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  569. package/dist/webcomponentsjs/package.json +0 -46
  570. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  571. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  572. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  573. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  574. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  575. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  576. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  577. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  578. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  579. package/package-scripts.js +0 -47
  580. package/src/AssetRegistry.js +0 -9
  581. package/src/CustomElementsRegistry.js +0 -23
  582. package/src/Device.js +0 -823
  583. package/src/EventProvider.js +0 -73
  584. package/src/FeaturesRegistry.js +0 -11
  585. package/src/FontFace.js +0 -73
  586. package/src/InitialConfiguration.js +0 -131
  587. package/src/Keys.js +0 -161
  588. package/src/RenderQueue.js +0 -42
  589. package/src/RenderScheduler.js +0 -146
  590. package/src/SVGIconRegistry.js +0 -60
  591. package/src/StaticArea.js +0 -41
  592. package/src/StaticAreaItem.js +0 -105
  593. package/src/Theming.js +0 -3
  594. package/src/UI5Element.js +0 -926
  595. package/src/UI5ElementMetadata.js +0 -171
  596. package/src/animations/AnimationQueue.js +0 -42
  597. package/src/animations/animate.js +0 -53
  598. package/src/animations/config.js +0 -5
  599. package/src/animations/scroll.js +0 -28
  600. package/src/animations/slideDown.js +0 -79
  601. package/src/animations/slideUp.js +0 -71
  602. package/src/asset-registries/Icons.js +0 -24
  603. package/src/asset-registries/LocaleData.js +0 -125
  604. package/src/asset-registries/Themes.js +0 -87
  605. package/src/asset-registries/i18n.js +0 -79
  606. package/src/boot.js +0 -32
  607. package/src/compatibility/DOMObserver.js +0 -62
  608. package/src/compatibility/patchNodeValue.js +0 -24
  609. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  610. package/src/config/AnimationMode.js +0 -13
  611. package/src/config/CalendarType.js +0 -18
  612. package/src/config/FormatSettings.js +0 -13
  613. package/src/config/Language.js +0 -12
  614. package/src/config/NoConflict.js +0 -51
  615. package/src/config/RTL.js +0 -31
  616. package/src/config/Theme.js +0 -28
  617. package/src/delegate/CustomResize.js +0 -78
  618. package/src/delegate/ItemNavigation.js +0 -278
  619. package/src/delegate/NativeResize.js +0 -44
  620. package/src/delegate/ResizeHandler.js +0 -66
  621. package/src/delegate/ScrollEnablement.js +0 -159
  622. package/src/features/OpenUI5Support.js +0 -90
  623. package/src/features/browsersupport/Edge.js +0 -6
  624. package/src/features/browsersupport/IE11.js +0 -41
  625. package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
  626. package/src/i18nBundle.js +0 -33
  627. package/src/locale/Locale.js +0 -91
  628. package/src/locale/getLocale.js +0 -31
  629. package/src/locale/nextFallbackLocale.js +0 -28
  630. package/src/locale/normalizeLocale.js +0 -54
  631. package/src/renderer/LitRenderer.js +0 -15
  632. package/src/renderer/ifDefined.js +0 -21
  633. package/src/theming/CSSVarsPonyfill.js +0 -24
  634. package/src/theming/CustomStyle.js +0 -19
  635. package/src/theming/adaptCSSForIE.js +0 -90
  636. package/src/theming/applyTheme.js +0 -81
  637. package/src/theming/createComponentStyleTag.js +0 -49
  638. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  639. package/src/theming/getConstructableStyle.js +0 -25
  640. package/src/theming/getEffectiveStyle.js +0 -15
  641. package/src/theming/getThemeDesignerTheme.js +0 -67
  642. package/src/thirdparty/Array.from.js +0 -16
  643. package/src/thirdparty/Array.prototype.fill.js +0 -44
  644. package/src/thirdparty/Array.prototype.find.js +0 -46
  645. package/src/thirdparty/Array.prototype.includes.js +0 -51
  646. package/src/thirdparty/Element.prototype.closest.js +0 -11
  647. package/src/thirdparty/Element.prototype.matches.js +0 -6
  648. package/src/thirdparty/Map.prototype.keys.js +0 -9
  649. package/src/thirdparty/Number.isInteger.js +0 -5
  650. package/src/thirdparty/Number.isNaN.js +0 -1
  651. package/src/thirdparty/Number.parseInt.js +0 -1
  652. package/src/thirdparty/Object.assign.js +0 -31
  653. package/src/thirdparty/Object.entries.js +0 -11
  654. package/src/thirdparty/Symbol.js +0 -2
  655. package/src/thirdparty/WeakSet.js +0 -27
  656. package/src/thirdparty/_merge.js +0 -32
  657. package/src/thirdparty/es6-string-methods.js +0 -182
  658. package/src/thirdparty/events-polyfills.js +0 -89
  659. package/src/thirdparty/fetch.js +0 -1
  660. package/src/thirdparty/isPlainObject.js +0 -18
  661. package/src/thirdparty/merge.js +0 -10
  662. package/src/thirdparty/template.js +0 -600
  663. package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
  664. package/src/types/AnimationMode.js +0 -7
  665. package/src/types/CSSSize.js +0 -9
  666. package/src/types/CalendarType.js +0 -22
  667. package/src/types/DataType.js +0 -25
  668. package/src/types/Integer.js +0 -9
  669. package/src/types/ItemNavigationBehavior.js +0 -21
  670. package/src/types/NavigationMode.js +0 -6
  671. package/src/types/PopupState.js +0 -37
  672. package/src/types/ValueState.js +0 -22
  673. package/src/util/FetchHelper.js +0 -31
  674. package/src/util/FocusableElements.js +0 -60
  675. package/src/util/StringHelper.js +0 -26
  676. package/src/util/TabbableElements.js +0 -47
  677. package/src/util/createStyleInHead.js +0 -18
  678. package/src/util/detectNavigatorLanguage.js +0 -13
  679. package/src/util/findNodeOwner.js +0 -35
  680. package/src/util/formatMessage.js +0 -23
  681. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  682. package/src/util/isDescendantOf.js +0 -15
  683. package/src/util/isNodeClickable.js +0 -19
  684. package/src/util/isNodeHidden.js +0 -13
  685. package/src/util/isNodeTabbable.js +0 -28
  686. package/src/util/isSlot.js +0 -3
  687. package/src/util/isValidPropertyName.js +0 -23
  688. package/src/util/whenDOMReady.js +0 -13
  689. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollEnablement.js","sourceRoot":"","sources":["../../src/delegate/ScrollEnablement.ts"],"names":[],"mappings":"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","sourcesContent":["import { supportsTouch } from \"../Device.js\";\nimport EventProvider from \"../EventProvider.js\";\nimport scroll from \"../animations/scroll.js\";\nimport type UI5Element from \"../UI5Element.js\";\n\nconst scrollEventName = \"scroll\";\nconst touchEndEventName = supportsTouch() ? \"touchend\" : \"mouseup\";\n\ntype ScrollEnablementEventListenerParam = {\n\tisLeft: boolean;\n\tisRight: boolean\n}\ntype ScrollEnablementEventListenerReturn = void;\n\nclass ScrollEnablement extends EventProvider<ScrollEnablementEventListenerParam, ScrollEnablementEventListenerReturn> {\n\tcontainerComponent: UI5Element;\n\tmouseMove: (event: MouseEvent | TouchEvent) => void;\n\tmouseUp: (event: MouseEvent | TouchEvent) => void;\n\ttouchStart: (event: MouseEvent | TouchEvent) => void;\n\tcachedValue: { dragX: number, dragY: number };\n\tstartX: number;\n\tstartY: number;\n\t_container?: HTMLElement;\n\tsupportsTouch = supportsTouch();\n\t_canScroll?: boolean;\n\t_prevDragX?: number;\n\t_prevDragY?: number;\n\n\tconstructor(containerComponent: UI5Element) {\n\t\tsuper();\n\t\tthis.containerComponent = containerComponent;\n\t\tthis.mouseMove = this.ontouchmove.bind(this);\n\t\tthis.mouseUp = this.ontouchend.bind(this);\n\t\tthis.touchStart = this.ontouchstart.bind(this);\n\n\t\tthis.supportsTouch = supportsTouch();\n\n\t\t// On Android devices touchmove is thrown one more time than neccessary (together with touchend)\n\t\t// so we have to cache the previus coordinates in order to provide correct parameters in the\n\t\t// event for Android\n\t\tthis.cachedValue = { dragX: 0, dragY: 0 };\n\n\t\t// In components like Carousel you need to know if the user has clicked on something or swiped\n\t\t// in order to throw the needed event or not\n\t\tthis.startX = 0;\n\t\tthis.startY = 0;\n\n\t\tif (this.supportsTouch) {\n\t\t\tcontainerComponent.addEventListener(\"touchstart\", this.touchStart, { passive: true });\n\t\t\tcontainerComponent.addEventListener(\"touchmove\", this.mouseMove, { passive: true });\n\t\t\tcontainerComponent.addEventListener(\"touchend\", this.mouseUp, { passive: true });\n\t\t} else {\n\t\t\tcontainerComponent.addEventListener(\"mousedown\", this.touchStart, { passive: true });\n\t\t}\n\t}\n\n\tset scrollContainer(container: HTMLElement) {\n\t\tthis._container = container;\n\t}\n\n\tget scrollContainer() {\n\t\treturn this._container!;\n\t}\n\n\t/**\n\t * Scrolls the container to the left/top position, retrying retryCount times, if the container is not yet painted\n\t *\n\t * @param left\n\t * @param top\n\t * @param retryCount\n\t * @param retryInterval\n\t * @returns {Promise<void>} resolved when scrolled successfully\n\t */\n\tasync scrollTo(left: number, top: number, retryCount = 0, retryInterval = 0) {\n\t\tlet containerPainted = this.scrollContainer.clientHeight > 0 && this.scrollContainer.clientWidth > 0;\n\n\t\t/* eslint-disable no-loop-func, no-await-in-loop */\n\t\twhile (!containerPainted && retryCount > 0) {\n\t\t\tawait new Promise<void>(resolve => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tcontainerPainted = this.scrollContainer.clientHeight > 0 && this.scrollContainer.clientWidth > 0;\n\t\t\t\t\tretryCount--;\n\t\t\t\t\tresolve();\n\t\t\t\t}, retryInterval);\n\t\t\t});\n\t\t}\n\t\t/* eslint-disable no-loop-func, no-await-in-loop */\n\n\t\tthis._container!.scrollLeft = left;\n\t\tthis._container!.scrollTop = top;\n\t}\n\n\tmove(dx: number, dy: number, disableAnimation: boolean) {\n\t\tif (disableAnimation) {\n\t\t\tthis._container!.scrollLeft += dx;\n\t\t\tthis._container!.scrollTop += dy;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._container) {\n\t\t\treturn scroll(this._container, dx, dy);\n\t\t}\n\t}\n\n\tgetScrollLeft() {\n\t\treturn this._container!.scrollLeft;\n\t}\n\n\tgetScrollTop() {\n\t\treturn this._container!.scrollTop;\n\t}\n\n\t_isTouchInside(event: TouchEvent | MouseEvent) {\n\t\tlet touch = null;\n\t\tif (this.supportsTouch && event instanceof TouchEvent) {\n\t\t\ttouch = event.touches[0];\n\t\t}\n\n\t\tconst rect = this._container!.getBoundingClientRect();\n\t\tconst x = this.supportsTouch ? (touch as TouchInit).clientX : (event as MouseEvent).x;\n\t\tconst y = this.supportsTouch ? (touch as TouchInit).clientY : (event as MouseEvent).y;\n\n\t\treturn x! >= rect.left && x! <= rect.right\n\t\t\t&& y! >= rect.top && y! <= rect.bottom;\n\t}\n\n\tontouchstart(event: TouchEvent | MouseEvent) {\n\t\tlet touch = null;\n\t\tif (this.supportsTouch && event instanceof TouchEvent) {\n\t\t\ttouch = event.touches[0];\n\t\t}\n\n\t\tif (!touch) {\n\t\t\tdocument.addEventListener(\"mouseup\", this.mouseUp, { passive: true });\n\t\t\tdocument.addEventListener(\"mousemove\", this.mouseMove, { passive: true });\n\t\t} else {\n\t\t\t// Needed only on mobile\n\t\t\tthis.startX = touch.pageX;\n\t\t\tthis.startY = touch.pageY;\n\t\t}\n\n\t\tif (touch) {\n\t\t\tthis._prevDragX = touch.pageX;\n\t\t\tthis._prevDragY = touch.pageY;\n\t\t}\n\n\t\tif (event instanceof MouseEvent) {\n\t\t\tthis._prevDragX = event.x;\n\t\t\tthis._prevDragY = event.y;\n\t\t}\n\n\t\tthis._canScroll = this._isTouchInside(event);\n\t}\n\n\tontouchmove(event: TouchEvent | MouseEvent) {\n\t\tif (!this._canScroll) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = this._container;\n\t\tconst touch = this.supportsTouch ? (event as TouchEvent).touches[0] : null;\n\n\t\tconst dragX = this.supportsTouch ? (touch as TouchInit).pageX : (event as MouseEvent).x;\n\t\tconst dragY = this.supportsTouch ? (touch as TouchInit).pageY : (event as MouseEvent).y;\n\n\t\tcontainer!.scrollLeft += this._prevDragX! - dragX!;\n\t\tcontainer!.scrollTop += this._prevDragY! - dragY!;\n\n\t\tthis.fireEvent(scrollEventName, {\n\t\t\tisLeft: dragX! > this._prevDragX!,\n\t\t\tisRight: dragX! < this._prevDragX!,\n\t\t});\n\n\t\tthis.cachedValue.dragX = this._prevDragX!;\n\t\tthis.cachedValue.dragY = this._prevDragY!;\n\n\t\tthis._prevDragX = dragX;\n\t\tthis._prevDragY = dragY;\n\t}\n\n\tontouchend(event: TouchEvent | MouseEvent) {\n\t\tif (this.supportsTouch) {\n\t\t\tconst deltaX = Math.abs((event as TouchEvent).changedTouches[0].pageX - this.startX);\n\t\t\tconst deltaY = Math.abs((event as TouchEvent).changedTouches[0].pageY - this.startY);\n\n\t\t\tif (deltaX < 10 && deltaY < 10) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (!this._canScroll) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = this._container;\n\t\tconst dragX = this.supportsTouch ? (event as TouchEvent).changedTouches[0].pageX : (event as MouseEvent).x;\n\t\tconst dragY = this.supportsTouch ? (event as TouchEvent).changedTouches[0].pageY : (event as MouseEvent).y;\n\n\t\tcontainer!.scrollLeft += this._prevDragX! - dragX;\n\t\tcontainer!.scrollTop += this._prevDragY! - dragY;\n\n\t\tconst useCachedValues = dragX === this._prevDragX;\n\t\tconst _dragX = useCachedValues ? this.cachedValue.dragX : dragX;\n\t\t// const _dragY = useCachedValues ? this.cachedValue.dragY : dragY; add if needed\n\n\t\tthis.fireEvent(touchEndEventName, {\n\t\t\tisLeft: _dragX < this._prevDragX!,\n\t\t\tisRight: _dragX > this._prevDragX!,\n\t\t});\n\n\t\tthis._prevDragX = dragX;\n\t\tthis._prevDragY = dragY;\n\n\t\tif (!this.supportsTouch) {\n\t\t\tdocument.removeEventListener(\"mousemove\", this.mouseMove);\n\t\t\tdocument.removeEventListener(\"mouseup\", this.mouseUp);\n\t\t}\n\t}\n}\n\nexport default ScrollEnablement;\nexport type {\n\tScrollEnablementEventListenerParam,\n};\n"]}
@@ -0,0 +1,19 @@
1
+ declare class F6Navigation {
2
+ static _instance: F6Navigation;
3
+ keydownHandler: (event: KeyboardEvent) => void;
4
+ selectedGroup: HTMLElement | null;
5
+ groups: Array<HTMLElement>;
6
+ constructor();
7
+ attachEventListeners(): void;
8
+ groupElementToFocus(nextElement: HTMLElement): Promise<HTMLElement | undefined>;
9
+ findNextFocusableGroupElement(currentIndex: number): Promise<HTMLElement | undefined>;
10
+ findPreviousFocusableGroupElement(currentIndex: number): Promise<HTMLElement | undefined>;
11
+ _keydownHandler(event: KeyboardEvent): Promise<void>;
12
+ removeEventListeners(): void;
13
+ updateGroups(): void;
14
+ setSelectedGroup(root?: DocumentOrShadowRoot): void;
15
+ deepActive(root: DocumentOrShadowRoot): Element | null;
16
+ destroy(): void;
17
+ static init(): F6Navigation;
18
+ }
19
+ export default F6Navigation;
@@ -0,0 +1,151 @@
1
+ import { registerFeature } from "../FeaturesRegistry.js";
2
+ import { isF6Next, isF6Previous } from "../Keys.js";
3
+ import { instanceOfUI5Element } from "../UI5Element.js";
4
+ import { getFirstFocusableElement } from "../util/FocusableElements.js";
5
+ import getFastNavigationGroups from "../util/getFastNavigationGroups.js";
6
+ import isElementClickable from "../util/isElementClickable.js";
7
+ class F6Navigation {
8
+ constructor() {
9
+ this.selectedGroup = null;
10
+ this.groups = [];
11
+ this.keydownHandler = this._keydownHandler.bind(this);
12
+ this.attachEventListeners();
13
+ }
14
+ attachEventListeners() {
15
+ document.addEventListener("keydown", this.keydownHandler);
16
+ }
17
+ async groupElementToFocus(nextElement) {
18
+ const nextElementDomRef = instanceOfUI5Element(nextElement) ? nextElement.getDomRef() : nextElement;
19
+ if (nextElementDomRef) {
20
+ if (isElementClickable(nextElementDomRef)) {
21
+ return nextElementDomRef;
22
+ }
23
+ const elementToFocus = await getFirstFocusableElement(nextElementDomRef);
24
+ if (elementToFocus) {
25
+ return elementToFocus;
26
+ }
27
+ }
28
+ }
29
+ async findNextFocusableGroupElement(currentIndex) {
30
+ let elementToFocus;
31
+ /* eslint-disable no-await-in-loop */
32
+ for (let index = 0; index < this.groups.length; index++) {
33
+ let nextElement;
34
+ if (currentIndex > -1) {
35
+ if (currentIndex + 1 >= this.groups.length) {
36
+ currentIndex = 0;
37
+ nextElement = this.groups[currentIndex];
38
+ }
39
+ else {
40
+ currentIndex += 1;
41
+ nextElement = this.groups[currentIndex];
42
+ }
43
+ }
44
+ else {
45
+ currentIndex = 0;
46
+ nextElement = this.groups[currentIndex];
47
+ }
48
+ elementToFocus = await this.groupElementToFocus(nextElement);
49
+ if (elementToFocus) {
50
+ break;
51
+ }
52
+ }
53
+ /* eslint-enable no-await-in-loop */
54
+ return elementToFocus;
55
+ }
56
+ async findPreviousFocusableGroupElement(currentIndex) {
57
+ let elementToFocus;
58
+ /* eslint-disable no-await-in-loop */
59
+ for (let index = 0; index < this.groups.length; index++) {
60
+ let nextElement;
61
+ if (currentIndex > 0) {
62
+ // Handle the situation where the first focusable element of two neighbor groups is the same
63
+ // For example:
64
+ // <ui5-flexible-column-layout>
65
+ // <ui5-list>
66
+ // <ui5-li>List Item</ui5-li>
67
+ // </ui5-list>
68
+ // </ui5-flexible-column-layout>
69
+ // Here for both FCL & List the firstFoccusableElement is the same (the ui5-li)
70
+ const firstFocusable = await this.groupElementToFocus(this.groups[currentIndex - 1]);
71
+ const shouldSkipParent = firstFocusable === await this.groupElementToFocus(this.groups[currentIndex]);
72
+ currentIndex = shouldSkipParent ? currentIndex - 2 : currentIndex - 1;
73
+ if (currentIndex < 0) {
74
+ currentIndex = this.groups.length - 1;
75
+ }
76
+ nextElement = this.groups[currentIndex];
77
+ }
78
+ else {
79
+ currentIndex = this.groups.length - 1;
80
+ nextElement = this.groups[currentIndex];
81
+ }
82
+ elementToFocus = await this.groupElementToFocus(nextElement);
83
+ if (elementToFocus) {
84
+ break;
85
+ }
86
+ }
87
+ /* eslint-enable no-await-in-loop */
88
+ return elementToFocus;
89
+ }
90
+ async _keydownHandler(event) {
91
+ const forward = isF6Next(event);
92
+ const backward = isF6Previous(event);
93
+ if (!(forward || backward)) {
94
+ return;
95
+ }
96
+ this.updateGroups();
97
+ if (this.groups.length < 1) {
98
+ return;
99
+ }
100
+ event.preventDefault();
101
+ let elementToFocus;
102
+ if (this.groups.length === 0) {
103
+ elementToFocus = await this.groupElementToFocus(this.groups[0]);
104
+ return elementToFocus?.focus();
105
+ }
106
+ let currentIndex = -1;
107
+ if (this.selectedGroup) {
108
+ currentIndex = this.groups.indexOf(this.selectedGroup);
109
+ }
110
+ if (forward) {
111
+ elementToFocus = await this.findNextFocusableGroupElement(currentIndex);
112
+ }
113
+ if (backward) {
114
+ elementToFocus = await this.findPreviousFocusableGroupElement(currentIndex);
115
+ }
116
+ elementToFocus?.focus();
117
+ }
118
+ removeEventListeners() {
119
+ document.removeEventListener("keydown", this.keydownHandler);
120
+ }
121
+ updateGroups() {
122
+ this.setSelectedGroup();
123
+ this.groups = getFastNavigationGroups(document.body);
124
+ }
125
+ setSelectedGroup(root = window.document) {
126
+ const htmlElement = window.document.querySelector("html");
127
+ let element = this.deepActive(root);
128
+ while (element && element.getAttribute("data-sap-ui-fastnavgroup") !== "true" && element !== htmlElement) {
129
+ element = element.parentElement ? element.parentNode : element.parentNode.host;
130
+ }
131
+ this.selectedGroup = element;
132
+ }
133
+ deepActive(root) {
134
+ if (root.activeElement && root.activeElement.shadowRoot) {
135
+ return this.deepActive(root.activeElement.shadowRoot);
136
+ }
137
+ return root.activeElement;
138
+ }
139
+ destroy() {
140
+ this.removeEventListeners();
141
+ }
142
+ static init() {
143
+ if (!this._instance) {
144
+ this._instance = new F6Navigation();
145
+ }
146
+ return this._instance;
147
+ }
148
+ }
149
+ registerFeature("F6Navigation", F6Navigation);
150
+ export default F6Navigation;
151
+ //# sourceMappingURL=F6Navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"F6Navigation.js","sourceRoot":"","sources":["../../src/features/F6Navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import { registerFeature } from \"../FeaturesRegistry.js\";\nimport { isF6Next, isF6Previous } from \"../Keys.js\";\nimport { instanceOfUI5Element } from \"../UI5Element.js\";\nimport { getFirstFocusableElement } from \"../util/FocusableElements.js\";\nimport getFastNavigationGroups from \"../util/getFastNavigationGroups.js\";\nimport isElementClickable from \"../util/isElementClickable.js\";\n\nclass F6Navigation {\n\tstatic _instance: F6Navigation;\n\tkeydownHandler: (event: KeyboardEvent) => void;\n\tselectedGroup: HTMLElement | null = null;\n\tgroups: Array<HTMLElement> = [];\n\n\tconstructor() {\n\t\tthis.keydownHandler = this._keydownHandler.bind(this) as (event: KeyboardEvent) => void;\n\t\tthis.attachEventListeners();\n\t}\n\n\tattachEventListeners() {\n\t\tdocument.addEventListener(\"keydown\", this.keydownHandler);\n\t}\n\n\tasync groupElementToFocus(nextElement: HTMLElement) {\n\t\tconst nextElementDomRef = instanceOfUI5Element(nextElement) ? nextElement.getDomRef() : nextElement;\n\n\t\tif (nextElementDomRef) {\n\t\t\tif (isElementClickable(nextElementDomRef)) {\n\t\t\t\treturn nextElementDomRef;\n\t\t\t}\n\n\t\t\tconst elementToFocus = await getFirstFocusableElement(nextElementDomRef);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\treturn elementToFocus;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync findNextFocusableGroupElement(currentIndex: number) {\n\t\tlet elementToFocus;\n\n\t\t/* eslint-disable no-await-in-loop */\n\t\tfor (let index = 0; index < this.groups.length; index++) {\n\t\t\tlet nextElement;\n\n\t\t\tif (currentIndex > -1) {\n\t\t\t\tif (currentIndex + 1 >= this.groups.length) {\n\t\t\t\t\tcurrentIndex = 0;\n\t\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t\t} else {\n\t\t\t\t\tcurrentIndex += 1;\n\t\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcurrentIndex = 0;\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t}\n\n\t\t\telementToFocus = await this.groupElementToFocus(nextElement);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-await-in-loop */\n\n\t\treturn elementToFocus;\n\t}\n\n\tasync findPreviousFocusableGroupElement(currentIndex: number) {\n\t\tlet elementToFocus;\n\n\t\t/* eslint-disable no-await-in-loop */\n\t\tfor (let index = 0; index < this.groups.length; index++) {\n\t\t\tlet nextElement;\n\n\t\t\tif (currentIndex > 0) {\n\t\t\t\t// Handle the situation where the first focusable element of two neighbor groups is the same\n\t\t\t\t// For example:\n\t\t\t\t// <ui5-flexible-column-layout>\n\t\t\t\t// <ui5-list>\n\t\t\t\t// <ui5-li>List Item</ui5-li>\n\t\t\t\t// </ui5-list>\n\t\t\t\t// </ui5-flexible-column-layout>\n\t\t\t\t// Here for both FCL & List the firstFoccusableElement is the same (the ui5-li)\n\t\t\t\tconst firstFocusable = await this.groupElementToFocus(this.groups[currentIndex - 1]);\n\t\t\t\tconst shouldSkipParent = firstFocusable === await this.groupElementToFocus(this.groups[currentIndex]);\n\n\t\t\t\tcurrentIndex = shouldSkipParent ? currentIndex - 2 : currentIndex - 1;\n\n\t\t\t\tif (currentIndex < 0) {\n\t\t\t\t\tcurrentIndex = this.groups.length - 1;\n\t\t\t\t}\n\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t} else {\n\t\t\t\tcurrentIndex = this.groups.length - 1;\n\t\t\t\tnextElement = this.groups[currentIndex];\n\t\t\t}\n\n\t\t\telementToFocus = await this.groupElementToFocus(nextElement);\n\n\t\t\tif (elementToFocus) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-await-in-loop */\n\n\t\treturn elementToFocus;\n\t}\n\n\tasync _keydownHandler(event: KeyboardEvent) {\n\t\tconst forward = isF6Next(event);\n\t\tconst backward = isF6Previous(event);\n\t\tif (!(forward || backward)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateGroups();\n\n\t\tif (this.groups.length < 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tlet elementToFocus;\n\n\t\tif (this.groups.length === 0) {\n\t\t\telementToFocus = await this.groupElementToFocus(this.groups[0]);\n\n\t\t\treturn elementToFocus?.focus();\n\t\t}\n\n\t\tlet currentIndex = -1;\n\n\t\tif (this.selectedGroup) {\n\t\t\tcurrentIndex = this.groups.indexOf(this.selectedGroup);\n\t\t}\n\n\t\tif (forward) {\n\t\t\telementToFocus = await this.findNextFocusableGroupElement(currentIndex);\n\t\t}\n\n\t\tif (backward) {\n\t\t\telementToFocus = await this.findPreviousFocusableGroupElement(currentIndex);\n\t\t}\n\n\t\telementToFocus?.focus();\n\t}\n\n\tremoveEventListeners() {\n\t\tdocument.removeEventListener(\"keydown\", this.keydownHandler);\n\t}\n\n\tupdateGroups() {\n\t\tthis.setSelectedGroup();\n\t\tthis.groups = getFastNavigationGroups(document.body);\n\t}\n\n\tsetSelectedGroup(root: DocumentOrShadowRoot = window.document) {\n\t\tconst htmlElement = window.document.querySelector(\"html\");\n\t\tlet element: Element | null | ParentNode = this.deepActive(root);\n\n\t\twhile (element && (element as Element).getAttribute(\"data-sap-ui-fastnavgroup\") !== \"true\" && element !== htmlElement) {\n\t\t\telement = element.parentElement ? element.parentNode : (element.parentNode as ShadowRoot).host;\n\t\t}\n\n\t\tthis.selectedGroup = element as HTMLElement;\n\t}\n\n\tdeepActive(root: DocumentOrShadowRoot): Element | null {\n\t\tif (root.activeElement && root.activeElement.shadowRoot) {\n\t\t\treturn this.deepActive(root.activeElement.shadowRoot);\n\t\t}\n\n\t\treturn root.activeElement;\n\t}\n\n\tdestroy() {\n\t\tthis.removeEventListeners();\n\t}\n\n\tstatic init() {\n\t\tif (!this._instance) {\n\t\t\tthis._instance = new F6Navigation();\n\t\t}\n\n\t\treturn this._instance;\n\t}\n}\n\nregisterFeature(\"F6Navigation\", F6Navigation);\n\nexport default F6Navigation;\n"]}
@@ -0,0 +1,18 @@
1
+ import type { FormatSettings } from "../config/FormatSettings.js";
2
+ type IslamicToGregorianMapping = {
3
+ dateFormat: string;
4
+ islamicMonthStart: string;
5
+ gregDate: string;
6
+ };
7
+ type LegacyDateCalendarCustomizing = Array<IslamicToGregorianMapping>;
8
+ declare class LegacyDateFormats {
9
+ /**
10
+ * Returns the currently set customizing data for Islamic calendar support
11
+ *
12
+ * @return {object[]} Returns an array that contains the customizing data.
13
+ * @public
14
+ */
15
+ static getLegacyDateCalendarCustomizing(this: void): LegacyDateCalendarCustomizing;
16
+ }
17
+ export default LegacyDateFormats;
18
+ export type { FormatSettings, LegacyDateCalendarCustomizing, };
@@ -0,0 +1,20 @@
1
+ import { getFormatSettings } from "../InitialConfiguration.js";
2
+ import { registerFeature } from "../FeaturesRegistry.js";
3
+ let formatSettings;
4
+ class LegacyDateFormats {
5
+ /**
6
+ * Returns the currently set customizing data for Islamic calendar support
7
+ *
8
+ * @return {object[]} Returns an array that contains the customizing data.
9
+ * @public
10
+ */
11
+ static getLegacyDateCalendarCustomizing() {
12
+ if (formatSettings === undefined) {
13
+ formatSettings = getFormatSettings();
14
+ }
15
+ return formatSettings.legacyDateCalendarCustomizing || [];
16
+ }
17
+ }
18
+ registerFeature("LegacyDateFormats", LegacyDateFormats);
19
+ export default LegacyDateFormats;
20
+ //# sourceMappingURL=LegacyDateFormats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyDateFormats.js","sourceRoot":"","sources":["../../src/features/LegacyDateFormats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD,IAAI,cAA8B,CAAC;AAEnC,MAAM,iBAAiB;IACtB;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC;QACtC,IAAI,cAAc,KAAK,SAAS,EAAE;YACjC,cAAc,GAAG,iBAAiB,EAAE,CAAC;SACrC;QAED,OAAO,cAAc,CAAC,6BAA6B,IAAI,EAAE,CAAC;IAC3D,CAAC;CACD;AAED,eAAe,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAExD,eAAe,iBAAiB,CAAC","sourcesContent":["import { getFormatSettings } from \"../InitialConfiguration.js\";\nimport type { FormatSettings } from \"../config/FormatSettings.js\";\nimport { registerFeature } from \"../FeaturesRegistry.js\";\n\n// Allows specifying the customizing data for Islamic calendar support\n// dateFormat - The date format\n// islamicMonthStart - The Islamic date in string format // 14360101\n// gregDate - Corresponding Gregorian date to the Islamic one in string format // 20141024\ntype IslamicToGregorianMapping = {\n\tdateFormat: string,\n\tislamicMonthStart: string,\n\tgregDate: string,\n};\ntype LegacyDateCalendarCustomizing = Array<IslamicToGregorianMapping>;\n\nlet formatSettings: FormatSettings;\n\nclass LegacyDateFormats {\n\t/**\n\t * Returns the currently set customizing data for Islamic calendar support\n\t *\n\t * @return {object[]} Returns an array that contains the customizing data.\n\t * @public\n\t */\n\tstatic getLegacyDateCalendarCustomizing(this: void): LegacyDateCalendarCustomizing {\n\t\tif (formatSettings === undefined) {\n\t\t\tformatSettings = getFormatSettings();\n\t\t}\n\n\t\treturn formatSettings.legacyDateCalendarCustomizing || [];\n\t}\n}\n\nregisterFeature(\"LegacyDateFormats\", LegacyDateFormats);\n\nexport default LegacyDateFormats;\nexport type {\n\tFormatSettings,\n\tLegacyDateCalendarCustomizing,\n};\n"]}
@@ -0,0 +1,9 @@
1
+ import UI5Element from "../UI5Element.js";
2
+ declare class OpenUI5Element extends UI5Element {
3
+ __isBusy?: boolean;
4
+ isOpenUI5Component?: boolean;
5
+ __suppressFocusIn?: () => void;
6
+ __suppressFocusBack?: (e: KeyboardEvent) => void;
7
+ __redirectFocus?: boolean;
8
+ }
9
+ export default OpenUI5Element;
@@ -0,0 +1,5 @@
1
+ import UI5Element from "../UI5Element.js";
2
+ class OpenUI5Element extends UI5Element {
3
+ }
4
+ export default OpenUI5Element;
5
+ //# sourceMappingURL=OpenUI5Element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenUI5Element.js","sourceRoot":"","sources":["../../src/features/OpenUI5Element.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,cAAe,SAAQ,UAAU;CAMtC;AAED,eAAe,cAAc,CAAC","sourcesContent":["import UI5Element from \"../UI5Element.js\";\n\nclass OpenUI5Element extends UI5Element {\n\t__isBusy?: boolean;\n\tisOpenUI5Component?: boolean;\n\t__suppressFocusIn?: () => void;\n\t__suppressFocusBack?: (e: KeyboardEvent) => void;\n\t__redirectFocus?: boolean;\n}\n\nexport default OpenUI5Element;\n"]}
@@ -0,0 +1,11 @@
1
+ import { TemplateResult } from "lit-html";
2
+ import type UI5Element from "../UI5Element.js";
3
+ import type OpenUI5Element from "./OpenUI5Element.js";
4
+ declare class OpenUI5Enablement {
5
+ static wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult): TemplateResult;
6
+ static enrichBusyIndicatorSettings(klass: typeof UI5Element): void;
7
+ static enrichBusyIndicatorMetadata(klass: typeof UI5Element): void;
8
+ static enrichBusyIndicatorMethods(UI5ElementPrototype: typeof OpenUI5Element.prototype): void;
9
+ static getBusyIndicatorStyles(): import("../types.js").StyleData;
10
+ }
11
+ export default OpenUI5Enablement;
@@ -0,0 +1,96 @@
1
+ import { registerFeature } from "../FeaturesRegistry.js";
2
+ import BusyIndicatorStyles from "../generated/css/BusyIndicator.css.js";
3
+ import merge from "../thirdparty/merge.js";
4
+ import { isTabPrevious, } from "../Keys.js";
5
+ const busyIndicatorMetadata = {
6
+ properties: {
7
+ __isBusy: {
8
+ type: Boolean,
9
+ },
10
+ },
11
+ };
12
+ class OpenUI5Enablement {
13
+ static wrapTemplateResultInBusyMarkup(html, host, templateResult) {
14
+ if (host.isOpenUI5Component && host.__isBusy) {
15
+ templateResult = html `
16
+ <div class="busy-indicator-wrapper">
17
+ <span tabindex="0" busy-indicator-before-span @focusin=${host.__suppressFocusIn}></span>
18
+ ${templateResult}
19
+ <div class="busy-indicator-overlay"></div>
20
+ <div busy-indicator
21
+ class="busy-indicator-busy-area"
22
+ tabindex="0"
23
+ role="progressbar"
24
+ @keydown=${host.__suppressFocusBack}
25
+ aria-valuemin="0"
26
+ aria-valuemax="100"
27
+ aria-valuetext="Busy">
28
+ <div>
29
+ <div class="busy-indicator-circle circle-animation-0"></div>
30
+ <div class="busy-indicator-circle circle-animation-1"></div>
31
+ <div class="busy-indicator-circle circle-animation-2"></div>
32
+ </div>
33
+ </div>
34
+ </div>`;
35
+ }
36
+ return templateResult;
37
+ }
38
+ static enrichBusyIndicatorSettings(klass) {
39
+ OpenUI5Enablement.enrichBusyIndicatorMetadata(klass);
40
+ OpenUI5Enablement.enrichBusyIndicatorMethods(klass.prototype);
41
+ }
42
+ static enrichBusyIndicatorMetadata(klass) {
43
+ klass.metadata = merge(klass.metadata, busyIndicatorMetadata);
44
+ }
45
+ static enrichBusyIndicatorMethods(UI5ElementPrototype) {
46
+ Object.defineProperties(UI5ElementPrototype, {
47
+ "__redirectFocus": { value: true, writable: true },
48
+ "__suppressFocusBack": {
49
+ get() {
50
+ return {
51
+ handleEvent: (e) => {
52
+ if (isTabPrevious(e)) {
53
+ const beforeElem = this.shadowRoot.querySelector("[busy-indicator-before-span]");
54
+ this.__redirectFocus = false;
55
+ beforeElem.focus();
56
+ this.__redirectFocus = true;
57
+ }
58
+ },
59
+ capture: true,
60
+ passive: false,
61
+ };
62
+ },
63
+ },
64
+ "isOpenUI5Component": { get: () => { return true; } },
65
+ });
66
+ UI5ElementPrototype.__suppressFocusIn = function handleFocusIn() {
67
+ const busyIndicator = this.shadowRoot?.querySelector("[busy-indicator]");
68
+ if (busyIndicator && this.__redirectFocus) {
69
+ busyIndicator.focus();
70
+ }
71
+ };
72
+ UI5ElementPrototype.getDomRef = function getDomRef() {
73
+ // If a component set _getRealDomRef to its children, use the return value of this function
74
+ if (typeof this._getRealDomRef === "function") {
75
+ return this._getRealDomRef();
76
+ }
77
+ if (!this.shadowRoot || this.shadowRoot.children.length === 0) {
78
+ return;
79
+ }
80
+ const children = [...this.shadowRoot.children].filter(child => !["link", "style"].includes(child.localName));
81
+ if (children.length !== 1) {
82
+ console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line
83
+ }
84
+ if (this.__isBusy) {
85
+ return children[0].querySelector(".busy-indicator-wrapper > :not([busy-indicator-before-span]):not(.busy-indicator-overlay):not(.busy-indicator-busy-area)");
86
+ }
87
+ return children[0];
88
+ };
89
+ }
90
+ static getBusyIndicatorStyles() {
91
+ return BusyIndicatorStyles;
92
+ }
93
+ }
94
+ registerFeature("OpenUI5Enablement", OpenUI5Enablement);
95
+ export default OpenUI5Enablement;
96
+ //# sourceMappingURL=OpenUI5Enablement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenUI5Enablement.js","sourceRoot":"","sources":["../../src/features/OpenUI5Enablement.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult } from \"lit-html\";\nimport { registerFeature } from \"../FeaturesRegistry.js\";\nimport BusyIndicatorStyles from \"../generated/css/BusyIndicator.css.js\";\nimport merge from \"../thirdparty/merge.js\";\nimport {\n\tisTabPrevious,\n} from \"../Keys.js\";\n\nimport type UI5Element from \"../UI5Element.js\";\nimport type OpenUI5Element from \"./OpenUI5Element.js\";\n\nconst busyIndicatorMetadata = {\n\tproperties: {\n\t\t__isBusy: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n};\n\nclass OpenUI5Enablement {\n\tstatic wrapTemplateResultInBusyMarkup(html: (strings: TemplateStringsArray, ...values: Array<unknown>) => TemplateResult, host: OpenUI5Element, templateResult: TemplateResult) {\n\t\tif (host.isOpenUI5Component && host.__isBusy) {\n\t\t\ttemplateResult = html`\n\t\t\t<div class=\"busy-indicator-wrapper\">\n\t\t\t\t<span tabindex=\"0\" busy-indicator-before-span @focusin=${host.__suppressFocusIn}></span>\n\t\t\t\t${templateResult}\n\t\t\t\t<div class=\"busy-indicator-overlay\"></div>\n\t\t\t\t<div busy-indicator\n\t\t\t\t\tclass=\"busy-indicator-busy-area\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\trole=\"progressbar\"\n\t\t\t\t\t@keydown=${host.__suppressFocusBack}\n\t\t\t\t\taria-valuemin=\"0\"\n\t\t\t\t\taria-valuemax=\"100\"\n\t\t\t\t\taria-valuetext=\"Busy\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-0\"></div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-1\"></div>\n\t\t\t\t\t\t<div class=\"busy-indicator-circle circle-animation-2\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>`;\n\t\t}\n\n\t\treturn templateResult;\n\t}\n\n\tstatic enrichBusyIndicatorSettings(klass: typeof UI5Element) {\n\t\tOpenUI5Enablement.enrichBusyIndicatorMetadata(klass);\n\t\tOpenUI5Enablement.enrichBusyIndicatorMethods(klass.prototype);\n\t}\n\n\tstatic enrichBusyIndicatorMetadata(klass: typeof UI5Element) {\n\t\tklass.metadata = merge(klass.metadata, busyIndicatorMetadata);\n\t}\n\n\tstatic enrichBusyIndicatorMethods(UI5ElementPrototype: typeof OpenUI5Element.prototype) {\n\t\tObject.defineProperties(UI5ElementPrototype, {\n\t\t\t\"__redirectFocus\": { value: true, writable: true },\n\t\t\t\"__suppressFocusBack\": {\n\t\t\t\tget() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\thandleEvent: (e: KeyboardEvent) => {\n\t\t\t\t\t\t\tif (isTabPrevious(e)) {\n\t\t\t\t\t\t\t\tconst beforeElem = this.shadowRoot.querySelector(\"[busy-indicator-before-span]\");\n\t\t\t\t\t\t\t\tthis.__redirectFocus = false;\n\t\t\t\t\t\t\t\tbeforeElem.focus();\n\t\t\t\t\t\t\t\tthis.__redirectFocus = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcapture: true,\n\t\t\t\t\t\tpassive: false,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"isOpenUI5Component\": { get: () => { return true; } },\n\t\t});\n\n\t\tUI5ElementPrototype.__suppressFocusIn = function handleFocusIn() {\n\t\t\tconst busyIndicator = this.shadowRoot?.querySelector(\"[busy-indicator]\") as HTMLElement;\n\t\t\tif (busyIndicator && this.__redirectFocus) {\n\t\t\t\tbusyIndicator.focus();\n\t\t\t}\n\t\t};\n\n\t\tUI5ElementPrototype.getDomRef = function getDomRef() {\n\t\t\t// If a component set _getRealDomRef to its children, use the return value of this function\n\t\t\tif (typeof this._getRealDomRef === \"function\") {\n\t\t\t\treturn this._getRealDomRef();\n\t\t\t}\n\n\t\t\tif (!this.shadowRoot || this.shadowRoot.children.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst children = [...this.shadowRoot.children].filter(child => ![\"link\", \"style\"].includes(child.localName));\n\n\t\t\tif (children.length !== 1) {\n\t\t\t\tconsole.warn(`The shadow DOM for ${(this.constructor as typeof UI5Element).getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line\n\t\t\t}\n\n\t\t\tif (this.__isBusy) {\n\t\t\t\treturn children[0].querySelector(\".busy-indicator-wrapper > :not([busy-indicator-before-span]):not(.busy-indicator-overlay):not(.busy-indicator-busy-area)\") as HTMLElement;\n\t\t\t}\n\n\t\t\treturn children[0] as HTMLElement;\n\t\t};\n\t}\n\n\tstatic getBusyIndicatorStyles() {\n\t\treturn BusyIndicatorStyles;\n\t}\n}\n\nregisterFeature(\"OpenUI5Enablement\", OpenUI5Enablement);\n\nexport default OpenUI5Enablement;\n"]}
@@ -0,0 +1,36 @@
1
+ import { CLDRData } from "../asset-registries/LocaleData.js";
2
+ import type { LegacyDateCalendarCustomizing } from "../features/LegacyDateFormats.js";
3
+ declare class OpenUI5Support {
4
+ static isAtLeastVersion116(): boolean;
5
+ static isOpenUI5Detected(): boolean;
6
+ static init(): Promise<void>;
7
+ static getConfigurationSettingsObject(): {
8
+ animationMode?: undefined;
9
+ language?: undefined;
10
+ theme?: undefined;
11
+ themeRoot?: undefined;
12
+ rtl?: undefined;
13
+ timezone?: undefined;
14
+ calendarType?: undefined;
15
+ formatSettings?: undefined;
16
+ } | {
17
+ animationMode: string;
18
+ language: string;
19
+ theme: string;
20
+ themeRoot: string;
21
+ rtl: string;
22
+ timezone: string;
23
+ calendarType: string;
24
+ formatSettings: {
25
+ firstDayOfWeek: number | undefined;
26
+ legacyDateCalendarCustomizing: LegacyDateCalendarCustomizing;
27
+ };
28
+ };
29
+ static getLocaleDataObject(): CLDRData | undefined;
30
+ static _listenForThemeChange(): void;
31
+ static attachListeners(): void;
32
+ static cssVariablesLoaded(): boolean | undefined;
33
+ static getNextZIndex(): number | undefined;
34
+ static setInitialZIndex(): void;
35
+ }
36
+ export default OpenUI5Support;