@ui5/webcomponents-base 0.0.0-323968e1b → 0.0.0-4180fe799

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 (449) hide show
  1. package/.eslintignore +4 -0
  2. package/CHANGELOG.md +196 -0
  3. package/README.md +26 -2
  4. package/bundle.esm.js +18 -12
  5. package/dist/AssetRegistry.js +8 -6
  6. package/dist/Boot.js +43 -0
  7. package/dist/CSP.js +59 -0
  8. package/dist/CustomElementsRegistry.js +39 -0
  9. package/dist/CustomElementsScope.js +108 -0
  10. package/dist/DOMObserver.js +65 -0
  11. package/dist/Device.js +62 -778
  12. package/dist/EventProvider.js +38 -26
  13. package/dist/FontFace.js +20 -56
  14. package/dist/InitialConfiguration.js +64 -17
  15. package/dist/Keys.js +248 -0
  16. package/dist/ManagedStyles.js +83 -0
  17. package/dist/MediaRange.js +109 -0
  18. package/dist/PropertiesFileFormat.js +95 -0
  19. package/dist/Render.js +175 -0
  20. package/dist/RenderQueue.js +41 -17
  21. package/dist/RenderScheduler.js +24 -145
  22. package/dist/StaticArea.js +1 -39
  23. package/dist/StaticAreaItem.js +65 -40
  24. package/dist/SystemCSSVars.js +10 -0
  25. package/dist/Theming.js +3 -44
  26. package/dist/UI5Element.js +483 -307
  27. package/dist/UI5ElementMetadata.js +190 -19
  28. package/dist/asset-registries/Icons.js +129 -14
  29. package/dist/asset-registries/Illustrations.js +30 -0
  30. package/dist/asset-registries/LocaleData.js +108 -50
  31. package/dist/asset-registries/Themes.js +35 -32
  32. package/dist/asset-registries/i18n.js +80 -34
  33. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  34. package/dist/config/AnimationMode.js +16 -2
  35. package/dist/config/CalendarType.js +7 -7
  36. package/dist/config/FormatSettings.js +5 -1
  37. package/dist/config/Language.js +62 -3
  38. package/dist/config/NoConflict.js +10 -3
  39. package/dist/config/Theme.js +21 -3
  40. package/dist/css/FontFace.css +45 -0
  41. package/dist/css/OverrideFontFace.css +32 -0
  42. package/dist/css/SystemCSSVars.css +17 -0
  43. package/dist/delegate/ItemNavigation.js +245 -172
  44. package/dist/delegate/ResizeHandler.js +78 -38
  45. package/dist/delegate/ScrollEnablement.js +122 -14
  46. package/dist/features/OpenUI5Support.js +125 -0
  47. package/dist/generated/AssetParameters.js +13 -0
  48. package/dist/generated/css/FontFace.css.js +5 -0
  49. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  50. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  51. package/dist/getSharedResource.js +30 -0
  52. package/dist/i18nBundle.js +62 -11
  53. package/dist/isLegacyBrowser.js +3 -0
  54. package/dist/{Locale.js → locale/Locale.js} +0 -10
  55. package/dist/locale/RTLAwareRegistry.js +14 -0
  56. package/dist/locale/applyDirection.js +17 -0
  57. package/dist/locale/directionChange.js +32 -0
  58. package/dist/locale/getEffectiveDir.js +28 -0
  59. package/dist/locale/getLocale.js +41 -0
  60. package/dist/locale/languageChange.js +22 -0
  61. package/dist/locale/nextFallbackLocale.js +28 -0
  62. package/{src/util → dist/locale}/normalizeLocale.js +8 -31
  63. package/dist/renderer/LitRenderer.js +26 -7
  64. package/dist/renderer/directives/style-map.js +72 -0
  65. package/dist/renderer/executeTemplate.js +17 -0
  66. package/dist/resources/bundle.esm.js +20 -106
  67. package/dist/resources/bundle.esm.js.map +1 -1
  68. package/dist/sap/base/Log.js +241 -0
  69. package/dist/sap/base/assert.js +8 -0
  70. package/dist/sap/base/security/URLListValidator.js +148 -0
  71. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  72. package/dist/sap/base/util/now.js +7 -0
  73. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  74. package/dist/test-resources/assets/Themes.js +11 -5
  75. package/dist/test-resources/elements/Generic.js +1 -0
  76. package/dist/test-resources/elements/Parent.js +7 -2
  77. package/dist/test-resources/elements/WithStaticArea.js +77 -0
  78. package/dist/test-resources/pages/AllTestElements.html +5 -5
  79. package/dist/test-resources/pages/Configuration.html +0 -2
  80. package/dist/test-resources/pages/ConfigurationScript.html +1 -3
  81. package/dist/test-resources/pages/assets/messagebundle_de.properties +1 -0
  82. package/dist/test-resources/pages/assets/messagebundle_en.properties +1 -0
  83. package/dist/test-resources/pages/assets/messagebundle_es.properties +1 -0
  84. package/dist/test-resources/pages/assets/messagebundle_fr.properties +1 -0
  85. package/dist/test-resources/pages/i18n.html +33 -0
  86. package/dist/test-resources/specs/ConfigurationChange.spec.js +11 -9
  87. package/dist/test-resources/specs/ConfigurationScript.spec.js +25 -23
  88. package/dist/test-resources/specs/ConfigurationURL.spec.js +65 -17
  89. package/dist/test-resources/specs/CustomTheme.spec.js +9 -7
  90. package/dist/test-resources/specs/EventProvider.spec.js +63 -0
  91. package/dist/test-resources/specs/StaticArea.spec.js +78 -0
  92. package/dist/test-resources/specs/Theming.spec.js +12 -10
  93. package/dist/test-resources/specs/UI5ElementInvalidation.js +54 -70
  94. package/dist/test-resources/specs/UI5ElementLifecycle.js +19 -14
  95. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +25 -51
  96. package/dist/test-resources/specs/UI5ElementMetadataExt.js +9 -7
  97. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +7 -5
  98. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +37 -35
  99. package/dist/test-resources/specs/UI5ElementShadowDOM.js +10 -8
  100. package/dist/test-resources/specs/UI5ElementSlots.js +10 -8
  101. package/dist/theming/CustomStyle.js +28 -7
  102. package/dist/theming/ThemeLoaded.js +22 -0
  103. package/dist/theming/applyTheme.js +75 -0
  104. package/dist/theming/getConstructableStyle.js +30 -0
  105. package/dist/theming/getEffectiveLinksHrefs.js +20 -0
  106. package/dist/theming/getEffectiveStyle.js +30 -0
  107. package/dist/theming/getStylesString.js +15 -0
  108. package/dist/theming/getThemeDesignerTheme.js +68 -0
  109. package/dist/theming/preloadLinks.js +23 -0
  110. package/dist/thirdparty/_merge.js +32 -0
  111. package/dist/thirdparty/isPlainObject.js +18 -0
  112. package/dist/thirdparty/merge.js +10 -0
  113. package/dist/types/CSSColor.js +9 -0
  114. package/{src/dates → dist/types}/CalendarType.js +2 -2
  115. package/dist/types/DataType.js +13 -1
  116. package/dist/types/Float.js +14 -0
  117. package/dist/types/Integer.js +4 -0
  118. package/dist/types/InvisibleMessageMode.js +30 -0
  119. package/dist/types/ItemNavigationBehavior.js +2 -7
  120. package/dist/types/NavigationMode.js +1 -0
  121. package/dist/types/PopupState.js +1 -1
  122. package/dist/types/ValueState.js +2 -1
  123. package/dist/updateShadowRoot.js +30 -0
  124. package/dist/util/AriaLabelHelper.js +41 -0
  125. package/dist/util/Caret.js +45 -0
  126. package/dist/util/ColorConversion.js +370 -0
  127. package/dist/util/FocusableElements.js +25 -8
  128. package/dist/util/HTMLSanitizer.js +7 -0
  129. package/dist/util/InvisibleMessage.js +58 -0
  130. package/dist/util/PopupUtils.js +93 -0
  131. package/dist/util/SlotsHelper.js +43 -0
  132. package/dist/util/StringHelper.js +17 -2
  133. package/dist/util/TabbableElements.js +5 -2
  134. package/dist/util/arraysAreEqual.js +15 -0
  135. package/dist/util/clamp.js +12 -0
  136. package/dist/util/createLinkInHead.js +19 -0
  137. package/dist/util/debounce.js +17 -0
  138. package/dist/util/detectNavigatorLanguage.js +3 -1
  139. package/dist/util/encodeCSS.js +24 -0
  140. package/dist/util/findNodeOwner.js +35 -0
  141. package/dist/util/getActiveElement.js +11 -0
  142. package/dist/util/getClassCopy.js +10 -0
  143. package/dist/util/getEffectiveContentDensity.js +5 -0
  144. package/dist/util/getFileExtension.js +21 -0
  145. package/dist/util/getSingletonElementInstance.js +13 -0
  146. package/dist/util/isElementInView.js +15 -0
  147. package/dist/util/isNodeHidden.js +1 -5
  148. package/dist/util/isNodeTabbable.js +4 -4
  149. package/dist/util/isValidPropertyName.js +11 -2
  150. package/dist/util/setToArray.js +10 -0
  151. package/hash.txt +1 -0
  152. package/index.js +1 -1
  153. package/lib/generate-asset-parameters/index.js +21 -0
  154. package/lib/generate-styles/index.js +18 -0
  155. package/package-scripts.js +41 -18
  156. package/package.json +19 -14
  157. package/src/AssetRegistry.js +8 -6
  158. package/src/Boot.js +43 -0
  159. package/src/CSP.js +59 -0
  160. package/src/CustomElementsRegistry.js +39 -0
  161. package/src/CustomElementsScope.js +108 -0
  162. package/src/DOMObserver.js +65 -0
  163. package/src/Device.js +62 -778
  164. package/src/EventProvider.js +38 -26
  165. package/src/FontFace.js +20 -56
  166. package/src/InitialConfiguration.js +64 -17
  167. package/src/Keys.js +248 -0
  168. package/src/ManagedStyles.js +83 -0
  169. package/src/MediaRange.js +109 -0
  170. package/src/PropertiesFileFormat.js +95 -0
  171. package/src/Render.js +175 -0
  172. package/src/RenderQueue.js +41 -17
  173. package/src/RenderScheduler.js +24 -145
  174. package/src/StaticArea.js +1 -39
  175. package/src/StaticAreaItem.js +65 -40
  176. package/src/SystemCSSVars.js +10 -0
  177. package/src/Theming.js +3 -44
  178. package/src/UI5Element.js +483 -307
  179. package/src/UI5ElementMetadata.js +190 -19
  180. package/src/asset-registries/Icons.js +129 -14
  181. package/src/asset-registries/Illustrations.js +30 -0
  182. package/src/asset-registries/LocaleData.js +108 -50
  183. package/src/asset-registries/Themes.js +35 -32
  184. package/src/asset-registries/i18n.js +80 -34
  185. package/src/assets-meta/IconCollectionsAlias.js +18 -0
  186. package/src/config/AnimationMode.js +16 -2
  187. package/src/config/CalendarType.js +7 -7
  188. package/src/config/FormatSettings.js +5 -1
  189. package/src/config/Language.js +62 -3
  190. package/src/config/NoConflict.js +10 -3
  191. package/src/config/Theme.js +21 -3
  192. package/src/css/FontFace.css +45 -0
  193. package/src/css/OverrideFontFace.css +32 -0
  194. package/src/css/SystemCSSVars.css +17 -0
  195. package/src/delegate/ItemNavigation.js +245 -172
  196. package/src/delegate/ResizeHandler.js +78 -38
  197. package/src/delegate/ScrollEnablement.js +122 -14
  198. package/src/features/OpenUI5Support.js +125 -0
  199. package/src/getSharedResource.js +30 -0
  200. package/src/i18nBundle.js +62 -11
  201. package/src/isLegacyBrowser.js +3 -0
  202. package/src/{Locale.js → locale/Locale.js} +0 -10
  203. package/src/locale/RTLAwareRegistry.js +14 -0
  204. package/src/locale/applyDirection.js +17 -0
  205. package/src/locale/directionChange.js +32 -0
  206. package/src/locale/getEffectiveDir.js +28 -0
  207. package/src/locale/getLocale.js +41 -0
  208. package/src/locale/languageChange.js +22 -0
  209. package/src/locale/nextFallbackLocale.js +28 -0
  210. package/{dist/util → src/locale}/normalizeLocale.js +8 -31
  211. package/src/renderer/LitRenderer.js +26 -7
  212. package/src/renderer/directives/style-map.js +72 -0
  213. package/src/renderer/executeTemplate.js +17 -0
  214. package/src/theming/CustomStyle.js +28 -7
  215. package/src/theming/ThemeLoaded.js +22 -0
  216. package/src/theming/applyTheme.js +75 -0
  217. package/src/theming/getConstructableStyle.js +30 -0
  218. package/src/theming/getEffectiveLinksHrefs.js +20 -0
  219. package/src/theming/getEffectiveStyle.js +30 -0
  220. package/src/theming/getStylesString.js +15 -0
  221. package/src/theming/getThemeDesignerTheme.js +68 -0
  222. package/src/theming/preloadLinks.js +23 -0
  223. package/src/thirdparty/_merge.js +32 -0
  224. package/src/thirdparty/isPlainObject.js +18 -0
  225. package/src/thirdparty/merge.js +10 -0
  226. package/src/types/CSSColor.js +9 -0
  227. package/{dist/dates → src/types}/CalendarType.js +2 -2
  228. package/src/types/DataType.js +13 -1
  229. package/src/types/Float.js +14 -0
  230. package/src/types/Integer.js +4 -0
  231. package/src/types/InvisibleMessageMode.js +30 -0
  232. package/src/types/ItemNavigationBehavior.js +2 -7
  233. package/src/types/NavigationMode.js +1 -0
  234. package/src/types/PopupState.js +1 -1
  235. package/src/types/ValueState.js +2 -1
  236. package/src/updateShadowRoot.js +30 -0
  237. package/src/util/AriaLabelHelper.js +41 -0
  238. package/src/util/Caret.js +45 -0
  239. package/src/util/ColorConversion.js +370 -0
  240. package/src/util/FocusableElements.js +25 -8
  241. package/src/util/HTMLSanitizer.js +7 -0
  242. package/src/util/InvisibleMessage.js +58 -0
  243. package/src/util/PopupUtils.js +93 -0
  244. package/src/util/SlotsHelper.js +43 -0
  245. package/src/util/StringHelper.js +17 -2
  246. package/src/util/TabbableElements.js +5 -2
  247. package/src/util/arraysAreEqual.js +15 -0
  248. package/src/util/clamp.js +12 -0
  249. package/src/util/createLinkInHead.js +19 -0
  250. package/src/util/debounce.js +17 -0
  251. package/src/util/detectNavigatorLanguage.js +3 -1
  252. package/src/util/encodeCSS.js +24 -0
  253. package/src/util/findNodeOwner.js +35 -0
  254. package/src/util/getActiveElement.js +11 -0
  255. package/src/util/getClassCopy.js +10 -0
  256. package/src/util/getEffectiveContentDensity.js +5 -0
  257. package/src/util/getFileExtension.js +21 -0
  258. package/src/util/getSingletonElementInstance.js +13 -0
  259. package/src/util/isElementInView.js +15 -0
  260. package/src/util/isNodeHidden.js +1 -5
  261. package/src/util/isNodeTabbable.js +4 -4
  262. package/src/util/isValidPropertyName.js +11 -2
  263. package/src/util/setToArray.js +10 -0
  264. package/used-modules.txt +7 -0
  265. package/bundle.es5.js +0 -28
  266. package/dist/Assets.js +0 -2
  267. package/dist/CSS.js +0 -48
  268. package/dist/FormatSettings.js +0 -31
  269. package/dist/LocaleProvider.js +0 -34
  270. package/dist/ResourceLoaderOverrides.js +0 -38
  271. package/dist/SVGIconRegistry.js +0 -54
  272. package/dist/boot.js +0 -25
  273. package/dist/compatibility/DOMObserver.js +0 -62
  274. package/dist/compatibility/patchNodeValue.js +0 -24
  275. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  276. package/dist/dates/CalendarDate.js +0 -203
  277. package/dist/dates/CalendarUtils.js +0 -99
  278. package/dist/delegate/CustomResize.js +0 -78
  279. package/dist/delegate/NativeResize.js +0 -44
  280. package/dist/events/PseudoEvents.js +0 -58
  281. package/dist/features/browsersupport/Edge.js +0 -6
  282. package/dist/features/browsersupport/IE11.js +0 -41
  283. package/dist/features/calendar/Buddhist.js +0 -1
  284. package/dist/features/calendar/Islamic.js +0 -1
  285. package/dist/features/calendar/Japanese.js +0 -1
  286. package/dist/features/calendar/Persian.js +0 -1
  287. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  288. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  289. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  290. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  291. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  292. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  293. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  294. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  295. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  296. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  297. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  298. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  299. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  300. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  301. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  302. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  303. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  304. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  305. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  306. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  307. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  308. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  309. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  310. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  311. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  312. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  313. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  314. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  315. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  316. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  317. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  318. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  319. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  320. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  321. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  322. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  323. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  324. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  325. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  326. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  327. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  328. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  329. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  330. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  331. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  332. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  333. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  334. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  335. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  336. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  337. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  338. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  339. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  340. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  341. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  342. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  343. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  344. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  345. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  346. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  347. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  348. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  349. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  350. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  351. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  352. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  353. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  354. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  355. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  356. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  357. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  358. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  359. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  360. package/dist/json-imports/LocaleData.js +0 -171
  361. package/dist/renderer/ifDefined.js +0 -21
  362. package/dist/resources/bundle.es5.js +0 -212
  363. package/dist/resources/bundle.es5.js.map +0 -1
  364. package/dist/shims/Core-shim.js +0 -52
  365. package/dist/shims/jquery-shim.js +0 -89
  366. package/dist/theming/StyleInjection.js +0 -67
  367. package/dist/thirdparty/Array.from.js +0 -16
  368. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  369. package/dist/thirdparty/Array.prototype.find.js +0 -46
  370. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  371. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  372. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  373. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  374. package/dist/thirdparty/Number.isInteger.js +0 -5
  375. package/dist/thirdparty/Number.isNaN.js +0 -1
  376. package/dist/thirdparty/Number.parseInt.js +0 -1
  377. package/dist/thirdparty/Object.assign.js +0 -31
  378. package/dist/thirdparty/Object.entries.js +0 -11
  379. package/dist/thirdparty/Symbol.js +0 -2
  380. package/dist/thirdparty/WeakSet.js +0 -27
  381. package/dist/thirdparty/events-polyfills.js +0 -89
  382. package/dist/thirdparty/fetch.js +0 -1
  383. package/dist/thirdparty/template.js +0 -600
  384. package/dist/util/CSSTransformUtils.js +0 -90
  385. package/dist/webcomponentsjs/LICENSE.md +0 -19
  386. package/dist/webcomponentsjs/README.md +0 -229
  387. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  388. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  389. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  390. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  391. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  392. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  393. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  394. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  395. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  396. package/dist/webcomponentsjs/package.json +0 -46
  397. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  398. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  399. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  400. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  401. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  402. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  403. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  404. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  405. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  406. package/src/Assets.js +0 -2
  407. package/src/CSS.js +0 -48
  408. package/src/FormatSettings.js +0 -31
  409. package/src/LocaleProvider.js +0 -34
  410. package/src/ResourceLoaderOverrides.js +0 -38
  411. package/src/SVGIconRegistry.js +0 -54
  412. package/src/boot.js +0 -25
  413. package/src/compatibility/DOMObserver.js +0 -62
  414. package/src/compatibility/patchNodeValue.js +0 -24
  415. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  416. package/src/dates/CalendarDate.js +0 -203
  417. package/src/dates/CalendarUtils.js +0 -99
  418. package/src/delegate/CustomResize.js +0 -78
  419. package/src/delegate/NativeResize.js +0 -44
  420. package/src/events/PseudoEvents.js +0 -58
  421. package/src/features/browsersupport/Edge.js +0 -6
  422. package/src/features/browsersupport/IE11.js +0 -41
  423. package/src/features/calendar/Buddhist.js +0 -1
  424. package/src/features/calendar/Islamic.js +0 -1
  425. package/src/features/calendar/Japanese.js +0 -1
  426. package/src/features/calendar/Persian.js +0 -1
  427. package/src/json-imports/LocaleData.js +0 -171
  428. package/src/renderer/ifDefined.js +0 -21
  429. package/src/shims/Core-shim.js +0 -52
  430. package/src/shims/jquery-shim.js +0 -89
  431. package/src/theming/StyleInjection.js +0 -67
  432. package/src/thirdparty/Array.from.js +0 -16
  433. package/src/thirdparty/Array.prototype.fill.js +0 -44
  434. package/src/thirdparty/Array.prototype.find.js +0 -46
  435. package/src/thirdparty/Array.prototype.includes.js +0 -51
  436. package/src/thirdparty/Element.prototype.closest.js +0 -11
  437. package/src/thirdparty/Element.prototype.matches.js +0 -6
  438. package/src/thirdparty/Map.prototype.keys.js +0 -9
  439. package/src/thirdparty/Number.isInteger.js +0 -5
  440. package/src/thirdparty/Number.isNaN.js +0 -1
  441. package/src/thirdparty/Number.parseInt.js +0 -1
  442. package/src/thirdparty/Object.assign.js +0 -31
  443. package/src/thirdparty/Object.entries.js +0 -11
  444. package/src/thirdparty/Symbol.js +0 -2
  445. package/src/thirdparty/WeakSet.js +0 -27
  446. package/src/thirdparty/events-polyfills.js +0 -89
  447. package/src/thirdparty/fetch.js +0 -1
  448. package/src/thirdparty/template.js +0 -600
  449. package/src/util/CSSTransformUtils.js +0 -90
@@ -0,0 +1,30 @@
1
+ import DataType from "./DataType.js";
2
+
3
+ /**
4
+ * Enumeration for different mode behaviors of the <code>InvisibleMessage</code>.
5
+ * @private
6
+ */
7
+ const InvisibleMessageModes = {
8
+
9
+ /**
10
+ * Indicates that updates to the region should be presented at the next graceful opportunity,
11
+ * such as at the end of reading the current sentence, or when the user pauses typing.
12
+ */
13
+ Polite: "Polite",
14
+
15
+ /**
16
+ * Indicates that updates to the region have the highest priority and should be presented to the user immediately.
17
+ */
18
+ Assertive: "Assertive",
19
+
20
+ };
21
+
22
+ class InvisibleMessageMode extends DataType {
23
+ static isValid(value) {
24
+ return !!InvisibleMessageModes[value];
25
+ }
26
+ }
27
+
28
+ InvisibleMessageMode.generateTypeAccessors(InvisibleMessageModes);
29
+
30
+ export default InvisibleMessageModes;
@@ -4,18 +4,13 @@
4
4
  */
5
5
  const ItemNavigationBehavior = {
6
6
  /**
7
- * Static behavior: when border of the items is reached, you can't go out of the cage.
7
+ * Static behavior: navigations stops at the first or last item.
8
8
  */
9
9
  Static: "Static",
10
10
 
11
11
  /**
12
- * Cycling behavior: when border of the items is reached, you can cycle through the items.
12
+ * Cycling behavior: navigating past the last item continues with the first and vice versa.
13
13
  */
14
14
  Cyclic: "Cyclic",
15
-
16
- /**
17
- * Paging behavior: when border of the items is reached, tou can go up/down based on the rowsize(e.g. DayPicker)
18
- */
19
- Paging: "Paging",
20
15
  };
21
16
  export default ItemNavigationBehavior;
@@ -2,5 +2,6 @@ const NavigationMode = {
2
2
  Auto: "Auto",
3
3
  Vertical: "Vertical",
4
4
  Horizontal: "Horizontal",
5
+ Paging: "Paging",
5
6
  };
6
7
  export default NavigationMode;
@@ -32,6 +32,6 @@ class PopupState extends DataType {
32
32
  }
33
33
  }
34
34
 
35
- PopupState.generataTypeAcessors(PopupStates);
35
+ PopupState.generateTypeAccessors(PopupStates);
36
36
 
37
37
  export default PopupState;
@@ -8,6 +8,7 @@ const ValueStates = {
8
8
  Success: "Success",
9
9
  Warning: "Warning",
10
10
  Error: "Error",
11
+ Information: "Information",
11
12
  };
12
13
 
13
14
  class ValueState extends DataType {
@@ -16,6 +17,6 @@ class ValueState extends DataType {
16
17
  }
17
18
  }
18
19
 
19
- ValueState.generataTypeAcessors(ValueStates);
20
+ ValueState.generateTypeAccessors(ValueStates);
20
21
 
21
22
  export default ValueState;
@@ -0,0 +1,30 @@
1
+ import executeTemplate from "./renderer/executeTemplate.js";
2
+ import getConstructableStyle from "./theming/getConstructableStyle.js";
3
+ import getEffectiveStyle from "./theming/getEffectiveStyle.js";
4
+ import getEffectiveLinksHrefs from "./theming/getEffectiveLinksHrefs.js";
5
+ import isLegacyBrowser from "./isLegacyBrowser.js";
6
+ import { shouldUseLinks } from "./CSP.js";
7
+
8
+ /**
9
+ * Updates the shadow root of a UI5Element or its static area item
10
+ * @param element
11
+ * @param forStaticArea
12
+ */
13
+ const updateShadowRoot = (element, forStaticArea = false) => {
14
+ let styleStrOrHrefsArr;
15
+ const template = forStaticArea ? "staticAreaTemplate" : "template";
16
+ const shadowRoot = forStaticArea ? element.staticAreaItem.shadowRoot : element.shadowRoot;
17
+ const renderResult = executeTemplate(element.constructor[template], element);
18
+
19
+ if (shouldUseLinks()) {
20
+ styleStrOrHrefsArr = getEffectiveLinksHrefs(element.constructor, forStaticArea);
21
+ } else if (document.adoptedStyleSheets) { // Chrome
22
+ shadowRoot.adoptedStyleSheets = getConstructableStyle(element.constructor, forStaticArea);
23
+ } else if (!isLegacyBrowser()) { // FF, Safari
24
+ styleStrOrHrefsArr = getEffectiveStyle(element.constructor, forStaticArea);
25
+ }
26
+
27
+ element.constructor.render(renderResult, shadowRoot, styleStrOrHrefsArr, { host: element });
28
+ };
29
+
30
+ export default updateShadowRoot;
@@ -0,0 +1,41 @@
1
+ import findNodeOwner from "./findNodeOwner.js";
2
+
3
+ const getEffectiveAriaLabelText = el => {
4
+ if (!el.accessibleNameRef) {
5
+ if (el.accessibleName) {
6
+ return el.accessibleName;
7
+ }
8
+
9
+ return undefined;
10
+ }
11
+
12
+ return getAriaLabelledByTexts(el);
13
+ };
14
+
15
+ /**
16
+ *
17
+ * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
18
+ * @param {HTMLElement} ownerDocument (Optional) Defines the HTMLElement(might document or custom element) where the you want to search for the texts.
19
+ * @param {String} readyIds (Optional) Defines a string of elements ids. The text of these elements will be returned. If used you should provide either el or ownerDocument
20
+ */
21
+ const getAriaLabelledByTexts = (el, ownerDocument, readyIds = "") => {
22
+ const ids = (readyIds && readyIds.split(" ")) || el.accessibleNameRef.split(" ");
23
+ const owner = ownerDocument || findNodeOwner(el);
24
+ let result = "";
25
+
26
+ ids.forEach((elementId, index) => {
27
+ const element = owner.querySelector(`[id='${elementId}']`);
28
+ result += `${element ? element.textContent : ""}`;
29
+
30
+ if (index < ids.length - 1) {
31
+ result += " ";
32
+ }
33
+ });
34
+
35
+ return result;
36
+ };
37
+
38
+ export {
39
+ getEffectiveAriaLabelText,
40
+ getAriaLabelledByTexts,
41
+ };
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Returns the caret (cursor) position of the specified text field (field).
3
+ * Return value range is 0-field.value.length.
4
+ */
5
+ const getCaretPosition = field => {
6
+ // Initialize
7
+ let caretPos = 0;
8
+
9
+ // IE Support
10
+ if (document.selection) {
11
+ // Set focus on the element
12
+ field.focus();
13
+
14
+ // To get cursor position, get empty selection range
15
+ const selection = document.selection.createRange();
16
+
17
+ // Move selection start to 0 position
18
+ selection.moveStart("character", -field.value.length);
19
+
20
+ // The caret position is selection length
21
+ caretPos = selection.text.length;
22
+ } else if (field.selectionStart || field.selectionStart === "0") { // Firefox support
23
+ caretPos = field.selectionDirection === "backward" ? field.selectionStart : field.selectionEnd;
24
+ }
25
+
26
+ return caretPos;
27
+ };
28
+
29
+ const setCaretPosition = (field, caretPos) => {
30
+ if (field.createTextRange) {
31
+ const range = field.createTextRange();
32
+ range.move("character", caretPos);
33
+ range.select();
34
+ } else if (field.selectionStart) {
35
+ field.focus();
36
+ field.setSelectionRange(caretPos, caretPos);
37
+ } else {
38
+ field.focus();
39
+ }
40
+ };
41
+
42
+ export {
43
+ getCaretPosition,
44
+ setCaretPosition,
45
+ };
@@ -0,0 +1,370 @@
1
+ /**
2
+ *
3
+ * @param {String} color Color in one of the following formats: RGBA or HEX
4
+ */
5
+
6
+ /**
7
+ * Map of CSS colors to hex representation
8
+ */
9
+ const CSSColors = {
10
+ aliceblue: "f0f8ff",
11
+ antiquewhite: "faebd7",
12
+ aqua: "00ffff",
13
+ aquamarine: "7fffd4",
14
+ azure: "f0ffff",
15
+ beige: "f5f5dc",
16
+ bisque: "ffe4c4",
17
+ black: "000000",
18
+ blanchedalmond: "ffebcd",
19
+ blue: "0000ff",
20
+ blueviolet: "8a2be2",
21
+ brown: "a52a2a",
22
+ burlywood: "deb887",
23
+ cadetblue: "5f9ea0",
24
+ chartreuse: "7fff00",
25
+ chocolate: "d2691e",
26
+ coral: "ff7f50",
27
+ cornflowerblue: "6495ed",
28
+ cornsilk: "fff8dc",
29
+ crimson: "dc143c",
30
+ cyan: "00ffff",
31
+ darkblue: "00008b",
32
+ darkcyan: "008b8b",
33
+ darkgoldenrod: "b8860b",
34
+ darkgray: "a9a9a9",
35
+ darkgrey: "a9a9a9",
36
+ darkgreen: "006400",
37
+ darkkhaki: "bdb76b",
38
+ darkmagenta: "8b008b",
39
+ darkolivegreen: "556b2f",
40
+ darkorange: "ff8c00",
41
+ darkorchid: "9932cc",
42
+ darkred: "8b0000",
43
+ darksalmon: "e9967a",
44
+ darkseagreen: "8fbc8f",
45
+ darkslateblue: "483d8b",
46
+ darkslategray: "2f4f4f",
47
+ darkslategrey: "2f4f4f",
48
+ darkturquoise: "00ced1",
49
+ darkviolet: "9400d3",
50
+ deeppink: "ff1493",
51
+ deepskyblue: "00bfff",
52
+ dimgray: "696969",
53
+ dimgrey: "696969",
54
+ dodgerblue: "1e90ff",
55
+ firebrick: "b22222",
56
+ floralwhite: "fffaf0",
57
+ forestgreen: "228b22",
58
+ fuchsia: "ff00ff",
59
+ gainsboro: "dcdcdc",
60
+ ghostwhite: "f8f8ff",
61
+ gold: "ffd700",
62
+ goldenrod: "daa520",
63
+ gray: "808080",
64
+ grey: "808080",
65
+ green: "008000",
66
+ greenyellow: "adff2f",
67
+ honeydew: "f0fff0",
68
+ hotpink: "ff69b4",
69
+ indianred: "cd5c5c",
70
+ indigo: "4b0082",
71
+ ivory: "fffff0",
72
+ khaki: "f0e68c",
73
+ lavender: "e6e6fa",
74
+ lavenderblush: "fff0f5",
75
+ lawngreen: "7cfc00",
76
+ lemonchiffon: "fffacd",
77
+ lightblue: "add8e6",
78
+ lightcoral: "f08080",
79
+ lightcyan: "e0ffff",
80
+ lightgoldenrodyellow: "fafad2",
81
+ lightgray: "d3d3d3",
82
+ lightgrey: "d3d3d3",
83
+ lightgreen: "90ee90",
84
+ lightpink: "ffb6c1",
85
+ lightsalmon: "ffa07a",
86
+ lightseagreen: "20b2aa",
87
+ lightskyblue: "87cefa",
88
+ lightslategray: "778899",
89
+ lightslategrey: "778899",
90
+ lightsteelblue: "b0c4de",
91
+ lightyellow: "ffffe0",
92
+ lime: "00ff00",
93
+ limegreen: "32cd32",
94
+ linen: "faf0e6",
95
+ magenta: "ff00ff",
96
+ maroon: "800000",
97
+ mediumaquamarine: "66cdaa",
98
+ mediumblue: "0000cd",
99
+ mediumorchid: "ba55d3",
100
+ mediumpurple: "9370db",
101
+ mediumseagreen: "3cb371",
102
+ mediumslateblue: "7b68ee",
103
+ mediumspringgreen: "00fa9a",
104
+ mediumturquoise: "48d1cc",
105
+ mediumvioletred: "c71585",
106
+ midnightblue: "191970",
107
+ mintcream: "f5fffa",
108
+ mistyrose: "ffe4e1",
109
+ moccasin: "ffe4b5",
110
+ navajowhite: "ffdead",
111
+ navy: "000080",
112
+ oldlace: "fdf5e6",
113
+ olive: "808000",
114
+ olivedrab: "6b8e23",
115
+ orange: "ffa500",
116
+ orangered: "ff4500",
117
+ orchid: "da70d6",
118
+ palegoldenrod: "eee8aa",
119
+ palegreen: "98fb98",
120
+ paleturquoise: "afeeee",
121
+ palevioletred: "db7093",
122
+ papayawhip: "ffefd5",
123
+ peachpuff: "ffdab9",
124
+ peru: "cd853f",
125
+ pink: "ffc0cb",
126
+ plum: "dda0dd",
127
+ powderblue: "b0e0e6",
128
+ purple: "800080",
129
+ red: "ff0000",
130
+ rosybrown: "bc8f8f",
131
+ royalblue: "4169e1",
132
+ saddlebrown: "8b4513",
133
+ salmon: "fa8072",
134
+ sandybrown: "f4a460",
135
+ seagreen: "2e8b57",
136
+ seashell: "fff5ee",
137
+ sienna: "a0522d",
138
+ silver: "c0c0c0",
139
+ skyblue: "87ceeb",
140
+ slateblue: "6a5acd",
141
+ slategray: "708090",
142
+ slategrey: "708090",
143
+ snow: "fffafa",
144
+ springgreen: "00ff7f",
145
+ steelblue: "4682b4",
146
+ tan: "d2b48c",
147
+ teal: "008080",
148
+ thistle: "d8bfd8",
149
+ tomato: "ff6347",
150
+ turquoise: "40e0d0",
151
+ violet: "ee82ee",
152
+ wheat: "f5deb3",
153
+ white: "ffffff",
154
+ whitesmoke: "f5f5f5",
155
+ yellow: "ffff00",
156
+ yellowgreen: "9acd32",
157
+ transparent: "00000000",
158
+ };
159
+
160
+ const getRGBColor = color => {
161
+ if (color.startsWith("rgba")) {
162
+ return RGBAToRGB(color);
163
+ }
164
+
165
+ if (color.startsWith("rgb")) {
166
+ return RGBToRGB(color);
167
+ }
168
+
169
+ // HEX
170
+ if (color.indexOf("#") === 0) {
171
+ // Shorthand Syntax
172
+ if (color.length === 4) {
173
+ color = `${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;
174
+ } else {
175
+ color = color.slice(1, color.length);
176
+ }
177
+ }
178
+
179
+ // Css Color
180
+ if (Object.keys(CSSColors).includes(color)) {
181
+ color = CSSColors[color];
182
+ }
183
+
184
+ return HEXToRGB(color);
185
+ };
186
+
187
+ /**
188
+ * Return an object with the properties for each of the main colors(red, green, blue)
189
+ * @param {String} color Receives a color in the following format: "rgba(0, 0, 0, 1)
190
+ */
191
+ const RGBAToRGB = color => {
192
+ const openingBracketIndex = color.indexOf("("),
193
+ commasIndexes = [];
194
+
195
+ for (let i = 0; i < color.length; i++) {
196
+ if (color[i] === ",") {
197
+ commasIndexes.push(i);
198
+ }
199
+ }
200
+
201
+ return {
202
+ r: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),
203
+ g: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),
204
+ b: parseInt(color.slice(commasIndexes[1] + 1, commasIndexes[2]).trim()),
205
+ };
206
+ };
207
+
208
+ /**
209
+ * Return an object with the properties for each of the main colors(red, green, blue)
210
+ * @param {String} color Receives a color in the following format: "rgb(0, 0, 0)
211
+ */
212
+ const RGBToRGB = color => {
213
+ const openingBracketIndex = color.indexOf("("),
214
+ closingBraketIndex = color.indexOf(")"),
215
+ commasIndexes = [];
216
+
217
+ for (let i = 0; i < color.length; i++) {
218
+ if (color[i] === ",") {
219
+ commasIndexes.push(i);
220
+ }
221
+ }
222
+
223
+ return {
224
+ r: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),
225
+ g: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),
226
+ b: parseInt(color.slice(commasIndexes[1] + 1, closingBraketIndex).trim()),
227
+ };
228
+ };
229
+
230
+ const HSLToRGB = (color = {
231
+ h: undefined,
232
+ s: undefined,
233
+ l: undefined,
234
+ }) => {
235
+ // Formula taken from https://www.rapidtables.com/convert/color/hsl-to-rgb.html
236
+ const C = (1 - Math.abs((2 * color.l) - 1)) * color.s,
237
+ X = C * (1 - Math.abs(((color.h / 60) % 2) - 1)),
238
+ m = color.l - C / 2;
239
+
240
+ let tempColor = {};
241
+ switch (Math.round(color.h / 60)) {
242
+ // 0 ≤ H < 60
243
+ case 0:
244
+ tempColor = {
245
+ r: C,
246
+ g: X,
247
+ b: 0,
248
+ };
249
+ break;
250
+
251
+ // 60 ≤ H < 120
252
+ case 1:
253
+ tempColor = {
254
+ r: X,
255
+ g: C,
256
+ b: 0,
257
+ };
258
+ break;
259
+
260
+ // 120 ≤ H < 180
261
+ case 2:
262
+ tempColor = {
263
+ r: 0,
264
+ g: C,
265
+ b: X,
266
+ };
267
+ break;
268
+
269
+ // 180 ≤ H < 240
270
+ case 3:
271
+ tempColor = {
272
+ r: 0,
273
+ g: X,
274
+ b: C,
275
+ };
276
+ break;
277
+
278
+ // 240 ≤ H < 300
279
+ case 4:
280
+ tempColor = {
281
+ r: X,
282
+ g: 0,
283
+ b: C,
284
+ };
285
+ break;
286
+
287
+ // 300 ≤ H < 360
288
+ default:
289
+ tempColor = {
290
+ r: C,
291
+ g: 0,
292
+ b: X,
293
+ };
294
+ }
295
+
296
+ return {
297
+ r: Math.floor((tempColor.r + m) * 255),
298
+ g: Math.floor((tempColor.g + m) * 255),
299
+ b: Math.floor((tempColor.b + m) * 255),
300
+ };
301
+ };
302
+
303
+ const HEXToRGB = hex => {
304
+ // Please make sure you pass a valid 6 digit hex color
305
+ // In the implementation of this method we assume that the hex argument is a 6 digit valid hex color
306
+
307
+ const rgbValues = {
308
+ r: hex.substr(0, 2),
309
+ g: hex.substr(2, 2),
310
+ b: hex.substr(4, 2),
311
+ };
312
+
313
+ const rgbKeys = Object.keys(rgbValues);
314
+
315
+ rgbKeys.forEach(key => {
316
+ rgbValues[key] = parseInt(rgbValues[key], 16);
317
+ });
318
+
319
+ return rgbValues;
320
+ };
321
+
322
+ const RGBToHSL = (color = {
323
+ r: undefined,
324
+ g: undefined,
325
+ b: undefined,
326
+ }) => {
327
+ const R = color.r / 255,
328
+ G = color.g / 255,
329
+ B = color.b / 255,
330
+ max = Math.max(R, G, B),
331
+ min = Math.min(R, G, B),
332
+ delta = max - min;
333
+
334
+ let h,
335
+ s;
336
+
337
+ // Hue calculation
338
+ if (delta === 0) {
339
+ h = 0;
340
+ } else if (max === R) {
341
+ h = 60 * (((G - B) / delta) % 6);
342
+ } else if (max === G) {
343
+ h = 60 * (((B - R) / delta) + 2);
344
+ } else if (max === B) {
345
+ h = 60 * (((R - G) / delta) + 4);
346
+ }
347
+
348
+ // Lightness calculation
349
+ const l = (max + min) / 2;
350
+
351
+ // Saturation calculation
352
+ if (delta === 0) {
353
+ s = 0;
354
+ } else {
355
+ s = delta / (1 - Math.abs(2 * l - 1));
356
+ }
357
+
358
+ return {
359
+ h,
360
+ s,
361
+ l,
362
+ };
363
+ };
364
+
365
+ export {
366
+ getRGBColor,
367
+ HSLToRGB,
368
+ HEXToRGB,
369
+ RGBToHSL,
370
+ };
@@ -1,8 +1,11 @@
1
- import UI5Element from "../UI5Element.js";
2
1
  import isNodeHidden from "./isNodeHidden.js";
3
2
  import isNodeClickable from "./isNodeClickable.js";
4
3
 
5
- const getFirstFocusableElement = container => {
4
+ const isFocusTrap = el => {
5
+ return el.hasAttribute("data-ui5-focus-trap");
6
+ };
7
+
8
+ const getFirstFocusableElement = async container => {
6
9
  if (!container || isNodeHidden(container)) {
7
10
  return null;
8
11
  }
@@ -10,7 +13,7 @@ const getFirstFocusableElement = container => {
10
13
  return findFocusableElement(container, true);
11
14
  };
12
15
 
13
- const getLastFocusableElement = container => {
16
+ const getLastFocusableElement = async container => {
14
17
  if (!container || isNodeHidden(container)) {
15
18
  return null;
16
19
  }
@@ -18,9 +21,16 @@ const getLastFocusableElement = container => {
18
21
  return findFocusableElement(container, false);
19
22
  };
20
23
 
21
- const findFocusableElement = (container, forward) => {
24
+ const isElemFocusable = el => {
25
+ return el.hasAttribute("data-ui5-focus-redirect") || !isNodeHidden(el);
26
+ };
27
+
28
+ const findFocusableElement = async (container, forward) => {
22
29
  let child;
23
- if (container.assignedNodes && container.assignedNodes()) {
30
+
31
+ if (container.shadowRoot) {
32
+ child = forward ? container.shadowRoot.firstChild : container.shadowRoot.lastChild;
33
+ } else if (container.assignedNodes && container.assignedNodes()) {
24
34
  const assignedElements = container.assignedNodes();
25
35
  child = forward ? assignedElements[0] : assignedElements[assignedElements.length - 1];
26
36
  } else {
@@ -29,20 +39,25 @@ const findFocusableElement = (container, forward) => {
29
39
 
30
40
  let focusableDescendant;
31
41
 
42
+ /* eslint-disable no-await-in-loop */
43
+
32
44
  while (child) {
33
45
  const originalChild = child;
34
46
 
35
- child = child instanceof UI5Element ? child.getFocusDomRef() : child;
47
+ if (child.isUI5Element) {
48
+ child = await child.getFocusDomRefAsync();
49
+ }
50
+
36
51
  if (!child) {
37
52
  return null;
38
53
  }
39
54
 
40
- if (child.nodeType === 1 && !isNodeHidden(child)) {
55
+ if (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {
41
56
  if (isNodeClickable(child)) {
42
57
  return (child && typeof child.focus === "function") ? child : null;
43
58
  }
44
59
 
45
- focusableDescendant = findFocusableElement(child, forward);
60
+ focusableDescendant = await findFocusableElement(child, forward);
46
61
  if (focusableDescendant) {
47
62
  return (focusableDescendant && typeof focusableDescendant.focus === "function") ? focusableDescendant : null;
48
63
  }
@@ -51,6 +66,8 @@ const findFocusableElement = (container, forward) => {
51
66
  child = forward ? originalChild.nextSibling : originalChild.previousSibling;
52
67
  }
53
68
 
69
+ /* eslint-enable no-await-in-loop */
70
+
54
71
  return null;
55
72
  };
56
73
 
@@ -0,0 +1,7 @@
1
+ import sanitizeHTML from "../sap/base/security/sanitizeHTML.js";
2
+ import URLListValidator from "../sap/base/security/URLListValidator.js";
3
+
4
+ export {
5
+ URLListValidator,
6
+ sanitizeHTML,
7
+ };