@ui5/webcomponents-base 0.0.0-ca2fa23d3 → 0.0.0-cad512aa3

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 (740) hide show
  1. package/.eslintignore +6 -0
  2. package/CHANGELOG.md +660 -0
  3. package/README.md +53 -7
  4. package/bundle.esm.js +32 -26
  5. package/dist/AssetRegistry.d.ts +5 -0
  6. package/dist/AssetRegistry.js +6 -9
  7. package/dist/AssetRegistry.js.map +1 -0
  8. package/dist/Boot.d.ts +9 -0
  9. package/dist/Boot.js +71 -0
  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 +78 -0
  16. package/dist/CustomElementsRegistry.js.map +1 -0
  17. package/dist/CustomElementsScope.d.ts +7 -0
  18. package/dist/CustomElementsScope.js +11 -0
  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 +23 -0
  25. package/dist/DOMObserver.js.map +1 -0
  26. package/dist/Device.d.ts +12 -0
  27. package/dist/Device.js +159 -816
  28. package/dist/Device.js.map +1 -0
  29. package/dist/EventProvider.d.ts +25 -0
  30. package/dist/EventProvider.js +67 -70
  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 +22 -63
  37. package/dist/FontFace.js.map +1 -0
  38. package/dist/InitialConfiguration.d.ts +22 -0
  39. package/dist/InitialConfiguration.js +123 -102
  40. package/dist/InitialConfiguration.js.map +1 -0
  41. package/dist/Keys.d.ts +57 -0
  42. package/dist/Keys.js +178 -0
  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 +98 -0
  52. package/dist/MediaRange.js.map +1 -0
  53. package/dist/PropertiesFileFormat.d.ts +8 -0
  54. package/dist/PropertiesFileFormat.js +85 -0
  55. package/dist/PropertiesFileFormat.js.map +1 -0
  56. package/dist/Render.d.ts +47 -0
  57. package/dist/Render.js +143 -0
  58. package/dist/Render.js.map +1 -0
  59. package/dist/RenderQueue.d.ts +19 -0
  60. package/dist/RenderQueue.js +53 -39
  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 +6 -0
  67. package/dist/StaticArea.js.map +1 -0
  68. package/dist/StaticAreaItem.d.ts +36 -0
  69. package/dist/StaticAreaItem.js +99 -0
  70. package/dist/StaticAreaItem.js.map +1 -0
  71. package/dist/SystemCSSVars.d.ts +2 -0
  72. package/dist/SystemCSSVars.js +9 -0
  73. package/dist/SystemCSSVars.js.map +1 -0
  74. package/dist/Theming.d.ts +3 -0
  75. package/dist/Theming.js +4 -45
  76. package/dist/Theming.js.map +1 -0
  77. package/dist/UI5Element.d.ts +378 -0
  78. package/dist/UI5Element.js +940 -819
  79. package/dist/UI5Element.js.map +1 -0
  80. package/dist/UI5ElementMetadata.d.ts +150 -0
  81. package/dist/UI5ElementMetadata.js +278 -143
  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 +104 -24
  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 +46 -0
  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 +127 -92
  107. package/dist/asset-registries/LocaleData.js.map +1 -0
  108. package/dist/asset-registries/Themes.d.ts +11 -0
  109. package/dist/asset-registries/Themes.js +42 -65
  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 +84 -58
  113. package/dist/asset-registries/i18n.js.map +1 -0
  114. package/dist/assets/Boot.318259fc.js +9 -0
  115. package/dist/assets/Boot.34b7cea0.css +1 -0
  116. package/dist/assets/bundle.esm.a4578c3b.js +52 -0
  117. package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
  118. package/dist/assets-meta/IconCollectionsAlias.js +38 -0
  119. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  120. package/dist/config/AnimationMode.d.ts +14 -0
  121. package/dist/config/AnimationMode.js +23 -6
  122. package/dist/config/AnimationMode.js.map +1 -0
  123. package/dist/config/CalendarType.d.ts +8 -0
  124. package/dist/config/CalendarType.js +15 -14
  125. package/dist/config/CalendarType.js.map +1 -0
  126. package/dist/config/FormatSettings.d.ts +15 -0
  127. package/dist/config/FormatSettings.js +16 -6
  128. package/dist/config/FormatSettings.js.map +1 -0
  129. package/dist/config/Icons.d.ts +55 -0
  130. package/dist/config/Icons.js +103 -0
  131. package/dist/config/Icons.js.map +1 -0
  132. package/dist/config/Language.d.ts +40 -0
  133. package/dist/config/Language.js +66 -7
  134. package/dist/config/Language.js.map +1 -0
  135. package/dist/config/NoConflict.d.ts +20 -0
  136. package/dist/config/NoConflict.js +40 -34
  137. package/dist/config/NoConflict.js.map +1 -0
  138. package/dist/config/RTL.d.ts +7 -0
  139. package/dist/config/RTL.js +26 -20
  140. package/dist/config/RTL.js.map +1 -0
  141. package/dist/config/Theme.d.ts +37 -0
  142. package/dist/config/Theme.js +58 -19
  143. package/dist/config/Theme.js.map +1 -0
  144. package/dist/config/ThemeRoots.d.ts +4 -0
  145. package/dist/config/ThemeRoots.js +28 -0
  146. package/dist/config/ThemeRoots.js.map +1 -0
  147. package/dist/css/BusyIndicator.css +80 -0
  148. package/dist/css/FontFace.css +66 -0
  149. package/dist/css/OverrideFontFace.css +32 -0
  150. package/dist/css/SystemCSSVars.css +17 -0
  151. package/dist/decorators/customElement.d.ts +23 -0
  152. package/dist/decorators/customElement.js +31 -0
  153. package/dist/decorators/customElement.js.map +1 -0
  154. package/dist/decorators/event.d.ts +10 -0
  155. package/dist/decorators/event.js +24 -0
  156. package/dist/decorators/event.js.map +1 -0
  157. package/dist/decorators/property.d.ts +9 -0
  158. package/dist/decorators/property.js +24 -0
  159. package/dist/decorators/property.js.map +1 -0
  160. package/dist/decorators/slot.d.ts +9 -0
  161. package/dist/decorators/slot.js +37 -0
  162. package/dist/decorators/slot.js.map +1 -0
  163. package/dist/delegate/ItemNavigation.d.ts +113 -0
  164. package/dist/delegate/ItemNavigation.js +312 -230
  165. package/dist/delegate/ItemNavigation.js.map +1 -0
  166. package/dist/delegate/ResizeHandler.d.ts +25 -0
  167. package/dist/delegate/ResizeHandler.js +82 -63
  168. package/dist/delegate/ResizeHandler.js.map +1 -0
  169. package/dist/delegate/ScrollEnablement.d.ts +49 -0
  170. package/dist/delegate/ScrollEnablement.js +159 -74
  171. package/dist/delegate/ScrollEnablement.js.map +1 -0
  172. package/dist/features/F6Navigation.d.ts +19 -0
  173. package/dist/features/F6Navigation.js +151 -0
  174. package/dist/features/F6Navigation.js.map +1 -0
  175. package/dist/features/LegacyDateFormats.d.ts +18 -0
  176. package/dist/features/LegacyDateFormats.js +20 -0
  177. package/dist/features/LegacyDateFormats.js.map +1 -0
  178. package/dist/features/OpenUI5Element.d.ts +9 -0
  179. package/dist/features/OpenUI5Element.js +5 -0
  180. package/dist/features/OpenUI5Element.js.map +1 -0
  181. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  182. package/dist/features/OpenUI5Enablement.js +96 -0
  183. package/dist/features/OpenUI5Enablement.js.map +1 -0
  184. package/dist/features/OpenUI5Support.d.ts +25 -0
  185. package/dist/features/OpenUI5Support.js +98 -0
  186. package/dist/features/OpenUI5Support.js.map +1 -0
  187. package/dist/generated/AssetParameters.js +13 -0
  188. package/dist/generated/VersionInfo.js +10 -0
  189. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  190. package/dist/generated/css/BusyIndicator.css.js +7 -0
  191. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  192. package/dist/generated/css/FontFace.css.d.ts +3 -0
  193. package/dist/generated/css/FontFace.css.js +7 -0
  194. package/dist/generated/css/FontFace.css.js.map +1 -0
  195. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  196. package/dist/generated/css/OverrideFontFace.css.js +7 -0
  197. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  198. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  199. package/dist/generated/css/SystemCSSVars.css.js +7 -0
  200. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  201. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  202. package/dist/getSharedResource.d.ts +11 -0
  203. package/dist/getSharedResource.js +34 -0
  204. package/dist/getSharedResource.js.map +1 -0
  205. package/dist/global.d.ts +38 -0
  206. package/dist/i18nBundle.d.ts +43 -0
  207. package/dist/i18nBundle.js +73 -30
  208. package/dist/i18nBundle.js.map +1 -0
  209. package/dist/locale/Locale.d.ts +22 -0
  210. package/dist/locale/Locale.js +79 -0
  211. package/dist/locale/Locale.js.map +1 -0
  212. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  213. package/dist/locale/RTLAwareRegistry.js +9 -0
  214. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  215. package/dist/locale/applyDirection.d.ts +10 -0
  216. package/dist/locale/applyDirection.js +17 -0
  217. package/dist/locale/applyDirection.js.map +1 -0
  218. package/dist/locale/directionChange.d.ts +15 -0
  219. package/dist/locale/directionChange.js +24 -0
  220. package/dist/locale/directionChange.js.map +1 -0
  221. package/dist/locale/getEffectiveDir.d.ts +2 -0
  222. package/dist/locale/getEffectiveDir.js +24 -0
  223. package/dist/locale/getEffectiveDir.js.map +1 -0
  224. package/dist/locale/getLocale.d.ts +7 -0
  225. package/dist/locale/getLocale.js +38 -0
  226. package/dist/locale/getLocale.js.map +1 -0
  227. package/dist/locale/languageChange.d.ts +5 -0
  228. package/dist/locale/languageChange.js +14 -0
  229. package/dist/locale/languageChange.js.map +1 -0
  230. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  231. package/dist/locale/nextFallbackLocale.js +24 -0
  232. package/dist/locale/nextFallbackLocale.js.map +1 -0
  233. package/dist/locale/normalizeLocale.d.ts +7 -0
  234. package/dist/locale/normalizeLocale.js +47 -0
  235. package/dist/locale/normalizeLocale.js.map +1 -0
  236. package/dist/renderer/LitRenderer.d.ts +14 -0
  237. package/dist/renderer/LitRenderer.js +38 -12
  238. package/dist/renderer/LitRenderer.js.map +1 -0
  239. package/dist/renderer/directives/style-map.js +72 -0
  240. package/dist/renderer/executeTemplate.d.ts +13 -0
  241. package/dist/renderer/executeTemplate.js +30 -0
  242. package/dist/renderer/executeTemplate.js.map +1 -0
  243. package/dist/sap/base/Log.js +240 -0
  244. package/dist/sap/base/assert.js +7 -0
  245. package/dist/sap/base/security/URLListValidator.js +159 -0
  246. package/dist/sap/base/security/encodeCSS.js +14 -0
  247. package/dist/sap/base/security/encodeXML.js +23 -0
  248. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  249. package/dist/sap/base/strings/toHex.js +8 -0
  250. package/dist/sap/base/util/now.js +7 -0
  251. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  252. package/dist/theming/CustomStyle.d.ts +6 -0
  253. package/dist/theming/CustomStyle.js +46 -17
  254. package/dist/theming/CustomStyle.js.map +1 -0
  255. package/dist/theming/ThemeLoaded.d.ts +5 -0
  256. package/dist/theming/ThemeLoaded.js +14 -0
  257. package/dist/theming/ThemeLoaded.js.map +1 -0
  258. package/dist/theming/ThemeRegistered.d.ts +4 -0
  259. package/dist/theming/ThemeRegistered.js +11 -0
  260. package/dist/theming/ThemeRegistered.js.map +1 -0
  261. package/dist/theming/applyTheme.d.ts +2 -0
  262. package/dist/theming/applyTheme.js +75 -0
  263. package/dist/theming/applyTheme.js.map +1 -0
  264. package/dist/theming/getConstructableStyle.d.ts +9 -0
  265. package/dist/theming/getConstructableStyle.js +25 -0
  266. package/dist/theming/getConstructableStyle.js.map +1 -0
  267. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  268. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  269. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  270. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  271. package/dist/theming/getEffectiveStyle.js +32 -0
  272. package/dist/theming/getEffectiveStyle.js.map +1 -0
  273. package/dist/theming/getStylesString.d.ts +3 -0
  274. package/dist/theming/getStylesString.js +11 -0
  275. package/dist/theming/getStylesString.js.map +1 -0
  276. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  277. package/dist/theming/getThemeDesignerTheme.js +80 -0
  278. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  279. package/dist/theming/preloadLinks.d.ts +3 -0
  280. package/dist/theming/preloadLinks.js +19 -0
  281. package/dist/theming/preloadLinks.js.map +1 -0
  282. package/dist/thirdparty/_merge.d.ts +2 -0
  283. package/dist/thirdparty/_merge.js +35 -0
  284. package/dist/thirdparty/_merge.js.map +1 -0
  285. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  286. package/dist/thirdparty/isPlainObject.js +19 -0
  287. package/dist/thirdparty/isPlainObject.js.map +1 -0
  288. package/dist/thirdparty/merge.d.ts +2 -0
  289. package/dist/thirdparty/merge.js +6 -0
  290. package/dist/thirdparty/merge.js.map +1 -0
  291. package/dist/types/AnimationMode.d.ts +32 -0
  292. package/dist/types/AnimationMode.js +33 -6
  293. package/dist/types/AnimationMode.js.map +1 -0
  294. package/dist/types/CSSColor.d.ts +15 -0
  295. package/dist/types/CSSColor.js +18 -0
  296. package/dist/types/CSSColor.js.map +1 -0
  297. package/dist/types/CalendarType.d.ts +37 -0
  298. package/dist/types/CalendarType.js +39 -0
  299. package/dist/types/CalendarType.js.map +1 -0
  300. package/dist/types/DOMReference.d.ts +17 -0
  301. package/dist/types/DOMReference.js +25 -0
  302. package/dist/types/DOMReference.js.map +1 -0
  303. package/dist/types/DataType.d.ts +25 -0
  304. package/dist/types/DataType.js +33 -14
  305. package/dist/types/DataType.js.map +1 -0
  306. package/dist/types/Float.d.ts +17 -0
  307. package/dist/types/Float.js +21 -0
  308. package/dist/types/Float.js.map +1 -0
  309. package/dist/types/Integer.d.ts +17 -0
  310. package/dist/types/Integer.js +17 -5
  311. package/dist/types/Integer.js.map +1 -0
  312. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  313. package/dist/types/InvisibleMessageMode.js +27 -0
  314. package/dist/types/InvisibleMessageMode.js.map +1 -0
  315. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  316. package/dist/types/ItemNavigationBehavior.js +22 -17
  317. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  318. package/dist/types/NavigationMode.d.ts +32 -0
  319. package/dist/types/NavigationMode.js +33 -5
  320. package/dist/types/NavigationMode.js.map +1 -0
  321. package/dist/types/ValueState.d.ts +42 -0
  322. package/dist/types/ValueState.js +41 -18
  323. package/dist/types/ValueState.js.map +1 -0
  324. package/dist/types.d.ts +18 -0
  325. package/dist/types.js +2 -0
  326. package/dist/types.js.map +1 -0
  327. package/dist/updateShadowRoot.d.ts +8 -0
  328. package/dist/updateShadowRoot.js +38 -0
  329. package/dist/updateShadowRoot.js.map +1 -0
  330. package/dist/util/AriaLabelHelper.d.ts +15 -0
  331. package/dist/util/AriaLabelHelper.js +171 -0
  332. package/dist/util/AriaLabelHelper.js.map +1 -0
  333. package/dist/util/Caret.d.ts +7 -0
  334. package/dist/util/Caret.js +23 -0
  335. package/dist/util/Caret.js.map +1 -0
  336. package/dist/util/ColorConversion.d.ts +30 -0
  337. package/dist/util/ColorConversion.js +337 -0
  338. package/dist/util/ColorConversion.js.map +1 -0
  339. package/dist/util/FetchHelper.d.ts +3 -0
  340. package/dist/util/FetchHelper.js +19 -25
  341. package/dist/util/FetchHelper.js.map +1 -0
  342. package/dist/util/FocusableElements.d.ts +4 -0
  343. package/dist/util/FocusableElements.js +67 -56
  344. package/dist/util/FocusableElements.js.map +1 -0
  345. package/dist/util/HTMLSanitizer.d.ts +3 -0
  346. package/dist/util/HTMLSanitizer.js +6 -0
  347. package/dist/util/HTMLSanitizer.js.map +1 -0
  348. package/dist/util/InvisibleMessage.d.ts +10 -0
  349. package/dist/util/InvisibleMessage.js +56 -0
  350. package/dist/util/InvisibleMessage.js.map +1 -0
  351. package/dist/util/PopupUtils.d.ts +7 -0
  352. package/dist/util/PopupUtils.js +74 -0
  353. package/dist/util/PopupUtils.js.map +1 -0
  354. package/dist/util/SlotsHelper.d.ts +9 -0
  355. package/dist/util/SlotsHelper.js +30 -0
  356. package/dist/util/SlotsHelper.js.map +1 -0
  357. package/dist/util/StringHelper.d.ts +3 -0
  358. package/dist/util/StringHelper.js +21 -9
  359. package/dist/util/StringHelper.js.map +1 -0
  360. package/dist/util/TabbableElements.d.ts +17 -0
  361. package/dist/util/TabbableElements.js +53 -40
  362. package/dist/util/TabbableElements.js.map +1 -0
  363. package/dist/util/arraysAreEqual.d.ts +2 -0
  364. package/dist/util/arraysAreEqual.js +13 -0
  365. package/dist/util/arraysAreEqual.js.map +1 -0
  366. package/dist/util/clamp.d.ts +9 -0
  367. package/dist/util/clamp.js +12 -0
  368. package/dist/util/clamp.js.map +1 -0
  369. package/dist/util/createLinkInHead.d.ts +7 -0
  370. package/dist/util/createLinkInHead.js +21 -0
  371. package/dist/util/createLinkInHead.js.map +1 -0
  372. package/dist/util/createStyleInHead.d.ts +8 -0
  373. package/dist/util/createStyleInHead.js +10 -10
  374. package/dist/util/createStyleInHead.js.map +1 -0
  375. package/dist/util/debounce.d.ts +2 -0
  376. package/dist/util/debounce.js +15 -0
  377. package/dist/util/debounce.js.map +1 -0
  378. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  379. package/dist/util/detectNavigatorLanguage.js +8 -9
  380. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  381. package/dist/util/escapeRegex.d.ts +8 -0
  382. package/dist/util/escapeRegex.js +11 -0
  383. package/dist/util/escapeRegex.js.map +1 -0
  384. package/dist/util/formatMessage.d.ts +2 -0
  385. package/dist/util/formatMessage.js +15 -19
  386. package/dist/util/formatMessage.js.map +1 -0
  387. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  388. package/dist/util/generateHighlightedMarkup.js +41 -0
  389. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  390. package/dist/util/getActiveElement.d.ts +2 -0
  391. package/dist/util/getActiveElement.js +9 -0
  392. package/dist/util/getActiveElement.js.map +1 -0
  393. package/dist/util/getClassCopy.d.ts +398 -0
  394. package/dist/util/getClassCopy.js +10 -0
  395. package/dist/util/getClassCopy.js.map +1 -0
  396. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  397. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  398. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  399. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  400. package/dist/util/getEffectiveContentDensity.js +4 -0
  401. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  402. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  403. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  404. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  405. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  406. package/dist/util/getFastNavigationGroups.js +51 -0
  407. package/dist/util/getFastNavigationGroups.js.map +1 -0
  408. package/dist/util/getFileExtension.d.ts +12 -0
  409. package/dist/util/getFileExtension.js +19 -0
  410. package/dist/util/getFileExtension.js.map +1 -0
  411. package/dist/util/getNormalizedTarget.d.ts +7 -0
  412. package/dist/util/getNormalizedTarget.js +14 -0
  413. package/dist/util/getNormalizedTarget.js.map +1 -0
  414. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  415. package/dist/util/getSingletonElementInstance.js +10 -0
  416. package/dist/util/getSingletonElementInstance.js.map +1 -0
  417. package/dist/util/isElementClickable.d.ts +2 -0
  418. package/dist/util/isElementClickable.js +16 -0
  419. package/dist/util/isElementClickable.js.map +1 -0
  420. package/dist/util/isElementHidden.d.ts +2 -0
  421. package/dist/util/isElementHidden.js +8 -0
  422. package/dist/util/isElementHidden.js.map +1 -0
  423. package/dist/util/isElementInView.d.ts +6 -0
  424. package/dist/util/isElementInView.js +12 -0
  425. package/dist/util/isElementInView.js.map +1 -0
  426. package/dist/util/isElementTabbable.d.ts +9 -0
  427. package/dist/util/isElementTabbable.js +30 -0
  428. package/dist/util/isElementTabbable.js.map +1 -0
  429. package/dist/util/isValidPropertyName.d.ts +8 -0
  430. package/dist/util/isValidPropertyName.js +20 -12
  431. package/dist/util/isValidPropertyName.js.map +1 -0
  432. package/dist/util/whenDOMReady.d.ts +2 -0
  433. package/dist/util/whenDOMReady.js +11 -10
  434. package/dist/util/whenDOMReady.js.map +1 -0
  435. package/dist/util/willShowContent.d.ts +2 -0
  436. package/dist/util/willShowContent.js +7 -0
  437. package/dist/util/willShowContent.js.map +1 -0
  438. package/dist/validateThemeRoot.d.ts +2 -0
  439. package/dist/validateThemeRoot.js +47 -0
  440. package/dist/validateThemeRoot.js.map +1 -0
  441. package/index.js +1 -1
  442. package/lib/generate-asset-parameters/index.js +25 -0
  443. package/lib/generate-styles/index.js +31 -0
  444. package/lib/generate-version-info/index.js +32 -0
  445. package/package-scripts.js +53 -25
  446. package/package.json +22 -14
  447. package/src/css/BusyIndicator.css +80 -0
  448. package/src/css/FontFace.css +66 -0
  449. package/src/css/OverrideFontFace.css +32 -0
  450. package/src/css/SystemCSSVars.css +17 -0
  451. package/src/renderer/directives/style-map.js +72 -0
  452. package/tsconfig.json +14 -0
  453. package/used-modules.txt +10 -0
  454. package/bundle.es5.js +0 -31
  455. package/config/rollup.config.js +0 -1
  456. package/dist/Assets.js +0 -2
  457. package/dist/CSS.js +0 -48
  458. package/dist/ContentDensity.js +0 -20
  459. package/dist/FormatSettings.js +0 -31
  460. package/dist/Locale.js +0 -101
  461. package/dist/LocaleProvider.js +0 -34
  462. package/dist/RenderScheduler.js +0 -160
  463. package/dist/ResourceLoaderOverrides.js +0 -38
  464. package/dist/SVGIconRegistry.js +0 -54
  465. package/dist/animations/config.js +0 -5
  466. package/dist/boot.js +0 -25
  467. package/dist/compatibility/DOMObserver.js +0 -62
  468. package/dist/compatibility/patchNodeValue.js +0 -24
  469. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  470. package/dist/config/CompactSize.js +0 -23
  471. package/dist/dates/CalendarDate.js +0 -203
  472. package/dist/dates/CalendarType.js +0 -22
  473. package/dist/dates/CalendarUtils.js +0 -99
  474. package/dist/delegate/CustomResize.js +0 -78
  475. package/dist/delegate/NativeResize.js +0 -44
  476. package/dist/events/PseudoEvents.js +0 -58
  477. package/dist/features/browsersupport/Edge.js +0 -6
  478. package/dist/features/browsersupport/IE11.js +0 -41
  479. package/dist/features/calendar/Buddhist.js +0 -1
  480. package/dist/features/calendar/Islamic.js +0 -1
  481. package/dist/features/calendar/Japanese.js +0 -1
  482. package/dist/features/calendar/Persian.js +0 -1
  483. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  484. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  485. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  486. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  487. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  488. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  489. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  490. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  491. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  492. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  493. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  494. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  495. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  496. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  497. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  498. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  499. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  500. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  501. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  502. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  503. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  504. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  505. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  506. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  507. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  508. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  509. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  510. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  511. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  512. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  513. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  514. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  515. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  516. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  517. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  518. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  519. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  520. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  521. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  522. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  523. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  524. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  525. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  526. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  527. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  528. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  529. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  530. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  531. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  532. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  533. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  534. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  535. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  536. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  537. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  538. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  539. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  540. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  541. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  542. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  543. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  544. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  545. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  546. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  547. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  548. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  549. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  550. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  551. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  552. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  553. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  554. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  555. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  556. package/dist/json-imports/LocaleData.js +0 -171
  557. package/dist/renderer/ifDefined.js +0 -21
  558. package/dist/resources/bundle.es5.js +0 -12581
  559. package/dist/resources/bundle.es5.js.map +0 -1
  560. package/dist/resources/bundle.esm.js +0 -7401
  561. package/dist/resources/bundle.esm.js.map +0 -1
  562. package/dist/shims/Core-shim.js +0 -52
  563. package/dist/shims/jquery-shim.js +0 -89
  564. package/dist/test-resources/assets/Themes.js +0 -11
  565. package/dist/test-resources/elements/Child.js +0 -35
  566. package/dist/test-resources/elements/DensityAware.js +0 -14
  567. package/dist/test-resources/elements/Generic.js +0 -83
  568. package/dist/test-resources/elements/GenericExt.js +0 -26
  569. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  570. package/dist/test-resources/elements/Parent.js +0 -36
  571. package/dist/test-resources/pages/AllTestElements.html +0 -42
  572. package/dist/test-resources/pages/Configuration.html +0 -20
  573. package/dist/test-resources/pages/ConfigurationScript.html +0 -37
  574. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -34
  575. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -69
  576. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -53
  577. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  578. package/dist/test-resources/specs/Theming.spec.js +0 -31
  579. package/dist/test-resources/specs/UI5ElementDensityAware.spec.js +0 -51
  580. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  581. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  582. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  583. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  584. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  585. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  586. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  587. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  588. package/dist/theming/StyleInjection.js +0 -67
  589. package/dist/thirdparty/Array.from.js +0 -16
  590. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  591. package/dist/thirdparty/Array.prototype.find.js +0 -46
  592. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  593. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  594. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  595. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  596. package/dist/thirdparty/Number.isInteger.js +0 -5
  597. package/dist/thirdparty/Number.isNaN.js +0 -1
  598. package/dist/thirdparty/Number.parseInt.js +0 -1
  599. package/dist/thirdparty/Object.assign.js +0 -31
  600. package/dist/thirdparty/Object.entries.js +0 -11
  601. package/dist/thirdparty/Symbol.js +0 -2
  602. package/dist/thirdparty/WeakSet.js +0 -27
  603. package/dist/thirdparty/events-polyfills.js +0 -89
  604. package/dist/thirdparty/fetch.js +0 -1
  605. package/dist/thirdparty/template.js +0 -600
  606. package/dist/types/CSSSize.js +0 -9
  607. package/dist/types/PopupState.js +0 -37
  608. package/dist/util/CSSTransformUtils.js +0 -90
  609. package/dist/util/isDescendantOf.js +0 -15
  610. package/dist/util/isNodeClickable.js +0 -19
  611. package/dist/util/isNodeHidden.js +0 -13
  612. package/dist/util/isNodeTabbable.js +0 -28
  613. package/dist/util/normalizeLocale.js +0 -77
  614. package/dist/webcomponentsjs/LICENSE.md +0 -19
  615. package/dist/webcomponentsjs/README.md +0 -229
  616. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  617. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  618. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  619. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  620. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  621. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  622. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  623. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  624. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  625. package/dist/webcomponentsjs/package.json +0 -46
  626. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  627. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  628. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  629. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  630. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  631. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  632. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  633. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  634. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  635. package/src/AssetRegistry.js +0 -9
  636. package/src/Assets.js +0 -2
  637. package/src/CSS.js +0 -48
  638. package/src/ContentDensity.js +0 -20
  639. package/src/Device.js +0 -823
  640. package/src/EventProvider.js +0 -73
  641. package/src/FeaturesRegistry.js +0 -11
  642. package/src/FontFace.js +0 -66
  643. package/src/FormatSettings.js +0 -31
  644. package/src/InitialConfiguration.js +0 -126
  645. package/src/Locale.js +0 -101
  646. package/src/LocaleProvider.js +0 -34
  647. package/src/RenderQueue.js +0 -42
  648. package/src/RenderScheduler.js +0 -160
  649. package/src/ResourceLoaderOverrides.js +0 -38
  650. package/src/SVGIconRegistry.js +0 -54
  651. package/src/Theming.js +0 -45
  652. package/src/UI5Element.js +0 -834
  653. package/src/UI5ElementMetadata.js +0 -156
  654. package/src/animations/AnimationQueue.js +0 -42
  655. package/src/animations/animate.js +0 -53
  656. package/src/animations/config.js +0 -5
  657. package/src/animations/scroll.js +0 -28
  658. package/src/animations/slideDown.js +0 -79
  659. package/src/animations/slideUp.js +0 -71
  660. package/src/asset-registries/Icons.js +0 -24
  661. package/src/asset-registries/LocaleData.js +0 -101
  662. package/src/asset-registries/Themes.js +0 -75
  663. package/src/asset-registries/i18n.js +0 -75
  664. package/src/boot.js +0 -25
  665. package/src/compatibility/DOMObserver.js +0 -62
  666. package/src/compatibility/patchNodeValue.js +0 -24
  667. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  668. package/src/config/AnimationMode.js +0 -9
  669. package/src/config/CalendarType.js +0 -18
  670. package/src/config/CompactSize.js +0 -23
  671. package/src/config/FormatSettings.js +0 -9
  672. package/src/config/Language.js +0 -9
  673. package/src/config/NoConflict.js +0 -44
  674. package/src/config/RTL.js +0 -31
  675. package/src/config/Theme.js +0 -24
  676. package/src/dates/CalendarDate.js +0 -203
  677. package/src/dates/CalendarType.js +0 -22
  678. package/src/dates/CalendarUtils.js +0 -99
  679. package/src/delegate/CustomResize.js +0 -78
  680. package/src/delegate/ItemNavigation.js +0 -234
  681. package/src/delegate/NativeResize.js +0 -44
  682. package/src/delegate/ResizeHandler.js +0 -66
  683. package/src/delegate/ScrollEnablement.js +0 -80
  684. package/src/events/PseudoEvents.js +0 -58
  685. package/src/features/browsersupport/Edge.js +0 -6
  686. package/src/features/browsersupport/IE11.js +0 -41
  687. package/src/features/calendar/Buddhist.js +0 -1
  688. package/src/features/calendar/Islamic.js +0 -1
  689. package/src/features/calendar/Japanese.js +0 -1
  690. package/src/features/calendar/Persian.js +0 -1
  691. package/src/i18nBundle.js +0 -35
  692. package/src/json-imports/LocaleData.js +0 -171
  693. package/src/renderer/LitRenderer.js +0 -15
  694. package/src/renderer/ifDefined.js +0 -21
  695. package/src/shims/Core-shim.js +0 -52
  696. package/src/shims/jquery-shim.js +0 -89
  697. package/src/theming/CustomStyle.js +0 -19
  698. package/src/theming/StyleInjection.js +0 -67
  699. package/src/thirdparty/Array.from.js +0 -16
  700. package/src/thirdparty/Array.prototype.fill.js +0 -44
  701. package/src/thirdparty/Array.prototype.find.js +0 -46
  702. package/src/thirdparty/Array.prototype.includes.js +0 -51
  703. package/src/thirdparty/Element.prototype.closest.js +0 -11
  704. package/src/thirdparty/Element.prototype.matches.js +0 -6
  705. package/src/thirdparty/Map.prototype.keys.js +0 -9
  706. package/src/thirdparty/Number.isInteger.js +0 -5
  707. package/src/thirdparty/Number.isNaN.js +0 -1
  708. package/src/thirdparty/Number.parseInt.js +0 -1
  709. package/src/thirdparty/Object.assign.js +0 -31
  710. package/src/thirdparty/Object.entries.js +0 -11
  711. package/src/thirdparty/Symbol.js +0 -2
  712. package/src/thirdparty/WeakSet.js +0 -27
  713. package/src/thirdparty/events-polyfills.js +0 -89
  714. package/src/thirdparty/fetch.js +0 -1
  715. package/src/thirdparty/template.js +0 -600
  716. package/src/types/AnimationMode.js +0 -7
  717. package/src/types/CSSSize.js +0 -9
  718. package/src/types/DataType.js +0 -25
  719. package/src/types/Integer.js +0 -9
  720. package/src/types/ItemNavigationBehavior.js +0 -21
  721. package/src/types/NavigationMode.js +0 -6
  722. package/src/types/PopupState.js +0 -37
  723. package/src/types/ValueState.js +0 -21
  724. package/src/util/CSSTransformUtils.js +0 -90
  725. package/src/util/FetchHelper.js +0 -31
  726. package/src/util/FocusableElements.js +0 -60
  727. package/src/util/StringHelper.js +0 -11
  728. package/src/util/TabbableElements.js +0 -44
  729. package/src/util/createStyleInHead.js +0 -18
  730. package/src/util/detectNavigatorLanguage.js +0 -11
  731. package/src/util/formatMessage.js +0 -23
  732. package/src/util/getDesigntimePropertyAsArray.js +0 -4
  733. package/src/util/isDescendantOf.js +0 -15
  734. package/src/util/isNodeClickable.js +0 -19
  735. package/src/util/isNodeHidden.js +0 -13
  736. package/src/util/isNodeTabbable.js +0 -28
  737. package/src/util/isValidPropertyName.js +0 -20
  738. package/src/util/normalizeLocale.js +0 -77
  739. package/src/util/whenDOMReady.js +0 -13
  740. /package/{config/.eslintrc.js → .eslintrc.js} +0 -0
package/dist/Device.js CHANGED
@@ -1,823 +1,166 @@
1
- /**
2
- * Device and Feature Detection API: Provides information about the used browser / device and cross platform support for certain events
3
- * like media queries, orientation change or resizing.
4
- *
5
- * This API is independent from any other part of the UI5 framework. This allows it to be loaded beforehand, if it is needed, to create the UI5 bootstrap
6
- * dynamically depending on the capabilities of the browser or device.
7
- *
8
- * @namespace
9
- * @name Device
10
- */
11
-
12
- const Device = {};
13
-
14
- //* ******* OS Detection ********
15
-
16
- /**
17
- * Contains information about the operating system of the Device.
18
- * @name Device.os
19
- */
20
-
21
- /**
22
- * Enumeration containing the names of known operating systems.
23
- * @name Device.os.OS
24
- */
25
-
26
- /**
27
- * The name of the operating system.
28
- * @name Device.os.name
29
- * @type String
30
- */
31
-
32
- /**
33
- * The version of the operating system as <code>string</code>. Might be empty if no version can be determined.
34
- * @name Device.os.versionStr
35
- * @type String
36
- */
37
-
38
- /**
39
- * The version of the operating system as <code>float</code>. Might be <code>-1</code> if no version can be determined.
40
- * @name Device.os.version
41
- * @type float
42
- */
43
-
44
- /**
45
- * If this flag is set to <code>true</code>, a Windows operating system is used.
46
- * @name Device.os.windows
47
- * @type boolean
48
- */
49
-
50
- /**
51
- * If this flag is set to <code>true</code>, a Mac operating system is used.
52
- * @name Device.os.macintosh
53
- * @type boolean
54
- */
55
-
56
- /*
57
- * If this flag is set to <code>true</code>, an iOS operating system is used.
58
- * @name Device.os.ios
59
- * @type boolean
60
- */
61
-
62
- /**
63
- * If this flag is set to <code>true</code>, an Android operating system is used.
64
- * @name Device.os.android
65
- * @type boolean
66
- */
67
-
68
- /*
69
- * Windows operating system name.
70
- * @see Device.os.name
71
- * @name Device.os.OS.WINDOWS
72
- */
73
-
74
- /**
75
- * MAC operating system name.
76
- * @see Device.os.name
77
- * @name Device.os.OS.MACINTOSH
78
- */
79
-
80
- /**
81
- * iOS operating system name.
82
- * @see Device.os.name
83
- * @name Device.os.OS.IOS
84
- */
85
-
86
- /**
87
- * Android operating system name.
88
- * @see Device.os.name
89
- * @name Device.os.OS.ANDROID
90
- */
91
-
92
- const OS = {
93
- "WINDOWS": "win",
94
- "MACINTOSH": "mac",
95
- "IOS": "iOS",
96
- "ANDROID": "Android",
97
- };
98
-
99
- const _getMobileOS = () => {
100
- const userAgent = navigator.userAgent;
101
-
102
- let rPlatform, // regular expression for platform
103
- aMatches;
104
-
105
- // iOS, Android
106
- rPlatform = /\(([a-zA-Z ]+);\s(?:[U]?[;]?)([\D]+)((?:[\d._]*))(?:.*[)][^\d]*)([\d.]*)\s/;
107
- aMatches = userAgent.match(rPlatform);
108
-
109
- if (aMatches) {
110
- const rAppleDevices = /iPhone|iPad|iPod/;
111
-
112
- if (aMatches[0].match(rAppleDevices)) {
113
- aMatches[3] = aMatches[3].replace(/_/g, ".");
114
-
115
- return ({
116
- "name": OS.IOS,
117
- "versionStr": aMatches[3],
118
- });
119
- }
120
-
121
- if (aMatches[2].match(/Android/)) {
122
- aMatches[2] = aMatches[2].replace(/\s/g, "");
123
- return ({
124
- "name": OS.ANDROID,
125
- "versionStr": aMatches[3],
126
- });
127
- }
128
- }
129
-
130
- // Firefox on Android
131
- rPlatform = /\((Android)[\s]?([\d][.\d]*)?;.*Firefox\/[\d][.\d]*/;
132
- aMatches = userAgent.match(rPlatform);
133
- if (aMatches) {
134
- return ({
135
- "name": OS.ANDROID,
136
- "versionStr": aMatches.length === 3 ? aMatches[2] : "",
137
- });
138
- }
139
- };
140
-
141
- const _getDesktopOS = () => {
142
- const sPlatform = navigator.platform;
143
- if (sPlatform.indexOf("Win") !== -1) {
144
- const rVersion = /Windows NT (\d+).(\d)/i; // userAgent since windows 10: Windows NT 10[...]
145
- const uaResult = navigator.userAgent.match(rVersion);
146
-
147
- return {
148
- "name": OS.WINDOWS,
149
- "versionStr": uaResult[1],
150
- };
151
- }
152
-
153
- if (sPlatform.indexOf("Mac") !== -1) {
154
- return {
155
- "name": OS.MACINTOSH,
156
- "versionStr": "",
157
- };
158
- }
159
-
160
- return null;
161
- };
162
-
163
- const _getOS = () => {
164
- return _getMobileOS() || _getDesktopOS();
165
- };
166
-
167
- const _setOS = () => {
168
- if (Device.os) {
169
- return;
170
- }
171
-
172
- Device.os = _getOS() || {};
173
- Device.os.OS = OS;
174
- Device.os.version = Device.os.versionStr ? parseFloat(Device.os.versionStr) : -1;
175
-
176
- if (Device.os.name) {
177
- Object.keys(OS).forEach(name => {
178
- if (OS[name] === Device.os.name) {
179
- Device.os[name.toLowerCase()] = true;
180
- }
181
- });
182
- }
183
- };
184
-
185
- const getOS = () => {
186
- if (!Device.os) {
187
- _setOS();
188
- }
189
-
190
- return Device.os;
191
- };
192
-
193
- const isAndroid = () => {
194
- if (!Device.os) {
195
- _setOS();
196
- }
197
-
198
- return !!Device.os.android;
199
- };
200
-
201
- //* ******* Browser Detection ********
202
-
203
- /**
204
- * Contains information about the used browser.
205
- * @name Device.browser
206
- */
207
-
208
- /**
209
- * Enumeration containing the names of known browsers.
210
- * @name Device.browser.BROWSER
211
- *
212
- * The name of the browser.
213
- * @name Device.browser.name
214
- * @type String
215
- */
216
-
217
- /**
218
- * The version of the browser as <code>string</code>. Might be empty if no version can be determined.
219
- * @name Device.browser.versionStr
220
- * @type String
221
- */
222
-
223
- /**
224
- * The version of the browser as <code>float</code>. Might be <code>-1</code> if no version can be determined.
225
- * @name Device.browser.version
226
- * @type float
227
- */
228
-
229
- /**
230
- * If this flag is set to <code>true</code>, the mobile variant of the browser is used or
231
- * a tablet or phone device is detected. This information might not be available for all browsers.
232
- * @name Device.browser.mobile
233
- * @type boolean
234
- */
235
-
236
- /**
237
- * If this flag is set to <code>true</code>, the Microsoft Internet Explorer browser is used.
238
- * @name Device.browser.internet_explorer
239
- * @type boolean
240
- * @deprecated since 1.20, use {@link Device.browser.msie} instead.
241
- */
242
-
243
- /**
244
- * If this flag is set to <code>true</code>, the Microsoft Internet Explorer browser is used.
245
- * @name Device.browser.msie
246
- * @type boolean
247
- */
248
-
249
- /**
250
- * If this flag is set to <code>true</code>, the Microsoft Edge browser is used.
251
- * @name Device.browser.edge
252
- * @type boolean
253
- */
254
-
255
- /**
256
- * If this flag is set to <code>true</code>, the Mozilla Firefox browser is used.
257
- * @name Device.browser.firefox
258
- */
259
-
260
- /**
261
- * If this flag is set to <code>true</code>, the Google Chrome browser is used.
262
- * @name Device.browser.chrome
263
- * @type boolean
264
- *
265
- * If this flag is set to <code>true</code>, the Apple Safari browser is used.
266
- *
267
- * <b>Note:</b>
268
- * This flag is also <code>true</code> when the standalone (fullscreen) mode or webview is used on iOS devices.
269
- * Please also note the flags {@link Device.browser.fullscreen} and {@link Device.browser.webview}.
270
- *
271
- * @name Device.browser.safari
272
- * @type boolean
273
- */
274
-
275
- /**
276
- * If this flag is set to <code>true</code>, a browser featuring a Webkit engine is used.
277
- *
278
- * <b>Note:</b>
279
- * This flag is also <code>true</code> when the used browser was based on the Webkit engine, but
280
- * uses another rendering engine in the meantime. For example the Chrome browser started from version 28 and above
281
- * uses the Blink rendering engine.
282
- *
283
- * @name Device.browser.webkit
284
- * @type boolean
285
- */
286
-
287
- /**
288
- * If this flag is set to <code>true</code>, the Safari browser runs in standalone fullscreen mode on iOS.
289
- *
290
- * <b>Note:</b> This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,
291
- * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.
292
- * the availability of {@link Device.browser.version}.
293
- *
294
- * @name Device.browser.fullscreen
295
- * @type boolean
296
- */
297
-
298
- /**
299
- * If this flag is set to <code>true</code>, the Safari browser runs in webview mode on iOS.
300
- *
301
- * <b>Note:</b> This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,
302
- * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.
303
- * the availability of {@link Device.browser.version}.
304
- *
305
- * @name Device.browser.webview
306
- * @type boolean
307
- */
308
-
309
- /**
310
- * If this flag is set to <code>true</code>, the Phantom JS browser is used.
311
- * @name Device.browser.phantomJS
312
- * @type boolean
313
- */
314
-
315
- /**
316
- * The version of the used Webkit engine, if available.
317
- * @name Device.browser.webkitVersion
318
- * @type String
319
- */
320
-
321
- /**
322
- * If this flag is set to <code>true</code>, a browser featuring a Mozilla engine is used.
323
- * @name Device.browser.mozilla
324
- * @type boolean
325
- */
326
-
327
- /**
328
- * Internet Explorer browser name.
329
- * @name Device.browser.BROWSER.INTERNET_EXPLORER
330
- */
331
-
332
- /**
333
- * Edge browser name.
334
- * @name Device.browser.BROWSER.EDGE
335
- */
336
-
337
- /**
338
- * Firefox browser name.
339
- * @name Device.browser.BROWSER.FIREFOX
340
- */
341
-
342
- /**
343
- * Chrome browser name.
344
- * @name Device.browser.BROWSER.CHROME
345
- */
346
-
347
- /**
348
- * Safari browser name.
349
- * @name Device.browser.BROWSER.SAFARI
350
- */
351
-
352
- /**
353
- * Android stock browser name.
354
- * @name Device.browser.BROWSER.ANDROID
355
- */
356
-
357
- const BROWSER = {
358
- "INTERNET_EXPLORER": "ie",
359
- "EDGE": "ed",
360
- "FIREFOX": "ff",
361
- "CHROME": "cr",
362
- "SAFARI": "sf",
363
- "ANDROID": "an",
364
- };
365
-
366
- /*!
367
- * Taken from jQuery JavaScript Library v1.7.1
368
- * http://jquery.com/
369
- *
370
- * Copyright 2011, John Resig
371
- * Dual licensed under the MIT or GPL Version 2 licenses.
372
- * http://jquery.org/license
373
- *
374
- * Includes Sizzle.js
375
- * http://sizzlejs.com/
376
- * Copyright 2011, The Dojo Foundation
377
- * Released under the MIT, BSD, and GPL Licenses.
378
- *
379
- * Date: Mon Nov 21 21:11:03 2011 -0500
380
- */
381
- const _calcBrowser = () => {
382
- const sUserAgent = navigator.userAgent.toLowerCase();
383
-
384
- const rwebkit = /(webkit)[ /]([\w.]+)/;
385
- const rmsie = /(msie) ([\w.]+)/;
386
- const rmsie11 = /(trident)\/[\w.]+;.*rv:([\w.]+)/;
387
- const redge = /(edge)[ /]([\w.]+)/;
388
- const rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/;
389
-
390
- // WinPhone IE11 and MS Edge userAgents contain "WebKit" and "Mozilla" and therefore must be checked first
391
- const browserMatch = redge.exec(sUserAgent)
392
- || rmsie11.exec(sUserAgent)
393
- || rwebkit.exec(sUserAgent)
394
- || rmsie.exec(sUserAgent)
395
- || (sUserAgent.indexOf("compatible") < 0 && rmozilla.exec(sUserAgent)) || [];
396
-
397
- const oRes = {
398
- browser: browserMatch[1] || "",
399
- version: browserMatch[2] || "0",
400
- };
401
- oRes[oRes.browser] = true;
402
- return oRes;
403
- };
404
-
405
- const _getBrowser = () => {
406
- const oBrowser = _calcBrowser();
407
- const sUserAgent = navigator.userAgent;
408
- const oNavigator = window.navigator;
409
-
410
- // jQuery checks for user agent strings. We differentiate between browsers
411
- let oExpMobile;
412
- let oResult;
413
- let fVersion;
414
-
415
- // Mozilla
416
- if (oBrowser.mozilla) {
417
- oExpMobile = /Mobile/;
418
- if (sUserAgent.match(/Firefox\/(\d+\.\d+)/)) {
419
- fVersion = parseFloat(RegExp.$1);
420
- oResult = {
421
- name: BROWSER.FIREFOX,
422
- versionStr: `${fVersion}`,
423
- version: fVersion,
424
- mozilla: true,
425
- mobile: oExpMobile.test(sUserAgent),
426
- };
427
- } else {
428
- // unknown mozilla browser
429
- oResult = {
430
- mobile: oExpMobile.test(sUserAgent),
431
- mozilla: true,
432
- version: -1,
433
- };
434
- }
435
- } else if (oBrowser.webkit) {
436
- // webkit version is needed for calculation if the mobile android device is a tablet (calculation of other mobile devices work without)
437
- const regExpWebkitVersion = sUserAgent.toLowerCase().match(/webkit[/]([\d.]+)/);
438
- let webkitVersion;
439
- if (regExpWebkitVersion) {
440
- webkitVersion = regExpWebkitVersion[1];
441
- }
442
- oExpMobile = /Mobile/;
443
- const aChromeMatch = sUserAgent.match(/(Chrome|CriOS)\/(\d+\.\d+).\d+/);
444
- const aFirefoxMatch = sUserAgent.match(/FxiOS\/(\d+\.\d+)/);
445
- const aAndroidMatch = sUserAgent.match(/Android .+ Version\/(\d+\.\d+)/);
446
-
447
- if (aChromeMatch || aFirefoxMatch || aAndroidMatch) {
448
- let sName,
449
- sVersion,
450
- bMobile;
451
-
452
- if (aChromeMatch) {
453
- sName = BROWSER.CHROME;
454
- bMobile = oExpMobile.test(sUserAgent);
455
- sVersion = parseFloat(aChromeMatch[2]);
456
- } else if (aFirefoxMatch) {
457
- sName = BROWSER.FIREFOX;
458
- bMobile = true;
459
- sVersion = parseFloat(aFirefoxMatch[1]);
460
- } else if (aAndroidMatch) {
461
- sName = BROWSER.ANDROID;
462
- bMobile = oExpMobile.test(sUserAgent);
463
- sVersion = parseFloat(aAndroidMatch[1]);
464
- }
465
-
466
- oResult = {
467
- name: sName,
468
- mobile: bMobile,
469
- versionStr: `${sVersion}`,
470
- version: sVersion,
471
- webkit: true,
472
- webkitVersion,
473
- };
474
- } else { // Safari might have an issue with sUserAgent.match(...); thus changing
475
- const oExp = /(Version|PhantomJS)\/(\d+\.\d+).*Safari/;
476
- const bStandalone = oNavigator.standalone;
477
- if (oExp.test(sUserAgent)) {
478
- const aParts = oExp.exec(sUserAgent);
479
- fVersion = parseFloat(aParts[2]);
480
- oResult = {
481
- name: BROWSER.SAFARI,
482
- versionStr: `${fVersion}`,
483
- fullscreen: false,
484
- webview: false,
485
- version: fVersion,
486
- mobile: oExpMobile.test(sUserAgent),
487
- webkit: true,
488
- webkitVersion,
489
- phantomJS: aParts[1] === "PhantomJS",
490
- };
491
- } else if (/iPhone|iPad|iPod/.test(sUserAgent) && !(/CriOS/.test(sUserAgent)) && !(/FxiOS/.test(sUserAgent)) && (bStandalone === true || bStandalone === false)) {
492
- // WebView or Standalone mode on iOS
493
- oResult = {
494
- name: BROWSER.SAFARI,
495
- version: -1,
496
- fullscreen: bStandalone,
497
- webview: !bStandalone,
498
- mobile: oExpMobile.test(sUserAgent),
499
- webkit: true,
500
- webkitVersion,
501
- };
502
- } else { // other webkit based browser
503
- oResult = {
504
- mobile: oExpMobile.test(sUserAgent),
505
- webkit: true,
506
- webkitVersion,
507
- version: -1,
508
- };
509
- }
510
- }
511
- } else if (oBrowser.msie || oBrowser.trident) {
512
- fVersion = parseFloat(oBrowser.version);
513
-
514
- oResult = {
515
- name: BROWSER.INTERNET_EXPLORER,
516
- versionStr: `${fVersion}`,
517
- version: fVersion,
518
- msie: true,
519
- mobile: false,
520
- };
521
- } else if (oBrowser.edge) {
522
- fVersion = parseFloat(oBrowser.version);
523
- oResult = {
524
- name: BROWSER.EDGE,
525
- versionStr: `${fVersion}`,
526
- version: fVersion,
527
- edge: true,
528
- };
529
- } else {
530
- oResult = {
531
- name: "",
532
- versionStr: "",
533
- version: -1,
534
- mobile: false,
535
- };
536
- }
537
-
538
- return oResult;
539
- };
540
-
541
- const _setBrowser = () => {
542
- Device.browser = _getBrowser();
543
- Device.browser.BROWSER = BROWSER;
544
-
545
- if (Device.browser.name) {
546
- Object.keys(BROWSER).forEach(b => {
547
- if (BROWSER[b] === Device.browser.name) {
548
- Device.browser[b.toLowerCase()] = true;
549
- }
550
- });
551
- }
552
- };
553
-
554
- const getBrowser = () => {
555
- if (!Device.browser) {
556
- _setBrowser();
557
- }
558
- return Device.browser;
559
- };
560
-
561
- const isIE = () => {
562
- if (!Device.browser) {
563
- _setBrowser();
564
- }
565
- return !!Device.browser.msie;
566
- };
567
-
568
- const isEdge = () => {
569
- if (!Device.browser) {
570
- _setBrowser();
571
- }
572
- return !!Device.browser.edge;
573
- };
574
-
575
- const isChrome = () => {
576
- if (!Device.browser) {
577
- _setBrowser();
578
- }
579
- return !!Device.browser.chrome;
580
- };
581
-
582
- const isFF = () => {
583
- if (!Device.browser) {
584
- _setBrowser();
585
- }
586
- return !!Device.browser.firefox;
587
- };
588
-
589
- const isSafari = () => {
590
- if (!Device.browser) {
591
- _setBrowser();
592
- }
593
- return !!Device.browser.safari;
594
- };
595
-
596
- //* ******* Support Detection ********
597
-
598
- const _setSupport = () => {
599
- if (Device.support) {
600
- return;
601
- }
602
-
603
- if (!Device.browser) {
604
- _setBrowser();
605
- }
606
-
607
- Device.support = {};
608
- Device.support.touch = !!(("ontouchstart" in window) || (navigator.maxTouchPoints > 0) || (window.DocumentTouch && document instanceof window.DocumentTouch));
609
- };
610
-
611
- const supportTouch = () => {
612
- if (!Device.support) {
613
- _setSupport();
614
- }
615
-
616
- return !!Device.support.touch;
617
- };
618
-
619
- //* ******* System Detection ********
620
-
621
- /**
622
- * Provides a basic categorization of the used device based on various indicators.
623
- *
624
- * <b>Note:</b> Depending on the capabilities of the device it is also possible that multiple flags are set to <code>true</code>.
625
- *
626
- * @namespace
627
- * @name Device.system
628
- */
629
-
630
- /**
631
- * If this flag is set to <code>true</code>, the device is recognized as a tablet.
632
- *
633
- * <b>Note:</b> This flag is also true for some browsers on desktop devices running on Windows 8 or higher.
634
- * Also see the documentation for {@link Device.system.combi} devices.
635
- * You can use the following logic to ensure that the current device is a tablet device:
636
- *
637
- * <pre>
638
- * if(Device.system.tablet && !Device.system.desktop){
639
- * ...tablet related commands...
640
- * }
641
- * </pre>
642
- *
643
- * @name Device.system.tablet
644
- * @type boolean
645
- */
646
-
647
- /**
648
- * If this flag is set to <code>true</code>, the device is recognized as a phone.
649
- *
650
- * @name Device.system.phone
651
- * @type boolean
652
- */
653
-
654
- /**
655
- * If this flag is set to <code>true</code>, the device is recognized as a desktop system.
656
- *
657
- * @name Device.system.desktop
658
- * @type boolean
659
- */
660
-
661
- /**
662
- * Indicates if the device is recognized as a combination of a desktop system and tablet.
663
- *
664
- * <b>Note:</b> This property is mainly for Microsoft Windows 8 (and following) devices where the mouse and touch event may be supported
665
- * natively by the browser being used. This property is set to <code>true</code> only when both mouse and touch event are natively supported.
666
- *
667
- * @name Device.system.combi
668
- * @type boolean
669
- */
670
-
671
- /**
672
- * @name Device.system.SYSTEMTYPE
673
- * Enumeration containing the names of known types of the devices.
674
- */
675
-
676
- const SYSTEMTYPE = {
677
- "TABLET": "tablet",
678
- "PHONE": "phone",
679
- "DESKTOP": "desktop",
680
- "COMBI": "combi",
681
- };
682
-
683
- const _isTablet = () => {
684
- const sUserAgent = navigator.userAgent;
685
- if (Device.os.name === Device.os.OS.IOS) {
686
- return /ipad/i.test(sUserAgent);
687
- }
688
- // in real mobile device
689
- if (supportTouch()) {
690
- if (Device.os.windows && Device.os.version >= 8) {
691
- return true;
692
- }
693
-
694
- if (Device.browser.chrome && Device.os.android && Device.os.version >= 4.4) {
695
- // From Android version 4.4, WebView also uses Chrome as Kernel.
696
- // We can use the user agent pattern defined in Chrome to do phone/tablet detection
697
- // According to the information here: https://developer.chrome.com/multidevice/user-agent#chrome_for_android_user_agent,
698
- // the existence of "Mobile" indicates it's a phone. But because the crosswalk framework which is used in Fiori Client
699
- // inserts another "Mobile" to the user agent for both tablet and phone, we need to check whether "Mobile Safari/<Webkit Rev>" exists.
700
- return !/Mobile Safari\/[.0-9]+/.test(sUserAgent);
701
- }
702
- let densityFactor = window.devicePixelRatio ? window.devicePixelRatio : 1; // may be undefined in Windows Phone devices
703
- // On Android sometimes window.screen.width returns the logical CSS pixels, sometimes the physical device pixels;
704
- // Tests on multiple devices suggest this depends on the Webkit version.
705
- // The Webkit patch which changed the behavior was done here: https://bugs.webkit.org/show_bug.cgi?id=106460
706
- // Chrome 27 with Webkit 537.36 returns the logical pixels,
707
- // Chrome 18 with Webkit 535.19 returns the physical pixels.
708
- // The BlackBerry 10 browser with Webkit 537.10+ returns the physical pixels.
709
- // So it appears like somewhere above Webkit 537.10 we do not hve to divide by the devicePixelRatio anymore.
710
- if (Device.os.android && Device.browser.webkit && (parseFloat(Device.browser.webkitVersion) > 537.10)) {
711
- densityFactor = 1;
712
- }
713
-
714
- // this is how android distinguishes between tablet and phone
715
- // http://android-developers.blogspot.de/2011/07/new-tools-for-managing-screen-sizes.html
716
- const bTablet = (Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600);
717
-
718
- // special workaround for Nexus 7 where the window.screen.width is 600px or 601px in portrait mode (=> tablet)
719
- // but window.screen.height 552px in landscape mode (=> phone), because the browser UI takes some space on top.
720
- // So the detected device type depends on the orientation :-(
721
- // actually this is a Chrome bug, as "width"/"height" should return the entire screen's dimensions and
722
- // "availWidth"/"availHeight" should return the size available after subtracting the browser UI
723
-
724
- /*
725
- if (isLandscape() &&
726
- (window.screen.height === 552 || window.screen.height === 553) // old/new Nexus 7
727
- &&
728
- (/Nexus 7/i.test(sUserAgent))) {
729
- bTablet = true;
730
- }
731
- */
732
-
733
- return bTablet;
734
- }
735
- // This simple android phone detection can be used here because this is the mobile emulation mode in desktop browser
736
- const bAndroidPhone = (/(?=android)(?=.*mobile)/i.test(sUserAgent));
737
- // in desktop browser, it's detected as tablet when
738
- // 1. Windows 8 device with a touch screen where "Touch" is contained in the userAgent
739
- // 2. Android emulation and it's not an Android phone
740
- return (Device.browser.msie && sUserAgent.indexOf("Touch") !== -1) || (Device.os.android && !bAndroidPhone);
741
- };
742
-
743
- const _getSystem = () => {
744
- const bTabletDetected = _isTablet();
745
- const isWin8Upwards = Device.os.windows && Device.os.version >= 8;
746
-
747
- const oSystem = {};
748
- oSystem.tablet = !!((Device.support.touch || isWin8Upwards) && bTabletDetected);
749
- oSystem.phone = !!((Device.os.windows_phone || (Device.support.touch)) && !bTabletDetected);
750
- oSystem.desktop = !!((!oSystem.tablet && !oSystem.phone) || isWin8Upwards);
751
- oSystem.combi = oSystem.desktop && oSystem.tablet;
752
- oSystem.SYSTEMTYPE = SYSTEMTYPE;
753
-
754
- return oSystem;
755
- };
756
-
757
- const _setSystem = () => {
758
- _setSupport();
759
- _setOS();
760
-
761
- Device.system = {};
762
- Device.system = _getSystem();
763
- if (Device.system.tablet || Device.system.phone) {
764
- Device.browser.mobile = true;
765
- }
1
+ const isSSR = typeof document === "undefined";
2
+ const internals = {
3
+ get userAgent() {
4
+ if (isSSR) {
5
+ return "";
6
+ }
7
+ return navigator.userAgent;
8
+ },
9
+ get touch() {
10
+ if (isSSR) {
11
+ return false;
12
+ }
13
+ return "ontouchstart" in window || navigator.maxTouchPoints > 0;
14
+ },
15
+ get ie() {
16
+ if (isSSR) {
17
+ return false;
18
+ }
19
+ return /(msie|trident)/i.test(internals.userAgent);
20
+ },
21
+ get chrome() {
22
+ if (isSSR) {
23
+ return false;
24
+ }
25
+ return !internals.ie && /(Chrome|CriOS)/.test(internals.userAgent);
26
+ },
27
+ get firefox() {
28
+ if (isSSR) {
29
+ return false;
30
+ }
31
+ return /Firefox/.test(internals.userAgent);
32
+ },
33
+ get safari() {
34
+ if (isSSR) {
35
+ return false;
36
+ }
37
+ return !internals.ie && !internals.chrome && /(Version|PhantomJS)\/(\d+\.\d+).*Safari/.test(internals.userAgent);
38
+ },
39
+ get webkit() {
40
+ if (isSSR) {
41
+ return false;
42
+ }
43
+ return !internals.ie && /webkit/.test(internals.userAgent);
44
+ },
45
+ get windows() {
46
+ if (isSSR) {
47
+ return false;
48
+ }
49
+ return navigator.platform.indexOf("Win") !== -1;
50
+ },
51
+ get iOS() {
52
+ if (isSSR) {
53
+ return false;
54
+ }
55
+ return !!(navigator.platform.match(/iPhone|iPad|iPod/)) || !!(internals.userAgent.match(/Mac/) && "ontouchend" in document);
56
+ },
57
+ get android() {
58
+ if (isSSR) {
59
+ return false;
60
+ }
61
+ return !internals.windows && /Android/.test(internals.userAgent);
62
+ },
63
+ get androidPhone() {
64
+ if (isSSR) {
65
+ return false;
66
+ }
67
+ return internals.android && /(?=android)(?=.*mobile)/i.test(internals.userAgent);
68
+ },
69
+ get ipad() {
70
+ if (isSSR) {
71
+ return false;
72
+ }
73
+ // With iOS 13 the string 'iPad' was removed from the user agent string through a browser setting, which is applied on all sites by default:
74
+ // "Request Desktop Website -> All websites" (for more infos see: https://forums.developer.apple.com/thread/119186).
75
+ // Therefore the OS is detected as MACINTOSH instead of iOS and the device is a tablet if the Device.support.touch is true.
76
+ return /ipad/i.test(internals.userAgent) || (/Macintosh/i.test(internals.userAgent) && "ontouchend" in document);
77
+ },
78
+ };
79
+ let windowsVersion;
80
+ let webkitVersion;
81
+ let tablet;
82
+ const isWindows8OrAbove = () => {
83
+ if (isSSR) {
84
+ return false;
85
+ }
86
+ if (!internals.windows) {
87
+ return false;
88
+ }
89
+ if (windowsVersion === undefined) {
90
+ const matches = internals.userAgent.match(/Windows NT (\d+).(\d)/);
91
+ windowsVersion = matches ? parseFloat(matches[1]) : 0;
92
+ }
93
+ return windowsVersion >= 8;
94
+ };
95
+ const isWebkit537OrAbove = () => {
96
+ if (isSSR) {
97
+ return false;
98
+ }
99
+ if (!internals.webkit) {
100
+ return false;
101
+ }
102
+ if (webkitVersion === undefined) {
103
+ const matches = internals.userAgent.match(/(webkit)[ /]([\w.]+)/);
104
+ webkitVersion = matches ? parseFloat(matches[1]) : 0;
105
+ }
106
+ return webkitVersion >= 537.10;
107
+ };
108
+ const detectTablet = () => {
109
+ if (isSSR) {
110
+ return false;
111
+ }
112
+ if (tablet !== undefined) {
113
+ return;
114
+ }
115
+ if (internals.ipad) {
116
+ tablet = true;
117
+ return;
118
+ }
119
+ if (internals.touch) {
120
+ if (isWindows8OrAbove()) {
121
+ tablet = true;
122
+ return;
123
+ }
124
+ if (internals.chrome && internals.android) {
125
+ tablet = !/Mobile Safari\/[.0-9]+/.test(internals.userAgent);
126
+ return;
127
+ }
128
+ let densityFactor = window.devicePixelRatio ? window.devicePixelRatio : 1; // may be undefined in Windows Phone devices
129
+ if (internals.android && isWebkit537OrAbove()) {
130
+ densityFactor = 1;
131
+ }
132
+ tablet = (Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600);
133
+ return;
134
+ }
135
+ tablet = (internals.ie && internals.userAgent.indexOf("Touch") !== -1) || (internals.android && !internals.androidPhone);
136
+ };
137
+ const supportsTouch = () => internals.touch;
138
+ const isIE = () => internals.ie;
139
+ const isSafari = () => internals.safari;
140
+ const isChrome = () => internals.chrome;
141
+ const isFirefox = () => internals.firefox;
142
+ const isTablet = () => {
143
+ detectTablet();
144
+ return (internals.touch || isWindows8OrAbove()) && tablet;
766
145
  };
767
-
768
- const getSystem = () => {
769
- if (!Device.system) {
770
- _setSystem();
771
- }
772
-
773
- return Device.system;
146
+ const isPhone = () => {
147
+ detectTablet();
148
+ return internals.touch && !tablet;
774
149
  };
775
-
776
150
  const isDesktop = () => {
777
- if (!Device.system) {
778
- _setSystem();
779
- }
780
-
781
- return Device.system.desktop;
151
+ if (isSSR) {
152
+ return false;
153
+ }
154
+ return (!isTablet() && !isPhone()) || isWindows8OrAbove();
782
155
  };
783
-
784
- const isTablet = () => {
785
- if (!Device.system) {
786
- _setSystem();
787
- }
788
-
789
- return Device.system.tablet;
156
+ const isCombi = () => {
157
+ return isTablet() && isDesktop();
790
158
  };
791
-
792
- const isPhone = () => {
793
- if (!Device.system) {
794
- _setSystem();
795
- }
796
-
797
- return Device.system.phone;
798
- };
799
-
800
- const isMobile = () => {
801
- if (!Device.system) {
802
- _setSystem();
803
- }
804
-
805
- return Device.browser.mobile;
159
+ const isIOS = () => {
160
+ return internals.iOS;
806
161
  };
807
-
808
- export {
809
- isIE,
810
- isEdge,
811
- isChrome,
812
- isFF,
813
- isSafari,
814
- isMobile,
815
- isDesktop,
816
- isTablet,
817
- isPhone,
818
- isAndroid,
819
- getOS,
820
- getSystem,
821
- getBrowser,
822
- supportTouch,
162
+ const isAndroid = () => {
163
+ return internals.android || internals.androidPhone;
823
164
  };
165
+ export { supportsTouch, isIE, isSafari, isChrome, isFirefox, isPhone, isTablet, isDesktop, isCombi, isIOS, isAndroid, };
166
+ //# sourceMappingURL=Device.js.map