@ui5/webcomponents-base 0.0.0-a289c53b5 → 0.0.0-a3b95fa49

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 (848) hide show
  1. package/CHANGELOG.md +1723 -0
  2. package/README.md +6 -12
  3. package/cypress/specs/Accessor.cy.tsx +79 -0
  4. package/cypress/specs/Boot.cy.tsx +19 -0
  5. package/cypress/specs/ConfigurationChange.cy.tsx +41 -0
  6. package/cypress/specs/ConfigurationScript.cy.tsx +133 -0
  7. package/cypress/specs/ConfigurationURL.cy.tsx +201 -0
  8. package/cypress/specs/CustomMount.cy.tsx +9 -0
  9. package/cypress/specs/CustomTheme.cy.tsx +36 -0
  10. package/cypress/specs/EventProvider.cy.tsx +59 -0
  11. package/cypress/specs/Events.cy.tsx +28 -0
  12. package/cypress/specs/SystemDOMElements.cy.tsx +8 -0
  13. package/cypress/specs/Theming.cy.tsx +74 -0
  14. package/cypress/specs/UI5ElementInvalidation.cy.tsx +252 -0
  15. package/cypress/specs/UI5ElementLifecycle.cy.tsx +82 -0
  16. package/cypress/specs/UI5ElementListenForChildPropChanges.cy.tsx +83 -0
  17. package/cypress/specs/UI5ElementMetadataExt.cy.tsx +42 -0
  18. package/cypress/specs/UI5ElementPropertyValidation.cy.tsx +16 -0
  19. package/cypress/specs/UI5ElementPropsAndAttrs.cy.tsx +113 -0
  20. package/cypress/specs/UI5ElementShadowDOM.cy.tsx +30 -0
  21. package/cypress/specs/UI5ElementSlots.cy.tsx +136 -0
  22. package/cypress/specs/WithComplexTemplate.cy.tsx +32 -0
  23. package/cypress/specs/i18n_texts.cy.tsx +129 -0
  24. package/cypress/specs/util/FocusableElements.cy.tsx +48 -0
  25. package/cypress/support/commands.ts +39 -0
  26. package/cypress/support/component-index.html +12 -0
  27. package/cypress/support/component.ts +36 -0
  28. package/cypress/tsconfig.json +21 -0
  29. package/cypress.config.js +3 -0
  30. package/dist/.tsbuildinfobuild +1 -0
  31. package/dist/AssetRegistry.d.ts +2 -2
  32. package/dist/AssetRegistry.js +2 -2
  33. package/dist/AssetRegistry.js.map +1 -1
  34. package/dist/Boot.d.ts +3 -2
  35. package/dist/Boot.js +12 -8
  36. package/dist/Boot.js.map +1 -1
  37. package/dist/CustomElementsRegistry.d.ts +2 -1
  38. package/dist/CustomElementsRegistry.js +5 -2
  39. package/dist/CustomElementsRegistry.js.map +1 -1
  40. package/dist/CustomElementsScope.d.ts +4 -4
  41. package/dist/CustomElementsScope.js +2 -2
  42. package/dist/CustomElementsScope.js.map +1 -1
  43. package/dist/CustomElementsScopeUtils.d.ts +11 -2
  44. package/dist/CustomElementsScopeUtils.js +21 -2
  45. package/dist/CustomElementsScopeUtils.js.map +1 -1
  46. package/dist/DOMObserver.js.map +1 -1
  47. package/dist/Device.d.ts +17 -2
  48. package/dist/Device.js +19 -14
  49. package/dist/Device.js.map +1 -1
  50. package/dist/EventProvider.js +1 -1
  51. package/dist/EventProvider.js.map +1 -1
  52. package/dist/FontFace.js +6 -1
  53. package/dist/FontFace.js.map +1 -1
  54. package/dist/IgnoreCustomElements.d.ts +25 -0
  55. package/dist/IgnoreCustomElements.js +37 -0
  56. package/dist/IgnoreCustomElements.js.map +1 -0
  57. package/dist/InitialConfiguration.d.ts +10 -3
  58. package/dist/InitialConfiguration.js +32 -9
  59. package/dist/InitialConfiguration.js.map +1 -1
  60. package/dist/Keys.d.ts +8 -1
  61. package/dist/Keys.js +114 -106
  62. package/dist/Keys.js.map +1 -1
  63. package/dist/Location.d.ts +11 -0
  64. package/dist/Location.js +49 -0
  65. package/dist/Location.js.map +1 -0
  66. package/dist/ManagedStyles.d.ts +5 -6
  67. package/dist/ManagedStyles.js +45 -53
  68. package/dist/ManagedStyles.js.map +1 -1
  69. package/dist/MediaRange.d.ts +6 -12
  70. package/dist/MediaRange.js +21 -31
  71. package/dist/MediaRange.js.map +1 -1
  72. package/dist/PropertiesFileFormat.js.map +1 -1
  73. package/dist/Render.js.map +1 -1
  74. package/dist/RenderQueue.js.map +1 -1
  75. package/dist/Runtimes.js +11 -0
  76. package/dist/Runtimes.js.map +1 -1
  77. package/dist/SystemCSSVars.js.map +1 -1
  78. package/dist/UI5Element.d.ts +121 -75
  79. package/dist/UI5Element.js +396 -229
  80. package/dist/UI5Element.js.map +1 -1
  81. package/dist/UI5ElementMetadata.d.ts +36 -27
  82. package/dist/UI5ElementMetadata.js +27 -72
  83. package/dist/UI5ElementMetadata.js.map +1 -1
  84. package/dist/animations/AnimationQueue.js.map +1 -1
  85. package/dist/animations/animate.js.map +1 -1
  86. package/dist/animations/slideUp.js.map +1 -1
  87. package/dist/asset-registries/Icons.d.ts +5 -4
  88. package/dist/asset-registries/Icons.js +28 -17
  89. package/dist/asset-registries/Icons.js.map +1 -1
  90. package/dist/asset-registries/Illustrations.d.ts +2 -0
  91. package/dist/asset-registries/Illustrations.js +51 -20
  92. package/dist/asset-registries/Illustrations.js.map +1 -1
  93. package/dist/asset-registries/LocaleData.js +1 -1
  94. package/dist/asset-registries/LocaleData.js.map +1 -1
  95. package/dist/asset-registries/Themes.d.ts +5 -7
  96. package/dist/asset-registries/Themes.js +27 -12
  97. package/dist/asset-registries/Themes.js.map +1 -1
  98. package/dist/asset-registries/i18n.d.ts +2 -2
  99. package/dist/asset-registries/i18n.js +4 -3
  100. package/dist/asset-registries/i18n.js.map +1 -1
  101. package/dist/{assets-meta → asset-registries/util}/IconCollectionsAlias.d.ts +1 -2
  102. package/dist/{assets-meta → asset-registries/util}/IconCollectionsAlias.js +1 -2
  103. package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
  104. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
  105. package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
  106. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
  107. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
  108. package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
  109. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
  110. package/dist/config/AnimationMode.d.ts +2 -2
  111. package/dist/config/AnimationMode.js +6 -1
  112. package/dist/config/AnimationMode.js.map +1 -1
  113. package/dist/config/CalendarType.d.ts +8 -1
  114. package/dist/config/CalendarType.js +23 -2
  115. package/dist/config/CalendarType.js.map +1 -1
  116. package/dist/config/ConfigurationReset.d.ts +4 -0
  117. package/dist/config/ConfigurationReset.js +11 -0
  118. package/dist/config/ConfigurationReset.js.map +1 -0
  119. package/dist/config/Fonts.d.ts +16 -0
  120. package/dist/config/Fonts.js +30 -0
  121. package/dist/config/Fonts.js.map +1 -0
  122. package/dist/config/FormatSettings.js +4 -0
  123. package/dist/config/FormatSettings.js.map +1 -1
  124. package/dist/config/Icons.d.ts +9 -24
  125. package/dist/config/Icons.js +8 -67
  126. package/dist/config/Icons.js.map +1 -1
  127. package/dist/config/Language.d.ts +1 -1
  128. package/dist/config/Language.js +11 -3
  129. package/dist/config/Language.js.map +1 -1
  130. package/dist/config/NoConflict.js +4 -0
  131. package/dist/config/NoConflict.js.map +1 -1
  132. package/dist/config/Theme.d.ts +4 -3
  133. package/dist/config/Theme.js +18 -8
  134. package/dist/config/Theme.js.map +1 -1
  135. package/dist/config/ThemeRoot.d.ts +27 -0
  136. package/dist/config/ThemeRoot.js +61 -0
  137. package/dist/config/ThemeRoot.js.map +1 -0
  138. package/dist/config/Timezone.d.ts +1 -1
  139. package/dist/config/Timezone.js +5 -1
  140. package/dist/config/Timezone.js.map +1 -1
  141. package/dist/config/Tooltips.d.ts +19 -0
  142. package/dist/config/Tooltips.js +29 -0
  143. package/dist/config/Tooltips.js.map +1 -0
  144. package/dist/connectToComponent.d.ts +9 -0
  145. package/dist/connectToComponent.js +59 -0
  146. package/dist/connectToComponent.js.map +1 -0
  147. package/dist/converters/DOMReference.d.ts +5 -0
  148. package/dist/converters/DOMReference.js +13 -0
  149. package/dist/converters/DOMReference.js.map +1 -0
  150. package/dist/css/FontFace.css +47 -17
  151. package/dist/css/SystemCSSVars.css +0 -8
  152. package/dist/custom-elements-internal.json +2803 -0
  153. package/dist/custom-elements.json +2500 -0
  154. package/dist/decorators/bound.d.ts +1 -0
  155. package/dist/decorators/bound.js +34 -0
  156. package/dist/decorators/bound.js.map +1 -0
  157. package/dist/decorators/customElement.d.ts +43 -3
  158. package/dist/decorators/customElement.js +14 -6
  159. package/dist/decorators/customElement.js.map +1 -1
  160. package/dist/decorators/event-strict.d.ts +15 -0
  161. package/dist/decorators/event-strict.js +26 -0
  162. package/dist/decorators/event-strict.js.map +1 -0
  163. package/dist/decorators/event.d.ts +8 -2
  164. package/dist/decorators/event.js +3 -0
  165. package/dist/decorators/event.js.map +1 -1
  166. package/dist/decorators/i18n.d.ts +17 -0
  167. package/dist/decorators/i18n.js +32 -0
  168. package/dist/decorators/i18n.js.map +1 -0
  169. package/dist/decorators/property.d.ts +1 -1
  170. package/dist/decorators/property.js +1 -1
  171. package/dist/decorators/property.js.map +1 -1
  172. package/dist/decorators/query.d.ts +25 -0
  173. package/dist/decorators/query.js +32 -0
  174. package/dist/decorators/query.js.map +1 -0
  175. package/dist/decorators/queryAll.d.ts +27 -0
  176. package/dist/decorators/queryAll.js +34 -0
  177. package/dist/decorators/queryAll.js.map +1 -0
  178. package/dist/decorators/slot.d.ts +1 -1
  179. package/dist/decorators/slot.js.map +1 -1
  180. package/dist/decorators.d.ts +8 -0
  181. package/dist/decorators.js +9 -0
  182. package/dist/decorators.js.map +1 -0
  183. package/dist/delegate/ItemNavigation.d.ts +9 -8
  184. package/dist/delegate/ItemNavigation.js +13 -14
  185. package/dist/delegate/ItemNavigation.js.map +1 -1
  186. package/dist/delegate/ResizeHandler.d.ts +4 -6
  187. package/dist/delegate/ResizeHandler.js +4 -6
  188. package/dist/delegate/ResizeHandler.js.map +1 -1
  189. package/dist/delegate/ScrollEnablement.js +2 -2
  190. package/dist/delegate/ScrollEnablement.js.map +1 -1
  191. package/dist/features/F6Navigation.d.ts +4 -3
  192. package/dist/features/F6Navigation.js +41 -9
  193. package/dist/features/F6Navigation.js.map +1 -1
  194. package/dist/features/InputElementsFormSupport.d.ts +15 -0
  195. package/dist/features/InputElementsFormSupport.js +39 -0
  196. package/dist/features/InputElementsFormSupport.js.map +1 -0
  197. package/dist/features/LegacyDateFormats.js.map +1 -1
  198. package/dist/features/OpenUI5Enablement.d.ts +3 -3
  199. package/dist/features/OpenUI5Enablement.js.map +1 -1
  200. package/dist/features/OpenUI5Support.d.ts +14 -6
  201. package/dist/features/OpenUI5Support.js +90 -46
  202. package/dist/features/OpenUI5Support.js.map +1 -1
  203. package/dist/features/patchPatcher.d.ts +11 -0
  204. package/dist/features/patchPatcher.js +11 -0
  205. package/dist/features/patchPatcher.js.map +1 -0
  206. package/dist/features/patchPopup.d.ts +15 -0
  207. package/dist/features/patchPopup.js +70 -0
  208. package/dist/features/patchPopup.js.map +1 -0
  209. package/dist/generated/AssetParameters.d.ts +6 -0
  210. package/dist/generated/AssetParameters.js +3 -10
  211. package/dist/generated/AssetParameters.js.map +1 -0
  212. package/dist/generated/VersionInfo.d.ts +10 -0
  213. package/dist/generated/VersionInfo.js +9 -8
  214. package/dist/generated/VersionInfo.js.map +1 -0
  215. package/dist/generated/css/BusyIndicator.css.d.ts +2 -3
  216. package/dist/generated/css/BusyIndicator.css.js +1 -6
  217. package/dist/generated/css/BusyIndicator.css.js.map +1 -1
  218. package/dist/generated/css/FontFace.css.d.ts +2 -3
  219. package/dist/generated/css/FontFace.css.js +1 -6
  220. package/dist/generated/css/FontFace.css.js.map +1 -1
  221. package/dist/generated/css/OverrideFontFace.css.d.ts +2 -3
  222. package/dist/generated/css/OverrideFontFace.css.js +1 -6
  223. package/dist/generated/css/OverrideFontFace.css.js.map +1 -1
  224. package/dist/generated/css/SystemCSSVars.css.d.ts +2 -3
  225. package/dist/generated/css/SystemCSSVars.css.js +1 -6
  226. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  227. package/dist/getSharedResource.js +7 -1
  228. package/dist/getSharedResource.js.map +1 -1
  229. package/dist/i18nBundle.d.ts +2 -4
  230. package/dist/i18nBundle.js +3 -5
  231. package/dist/i18nBundle.js.map +1 -1
  232. package/dist/index.d.ts +48 -0
  233. package/dist/index.js +88 -0
  234. package/dist/index.js.map +1 -0
  235. package/dist/jsx-dev-runtime.d.ts +4 -0
  236. package/dist/jsx-dev-runtime.js +43 -0
  237. package/dist/jsx-dev-runtime.js.map +1 -0
  238. package/dist/jsx-runtime.d.ts +50 -0
  239. package/dist/jsx-runtime.js +27 -0
  240. package/dist/jsx-runtime.js.map +1 -0
  241. package/dist/jsx-utils.d.ts +3 -0
  242. package/dist/jsx-utils.js +48 -0
  243. package/dist/jsx-utils.js.map +1 -0
  244. package/dist/locale/Locale.js.map +1 -1
  245. package/dist/locale/RTLAwareRegistry.d.ts +1 -1
  246. package/dist/locale/RTLAwareRegistry.js.map +1 -1
  247. package/dist/locale/applyDirection.d.ts +3 -2
  248. package/dist/locale/applyDirection.js +3 -2
  249. package/dist/locale/applyDirection.js.map +1 -1
  250. package/dist/locale/getEffectiveDir.d.ts +1 -1
  251. package/dist/locale/getEffectiveDir.js +3 -19
  252. package/dist/locale/getEffectiveDir.js.map +1 -1
  253. package/dist/locale/getLocale.js.map +1 -1
  254. package/dist/locale/nextFallbackLocale.js.map +1 -1
  255. package/dist/locale/normalizeLocale.js.map +1 -1
  256. package/dist/prod/AssetRegistry.js +2 -0
  257. package/dist/prod/AssetRegistry.js.map +7 -0
  258. package/dist/prod/Boot.js +2 -0
  259. package/dist/prod/Boot.js.map +7 -0
  260. package/dist/prod/CustomElementsRegistry.js +10 -0
  261. package/dist/prod/CustomElementsRegistry.js.map +7 -0
  262. package/dist/prod/CustomElementsScope.js +2 -0
  263. package/dist/prod/CustomElementsScope.js.map +7 -0
  264. package/dist/prod/CustomElementsScopeUtils.js +2 -0
  265. package/dist/prod/CustomElementsScopeUtils.js.map +7 -0
  266. package/dist/prod/DOMObserver.js +2 -0
  267. package/dist/prod/DOMObserver.js.map +7 -0
  268. package/dist/prod/Device.js +2 -0
  269. package/dist/prod/Device.js.map +7 -0
  270. package/dist/prod/EventProvider.js +2 -0
  271. package/dist/prod/EventProvider.js.map +7 -0
  272. package/dist/prod/FeaturesRegistry.js +2 -0
  273. package/dist/prod/FeaturesRegistry.js.map +7 -0
  274. package/dist/prod/FontFace.js +2 -0
  275. package/dist/prod/FontFace.js.map +7 -0
  276. package/dist/prod/IgnoreCustomElements.js +2 -0
  277. package/dist/prod/IgnoreCustomElements.js.map +7 -0
  278. package/dist/prod/InitialConfiguration.js +2 -0
  279. package/dist/prod/InitialConfiguration.js.map +7 -0
  280. package/dist/prod/Keys.js +2 -0
  281. package/dist/prod/Keys.js.map +7 -0
  282. package/dist/prod/Location.js +2 -0
  283. package/dist/prod/Location.js.map +7 -0
  284. package/dist/prod/ManagedStyles.js +2 -0
  285. package/dist/prod/ManagedStyles.js.map +7 -0
  286. package/dist/prod/MediaRange.js +2 -0
  287. package/dist/prod/MediaRange.js.map +7 -0
  288. package/dist/prod/PropertiesFileFormat.js +3 -0
  289. package/dist/prod/PropertiesFileFormat.js.map +7 -0
  290. package/dist/prod/Render.js +2 -0
  291. package/dist/prod/Render.js.map +7 -0
  292. package/dist/prod/RenderQueue.js +2 -0
  293. package/dist/prod/RenderQueue.js.map +7 -0
  294. package/dist/prod/Runtimes.js +2 -0
  295. package/dist/prod/Runtimes.js.map +7 -0
  296. package/dist/prod/SystemCSSVars.js +2 -0
  297. package/dist/prod/SystemCSSVars.js.map +7 -0
  298. package/dist/prod/Theming.js +2 -0
  299. package/dist/prod/Theming.js.map +7 -0
  300. package/dist/prod/UI5Element.js +2 -0
  301. package/dist/prod/UI5Element.js.map +7 -0
  302. package/dist/prod/UI5ElementMetadata.js +2 -0
  303. package/dist/prod/UI5ElementMetadata.js.map +7 -0
  304. package/dist/prod/animations/AnimationQueue.js +2 -0
  305. package/dist/prod/animations/AnimationQueue.js.map +7 -0
  306. package/dist/prod/animations/animate.js +2 -0
  307. package/dist/prod/animations/animate.js.map +7 -0
  308. package/dist/prod/animations/scroll.js +2 -0
  309. package/dist/prod/animations/scroll.js.map +7 -0
  310. package/dist/prod/animations/slideDown.js +2 -0
  311. package/dist/prod/animations/slideDown.js.map +7 -0
  312. package/dist/prod/animations/slideUp.js +2 -0
  313. package/dist/prod/animations/slideUp.js.map +7 -0
  314. package/dist/prod/asset-registries/Icons.js +2 -0
  315. package/dist/prod/asset-registries/Icons.js.map +7 -0
  316. package/dist/prod/asset-registries/Illustrations.js +2 -0
  317. package/dist/prod/asset-registries/Illustrations.js.map +7 -0
  318. package/dist/prod/asset-registries/LocaleData.js +2 -0
  319. package/dist/prod/asset-registries/LocaleData.js.map +7 -0
  320. package/dist/prod/asset-registries/Themes.js +2 -0
  321. package/dist/prod/asset-registries/Themes.js.map +7 -0
  322. package/dist/prod/asset-registries/i18n.js +2 -0
  323. package/dist/prod/asset-registries/i18n.js.map +7 -0
  324. package/dist/prod/asset-registries/util/IconCollectionsAlias.js +2 -0
  325. package/dist/prod/asset-registries/util/IconCollectionsAlias.js.map +7 -0
  326. package/dist/prod/asset-registries/util/IconCollectionsByTheme.js +2 -0
  327. package/dist/prod/asset-registries/util/IconCollectionsByTheme.js.map +7 -0
  328. package/dist/prod/asset-registries/util/getIconCollectionByTheme.js +2 -0
  329. package/dist/prod/asset-registries/util/getIconCollectionByTheme.js.map +7 -0
  330. package/dist/prod/config/AnimationMode.js +2 -0
  331. package/dist/prod/config/AnimationMode.js.map +7 -0
  332. package/dist/prod/config/CalendarType.js +2 -0
  333. package/dist/prod/config/CalendarType.js.map +7 -0
  334. package/dist/prod/config/ConfigurationReset.js +2 -0
  335. package/dist/prod/config/ConfigurationReset.js.map +7 -0
  336. package/dist/prod/config/Fonts.js +2 -0
  337. package/dist/prod/config/Fonts.js.map +7 -0
  338. package/dist/prod/config/FormatSettings.js +2 -0
  339. package/dist/prod/config/FormatSettings.js.map +7 -0
  340. package/dist/prod/config/Icons.js +2 -0
  341. package/dist/prod/config/Icons.js.map +7 -0
  342. package/dist/prod/config/Language.js +2 -0
  343. package/dist/prod/config/Language.js.map +7 -0
  344. package/dist/prod/config/NoConflict.js +2 -0
  345. package/dist/prod/config/NoConflict.js.map +7 -0
  346. package/dist/prod/config/Theme.js +2 -0
  347. package/dist/prod/config/Theme.js.map +7 -0
  348. package/dist/prod/config/ThemeRoot.js +2 -0
  349. package/dist/prod/config/ThemeRoot.js.map +7 -0
  350. package/dist/prod/config/Timezone.js +2 -0
  351. package/dist/prod/config/Timezone.js.map +7 -0
  352. package/dist/prod/config/Tooltips.js +2 -0
  353. package/dist/prod/config/Tooltips.js.map +7 -0
  354. package/dist/prod/connectToComponent.js +2 -0
  355. package/dist/prod/connectToComponent.js.map +7 -0
  356. package/dist/prod/converters/DOMReference.js +2 -0
  357. package/dist/prod/converters/DOMReference.js.map +7 -0
  358. package/dist/prod/decorators/bound.js +2 -0
  359. package/dist/prod/decorators/bound.js.map +7 -0
  360. package/dist/prod/decorators/customElement.js +2 -0
  361. package/dist/prod/decorators/customElement.js.map +7 -0
  362. package/dist/prod/decorators/event-strict.js +2 -0
  363. package/dist/prod/decorators/event-strict.js.map +7 -0
  364. package/dist/prod/decorators/event.js +2 -0
  365. package/dist/prod/decorators/event.js.map +7 -0
  366. package/dist/prod/decorators/i18n.js +2 -0
  367. package/dist/prod/decorators/i18n.js.map +7 -0
  368. package/dist/prod/decorators/property.js +2 -0
  369. package/dist/prod/decorators/property.js.map +7 -0
  370. package/dist/prod/decorators/query.js +2 -0
  371. package/dist/prod/decorators/query.js.map +7 -0
  372. package/dist/prod/decorators/queryAll.js +2 -0
  373. package/dist/prod/decorators/queryAll.js.map +7 -0
  374. package/dist/prod/decorators/slot.js +2 -0
  375. package/dist/prod/decorators/slot.js.map +7 -0
  376. package/dist/prod/decorators.js +2 -0
  377. package/dist/prod/decorators.js.map +7 -0
  378. package/dist/prod/delegate/ItemNavigation.js +2 -0
  379. package/dist/prod/delegate/ItemNavigation.js.map +7 -0
  380. package/dist/prod/delegate/ResizeHandler.js +2 -0
  381. package/dist/prod/delegate/ResizeHandler.js.map +7 -0
  382. package/dist/prod/delegate/ScrollEnablement.js +2 -0
  383. package/dist/prod/delegate/ScrollEnablement.js.map +7 -0
  384. package/dist/prod/features/F6Navigation.js +2 -0
  385. package/dist/prod/features/F6Navigation.js.map +7 -0
  386. package/dist/prod/features/InputElementsFormSupport.js +2 -0
  387. package/dist/prod/features/InputElementsFormSupport.js.map +7 -0
  388. package/dist/prod/features/LegacyDateFormats.js +2 -0
  389. package/dist/prod/features/LegacyDateFormats.js.map +7 -0
  390. package/dist/prod/features/OpenUI5Element.js +2 -0
  391. package/dist/prod/features/OpenUI5Element.js.map +7 -0
  392. package/dist/prod/features/OpenUI5Enablement.js +21 -0
  393. package/dist/prod/features/OpenUI5Enablement.js.map +7 -0
  394. package/dist/prod/features/OpenUI5Support.js +2 -0
  395. package/dist/prod/features/OpenUI5Support.js.map +7 -0
  396. package/dist/prod/features/patchPatcher.js +2 -0
  397. package/dist/prod/features/patchPatcher.js.map +7 -0
  398. package/dist/prod/features/patchPopup.js +2 -0
  399. package/dist/prod/features/patchPopup.js.map +7 -0
  400. package/dist/prod/generated/AssetParameters.js +2 -0
  401. package/dist/prod/generated/AssetParameters.js.map +7 -0
  402. package/dist/prod/generated/VersionInfo.js +2 -0
  403. package/dist/prod/generated/VersionInfo.js.map +7 -0
  404. package/dist/prod/generated/css/BusyIndicator.css.js +2 -0
  405. package/dist/prod/generated/css/BusyIndicator.css.js.map +7 -0
  406. package/dist/prod/generated/css/FontFace.css.js +2 -0
  407. package/dist/prod/generated/css/FontFace.css.js.map +7 -0
  408. package/dist/prod/generated/css/OverrideFontFace.css.js +2 -0
  409. package/dist/prod/generated/css/OverrideFontFace.css.js.map +7 -0
  410. package/dist/prod/generated/css/SystemCSSVars.css.js +2 -0
  411. package/dist/prod/generated/css/SystemCSSVars.css.js.map +7 -0
  412. package/dist/prod/getSharedResource.js +2 -0
  413. package/dist/prod/getSharedResource.js.map +7 -0
  414. package/dist/prod/global.d.js +2 -0
  415. package/dist/prod/global.d.js.map +7 -0
  416. package/dist/prod/i18nBundle.js +2 -0
  417. package/dist/prod/i18nBundle.js.map +7 -0
  418. package/dist/prod/index.js +2 -0
  419. package/dist/prod/index.js.map +7 -0
  420. package/dist/prod/jsx-dev-runtime.js +2 -0
  421. package/dist/prod/jsx-dev-runtime.js.map +7 -0
  422. package/dist/prod/jsx-runtime.js +2 -0
  423. package/dist/prod/jsx-runtime.js.map +7 -0
  424. package/dist/prod/jsx-utils.js +2 -0
  425. package/dist/prod/jsx-utils.js.map +7 -0
  426. package/dist/prod/locale/Locale.js +2 -0
  427. package/dist/prod/locale/Locale.js.map +7 -0
  428. package/dist/prod/locale/RTLAwareRegistry.js +2 -0
  429. package/dist/prod/locale/RTLAwareRegistry.js.map +7 -0
  430. package/dist/prod/locale/applyDirection.js +2 -0
  431. package/dist/prod/locale/applyDirection.js.map +7 -0
  432. package/dist/prod/locale/directionChange.js +2 -0
  433. package/dist/prod/locale/directionChange.js.map +7 -0
  434. package/dist/prod/locale/getEffectiveDir.js +2 -0
  435. package/dist/prod/locale/getEffectiveDir.js.map +7 -0
  436. package/dist/prod/locale/getLocale.js +2 -0
  437. package/dist/prod/locale/getLocale.js.map +7 -0
  438. package/dist/prod/locale/languageChange.js +2 -0
  439. package/dist/prod/locale/languageChange.js.map +7 -0
  440. package/dist/prod/locale/nextFallbackLocale.js +2 -0
  441. package/dist/prod/locale/nextFallbackLocale.js.map +7 -0
  442. package/dist/prod/locale/normalizeLocale.js +2 -0
  443. package/dist/prod/locale/normalizeLocale.js.map +7 -0
  444. package/dist/prod/renderer/JsxRenderer.js +2 -0
  445. package/dist/prod/renderer/JsxRenderer.js.map +7 -0
  446. package/dist/prod/renderer/LitRenderer.js +2 -0
  447. package/dist/prod/renderer/LitRenderer.js.map +7 -0
  448. package/dist/prod/renderer/directives/style-map.js +6 -0
  449. package/dist/prod/renderer/directives/style-map.js.map +7 -0
  450. package/dist/prod/renderer/executeTemplate.js +2 -0
  451. package/dist/prod/renderer/executeTemplate.js.map +7 -0
  452. package/dist/prod/sap/base/Log.js +750 -0
  453. package/dist/prod/sap/base/assert.js +34 -0
  454. package/dist/prod/sap/base/config/MemoryConfigurationProvider.js +20 -0
  455. package/dist/prod/sap/base/security/URLListValidator.js +406 -0
  456. package/dist/prod/sap/base/security/encodeCSS.js +40 -0
  457. package/dist/prod/sap/base/security/encodeXML.js +53 -0
  458. package/dist/prod/sap/base/security/sanitizeHTML.js +38 -0
  459. package/dist/prod/sap/base/strings/toHex.js +33 -0
  460. package/dist/prod/sap/base/util/now.js +28 -0
  461. package/dist/prod/sap/base/util/uid.js +27 -0
  462. package/dist/prod/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
  463. package/dist/prod/ssr-dom-shim.js +2 -0
  464. package/dist/prod/ssr-dom-shim.js.map +7 -0
  465. package/dist/prod/ssr-dom.js +2 -0
  466. package/dist/prod/ssr-dom.js.map +7 -0
  467. package/dist/prod/theming/CustomStyle.js +2 -0
  468. package/dist/prod/theming/CustomStyle.js.map +7 -0
  469. package/dist/prod/theming/ThemeLoaded.js +2 -0
  470. package/dist/prod/theming/ThemeLoaded.js.map +7 -0
  471. package/dist/prod/theming/ThemeRegistered.js +2 -0
  472. package/dist/prod/theming/ThemeRegistered.js.map +7 -0
  473. package/dist/prod/theming/applyTheme.js +2 -0
  474. package/dist/prod/theming/applyTheme.js.map +7 -0
  475. package/dist/prod/theming/getConstructableStyle.js +2 -0
  476. package/dist/prod/theming/getConstructableStyle.js.map +7 -0
  477. package/dist/prod/theming/getEffectiveStyle.js +2 -0
  478. package/dist/prod/theming/getEffectiveStyle.js.map +7 -0
  479. package/dist/prod/theming/getStylesString.js +2 -0
  480. package/dist/prod/theming/getStylesString.js.map +7 -0
  481. package/dist/prod/theming/getThemeDesignerTheme.js +2 -0
  482. package/dist/prod/theming/getThemeDesignerTheme.js.map +7 -0
  483. package/dist/prod/thirdparty/_merge.js +2 -0
  484. package/dist/prod/thirdparty/_merge.js.map +7 -0
  485. package/dist/prod/thirdparty/isPlainObject.js +2 -0
  486. package/dist/prod/thirdparty/isPlainObject.js.map +7 -0
  487. package/dist/prod/thirdparty/merge.js +2 -0
  488. package/dist/prod/thirdparty/merge.js.map +7 -0
  489. package/dist/prod/thirdparty/preact/jsx.d.js +2 -0
  490. package/dist/prod/thirdparty/preact/jsx.d.js.map +7 -0
  491. package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js +2 -0
  492. package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js.map +7 -0
  493. package/dist/prod/thirdparty/preact/jsxRuntime.module.js +1 -0
  494. package/dist/prod/thirdparty/preact/preact.module.d.js +2 -0
  495. package/dist/prod/thirdparty/preact/preact.module.d.js.map +7 -0
  496. package/dist/prod/thirdparty/preact/preact.module.js +1 -0
  497. package/dist/prod/types/AnimationMode.js +2 -0
  498. package/dist/prod/types/AnimationMode.js.map +7 -0
  499. package/dist/prod/types/CalendarType.js +2 -0
  500. package/dist/prod/types/CalendarType.js.map +7 -0
  501. package/dist/prod/types/InvisibleMessageMode.js +2 -0
  502. package/dist/prod/types/InvisibleMessageMode.js.map +7 -0
  503. package/dist/prod/types/ItemNavigationBehavior.js +2 -0
  504. package/dist/prod/types/ItemNavigationBehavior.js.map +7 -0
  505. package/dist/prod/types/MovePlacement.js +2 -0
  506. package/dist/prod/types/MovePlacement.js.map +7 -0
  507. package/dist/prod/types/NavigationMode.js +2 -0
  508. package/dist/prod/types/NavigationMode.js.map +7 -0
  509. package/dist/prod/types/Orientation.js +2 -0
  510. package/dist/prod/types/Orientation.js.map +7 -0
  511. package/dist/prod/types/SortOrder.js +2 -0
  512. package/dist/prod/types/SortOrder.js.map +7 -0
  513. package/dist/prod/types/ValueState.js +2 -0
  514. package/dist/prod/types/ValueState.js.map +7 -0
  515. package/dist/prod/types.js +2 -0
  516. package/dist/prod/types.js.map +7 -0
  517. package/dist/prod/updateShadowRoot.js +2 -0
  518. package/dist/prod/updateShadowRoot.js.map +7 -0
  519. package/dist/prod/util/AccessibilityTextsHelper.js +2 -0
  520. package/dist/prod/util/AccessibilityTextsHelper.js.map +7 -0
  521. package/dist/prod/util/Caret.js +2 -0
  522. package/dist/prod/util/Caret.js.map +7 -0
  523. package/dist/prod/util/ColorConversion.js +2 -0
  524. package/dist/prod/util/ColorConversion.js.map +7 -0
  525. package/dist/prod/util/FetchHelper.js +2 -0
  526. package/dist/prod/util/FetchHelper.js.map +7 -0
  527. package/dist/prod/util/FocusableElements.js +2 -0
  528. package/dist/prod/util/FocusableElements.js.map +7 -0
  529. package/dist/prod/util/HTMLSanitizer.js +2 -0
  530. package/dist/prod/util/HTMLSanitizer.js.map +7 -0
  531. package/dist/prod/util/InvisibleMessage.js +2 -0
  532. package/dist/prod/util/InvisibleMessage.js.map +7 -0
  533. package/dist/prod/util/PopupUtils.js +2 -0
  534. package/dist/prod/util/PopupUtils.js.map +7 -0
  535. package/dist/prod/util/SelectionAssistant.js +2 -0
  536. package/dist/prod/util/SelectionAssistant.js.map +7 -0
  537. package/dist/prod/util/SlotsHelper.js +2 -0
  538. package/dist/prod/util/SlotsHelper.js.map +7 -0
  539. package/dist/prod/util/StringHelper.js +2 -0
  540. package/dist/prod/util/StringHelper.js.map +7 -0
  541. package/dist/prod/util/TabbableElements.js +2 -0
  542. package/dist/prod/util/TabbableElements.js.map +7 -0
  543. package/dist/prod/util/arraysAreEqual.js +2 -0
  544. package/dist/prod/util/arraysAreEqual.js.map +7 -0
  545. package/dist/prod/util/clamp.js +2 -0
  546. package/dist/prod/util/clamp.js.map +7 -0
  547. package/dist/prod/util/createLinkInHead.js +2 -0
  548. package/dist/prod/util/createLinkInHead.js.map +7 -0
  549. package/dist/prod/util/debounce.js +2 -0
  550. package/dist/prod/util/debounce.js.map +7 -0
  551. package/dist/prod/util/detectNavigatorLanguage.js +2 -0
  552. package/dist/prod/util/detectNavigatorLanguage.js.map +7 -0
  553. package/dist/prod/util/dragAndDrop/DragRegistry.js +2 -0
  554. package/dist/prod/util/dragAndDrop/DragRegistry.js.map +7 -0
  555. package/dist/prod/util/dragAndDrop/findClosestPosition.js +2 -0
  556. package/dist/prod/util/dragAndDrop/findClosestPosition.js.map +7 -0
  557. package/dist/prod/util/dragAndDrop/handleDragOver.js +2 -0
  558. package/dist/prod/util/dragAndDrop/handleDragOver.js.map +7 -0
  559. package/dist/prod/util/dragAndDrop/handleDrop.js +2 -0
  560. package/dist/prod/util/dragAndDrop/handleDrop.js.map +7 -0
  561. package/dist/prod/util/dragAndDrop/longDragOverHandler.js +2 -0
  562. package/dist/prod/util/dragAndDrop/longDragOverHandler.js.map +7 -0
  563. package/dist/prod/util/escapeRegex.js +2 -0
  564. package/dist/prod/util/escapeRegex.js.map +7 -0
  565. package/dist/prod/util/fixSafariActiveState.js +2 -0
  566. package/dist/prod/util/fixSafariActiveState.js.map +7 -0
  567. package/dist/prod/util/formatMessage.js +2 -0
  568. package/dist/prod/util/formatMessage.js.map +7 -0
  569. package/dist/prod/util/generateHighlightedMarkup.js +2 -0
  570. package/dist/prod/util/generateHighlightedMarkup.js.map +7 -0
  571. package/dist/prod/util/getActiveElement.js +2 -0
  572. package/dist/prod/util/getActiveElement.js.map +7 -0
  573. package/dist/prod/util/getClassCopy.js +2 -0
  574. package/dist/prod/util/getClassCopy.js.map +7 -0
  575. package/dist/prod/util/getDesigntimePropertyAsArray.js +2 -0
  576. package/dist/prod/util/getDesigntimePropertyAsArray.js.map +7 -0
  577. package/dist/prod/util/getEffectiveContentDensity.js +2 -0
  578. package/dist/prod/util/getEffectiveContentDensity.js.map +7 -0
  579. package/dist/prod/util/getEffectiveScrollbarStyle.js +26 -0
  580. package/dist/prod/util/getEffectiveScrollbarStyle.js.map +7 -0
  581. package/dist/prod/util/getFastNavigationGroups.js +2 -0
  582. package/dist/prod/util/getFastNavigationGroups.js.map +7 -0
  583. package/dist/prod/util/getFileExtension.js +2 -0
  584. package/dist/prod/util/getFileExtension.js.map +7 -0
  585. package/dist/prod/util/getNormalizedTarget.js +2 -0
  586. package/dist/prod/util/getNormalizedTarget.js.map +7 -0
  587. package/dist/prod/util/getSingletonElementInstance.js +2 -0
  588. package/dist/prod/util/getSingletonElementInstance.js.map +7 -0
  589. package/dist/prod/util/hash2str.js +2 -0
  590. package/dist/prod/util/hash2str.js.map +7 -0
  591. package/dist/prod/util/isElementClickable.js +2 -0
  592. package/dist/prod/util/isElementClickable.js.map +7 -0
  593. package/dist/prod/util/isElementHidden.js +2 -0
  594. package/dist/prod/util/isElementHidden.js.map +7 -0
  595. package/dist/prod/util/isElementInView.js +2 -0
  596. package/dist/prod/util/isElementInView.js.map +7 -0
  597. package/dist/prod/util/isElementTabbable.js +2 -0
  598. package/dist/prod/util/isElementTabbable.js.map +7 -0
  599. package/dist/prod/util/isValidPropertyName.js +2 -0
  600. package/dist/prod/util/isValidPropertyName.js.map +7 -0
  601. package/dist/prod/util/throttle.js +2 -0
  602. package/dist/prod/util/throttle.js.map +7 -0
  603. package/dist/prod/util/toLowercaseEnumValue.js +2 -0
  604. package/dist/prod/util/toLowercaseEnumValue.js.map +7 -0
  605. package/dist/prod/util/whenDOMReady.js +2 -0
  606. package/dist/prod/util/whenDOMReady.js.map +7 -0
  607. package/dist/prod/util/willShowContent.js +2 -0
  608. package/dist/prod/util/willShowContent.js.map +7 -0
  609. package/dist/prod/validateThemeRoot.js +2 -0
  610. package/dist/prod/validateThemeRoot.js.map +7 -0
  611. package/dist/renderer/JsxRenderer.d.ts +3 -0
  612. package/dist/renderer/JsxRenderer.js +16 -0
  613. package/dist/renderer/JsxRenderer.js.map +1 -0
  614. package/dist/renderer/LitRenderer.d.ts +3 -3
  615. package/dist/renderer/LitRenderer.js +5 -10
  616. package/dist/renderer/LitRenderer.js.map +1 -1
  617. package/dist/renderer/directives/style-map.d.ts +13 -0
  618. package/dist/renderer/directives/style-map.js +59 -59
  619. package/dist/renderer/directives/style-map.js.map +1 -0
  620. package/dist/renderer/executeTemplate.d.ts +3 -4
  621. package/dist/renderer/executeTemplate.js +1 -19
  622. package/dist/renderer/executeTemplate.js.map +1 -1
  623. package/dist/sap/base/Log.js +698 -188
  624. package/dist/sap/base/assert.js +28 -1
  625. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  626. package/dist/sap/base/security/URLListValidator.js +253 -6
  627. package/dist/sap/base/security/encodeCSS.js +34 -8
  628. package/dist/sap/base/security/encodeXML.js +47 -17
  629. package/dist/sap/base/security/sanitizeHTML.js +35 -13
  630. package/dist/sap/base/strings/toHex.js +27 -2
  631. package/dist/sap/base/util/now.js +24 -3
  632. package/dist/sap/base/util/uid.js +27 -0
  633. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +113 -98
  634. package/dist/ssr-dom-shim.d.ts +1 -0
  635. package/dist/ssr-dom-shim.js +62 -0
  636. package/dist/ssr-dom-shim.js.map +1 -0
  637. package/dist/ssr-dom.d.ts +1 -0
  638. package/dist/ssr-dom.js +3 -0
  639. package/dist/ssr-dom.js.map +1 -0
  640. package/dist/theming/CustomStyle.js.map +1 -1
  641. package/dist/theming/applyTheme.js +9 -8
  642. package/dist/theming/applyTheme.js.map +1 -1
  643. package/dist/theming/getConstructableStyle.d.ts +2 -2
  644. package/dist/theming/getConstructableStyle.js +3 -3
  645. package/dist/theming/getConstructableStyle.js.map +1 -1
  646. package/dist/theming/getEffectiveStyle.d.ts +1 -1
  647. package/dist/theming/getEffectiveStyle.js +5 -12
  648. package/dist/theming/getEffectiveStyle.js.map +1 -1
  649. package/dist/theming/getStylesString.js +2 -4
  650. package/dist/theming/getStylesString.js.map +1 -1
  651. package/dist/theming/getThemeDesignerTheme.js +2 -1
  652. package/dist/theming/getThemeDesignerTheme.js.map +1 -1
  653. package/dist/thirdparty/_merge.js.map +1 -1
  654. package/dist/thirdparty/isPlainObject.js.map +1 -1
  655. package/dist/thirdparty/preact/jsx.d.ts +2616 -0
  656. package/dist/thirdparty/preact/jsxRuntime.module.d.ts +62 -0
  657. package/dist/thirdparty/preact/jsxRuntime.module.js +1 -0
  658. package/dist/thirdparty/preact/preact.module.d.ts +398 -0
  659. package/dist/thirdparty/preact/preact.module.js +1 -0
  660. package/dist/types/AnimationMode.d.ts +0 -8
  661. package/dist/types/AnimationMode.js +0 -8
  662. package/dist/types/AnimationMode.js.map +1 -1
  663. package/dist/types/CalendarType.d.ts +0 -9
  664. package/dist/types/CalendarType.js +0 -9
  665. package/dist/types/CalendarType.js.map +1 -1
  666. package/dist/types/InvisibleMessageMode.d.ts +5 -10
  667. package/dist/types/InvisibleMessageMode.js +4 -11
  668. package/dist/types/InvisibleMessageMode.js.map +1 -1
  669. package/dist/types/ItemNavigationBehavior.d.ts +0 -6
  670. package/dist/types/ItemNavigationBehavior.js +0 -6
  671. package/dist/types/ItemNavigationBehavior.js.map +1 -1
  672. package/dist/types/MovePlacement.d.ts +20 -0
  673. package/dist/types/MovePlacement.js +22 -0
  674. package/dist/types/MovePlacement.js.map +1 -0
  675. package/dist/types/NavigationMode.d.ts +0 -8
  676. package/dist/types/NavigationMode.js +0 -8
  677. package/dist/types/NavigationMode.js.map +1 -1
  678. package/dist/types/Orientation.d.ts +16 -0
  679. package/dist/types/Orientation.js +18 -0
  680. package/dist/types/Orientation.js.map +1 -0
  681. package/dist/types/SortOrder.d.ts +24 -0
  682. package/dist/types/SortOrder.js +26 -0
  683. package/dist/types/SortOrder.js.map +1 -0
  684. package/dist/types/ValueState.d.ts +3 -17
  685. package/dist/types/ValueState.js +3 -17
  686. package/dist/types/ValueState.js.map +1 -1
  687. package/dist/types.d.ts +37 -14
  688. package/dist/types.js.map +1 -1
  689. package/dist/updateShadowRoot.d.ts +1 -2
  690. package/dist/updateShadowRoot.js +4 -25
  691. package/dist/updateShadowRoot.js.map +1 -1
  692. package/dist/util/{AriaLabelHelper.d.ts → AccessibilityTextsHelper.d.ts} +4 -2
  693. package/dist/util/{AriaLabelHelper.js → AccessibilityTextsHelper.js} +36 -8
  694. package/dist/util/AccessibilityTextsHelper.js.map +1 -0
  695. package/dist/util/Caret.js.map +1 -1
  696. package/dist/util/ColorConversion.d.ts +2 -1
  697. package/dist/util/ColorConversion.js +233 -216
  698. package/dist/util/ColorConversion.js.map +1 -1
  699. package/dist/util/FetchHelper.js.map +1 -1
  700. package/dist/util/FocusableElements.js +40 -12
  701. package/dist/util/FocusableElements.js.map +1 -1
  702. package/dist/util/HTMLSanitizer.d.ts +2 -0
  703. package/dist/util/HTMLSanitizer.js +2 -2
  704. package/dist/util/HTMLSanitizer.js.map +1 -1
  705. package/dist/util/InvisibleMessage.js +2 -2
  706. package/dist/util/InvisibleMessage.js.map +1 -1
  707. package/dist/util/PopupUtils.d.ts +1 -3
  708. package/dist/util/PopupUtils.js +1 -15
  709. package/dist/util/PopupUtils.js.map +1 -1
  710. package/dist/util/SelectionAssistant.d.ts +12 -0
  711. package/dist/util/SelectionAssistant.js +79 -0
  712. package/dist/util/SelectionAssistant.js.map +1 -0
  713. package/dist/util/SlotsHelper.js.map +1 -1
  714. package/dist/util/StringHelper.d.ts +3 -1
  715. package/dist/util/StringHelper.js +15 -1
  716. package/dist/util/StringHelper.js.map +1 -1
  717. package/dist/util/TabbableElements.js +3 -10
  718. package/dist/util/TabbableElements.js.map +1 -1
  719. package/dist/util/arraysAreEqual.js.map +1 -1
  720. package/dist/util/clamp.js +2 -1
  721. package/dist/util/clamp.js.map +1 -1
  722. package/dist/util/createLinkInHead.d.ts +1 -1
  723. package/dist/util/createLinkInHead.js +1 -1
  724. package/dist/util/createLinkInHead.js.map +1 -1
  725. package/dist/util/debounce.js.map +1 -1
  726. package/dist/util/detectNavigatorLanguage.d.ts +2 -2
  727. package/dist/util/detectNavigatorLanguage.js +6 -1
  728. package/dist/util/detectNavigatorLanguage.js.map +1 -1
  729. package/dist/util/dragAndDrop/DragRegistry.d.ts +33 -0
  730. package/dist/util/dragAndDrop/DragRegistry.js +66 -0
  731. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
  732. package/dist/util/dragAndDrop/findClosestPosition.d.ts +12 -0
  733. package/dist/util/dragAndDrop/findClosestPosition.js +106 -0
  734. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
  735. package/dist/util/dragAndDrop/handleDragOver.d.ts +16 -0
  736. package/dist/util/dragAndDrop/handleDragOver.js +42 -0
  737. package/dist/util/dragAndDrop/handleDragOver.js.map +1 -0
  738. package/dist/util/dragAndDrop/handleDrop.d.ts +5 -0
  739. package/dist/util/dragAndDrop/handleDrop.js +22 -0
  740. package/dist/util/dragAndDrop/handleDrop.js.map +1 -0
  741. package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
  742. package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
  743. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
  744. package/dist/util/fixSafariActiveState.d.ts +2 -0
  745. package/dist/util/fixSafariActiveState.js +11 -0
  746. package/dist/util/fixSafariActiveState.js.map +1 -0
  747. package/dist/util/formatMessage.js.map +1 -1
  748. package/dist/util/generateHighlightedMarkup.js.map +1 -1
  749. package/dist/util/getActiveElement.js.map +1 -1
  750. package/dist/util/getClassCopy.d.ts +145 -102
  751. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -2
  752. package/dist/util/getDesigntimePropertyAsArray.js +2 -1
  753. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -1
  754. package/dist/util/getEffectiveScrollbarStyle.d.ts +1 -1
  755. package/dist/util/getEffectiveScrollbarStyle.js +31 -1
  756. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -1
  757. package/dist/util/getFastNavigationGroups.js +6 -1
  758. package/dist/util/getFastNavigationGroups.js.map +1 -1
  759. package/dist/util/getFileExtension.js.map +1 -1
  760. package/dist/util/getNormalizedTarget.js.map +1 -1
  761. package/dist/util/getSingletonElementInstance.d.ts +10 -1
  762. package/dist/util/getSingletonElementInstance.js +11 -2
  763. package/dist/util/getSingletonElementInstance.js.map +1 -1
  764. package/dist/util/hash2str.d.ts +1 -0
  765. package/dist/util/hash2str.js +14 -0
  766. package/dist/util/hash2str.js.map +1 -0
  767. package/dist/util/isElementClickable.js.map +1 -1
  768. package/dist/util/isElementHidden.js.map +1 -1
  769. package/dist/util/isElementTabbable.js +2 -2
  770. package/dist/util/isElementTabbable.js.map +1 -1
  771. package/dist/util/isValidPropertyName.js.map +1 -1
  772. package/dist/util/throttle.d.ts +2 -0
  773. package/dist/util/throttle.js +20 -0
  774. package/dist/util/throttle.js.map +1 -0
  775. package/dist/util/toLowercaseEnumValue.d.ts +3 -0
  776. package/dist/util/toLowercaseEnumValue.js +4 -0
  777. package/dist/util/toLowercaseEnumValue.js.map +1 -0
  778. package/dist/util/whenDOMReady.js.map +1 -1
  779. package/dist/validateThemeRoot.js +3 -2
  780. package/dist/validateThemeRoot.js.map +1 -1
  781. package/dist/vscode.html-custom-data.json +22 -0
  782. package/package-scripts.cjs +26 -23
  783. package/package.json +37 -11
  784. package/src/css/FontFace.css +47 -17
  785. package/src/css/SystemCSSVars.css +0 -8
  786. package/src/thirdparty/preact/jsxRuntime.module.js +1 -0
  787. package/src/thirdparty/preact/preact.module.js +1 -0
  788. package/src/thirdparty/preact/version.txt +1 -0
  789. package/tsconfig.json +18 -13
  790. package/.eslintignore +0 -16
  791. package/.eslintrc.cjs +0 -3
  792. package/bundle.esm.js +0 -64
  793. package/config/wdio.conf.cjs +0 -400
  794. package/dist/CSP.d.ts +0 -30
  795. package/dist/CSP.js +0 -51
  796. package/dist/CSP.js.map +0 -1
  797. package/dist/MarkedEvents.d.ts +0 -9
  798. package/dist/MarkedEvents.js +0 -15
  799. package/dist/MarkedEvents.js.map +0 -1
  800. package/dist/StaticArea.d.ts +0 -3
  801. package/dist/StaticArea.js +0 -7
  802. package/dist/StaticArea.js.map +0 -1
  803. package/dist/StaticAreaItem.d.ts +0 -36
  804. package/dist/StaticAreaItem.js +0 -99
  805. package/dist/StaticAreaItem.js.map +0 -1
  806. package/dist/api.json +0 -1
  807. package/dist/assets/Boot.34b7cea0.css +0 -1
  808. package/dist/assets/Boot.650535e2.js +0 -9
  809. package/dist/assets/bundle.esm.ceb1b6b8.js +0 -50
  810. package/dist/assets-meta/IconCollectionsAlias.js.map +0 -1
  811. package/dist/config/RTL.d.ts +0 -7
  812. package/dist/config/RTL.js +0 -37
  813. package/dist/config/RTL.js.map +0 -1
  814. package/dist/config/ThemeRoots.d.ts +0 -4
  815. package/dist/config/ThemeRoots.js +0 -28
  816. package/dist/config/ThemeRoots.js.map +0 -1
  817. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +0 -11
  818. package/dist/theming/getEffectiveLinksHrefs.d.ts +0 -3
  819. package/dist/theming/getEffectiveLinksHrefs.js +0 -17
  820. package/dist/theming/getEffectiveLinksHrefs.js.map +0 -1
  821. package/dist/theming/preloadLinks.d.ts +0 -3
  822. package/dist/theming/preloadLinks.js +0 -19
  823. package/dist/theming/preloadLinks.js.map +0 -1
  824. package/dist/types/CSSColor.d.ts +0 -15
  825. package/dist/types/CSSColor.js +0 -18
  826. package/dist/types/CSSColor.js.map +0 -1
  827. package/dist/types/DOMReference.d.ts +0 -17
  828. package/dist/types/DOMReference.js +0 -25
  829. package/dist/types/DOMReference.js.map +0 -1
  830. package/dist/types/DataType.d.ts +0 -25
  831. package/dist/types/DataType.js +0 -44
  832. package/dist/types/DataType.js.map +0 -1
  833. package/dist/types/Float.d.ts +0 -17
  834. package/dist/types/Float.js +0 -21
  835. package/dist/types/Float.js.map +0 -1
  836. package/dist/types/Integer.d.ts +0 -17
  837. package/dist/types/Integer.js +0 -21
  838. package/dist/types/Integer.js.map +0 -1
  839. package/dist/util/AriaLabelHelper.js.map +0 -1
  840. package/dist/util/createStyleInHead.d.ts +0 -8
  841. package/dist/util/createStyleInHead.js +0 -18
  842. package/dist/util/createStyleInHead.js.map +0 -1
  843. package/index.js +0 -230
  844. package/lib/generate-asset-parameters/index.js +0 -27
  845. package/lib/generate-styles/index.js +0 -31
  846. package/lib/generate-version-info/index.js +0 -32
  847. package/src/renderer/directives/style-map.js +0 -72
  848. package/used-modules.txt +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"ColorConversion.js","sourceRoot":"","sources":["../../src/util/ColorConversion.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * @param {String} color Color in one of the following formats: RGBA or HEX\n */\n\ntype ColorHSL = {\n\th: number,\n\ts: number,\n\tl: number,\n};\n\ntype ColorRGB = {\n\tr: number,\n\tb: number,\n\tg: number,\n};\n\n/**\n * Map of CSS colors to hex representation\n */\nenum CSSColors {\n\taliceblue = \"f0f8ff\",\n\tantiquewhite = \"faebd7\",\n\taqua = \"00ffff\",\n\taquamarine = \"7fffd4\",\n\tazure = \"f0ffff\",\n\tbeige = \"f5f5dc\",\n\tbisque = \"ffe4c4\",\n\tblack = \"000000\",\n\tblanchedalmond = \"ffebcd\",\n\tblue = \"0000ff\",\n\tblueviolet = \"8a2be2\",\n\tbrown = \"a52a2a\",\n\tburlywood = \"deb887\",\n\tcadetblue = \"5f9ea0\",\n\tchartreuse = \"7fff00\",\n\tchocolate = \"d2691e\",\n\tcoral = \"ff7f50\",\n\tcornflowerblue = \"6495ed\",\n\tcornsilk = \"fff8dc\",\n\tcrimson = \"dc143c\",\n\tcyan = \"00ffff\",\n\tdarkblue = \"00008b\",\n\tdarkcyan = \"008b8b\",\n\tdarkgoldenrod = \"b8860b\",\n\tdarkgray = \"a9a9a9\",\n\tdarkgrey = \"a9a9a9\",\n\tdarkgreen = \"006400\",\n\tdarkkhaki = \"bdb76b\",\n\tdarkmagenta = \"8b008b\",\n\tdarkolivegreen = \"556b2f\",\n\tdarkorange = \"ff8c00\",\n\tdarkorchid = \"9932cc\",\n\tdarkred = \"8b0000\",\n\tdarksalmon = \"e9967a\",\n\tdarkseagreen = \"8fbc8f\",\n\tdarkslateblue = \"483d8b\",\n\tdarkslategray = \"2f4f4f\",\n\tdarkslategrey = \"2f4f4f\",\n\tdarkturquoise = \"00ced1\",\n\tdarkviolet = \"9400d3\",\n\tdeeppink = \"ff1493\",\n\tdeepskyblue = \"00bfff\",\n\tdimgray = \"696969\",\n\tdimgrey = \"696969\",\n\tdodgerblue = \"1e90ff\",\n\tfirebrick = \"b22222\",\n\tfloralwhite = \"fffaf0\",\n\tforestgreen = \"228b22\",\n\tfuchsia = \"ff00ff\",\n\tgainsboro = \"dcdcdc\",\n\tghostwhite = \"f8f8ff\",\n\tgold = \"ffd700\",\n\tgoldenrod = \"daa520\",\n\tgray = \"808080\",\n\tgrey = \"808080\",\n\tgreen = \"008000\",\n\tgreenyellow = \"adff2f\",\n\thoneydew = \"f0fff0\",\n\thotpink = \"ff69b4\",\n\tindianred = \"cd5c5c\",\n\tindigo = \"4b0082\",\n\tivory = \"fffff0\",\n\tkhaki = \"f0e68c\",\n\tlavender = \"e6e6fa\",\n\tlavenderblush = \"fff0f5\",\n\tlawngreen = \"7cfc00\",\n\tlemonchiffon = \"fffacd\",\n\tlightblue = \"add8e6\",\n\tlightcoral = \"f08080\",\n\tlightcyan = \"e0ffff\",\n\tlightgoldenrodyellow = \"fafad2\",\n\tlightgray = \"d3d3d3\",\n\tlightgrey = \"d3d3d3\",\n\tlightgreen = \"90ee90\",\n\tlightpink = \"ffb6c1\",\n\tlightsalmon = \"ffa07a\",\n\tlightseagreen = \"20b2aa\",\n\tlightskyblue = \"87cefa\",\n\tlightslategray = \"778899\",\n\tlightslategrey = \"778899\",\n\tlightsteelblue = \"b0c4de\",\n\tlightyellow = \"ffffe0\",\n\tlime = \"00ff00\",\n\tlimegreen = \"32cd32\",\n\tlinen = \"faf0e6\",\n\tmagenta = \"ff00ff\",\n\tmaroon = \"800000\",\n\tmediumaquamarine = \"66cdaa\",\n\tmediumblue = \"0000cd\",\n\tmediumorchid = \"ba55d3\",\n\tmediumpurple = \"9370db\",\n\tmediumseagreen = \"3cb371\",\n\tmediumslateblue = \"7b68ee\",\n\tmediumspringgreen = \"00fa9a\",\n\tmediumturquoise = \"48d1cc\",\n\tmediumvioletred = \"c71585\",\n\tmidnightblue = \"191970\",\n\tmintcream = \"f5fffa\",\n\tmistyrose = \"ffe4e1\",\n\tmoccasin = \"ffe4b5\",\n\tnavajowhite = \"ffdead\",\n\tnavy = \"000080\",\n\toldlace = \"fdf5e6\",\n\tolive = \"808000\",\n\tolivedrab = \"6b8e23\",\n\torange = \"ffa500\",\n\torangered = \"ff4500\",\n\torchid = \"da70d6\",\n\tpalegoldenrod = \"eee8aa\",\n\tpalegreen = \"98fb98\",\n\tpaleturquoise = \"afeeee\",\n\tpalevioletred = \"db7093\",\n\tpapayawhip = \"ffefd5\",\n\tpeachpuff = \"ffdab9\",\n\tperu = \"cd853f\",\n\tpink = \"ffc0cb\",\n\tplum = \"dda0dd\",\n\tpowderblue = \"b0e0e6\",\n\tpurple = \"800080\",\n\tred = \"ff0000\",\n\trosybrown = \"bc8f8f\",\n\troyalblue = \"4169e1\",\n\tsaddlebrown = \"8b4513\",\n\tsalmon = \"fa8072\",\n\tsandybrown = \"f4a460\",\n\tseagreen = \"2e8b57\",\n\tseashell = \"fff5ee\",\n\tsienna = \"a0522d\",\n\tsilver = \"c0c0c0\",\n\tskyblue = \"87ceeb\",\n\tslateblue = \"6a5acd\",\n\tslategray = \"708090\",\n\tslategrey = \"708090\",\n\tsnow = \"fffafa\",\n\tspringgreen = \"00ff7f\",\n\tsteelblue = \"4682b4\",\n\ttan = \"d2b48c\",\n\tteal = \"008080\",\n\tthistle = \"d8bfd8\",\n\ttomato = \"ff6347\",\n\tturquoise = \"40e0d0\",\n\tviolet = \"ee82ee\",\n\twheat = \"f5deb3\",\n\twhite = \"ffffff\",\n\twhitesmoke = \"f5f5f5\",\n\tyellow = \"ffff00\",\n\tyellowgreen = \"9acd32\",\n\ttransparent = \"00000000\",\n}\n\nconst getRGBColor = (color: string): ColorRGB => {\n\tif (color.startsWith(\"rgba\")) {\n\t\treturn RGBAToRGB(color);\n\t}\n\n\tif (color.startsWith(\"rgb\")) {\n\t\treturn RGBStringToRGBObject(color);\n\t}\n\n\t// HEX\n\tif (color.indexOf(\"#\") === 0) {\n\t\t// Shorthand Syntax\n\t\tif (color.length === 4) {\n\t\t\tcolor = `${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\n\t\t} else {\n\t\t\tcolor = color.slice(1, color.length);\n\t\t}\n\t}\n\n\t// Css Color\n\tif (color in CSSColors) {\n\t\tcolor = CSSColors[color as keyof typeof CSSColors];\n\t}\n\n\treturn HEXToRGB(color);\n};\n\n/**\n * Return an object with the properties for each of the main colors(red, green, blue)\n * @param {String} color Receives a color in the following format: \"rgba(0, 0, 0, 1)\n */\nconst RGBAToRGB = (color: string): ColorRGB => {\n\tconst openingBracketIndex = color.indexOf(\"(\"),\n\t\tcommasIndexes = [];\n\n\tfor (let i = 0; i < color.length; i++) {\n\t\tif (color[i] === \",\") {\n\t\t\tcommasIndexes.push(i);\n\t\t}\n\t}\n\n\treturn {\n\t\tr: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),\n\t\tg: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),\n\t\tb: parseInt(color.slice(commasIndexes[1] + 1, commasIndexes[2]).trim()),\n\t};\n};\n\n/**\n * Return an object with the properties for each of the main colors(red, green, blue)\n * @param {String} color Receives a color in the following format: \"rgb(0, 0, 0)\n */\nconst RGBStringToRGBObject = (color: string): ColorRGB => {\n\tconst openingBracketIndex = color.indexOf(\"(\"),\n\t\tclosingBraketIndex = color.indexOf(\")\"),\n\t\tcommasIndexes = [];\n\n\tfor (let i = 0; i < color.length; i++) {\n\t\tif (color[i] === \",\") {\n\t\t\tcommasIndexes.push(i);\n\t\t}\n\t}\n\n\treturn {\n\t\tr: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),\n\t\tg: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),\n\t\tb: parseInt(color.slice(commasIndexes[1] + 1, closingBraketIndex).trim()),\n\t};\n};\n\nconst HSLToRGB = (color: ColorHSL): ColorRGB => {\n\t// Formula taken from https://www.rapidtables.com/convert/color/hsl-to-rgb.html\n\tconst C = (1 - Math.abs((2 * color.l) - 1)) * color.s,\n\t\tX = C * (1 - Math.abs(((color.h / 60) % 2) - 1)),\n\t\tm = color.l - C / 2;\n\n\tlet tempColor: ColorRGB;\n\tswitch (Math.round(color.h / 60)) {\n\t// 0 ≤ H < 60\n\tcase 0:\n\t\ttempColor = {\n\t\t\tr: C,\n\t\t\tg: X,\n\t\t\tb: 0,\n\t\t};\n\t\tbreak;\n\n\t// 60 ≤ H < 120\n\tcase 1:\n\t\ttempColor = {\n\t\t\tr: X,\n\t\t\tg: C,\n\t\t\tb: 0,\n\t\t};\n\t\tbreak;\n\n\t// 120 ≤ H < 180\n\tcase 2:\n\t\ttempColor = {\n\t\t\tr: 0,\n\t\t\tg: C,\n\t\t\tb: X,\n\t\t};\n\t\tbreak;\n\n\t// 180 ≤ H < 240\n\tcase 3:\n\t\ttempColor = {\n\t\t\tr: 0,\n\t\t\tg: X,\n\t\t\tb: C,\n\t\t};\n\t\tbreak;\n\n\t// 240 ≤ H < 300\n\tcase 4:\n\t\ttempColor = {\n\t\t\tr: X,\n\t\t\tg: 0,\n\t\t\tb: C,\n\t\t};\n\t\tbreak;\n\n\t// 300 ≤ H < 360\n\tdefault:\n\t\ttempColor = {\n\t\t\tr: C,\n\t\t\tg: 0,\n\t\t\tb: X,\n\t\t};\n\t}\n\n\treturn {\n\t\tr: Math.floor((tempColor.r + m) * 255),\n\t\tg: Math.floor((tempColor.g + m) * 255),\n\t\tb: Math.floor((tempColor.b + m) * 255),\n\t};\n};\n\nconst HEXToRGB = (hex: string): ColorRGB => {\n\t// Please make sure you pass a valid 6 digit hex color\n\t// In the implementation of this method we assume that the hex argument is a 6 digit valid hex color\n\n\treturn {\n\t\tr: parseInt(hex.substr(0, 2), 16),\n\t\tg: parseInt(hex.substr(2, 2), 16),\n\t\tb: parseInt(hex.substr(4, 2), 16),\n\t};\n};\n\n/**\n * Returns the hex value of the color as string\n * @param {Object} color Receives an object with the properties for each of the main colors(r, g, b)\n */\nconst RGBtoHEX = (color: ColorRGB): string => {\n\tconst hexMap = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\"];\n\tlet hexValue = \"#\";\n\n\tlet divisionNumber = color.r / 16;\n\tlet remainder = color.r % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\tdivisionNumber = color.g / 16;\n\tremainder = color.g % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\tdivisionNumber = color.b / 16;\n\tremainder = color.b % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\treturn hexValue;\n};\n\nconst RGBToHSL = (color: ColorRGB): ColorHSL => {\n\tconst R = color.r / 255,\n\t\tG = color.g / 255,\n\t\tB = color.b / 255,\n\t\tmax = Math.max(R, G, B),\n\t\tmin = Math.min(R, G, B),\n\t\tdelta = max - min;\n\n\tlet h = 0,\n\t\ts;\n\n\t// Hue calculation\n\tif (delta === 0) {\n\t\th = 0;\n\t} else if (max === R) {\n\t\th = 60 * (((G - B) / delta) % 6);\n\t} else if (max === G) {\n\t\th = 60 * (((B - R) / delta) + 2);\n\t} else if (max === B) {\n\t\th = 60 * (((R - G) / delta) + 4);\n\t}\n\n\t// Lightness calculation\n\tconst l = (max + min) / 2;\n\n\t// Saturation calculation\n\tif (delta === 0) {\n\t\ts = 0;\n\t} else {\n\t\ts = delta / (1 - Math.abs(2 * l - 1));\n\t}\n\n\treturn {\n\t\th,\n\t\ts,\n\t\tl,\n\t};\n};\n\nexport {\n\tgetRGBColor,\n\tHSLToRGB,\n\tHEXToRGB,\n\tRGBToHSL,\n\tRGBStringToRGBObject,\n\tRGBtoHEX,\n};\n\nexport type {\n\tColorHSL,\n\tColorRGB,\n};\n"]}
1
+ {"version":3,"file":"ColorConversion.js","sourceRoot":"","sources":["../../src/util/ColorConversion.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * @param {String} color Color in one of the following formats: RGBA or HEX\n */\n\ntype ColorHSL = {\n\th: number,\n\ts: number,\n\tl: number,\n};\n\ntype ColorRGB = {\n\tr: number,\n\tb: number,\n\tg: number,\n};\n\n/**\n * Map of CSS colors to hex representation\n */\nconst CSSColors = new Map([\n\t[\"aliceblue\", \"f0f8ff\"],\n\t[\"antiquewhite\", \"faebd7\"],\n\t[\"aqua\", \"00ffff\"],\n\t[\"aquamarine\", \"7fffd4\"],\n\t[\"azure\", \"f0ffff\"],\n\t[\"beige\", \"f5f5dc\"],\n\t[\"bisque\", \"ffe4c4\"],\n\t[\"black\", \"000000\"],\n\t[\"blanchedalmond\", \"ffebcd\"],\n\t[\"blue\", \"0000ff\"],\n\t[\"blueviolet\", \"8a2be2\"],\n\t[\"brown\", \"a52a2a\"],\n\t[\"burlywood\", \"deb887\"],\n\t[\"cadetblue\", \"5f9ea0\"],\n\t[\"chartreuse\", \"7fff00\"],\n\t[\"chocolate\", \"d2691e\"],\n\t[\"coral\", \"ff7f50\"],\n\t[\"cornflowerblue\", \"6495ed\"],\n\t[\"cornsilk\", \"fff8dc\"],\n\t[\"crimson\", \"dc143c\"],\n\t[\"cyan\", \"00ffff\"],\n\t[\"darkblue\", \"00008b\"],\n\t[\"darkcyan\", \"008b8b\"],\n\t[\"darkgoldenrod\", \"b8860b\"],\n\t[\"darkgray\", \"a9a9a9\"],\n\t[\"darkgrey\", \"a9a9a9\"],\n\t[\"darkgreen\", \"006400\"],\n\t[\"darkkhaki\", \"bdb76b\"],\n\t[\"darkmagenta\", \"8b008b\"],\n\t[\"darkolivegreen\", \"556b2f\"],\n\t[\"darkorange\", \"ff8c00\"],\n\t[\"darkorchid\", \"9932cc\"],\n\t[\"darkred\", \"8b0000\"],\n\t[\"darksalmon\", \"e9967a\"],\n\t[\"darkseagreen\", \"8fbc8f\"],\n\t[\"darkslateblue\", \"483d8b\"],\n\t[\"darkslategray\", \"2f4f4f\"],\n\t[\"darkslategrey\", \"2f4f4f\"],\n\t[\"darkturquoise\", \"00ced1\"],\n\t[\"darkviolet\", \"9400d3\"],\n\t[\"deeppink\", \"ff1493\"],\n\t[\"deepskyblue\", \"00bfff\"],\n\t[\"dimgray\", \"696969\"],\n\t[\"dimgrey\", \"696969\"],\n\t[\"dodgerblue\", \"1e90ff\"],\n\t[\"firebrick\", \"b22222\"],\n\t[\"floralwhite\", \"fffaf0\"],\n\t[\"forestgreen\", \"228b22\"],\n\t[\"fuchsia\", \"ff00ff\"],\n\t[\"gainsboro\", \"dcdcdc\"],\n\t[\"ghostwhite\", \"f8f8ff\"],\n\t[\"gold\", \"ffd700\"],\n\t[\"goldenrod\", \"daa520\"],\n\t[\"gray\", \"808080\"],\n\t[\"grey\", \"808080\"],\n\t[\"green\", \"008000\"],\n\t[\"greenyellow\", \"adff2f\"],\n\t[\"honeydew\", \"f0fff0\"],\n\t[\"hotpink\", \"ff69b4\"],\n\t[\"indianred\", \"cd5c5c\"],\n\t[\"indigo\", \"4b0082\"],\n\t[\"ivory\", \"fffff0\"],\n\t[\"khaki\", \"f0e68c\"],\n\t[\"lavender\", \"e6e6fa\"],\n\t[\"lavenderblush\", \"fff0f5\"],\n\t[\"lawngreen\", \"7cfc00\"],\n\t[\"lemonchiffon\", \"fffacd\"],\n\t[\"lightblue\", \"add8e6\"],\n\t[\"lightcoral\", \"f08080\"],\n\t[\"lightcyan\", \"e0ffff\"],\n\t[\"lightgoldenrodyellow\", \"fafad2\"],\n\t[\"lightgray\", \"d3d3d3\"],\n\t[\"lightgrey\", \"d3d3d3\"],\n\t[\"lightgreen\", \"90ee90\"],\n\t[\"lightpink\", \"ffb6c1\"],\n\t[\"lightsalmon\", \"ffa07a\"],\n\t[\"lightseagreen\", \"20b2aa\"],\n\t[\"lightskyblue\", \"87cefa\"],\n\t[\"lightslategray\", \"778899\"],\n\t[\"lightslategrey\", \"778899\"],\n\t[\"lightsteelblue\", \"b0c4de\"],\n\t[\"lightyellow\", \"ffffe0\"],\n\t[\"lime\", \"00ff00\"],\n\t[\"limegreen\", \"32cd32\"],\n\t[\"linen\", \"faf0e6\"],\n\t[\"magenta\", \"ff00ff\"],\n\t[\"maroon\", \"800000\"],\n\t[\"mediumaquamarine\", \"66cdaa\"],\n\t[\"mediumblue\", \"0000cd\"],\n\t[\"mediumorchid\", \"ba55d3\"],\n\t[\"mediumpurple\", \"9370db\"],\n\t[\"mediumseagreen\", \"3cb371\"],\n\t[\"mediumslateblue\", \"7b68ee\"],\n\t[\"mediumspringgreen\", \"00fa9a\"],\n\t[\"mediumturquoise\", \"48d1cc\"],\n\t[\"mediumvioletred\", \"c71585\"],\n\t[\"midnightblue\", \"191970\"],\n\t[\"mintcream\", \"f5fffa\"],\n\t[\"mistyrose\", \"ffe4e1\"],\n\t[\"moccasin\", \"ffe4b5\"],\n\t[\"navajowhite\", \"ffdead\"],\n\t[\"navy\", \"000080\"],\n\t[\"oldlace\", \"fdf5e6\"],\n\t[\"olive\", \"808000\"],\n\t[\"olivedrab\", \"6b8e23\"],\n\t[\"orange\", \"ffa500\"],\n\t[\"orangered\", \"ff4500\"],\n\t[\"orchid\", \"da70d6\"],\n\t[\"palegoldenrod\", \"eee8aa\"],\n\t[\"palegreen\", \"98fb98\"],\n\t[\"paleturquoise\", \"afeeee\"],\n\t[\"palevioletred\", \"db7093\"],\n\t[\"papayawhip\", \"ffefd5\"],\n\t[\"peachpuff\", \"ffdab9\"],\n\t[\"peru\", \"cd853f\"],\n\t[\"pink\", \"ffc0cb\"],\n\t[\"plum\", \"dda0dd\"],\n\t[\"powderblue\", \"b0e0e6\"],\n\t[\"purple\", \"800080\"],\n\t[\"red\", \"ff0000\"],\n\t[\"rosybrown\", \"bc8f8f\"],\n\t[\"royalblue\", \"4169e1\"],\n\t[\"saddlebrown\", \"8b4513\"],\n\t[\"salmon\", \"fa8072\"],\n\t[\"sandybrown\", \"f4a460\"],\n\t[\"seagreen\", \"2e8b57\"],\n\t[\"seashell\", \"fff5ee\"],\n\t[\"sienna\", \"a0522d\"],\n\t[\"silver\", \"c0c0c0\"],\n\t[\"skyblue\", \"87ceeb\"],\n\t[\"slateblue\", \"6a5acd\"],\n\t[\"slategray\", \"708090\"],\n\t[\"slategrey\", \"708090\"],\n\t[\"snow\", \"fffafa\"],\n\t[\"springgreen\", \"00ff7f\"],\n\t[\"steelblue\", \"4682b4\"],\n\t[\"tan\", \"d2b48c\"],\n\t[\"teal\", \"008080\"],\n\t[\"thistle\", \"d8bfd8\"],\n\t[\"tomato\", \"ff6347\"],\n\t[\"turquoise\", \"40e0d0\"],\n\t[\"violet\", \"ee82ee\"],\n\t[\"wheat\", \"f5deb3\"],\n\t[\"white\", \"ffffff\"],\n\t[\"whitesmoke\", \"f5f5f5\"],\n\t[\"yellow\", \"ffff00\"],\n\t[\"yellowgreen\", \"9acd32\"],\n\t[\"transparent\", \"00000000\"],\n]);\n\nconst getRGBColor = (color: string): ColorRGB => {\n\tif (color.startsWith(\"rgba\")) {\n\t\treturn RGBAToRGB(color);\n\t}\n\n\tif (color.startsWith(\"rgb\")) {\n\t\treturn RGBStringToRGBObject(color);\n\t}\n\n\t// HEX\n\tif (color.indexOf(\"#\") === 0) {\n\t\t// Shorthand Syntax\n\t\tif (color.length === 4) {\n\t\t\tcolor = `${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\n\t\t} else {\n\t\t\tcolor = color.slice(1, color.length);\n\t\t}\n\t}\n\n\t// Css Color\n\tif (CSSColors.has(color)) {\n\t\tcolor = CSSColors.get(color)!;\n\t}\n\n\treturn HEXToRGB(color);\n};\n\nconst getAlpha = (color: string): number => {\n\tlet alpha = 1;\n\n\tif (color.startsWith(\"rgba\") || color.startsWith(\"hsla\")) {\n\t\tconst parts = color.split(\",\");\n\t\tif (parts.length === 4) {\n\t\t\talpha = parseFloat(parts[3].replace(\")\", \"\").trim());\n\t\t}\n\t}\n\n\treturn alpha;\n};\n\n/**\n * Return an object with the properties for each of the main colors(red, green, blue)\n * @param {String} color Receives a color in the following format: \"rgba(0, 0, 0, 1)\n */\nconst RGBAToRGB = (color: string): ColorRGB => {\n\tconst openingBracketIndex = color.indexOf(\"(\"),\n\t\tcommasIndexes = [];\n\n\tfor (let i = 0; i < color.length; i++) {\n\t\tif (color[i] === \",\") {\n\t\t\tcommasIndexes.push(i);\n\t\t}\n\t}\n\n\treturn {\n\t\tr: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),\n\t\tg: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),\n\t\tb: parseInt(color.slice(commasIndexes[1] + 1, commasIndexes[2]).trim()),\n\t};\n};\n\n/**\n * Return an object with the properties for each of the main colors(red, green, blue)\n * @param {String} color Receives a color in the following format: \"rgb(0, 0, 0)\n */\nconst RGBStringToRGBObject = (color: string): ColorRGB => {\n\tconst openingBracketIndex = color.indexOf(\"(\"),\n\t\tclosingBraketIndex = color.indexOf(\")\"),\n\t\tcommasIndexes = [];\n\n\tfor (let i = 0; i < color.length; i++) {\n\t\tif (color[i] === \",\") {\n\t\t\tcommasIndexes.push(i);\n\t\t}\n\t}\n\n\treturn {\n\t\tr: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),\n\t\tg: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),\n\t\tb: parseInt(color.slice(commasIndexes[1] + 1, closingBraketIndex).trim()),\n\t};\n};\n\nconst HSLToRGB = (color: ColorHSL): ColorRGB => {\n\t// Formula taken from https://www.rapidtables.com/convert/color/hsl-to-rgb.html\n\tlet saturation = color.s,\n\t\tlightness = color.l,\n\t\tred,\n\t\tgreen,\n\t\tblue;\n\n\tif (saturation > 100) {\n\t\tsaturation = 1;\n\t} else if (saturation < 0) {\n\t\tsaturation = 0;\n\t} else {\n\t\tsaturation /= 100;\n\t}\n\n\tif (lightness > 100) {\n\t\tlightness = 1;\n\t} else if (lightness < 0) {\n\t\tlightness = 0;\n\t} else {\n\t\tlightness /= 100;\n\t}\n\n\tconst hue = ((color.h % 360) + 360) % 360,\n\t\td = saturation * (1 - Math.abs(2 * lightness - 1)),\n\t\tm = 255 * (lightness - 0.5 * d),\n\t\tx = d * (1 - Math.abs(((hue / 60) % 2) - 1)),\n\t\ti = Math.floor(hue / 60),\n\t\tm255x = m + 255 * x,\n\t\tm255d = m + 255 * d;\n\n\tswitch (i) {\n\tcase 0:\n\t\tred = m255d;\n\t\tgreen = m255x;\n\t\tblue = m;\n\t\tbreak;\n\tcase 1:\n\t\tred = m255x;\n\t\tgreen = m255d;\n\t\tblue = m;\n\t\tbreak;\n\tcase 2:\n\t\tred = m;\n\t\tgreen = m255d;\n\t\tblue = m255x;\n\t\tbreak;\n\tcase 3:\n\t\tred = m;\n\t\tgreen = m255x;\n\t\tblue = m255d;\n\t\tbreak;\n\tcase 4:\n\t\tred = m255x;\n\t\tgreen = m;\n\t\tblue = m255d;\n\t\tbreak;\n\tcase 5:\n\t\tred = m255d;\n\t\tgreen = m;\n\t\tblue = m255x;\n\t\tbreak;\n\tdefault:\n\t\tred = 0;\n\t\tgreen = 0;\n\t\tblue = 0;\n\t\tbreak;\n\t}\n\n\treturn {\n\t\tr: Math.round(red),\n\t\tg: Math.round(green),\n\t\tb: Math.round(blue),\n\t};\n};\n\nconst HEXToRGB = (hex: string): ColorRGB => {\n\t// Please make sure you pass a valid 6 digit hex color\n\t// In the implementation of this method we assume that the hex argument is a 6 digit valid hex color\n\n\treturn {\n\t\tr: parseInt(hex.substr(0, 2), 16),\n\t\tg: parseInt(hex.substr(2, 2), 16),\n\t\tb: parseInt(hex.substr(4, 2), 16),\n\t};\n};\n\n/**\n * Returns the hex value of the color as string\n * @param {Object} color Receives an object with the properties for each of the main colors(r, g, b)\n */\nconst RGBtoHEX = (color: ColorRGB): string => {\n\tconst hexMap = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\tlet hexValue = \"\";\n\n\tlet divisionNumber = color.r / 16;\n\tlet remainder = color.r % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\tdivisionNumber = color.g / 16;\n\tremainder = color.g % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\tdivisionNumber = color.b / 16;\n\tremainder = color.b % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\treturn hexValue;\n};\n\nconst RGBToHSL = (color: ColorRGB): ColorHSL => {\n\tconst R = color.r / 255,\n\t\tG = color.g / 255,\n\t\tB = color.b / 255,\n\t\tmax = Math.max(R, G, B),\n\t\tmin = Math.min(R, G, B),\n\t\tdelta = max - min;\n\n\tlet h = (max + min) / 2;\n\tlet s = (max + min) / 2;\n\tlet l = (max + min) / 2;\n\n\tif (max === min) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = l > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n\t\tswitch (max) {\n\t\tcase R:\n\t\t\th = (G - B) / delta + (G < B ? 6 : 0);\n\t\t\tbreak;\n\t\tcase G:\n\t\t\th = (B - R) / delta + 2;\n\t\t\tbreak;\n\t\tcase B:\n\t\t\th = (R - G) / delta + 4;\n\t\t\tbreak;\n\t\t}\n\n\t\th /= 6;\n\t}\n\n\th = Math.round(h * 360);\n\ts = Math.round(s * 100);\n\tl = Math.round(l * 100);\n\n\treturn {\n\t\th,\n\t\ts,\n\t\tl,\n\t};\n};\n\nexport {\n\tgetRGBColor,\n\tgetAlpha,\n\tHSLToRGB,\n\tHEXToRGB,\n\tRGBToHSL,\n\tRGBStringToRGBObject,\n\tRGBtoHEX,\n};\n\nexport type {\n\tColorHSL,\n\tColorRGB,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FetchHelper.js","sourceRoot":"","sources":["../../src/util/FetchHelper.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAC;AAC3D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;AACrD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;AAExD,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KACnC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KACvC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KACnC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KACvC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC","sourcesContent":["const fetchPromises = new Map<string, Promise<Response>>();\nconst jsonPromises = new Map<string, Promise<any>>();\nconst textPromises = new Map<string, Promise<string>>();\n\nconst fetchTextOnce = async (url: string) => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (response && !textPromises.get(url)) {\n\t\ttextPromises.set(url, response.text());\n\t}\n\n\treturn textPromises.get(url);\n};\n\nconst fetchJsonOnce = async (url: string) => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (response && !jsonPromises.get(url)) {\n\t\tjsonPromises.set(url, response.json());\n\t}\n\n\treturn jsonPromises.get(url);\n};\n\nexport { fetchTextOnce, fetchJsonOnce };\n"]}
1
+ {"version":3,"file":"FetchHelper.js","sourceRoot":"","sources":["../../src/util/FetchHelper.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAC;AAC3D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;AACrD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;AAExD,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC","sourcesContent":["const fetchPromises = new Map<string, Promise<Response>>();\nconst jsonPromises = new Map<string, Promise<any>>();\nconst textPromises = new Map<string, Promise<string>>();\n\nconst fetchTextOnce = async (url: string) => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (response && !textPromises.get(url)) {\n\t\ttextPromises.set(url, response.text());\n\t}\n\n\treturn textPromises.get(url);\n};\n\nconst fetchJsonOnce = async (url: string) => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (response && !jsonPromises.get(url)) {\n\t\tjsonPromises.set(url, response.json());\n\t}\n\n\treturn jsonPromises.get(url);\n};\n\nexport { fetchTextOnce, fetchJsonOnce };\n"]}
@@ -1,9 +1,15 @@
1
1
  import isElementHidden from "./isElementHidden.js";
2
2
  import isElementClickable from "./isElementClickable.js";
3
3
  import { instanceOfUI5Element } from "../UI5Element.js";
4
+ import { isSafari } from "../Device.js";
4
5
  const isFocusTrap = (el) => {
5
6
  return el.hasAttribute("data-ui5-focus-trap");
6
7
  };
8
+ const isScrollable = (el) => {
9
+ const computedStyle = getComputedStyle(el);
10
+ return (el.scrollHeight > el.clientHeight && ["scroll", "auto"].indexOf(computedStyle.overflowY) >= 0)
11
+ || (el.scrollWidth > el.clientWidth && ["scroll", "auto"].indexOf(computedStyle.overflowX) >= 0);
12
+ };
7
13
  const getFirstFocusableElement = async (container, startFromContainer) => {
8
14
  if (!container || isElementHidden(container)) {
9
15
  return null;
@@ -19,6 +25,15 @@ const getLastFocusableElement = async (container, startFromContainer) => {
19
25
  const isElemFocusable = (el) => {
20
26
  return el.hasAttribute("data-ui5-focus-redirect") || !isElementHidden(el);
21
27
  };
28
+ const isUI5ElementWithNegativeTabIndex = (el) => {
29
+ if (instanceOfUI5Element(el)) {
30
+ const tabIndex = el.getAttribute("tabindex");
31
+ if (tabIndex !== null && parseInt(tabIndex) < 0) {
32
+ return true;
33
+ }
34
+ }
35
+ return false;
36
+ };
22
37
  const findFocusableElement = async (container, forward, startFromContainer) => {
23
38
  let child;
24
39
  let assignedElements;
@@ -41,19 +56,32 @@ const findFocusableElement = async (container, forward, startFromContainer) => {
41
56
  /* eslint-disable no-await-in-loop */
42
57
  while (child) {
43
58
  const originalChild = child;
44
- if (instanceOfUI5Element(child)) {
45
- child = await child.getFocusDomRefAsync();
46
- }
47
- if (!child) {
48
- return null;
49
- }
50
- if (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {
51
- if (isElementClickable(child)) {
52
- return (child && typeof child.focus === "function") ? child : null;
59
+ if (!isElementHidden(originalChild) && !isUI5ElementWithNegativeTabIndex(originalChild)) {
60
+ if (instanceOfUI5Element(child)) {
61
+ // getDomRef is used because some components mark their focusable ref in an inner
62
+ // html but there might also be focusable targets outside of it
63
+ // as an example - TreeItemBase
64
+ // div - root of the component returned by getDomRef()
65
+ // li.ui5-li-tree - returned by getFocusDomRef() and may not be focusable (ItemNavigation manages tabindex)
66
+ // ul.subtree - may still contain focusable targets (sub nodes of the tree item)
67
+ await child._waitForDomRef();
68
+ child = child.getDomRef();
69
+ }
70
+ if (!child || isElementHidden(child)) {
71
+ return null;
53
72
  }
54
- focusableDescendant = await findFocusableElement(child, forward);
55
- if (focusableDescendant) {
56
- return (focusableDescendant && typeof focusableDescendant.focus === "function") ? focusableDescendant : null;
73
+ if (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {
74
+ if (isElementClickable(child)) {
75
+ return (child && typeof child.focus === "function") ? child : null;
76
+ }
77
+ focusableDescendant = await findFocusableElement(child, forward);
78
+ // check if it is a keyboard focusable scroll container
79
+ if (!isSafari() && !focusableDescendant && isScrollable(child)) {
80
+ return (child && typeof child.focus === "function") ? child : null;
81
+ }
82
+ if (focusableDescendant) {
83
+ return (focusableDescendant && typeof focusableDescendant.focus === "function") ? focusableDescendant : null;
84
+ }
57
85
  }
58
86
  }
59
87
  child = forward ? originalChild.nextSibling : originalChild.previousSibling;
@@ -1 +1 @@
1
- {"version":3,"file":"FocusableElements.js","sourceRoot":"","sources":["../../src/util/FocusableElements.ts"],"names":[],"mappings":"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","sourcesContent":["import isElementHidden from \"./isElementHidden.js\";\nimport isElementClickable from \"./isElementClickable.js\";\nimport { instanceOfUI5Element } from \"../UI5Element.js\";\n\ntype FocusableElementPromise = Promise<HTMLElement | null>;\n\nconst isFocusTrap = (el: HTMLElement) => {\n\treturn el.hasAttribute(\"data-ui5-focus-trap\");\n};\n\nconst getFirstFocusableElement = async (container: HTMLElement, startFromContainer?: boolean): FocusableElementPromise => {\n\tif (!container || isElementHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, true, startFromContainer);\n};\n\nconst getLastFocusableElement = async (container: HTMLElement, startFromContainer?: boolean): FocusableElementPromise => {\n\tif (!container || isElementHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, false, startFromContainer);\n};\n\nconst isElemFocusable = (el: HTMLElement) => {\n\treturn el.hasAttribute(\"data-ui5-focus-redirect\") || !isElementHidden(el);\n};\n\nconst findFocusableElement = async (container: HTMLElement, forward: boolean, startFromContainer?: boolean): FocusableElementPromise => {\n\tlet child: HTMLElement | undefined;\n\tlet assignedElements;\n\tlet currentIndex = -1;\n\n\tif (container.shadowRoot) {\n\t\tchild = forward ? container.shadowRoot.firstChild as HTMLElement : container.shadowRoot.lastChild as HTMLElement;\n\t} else if (container instanceof HTMLSlotElement && container.assignedNodes()) {\n\t\tassignedElements = container.assignedNodes();\n\t\tcurrentIndex = forward ? 0 : assignedElements.length - 1;\n\t\tchild = assignedElements[currentIndex] as HTMLElement;\n\t} else if (startFromContainer) {\n\t\tchild = container;\n\t} else {\n\t\tchild = forward ? container.firstElementChild as HTMLElement : container.lastElementChild as HTMLElement;\n\t}\n\n\tlet focusableDescendant;\n\n\t/* eslint-disable no-await-in-loop */\n\n\twhile (child) {\n\t\tconst originalChild: HTMLElement | undefined = child;\n\n\t\tif (instanceOfUI5Element(child)) {\n\t\t\tchild = await child.getFocusDomRefAsync();\n\t\t}\n\n\t\tif (!child) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {\n\t\t\tif (isElementClickable(child)) {\n\t\t\t\treturn (child && typeof child.focus === \"function\") ? child : null;\n\t\t\t}\n\n\t\t\tfocusableDescendant = await findFocusableElement(child, forward);\n\t\t\tif (focusableDescendant) {\n\t\t\t\treturn (focusableDescendant && typeof focusableDescendant.focus === \"function\") ? focusableDescendant : null;\n\t\t\t}\n\t\t}\n\n\t\tchild = forward ? originalChild.nextSibling as HTMLElement : originalChild.previousSibling as HTMLElement;\n\n\t\t// If the child element is not part of the currently assigned element,\n\t\t// we have to check the next/previous element assigned to the slot or continue with the next/previous sibling of the slot,\n\t\t// otherwise, the nextSibling/previousSibling is the next element inside the light DOM\n\t\tif (assignedElements && !assignedElements[currentIndex].contains(child)) {\n\t\t\tcurrentIndex = forward ? currentIndex + 1 : currentIndex - 1;\n\n\t\t\tchild = assignedElements[currentIndex] as HTMLElement;\n\t\t}\n\t}\n\n\t/* eslint-enable no-await-in-loop */\n\n\treturn null;\n};\n\nexport {\n\tgetFirstFocusableElement,\n\tgetLastFocusableElement,\n};\n"]}
1
+ {"version":3,"file":"FocusableElements.js","sourceRoot":"","sources":["../../src/util/FocusableElements.ts"],"names":[],"mappings":"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","sourcesContent":["import isElementHidden from \"./isElementHidden.js\";\nimport isElementClickable from \"./isElementClickable.js\";\nimport { instanceOfUI5Element } from \"../UI5Element.js\";\nimport { isSafari } from \"../Device.js\";\n\ntype FocusableElementPromise = Promise<HTMLElement | null>;\n\nconst isFocusTrap = (el: HTMLElement) => {\n\treturn el.hasAttribute(\"data-ui5-focus-trap\");\n};\n\nconst isScrollable = (el: HTMLElement) => {\n\tconst computedStyle = getComputedStyle(el);\n\n\treturn (el.scrollHeight > el.clientHeight && [\"scroll\", \"auto\"].indexOf(computedStyle.overflowY) >= 0)\n\t\t|| (el.scrollWidth > el.clientWidth && [\"scroll\", \"auto\"].indexOf(computedStyle.overflowX) >= 0);\n};\n\nconst getFirstFocusableElement = async (container: HTMLElement, startFromContainer?: boolean): FocusableElementPromise => {\n\tif (!container || isElementHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, true, startFromContainer);\n};\n\nconst getLastFocusableElement = async (container: HTMLElement, startFromContainer?: boolean): FocusableElementPromise => {\n\tif (!container || isElementHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, false, startFromContainer);\n};\n\nconst isElemFocusable = (el: HTMLElement) => {\n\treturn el.hasAttribute(\"data-ui5-focus-redirect\") || !isElementHidden(el);\n};\n\nconst isUI5ElementWithNegativeTabIndex = (el: HTMLElement) => {\n\tif (instanceOfUI5Element(el)) {\n\t\tconst tabIndex = el.getAttribute(\"tabindex\");\n\t\tif (tabIndex !== null && parseInt(tabIndex) < 0) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\nconst findFocusableElement = async (container: HTMLElement, forward: boolean, startFromContainer?: boolean): FocusableElementPromise => {\n\tlet child: HTMLElement | undefined;\n\tlet assignedElements;\n\tlet currentIndex = -1;\n\n\tif (container.shadowRoot) {\n\t\tchild = forward ? container.shadowRoot.firstChild as HTMLElement : container.shadowRoot.lastChild as HTMLElement;\n\t} else if (container instanceof HTMLSlotElement && container.assignedNodes()) {\n\t\tassignedElements = container.assignedNodes();\n\t\tcurrentIndex = forward ? 0 : assignedElements.length - 1;\n\t\tchild = assignedElements[currentIndex] as HTMLElement;\n\t} else if (startFromContainer) {\n\t\tchild = container;\n\t} else {\n\t\tchild = forward ? container.firstElementChild as HTMLElement : container.lastElementChild as HTMLElement;\n\t}\n\n\tlet focusableDescendant;\n\n\t/* eslint-disable no-await-in-loop */\n\n\twhile (child) {\n\t\tconst originalChild: HTMLElement | undefined = child;\n\n\t\tif (!isElementHidden(originalChild) && !isUI5ElementWithNegativeTabIndex(originalChild)) {\n\t\t\tif (instanceOfUI5Element(child)) {\n\t\t\t\t// getDomRef is used because some components mark their focusable ref in an inner\n\t\t\t\t// html but there might also be focusable targets outside of it\n\t\t\t\t// as an example - TreeItemBase\n\t\t\t\t// div - root of the component returned by getDomRef()\n\t\t\t\t// \tli.ui5-li-tree - returned by getFocusDomRef() and may not be focusable (ItemNavigation manages tabindex)\n\t\t\t\t// \tul.subtree - may still contain focusable targets (sub nodes of the tree item)\n\t\t\t\tawait child._waitForDomRef();\n\t\t\t\tchild = child.getDomRef();\n\t\t\t}\n\n\t\t\tif (!child || isElementHidden(child)) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {\n\t\t\t\tif (isElementClickable(child)) {\n\t\t\t\t\treturn (child && typeof child.focus === \"function\") ? child : null;\n\t\t\t\t}\n\n\t\t\t\tfocusableDescendant = await findFocusableElement(child, forward);\n\n\t\t\t\t// check if it is a keyboard focusable scroll container\n\t\t\t\tif (!isSafari() && !focusableDescendant && isScrollable(child)) {\n\t\t\t\t\treturn (child && typeof child.focus === \"function\") ? child : null;\n\t\t\t\t}\n\n\t\t\t\tif (focusableDescendant) {\n\t\t\t\t\treturn (focusableDescendant && typeof focusableDescendant.focus === \"function\") ? focusableDescendant : null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tchild = forward ? originalChild.nextSibling as HTMLElement : originalChild.previousSibling as HTMLElement;\n\n\t\t// If the child element is not part of the currently assigned element,\n\t\t// we have to check the next/previous element assigned to the slot or continue with the next/previous sibling of the slot,\n\t\t// otherwise, the nextSibling/previousSibling is the next element inside the light DOM\n\t\tif (assignedElements && !assignedElements[currentIndex].contains(child)) {\n\t\t\tcurrentIndex = forward ? currentIndex + 1 : currentIndex - 1;\n\n\t\t\tchild = assignedElements[currentIndex] as HTMLElement;\n\t\t}\n\t}\n\n\t/* eslint-enable no-await-in-loop */\n\n\treturn null;\n};\n\nexport {\n\tgetFirstFocusableElement,\n\tgetLastFocusableElement,\n};\n"]}
@@ -1,3 +1,5 @@
1
+ /** @ts-expect-error */
1
2
  import sanitizeHTML from "../sap/base/security/sanitizeHTML.js";
3
+ /** @ts-expect-error */
2
4
  import URLListValidator from "../sap/base/security/URLListValidator.js";
3
5
  export { URLListValidator, sanitizeHTML, };
@@ -1,6 +1,6 @@
1
- // @ts-ignore
1
+ /** @ts-expect-error */
2
2
  import sanitizeHTML from "../sap/base/security/sanitizeHTML.js";
3
- // @ts-ignore
3
+ /** @ts-expect-error */
4
4
  import URLListValidator from "../sap/base/security/URLListValidator.js";
5
5
  export { URLListValidator, sanitizeHTML, };
6
6
  //# sourceMappingURL=HTMLSanitizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLSanitizer.js","sourceRoot":"","sources":["../../src/util/HTMLSanitizer.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,YAAY,MAAM,sCAAsC,CAAC;AAChE,aAAa;AACb,OAAO,gBAAgB,MAAM,0CAA0C,CAAC;AAExE,OAAO,EACN,gBAAgB,EAChB,YAAY,GACZ,CAAC","sourcesContent":["// @ts-ignore\nimport sanitizeHTML from \"../sap/base/security/sanitizeHTML.js\";\n// @ts-ignore\nimport URLListValidator from \"../sap/base/security/URLListValidator.js\";\n\nexport {\n\tURLListValidator,\n\tsanitizeHTML,\n};\n"]}
1
+ {"version":3,"file":"HTMLSanitizer.js","sourceRoot":"","sources":["../../src/util/HTMLSanitizer.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,YAAY,MAAM,sCAAsC,CAAC;AAChE,uBAAuB;AACvB,OAAO,gBAAgB,MAAM,0CAA0C,CAAC;AAExE,OAAO,EACN,gBAAgB,EAChB,YAAY,GACZ,CAAC","sourcesContent":["/** @ts-expect-error */\nimport sanitizeHTML from \"../sap/base/security/sanitizeHTML.js\";\n/** @ts-expect-error */\nimport URLListValidator from \"../sap/base/security/URLListValidator.js\";\n\nexport {\n\tURLListValidator,\n\tsanitizeHTML,\n};\n"]}
@@ -25,8 +25,8 @@ attachBoot(() => {
25
25
  assertiveSpan.setAttribute("role", "alert");
26
26
  setOutOfViewportStyles(politeSpan);
27
27
  setOutOfViewportStyles(assertiveSpan);
28
- getSingletonElementInstance("ui5-static-area").appendChild(politeSpan);
29
- getSingletonElementInstance("ui5-static-area").appendChild(assertiveSpan);
28
+ getSingletonElementInstance("ui5-announcement-area").appendChild(politeSpan);
29
+ getSingletonElementInstance("ui5-announcement-area").appendChild(assertiveSpan);
30
30
  });
31
31
  /**
32
32
  * Inserts the string into the respective span, depending on the mode provided.
@@ -1 +1 @@
1
- {"version":3,"file":"InvisibleMessage.js","sourceRoot":"","sources":["../../src/util/InvisibleMessage.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AACpE,OAAO,2BAA2B,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,IAAI,UAAuB,CAAC;AAC5B,IAAI,aAA0B,CAAC;AAE/B,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAE,EAAE;IAClD,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC/B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACxC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IAC7B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC;IACzB,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;AACjC,CAAC,CAAC;AAEF,UAAU,CAAC,GAAG,EAAE;IACf,IAAI,UAAU,IAAI,aAAa,EAAE;QAChC,OAAO;KACP;IAED,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE/C,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACxD,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9D,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/C,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAErD,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5C,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAEtC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACvE,2BAA2B,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,IAA0B,EAAE,EAAE;IAChE,4DAA4D;IAC5D,MAAM,IAAI,GAAG,IAAI,KAAK,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;IAElF,oFAAoF;IACpF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAE3B,IAAI,IAAI,KAAK,oBAAoB,CAAC,SAAS,IAAI,IAAI,KAAK,oBAAoB,CAAC,MAAM,EAAE;QACpF,OAAO,CAAC,IAAI,CAAC,0IAA0I,CAAC,CAAC,CAAC,sBAAsB;KAChL;IAED,6EAA6E;IAC7E,UAAU,CAAC,GAAG,EAAE;QACf,iFAAiF;QACjF,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;YACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACtB;IACF,CAAC,EAAE,IAAI,CAAC,CAAC;AACV,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import InvisibleMessageMode from \"../types/InvisibleMessageMode.js\";\nimport getSingletonElementInstance from \"./getSingletonElementInstance.js\";\nimport { attachBoot } from \"../Boot.js\";\n\nlet politeSpan: HTMLElement;\nlet assertiveSpan: HTMLElement;\n\nconst setOutOfViewportStyles = (el: HTMLElement) => {\n\tel.style.position = \"absolute\";\n\tel.style.clip = \"rect(1px,1px,1px,1px)\";\n\tel.style.userSelect = \"none\";\n\tel.style.left = \"-1000px\";\n\tel.style.top = \"-1000px\";\n\tel.style.pointerEvents = \"none\";\n};\n\nattachBoot(() => {\n\tif (politeSpan && assertiveSpan) {\n\t\treturn;\n\t}\n\n\tpoliteSpan = document.createElement(\"span\");\n\tassertiveSpan = document.createElement(\"span\");\n\n\tpoliteSpan.classList.add(\"ui5-invisiblemessage-polite\");\n\tassertiveSpan.classList.add(\"ui5-invisiblemessage-assertive\");\n\n\tpoliteSpan.setAttribute(\"aria-live\", \"polite\");\n\tassertiveSpan.setAttribute(\"aria-live\", \"assertive\");\n\n\tpoliteSpan.setAttribute(\"role\", \"alert\");\n\tassertiveSpan.setAttribute(\"role\", \"alert\");\n\n\tsetOutOfViewportStyles(politeSpan);\n\tsetOutOfViewportStyles(assertiveSpan);\n\n\tgetSingletonElementInstance(\"ui5-static-area\").appendChild(politeSpan);\n\tgetSingletonElementInstance(\"ui5-static-area\").appendChild(assertiveSpan);\n});\n\n/**\n * Inserts the string into the respective span, depending on the mode provided.\n *\n * @param { string } message String to be announced by the screen reader.\n * @param { InvisibleMessageMode } mode The mode to be inserted in the aria-live attribute.\n * @public\n */\nconst announce = (message: string, mode: InvisibleMessageMode) => {\n\t// If no type is presented, fallback to polite announcement.\n\tconst span = mode === InvisibleMessageMode.Assertive ? assertiveSpan : politeSpan;\n\n\t// Set textContent to empty string in order to trigger screen reader's announcement.\n\tspan.textContent = \"\";\n\tspan.textContent = message;\n\n\tif (mode !== InvisibleMessageMode.Assertive && mode !== InvisibleMessageMode.Polite) {\n\t\tconsole.warn(`You have entered an invalid mode. Valid values are: \"Polite\" and \"Assertive\". The framework will automatically set the mode to \"Polite\".`); // eslint-disable-line\n\t}\n\n\t// clear the span in order to avoid reading it out while in JAWS reading node\n\tsetTimeout(() => {\n\t\t// ensure that we clear the text node only if no announce is made in the meantime\n\t\tif (span.textContent === message) {\n\t\t\tspan.textContent = \"\";\n\t\t}\n\t}, 3000);\n};\n\nexport default announce;\n"]}
1
+ {"version":3,"file":"InvisibleMessage.js","sourceRoot":"","sources":["../../src/util/InvisibleMessage.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AACpE,OAAO,2BAA2B,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,IAAI,UAAuB,CAAC;AAC5B,IAAI,aAA0B,CAAC;AAE/B,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAE,EAAE;IAClD,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC/B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACxC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IAC7B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC;IACzB,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;AACjC,CAAC,CAAC;AAEF,UAAU,CAAC,GAAG,EAAE;IACf,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;QACjC,OAAO;IACR,CAAC;IAED,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE/C,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACxD,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9D,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/C,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAErD,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5C,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAEtC,2BAA2B,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7E,2BAA2B,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,IAA0B,EAAE,EAAE;IAChE,4DAA4D;IAC5D,MAAM,IAAI,GAAG,IAAI,KAAK,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;IAElF,oFAAoF;IACpF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAE3B,IAAI,IAAI,KAAK,oBAAoB,CAAC,SAAS,IAAI,IAAI,KAAK,oBAAoB,CAAC,MAAM,EAAE,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,0IAA0I,CAAC,CAAC,CAAC,sBAAsB;IACjL,CAAC;IAED,6EAA6E;IAC7E,UAAU,CAAC,GAAG,EAAE;QACf,iFAAiF;QACjF,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACvB,CAAC;IACF,CAAC,EAAE,IAAI,CAAC,CAAC;AACV,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import InvisibleMessageMode from \"../types/InvisibleMessageMode.js\";\nimport getSingletonElementInstance from \"./getSingletonElementInstance.js\";\nimport { attachBoot } from \"../Boot.js\";\n\nlet politeSpan: HTMLElement;\nlet assertiveSpan: HTMLElement;\n\nconst setOutOfViewportStyles = (el: HTMLElement) => {\n\tel.style.position = \"absolute\";\n\tel.style.clip = \"rect(1px,1px,1px,1px)\";\n\tel.style.userSelect = \"none\";\n\tel.style.left = \"-1000px\";\n\tel.style.top = \"-1000px\";\n\tel.style.pointerEvents = \"none\";\n};\n\nattachBoot(() => {\n\tif (politeSpan && assertiveSpan) {\n\t\treturn;\n\t}\n\n\tpoliteSpan = document.createElement(\"span\");\n\tassertiveSpan = document.createElement(\"span\");\n\n\tpoliteSpan.classList.add(\"ui5-invisiblemessage-polite\");\n\tassertiveSpan.classList.add(\"ui5-invisiblemessage-assertive\");\n\n\tpoliteSpan.setAttribute(\"aria-live\", \"polite\");\n\tassertiveSpan.setAttribute(\"aria-live\", \"assertive\");\n\n\tpoliteSpan.setAttribute(\"role\", \"alert\");\n\tassertiveSpan.setAttribute(\"role\", \"alert\");\n\n\tsetOutOfViewportStyles(politeSpan);\n\tsetOutOfViewportStyles(assertiveSpan);\n\n\tgetSingletonElementInstance(\"ui5-announcement-area\").appendChild(politeSpan);\n\tgetSingletonElementInstance(\"ui5-announcement-area\").appendChild(assertiveSpan);\n});\n\n/**\n * Inserts the string into the respective span, depending on the mode provided.\n *\n * @param { string } message String to be announced by the screen reader.\n * @param { InvisibleMessageMode } mode The mode to be inserted in the aria-live attribute.\n * @public\n */\nconst announce = (message: string, mode: InvisibleMessageMode) => {\n\t// If no type is presented, fallback to polite announcement.\n\tconst span = mode === InvisibleMessageMode.Assertive ? assertiveSpan : politeSpan;\n\n\t// Set textContent to empty string in order to trigger screen reader's announcement.\n\tspan.textContent = \"\";\n\tspan.textContent = message;\n\n\tif (mode !== InvisibleMessageMode.Assertive && mode !== InvisibleMessageMode.Polite) {\n\t\tconsole.warn(`You have entered an invalid mode. Valid values are: \"Polite\" and \"Assertive\". The framework will automatically set the mode to \"Polite\".`); // eslint-disable-line\n\t}\n\n\t// clear the span in order to avoid reading it out while in JAWS reading node\n\tsetTimeout(() => {\n\t\t// ensure that we clear the text node only if no announce is made in the meantime\n\t\tif (span.textContent === message) {\n\t\t\tspan.textContent = \"\";\n\t\t}\n\t}, 3000);\n};\n\nexport default announce;\n"]}
@@ -2,6 +2,4 @@ declare const getFocusedElement: () => HTMLElement | null;
2
2
  declare const isFocusedElementWithinNode: (node: HTMLElement) => boolean;
3
3
  declare const isClickInRect: (e: MouseEvent | TouchEvent, rect: DOMRect) => boolean;
4
4
  declare const getClosedPopupParent: (el: HTMLElement) => HTMLElement;
5
- declare const getNextZIndex: () => number | undefined;
6
- declare const getCurrentZIndex: () => number;
7
- export { getFocusedElement, isClickInRect, getClosedPopupParent, getNextZIndex, getCurrentZIndex, isFocusedElementWithinNode, };
5
+ export { getFocusedElement, isClickInRect, getClosedPopupParent, isFocusedElementWithinNode, };
@@ -1,7 +1,4 @@
1
- import getSharedResource from "../getSharedResource.js";
2
- import { getFeature } from "../FeaturesRegistry.js";
3
1
  import getActiveElement from "./getActiveElement.js";
4
- const popupUtilsData = getSharedResource("PopupUtilsData", { currentZIndex: 100 });
5
2
  const getFocusedElement = () => {
6
3
  const element = getActiveElement();
7
4
  return (element && typeof element.focus === "function") ? element : null;
@@ -59,16 +56,5 @@ const getClosedPopupParent = (el) => {
59
56
  }
60
57
  return getClosedPopupParent(parent);
61
58
  };
62
- const getNextZIndex = () => {
63
- const openUI5Support = getFeature("OpenUI5Support");
64
- if (openUI5Support && openUI5Support.isLoaded()) { // use OpenUI5 for getting z-index values, if loaded
65
- return openUI5Support.getNextZIndex();
66
- }
67
- popupUtilsData.currentZIndex += 2;
68
- return popupUtilsData.currentZIndex;
69
- };
70
- const getCurrentZIndex = () => {
71
- return popupUtilsData.currentZIndex;
72
- };
73
- export { getFocusedElement, isClickInRect, getClosedPopupParent, getNextZIndex, getCurrentZIndex, isFocusedElementWithinNode, };
59
+ export { getFocusedElement, isClickInRect, getClosedPopupParent, isFocusedElementWithinNode, };
74
60
  //# sourceMappingURL=PopupUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopupUtils.js","sourceRoot":"","sources":["../../src/util/PopupUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import getSharedResource from \"../getSharedResource.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport getActiveElement from \"./getActiveElement.js\";\nimport type OpenUI5Support from \"../features/OpenUI5Support.js\";\n\ntype PopupUtilsData = {\n\tcurrentZIndex: number\n};\n\nconst popupUtilsData = getSharedResource<PopupUtilsData>(\"PopupUtilsData\", { currentZIndex: 100 });\n\nconst getFocusedElement = () => {\n\tconst element = getActiveElement() as HTMLElement;\n\treturn (element && typeof element.focus === \"function\") ? element : null;\n};\n\nconst isFocusedElementWithinNode = (node: HTMLElement) => {\n\tconst fe = getFocusedElement();\n\n\tif (fe) {\n\t\treturn isNodeContainedWithin(node, fe);\n\t}\n\n\treturn false;\n};\n\nconst isNodeContainedWithin = (parent: HTMLElement, child: HTMLElement): boolean => {\n\tlet currentNode: HTMLElement | undefined = parent;\n\n\tif (currentNode.shadowRoot) {\n\t\tconst children = Array.from(currentNode.shadowRoot.children) as Array<HTMLElement>;\n\t\tcurrentNode = children.find(n => n.localName !== \"style\");\n\n\t\tif (!currentNode) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (currentNode === child) {\n\t\treturn true;\n\t}\n\n\tconst childNodes = currentNode.localName === \"slot\" ? (currentNode as HTMLSlotElement).assignedNodes() : currentNode.children;\n\n\tif (childNodes) {\n\t\treturn Array.from(childNodes).some(n => isNodeContainedWithin(n as HTMLElement, child));\n\t}\n\n\treturn false;\n};\n\nconst isPointInRect = (x: number, y: number, rect: DOMRect) => {\n\treturn x >= rect.left && x <= rect.right\n\t\t&& y >= rect.top && y <= rect.bottom;\n};\n\nconst isClickInRect = (e: MouseEvent | TouchEvent, rect: DOMRect) => {\n\tlet x;\n\tlet y;\n\n\tif (e instanceof MouseEvent) {\n\t\tx = e.clientX;\n\t\ty = e.clientY;\n\t} else {\n\t\tconst touch = e.touches[0];\n\t\tx = touch.clientX;\n\t\ty = touch.clientY;\n\t}\n\n\treturn isPointInRect(x, y, rect);\n};\n\ninterface PopupInterface { // Refactor: replace with Popup.js\n\t_show: () => void,\n\topen: boolean,\n}\nfunction instanceOfPopup(object: any): object is PopupInterface {\n\treturn \"isUI5Element\" in object && \"_show\" in object;\n}\n\nconst getClosedPopupParent = (el: HTMLElement): HTMLElement => {\n\tconst parent = el.parentElement || (el.getRootNode && (el.getRootNode() as ShadowRoot).host);\n\n\tif (parent && ((instanceOfPopup(parent) || parent === document.documentElement))) {\n\t\treturn parent as HTMLElement;\n\t}\n\n\treturn getClosedPopupParent(parent as HTMLElement);\n};\n\nconst getNextZIndex = () => {\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (openUI5Support && openUI5Support.isLoaded()) { // use OpenUI5 for getting z-index values, if loaded\n\t\treturn openUI5Support.getNextZIndex();\n\t}\n\n\tpopupUtilsData.currentZIndex += 2;\n\treturn popupUtilsData.currentZIndex;\n};\n\nconst getCurrentZIndex = () => {\n\treturn popupUtilsData.currentZIndex;\n};\n\nexport {\n\tgetFocusedElement,\n\tisClickInRect,\n\tgetClosedPopupParent,\n\tgetNextZIndex,\n\tgetCurrentZIndex,\n\tisFocusedElementWithinNode,\n};\n"]}
1
+ {"version":3,"file":"PopupUtils.js","sourceRoot":"","sources":["../../src/util/PopupUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import getActiveElement from \"./getActiveElement.js\";\n\nconst getFocusedElement = () => {\n\tconst element = getActiveElement() as HTMLElement;\n\treturn (element && typeof element.focus === \"function\") ? element : null;\n};\n\nconst isFocusedElementWithinNode = (node: HTMLElement) => {\n\tconst fe = getFocusedElement();\n\n\tif (fe) {\n\t\treturn isNodeContainedWithin(node, fe);\n\t}\n\n\treturn false;\n};\n\nconst isNodeContainedWithin = (parent: HTMLElement, child: HTMLElement): boolean => {\n\tlet currentNode: HTMLElement | undefined = parent;\n\n\tif (currentNode.shadowRoot) {\n\t\tconst children = Array.from(currentNode.shadowRoot.children) as Array<HTMLElement>;\n\t\tcurrentNode = children.find(n => n.localName !== \"style\");\n\n\t\tif (!currentNode) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (currentNode === child) {\n\t\treturn true;\n\t}\n\n\tconst childNodes = currentNode.localName === \"slot\" ? (currentNode as HTMLSlotElement).assignedNodes() : currentNode.children;\n\n\tif (childNodes) {\n\t\treturn Array.from(childNodes).some(n => isNodeContainedWithin(n as HTMLElement, child));\n\t}\n\n\treturn false;\n};\n\nconst isPointInRect = (x: number, y: number, rect: DOMRect) => {\n\treturn x >= rect.left && x <= rect.right\n\t\t&& y >= rect.top && y <= rect.bottom;\n};\n\nconst isClickInRect = (e: MouseEvent | TouchEvent, rect: DOMRect) => {\n\tlet x;\n\tlet y;\n\n\tif (e instanceof MouseEvent) {\n\t\tx = e.clientX;\n\t\ty = e.clientY;\n\t} else {\n\t\tconst touch = e.touches[0];\n\t\tx = touch.clientX;\n\t\ty = touch.clientY;\n\t}\n\n\treturn isPointInRect(x, y, rect);\n};\n\ninterface PopupInterface { // Refactor: replace with Popup.js\n\t_show: () => void,\n\topen: boolean,\n}\nfunction instanceOfPopup(object: any): object is PopupInterface {\n\treturn \"isUI5Element\" in object && \"_show\" in object;\n}\n\nconst getClosedPopupParent = (el: HTMLElement): HTMLElement => {\n\tconst parent = el.parentElement || (el.getRootNode && (el.getRootNode() as ShadowRoot).host);\n\n\tif (parent && ((instanceOfPopup(parent) || parent === document.documentElement))) {\n\t\treturn parent as HTMLElement;\n\t}\n\n\treturn getClosedPopupParent(parent as HTMLElement);\n};\n\nexport {\n\tgetFocusedElement,\n\tisClickInRect,\n\tgetClosedPopupParent,\n\tisFocusedElementWithinNode,\n};\n"]}
@@ -0,0 +1,12 @@
1
+ declare const getElementSelection: (element: HTMLElement) => {
2
+ selectedText: string;
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ top: number;
8
+ right: number;
9
+ bottom: number;
10
+ left: number;
11
+ };
12
+ export default getElementSelection;
@@ -0,0 +1,79 @@
1
+ import getEffectiveScrollbarStyle from "../util/getEffectiveScrollbarStyle.js";
2
+ const copyAndApplyStyles = (element, copiedElement) => {
3
+ const computedStyles = getComputedStyle(element);
4
+ for (let i = 0; i < computedStyles.length; i++) {
5
+ const propertyName = computedStyles[i];
6
+ copiedElement.style.setProperty(propertyName, computedStyles.getPropertyValue(propertyName));
7
+ }
8
+ element.tagName === "INPUT" && setInputSpecificStyles(copiedElement);
9
+ copiedElement.style.position = "absolute";
10
+ copiedElement.style.left = `${element.getBoundingClientRect().left}px`;
11
+ copiedElement.style.top = `${element.getBoundingClientRect().top}px`;
12
+ setUnInteractableStyles(copiedElement);
13
+ document.body.appendChild(copiedElement);
14
+ };
15
+ const setUnInteractableStyles = (element) => {
16
+ element.style.position = "absolute";
17
+ element.style.userSelect = "none";
18
+ element.style.pointerEvents = "none";
19
+ element.style.zIndex = "-1";
20
+ element.style.opacity = "0";
21
+ };
22
+ const setInputSpecificStyles = (element) => {
23
+ element.style.whiteSpace = "nowrap";
24
+ element.style.overflowX = "auto";
25
+ element.style.overflowY = "hidden";
26
+ };
27
+ const applyScrollStylings = () => {
28
+ const sheet = new CSSStyleSheet();
29
+ const styles = getEffectiveScrollbarStyle();
30
+ sheet.replaceSync(styles);
31
+ document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];
32
+ };
33
+ const createCopy = () => {
34
+ const copiedElement = document.createElement("div");
35
+ copiedElement.id = "ui5-selection-mirror";
36
+ copiedElement.contentEditable = "true";
37
+ applyScrollStylings();
38
+ document.body.appendChild(copiedElement);
39
+ };
40
+ const applyScrollPosition = (element, copiedElement) => {
41
+ copiedElement.scrollTop = element.scrollTop;
42
+ copiedElement.scrollLeft = element.scrollLeft;
43
+ };
44
+ const getSelectionCoordinates = (element, mirror) => {
45
+ const { selectionStart, selectionEnd } = element;
46
+ const selectedText = element.value.slice(selectionStart, element.selectionEnd);
47
+ const range = document.createRange();
48
+ range.setStart(mirror.firstChild, selectionEnd - 1);
49
+ range.setEnd(mirror.firstChild, selectionEnd);
50
+ applyScrollPosition(element, mirror);
51
+ const rangeRect = range.getBoundingClientRect();
52
+ const rectObject = {
53
+ x: rangeRect.x,
54
+ y: rangeRect.y,
55
+ width: rangeRect.width,
56
+ height: rangeRect.height,
57
+ top: rangeRect.top,
58
+ right: rangeRect.right,
59
+ bottom: rangeRect.bottom,
60
+ left: rangeRect.left,
61
+ };
62
+ document.body.removeChild(mirror);
63
+ return { ...rectObject, selectedText };
64
+ };
65
+ const getElementSelection = (element) => {
66
+ const innerElement = element.shadowRoot.querySelector("textarea")
67
+ || element.shadowRoot.querySelector("input");
68
+ if (!document.getElementById("ui5-selection-mirror")) {
69
+ createCopy();
70
+ }
71
+ const copiedElement = document.getElementById("ui5-selection-mirror");
72
+ copiedElement.textContent = innerElement.value;
73
+ if (innerElement) {
74
+ copyAndApplyStyles(innerElement, copiedElement);
75
+ }
76
+ return getSelectionCoordinates(innerElement, copiedElement);
77
+ };
78
+ export default getElementSelection;
79
+ //# sourceMappingURL=SelectionAssistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionAssistant.js","sourceRoot":"","sources":["../../src/util/SelectionAssistant.ts"],"names":[],"mappings":"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","sourcesContent":["import getEffectiveScrollbarStyle from \"../util/getEffectiveScrollbarStyle.js\";\n\nconst copyAndApplyStyles = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tconst computedStyles = getComputedStyle(element);\n\n\tfor (let i = 0; i < computedStyles.length; i++) {\n\t\tconst propertyName = computedStyles[i];\n\t\tcopiedElement.style.setProperty(propertyName, computedStyles.getPropertyValue(propertyName));\n\t}\n\n\telement.tagName === \"INPUT\" && setInputSpecificStyles(copiedElement);\n\n\tcopiedElement.style.position = \"absolute\";\n\tcopiedElement.style.left = `${element.getBoundingClientRect().left}px`;\n\tcopiedElement.style.top = `${element.getBoundingClientRect().top}px`;\n\n\tsetUnInteractableStyles(copiedElement);\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst setUnInteractableStyles = (element: HTMLElement) => {\n\telement.style.position = \"absolute\";\n\telement.style.userSelect = \"none\";\n\telement.style.pointerEvents = \"none\";\n\telement.style.zIndex = \"-1\";\n\telement.style.opacity = \"0\";\n};\n\nconst setInputSpecificStyles = (element: HTMLElement) => {\n\telement.style.whiteSpace = \"nowrap\";\n\telement.style.overflowX = \"auto\";\n\telement.style.overflowY = \"hidden\";\n};\n\nconst applyScrollStylings = () => {\n\tconst sheet = new CSSStyleSheet();\n\tconst styles = getEffectiveScrollbarStyle();\n\n\tsheet.replaceSync(styles);\n\n\tdocument.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];\n};\n\nconst createCopy = () => {\n\tconst copiedElement = document.createElement(\"div\");\n\n\tcopiedElement.id = \"ui5-selection-mirror\";\n\tcopiedElement.contentEditable = \"true\";\n\n\tapplyScrollStylings();\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst applyScrollPosition = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tcopiedElement.scrollTop = element.scrollTop;\n\tcopiedElement.scrollLeft = element.scrollLeft;\n};\n\nconst getSelectionCoordinates = (element: HTMLInputElement | HTMLTextAreaElement, mirror: HTMLDivElement) => {\n\tconst { selectionStart, selectionEnd } = element;\n\tconst selectedText = element.value.slice(\n\t\tselectionStart!,\n\t\telement.selectionEnd!,\n\t);\n\tconst range = document.createRange();\n\n\trange.setStart(mirror.firstChild!, selectionEnd! - 1);\n\trange.setEnd(mirror.firstChild!, selectionEnd!);\n\n\tapplyScrollPosition(element, mirror);\n\n\tconst rangeRect = range.getBoundingClientRect();\n\tconst rectObject = {\n\t\tx: rangeRect.x,\n\t\ty: rangeRect.y,\n\t\twidth: rangeRect.width,\n\t\theight: rangeRect.height,\n\t\ttop: rangeRect.top,\n\t\tright: rangeRect.right,\n\t\tbottom: rangeRect.bottom,\n\t\tleft: rangeRect.left,\n\t};\n\n\tdocument.body.removeChild(mirror);\n\n\treturn { ...rectObject, selectedText };\n};\n\nconst getElementSelection = (element: HTMLElement) => {\n\tconst innerElement = element.shadowRoot!.querySelector(\"textarea\")\n\t\t|| element.shadowRoot!.querySelector(\"input\");\n\n\tif (!document.getElementById(\"ui5-selection-mirror\")) {\n\t\tcreateCopy();\n\t}\n\n\tconst copiedElement = document.getElementById(\n\t\t\"ui5-selection-mirror\",\n\t)!;\n\n\tcopiedElement.textContent = innerElement!.value;\n\n\tif (innerElement) {\n\t\tcopyAndApplyStyles(innerElement, copiedElement)!;\n\t}\n\n\treturn getSelectionCoordinates(innerElement!, copiedElement as HTMLDivElement);\n};\n\nexport default getElementSelection;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SlotsHelper.js","sourceRoot":"","sources":["../../src/util/SlotsHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,EAAE;IAClC,6CAA6C;IAC7C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE;QACnC,OAAO,SAAS,CAAC;KACjB;IAED,kGAAkG;IAClG,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAC/B;IAED,iCAAiC;IACjC,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,EAAE;IACtC,IAAI,IAAI,YAAY,eAAe,EAAE;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC;KACzF;IAED,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAE,EAAE;IACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAiB,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,OAAO,EACN,WAAW,EACX,eAAe,EACf,mBAAmB,GACnB,CAAC","sourcesContent":["/**\n * Determines the slot to which a node should be assigned\n * @param node Text node or HTML element\n * @returns {string}\n */\nconst getSlotName = (node: Node) => {\n\t// Text nodes can only go to the default slot\n\tif (!(node instanceof HTMLElement)) {\n\t\treturn \"default\";\n\t}\n\n\t// Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)\n\tconst slot = node.getAttribute(\"slot\");\n\tif (slot) {\n\t\tconst match = slot.match(/^(.+?)-\\d+$/);\n\t\treturn match ? match[1] : slot;\n\t}\n\n\t// Use default slot as a fallback\n\treturn \"default\";\n};\n\nconst getSlottedNodes = (node: Node) => {\n\tif (node instanceof HTMLSlotElement) {\n\t\treturn node.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);\n\t}\n\n\treturn [node];\n};\n\nconst getSlottedNodesList = (nodeList: Array<Node>) => {\n\treturn nodeList.reduce((acc, curr) => acc.concat(getSlottedNodes(curr)), [] as Array<Node>);\n};\n\nexport {\n\tgetSlotName,\n\tgetSlottedNodes,\n\tgetSlottedNodesList,\n};\n"]}
1
+ {"version":3,"file":"SlotsHelper.js","sourceRoot":"","sources":["../../src/util/SlotsHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,EAAE;IAClC,6CAA6C;IAC7C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,kGAAkG;IAClG,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,iCAAiC;IACjC,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,EAAE;IACtC,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAE,EAAE;IACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAiB,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,OAAO,EACN,WAAW,EACX,eAAe,EACf,mBAAmB,GACnB,CAAC","sourcesContent":["/**\n * Determines the slot to which a node should be assigned\n * @param node Text node or HTML element\n * @returns {string}\n */\nconst getSlotName = (node: Node) => {\n\t// Text nodes can only go to the default slot\n\tif (!(node instanceof HTMLElement)) {\n\t\treturn \"default\";\n\t}\n\n\t// Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)\n\tconst slot = node.getAttribute(\"slot\");\n\tif (slot) {\n\t\tconst match = slot.match(/^(.+?)-\\d+$/);\n\t\treturn match ? match[1] : slot;\n\t}\n\n\t// Use default slot as a fallback\n\treturn \"default\";\n};\n\nconst getSlottedNodes = (node: Node) => {\n\tif (node instanceof HTMLSlotElement) {\n\t\treturn node.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);\n\t}\n\n\treturn [node];\n};\n\nconst getSlottedNodesList = (nodeList: Array<Node>) => {\n\treturn nodeList.reduce((acc, curr) => acc.concat(getSlottedNodes(curr)), [] as Array<Node>);\n};\n\nexport {\n\tgetSlotName,\n\tgetSlottedNodes,\n\tgetSlottedNodesList,\n};\n"]}
@@ -1,3 +1,5 @@
1
1
  declare const kebabToCamelCase: (string: string) => string;
2
2
  declare const camelToKebabCase: (string: string) => string;
3
- export { kebabToCamelCase, camelToKebabCase };
3
+ declare const pascalToKebabCase: (pascalString: string) => string;
4
+ declare const kebabToPascalCase: (src: string) => string;
5
+ export { kebabToCamelCase, camelToKebabCase, pascalToKebabCase, kebabToPascalCase, };
@@ -1,5 +1,6 @@
1
1
  const kebabToCamelMap = new Map();
2
2
  const camelToKebabMap = new Map();
3
+ const kebabToPascalMap = new Map();
3
4
  const kebabToCamelCase = (string) => {
4
5
  if (!kebabToCamelMap.has(string)) {
5
6
  const result = toCamelCase(string.split("-"));
@@ -14,10 +15,23 @@ const camelToKebabCase = (string) => {
14
15
  }
15
16
  return camelToKebabMap.get(string);
16
17
  };
18
+ const pascalToKebabCase = (pascalString) => {
19
+ return camelToKebabCase(pascalString);
20
+ };
17
21
  const toCamelCase = (parts) => {
18
22
  return parts.map((string, index) => {
19
23
  return index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
20
24
  }).join("");
21
25
  };
22
- export { kebabToCamelCase, camelToKebabCase };
26
+ const kebabToPascalCase = (src) => {
27
+ const cachedName = kebabToPascalMap.get(src);
28
+ if (cachedName) {
29
+ return cachedName;
30
+ }
31
+ const camelStr = kebabToCamelCase(src);
32
+ const result = camelStr.charAt(0).toUpperCase() + camelStr.slice(1);
33
+ kebabToPascalMap.set(src, result);
34
+ return result;
35
+ };
36
+ export { kebabToCamelCase, camelToKebabCase, pascalToKebabCase, kebabToPascalCase, };
23
37
  //# sourceMappingURL=StringHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringHelper.js","sourceRoot":"","sources":["../../src/util/StringHelper.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAElD,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACjC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAoB,EAAE,EAAE;IAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAClC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5G,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["const kebabToCamelMap = new Map<string, string>();\nconst camelToKebabMap = new Map<string, string>();\n\nconst kebabToCamelCase = (string: string) => {\n\tif (!kebabToCamelMap.has(string)) {\n\t\tconst result = toCamelCase(string.split(\"-\"));\n\t\tkebabToCamelMap.set(string, result);\n\t}\n\treturn kebabToCamelMap.get(string)!;\n};\n\nconst camelToKebabCase = (string: string) => {\n\tif (!camelToKebabMap.has(string)) {\n\t\tconst result = string.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\t\tcamelToKebabMap.set(string, result);\n\t}\n\treturn camelToKebabMap.get(string)!;\n};\n\nconst toCamelCase = (parts: Array<string>) => {\n\treturn parts.map((string, index) => {\n\t\treturn index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\t}).join(\"\");\n};\n\nexport { kebabToCamelCase, camelToKebabCase };\n"]}
1
+ {"version":3,"file":"StringHelper.js","sourceRoot":"","sources":["../../src/util/StringHelper.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,YAAoB,EAAE,EAAE;IAClD,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAoB,EAAE,EAAE;IAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAClC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5G,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpE,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GACjB,CAAC","sourcesContent":["const kebabToCamelMap = new Map<string, string>();\nconst camelToKebabMap = new Map<string, string>();\nconst kebabToPascalMap = new Map<string, string>();\n\nconst kebabToCamelCase = (string: string) => {\n\tif (!kebabToCamelMap.has(string)) {\n\t\tconst result = toCamelCase(string.split(\"-\"));\n\t\tkebabToCamelMap.set(string, result);\n\t}\n\treturn kebabToCamelMap.get(string)!;\n};\n\nconst camelToKebabCase = (string: string) => {\n\tif (!camelToKebabMap.has(string)) {\n\t\tconst result = string.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\t\tcamelToKebabMap.set(string, result);\n\t}\n\treturn camelToKebabMap.get(string)!;\n};\n\nconst pascalToKebabCase = (pascalString: string) => {\n\treturn camelToKebabCase(pascalString);\n};\n\nconst toCamelCase = (parts: Array<string>) => {\n\treturn parts.map((string, index) => {\n\t\treturn index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\t}).join(\"\");\n};\n\nconst kebabToPascalCase = (src: string) => {\n\tconst cachedName = kebabToPascalMap.get(src);\n\tif (cachedName) {\n\t\treturn cachedName;\n\t}\n\n\tconst camelStr = kebabToCamelCase(src);\n\tconst result = camelStr.charAt(0).toUpperCase() + camelStr.slice(1);\n\tkebabToPascalMap.set(src, result);\n\treturn result;\n};\n\nexport {\n\tkebabToCamelCase,\n\tcamelToKebabCase,\n\tpascalToKebabCase,\n\tkebabToPascalCase,\n};\n"]}
@@ -29,18 +29,10 @@ const getTabbables = (nodes, tabbables) => {
29
29
  if (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {
30
30
  return;
31
31
  }
32
- let currentElement = currentNode;
32
+ const currentElement = currentNode;
33
33
  if (currentElement.hasAttribute("data-sap-no-tab-ref")) {
34
34
  return;
35
35
  }
36
- if (currentElement.shadowRoot) {
37
- // get the root node of the ShadowDom (1st none style tag)
38
- const children = currentElement.shadowRoot.children;
39
- currentElement = Array.from(children).find(node => node.tagName !== "STYLE");
40
- }
41
- if (!currentElement) {
42
- return;
43
- }
44
36
  if (isElementTabbable(currentElement)) {
45
37
  tabbableElements.push(currentElement);
46
38
  }
@@ -48,7 +40,8 @@ const getTabbables = (nodes, tabbables) => {
48
40
  getTabbables(currentElement.assignedNodes(), tabbableElements);
49
41
  }
50
42
  else {
51
- getTabbables([...currentElement.children], tabbableElements);
43
+ const children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;
44
+ getTabbables([...children], tabbableElements);
52
45
  }
53
46
  });
54
47
  return tabbableElements;