@ui5/webcomponents-base 0.0.0-4821618b2 → 0.0.0-49cef2d02

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 (687) hide show
  1. package/.eslintignore +4 -2
  2. package/CHANGELOG.md +316 -0
  3. package/README.md +53 -7
  4. package/bundle.esm.js +18 -12
  5. package/dist/AssetRegistry.d.ts +5 -0
  6. package/dist/AssetRegistry.js +2 -7
  7. package/dist/AssetRegistry.js.map +1 -0
  8. package/dist/Boot.d.ts +8 -0
  9. package/dist/Boot.js +31 -30
  10. package/dist/Boot.js.map +1 -0
  11. package/dist/CSP.d.ts +30 -0
  12. package/dist/CSP.js +51 -0
  13. package/dist/CSP.js.map +1 -0
  14. package/dist/CustomElementsRegistry.d.ts +5 -0
  15. package/dist/CustomElementsRegistry.js +69 -30
  16. package/dist/CustomElementsRegistry.js.map +1 -0
  17. package/dist/CustomElementsScope.d.ts +7 -0
  18. package/dist/CustomElementsScope.js +11 -108
  19. package/dist/CustomElementsScope.js.map +1 -0
  20. package/dist/CustomElementsScopeUtils.d.ts +55 -0
  21. package/dist/CustomElementsScopeUtils.js +90 -0
  22. package/dist/CustomElementsScopeUtils.js.map +1 -0
  23. package/dist/DOMObserver.d.ts +11 -0
  24. package/dist/DOMObserver.js +12 -54
  25. package/dist/DOMObserver.js.map +1 -0
  26. package/dist/Device.d.ts +12 -0
  27. package/dist/Device.js +63 -72
  28. package/dist/Device.js.map +1 -0
  29. package/dist/EventProvider.d.ts +25 -0
  30. package/dist/EventProvider.js +67 -88
  31. package/dist/EventProvider.js.map +1 -0
  32. package/dist/FeaturesRegistry.d.ts +3 -0
  33. package/dist/FeaturesRegistry.js +5 -7
  34. package/dist/FeaturesRegistry.js.map +1 -0
  35. package/dist/FontFace.d.ts +2 -0
  36. package/dist/FontFace.js +17 -110
  37. package/dist/FontFace.js.map +1 -0
  38. package/dist/InitialConfiguration.d.ts +22 -0
  39. package/dist/InitialConfiguration.js +112 -127
  40. package/dist/InitialConfiguration.js.map +1 -0
  41. package/dist/Keys.d.ts +57 -0
  42. package/dist/Keys.js +174 -235
  43. package/dist/Keys.js.map +1 -0
  44. package/dist/ManagedStyles.d.ts +8 -0
  45. package/dist/ManagedStyles.js +77 -0
  46. package/dist/ManagedStyles.js.map +1 -0
  47. package/dist/MarkedEvents.d.ts +9 -0
  48. package/dist/MarkedEvents.js +15 -0
  49. package/dist/MarkedEvents.js.map +1 -0
  50. package/dist/MediaRange.d.ts +37 -0
  51. package/dist/MediaRange.js +54 -65
  52. package/dist/MediaRange.js.map +1 -0
  53. package/dist/PropertiesFileFormat.d.ts +8 -0
  54. package/dist/PropertiesFileFormat.js +72 -82
  55. package/dist/PropertiesFileFormat.js.map +1 -0
  56. package/dist/Render.d.ts +47 -0
  57. package/dist/Render.js +82 -112
  58. package/dist/Render.js.map +1 -0
  59. package/dist/RenderQueue.d.ts +19 -0
  60. package/dist/RenderQueue.js +52 -62
  61. package/dist/RenderQueue.js.map +1 -0
  62. package/dist/Runtimes.d.ts +27 -0
  63. package/dist/Runtimes.js +86 -0
  64. package/dist/Runtimes.js.map +1 -0
  65. package/dist/StaticArea.d.ts +0 -0
  66. package/dist/StaticArea.js +4 -1
  67. package/dist/StaticArea.js.map +1 -0
  68. package/dist/StaticAreaItem.d.ts +36 -0
  69. package/dist/StaticAreaItem.js +86 -83
  70. package/dist/StaticAreaItem.js.map +1 -0
  71. package/dist/SystemCSSVars.d.ts +2 -0
  72. package/dist/SystemCSSVars.js +6 -28
  73. package/dist/SystemCSSVars.js.map +1 -0
  74. package/dist/Theming.d.ts +3 -0
  75. package/dist/Theming.js +1 -1
  76. package/dist/Theming.js.map +1 -0
  77. package/dist/UI5Element.d.ts +373 -0
  78. package/dist/UI5Element.js +930 -997
  79. package/dist/UI5Element.js.map +1 -0
  80. package/dist/UI5ElementMetadata.d.ts +150 -0
  81. package/dist/UI5ElementMetadata.js +278 -298
  82. package/dist/UI5ElementMetadata.js.map +1 -0
  83. package/dist/animations/AnimationQueue.d.ts +8 -0
  84. package/dist/animations/AnimationQueue.js +31 -38
  85. package/dist/animations/AnimationQueue.js.map +1 -0
  86. package/dist/animations/animate.d.ts +14 -0
  87. package/dist/animations/animate.js +46 -51
  88. package/dist/animations/animate.js.map +1 -0
  89. package/dist/animations/scroll.d.ts +5 -0
  90. package/dist/animations/scroll.js +18 -27
  91. package/dist/animations/scroll.js.map +1 -0
  92. package/dist/animations/slideDown.d.ts +5 -0
  93. package/dist/animations/slideDown.js +53 -78
  94. package/dist/animations/slideDown.js.map +1 -0
  95. package/dist/animations/slideUp.d.ts +5 -0
  96. package/dist/animations/slideUp.js +49 -70
  97. package/dist/animations/slideUp.js.map +1 -0
  98. package/dist/api.json +1 -0
  99. package/dist/asset-registries/Icons.d.ts +30 -0
  100. package/dist/asset-registries/Icons.js +87 -104
  101. package/dist/asset-registries/Icons.js.map +1 -0
  102. package/dist/asset-registries/Illustrations.d.ts +17 -0
  103. package/dist/asset-registries/Illustrations.js +41 -18
  104. package/dist/asset-registries/Illustrations.js.map +1 -0
  105. package/dist/asset-registries/LocaleData.d.ts +7 -0
  106. package/dist/asset-registries/LocaleData.js +104 -118
  107. package/dist/asset-registries/LocaleData.js.map +1 -0
  108. package/dist/asset-registries/Themes.d.ts +10 -0
  109. package/dist/asset-registries/Themes.js +38 -66
  110. package/dist/asset-registries/Themes.js.map +1 -0
  111. package/dist/asset-registries/i18n.d.ts +23 -0
  112. package/dist/asset-registries/i18n.js +55 -81
  113. package/dist/asset-registries/i18n.js.map +1 -0
  114. package/dist/assets/bundle.esm.90eb65b3.js +56 -0
  115. package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
  116. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  117. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  118. package/dist/config/AnimationMode.d.ts +14 -0
  119. package/dist/config/AnimationMode.js +21 -18
  120. package/dist/config/AnimationMode.js.map +1 -0
  121. package/dist/config/CalendarType.d.ts +8 -0
  122. package/dist/config/CalendarType.js +13 -12
  123. package/dist/config/CalendarType.js.map +1 -0
  124. package/dist/config/FormatSettings.d.ts +11 -0
  125. package/dist/config/FormatSettings.js +10 -8
  126. package/dist/config/FormatSettings.js.map +1 -0
  127. package/dist/config/Icons.d.ts +30 -0
  128. package/dist/config/Icons.js +48 -0
  129. package/dist/config/Icons.js.map +1 -0
  130. package/dist/config/Language.d.ts +31 -0
  131. package/dist/config/Language.js +31 -43
  132. package/dist/config/Language.js.map +1 -0
  133. package/dist/config/NoConflict.d.ts +20 -0
  134. package/dist/config/NoConflict.js +40 -41
  135. package/dist/config/NoConflict.js.map +1 -0
  136. package/dist/config/RTL.d.ts +7 -0
  137. package/dist/config/RTL.js +23 -20
  138. package/dist/config/RTL.js.map +1 -0
  139. package/dist/config/Theme.d.ts +28 -0
  140. package/dist/config/Theme.js +45 -22
  141. package/dist/config/Theme.js.map +1 -0
  142. package/dist/config/ThemeRoots.d.ts +4 -0
  143. package/dist/config/ThemeRoots.js +28 -0
  144. package/dist/config/ThemeRoots.js.map +1 -0
  145. package/dist/css/BusyIndicator.css +80 -0
  146. package/dist/css/FontFace.css +66 -0
  147. package/dist/css/OverrideFontFace.css +32 -0
  148. package/dist/css/SystemCSSVars.css +17 -0
  149. package/dist/decorators/customElement.d.ts +8 -0
  150. package/dist/decorators/customElement.js +16 -0
  151. package/dist/decorators/customElement.js.map +1 -0
  152. package/dist/decorators/event.d.ts +10 -0
  153. package/dist/decorators/event.js +24 -0
  154. package/dist/decorators/event.js.map +1 -0
  155. package/dist/decorators/fastNavigation.d.ts +7 -0
  156. package/dist/decorators/fastNavigation.js +13 -0
  157. package/dist/decorators/fastNavigation.js.map +1 -0
  158. package/dist/decorators/languageAware.d.ts +7 -0
  159. package/dist/decorators/languageAware.js +13 -0
  160. package/dist/decorators/languageAware.js.map +1 -0
  161. package/dist/decorators/property.d.ts +9 -0
  162. package/dist/decorators/property.js +24 -0
  163. package/dist/decorators/property.js.map +1 -0
  164. package/dist/decorators/slot.d.ts +9 -0
  165. package/dist/decorators/slot.js +37 -0
  166. package/dist/decorators/slot.js.map +1 -0
  167. package/dist/decorators/themeAware.d.ts +7 -0
  168. package/dist/decorators/themeAware.js +13 -0
  169. package/dist/decorators/themeAware.js.map +1 -0
  170. package/dist/delegate/ItemNavigation.d.ts +113 -0
  171. package/dist/delegate/ItemNavigation.js +277 -246
  172. package/dist/delegate/ItemNavigation.js.map +1 -0
  173. package/dist/delegate/ResizeHandler.d.ts +24 -0
  174. package/dist/delegate/ResizeHandler.js +68 -91
  175. package/dist/delegate/ResizeHandler.js.map +1 -0
  176. package/dist/delegate/ScrollEnablement.d.ts +48 -0
  177. package/dist/delegate/ScrollEnablement.js +157 -180
  178. package/dist/delegate/ScrollEnablement.js.map +1 -0
  179. package/dist/features/F6Navigation.d.ts +16 -0
  180. package/dist/features/F6Navigation.js +112 -0
  181. package/dist/features/F6Navigation.js.map +1 -0
  182. package/dist/features/OpenUI5Element.d.ts +9 -0
  183. package/dist/features/OpenUI5Element.js +5 -0
  184. package/dist/features/OpenUI5Element.js.map +1 -0
  185. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  186. package/dist/features/OpenUI5Enablement.js +96 -0
  187. package/dist/features/OpenUI5Enablement.js.map +1 -0
  188. package/dist/features/OpenUI5Support.d.ts +23 -0
  189. package/dist/features/OpenUI5Support.js +91 -119
  190. package/dist/features/OpenUI5Support.js.map +1 -0
  191. package/dist/generated/AssetParameters.js +1 -1
  192. package/dist/generated/VersionInfo.js +10 -0
  193. package/dist/generated/css/BusyIndicator.css.js +5 -0
  194. package/dist/generated/css/FontFace.css.js +5 -0
  195. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  196. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  197. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  198. package/dist/getSharedResource.d.ts +11 -0
  199. package/dist/getSharedResource.js +12 -16
  200. package/dist/getSharedResource.js.map +1 -0
  201. package/dist/i18nBundle.d.ts +43 -0
  202. package/dist/i18nBundle.js +67 -44
  203. package/dist/i18nBundle.js.map +1 -0
  204. package/dist/locale/Locale.d.ts +22 -0
  205. package/dist/locale/Locale.js +75 -87
  206. package/dist/locale/Locale.js.map +1 -0
  207. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  208. package/dist/locale/RTLAwareRegistry.js +6 -11
  209. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  210. package/dist/locale/applyDirection.d.ts +10 -0
  211. package/dist/locale/applyDirection.js +7 -7
  212. package/dist/locale/applyDirection.js.map +1 -0
  213. package/dist/locale/directionChange.d.ts +15 -0
  214. package/dist/locale/directionChange.js +7 -15
  215. package/dist/locale/directionChange.js.map +1 -0
  216. package/dist/locale/getEffectiveDir.d.ts +2 -0
  217. package/dist/locale/getEffectiveDir.js +20 -24
  218. package/dist/locale/getEffectiveDir.js.map +1 -0
  219. package/dist/locale/getLocale.d.ts +7 -0
  220. package/dist/locale/getLocale.js +26 -29
  221. package/dist/locale/getLocale.js.map +1 -0
  222. package/dist/locale/languageChange.d.ts +5 -0
  223. package/dist/locale/languageChange.js +8 -16
  224. package/dist/locale/languageChange.js.map +1 -0
  225. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  226. package/dist/locale/nextFallbackLocale.js +15 -19
  227. package/dist/locale/nextFallbackLocale.js.map +1 -0
  228. package/dist/locale/normalizeLocale.d.ts +7 -0
  229. package/dist/locale/normalizeLocale.js +34 -41
  230. package/dist/locale/normalizeLocale.js.map +1 -0
  231. package/dist/renderer/LitRenderer.d.ts +14 -0
  232. package/dist/renderer/LitRenderer.js +33 -23
  233. package/dist/renderer/LitRenderer.js.map +1 -0
  234. package/dist/renderer/directives/style-map.js +72 -0
  235. package/dist/renderer/executeTemplate.d.ts +13 -0
  236. package/dist/renderer/executeTemplate.js +20 -7
  237. package/dist/renderer/executeTemplate.js.map +1 -0
  238. package/dist/sap/base/Log.js +28 -37
  239. package/dist/sap/base/assert.js +5 -10
  240. package/dist/sap/base/security/URLListValidator.js +13 -2
  241. package/dist/sap/base/security/encodeCSS.js +14 -0
  242. package/dist/sap/base/security/encodeXML.js +23 -0
  243. package/dist/sap/base/strings/toHex.js +8 -0
  244. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  245. package/dist/theming/CustomStyle.d.ts +6 -0
  246. package/dist/theming/CustomStyle.js +37 -31
  247. package/dist/theming/CustomStyle.js.map +1 -0
  248. package/dist/theming/ThemeLoaded.d.ts +5 -0
  249. package/dist/theming/ThemeLoaded.js +8 -16
  250. package/dist/theming/ThemeLoaded.js.map +1 -0
  251. package/dist/theming/applyTheme.d.ts +2 -0
  252. package/dist/theming/applyTheme.js +62 -65
  253. package/dist/theming/applyTheme.js.map +1 -0
  254. package/dist/theming/getConstructableStyle.d.ts +9 -0
  255. package/dist/theming/getConstructableStyle.js +12 -17
  256. package/dist/theming/getConstructableStyle.js.map +1 -0
  257. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  258. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  259. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  260. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  261. package/dist/theming/getEffectiveStyle.js +25 -23
  262. package/dist/theming/getEffectiveStyle.js.map +1 -0
  263. package/dist/theming/getStylesString.d.ts +3 -0
  264. package/dist/theming/getStylesString.js +9 -11
  265. package/dist/theming/getStylesString.js.map +1 -0
  266. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  267. package/dist/theming/getThemeDesignerTheme.js +73 -60
  268. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  269. package/dist/theming/preloadLinks.d.ts +3 -0
  270. package/dist/theming/preloadLinks.js +19 -0
  271. package/dist/theming/preloadLinks.js.map +1 -0
  272. package/dist/thirdparty/_merge.d.ts +2 -0
  273. package/dist/thirdparty/_merge.js +7 -4
  274. package/dist/thirdparty/_merge.js.map +1 -0
  275. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  276. package/dist/thirdparty/isPlainObject.js +11 -10
  277. package/dist/thirdparty/isPlainObject.js.map +1 -0
  278. package/dist/thirdparty/merge.d.ts +2 -0
  279. package/dist/thirdparty/merge.js +4 -8
  280. package/dist/thirdparty/merge.js.map +1 -0
  281. package/dist/types/AnimationMode.d.ts +32 -0
  282. package/dist/types/AnimationMode.js +33 -6
  283. package/dist/types/AnimationMode.js.map +1 -0
  284. package/dist/types/CSSColor.d.ts +16 -0
  285. package/dist/types/CSSColor.js +15 -5
  286. package/dist/types/CSSColor.js.map +1 -0
  287. package/dist/types/CalendarType.d.ts +37 -0
  288. package/dist/types/CalendarType.js +35 -18
  289. package/dist/types/CalendarType.js.map +1 -0
  290. package/dist/types/DOMReference.d.ts +17 -0
  291. package/dist/types/DOMReference.js +25 -0
  292. package/dist/types/DOMReference.js.map +1 -0
  293. package/dist/types/DataType.d.ts +25 -0
  294. package/dist/types/DataType.js +33 -14
  295. package/dist/types/DataType.js.map +1 -0
  296. package/dist/types/Float.d.ts +18 -0
  297. package/dist/types/Float.js +18 -6
  298. package/dist/types/Float.js.map +1 -0
  299. package/dist/types/Integer.d.ts +18 -0
  300. package/dist/types/Integer.js +18 -5
  301. package/dist/types/Integer.js.map +1 -0
  302. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  303. package/dist/types/InvisibleMessageMode.js +20 -23
  304. package/dist/types/InvisibleMessageMode.js.map +1 -0
  305. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  306. package/dist/types/ItemNavigationBehavior.js +22 -12
  307. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  308. package/dist/types/NavigationMode.d.ts +32 -0
  309. package/dist/types/NavigationMode.js +33 -6
  310. package/dist/types/NavigationMode.js.map +1 -0
  311. package/dist/types/ValueState.d.ts +42 -0
  312. package/dist/types/ValueState.js +41 -19
  313. package/dist/types/ValueState.js.map +1 -0
  314. package/dist/types.d.ts +18 -0
  315. package/dist/types.js +2 -0
  316. package/dist/types.js.map +1 -0
  317. package/dist/updateShadowRoot.d.ts +8 -0
  318. package/dist/updateShadowRoot.js +23 -15
  319. package/dist/updateShadowRoot.js.map +1 -0
  320. package/dist/util/AriaLabelHelper.d.ts +6 -0
  321. package/dist/util/AriaLabelHelper.js +37 -34
  322. package/dist/util/AriaLabelHelper.js.map +1 -0
  323. package/dist/util/Caret.d.ts +7 -0
  324. package/dist/util/Caret.js +16 -38
  325. package/dist/util/Caret.js.map +1 -0
  326. package/dist/util/ColorConversion.d.ts +30 -0
  327. package/dist/util/ColorConversion.js +315 -348
  328. package/dist/util/ColorConversion.js.map +1 -0
  329. package/dist/util/FetchHelper.d.ts +3 -0
  330. package/dist/util/FetchHelper.js +19 -25
  331. package/dist/util/FetchHelper.js.map +1 -0
  332. package/dist/util/FocusableElements.d.ts +4 -0
  333. package/dist/util/FocusableElements.js +57 -72
  334. package/dist/util/FocusableElements.js.map +1 -0
  335. package/dist/util/HTMLSanitizer.d.ts +3 -0
  336. package/dist/util/HTMLSanitizer.js +4 -5
  337. package/dist/util/HTMLSanitizer.js.map +1 -0
  338. package/dist/util/InvisibleMessage.d.ts +10 -0
  339. package/dist/util/InvisibleMessage.js +47 -39
  340. package/dist/util/InvisibleMessage.js.map +1 -0
  341. package/dist/util/PopupUtils.d.ts +7 -0
  342. package/dist/util/PopupUtils.js +57 -76
  343. package/dist/util/PopupUtils.js.map +1 -0
  344. package/dist/util/SlotsHelper.d.ts +9 -0
  345. package/dist/util/SlotsHelper.js +22 -35
  346. package/dist/util/SlotsHelper.js.map +1 -0
  347. package/dist/util/StringHelper.d.ts +3 -0
  348. package/dist/util/StringHelper.js +17 -20
  349. package/dist/util/StringHelper.js.map +1 -0
  350. package/dist/util/TabbableElements.d.ts +17 -0
  351. package/dist/util/TabbableElements.js +53 -43
  352. package/dist/util/TabbableElements.js.map +1 -0
  353. package/dist/util/arraysAreEqual.d.ts +2 -0
  354. package/dist/util/arraysAreEqual.js +10 -12
  355. package/dist/util/arraysAreEqual.js.map +1 -0
  356. package/dist/util/clamp.d.ts +9 -0
  357. package/dist/util/clamp.js +2 -2
  358. package/dist/util/clamp.js.map +1 -0
  359. package/dist/util/createLinkInHead.d.ts +7 -0
  360. package/dist/util/createLinkInHead.js +21 -0
  361. package/dist/util/createLinkInHead.js.map +1 -0
  362. package/dist/util/createStyleInHead.d.ts +8 -0
  363. package/dist/util/createStyleInHead.js +10 -10
  364. package/dist/util/createStyleInHead.js.map +1 -0
  365. package/dist/util/debounce.d.ts +2 -0
  366. package/dist/util/debounce.js +6 -8
  367. package/dist/util/debounce.js.map +1 -0
  368. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  369. package/dist/util/detectNavigatorLanguage.js +7 -10
  370. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  371. package/dist/util/escapeRegex.d.ts +8 -0
  372. package/dist/util/escapeRegex.js +11 -0
  373. package/dist/util/escapeRegex.js.map +1 -0
  374. package/dist/util/formatMessage.d.ts +2 -0
  375. package/dist/util/formatMessage.js +15 -19
  376. package/dist/util/formatMessage.js.map +1 -0
  377. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  378. package/dist/util/generateHighlightedMarkup.js +41 -0
  379. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  380. package/dist/util/getActiveElement.d.ts +2 -0
  381. package/dist/util/getActiveElement.js +6 -8
  382. package/dist/util/getActiveElement.js.map +1 -0
  383. package/dist/util/getClassCopy.d.ts +400 -0
  384. package/dist/util/getClassCopy.js +7 -7
  385. package/dist/util/getClassCopy.js.map +1 -0
  386. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  387. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  388. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  389. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  390. package/dist/util/getEffectiveContentDensity.js +2 -3
  391. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  392. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  393. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  394. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  395. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  396. package/dist/util/getFastNavigationGroups.js +51 -0
  397. package/dist/util/getFastNavigationGroups.js.map +1 -0
  398. package/dist/util/getFileExtension.d.ts +12 -0
  399. package/dist/util/getFileExtension.js +9 -11
  400. package/dist/util/getFileExtension.js.map +1 -0
  401. package/dist/util/getNormalizedTarget.d.ts +7 -0
  402. package/dist/util/getNormalizedTarget.js +14 -0
  403. package/dist/util/getNormalizedTarget.js.map +1 -0
  404. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  405. package/dist/util/getSingletonElementInstance.js +7 -10
  406. package/dist/util/getSingletonElementInstance.js.map +1 -0
  407. package/dist/util/isElementClickable.d.ts +2 -0
  408. package/dist/util/isElementClickable.js +16 -0
  409. package/dist/util/isElementClickable.js.map +1 -0
  410. package/dist/util/isElementHidden.d.ts +2 -0
  411. package/dist/util/isElementHidden.js +8 -0
  412. package/dist/util/isElementHidden.js.map +1 -0
  413. package/dist/util/isElementInView.d.ts +6 -0
  414. package/dist/util/isElementInView.js +6 -9
  415. package/dist/util/isElementInView.js.map +1 -0
  416. package/dist/util/isElementTabbable.d.ts +9 -0
  417. package/dist/util/isElementTabbable.js +30 -0
  418. package/dist/util/isElementTabbable.js.map +1 -0
  419. package/dist/util/isValidPropertyName.d.ts +8 -0
  420. package/dist/util/isValidPropertyName.js +16 -17
  421. package/dist/util/isValidPropertyName.js.map +1 -0
  422. package/dist/util/whenDOMReady.d.ts +2 -0
  423. package/dist/util/whenDOMReady.js +11 -10
  424. package/dist/util/whenDOMReady.js.map +1 -0
  425. package/dist/util/willShowContent.d.ts +2 -0
  426. package/dist/util/willShowContent.js +7 -0
  427. package/dist/util/willShowContent.js.map +1 -0
  428. package/dist/validateThemeRoot.d.ts +2 -0
  429. package/dist/validateThemeRoot.js +47 -0
  430. package/dist/validateThemeRoot.js.map +1 -0
  431. package/global.d.ts +44 -0
  432. package/lib/generate-asset-parameters/index.js +8 -5
  433. package/lib/generate-styles/index.js +26 -0
  434. package/lib/generate-version-info/index.js +32 -0
  435. package/package-scripts.js +37 -32
  436. package/package.json +11 -12
  437. package/src/{AssetRegistry.js → AssetRegistry.ts} +0 -0
  438. package/src/Boot.ts +61 -0
  439. package/src/CSP.ts +66 -0
  440. package/src/CustomElementsRegistry.ts +98 -0
  441. package/src/CustomElementsScope.ts +33 -0
  442. package/src/{CustomElementsScope.js → CustomElementsScopeUtils.ts} +14 -7
  443. package/src/DOMObserver.ts +28 -0
  444. package/src/{Device.js → Device.ts} +34 -10
  445. package/src/EventProvider.ts +87 -0
  446. package/src/FeaturesRegistry.ts +14 -0
  447. package/src/FontFace.ts +31 -0
  448. package/src/{InitialConfiguration.js → InitialConfiguration.ts} +62 -17
  449. package/src/Keys.ts +295 -0
  450. package/src/ManagedStyles.ts +92 -0
  451. package/src/MarkedEvents.ts +20 -0
  452. package/src/{MediaRange.js → MediaRange.ts} +54 -53
  453. package/src/{PropertiesFileFormat.js → PropertiesFileFormat.ts} +8 -8
  454. package/src/{Render.js → Render.ts} +27 -20
  455. package/src/{RenderQueue.js → RenderQueue.ts} +10 -5
  456. package/src/Runtimes.ts +114 -0
  457. package/src/{StaticArea.js → StaticArea.ts} +0 -0
  458. package/src/{StaticAreaItem.js → StaticAreaItem.ts} +39 -22
  459. package/src/SystemCSSVars.ts +10 -0
  460. package/src/{Theming.js → Theming.ts} +0 -0
  461. package/src/{UI5Element.js → UI5Element.ts} +305 -184
  462. package/src/{UI5ElementMetadata.js → UI5ElementMetadata.ts} +138 -60
  463. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  464. package/src/animations/animate.ts +64 -0
  465. package/src/animations/scroll.ts +21 -0
  466. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  467. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  468. package/src/asset-registries/Icons.ts +162 -0
  469. package/src/asset-registries/Illustrations.ts +75 -0
  470. package/src/asset-registries/{LocaleData.js → LocaleData.ts} +47 -25
  471. package/src/asset-registries/Themes.ts +67 -0
  472. package/src/asset-registries/{i18n.js → i18n.ts} +21 -24
  473. package/src/assets-meta/IconCollectionsAlias.ts +18 -0
  474. package/src/config/AnimationMode.ts +33 -0
  475. package/src/config/{CalendarType.js → CalendarType.ts} +8 -3
  476. package/src/config/FormatSettings.ts +21 -0
  477. package/src/config/Icons.ts +59 -0
  478. package/src/config/{Language.js → Language.ts} +22 -18
  479. package/src/config/NoConflict.ts +67 -0
  480. package/src/config/{RTL.js → RTL.ts} +14 -4
  481. package/src/config/Theme.ts +64 -0
  482. package/src/config/ThemeRoots.ts +41 -0
  483. package/src/css/BusyIndicator.css +80 -0
  484. package/src/css/FontFace.css +66 -0
  485. package/src/css/OverrideFontFace.css +32 -0
  486. package/src/css/SystemCSSVars.css +17 -0
  487. package/src/decorators/customElement.ts +17 -0
  488. package/src/decorators/event.ts +28 -0
  489. package/src/decorators/fastNavigation.ts +14 -0
  490. package/src/decorators/languageAware.ts +14 -0
  491. package/src/decorators/property.ts +30 -0
  492. package/src/decorators/slot.ts +49 -0
  493. package/src/decorators/themeAware.ts +14 -0
  494. package/src/delegate/{ItemNavigation.js → ItemNavigation.ts} +131 -23
  495. package/src/delegate/{ResizeHandler.js → ResizeHandler.ts} +25 -36
  496. package/src/delegate/ScrollEnablement.ts +221 -0
  497. package/src/features/F6Navigation.ts +141 -0
  498. package/src/features/OpenUI5Element.ts +11 -0
  499. package/src/features/OpenUI5Enablement.ts +117 -0
  500. package/src/features/OpenUI5Support.ts +148 -0
  501. package/src/{getSharedResource.js → getSharedResource.ts} +3 -3
  502. package/src/i18nBundle.ts +108 -0
  503. package/src/locale/{Locale.js → Locale.ts} +15 -5
  504. package/src/locale/RTLAwareRegistry.ts +16 -0
  505. package/src/locale/{applyDirection.js → applyDirection.ts} +4 -3
  506. package/src/locale/{directionChange.js → directionChange.ts} +6 -4
  507. package/src/locale/{getEffectiveDir.js → getEffectiveDir.ts} +1 -1
  508. package/src/locale/{getLocale.js → getLocale.ts} +12 -7
  509. package/src/locale/languageChange.ts +24 -0
  510. package/src/locale/{nextFallbackLocale.js → nextFallbackLocale.ts} +1 -1
  511. package/src/locale/{normalizeLocale.js → normalizeLocale.ts} +5 -3
  512. package/src/renderer/LitRenderer.ts +60 -0
  513. package/src/renderer/directives/style-map.js +72 -0
  514. package/src/renderer/executeTemplate.ts +40 -0
  515. package/src/theming/CustomStyle.ts +62 -0
  516. package/src/theming/{ThemeLoaded.js → ThemeLoaded.ts} +6 -4
  517. package/src/theming/applyTheme.ts +90 -0
  518. package/src/theming/{getConstructableStyle.js → getConstructableStyle.ts} +5 -4
  519. package/src/theming/getEffectiveLinksHrefs.ts +26 -0
  520. package/src/theming/{getEffectiveStyle.js → getEffectiveStyle.ts} +15 -4
  521. package/src/theming/getStylesString.ts +15 -0
  522. package/src/theming/getThemeDesignerTheme.ts +101 -0
  523. package/src/theming/preloadLinks.ts +24 -0
  524. package/src/thirdparty/{_merge.js → _merge.ts} +2 -2
  525. package/src/thirdparty/{isPlainObject.js → isPlainObject.ts} +1 -1
  526. package/src/thirdparty/merge.ts +5 -0
  527. package/src/types/AnimationMode.ts +33 -0
  528. package/src/types/{CSSColor.js → CSSColor.ts} +12 -1
  529. package/src/types/CalendarType.ts +38 -0
  530. package/src/types/DOMReference.ts +28 -0
  531. package/src/types/DataType.ts +51 -0
  532. package/src/types/Float.ts +25 -0
  533. package/src/types/Integer.ts +25 -0
  534. package/src/types/InvisibleMessageMode.ts +27 -0
  535. package/src/types/ItemNavigationBehavior.ts +26 -0
  536. package/src/types/NavigationMode.ts +33 -0
  537. package/src/types/ValueState.ts +47 -0
  538. package/src/types.ts +30 -0
  539. package/src/updateShadowRoot.ts +37 -0
  540. package/src/util/AriaLabelHelper.ts +63 -0
  541. package/src/util/Caret.ts +28 -0
  542. package/src/util/ColorConversion.ts +399 -0
  543. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  544. package/src/util/FocusableElements.ts +82 -0
  545. package/src/util/{HTMLSanitizer.js → HTMLSanitizer.ts} +2 -0
  546. package/src/util/InvisibleMessage.ts +69 -0
  547. package/src/util/PopupUtils.ts +114 -0
  548. package/src/util/{SlotsHelper.js → SlotsHelper.ts} +9 -13
  549. package/src/util/{StringHelper.js → StringHelper.ts} +7 -7
  550. package/src/util/TabbableElements.ts +70 -0
  551. package/src/util/{arraysAreEqual.js → arraysAreEqual.ts} +1 -1
  552. package/src/util/{clamp.js → clamp.ts} +1 -1
  553. package/src/util/createLinkInHead.ts +25 -0
  554. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  555. package/src/util/{debounce.js → debounce.ts} +5 -4
  556. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +1 -1
  557. package/src/util/escapeRegex.ts +11 -0
  558. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  559. package/src/util/generateHighlightedMarkup.ts +43 -0
  560. package/src/util/{getActiveElement.js → getActiveElement.ts} +0 -0
  561. package/src/util/{getClassCopy.js → getClassCopy.ts} +3 -1
  562. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  563. package/src/util/getEffectiveContentDensity.ts +5 -0
  564. package/src/util/getEffectiveScrollbarStyle.ts +5 -0
  565. package/src/util/getFastNavigationGroups.ts +63 -0
  566. package/src/util/{getFileExtension.js → getFileExtension.ts} +3 -3
  567. package/src/util/getNormalizedTarget.ts +16 -0
  568. package/src/util/{getSingletonElementInstance.js → getSingletonElementInstance.ts} +1 -1
  569. package/src/util/isElementClickable.ts +19 -0
  570. package/src/util/isElementHidden.ts +9 -0
  571. package/src/util/{isElementInView.js → isElementInView.ts} +1 -1
  572. package/src/util/isElementTabbable.ts +37 -0
  573. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +1 -1
  574. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  575. package/src/util/willShowContent.ts +7 -0
  576. package/src/validateThemeRoot.ts +58 -0
  577. package/tsconfig.json +13 -0
  578. package/used-modules.txt +4 -1
  579. package/config/.eslintrc.js +0 -3
  580. package/config/rollup.config.js +0 -1
  581. package/dist/RenderScheduler.js +0 -44
  582. package/dist/animations/config.js +0 -5
  583. package/dist/config/AssetsPath.js +0 -17
  584. package/dist/isLegacyBrowser.js +0 -3
  585. package/dist/resources/bundle.esm.js +0 -26
  586. package/dist/resources/bundle.esm.js.map +0 -1
  587. package/dist/test-resources/assets/Themes.js +0 -17
  588. package/dist/test-resources/elements/Child.js +0 -35
  589. package/dist/test-resources/elements/Generic.js +0 -84
  590. package/dist/test-resources/elements/GenericExt.js +0 -26
  591. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  592. package/dist/test-resources/elements/Parent.js +0 -41
  593. package/dist/test-resources/elements/WithStaticArea.js +0 -76
  594. package/dist/test-resources/pages/AllTestElements.html +0 -39
  595. package/dist/test-resources/pages/Configuration.html +0 -18
  596. package/dist/test-resources/pages/ConfigurationScript.html +0 -34
  597. package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
  598. package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
  599. package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
  600. package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
  601. package/dist/test-resources/pages/i18n.html +0 -35
  602. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
  603. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
  604. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -93
  605. package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
  606. package/dist/test-resources/specs/StaticArea.spec.js +0 -36
  607. package/dist/test-resources/specs/Theming.spec.js +0 -33
  608. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
  609. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
  610. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
  611. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
  612. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
  613. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
  614. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
  615. package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
  616. package/dist/theming/createThemePropertiesStyleTag.js +0 -20
  617. package/dist/types/CSSSize.js +0 -9
  618. package/dist/types/PopupState.js +0 -37
  619. package/dist/util/encodeCSS.js +0 -24
  620. package/dist/util/findNodeOwner.js +0 -35
  621. package/dist/util/isDescendantOf.js +0 -15
  622. package/dist/util/isNodeClickable.js +0 -19
  623. package/dist/util/isNodeHidden.js +0 -9
  624. package/dist/util/isNodeTabbable.js +0 -28
  625. package/dist/util/setToArray.js +0 -10
  626. package/hash.txt +0 -1
  627. package/src/Boot.js +0 -43
  628. package/src/CustomElementsRegistry.js +0 -39
  629. package/src/DOMObserver.js +0 -65
  630. package/src/EventProvider.js +0 -91
  631. package/src/FeaturesRegistry.js +0 -11
  632. package/src/FontFace.js +0 -118
  633. package/src/Keys.js +0 -239
  634. package/src/RenderScheduler.js +0 -44
  635. package/src/SystemCSSVars.js +0 -31
  636. package/src/animations/animate.js +0 -53
  637. package/src/animations/config.js +0 -5
  638. package/src/animations/scroll.js +0 -28
  639. package/src/asset-registries/Icons.js +0 -121
  640. package/src/asset-registries/Illustrations.js +0 -23
  641. package/src/asset-registries/Themes.js +0 -78
  642. package/src/config/AnimationMode.js +0 -23
  643. package/src/config/AssetsPath.js +0 -17
  644. package/src/config/FormatSettings.js +0 -13
  645. package/src/config/NoConflict.js +0 -51
  646. package/src/config/Theme.js +0 -28
  647. package/src/delegate/ScrollEnablement.js +0 -188
  648. package/src/features/OpenUI5Support.js +0 -125
  649. package/src/i18nBundle.js +0 -55
  650. package/src/isLegacyBrowser.js +0 -3
  651. package/src/locale/RTLAwareRegistry.js +0 -14
  652. package/src/locale/languageChange.js +0 -22
  653. package/src/renderer/LitRenderer.js +0 -31
  654. package/src/renderer/executeTemplate.js +0 -17
  655. package/src/theming/CustomStyle.js +0 -40
  656. package/src/theming/applyTheme.js +0 -78
  657. package/src/theming/createThemePropertiesStyleTag.js +0 -20
  658. package/src/theming/getStylesString.js +0 -13
  659. package/src/theming/getThemeDesignerTheme.js +0 -67
  660. package/src/thirdparty/merge.js +0 -10
  661. package/src/types/AnimationMode.js +0 -7
  662. package/src/types/CSSSize.js +0 -9
  663. package/src/types/CalendarType.js +0 -22
  664. package/src/types/DataType.js +0 -25
  665. package/src/types/Float.js +0 -10
  666. package/src/types/Integer.js +0 -9
  667. package/src/types/InvisibleMessageMode.js +0 -30
  668. package/src/types/ItemNavigationBehavior.js +0 -16
  669. package/src/types/NavigationMode.js +0 -7
  670. package/src/types/PopupState.js +0 -37
  671. package/src/types/ValueState.js +0 -22
  672. package/src/updateShadowRoot.js +0 -26
  673. package/src/util/AriaLabelHelper.js +0 -41
  674. package/src/util/Caret.js +0 -45
  675. package/src/util/ColorConversion.js +0 -370
  676. package/src/util/FocusableElements.js +0 -77
  677. package/src/util/InvisibleMessage.js +0 -48
  678. package/src/util/PopupUtils.js +0 -93
  679. package/src/util/TabbableElements.js +0 -47
  680. package/src/util/encodeCSS.js +0 -24
  681. package/src/util/findNodeOwner.js +0 -35
  682. package/src/util/getEffectiveContentDensity.js +0 -5
  683. package/src/util/isDescendantOf.js +0 -15
  684. package/src/util/isNodeClickable.js +0 -19
  685. package/src/util/isNodeHidden.js +0 -9
  686. package/src/util/isNodeTabbable.js +0 -28
  687. package/src/util/setToArray.js +0 -10
@@ -0,0 +1,101 @@
1
+ type ThemeDescriptor = {
2
+ themeName: string,
3
+ baseThemeName?: string,
4
+ };
5
+
6
+ type ThemeMetadata = {
7
+ Path: string,
8
+ Extends: Array<string>,
9
+ };
10
+
11
+ const warnings = new Set<string>();
12
+
13
+ const getThemeMetadata = () => {
14
+ // Check if the class was already applied, most commonly to the link/style tag with the CSS Variables
15
+ let el = document.querySelector(".sapThemeMetaData-Base-baseLib") || document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");
16
+ if (el) {
17
+ return getComputedStyle(el).backgroundImage;
18
+ }
19
+
20
+ el = document.createElement("span");
21
+ (el as HTMLSpanElement).style.display = "none";
22
+
23
+ // Try with sapThemeMetaData-Base-baseLib first
24
+ el.classList.add("sapThemeMetaData-Base-baseLib");
25
+ document.body.appendChild(el);
26
+ let metadata = getComputedStyle(el).backgroundImage;
27
+
28
+ // Try with sapThemeMetaData-UI5-sap-ui-core only if the previous selector was not found
29
+ if (metadata === "none") {
30
+ el.classList.add("sapThemeMetaData-UI5-sap-ui-core");
31
+ metadata = getComputedStyle(el).backgroundImage;
32
+ }
33
+
34
+ document.body.removeChild(el);
35
+
36
+ return metadata;
37
+ };
38
+
39
+ const parseThemeMetadata = (metadataString: string) => {
40
+ const params = /\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(metadataString);
41
+ if (params && params.length >= 2) {
42
+ let paramsString = params[1];
43
+ paramsString = paramsString.replace(/\\"/g, `"`);
44
+ if (paramsString.charAt(0) !== "{" && paramsString.charAt(paramsString.length - 1) !== "}") {
45
+ try {
46
+ paramsString = decodeURIComponent(paramsString);
47
+ } catch (ex) {
48
+ if (!warnings.has("decode")) {
49
+ console.warn("Malformed theme metadata string, unable to decodeURIComponent"); // eslint-disable-line
50
+ warnings.add("decode");
51
+ }
52
+ return;
53
+ }
54
+ }
55
+ try {
56
+ return JSON.parse(paramsString) as ThemeMetadata;
57
+ } catch (ex) {
58
+ if (!warnings.has("parse")) {
59
+ console.warn("Malformed theme metadata string, unable to parse JSON"); // eslint-disable-line
60
+ warnings.add("parse");
61
+ }
62
+ }
63
+ }
64
+ };
65
+
66
+ const processThemeMetadata = (metadata: ThemeMetadata): ThemeDescriptor | undefined => {
67
+ let themeName;
68
+ let baseThemeName;
69
+
70
+ try {
71
+ themeName = metadata.Path.match(/\.([^.]+)\.css_variables$/)![1];
72
+ baseThemeName = metadata.Extends[0];
73
+ } catch (ex) {
74
+ if (!warnings.has("object")) {
75
+ console.warn("Malformed theme metadata Object", metadata); // eslint-disable-line
76
+ warnings.add("object");
77
+ }
78
+ return;
79
+ }
80
+
81
+ return {
82
+ themeName,
83
+ baseThemeName,
84
+ };
85
+ };
86
+
87
+ const getThemeDesignerTheme = (): ThemeDescriptor | undefined => {
88
+ const metadataString = getThemeMetadata();
89
+ if (!metadataString || metadataString === "none") {
90
+ return;
91
+ }
92
+
93
+ const metadata = parseThemeMetadata(metadataString);
94
+
95
+ if (metadata) {
96
+ return processThemeMetadata(metadata);
97
+ }
98
+ };
99
+
100
+ export default getThemeDesignerTheme;
101
+ export type { ThemeDescriptor };
@@ -0,0 +1,24 @@
1
+ import getEffectiveLinksHrefs from "./getEffectiveLinksHrefs.js";
2
+ import createLinkInHead from "../util/createLinkInHead.js";
3
+ import { shouldUseLinks, shouldPreloadLinks } from "../CSP.js";
4
+ import type UI5Element from "../UI5Element.js";
5
+
6
+ const preloaded = new Set<string>();
7
+
8
+ const preloadLinks = (ElementClass: typeof UI5Element) => {
9
+ if (!shouldUseLinks() || !shouldPreloadLinks()) {
10
+ return;
11
+ }
12
+
13
+ const linksHrefs = getEffectiveLinksHrefs(ElementClass, false) || [];
14
+ const staticAreaLinksHrefs = getEffectiveLinksHrefs(ElementClass, true) || [];
15
+
16
+ [...linksHrefs, ...staticAreaLinksHrefs].forEach(href => {
17
+ if (!preloaded.has(href)) {
18
+ createLinkInHead(href, { rel: "preload", as: "style" });
19
+ preloaded.add(href);
20
+ }
21
+ });
22
+ };
23
+
24
+ export default preloadLinks;
@@ -1,6 +1,6 @@
1
1
  import isPlainObject from './isPlainObject.js';
2
2
  var oToken = Object.create(null);
3
- var fnMerge = function () {
3
+ var fnMerge = function (arg1?: any, arg2?: any, arg3?: any, arg4?: any) {
4
4
  var src, copyIsArray, copy, name, options, clone, target = arguments[2] || {}, i = 3, length = arguments.length, deep = arguments[0] || false, skipToken = arguments[1] ? undefined : oToken;
5
5
  if (typeof target !== 'object' && typeof target !== 'function') {
6
6
  target = {};
@@ -29,4 +29,4 @@ var fnMerge = function () {
29
29
  }
30
30
  return target;
31
31
  };
32
- export default fnMerge;
32
+ export default fnMerge;
@@ -3,7 +3,7 @@ var hasOwn = class2type.hasOwnProperty;
3
3
  var toString = class2type.toString;
4
4
  var fnToString = hasOwn.toString;
5
5
  var ObjectFunctionString = fnToString.call(Object);
6
- var fnIsPlainObject = function (obj) {
6
+ var fnIsPlainObject = function (obj: object) {
7
7
  var proto, Ctor;
8
8
  if (!obj || toString.call(obj) !== "[object Object]") {
9
9
  return false;
@@ -0,0 +1,5 @@
1
+ import _merge from './_merge.js';
2
+ const fnMerge = function (arg1?: any, arg2?: any) {
3
+ return _merge(true, false, ...arguments);
4
+ };
5
+ export default fnMerge;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Different types of AnimationMode.
3
+ *
4
+ * @class
5
+ * @enum {string}
6
+ * @public
7
+ * @author SAP SE
8
+ * @alias sap.ui.webc.base.types.AnimationMode
9
+ */
10
+ enum AnimationMode {
11
+ /**
12
+ * @public
13
+ * @type {Full}
14
+ */
15
+ Full = "full",
16
+ /**
17
+ * @public
18
+ * @type {Basic}
19
+ */
20
+ Basic = "basic",
21
+ /**
22
+ * @public
23
+ * @type {Minimal}
24
+ */
25
+ Minimal = "minimal",
26
+ /**
27
+ * @public
28
+ * @type {None}
29
+ */
30
+ None = "none",
31
+ }
32
+
33
+ export default AnimationMode;
@@ -1,7 +1,18 @@
1
1
  import DataType from "./DataType.js";
2
2
 
3
+ /**
4
+ * @class
5
+ * CSSColor data type.
6
+ *
7
+ * @extends sap.ui.webc.base.types.DataType
8
+ * @constructor
9
+ * @author SAP SE
10
+ * @alias sap.ui.webc.base.types.CSSColor
11
+ * @public
12
+ * @enum {string}
13
+ */
3
14
  class CSSColor extends DataType {
4
- static isValid(value) {
15
+ static override isValid(value: string) {
5
16
  return /^(#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})|rgb\(\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*(,\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*){2}\)|rgba\((\s*((1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))|([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*,){3}\s*(0(\.[0-9]+)?|1(\.0+)?)\s*\)|hsl\(\s*([0-2]?[0-9]?[0-9]|3([0-5][0-9]|60))\s*(,\s*(([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*){2}\)|hsla\(\s*([0-2]?[0-9]?[0-9]|3([0-5][0-9]|60))\s*,(\s*(([0-9]?[0-9](\.[0-9]+)?|100(\.0+)?)%)\s*,){2}\s*(0(\.[0-9]+)?|1(\.0+)?)\s*\)|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgrey|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|grey|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgrey|lightgreen|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silverskyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|transparent|inherit|)$/.test(value ); // eslint-disable-line
6
17
  }
7
18
  }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Different calendar types.
3
+ *
4
+ * @class
5
+ * @enum {string}
6
+ * @public
7
+ * @author SAP SE
8
+ * @alias sap.ui.webc.base.types.CalendarType
9
+ */
10
+ enum CalendarType {
11
+ /**
12
+ * @public
13
+ * @type {Gregorian}
14
+ */
15
+ Gregorian = "Gregorian",
16
+ /**
17
+ * @public
18
+ * @type {Islamic}
19
+ */
20
+ Islamic = "Islamic",
21
+ /**
22
+ * @public
23
+ * @type {Japanese}
24
+ */
25
+ Japanese = "Japanese",
26
+ /**
27
+ * @public
28
+ * @type {Buddhist}
29
+ */
30
+ Buddhist = "Buddhist",
31
+ /**
32
+ * @public
33
+ * @type {Persian}
34
+ */
35
+ Persian = "Persian",
36
+ }
37
+
38
+ export default CalendarType;
@@ -0,0 +1,28 @@
1
+ import DataType from "./DataType.js";
2
+
3
+ /**
4
+ * @class
5
+ * DOM Element reference or ID.
6
+ * <b>Note:</b> If an ID is passed, it is expected to be part of the same <code>document</code> element as the consuming component.
7
+ *
8
+ * @constructor
9
+ * @extends sap.ui.webc.base.types.DataType
10
+ * @author SAP SE
11
+ * @alias sap.ui.webc.base.types.DOMReference
12
+ * @public
13
+ */
14
+ class DOMReference extends DataType {
15
+ static override isValid(value: string | HTMLElement) {
16
+ return (typeof value === "string" || value instanceof HTMLElement);
17
+ }
18
+
19
+ static override propertyToAttribute(propertyValue: string | HTMLElement) {
20
+ if (propertyValue instanceof HTMLElement) {
21
+ return null;
22
+ }
23
+
24
+ return propertyValue;
25
+ }
26
+ }
27
+
28
+ export default DOMReference;
@@ -0,0 +1,51 @@
1
+ import { PropertyValue } from "../UI5ElementMetadata.js";
2
+
3
+ /**
4
+ * Base class for all data types.
5
+ *
6
+ * @class
7
+ * @constructor
8
+ * @author SAP SE
9
+ * @alias sap.ui.webc.base.types.DataType
10
+ * @public
11
+ */
12
+ class DataType {
13
+ /**
14
+ * Checks if the value is valid for its data type.
15
+ * @public
16
+ * @abstract
17
+ * @returns {Boolean}
18
+ */
19
+ // eslint-disable-next-line
20
+ static isValid(value: any): boolean {
21
+ return false;
22
+ }
23
+
24
+ static attributeToProperty(attributeValue: string | null): PropertyValue {
25
+ return attributeValue;
26
+ }
27
+
28
+ static propertyToAttribute(propertyValue: PropertyValue): string | null {
29
+ return propertyValue === null ? null : String(propertyValue);
30
+ }
31
+
32
+ static valuesAreEqual(value1: any, value2: any) {
33
+ return value1 === value2;
34
+ }
35
+
36
+ static generateTypeAccessors(types: Record<string, string>) {
37
+ Object.keys(types).forEach(type => {
38
+ Object.defineProperty(this, type, {
39
+ get() {
40
+ return types[type];
41
+ },
42
+ });
43
+ });
44
+ }
45
+
46
+ static get isDataTypeClass() {
47
+ return true;
48
+ }
49
+ }
50
+
51
+ export default DataType;
@@ -0,0 +1,25 @@
1
+ import { PropertyValue } from "../UI5ElementMetadata.js";
2
+ import DataType from "./DataType.js";
3
+
4
+ /**
5
+ * @class
6
+ * Float data type.
7
+ *
8
+ * @constructor
9
+ * @extends sap.ui.webc.base.types.DataType
10
+ * @author SAP SE
11
+ * @alias sap.ui.webc.base.types.Float
12
+ * @public
13
+ * @enum {number}
14
+ */
15
+ class Float extends DataType {
16
+ static override isValid(value: any) {
17
+ return Number(value) === value;
18
+ }
19
+
20
+ static override attributeToProperty(attributeValue: string): PropertyValue {
21
+ return parseFloat(attributeValue);
22
+ }
23
+ }
24
+
25
+ export default Float;
@@ -0,0 +1,25 @@
1
+ import { PropertyValue } from "../UI5ElementMetadata.js";
2
+ import DataType from "./DataType.js";
3
+
4
+ /**
5
+ * @class
6
+ * Integer data type.
7
+ *
8
+ * @constructor
9
+ * @extends sap.ui.webc.base.types.DataType
10
+ * @author SAP SE
11
+ * @alias sap.ui.webc.base.types.Integer
12
+ * @public
13
+ * @enum {number}
14
+ */
15
+ class Integer extends DataType {
16
+ static override isValid(value: any) {
17
+ return Number.isInteger(value);
18
+ }
19
+
20
+ static override attributeToProperty(attributeValue: string): PropertyValue {
21
+ return parseInt(attributeValue);
22
+ }
23
+ }
24
+
25
+ export default Integer;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Enumeration for different mode behaviors of the InvisibleMessage.
3
+ *
4
+ * @class
5
+ * @enum {string}
6
+ * @public
7
+ * @author SAP SE
8
+ * @alias sap.ui.webc.base.types.InvisibleMessageMode
9
+ */
10
+ enum InvisibleMessageMode {
11
+ /**
12
+ * Indicates that updates to the region should be presented at the next graceful opportunity,
13
+ * such as at the end of reading the current sentence, or when the user pauses typing.
14
+ * @public
15
+ * @type {Polite}
16
+ */
17
+ Polite = "Polite",
18
+
19
+ /**
20
+ * Indicates that updates to the region have the highest priority and should be presented to the user immediately.
21
+ * @public
22
+ * @type {Assertive}
23
+ */
24
+ Assertive = "Assertive",
25
+ }
26
+
27
+ export default InvisibleMessageMode;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Different behavior for ItemNavigation.
3
+ *
4
+ * @class
5
+ * @enum {string}
6
+ * @public
7
+ * @author SAP SE
8
+ * @alias sap.ui.webc.base.types.ItemNavigationBehavior
9
+ */
10
+ enum ItemNavigationBehavior {
11
+ /**
12
+ * Static behavior: navigations stops at the first or last item.
13
+ * @public
14
+ * @type {Static}
15
+ */
16
+ Static = "Static",
17
+
18
+ /**
19
+ * Cycling behavior: navigating past the last item continues with the first and vice versa.
20
+ * @public
21
+ * @type {Cyclic}
22
+ */
23
+ Cyclic = "Cyclic",
24
+ }
25
+
26
+ export default ItemNavigationBehavior;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Different navigation modes for ItemNavigation.
3
+ *
4
+ * @class
5
+ * @enum {string}
6
+ * @public
7
+ * @author SAP SE
8
+ * @alias sap.ui.webc.base.types.NavigationMode
9
+ */
10
+ enum NavigationMode {
11
+ /**
12
+ * @public
13
+ * @type {Auto}
14
+ */
15
+ Auto = "Auto",
16
+ /**
17
+ * @public
18
+ * @type {Vertical}
19
+ */
20
+ Vertical = "Vertical",
21
+ /**
22
+ * @public
23
+ * @type {Horizontal}
24
+ */
25
+ Horizontal = "Horizontal",
26
+ /**
27
+ * @public
28
+ * @type {Paging}
29
+ */
30
+ Paging = "Paging",
31
+ }
32
+
33
+ export default NavigationMode;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Different types of ValueStates.
3
+ *
4
+ * @class
5
+ * @enum {string}
6
+ * @public
7
+ * @author SAP SE
8
+ * @alias sap.ui.webc.base.types.ValueState
9
+ */
10
+ enum ValueState {
11
+ /**
12
+ *
13
+ * @public
14
+ * @type {None}
15
+ */
16
+ None = "None",
17
+
18
+ /**
19
+ *
20
+ * @public
21
+ * @type {Success}
22
+ */
23
+ Success = "Success",
24
+
25
+ /**
26
+ *
27
+ * @public
28
+ * @type {Warning}
29
+ */
30
+ Warning = "Warning",
31
+
32
+ /**
33
+ *
34
+ * @public
35
+ * @type {Error}
36
+ */
37
+ Error = "Error",
38
+
39
+ /**
40
+ *
41
+ * @public
42
+ * @type {Information}
43
+ */
44
+ Information = "Information",
45
+ }
46
+
47
+ export default ValueState;
package/src/types.ts ADDED
@@ -0,0 +1,30 @@
1
+ type PromiseResolve = (value: void | PromiseLike<void>) => void;
2
+ type Timeout = ReturnType<typeof setTimeout>;
3
+ type Interval = ReturnType<typeof setInterval>;
4
+
5
+ type StyleDataCSP = {
6
+ content: string,
7
+ packageName: string,
8
+ fileName: string,
9
+ };
10
+
11
+ type StyleData = StyleDataCSP | string;
12
+
13
+ type ComponentStylesData = Array<ComponentStylesData> | Array<StyleData> | StyleData;
14
+
15
+ type ClassMapValue = Record<string, boolean>
16
+
17
+ type ClassMap = { [x: string] : ClassMapValue | ClassMap };
18
+
19
+ type PassiveEventListenerObject = EventListenerObject & { passive: boolean };
20
+
21
+ export type {
22
+ PromiseResolve,
23
+ Timeout,
24
+ Interval,
25
+ StyleData,
26
+ StyleDataCSP,
27
+ ComponentStylesData,
28
+ ClassMap,
29
+ PassiveEventListenerObject,
30
+ };
@@ -0,0 +1,37 @@
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 { shouldUseLinks } from "./CSP.js";
6
+ import type UI5Element from "./UI5Element.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: UI5Element, forStaticArea = false) => {
14
+ let styleStrOrHrefsArr;
15
+ const ctor = element.constructor as typeof UI5Element;
16
+ const propertyName = forStaticArea ? "staticAreaTemplate" : "template";
17
+ const template = ctor[propertyName];
18
+ const shadowRoot = forStaticArea ? element.staticAreaItem!.shadowRoot : element.shadowRoot;
19
+ const renderResult = executeTemplate(template!, element); // this is checked before calling updateShadowRoot
20
+
21
+ if (!shadowRoot) {
22
+ console.warn(`There is no shadow root to update`); // eslint-disable-line
23
+ return;
24
+ }
25
+
26
+ if (shouldUseLinks()) {
27
+ styleStrOrHrefsArr = getEffectiveLinksHrefs(ctor, forStaticArea);
28
+ } else if (document.adoptedStyleSheets) { // Chrome
29
+ shadowRoot.adoptedStyleSheets = getConstructableStyle(ctor, forStaticArea);
30
+ } else { // FF, Safari
31
+ styleStrOrHrefsArr = getEffectiveStyle(ctor, forStaticArea);
32
+ }
33
+
34
+ ctor.render(renderResult, shadowRoot, styleStrOrHrefsArr, forStaticArea, { host: element });
35
+ };
36
+
37
+ export default updateShadowRoot;
@@ -0,0 +1,63 @@
1
+ type AccessibleElement = HTMLElement & {
2
+ accessibleNameRef: string,
3
+ accessibleName: string,
4
+ }
5
+
6
+ const getEffectiveAriaLabelText = (el: HTMLElement) => {
7
+ const accessibleEl = el as AccessibleElement;
8
+
9
+ if (!accessibleEl.accessibleNameRef) {
10
+ if (accessibleEl.accessibleName) {
11
+ return accessibleEl.accessibleName;
12
+ }
13
+
14
+ return undefined;
15
+ }
16
+
17
+ return _getAriaLabelledByTexts(el);
18
+ };
19
+
20
+ /**
21
+ *
22
+ * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
23
+ */
24
+ const _getAriaLabelledByTexts = (el: HTMLElement) => {
25
+ const ids = (el as AccessibleElement).accessibleNameRef.split(" ");
26
+ const owner = el.getRootNode() as HTMLElement;
27
+ let result = "";
28
+
29
+ ids.forEach((elementId: string, index: number) => {
30
+ const element = owner.querySelector(`[id='${elementId}']`);
31
+ result += `${element && element.textContent ? element.textContent : ""}`;
32
+
33
+ if (index < ids.length - 1) {
34
+ result += " ";
35
+ }
36
+ });
37
+
38
+ return result;
39
+ };
40
+
41
+ /**
42
+ * @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related "label for" texts
43
+ */
44
+ const getAssociatedLabelForTexts = (el: HTMLElement) => {
45
+ const results: Array<string> = [];
46
+ const labels = (el.getRootNode() as HTMLElement).querySelectorAll(`[ui5-label][for="${el.id}"],label[for="${el.id}"]`);
47
+
48
+ labels.forEach((label: Node) => {
49
+ const labelText = label.textContent;
50
+ labelText && results.push(labelText);
51
+ });
52
+
53
+ if (results.length) {
54
+ return results.join(" ");
55
+ }
56
+
57
+ return undefined;
58
+ };
59
+
60
+ export {
61
+ getEffectiveAriaLabelText,
62
+ getAssociatedLabelForTexts,
63
+ };
@@ -0,0 +1,28 @@
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: HTMLInputElement): number | null => {
6
+ // Initialize
7
+ let caretPos: number | null = 0;
8
+
9
+ if (field.selectionStart || field.selectionStart === 0) { // Firefox support
10
+ caretPos = field.selectionDirection === "backward" ? field.selectionStart : field.selectionEnd;
11
+ }
12
+
13
+ return caretPos;
14
+ };
15
+
16
+ const setCaretPosition = (field: HTMLInputElement, caretPos: number | null) => {
17
+ if (field.selectionStart) {
18
+ field.focus();
19
+ field.setSelectionRange(caretPos, caretPos);
20
+ } else {
21
+ field.focus();
22
+ }
23
+ };
24
+
25
+ export {
26
+ getCaretPosition,
27
+ setCaretPosition,
28
+ };