@ui5/webcomponents-base 0.0.0-cf069fb29 → 0.0.0-d010d8832

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 (610) hide show
  1. package/.eslintignore +6 -5
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +461 -0
  4. package/README.md +28 -6
  5. package/bundle.esm.js +17 -11
  6. package/config/wdio.conf.cjs +400 -0
  7. package/{src/AssetRegistry.js → dist/AssetRegistry.d.ts} +1 -7
  8. package/dist/AssetRegistry.js +2 -7
  9. package/dist/AssetRegistry.js.map +1 -0
  10. package/dist/Boot.d.ts +9 -0
  11. package/dist/Boot.js +55 -45
  12. package/dist/Boot.js.map +1 -0
  13. package/{src/CSP.js → dist/CSP.d.ts} +8 -37
  14. package/dist/CSP.js +16 -24
  15. package/dist/CSP.js.map +1 -0
  16. package/dist/CustomElementsRegistry.d.ts +5 -0
  17. package/dist/CustomElementsRegistry.js +66 -83
  18. package/dist/CustomElementsRegistry.js.map +1 -0
  19. package/dist/CustomElementsScope.d.ts +7 -0
  20. package/dist/CustomElementsScope.js +11 -108
  21. package/dist/CustomElementsScope.js.map +1 -0
  22. package/dist/CustomElementsScopeUtils.d.ts +55 -0
  23. package/{src/CustomElementsScope.js → dist/CustomElementsScopeUtils.js} +34 -52
  24. package/dist/CustomElementsScopeUtils.js.map +1 -0
  25. package/dist/DOMObserver.d.ts +11 -0
  26. package/dist/DOMObserver.js +12 -54
  27. package/dist/DOMObserver.js.map +1 -0
  28. package/dist/Device.d.ts +12 -0
  29. package/dist/Device.js +146 -96
  30. package/dist/Device.js.map +1 -0
  31. package/dist/EventProvider.d.ts +25 -0
  32. package/dist/EventProvider.js +67 -82
  33. package/dist/EventProvider.js.map +1 -0
  34. package/dist/FeaturesRegistry.d.ts +3 -0
  35. package/dist/FeaturesRegistry.js +5 -10
  36. package/dist/FeaturesRegistry.js.map +1 -0
  37. package/dist/FontFace.d.ts +2 -0
  38. package/dist/FontFace.js +14 -19
  39. package/dist/FontFace.js.map +1 -0
  40. package/dist/InitialConfiguration.d.ts +27 -0
  41. package/dist/InitialConfiguration.js +121 -131
  42. package/dist/InitialConfiguration.js.map +1 -0
  43. package/dist/Keys.d.ts +57 -0
  44. package/dist/Keys.js +174 -267
  45. package/dist/Keys.js.map +1 -0
  46. package/dist/ManagedStyles.d.ts +8 -0
  47. package/dist/ManagedStyles.js +62 -68
  48. package/dist/ManagedStyles.js.map +1 -0
  49. package/dist/MarkedEvents.d.ts +9 -0
  50. package/dist/MarkedEvents.js +15 -0
  51. package/dist/MarkedEvents.js.map +1 -0
  52. package/dist/MediaRange.d.ts +37 -0
  53. package/dist/MediaRange.js +54 -65
  54. package/dist/MediaRange.js.map +1 -0
  55. package/dist/PropertiesFileFormat.d.ts +8 -0
  56. package/dist/PropertiesFileFormat.js +72 -82
  57. package/dist/PropertiesFileFormat.js.map +1 -0
  58. package/dist/Render.d.ts +47 -0
  59. package/dist/Render.js +81 -113
  60. package/dist/Render.js.map +1 -0
  61. package/dist/RenderQueue.d.ts +19 -0
  62. package/dist/RenderQueue.js +52 -62
  63. package/dist/RenderQueue.js.map +1 -0
  64. package/dist/Runtimes.d.ts +27 -0
  65. package/dist/Runtimes.js +49 -70
  66. package/dist/Runtimes.js.map +1 -0
  67. package/dist/StaticArea.d.ts +3 -0
  68. package/dist/StaticArea.js +5 -1
  69. package/dist/StaticArea.js.map +1 -0
  70. package/dist/StaticAreaItem.d.ts +36 -0
  71. package/dist/StaticAreaItem.js +85 -87
  72. package/dist/StaticAreaItem.js.map +1 -0
  73. package/dist/SystemCSSVars.d.ts +2 -0
  74. package/dist/SystemCSSVars.js +4 -5
  75. package/dist/SystemCSSVars.js.map +1 -0
  76. package/{src/Theming.js → dist/Theming.d.ts} +0 -1
  77. package/dist/Theming.js +1 -1
  78. package/dist/Theming.js.map +1 -0
  79. package/dist/UI5Element.d.ts +378 -0
  80. package/dist/UI5Element.js +917 -985
  81. package/dist/UI5Element.js.map +1 -0
  82. package/dist/UI5ElementMetadata.d.ts +150 -0
  83. package/dist/UI5ElementMetadata.js +278 -314
  84. package/dist/UI5ElementMetadata.js.map +1 -0
  85. package/dist/animations/AnimationQueue.d.ts +8 -0
  86. package/dist/animations/AnimationQueue.js +31 -38
  87. package/dist/animations/AnimationQueue.js.map +1 -0
  88. package/dist/animations/animate.d.ts +14 -0
  89. package/dist/animations/animate.js +46 -51
  90. package/dist/animations/animate.js.map +1 -0
  91. package/dist/animations/scroll.d.ts +5 -0
  92. package/dist/animations/scroll.js +18 -27
  93. package/dist/animations/scroll.js.map +1 -0
  94. package/dist/animations/slideDown.d.ts +5 -0
  95. package/dist/animations/slideDown.js +53 -78
  96. package/dist/animations/slideDown.js.map +1 -0
  97. package/dist/animations/slideUp.d.ts +5 -0
  98. package/dist/animations/slideUp.js +49 -70
  99. package/dist/animations/slideUp.js.map +1 -0
  100. package/dist/api.json +1 -0
  101. package/dist/asset-registries/Icons.d.ts +38 -0
  102. package/dist/asset-registries/Icons.js +109 -123
  103. package/dist/asset-registries/Icons.js.map +1 -0
  104. package/dist/asset-registries/Illustrations.d.ts +17 -0
  105. package/dist/asset-registries/Illustrations.js +41 -25
  106. package/dist/asset-registries/Illustrations.js.map +1 -0
  107. package/dist/asset-registries/LocaleData.d.ts +7 -0
  108. package/dist/asset-registries/LocaleData.js +104 -127
  109. package/dist/asset-registries/LocaleData.js.map +1 -0
  110. package/dist/asset-registries/Themes.d.ts +11 -0
  111. package/dist/asset-registries/Themes.js +40 -66
  112. package/dist/asset-registries/Themes.js.map +1 -0
  113. package/dist/asset-registries/i18n.d.ts +23 -0
  114. package/dist/asset-registries/i18n.js +61 -81
  115. package/dist/asset-registries/i18n.js.map +1 -0
  116. package/dist/assets/Boot.34b7cea0.css +1 -0
  117. package/dist/assets/Boot.fc041a90.js +9 -0
  118. package/dist/assets/bundle.esm.1f755700.js +50 -0
  119. package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
  120. package/dist/assets-meta/IconCollectionsAlias.js +30 -10
  121. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  122. package/dist/config/AnimationMode.d.ts +14 -0
  123. package/dist/config/AnimationMode.js +21 -18
  124. package/dist/config/AnimationMode.js.map +1 -0
  125. package/dist/config/CalendarType.d.ts +8 -0
  126. package/dist/config/CalendarType.js +13 -12
  127. package/dist/config/CalendarType.js.map +1 -0
  128. package/dist/config/FormatSettings.d.ts +15 -0
  129. package/dist/config/FormatSettings.js +15 -9
  130. package/dist/config/FormatSettings.js.map +1 -0
  131. package/dist/config/Icons.d.ts +55 -0
  132. package/dist/config/Icons.js +103 -0
  133. package/dist/config/Icons.js.map +1 -0
  134. package/dist/config/Language.d.ts +40 -0
  135. package/dist/config/Language.js +43 -43
  136. package/dist/config/Language.js.map +1 -0
  137. package/dist/config/NoConflict.d.ts +20 -0
  138. package/dist/config/NoConflict.js +41 -41
  139. package/dist/config/NoConflict.js.map +1 -0
  140. package/dist/config/RTL.d.ts +7 -0
  141. package/dist/config/RTL.js +26 -20
  142. package/dist/config/RTL.js.map +1 -0
  143. package/dist/config/Theme.d.ts +38 -0
  144. package/dist/config/Theme.js +57 -29
  145. package/dist/config/Theme.js.map +1 -0
  146. package/dist/config/ThemeRoots.d.ts +4 -0
  147. package/dist/config/ThemeRoots.js +28 -0
  148. package/dist/config/ThemeRoots.js.map +1 -0
  149. package/dist/config/Timezone.d.ts +17 -0
  150. package/dist/config/Timezone.js +30 -0
  151. package/dist/config/Timezone.js.map +1 -0
  152. package/dist/css/BusyIndicator.css +80 -0
  153. package/dist/css/FontFace.css +31 -10
  154. package/dist/decorators/customElement.d.ts +23 -0
  155. package/dist/decorators/customElement.js +37 -0
  156. package/dist/decorators/customElement.js.map +1 -0
  157. package/dist/decorators/event.d.ts +10 -0
  158. package/dist/decorators/event.js +24 -0
  159. package/dist/decorators/event.js.map +1 -0
  160. package/dist/decorators/property.d.ts +9 -0
  161. package/dist/decorators/property.js +24 -0
  162. package/dist/decorators/property.js.map +1 -0
  163. package/dist/decorators/slot.d.ts +9 -0
  164. package/dist/decorators/slot.js +37 -0
  165. package/dist/decorators/slot.js.map +1 -0
  166. package/dist/delegate/ItemNavigation.d.ts +113 -0
  167. package/dist/delegate/ItemNavigation.js +277 -312
  168. package/dist/delegate/ItemNavigation.js.map +1 -0
  169. package/dist/delegate/ResizeHandler.d.ts +25 -0
  170. package/dist/delegate/ResizeHandler.js +72 -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 -180
  174. package/dist/delegate/ScrollEnablement.js.map +1 -0
  175. package/dist/features/F6Navigation.d.ts +19 -0
  176. package/dist/features/F6Navigation.js +145 -100
  177. package/dist/features/F6Navigation.js.map +1 -0
  178. package/dist/features/LegacyDateFormats.d.ts +18 -0
  179. package/dist/features/LegacyDateFormats.js +20 -0
  180. package/dist/features/LegacyDateFormats.js.map +1 -0
  181. package/dist/features/OpenUI5Element.d.ts +9 -0
  182. package/dist/features/OpenUI5Element.js +5 -0
  183. package/dist/features/OpenUI5Element.js.map +1 -0
  184. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  185. package/dist/features/OpenUI5Enablement.js +96 -0
  186. package/dist/features/OpenUI5Enablement.js.map +1 -0
  187. package/dist/features/OpenUI5Support.d.ts +26 -0
  188. package/dist/features/OpenUI5Support.js +93 -119
  189. package/dist/features/OpenUI5Support.js.map +1 -0
  190. package/dist/generated/AssetParameters.js +3 -1
  191. package/dist/generated/VersionInfo.js +3 -3
  192. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  193. package/dist/generated/css/BusyIndicator.css.js +7 -0
  194. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  195. package/dist/generated/css/FontFace.css.d.ts +3 -0
  196. package/dist/generated/css/FontFace.css.js +7 -5
  197. package/dist/generated/css/FontFace.css.js.map +1 -0
  198. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  199. package/dist/generated/css/OverrideFontFace.css.js +7 -5
  200. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  201. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  202. package/dist/generated/css/SystemCSSVars.css.js +7 -5
  203. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  204. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  205. package/dist/getSharedResource.d.ts +11 -0
  206. package/dist/getSharedResource.js +22 -18
  207. package/dist/getSharedResource.js.map +1 -0
  208. package/dist/global.d.ts +40 -0
  209. package/dist/i18nBundle.d.ts +43 -0
  210. package/dist/i18nBundle.js +56 -64
  211. package/dist/i18nBundle.js.map +1 -0
  212. package/dist/locale/Locale.d.ts +22 -0
  213. package/dist/locale/Locale.js +75 -87
  214. package/dist/locale/Locale.js.map +1 -0
  215. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  216. package/dist/locale/RTLAwareRegistry.js +6 -11
  217. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  218. package/dist/locale/applyDirection.d.ts +10 -0
  219. package/dist/locale/applyDirection.js +7 -7
  220. package/dist/locale/applyDirection.js.map +1 -0
  221. package/dist/locale/directionChange.d.ts +15 -0
  222. package/dist/locale/directionChange.js +7 -15
  223. package/dist/locale/directionChange.js.map +1 -0
  224. package/dist/locale/getEffectiveDir.d.ts +2 -0
  225. package/dist/locale/getEffectiveDir.js +20 -24
  226. package/dist/locale/getEffectiveDir.js.map +1 -0
  227. package/dist/locale/getLocale.d.ts +7 -0
  228. package/dist/locale/getLocale.js +26 -29
  229. package/dist/locale/getLocale.js.map +1 -0
  230. package/dist/locale/languageChange.d.ts +5 -0
  231. package/dist/locale/languageChange.js +8 -16
  232. package/dist/locale/languageChange.js.map +1 -0
  233. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  234. package/dist/locale/nextFallbackLocale.js +15 -19
  235. package/dist/locale/nextFallbackLocale.js.map +1 -0
  236. package/dist/locale/normalizeLocale.d.ts +7 -0
  237. package/dist/locale/normalizeLocale.js +34 -41
  238. package/dist/locale/normalizeLocale.js.map +1 -0
  239. package/dist/renderer/LitRenderer.d.ts +14 -0
  240. package/dist/renderer/LitRenderer.js +31 -24
  241. package/dist/renderer/LitRenderer.js.map +1 -0
  242. package/dist/renderer/executeTemplate.d.ts +13 -0
  243. package/dist/renderer/executeTemplate.js +20 -7
  244. package/dist/renderer/executeTemplate.js.map +1 -0
  245. package/dist/sap/base/Log.js +28 -29
  246. package/dist/sap/base/assert.js +5 -6
  247. package/dist/sap/base/security/URLListValidator.js +13 -2
  248. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  249. package/dist/theming/CustomStyle.d.ts +6 -0
  250. package/dist/theming/CustomStyle.js +33 -45
  251. package/dist/theming/CustomStyle.js.map +1 -0
  252. package/dist/theming/ThemeLoaded.d.ts +5 -0
  253. package/dist/theming/ThemeLoaded.js +8 -16
  254. package/dist/theming/ThemeLoaded.js.map +1 -0
  255. package/dist/theming/ThemeRegistered.d.ts +4 -0
  256. package/dist/theming/ThemeRegistered.js +11 -0
  257. package/dist/theming/ThemeRegistered.js.map +1 -0
  258. package/dist/theming/applyTheme.d.ts +2 -0
  259. package/dist/theming/applyTheme.js +60 -64
  260. package/dist/theming/applyTheme.js.map +1 -0
  261. package/dist/theming/getConstructableStyle.d.ts +9 -0
  262. package/dist/theming/getConstructableStyle.js +12 -17
  263. package/dist/theming/getConstructableStyle.js.map +1 -0
  264. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  265. package/dist/theming/getEffectiveLinksHrefs.js +13 -16
  266. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  267. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  268. package/dist/theming/getEffectiveStyle.js +25 -23
  269. package/dist/theming/getEffectiveStyle.js.map +1 -0
  270. package/dist/theming/getStylesString.d.ts +3 -0
  271. package/dist/theming/getStylesString.js +9 -13
  272. package/dist/theming/getStylesString.js.map +1 -0
  273. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  274. package/dist/theming/getThemeDesignerTheme.js +72 -79
  275. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  276. package/dist/theming/preloadLinks.d.ts +3 -0
  277. package/dist/theming/preloadLinks.js +13 -17
  278. package/dist/theming/preloadLinks.js.map +1 -0
  279. package/dist/thirdparty/_merge.d.ts +2 -0
  280. package/dist/thirdparty/_merge.js +7 -4
  281. package/dist/thirdparty/_merge.js.map +1 -0
  282. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  283. package/dist/thirdparty/isPlainObject.js +11 -10
  284. package/dist/thirdparty/isPlainObject.js.map +1 -0
  285. package/dist/thirdparty/merge.d.ts +2 -0
  286. package/dist/thirdparty/merge.js +4 -8
  287. package/dist/thirdparty/merge.js.map +1 -0
  288. package/dist/types/AnimationMode.d.ts +32 -0
  289. package/dist/types/AnimationMode.js +33 -6
  290. package/dist/types/AnimationMode.js.map +1 -0
  291. package/dist/types/CSSColor.d.ts +15 -0
  292. package/dist/types/CSSColor.js +14 -5
  293. package/dist/types/CSSColor.js.map +1 -0
  294. package/dist/types/CalendarType.d.ts +37 -0
  295. package/dist/types/CalendarType.js +35 -18
  296. package/dist/types/CalendarType.js.map +1 -0
  297. package/dist/types/DOMReference.d.ts +17 -0
  298. package/dist/types/DOMReference.js +25 -0
  299. package/dist/types/DOMReference.js.map +1 -0
  300. package/dist/types/DataType.d.ts +25 -0
  301. package/dist/types/DataType.js +33 -26
  302. package/dist/types/DataType.js.map +1 -0
  303. package/dist/types/Float.d.ts +17 -0
  304. package/dist/types/Float.js +17 -10
  305. package/dist/types/Float.js.map +1 -0
  306. package/dist/types/Integer.d.ts +17 -0
  307. package/dist/types/Integer.js +17 -9
  308. package/dist/types/Integer.js.map +1 -0
  309. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  310. package/dist/types/InvisibleMessageMode.js +20 -23
  311. package/dist/types/InvisibleMessageMode.js.map +1 -0
  312. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  313. package/dist/types/ItemNavigationBehavior.js +22 -12
  314. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  315. package/dist/types/NavigationMode.d.ts +32 -0
  316. package/dist/types/NavigationMode.js +33 -6
  317. package/dist/types/NavigationMode.js.map +1 -0
  318. package/dist/types/ValueState.d.ts +42 -0
  319. package/dist/types/ValueState.js +41 -19
  320. package/dist/types/ValueState.js.map +1 -0
  321. package/dist/types.d.ts +18 -0
  322. package/dist/types.js +2 -0
  323. package/dist/types.js.map +1 -0
  324. package/dist/updateShadowRoot.d.ts +8 -0
  325. package/dist/updateShadowRoot.js +25 -17
  326. package/dist/updateShadowRoot.js.map +1 -0
  327. package/dist/util/AriaLabelHelper.d.ts +15 -0
  328. package/dist/util/AriaLabelHelper.js +166 -36
  329. package/dist/util/AriaLabelHelper.js.map +1 -0
  330. package/dist/util/Caret.d.ts +7 -0
  331. package/dist/util/Caret.js +16 -38
  332. package/dist/util/Caret.js.map +1 -0
  333. package/dist/util/ColorConversion.d.ts +30 -0
  334. package/dist/util/ColorConversion.js +315 -348
  335. package/dist/util/ColorConversion.js.map +1 -0
  336. package/dist/util/FetchHelper.d.ts +3 -0
  337. package/dist/util/FetchHelper.js +19 -25
  338. package/dist/util/FetchHelper.js.map +1 -0
  339. package/dist/util/FocusableElements.d.ts +4 -0
  340. package/dist/util/FocusableElements.js +64 -71
  341. package/dist/util/FocusableElements.js.map +1 -0
  342. package/{src/util/HTMLSanitizer.js → dist/util/HTMLSanitizer.d.ts} +1 -5
  343. package/dist/util/HTMLSanitizer.js +4 -5
  344. package/dist/util/HTMLSanitizer.js.map +1 -0
  345. package/dist/util/InvisibleMessage.d.ts +10 -0
  346. package/dist/util/InvisibleMessage.js +42 -44
  347. package/dist/util/InvisibleMessage.js.map +1 -0
  348. package/dist/util/PopupUtils.d.ts +7 -0
  349. package/dist/util/PopupUtils.js +58 -77
  350. package/dist/util/PopupUtils.js.map +1 -0
  351. package/dist/util/SlotsHelper.d.ts +9 -0
  352. package/dist/util/SlotsHelper.js +22 -35
  353. package/dist/util/SlotsHelper.js.map +1 -0
  354. package/dist/util/StringHelper.d.ts +3 -0
  355. package/dist/util/StringHelper.js +17 -20
  356. package/dist/util/StringHelper.js.map +1 -0
  357. package/dist/util/TabbableElements.d.ts +17 -0
  358. package/dist/util/TabbableElements.js +53 -43
  359. package/dist/util/TabbableElements.js.map +1 -0
  360. package/dist/util/arraysAreEqual.d.ts +2 -0
  361. package/dist/util/arraysAreEqual.js +10 -12
  362. package/dist/util/arraysAreEqual.js.map +1 -0
  363. package/{src/util/clamp.js → dist/util/clamp.d.ts} +1 -4
  364. package/dist/util/clamp.js +2 -2
  365. package/dist/util/clamp.js.map +1 -0
  366. package/dist/util/createLinkInHead.d.ts +7 -0
  367. package/dist/util/createLinkInHead.js +14 -12
  368. package/dist/util/createLinkInHead.js.map +1 -0
  369. package/dist/util/createStyleInHead.d.ts +8 -0
  370. package/dist/util/createStyleInHead.js +10 -10
  371. package/dist/util/createStyleInHead.js.map +1 -0
  372. package/dist/util/debounce.d.ts +2 -0
  373. package/dist/util/debounce.js +6 -8
  374. package/dist/util/debounce.js.map +1 -0
  375. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  376. package/dist/util/detectNavigatorLanguage.js +7 -10
  377. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  378. package/dist/util/escapeRegex.d.ts +8 -0
  379. package/dist/util/escapeRegex.js +8 -7
  380. package/dist/util/escapeRegex.js.map +1 -0
  381. package/dist/util/formatMessage.d.ts +2 -0
  382. package/dist/util/formatMessage.js +15 -19
  383. package/dist/util/formatMessage.js.map +1 -0
  384. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  385. package/dist/util/generateHighlightedMarkup.js +26 -27
  386. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  387. package/dist/util/getActiveElement.d.ts +2 -0
  388. package/dist/util/getActiveElement.js +6 -8
  389. package/dist/util/getActiveElement.js.map +1 -0
  390. package/dist/util/getClassCopy.d.ts +398 -0
  391. package/dist/util/getClassCopy.js +7 -7
  392. package/dist/util/getClassCopy.js.map +1 -0
  393. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  394. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  395. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  396. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  397. package/dist/util/getEffectiveContentDensity.js +2 -3
  398. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  399. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  400. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  401. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  402. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  403. package/dist/util/getFastNavigationGroups.js +51 -0
  404. package/dist/util/getFastNavigationGroups.js.map +1 -0
  405. package/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
  406. package/dist/util/getFileExtension.js +9 -11
  407. package/dist/util/getFileExtension.js.map +1 -0
  408. package/dist/util/getNormalizedTarget.d.ts +7 -0
  409. package/dist/util/getNormalizedTarget.js +14 -0
  410. package/dist/util/getNormalizedTarget.js.map +1 -0
  411. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  412. package/dist/util/getSingletonElementInstance.js +7 -10
  413. package/dist/util/getSingletonElementInstance.js.map +1 -0
  414. package/dist/util/isElementClickable.d.ts +2 -0
  415. package/dist/util/isElementClickable.js +16 -0
  416. package/dist/util/isElementClickable.js.map +1 -0
  417. package/dist/util/isElementHidden.d.ts +2 -0
  418. package/dist/util/isElementHidden.js +8 -0
  419. package/dist/util/isElementHidden.js.map +1 -0
  420. package/dist/util/isElementInView.d.ts +6 -0
  421. package/dist/util/isElementInView.js +6 -9
  422. package/dist/util/isElementInView.js.map +1 -0
  423. package/dist/util/isElementTabbable.d.ts +9 -0
  424. package/dist/util/isElementTabbable.js +30 -0
  425. package/dist/util/isElementTabbable.js.map +1 -0
  426. package/dist/util/isValidPropertyName.d.ts +8 -0
  427. package/dist/util/isValidPropertyName.js +16 -17
  428. package/dist/util/isValidPropertyName.js.map +1 -0
  429. package/dist/util/whenDOMReady.d.ts +2 -0
  430. package/dist/util/whenDOMReady.js +11 -10
  431. package/dist/util/whenDOMReady.js.map +1 -0
  432. package/dist/util/willShowContent.d.ts +2 -0
  433. package/dist/util/willShowContent.js +7 -0
  434. package/dist/util/willShowContent.js.map +1 -0
  435. package/dist/validateThemeRoot.d.ts +2 -0
  436. package/dist/validateThemeRoot.js +48 -0
  437. package/dist/validateThemeRoot.js.map +1 -0
  438. package/index.js +227 -1
  439. package/lib/generate-asset-parameters/index.js +11 -5
  440. package/lib/generate-styles/index.js +26 -13
  441. package/lib/generate-version-info/index.js +18 -13
  442. package/package-scripts.cjs +71 -0
  443. package/package.json +8 -6
  444. package/src/css/BusyIndicator.css +80 -0
  445. package/src/css/FontFace.css +31 -10
  446. package/tsconfig.json +14 -0
  447. package/config/rollup.config.js +0 -1
  448. package/config/wdio.conf.js +0 -1
  449. package/dist/RenderScheduler.js +0 -44
  450. package/dist/animations/config.js +0 -5
  451. package/dist/isLegacyBrowser.js +0 -3
  452. package/dist/resources/bundle.esm.js +0 -37
  453. package/dist/resources/bundle.esm.js.map +0 -1
  454. package/dist/test-resources/assets/Themes.js +0 -17
  455. package/dist/test-resources/elements/Child.js +0 -35
  456. package/dist/test-resources/elements/Generic.js +0 -84
  457. package/dist/test-resources/elements/GenericExt.js +0 -26
  458. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  459. package/dist/test-resources/elements/Parent.js +0 -41
  460. package/dist/test-resources/elements/WithStaticArea.js +0 -77
  461. package/dist/test-resources/pages/AllTestElements.html +0 -42
  462. package/dist/test-resources/pages/Configuration.html +0 -18
  463. package/dist/test-resources/pages/ConfigurationScript.html +0 -34
  464. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  465. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  466. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  467. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  468. package/dist/test-resources/pages/i18n.html +0 -33
  469. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
  470. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
  471. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -93
  472. package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
  473. package/dist/test-resources/specs/EventProvider.spec.js +0 -63
  474. package/dist/test-resources/specs/StaticArea.spec.js +0 -78
  475. package/dist/test-resources/specs/Theming.spec.js +0 -33
  476. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
  477. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
  478. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
  479. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
  480. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
  481. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
  482. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
  483. package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
  484. package/dist/types/CSSSize.js +0 -9
  485. package/dist/types/PopupState.js +0 -37
  486. package/dist/util/findNodeOwner.js +0 -35
  487. package/dist/util/isDescendantOf.js +0 -15
  488. package/dist/util/isNodeClickable.js +0 -19
  489. package/dist/util/isNodeHidden.js +0 -9
  490. package/dist/util/isNodeTabbable.js +0 -28
  491. package/dist/util/setToArray.js +0 -10
  492. package/hash.txt +0 -1
  493. package/package-scripts.js +0 -67
  494. package/src/Boot.js +0 -61
  495. package/src/CustomElementsRegistry.js +0 -95
  496. package/src/DOMObserver.js +0 -65
  497. package/src/Device.js +0 -116
  498. package/src/EventProvider.js +0 -85
  499. package/src/FeaturesRegistry.js +0 -14
  500. package/src/FontFace.js +0 -30
  501. package/src/InitialConfiguration.js +0 -166
  502. package/src/Keys.js +0 -271
  503. package/src/ManagedStyles.js +0 -83
  504. package/src/MediaRange.js +0 -109
  505. package/src/PropertiesFileFormat.js +0 -95
  506. package/src/Render.js +0 -175
  507. package/src/RenderQueue.js +0 -66
  508. package/src/RenderScheduler.js +0 -44
  509. package/src/Runtimes.js +0 -107
  510. package/src/StaticArea.js +0 -3
  511. package/src/StaticAreaItem.js +0 -101
  512. package/src/SystemCSSVars.js +0 -10
  513. package/src/UI5Element.js +0 -1023
  514. package/src/UI5ElementMetadata.js +0 -327
  515. package/src/animations/AnimationQueue.js +0 -42
  516. package/src/animations/animate.js +0 -53
  517. package/src/animations/config.js +0 -5
  518. package/src/animations/scroll.js +0 -28
  519. package/src/animations/slideDown.js +0 -79
  520. package/src/animations/slideUp.js +0 -71
  521. package/src/asset-registries/Icons.js +0 -139
  522. package/src/asset-registries/Illustrations.js +0 -30
  523. package/src/asset-registries/LocaleData.js +0 -159
  524. package/src/asset-registries/Themes.js +0 -78
  525. package/src/asset-registries/i18n.js +0 -121
  526. package/src/assets-meta/IconCollectionsAlias.js +0 -18
  527. package/src/config/AnimationMode.js +0 -23
  528. package/src/config/CalendarType.js +0 -18
  529. package/src/config/FormatSettings.js +0 -13
  530. package/src/config/Language.js +0 -68
  531. package/src/config/NoConflict.js +0 -51
  532. package/src/config/RTL.js +0 -31
  533. package/src/config/Theme.js +0 -42
  534. package/src/delegate/ItemNavigation.js +0 -351
  535. package/src/delegate/ResizeHandler.js +0 -106
  536. package/src/delegate/ScrollEnablement.js +0 -188
  537. package/src/features/F6Navigation.js +0 -106
  538. package/src/features/OpenUI5Support.js +0 -125
  539. package/src/getSharedResource.js +0 -30
  540. package/src/i18nBundle.js +0 -86
  541. package/src/isLegacyBrowser.js +0 -3
  542. package/src/locale/Locale.js +0 -91
  543. package/src/locale/RTLAwareRegistry.js +0 -14
  544. package/src/locale/applyDirection.js +0 -17
  545. package/src/locale/directionChange.js +0 -32
  546. package/src/locale/getEffectiveDir.js +0 -28
  547. package/src/locale/getLocale.js +0 -41
  548. package/src/locale/languageChange.js +0 -22
  549. package/src/locale/nextFallbackLocale.js +0 -28
  550. package/src/locale/normalizeLocale.js +0 -54
  551. package/src/renderer/LitRenderer.js +0 -34
  552. package/src/renderer/executeTemplate.js +0 -17
  553. package/src/theming/CustomStyle.js +0 -60
  554. package/src/theming/ThemeLoaded.js +0 -22
  555. package/src/theming/applyTheme.js +0 -79
  556. package/src/theming/getConstructableStyle.js +0 -30
  557. package/src/theming/getEffectiveLinksHrefs.js +0 -20
  558. package/src/theming/getEffectiveStyle.js +0 -30
  559. package/src/theming/getStylesString.js +0 -15
  560. package/src/theming/getThemeDesignerTheme.js +0 -87
  561. package/src/theming/preloadLinks.js +0 -23
  562. package/src/thirdparty/_merge.js +0 -32
  563. package/src/thirdparty/isPlainObject.js +0 -18
  564. package/src/thirdparty/merge.js +0 -10
  565. package/src/types/AnimationMode.js +0 -7
  566. package/src/types/CSSColor.js +0 -9
  567. package/src/types/CSSSize.js +0 -9
  568. package/src/types/CalendarType.js +0 -22
  569. package/src/types/DataType.js +0 -37
  570. package/src/types/Float.js +0 -14
  571. package/src/types/Integer.js +0 -13
  572. package/src/types/InvisibleMessageMode.js +0 -30
  573. package/src/types/ItemNavigationBehavior.js +0 -16
  574. package/src/types/NavigationMode.js +0 -7
  575. package/src/types/PopupState.js +0 -37
  576. package/src/types/ValueState.js +0 -22
  577. package/src/updateShadowRoot.js +0 -30
  578. package/src/util/AriaLabelHelper.js +0 -41
  579. package/src/util/Caret.js +0 -45
  580. package/src/util/ColorConversion.js +0 -370
  581. package/src/util/FetchHelper.js +0 -31
  582. package/src/util/FocusableElements.js +0 -79
  583. package/src/util/InvisibleMessage.js +0 -58
  584. package/src/util/PopupUtils.js +0 -93
  585. package/src/util/SlotsHelper.js +0 -43
  586. package/src/util/StringHelper.js +0 -26
  587. package/src/util/TabbableElements.js +0 -47
  588. package/src/util/arraysAreEqual.js +0 -15
  589. package/src/util/createLinkInHead.js +0 -19
  590. package/src/util/createStyleInHead.js +0 -18
  591. package/src/util/debounce.js +0 -17
  592. package/src/util/detectNavigatorLanguage.js +0 -13
  593. package/src/util/escapeRegex.js +0 -10
  594. package/src/util/findNodeOwner.js +0 -35
  595. package/src/util/formatMessage.js +0 -23
  596. package/src/util/generateHighlightedMarkup.js +0 -42
  597. package/src/util/getActiveElement.js +0 -11
  598. package/src/util/getClassCopy.js +0 -10
  599. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  600. package/src/util/getEffectiveContentDensity.js +0 -5
  601. package/src/util/getSingletonElementInstance.js +0 -13
  602. package/src/util/isDescendantOf.js +0 -15
  603. package/src/util/isElementInView.js +0 -15
  604. package/src/util/isNodeClickable.js +0 -19
  605. package/src/util/isNodeHidden.js +0 -9
  606. package/src/util/isNodeTabbable.js +0 -28
  607. package/src/util/isValidPropertyName.js +0 -29
  608. package/src/util/setToArray.js +0 -10
  609. package/src/util/whenDOMReady.js +0 -13
  610. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -0,0 +1,15 @@
1
+ import UI5Element from "../UI5Element.js";
2
+ type MutationCallback = () => void;
3
+ declare const getEffectiveAriaLabelText: (el: HTMLElement) => string | undefined;
4
+ /**
5
+ *
6
+ * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
7
+ */
8
+ declare const getAllAccessibleNameRefTexts: (el: HTMLElement) => string;
9
+ /**
10
+ * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related "label for" texts
11
+ */
12
+ declare const getAssociatedLabelForTexts: (el: HTMLElement) => string | undefined;
13
+ declare const registerUI5Element: (el: UI5Element, callback: MutationCallback) => void;
14
+ declare const deregisterUI5Element: (el: UI5Element) => void;
15
+ export { getEffectiveAriaLabelText, getAssociatedLabelForTexts, registerUI5Element, deregisterUI5Element, getAllAccessibleNameRefTexts, };
@@ -1,41 +1,171 @@
1
- import findNodeOwner from "./findNodeOwner.js";
2
-
3
- const getEffectiveAriaLabelText = el => {
4
- if (!el.accessibleNameRef) {
5
- if (el.accessibleName) {
6
- return el.accessibleName;
7
- }
8
-
9
- return undefined;
10
- }
11
-
12
- return getAriaLabelledByTexts(el);
13
- };
14
-
1
+ const associatedElements = new WeakMap();
2
+ const registeredElements = new WeakMap();
3
+ const observerOptions = {
4
+ attributes: true,
5
+ childList: true,
6
+ characterData: true,
7
+ subtree: true,
8
+ };
9
+ const getEffectiveAriaLabelText = (el) => {
10
+ const accessibleEl = el;
11
+ if (!accessibleEl.accessibleNameRef) {
12
+ if (accessibleEl.accessibleName) {
13
+ return accessibleEl.accessibleName;
14
+ }
15
+ return undefined;
16
+ }
17
+ return getAllAccessibleNameRefTexts(el);
18
+ };
15
19
  /**
16
20
  *
17
21
  * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
18
- * @param {HTMLElement} ownerDocument (Optional) Defines the HTMLElement(might document or custom element) where the you want to search for the texts.
19
- * @param {String} readyIds (Optional) Defines a string of elements ids. The text of these elements will be returned. If used you should provide either el or ownerDocument
20
22
  */
21
- const getAriaLabelledByTexts = (el, ownerDocument, readyIds = "") => {
22
- const ids = (readyIds && readyIds.split(" ")) || el.accessibleNameRef.split(" ");
23
- const owner = ownerDocument || findNodeOwner(el);
24
- let result = "";
25
-
26
- ids.forEach((elementId, index) => {
27
- const element = owner.querySelector(`[id='${elementId}']`);
28
- result += `${element ? element.textContent : ""}`;
29
-
30
- if (index < ids.length - 1) {
31
- result += " ";
32
- }
33
- });
34
-
35
- return result;
36
- };
37
-
38
- export {
39
- getEffectiveAriaLabelText,
40
- getAriaLabelledByTexts,
23
+ const getAllAccessibleNameRefTexts = (el) => {
24
+ const ids = el.accessibleNameRef?.split(" ") ?? [];
25
+ const owner = el.getRootNode();
26
+ let result = "";
27
+ ids.forEach((elementId, index) => {
28
+ const element = owner.querySelector(`[id='${elementId}']`);
29
+ const text = `${element && element.textContent ? element.textContent : ""}`;
30
+ if (text) {
31
+ result += text;
32
+ if (index < ids.length - 1) {
33
+ result += " ";
34
+ }
35
+ }
36
+ });
37
+ return result;
38
+ };
39
+ const _getAllAssociatedElementsFromDOM = (el) => {
40
+ const set = new Set();
41
+ // adding labels with attribute for matching the el.id
42
+ const labelsForAssociated = _getAssociatedLabels(el);
43
+ labelsForAssociated.forEach(itm => {
44
+ set.add(itm);
45
+ });
46
+ // adding other elements that id is the same as accessibleNameRef value
47
+ const value = el["accessibleNameRef"];
48
+ const ids = value?.split(" ") ?? [];
49
+ ids.forEach(id => {
50
+ const refEl = _getReferencedElementById(el, id);
51
+ if (refEl) {
52
+ set.add(refEl);
53
+ }
54
+ });
55
+ return Array.from(set);
56
+ };
57
+ const _getAssociatedLabels = (el) => {
58
+ const labels = el.getRootNode().querySelectorAll(`[for="${el.id}"]`);
59
+ return Array.from(labels);
60
+ };
61
+ const _getReferencedElementById = (el, elementId) => {
62
+ return el.getRootNode().querySelector(`[id='${elementId}']`);
63
+ };
64
+ /**
65
+ * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related "label for" texts
66
+ */
67
+ const getAssociatedLabelForTexts = (el) => {
68
+ const results = [];
69
+ const labels = _getAssociatedLabels(el);
70
+ labels.forEach((label) => {
71
+ const labelText = label.textContent;
72
+ labelText && results.push(labelText);
73
+ });
74
+ if (results.length) {
75
+ return results.join(" ");
76
+ }
77
+ return undefined;
78
+ };
79
+ const _createInvalidationCallback = (el) => {
80
+ const invalidationCallback = (changeInfo) => {
81
+ if (!(changeInfo && changeInfo.type === "property" && changeInfo.name === "accessibleNameRef")) {
82
+ return;
83
+ }
84
+ const registeredElement = registeredElements.get(el);
85
+ if (!registeredElement) {
86
+ return;
87
+ }
88
+ const oldAssociatedElements = registeredElement.observedElements;
89
+ const newAssociatedElements = _getAllAssociatedElementsFromDOM(el);
90
+ oldAssociatedElements.forEach(oldElement => {
91
+ if (!newAssociatedElements.includes(oldElement)) {
92
+ _removeObservedElementFromRegisteredElement(registeredElement, oldElement);
93
+ }
94
+ });
95
+ newAssociatedElements.forEach(newElement => {
96
+ if (!oldAssociatedElements.includes(newElement)) {
97
+ _addObservedElementToRegisteredElement(registeredElement, newElement);
98
+ registeredElement.observedElements.push(newElement);
99
+ }
100
+ });
101
+ registeredElement?.callback();
102
+ };
103
+ return invalidationCallback;
104
+ };
105
+ const registerUI5Element = (el, callback) => {
106
+ if (registeredElements.has(el)) {
107
+ return;
108
+ }
109
+ const allAssociatedElements = _getAllAssociatedElementsFromDOM(el);
110
+ const invalidationCallback = _createInvalidationCallback(el);
111
+ const registeredElement = {
112
+ host: el,
113
+ observedElements: allAssociatedElements,
114
+ callback,
115
+ invalidationCallback,
116
+ };
117
+ registeredElements.set(el, registeredElement);
118
+ el.attachInvalidate(invalidationCallback);
119
+ allAssociatedElements.forEach((element) => {
120
+ _addObservedElementToRegisteredElement(registeredElement, element);
121
+ });
122
+ callback();
123
+ };
124
+ const _addObservedElementToRegisteredElement = (registeredElement, element) => {
125
+ let associatedElement = associatedElements.get(element);
126
+ if (!associatedElement) {
127
+ associatedElement = { observer: null, callbacks: [] };
128
+ const observer = new MutationObserver(() => {
129
+ const callbacks = associatedElement.callbacks;
130
+ callbacks.forEach(callback => {
131
+ callback();
132
+ });
133
+ const domEl = document.getElementById(element.id);
134
+ // if no longer should be observed from this registeredElement, remove it
135
+ if (!(registeredElement.host.id === element.getAttribute("for") || domEl)) {
136
+ _removeObservedElementFromRegisteredElement(registeredElement, element);
137
+ }
138
+ });
139
+ associatedElement.observer = observer;
140
+ observer.observe(element, observerOptions);
141
+ associatedElements.set(element, associatedElement);
142
+ }
143
+ if (!associatedElement.callbacks.includes(registeredElement.callback)) {
144
+ associatedElement.callbacks.push(registeredElement.callback);
145
+ }
146
+ };
147
+ const _removeObservedElementFromRegisteredElement = (registeredElement, element) => {
148
+ const associatedElement = associatedElements.get(element);
149
+ if (associatedElement) {
150
+ associatedElement.callbacks = associatedElement.callbacks.filter(itm => itm !== registeredElement.callback);
151
+ if (!associatedElement.callbacks.length) {
152
+ associatedElement.observer?.disconnect();
153
+ associatedElements.delete(element);
154
+ }
155
+ }
156
+ registeredElement.observedElements = registeredElement.observedElements.filter(itm => itm !== element);
157
+ };
158
+ const deregisterUI5Element = (el) => {
159
+ const registeredElement = registeredElements.get(el);
160
+ if (!registeredElement) {
161
+ return;
162
+ }
163
+ const oldObservedElements = [...registeredElement.observedElements];
164
+ oldObservedElements.forEach(observedElement => {
165
+ _removeObservedElementFromRegisteredElement(registeredElement, observedElement);
166
+ });
167
+ el.detachInvalidate(registeredElement.invalidationCallback);
168
+ registeredElements.delete(el);
41
169
  };
170
+ export { getEffectiveAriaLabelText, getAssociatedLabelForTexts, registerUI5Element, deregisterUI5Element, getAllAccessibleNameRefTexts, };
171
+ //# sourceMappingURL=AriaLabelHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AriaLabelHelper.js","sourceRoot":"","sources":["../../src/util/AriaLabelHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element, { ChangeInfo } from \"../UI5Element.js\";\n\ntype InvalidateCallback = (changeInfo: ChangeInfo) => void;\ntype MutationCallback = () => void;\ntype AssociatedElement = {\n\tobserver: MutationObserver | null;\n\tcallbacks: Array<MutationCallback>;\n};\ntype RegisteredElement = {\n\thost: UI5Element;\n\tobservedElements: Array<HTMLElement>;\n\tcallback: MutationCallback;\n\tinvalidationCallback: InvalidateCallback;\n};\n\nconst associatedElements = new WeakMap<HTMLElement, AssociatedElement>();\nconst registeredElements = new WeakMap<UI5Element, RegisteredElement>();\n\ntype AccessibleElement = HTMLElement & {\n\taccessibleNameRef: string;\n\taccessibleName: string;\n};\n\nconst observerOptions = {\n\tattributes: true,\n\tchildList: true,\n\tcharacterData: true,\n\tsubtree: true,\n};\n\nconst getEffectiveAriaLabelText = (el: HTMLElement) => {\n\tconst accessibleEl = el as AccessibleElement;\n\n\tif (!accessibleEl.accessibleNameRef) {\n\t\tif (accessibleEl.accessibleName) {\n\t\t\treturn accessibleEl.accessibleName;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\treturn getAllAccessibleNameRefTexts(el);\n};\n\n/**\n *\n * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts\n */\nconst getAllAccessibleNameRefTexts = (el: HTMLElement) => {\n\tconst ids = (el as AccessibleElement).accessibleNameRef?.split(\" \") ?? [];\n\tconst owner = el.getRootNode() as HTMLElement;\n\tlet result = \"\";\n\n\tids.forEach((elementId: string, index: number) => {\n\t\tconst element = owner.querySelector(`[id='${elementId}']`);\n\t\tconst text = `${element && element.textContent ? element.textContent : \"\"}`;\n\t\tif (text) {\n\t\t\tresult += text;\n\t\t\tif (index < ids.length - 1) {\n\t\t\t\tresult += \" \";\n\t\t\t}\n\t\t}\n\t});\n\n\treturn result;\n};\n\nconst _getAllAssociatedElementsFromDOM = (el: UI5Element): Array<HTMLElement> => {\n\tconst set = new Set<HTMLElement>();\n\t// adding labels with attribute for matching the el.id\n\tconst labelsForAssociated = _getAssociatedLabels(el);\n\tlabelsForAssociated.forEach(itm => {\n\t\tset.add(itm);\n\t});\n\t// adding other elements that id is the same as accessibleNameRef value\n\tconst value = el[\"accessibleNameRef\" as keyof typeof el] as string;\n\tconst ids = value?.split(\" \") ?? [];\n\tids.forEach(id => {\n\t\tconst refEl = _getReferencedElementById(el, id);\n\t\tif (refEl) {\n\t\t\tset.add(refEl);\n\t\t}\n\t});\n\treturn Array.from(set);\n};\n\nconst _getAssociatedLabels = (el: HTMLElement): Array<HTMLElement> => {\n\tconst labels = (el.getRootNode() as HTMLElement).querySelectorAll<HTMLElement>(`[for=\"${el.id}\"]`);\n\treturn Array.from(labels);\n};\n\nconst _getReferencedElementById = (el: HTMLElement, elementId: string): HTMLElement | null => {\n\treturn (el.getRootNode() as HTMLElement).querySelector<HTMLElement>(`[id='${elementId}']`);\n};\n\n/**\n * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related \"label for\" texts\n */\nconst getAssociatedLabelForTexts = (el: HTMLElement) => {\n\tconst results: Array<string> = [];\n\tconst labels = _getAssociatedLabels(el);\n\n\tlabels.forEach((label: HTMLElement) => {\n\t\tconst labelText = label.textContent;\n\t\tlabelText && results.push(labelText);\n\t});\n\n\tif (results.length) {\n\t\treturn results.join(\" \");\n\t}\n\n\treturn undefined;\n};\n\nconst _createInvalidationCallback = (el: UI5Element) => {\n\tconst invalidationCallback = (changeInfo: ChangeInfo) => {\n\t\tif (!(changeInfo && changeInfo.type === \"property\" && changeInfo.name === \"accessibleNameRef\")) {\n\t\t\treturn;\n\t\t}\n\t\tconst registeredElement = registeredElements.get(el);\n\t\tif (!registeredElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst oldAssociatedElements = registeredElement.observedElements;\n\t\tconst newAssociatedElements = _getAllAssociatedElementsFromDOM(el);\n\t\toldAssociatedElements.forEach(oldElement => {\n\t\t\tif (!newAssociatedElements.includes(oldElement)) {\n\t\t\t\t_removeObservedElementFromRegisteredElement(registeredElement, oldElement);\n\t\t\t}\n\t\t});\n\t\tnewAssociatedElements.forEach(newElement => {\n\t\t\tif (!oldAssociatedElements.includes(newElement)) {\n\t\t\t\t_addObservedElementToRegisteredElement(registeredElement, newElement);\n\t\t\t\tregisteredElement.observedElements.push(newElement);\n\t\t\t}\n\t\t});\n\t\tregisteredElement?.callback();\n\t};\n\treturn invalidationCallback;\n};\n\nconst registerUI5Element = (el: UI5Element, callback: MutationCallback) => {\n\tif (registeredElements.has(el)) {\n\t\treturn;\n\t}\n\tconst allAssociatedElements = _getAllAssociatedElementsFromDOM(el);\n\tconst invalidationCallback = _createInvalidationCallback(el);\n\tconst registeredElement = {\n\t\thost: el,\n\t\tobservedElements: allAssociatedElements,\n\t\tcallback,\n\t\tinvalidationCallback,\n\t};\n\tregisteredElements.set(el, registeredElement);\n\tel.attachInvalidate(invalidationCallback);\n\n\tallAssociatedElements.forEach((element: HTMLElement) => {\n\t\t_addObservedElementToRegisteredElement(registeredElement, element);\n\t});\n\tcallback();\n};\n\nconst _addObservedElementToRegisteredElement = (registeredElement: RegisteredElement, element: HTMLElement) => {\n\tlet associatedElement = associatedElements.get(element);\n\tif (!associatedElement) {\n\t\tassociatedElement = { observer: null, callbacks: [] };\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tconst callbacks = (associatedElement as AssociatedElement).callbacks;\n\t\t\tcallbacks.forEach(callback => {\n\t\t\t\tcallback();\n\t\t\t});\n\t\t\tconst domEl = document.getElementById(element.id);\n\t\t\t// if no longer should be observed from this registeredElement, remove it\n\t\t\tif (!(registeredElement.host.id === element.getAttribute(\"for\") || domEl)) {\n\t\t\t\t_removeObservedElementFromRegisteredElement(registeredElement, element);\n\t\t\t}\n\t\t});\n\t\tassociatedElement.observer = observer;\n\t\tobserver.observe(element, observerOptions);\n\t\tassociatedElements.set(element, associatedElement);\n\t}\n\tif (!associatedElement.callbacks.includes(registeredElement.callback)) {\n\t\tassociatedElement.callbacks.push(registeredElement.callback);\n\t}\n};\n\nconst _removeObservedElementFromRegisteredElement = (registeredElement: RegisteredElement, element: HTMLElement) => {\n\tconst associatedElement = associatedElements.get(element);\n\tif (associatedElement) {\n\t\tassociatedElement.callbacks = associatedElement.callbacks.filter(itm => itm !== registeredElement.callback);\n\t\tif (!associatedElement.callbacks.length) {\n\t\t\tassociatedElement.observer?.disconnect();\n\t\t\tassociatedElements.delete(element);\n\t\t}\n\t}\n\tregisteredElement.observedElements = registeredElement.observedElements.filter(itm => itm !== element);\n};\n\nconst deregisterUI5Element = (el: UI5Element) => {\n\tconst registeredElement = registeredElements.get(el);\n\tif (!registeredElement) {\n\t\treturn;\n\t}\n\tconst oldObservedElements = [...registeredElement.observedElements];\n\toldObservedElements.forEach(observedElement => {\n\t\t_removeObservedElementFromRegisteredElement(registeredElement, observedElement);\n\t});\n\tel.detachInvalidate(registeredElement.invalidationCallback);\n\tregisteredElements.delete(el);\n};\n\nexport {\n\tgetEffectiveAriaLabelText,\n\tgetAssociatedLabelForTexts,\n\tregisterUI5Element,\n\tderegisterUI5Element,\n\tgetAllAccessibleNameRefTexts,\n};\n"]}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns the caret (cursor) position of the specified text field (field).
3
+ * Return value range is 0-field.value.length.
4
+ */
5
+ declare const getCaretPosition: (field: HTMLInputElement) => number | null;
6
+ declare const setCaretPosition: (field: HTMLInputElement, caretPos: number | null) => void;
7
+ export { getCaretPosition, setCaretPosition, };
@@ -2,44 +2,22 @@
2
2
  * Returns the caret (cursor) position of the specified text field (field).
3
3
  * Return value range is 0-field.value.length.
4
4
  */
5
- const getCaretPosition = field => {
6
- // Initialize
7
- let caretPos = 0;
8
-
9
- // IE Support
10
- if (document.selection) {
11
- // Set focus on the element
12
- field.focus();
13
-
14
- // To get cursor position, get empty selection range
15
- const selection = document.selection.createRange();
16
-
17
- // Move selection start to 0 position
18
- selection.moveStart("character", -field.value.length);
19
-
20
- // The caret position is selection length
21
- caretPos = selection.text.length;
22
- } else if (field.selectionStart || field.selectionStart === "0") { // Firefox support
23
- caretPos = field.selectionDirection === "backward" ? field.selectionStart : field.selectionEnd;
24
- }
25
-
26
- return caretPos;
5
+ const getCaretPosition = (field) => {
6
+ // Initialize
7
+ let caretPos = 0;
8
+ if (field.selectionStart || field.selectionStart === 0) { // Firefox support
9
+ caretPos = field.selectionDirection === "backward" ? field.selectionStart : field.selectionEnd;
10
+ }
11
+ return caretPos;
27
12
  };
28
-
29
13
  const setCaretPosition = (field, caretPos) => {
30
- if (field.createTextRange) {
31
- const range = field.createTextRange();
32
- range.move("character", caretPos);
33
- range.select();
34
- } else if (field.selectionStart) {
35
- field.focus();
36
- field.setSelectionRange(caretPos, caretPos);
37
- } else {
38
- field.focus();
39
- }
40
- };
41
-
42
- export {
43
- getCaretPosition,
44
- setCaretPosition,
14
+ if (field.selectionStart) {
15
+ field.focus();
16
+ field.setSelectionRange(caretPos, caretPos);
17
+ }
18
+ else {
19
+ field.focus();
20
+ }
45
21
  };
22
+ export { getCaretPosition, setCaretPosition, };
23
+ //# sourceMappingURL=Caret.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Caret.js","sourceRoot":"","sources":["../../src/util/Caret.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAAuB,EAAiB,EAAE;IACnE,aAAa;IACb,IAAI,QAAQ,GAAkB,CAAC,CAAC;IAEhC,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE,EAAE,kBAAkB;QAC3E,QAAQ,GAAG,KAAK,CAAC,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;KAC/F;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAuB,EAAE,QAAuB,EAAE,EAAE;IAC7E,IAAI,KAAK,CAAC,cAAc,EAAE;QACzB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC5C;SAAM;QACN,KAAK,CAAC,KAAK,EAAE,CAAC;KACd;AACF,CAAC,CAAC;AAEF,OAAO,EACN,gBAAgB,EAChB,gBAAgB,GAChB,CAAC","sourcesContent":["/**\n * Returns the caret (cursor) position of the specified text field (field).\n * Return value range is 0-field.value.length.\n */\nconst getCaretPosition = (field: HTMLInputElement): number | null => {\n\t// Initialize\n\tlet caretPos: number | null = 0;\n\n\tif (field.selectionStart || field.selectionStart === 0) { // Firefox support\n\t\tcaretPos = field.selectionDirection === \"backward\" ? field.selectionStart : field.selectionEnd;\n\t}\n\n\treturn caretPos;\n};\n\nconst setCaretPosition = (field: HTMLInputElement, caretPos: number | null) => {\n\tif (field.selectionStart) {\n\t\tfield.focus();\n\t\tfield.setSelectionRange(caretPos, caretPos);\n\t} else {\n\t\tfield.focus();\n\t}\n};\n\nexport {\n\tgetCaretPosition,\n\tsetCaretPosition,\n};\n"]}
@@ -0,0 +1,30 @@
1
+ /**
2
+ *
3
+ * @param {String} color Color in one of the following formats: RGBA or HEX
4
+ */
5
+ type ColorHSL = {
6
+ h: number;
7
+ s: number;
8
+ l: number;
9
+ };
10
+ type ColorRGB = {
11
+ r: number;
12
+ b: number;
13
+ g: number;
14
+ };
15
+ declare const getRGBColor: (color: string) => ColorRGB;
16
+ /**
17
+ * Return an object with the properties for each of the main colors(red, green, blue)
18
+ * @param {String} color Receives a color in the following format: "rgb(0, 0, 0)
19
+ */
20
+ declare const RGBStringToRGBObject: (color: string) => ColorRGB;
21
+ declare const HSLToRGB: (color: ColorHSL) => ColorRGB;
22
+ declare const HEXToRGB: (hex: string) => ColorRGB;
23
+ /**
24
+ * Returns the hex value of the color as string
25
+ * @param {Object} color Receives an object with the properties for each of the main colors(r, g, b)
26
+ */
27
+ declare const RGBtoHEX: (color: ColorRGB) => string;
28
+ declare const RGBToHSL: (color: ColorRGB) => ColorHSL;
29
+ export { getRGBColor, HSLToRGB, HEXToRGB, RGBToHSL, RGBStringToRGBObject, RGBtoHEX, };
30
+ export type { ColorHSL, ColorRGB, };