@ui5/webcomponents-base 0.0.0-c6155714e → 0.0.0-c638668a1

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 (476) hide show
  1. package/.eslintignore +5 -0
  2. package/CHANGELOG.md +293 -0
  3. package/README.md +26 -2
  4. package/bundle.esm.js +18 -16
  5. package/dist/AssetRegistry.js +8 -6
  6. package/dist/Boot.js +61 -0
  7. package/dist/CSP.js +59 -0
  8. package/dist/CustomElementsRegistry.js +95 -0
  9. package/dist/CustomElementsScope.js +108 -0
  10. package/dist/DOMObserver.js +65 -0
  11. package/dist/Device.js +69 -776
  12. package/dist/EventProvider.js +38 -26
  13. package/dist/FeaturesRegistry.js +4 -1
  14. package/dist/FontFace.js +20 -56
  15. package/dist/InitialConfiguration.js +61 -21
  16. package/dist/Keys.js +271 -0
  17. package/dist/ManagedStyles.js +83 -0
  18. package/dist/MediaRange.js +109 -0
  19. package/dist/PropertiesFileFormat.js +95 -0
  20. package/dist/Render.js +175 -0
  21. package/dist/RenderQueue.js +41 -17
  22. package/dist/RenderScheduler.js +24 -140
  23. package/dist/Runtimes.js +107 -0
  24. package/dist/StaticArea.js +3 -0
  25. package/dist/StaticAreaItem.js +101 -0
  26. package/dist/SystemCSSVars.js +10 -0
  27. package/dist/Theming.js +3 -44
  28. package/dist/UI5Element.js +503 -314
  29. package/dist/UI5ElementMetadata.js +194 -23
  30. package/dist/asset-registries/Icons.js +129 -14
  31. package/dist/asset-registries/Illustrations.js +30 -0
  32. package/dist/asset-registries/LocaleData.js +108 -50
  33. package/dist/asset-registries/Themes.js +35 -32
  34. package/dist/asset-registries/i18n.js +80 -34
  35. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  36. package/dist/config/AnimationMode.js +16 -2
  37. package/dist/config/CalendarType.js +7 -7
  38. package/dist/config/FormatSettings.js +5 -1
  39. package/dist/config/Language.js +62 -3
  40. package/dist/config/NoConflict.js +10 -3
  41. package/dist/config/Theme.js +21 -3
  42. package/dist/css/FontFace.css +45 -0
  43. package/dist/css/OverrideFontFace.css +32 -0
  44. package/dist/css/SystemCSSVars.css +17 -0
  45. package/dist/delegate/ItemNavigation.js +246 -130
  46. package/dist/delegate/ResizeHandler.js +78 -38
  47. package/dist/delegate/ScrollEnablement.js +122 -14
  48. package/dist/features/F6Navigation.js +106 -0
  49. package/dist/features/OpenUI5Support.js +125 -0
  50. package/dist/generated/AssetParameters.js +13 -0
  51. package/dist/generated/VersionInfo.js +10 -0
  52. package/dist/generated/css/FontFace.css.js +5 -0
  53. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  54. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  55. package/dist/getSharedResource.js +30 -0
  56. package/dist/i18nBundle.js +62 -11
  57. package/dist/isLegacyBrowser.js +3 -0
  58. package/dist/{Locale.js → locale/Locale.js} +0 -10
  59. package/dist/locale/RTLAwareRegistry.js +14 -0
  60. package/dist/locale/applyDirection.js +17 -0
  61. package/dist/locale/directionChange.js +32 -0
  62. package/dist/locale/getEffectiveDir.js +28 -0
  63. package/dist/locale/getLocale.js +41 -0
  64. package/dist/locale/languageChange.js +22 -0
  65. package/dist/locale/nextFallbackLocale.js +28 -0
  66. package/{src/util → dist/locale}/normalizeLocale.js +8 -31
  67. package/dist/renderer/LitRenderer.js +26 -7
  68. package/dist/renderer/directives/style-map.js +72 -0
  69. package/dist/renderer/executeTemplate.js +17 -0
  70. package/dist/resources/bundle.esm.js +20 -106
  71. package/dist/resources/bundle.esm.js.map +1 -1
  72. package/dist/sap/base/Log.js +241 -0
  73. package/dist/sap/base/assert.js +8 -0
  74. package/dist/sap/base/security/URLListValidator.js +148 -0
  75. package/dist/sap/base/security/encodeCSS.js +14 -0
  76. package/dist/sap/base/security/encodeXML.js +23 -0
  77. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  78. package/dist/sap/base/strings/toHex.js +8 -0
  79. package/dist/sap/base/util/now.js +7 -0
  80. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  81. package/dist/test-resources/assets/Themes.js +11 -5
  82. package/dist/test-resources/elements/Generic.js +1 -0
  83. package/dist/test-resources/elements/Parent.js +7 -2
  84. package/dist/test-resources/elements/WithStaticArea.js +77 -0
  85. package/dist/test-resources/pages/AllTestElements.html +5 -5
  86. package/dist/test-resources/pages/Configuration.html +0 -2
  87. package/dist/test-resources/pages/ConfigurationScript.html +1 -4
  88. package/dist/test-resources/pages/assets/messagebundle_de.properties +1 -0
  89. package/dist/test-resources/pages/assets/messagebundle_en.properties +1 -0
  90. package/dist/test-resources/pages/assets/messagebundle_es.properties +1 -0
  91. package/dist/test-resources/pages/assets/messagebundle_fr.properties +1 -0
  92. package/dist/test-resources/pages/i18n.html +33 -0
  93. package/dist/test-resources/specs/ConfigurationChange.spec.js +10 -17
  94. package/dist/test-resources/specs/ConfigurationScript.spec.js +25 -31
  95. package/dist/test-resources/specs/ConfigurationURL.spec.js +65 -25
  96. package/dist/test-resources/specs/CustomTheme.spec.js +9 -7
  97. package/dist/test-resources/specs/EventProvider.spec.js +63 -0
  98. package/dist/test-resources/specs/StaticArea.spec.js +78 -0
  99. package/dist/test-resources/specs/Theming.spec.js +12 -10
  100. package/dist/test-resources/specs/UI5ElementInvalidation.js +54 -70
  101. package/dist/test-resources/specs/UI5ElementLifecycle.js +19 -14
  102. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +25 -51
  103. package/dist/test-resources/specs/UI5ElementMetadataExt.js +9 -7
  104. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +7 -5
  105. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +37 -35
  106. package/dist/test-resources/specs/UI5ElementShadowDOM.js +10 -8
  107. package/dist/test-resources/specs/UI5ElementSlots.js +10 -8
  108. package/dist/theming/CustomStyle.js +47 -6
  109. package/dist/theming/ThemeLoaded.js +22 -0
  110. package/dist/theming/applyTheme.js +79 -0
  111. package/dist/theming/getConstructableStyle.js +30 -0
  112. package/dist/theming/getEffectiveLinksHrefs.js +20 -0
  113. package/dist/theming/getEffectiveStyle.js +30 -0
  114. package/dist/theming/getStylesString.js +15 -0
  115. package/dist/theming/getThemeDesignerTheme.js +87 -0
  116. package/dist/theming/preloadLinks.js +23 -0
  117. package/dist/thirdparty/_merge.js +32 -0
  118. package/dist/thirdparty/isPlainObject.js +18 -0
  119. package/dist/thirdparty/merge.js +10 -0
  120. package/dist/types/CSSColor.js +9 -0
  121. package/dist/{dates → types}/CalendarType.js +2 -2
  122. package/dist/types/DataType.js +13 -1
  123. package/dist/types/Float.js +14 -0
  124. package/dist/types/Integer.js +4 -0
  125. package/dist/types/InvisibleMessageMode.js +30 -0
  126. package/dist/types/ItemNavigationBehavior.js +2 -7
  127. package/dist/types/NavigationMode.js +1 -0
  128. package/dist/types/PopupState.js +1 -1
  129. package/dist/types/ValueState.js +2 -1
  130. package/dist/updateShadowRoot.js +30 -0
  131. package/dist/util/AriaLabelHelper.js +41 -0
  132. package/dist/util/Caret.js +45 -0
  133. package/dist/util/ColorConversion.js +370 -0
  134. package/dist/util/FocusableElements.js +30 -11
  135. package/dist/util/HTMLSanitizer.js +7 -0
  136. package/dist/util/InvisibleMessage.js +58 -0
  137. package/dist/util/PopupUtils.js +93 -0
  138. package/dist/util/SlotsHelper.js +43 -0
  139. package/dist/util/StringHelper.js +17 -2
  140. package/dist/util/TabbableElements.js +5 -2
  141. package/dist/util/arraysAreEqual.js +15 -0
  142. package/dist/util/clamp.js +12 -0
  143. package/dist/util/createLinkInHead.js +19 -0
  144. package/dist/util/debounce.js +17 -0
  145. package/dist/util/detectNavigatorLanguage.js +3 -1
  146. package/dist/util/escapeRegex.js +10 -0
  147. package/dist/util/findNodeOwner.js +35 -0
  148. package/dist/util/generateHighlightedMarkup.js +42 -0
  149. package/dist/util/getActiveElement.js +11 -0
  150. package/dist/util/getClassCopy.js +10 -0
  151. package/dist/util/getEffectiveContentDensity.js +5 -0
  152. package/dist/util/getFileExtension.js +21 -0
  153. package/dist/util/getSingletonElementInstance.js +13 -0
  154. package/dist/util/isElementInView.js +15 -0
  155. package/dist/util/isNodeHidden.js +1 -5
  156. package/dist/util/isNodeTabbable.js +4 -4
  157. package/dist/util/isValidPropertyName.js +11 -2
  158. package/dist/util/setToArray.js +10 -0
  159. package/hash.txt +1 -0
  160. package/index.js +1 -1
  161. package/lib/generate-asset-parameters/index.js +21 -0
  162. package/lib/generate-styles/index.js +18 -0
  163. package/lib/generate-version-info/index.js +27 -0
  164. package/package-scripts.js +43 -18
  165. package/package.json +21 -14
  166. package/src/AssetRegistry.js +8 -6
  167. package/src/Boot.js +61 -0
  168. package/src/CSP.js +59 -0
  169. package/src/CustomElementsRegistry.js +95 -0
  170. package/src/CustomElementsScope.js +108 -0
  171. package/src/DOMObserver.js +65 -0
  172. package/src/Device.js +69 -776
  173. package/src/EventProvider.js +38 -26
  174. package/src/FeaturesRegistry.js +4 -1
  175. package/src/FontFace.js +20 -56
  176. package/src/InitialConfiguration.js +61 -21
  177. package/src/Keys.js +271 -0
  178. package/src/ManagedStyles.js +83 -0
  179. package/src/MediaRange.js +109 -0
  180. package/src/PropertiesFileFormat.js +95 -0
  181. package/src/Render.js +175 -0
  182. package/src/RenderQueue.js +41 -17
  183. package/src/RenderScheduler.js +24 -140
  184. package/src/Runtimes.js +107 -0
  185. package/src/StaticArea.js +3 -0
  186. package/src/StaticAreaItem.js +101 -0
  187. package/src/SystemCSSVars.js +10 -0
  188. package/src/Theming.js +3 -44
  189. package/src/UI5Element.js +503 -314
  190. package/src/UI5ElementMetadata.js +194 -23
  191. package/src/asset-registries/Icons.js +129 -14
  192. package/src/asset-registries/Illustrations.js +30 -0
  193. package/src/asset-registries/LocaleData.js +108 -50
  194. package/src/asset-registries/Themes.js +35 -32
  195. package/src/asset-registries/i18n.js +80 -34
  196. package/src/assets-meta/IconCollectionsAlias.js +18 -0
  197. package/src/config/AnimationMode.js +16 -2
  198. package/src/config/CalendarType.js +7 -7
  199. package/src/config/FormatSettings.js +5 -1
  200. package/src/config/Language.js +62 -3
  201. package/src/config/NoConflict.js +10 -3
  202. package/src/config/Theme.js +21 -3
  203. package/src/css/FontFace.css +45 -0
  204. package/src/css/OverrideFontFace.css +32 -0
  205. package/src/css/SystemCSSVars.css +17 -0
  206. package/src/delegate/ItemNavigation.js +246 -129
  207. package/src/delegate/ResizeHandler.js +78 -38
  208. package/src/delegate/ScrollEnablement.js +122 -14
  209. package/src/features/F6Navigation.js +106 -0
  210. package/src/features/OpenUI5Support.js +125 -0
  211. package/src/getSharedResource.js +30 -0
  212. package/src/i18nBundle.js +62 -11
  213. package/src/isLegacyBrowser.js +3 -0
  214. package/src/{Locale.js → locale/Locale.js} +0 -10
  215. package/src/locale/RTLAwareRegistry.js +14 -0
  216. package/src/locale/applyDirection.js +17 -0
  217. package/src/locale/directionChange.js +32 -0
  218. package/src/locale/getEffectiveDir.js +28 -0
  219. package/src/locale/getLocale.js +41 -0
  220. package/src/locale/languageChange.js +22 -0
  221. package/src/locale/nextFallbackLocale.js +28 -0
  222. package/{dist/util → src/locale}/normalizeLocale.js +8 -31
  223. package/src/renderer/LitRenderer.js +26 -7
  224. package/src/renderer/directives/style-map.js +72 -0
  225. package/src/renderer/executeTemplate.js +17 -0
  226. package/src/theming/CustomStyle.js +47 -6
  227. package/src/theming/ThemeLoaded.js +22 -0
  228. package/src/theming/applyTheme.js +79 -0
  229. package/src/theming/getConstructableStyle.js +30 -0
  230. package/src/theming/getEffectiveLinksHrefs.js +20 -0
  231. package/src/theming/getEffectiveStyle.js +30 -0
  232. package/src/theming/getStylesString.js +15 -0
  233. package/src/theming/getThemeDesignerTheme.js +87 -0
  234. package/src/theming/preloadLinks.js +23 -0
  235. package/src/thirdparty/_merge.js +32 -0
  236. package/src/thirdparty/isPlainObject.js +18 -0
  237. package/src/thirdparty/merge.js +10 -0
  238. package/src/types/CSSColor.js +9 -0
  239. package/src/{dates → types}/CalendarType.js +2 -2
  240. package/src/types/DataType.js +13 -1
  241. package/src/types/Float.js +14 -0
  242. package/src/types/Integer.js +4 -0
  243. package/src/types/InvisibleMessageMode.js +30 -0
  244. package/src/types/ItemNavigationBehavior.js +2 -7
  245. package/src/types/NavigationMode.js +1 -0
  246. package/src/types/PopupState.js +1 -1
  247. package/src/types/ValueState.js +2 -1
  248. package/src/updateShadowRoot.js +30 -0
  249. package/src/util/AriaLabelHelper.js +41 -0
  250. package/src/util/Caret.js +45 -0
  251. package/src/util/ColorConversion.js +370 -0
  252. package/src/util/FocusableElements.js +30 -11
  253. package/src/util/HTMLSanitizer.js +7 -0
  254. package/src/util/InvisibleMessage.js +58 -0
  255. package/src/util/PopupUtils.js +93 -0
  256. package/src/util/SlotsHelper.js +43 -0
  257. package/src/util/StringHelper.js +17 -2
  258. package/src/util/TabbableElements.js +5 -2
  259. package/src/util/arraysAreEqual.js +15 -0
  260. package/src/util/clamp.js +12 -0
  261. package/src/util/createLinkInHead.js +19 -0
  262. package/src/util/debounce.js +17 -0
  263. package/src/util/detectNavigatorLanguage.js +3 -1
  264. package/src/util/escapeRegex.js +10 -0
  265. package/src/util/findNodeOwner.js +35 -0
  266. package/src/util/generateHighlightedMarkup.js +42 -0
  267. package/src/util/getActiveElement.js +11 -0
  268. package/src/util/getClassCopy.js +10 -0
  269. package/src/util/getEffectiveContentDensity.js +5 -0
  270. package/src/util/getFileExtension.js +21 -0
  271. package/src/util/getSingletonElementInstance.js +13 -0
  272. package/src/util/isElementInView.js +15 -0
  273. package/src/util/isNodeHidden.js +1 -5
  274. package/src/util/isNodeTabbable.js +4 -4
  275. package/src/util/isValidPropertyName.js +11 -2
  276. package/src/util/setToArray.js +10 -0
  277. package/used-modules.txt +10 -0
  278. package/bundle.es5.js +0 -31
  279. package/dist/Assets.js +0 -2
  280. package/dist/CSS.js +0 -48
  281. package/dist/ContentDensity.js +0 -20
  282. package/dist/FormatSettings.js +0 -31
  283. package/dist/LocaleProvider.js +0 -34
  284. package/dist/ResourceLoaderOverrides.js +0 -38
  285. package/dist/SVGIconRegistry.js +0 -54
  286. package/dist/boot.js +0 -28
  287. package/dist/cldr/en.js +0 -4788
  288. package/dist/compatibility/DOMObserver.js +0 -62
  289. package/dist/compatibility/patchNodeValue.js +0 -24
  290. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  291. package/dist/config/CompactSize.js +0 -23
  292. package/dist/dates/CalendarDate.js +0 -203
  293. package/dist/dates/CalendarDatesRegistry.js +0 -17
  294. package/dist/dates/CalendarUtils.js +0 -99
  295. package/dist/delegate/CustomResize.js +0 -78
  296. package/dist/delegate/NativeResize.js +0 -44
  297. package/dist/events/EventEnrichment.js +0 -38
  298. package/dist/events/PseudoEvents.js +0 -58
  299. package/dist/features/browsersupport/Edge.js +0 -6
  300. package/dist/features/browsersupport/IE11.js +0 -41
  301. package/dist/features/calendar/Buddhist.js +0 -1
  302. package/dist/features/calendar/Islamic.js +0 -1
  303. package/dist/features/calendar/Japanese.js +0 -1
  304. package/dist/features/calendar/Persian.js +0 -1
  305. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  306. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  307. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  308. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  309. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  310. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  311. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  312. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  313. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  314. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  315. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  316. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  317. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  318. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  319. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  320. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  321. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  322. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  323. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  324. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  325. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  326. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  327. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  328. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  329. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  330. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  331. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  332. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  333. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  334. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  335. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  336. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  337. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  338. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  339. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  340. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  341. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  342. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  343. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  344. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  345. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  346. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  347. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  348. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  349. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  350. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  351. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  352. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  353. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  354. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  355. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  356. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  357. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  358. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  359. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  360. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  361. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  362. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  363. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  364. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  365. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  366. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  367. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  368. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  369. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  370. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  371. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  372. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  373. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  374. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  375. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  376. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  377. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  378. package/dist/json-imports/LocaleData.js +0 -171
  379. package/dist/renderer/ifDefined.js +0 -21
  380. package/dist/resources/bundle.es5.js +0 -212
  381. package/dist/resources/bundle.es5.js.map +0 -1
  382. package/dist/shims/Core-shim.js +0 -52
  383. package/dist/shims/jquery-shim.js +0 -89
  384. package/dist/test-resources/elements/DensityAware.js +0 -14
  385. package/dist/test-resources/specs/UI5ElementDensityAware.spec.js +0 -51
  386. package/dist/theming/StyleInjection.js +0 -67
  387. package/dist/theming/ThemeBundle.js +0 -29
  388. package/dist/thirdparty/Array.from.js +0 -16
  389. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  390. package/dist/thirdparty/Array.prototype.find.js +0 -46
  391. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  392. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  393. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  394. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  395. package/dist/thirdparty/Number.isInteger.js +0 -5
  396. package/dist/thirdparty/Number.isNaN.js +0 -1
  397. package/dist/thirdparty/Number.parseInt.js +0 -1
  398. package/dist/thirdparty/Object.assign.js +0 -31
  399. package/dist/thirdparty/Object.entries.js +0 -11
  400. package/dist/thirdparty/Symbol.js +0 -2
  401. package/dist/thirdparty/WeakSet.js +0 -27
  402. package/dist/thirdparty/events-polyfills.js +0 -89
  403. package/dist/thirdparty/fetch.js +0 -1
  404. package/dist/thirdparty/template.js +0 -600
  405. package/dist/util/CSSTransformUtils.js +0 -90
  406. package/dist/webcomponentsjs/LICENSE.md +0 -19
  407. package/dist/webcomponentsjs/README.md +0 -229
  408. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  409. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  410. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  411. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  412. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  413. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  414. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  415. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  416. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  417. package/dist/webcomponentsjs/package.json +0 -46
  418. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  419. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  420. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  421. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  422. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  423. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  424. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  425. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  426. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  427. package/src/Assets.js +0 -2
  428. package/src/CSS.js +0 -48
  429. package/src/ContentDensity.js +0 -20
  430. package/src/FormatSettings.js +0 -31
  431. package/src/LocaleProvider.js +0 -34
  432. package/src/ResourceLoaderOverrides.js +0 -38
  433. package/src/SVGIconRegistry.js +0 -54
  434. package/src/boot.js +0 -28
  435. package/src/cldr/en.js +0 -4788
  436. package/src/compatibility/DOMObserver.js +0 -62
  437. package/src/compatibility/patchNodeValue.js +0 -24
  438. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  439. package/src/config/CompactSize.js +0 -23
  440. package/src/dates/CalendarDate.js +0 -203
  441. package/src/dates/CalendarDatesRegistry.js +0 -17
  442. package/src/dates/CalendarUtils.js +0 -99
  443. package/src/delegate/CustomResize.js +0 -78
  444. package/src/delegate/NativeResize.js +0 -44
  445. package/src/events/EventEnrichment.js +0 -38
  446. package/src/events/PseudoEvents.js +0 -58
  447. package/src/features/browsersupport/Edge.js +0 -6
  448. package/src/features/browsersupport/IE11.js +0 -41
  449. package/src/features/calendar/Buddhist.js +0 -1
  450. package/src/features/calendar/Islamic.js +0 -1
  451. package/src/features/calendar/Japanese.js +0 -1
  452. package/src/features/calendar/Persian.js +0 -1
  453. package/src/json-imports/LocaleData.js +0 -171
  454. package/src/renderer/ifDefined.js +0 -21
  455. package/src/shims/Core-shim.js +0 -52
  456. package/src/shims/jquery-shim.js +0 -89
  457. package/src/theming/StyleInjection.js +0 -67
  458. package/src/theming/ThemeBundle.js +0 -29
  459. package/src/thirdparty/Array.from.js +0 -16
  460. package/src/thirdparty/Array.prototype.fill.js +0 -44
  461. package/src/thirdparty/Array.prototype.find.js +0 -46
  462. package/src/thirdparty/Array.prototype.includes.js +0 -51
  463. package/src/thirdparty/Element.prototype.closest.js +0 -11
  464. package/src/thirdparty/Element.prototype.matches.js +0 -6
  465. package/src/thirdparty/Map.prototype.keys.js +0 -9
  466. package/src/thirdparty/Number.isInteger.js +0 -5
  467. package/src/thirdparty/Number.isNaN.js +0 -1
  468. package/src/thirdparty/Number.parseInt.js +0 -1
  469. package/src/thirdparty/Object.assign.js +0 -31
  470. package/src/thirdparty/Object.entries.js +0 -11
  471. package/src/thirdparty/Symbol.js +0 -2
  472. package/src/thirdparty/WeakSet.js +0 -27
  473. package/src/thirdparty/events-polyfills.js +0 -89
  474. package/src/thirdparty/fetch.js +0 -1
  475. package/src/thirdparty/template.js +0 -600
  476. package/src/util/CSSTransformUtils.js +0 -90
@@ -1,72 +1,84 @@
1
1
  class EventProvider {
2
2
  constructor() {
3
- this._eventRegistry = {};
3
+ this._eventRegistry = new Map();
4
4
  }
5
5
 
6
6
  attachEvent(eventName, fnFunction) {
7
7
  const eventRegistry = this._eventRegistry;
8
- let eventListeners = eventRegistry[eventName];
8
+ const eventListeners = eventRegistry.get(eventName);
9
9
 
10
10
  if (!Array.isArray(eventListeners)) {
11
- eventRegistry[eventName] = [];
12
- eventListeners = eventRegistry[eventName];
11
+ eventRegistry.set(eventName, [fnFunction]);
12
+ return;
13
13
  }
14
14
 
15
- eventListeners.push({
16
- "function": fnFunction,
17
- });
15
+ if (!eventListeners.includes(fnFunction)) {
16
+ eventListeners.push(fnFunction);
17
+ }
18
18
  }
19
19
 
20
20
  detachEvent(eventName, fnFunction) {
21
21
  const eventRegistry = this._eventRegistry;
22
- let eventListeners = eventRegistry[eventName];
22
+ const eventListeners = eventRegistry.get(eventName);
23
23
 
24
24
  if (!eventListeners) {
25
25
  return;
26
26
  }
27
+ const indexOfFnToDetach = eventListeners.indexOf(fnFunction);
27
28
 
28
- eventListeners = eventListeners.filter(event => {
29
- return event["function"] !== fnFunction; // eslint-disable-line
30
- });
29
+ if (indexOfFnToDetach !== -1) {
30
+ eventListeners.splice(indexOfFnToDetach, 1);
31
+ }
31
32
 
32
33
  if (eventListeners.length === 0) {
33
- delete eventRegistry[eventName];
34
+ eventRegistry.delete(eventName);
34
35
  }
35
36
  }
36
37
 
38
+ /**
39
+ * Fires an event and returns the results of all event listeners as an array.
40
+ *
41
+ * @param eventName the event to fire
42
+ * @param data optional data to pass to each event listener
43
+ * @returns {Array} an array with the results of all event listeners
44
+ */
37
45
  fireEvent(eventName, data) {
38
46
  const eventRegistry = this._eventRegistry;
39
- const eventListeners = eventRegistry[eventName];
47
+ const eventListeners = eventRegistry.get(eventName);
40
48
 
41
49
  if (!eventListeners) {
42
- return;
50
+ return [];
43
51
  }
44
52
 
45
- eventListeners.forEach(event => {
46
- event["function"].call(this, data); // eslint-disable-line
53
+ return eventListeners.map(fn => {
54
+ return fn.call(this, data); // eslint-disable-line
47
55
  });
48
56
  }
49
57
 
58
+ /**
59
+ * Fires an event and returns a promise that will resolve once all listeners have resolved.
60
+ *
61
+ * @param eventName the event to fire
62
+ * @param data optional data to pass to each event listener
63
+ * @returns {Promise} a promise that will resolve when all listeners have resolved
64
+ */
65
+ fireEventAsync(eventName, data) {
66
+ return Promise.all(this.fireEvent(eventName, data));
67
+ }
68
+
50
69
  isHandlerAttached(eventName, fnFunction) {
51
70
  const eventRegistry = this._eventRegistry;
52
- const eventListeners = eventRegistry[eventName];
71
+ const eventListeners = eventRegistry.get(eventName);
53
72
 
54
73
  if (!eventListeners) {
55
74
  return false;
56
75
  }
57
76
 
58
- for (let i = 0; i < eventListeners.length; i++) {
59
- const event = eventListeners[i];
60
- if (event["function"] === fnFunction) { // eslint-disable-line
61
- return true;
62
- }
63
- }
64
-
65
- return false;
77
+ return eventListeners.includes(fnFunction);
66
78
  }
67
79
 
68
80
  hasListeners(eventName) {
69
- return !!this._eventRegistry[eventName];
81
+ return !!this._eventRegistry.get(eventName);
70
82
  }
71
83
  }
72
84
 
@@ -8,4 +8,7 @@ const getFeature = name => {
8
8
  return features.get(name);
9
9
  };
10
10
 
11
- export { registerFeature, getFeature };
11
+ export {
12
+ registerFeature,
13
+ getFeature,
14
+ };
package/dist/FontFace.js CHANGED
@@ -1,66 +1,30 @@
1
- /**
2
- * CSS font face used for the texts provided by SAP.
3
- */
4
- import createStyleInHead from "./util/createStyleInHead.js";
1
+ import { hasStyle, createStyle } from "./ManagedStyles.js";
2
+ import { getFeature } from "./FeaturesRegistry.js";
3
+ import fontFaceCSS from "./generated/css/FontFace.css.js";
4
+ import overrideFontFaceCSS from "./generated/css/OverrideFontFace.css.js";
5
5
 
6
- /* CDN Locations */
7
- const font72RegularWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff?ui5-webcomponents`;
8
- const font72RegularWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents`;
9
-
10
- const font72RegularFullWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff?ui5-webcomponents`;
11
- const font72RegularFullWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents`;
6
+ const insertFontFace = () => {
7
+ const OpenUI5Support = getFeature("OpenUI5Support");
12
8
 
13
- const font72BoldWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents`;
14
- const font72BoldWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents`;
9
+ // Only set the main font if there is no OpenUI5 support, or there is, but OpenUI5 is not loaded
10
+ if (!OpenUI5Support || !OpenUI5Support.isLoaded()) {
11
+ insertMainFontFace();
12
+ }
15
13
 
16
- const font72BoldFullWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents`;
17
- const font72BoldFullWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents`;
14
+ // Always set the override font - OpenUI5 in CSS Vars mode does not set it, unlike the main font
15
+ insertOverrideFontFace();
16
+ };
18
17
 
19
- const fontFaceCSS = `
20
- @font-face {
21
- font-family: "72";
22
- font-style: normal;
23
- font-weight: 400;
24
- src: local("72"),
25
- url(${font72RegularWoff2}) format("woff2"),
26
- url(${font72RegularWoff}) format("woff");
27
- }
28
-
29
- @font-face {
30
- font-family: "72full";
31
- font-style: normal;
32
- font-weight: 400;
33
- src: local('72-full'),
34
- url(${font72RegularFullWoff2}) format("woff2"),
35
- url(${font72RegularFullWoff}) format("woff");
36
-
18
+ const insertMainFontFace = () => {
19
+ if (!hasStyle("data-ui5-font-face")) {
20
+ createStyle(fontFaceCSS, "data-ui5-font-face");
37
21
  }
38
-
39
- @font-face {
40
- font-family: "72";
41
- font-style: normal;
42
- font-weight: 700;
43
- src: local('72-Bold'),
44
- url(${font72BoldWoff2}) format("woff2"),
45
- url(${font72BoldWoff}) format("woff");
46
- }
47
-
48
- @font-face {
49
- font-family: "72full";
50
- font-style: normal;
51
- font-weight: 700;
52
- src: local('72-Bold-full'),
53
- url(${font72BoldFullWoff2}) format("woff2"),
54
- url(${font72BoldFullWoff}) format("woff");
55
- }
56
- `;
22
+ };
57
23
 
58
- const insertFontFace = () => {
59
- if (document.querySelector(`head>style[data-ui5-font-face]`)) {
60
- return;
24
+ const insertOverrideFontFace = () => {
25
+ if (!hasStyle("data-ui5-font-face-override")) {
26
+ createStyle(overrideFontFaceCSS, "data-ui5-font-face-override");
61
27
  }
62
-
63
- createStyleInHead(fontFaceCSS, { "data-ui5-font-face": "" });
64
28
  };
65
29
 
66
30
  export default insertFontFace;
@@ -1,14 +1,18 @@
1
+ import merge from "./thirdparty/merge.js";
2
+ import { getFeature } from "./FeaturesRegistry.js";
3
+ import { DEFAULT_THEME } from "./generated/AssetParameters.js";
4
+
1
5
  let initialized = false;
2
6
 
3
- const initialConfig = {
7
+ let initialConfig = {
4
8
  animationMode: "full",
5
- theme: "sap_fiori_3",
9
+ theme: DEFAULT_THEME,
6
10
  rtl: null,
7
11
  language: null,
8
- compactSize: false,
9
12
  calendarType: null,
10
13
  noConflict: false, // no URL
11
14
  formatSettings: {},
15
+ fetchDefaultLanguage: false,
12
16
  };
13
17
 
14
18
  /* General settings */
@@ -32,9 +36,14 @@ const getLanguage = () => {
32
36
  return initialConfig.language;
33
37
  };
34
38
 
35
- const getCompactSize = () => {
39
+ /**
40
+ * Returns if the default language, that is inlined at build time,
41
+ * should be fetched over the network instead.
42
+ * @returns {Boolean}
43
+ */
44
+ const getFetchDefaultLanguage = () => {
36
45
  initConfiguration();
37
- return initialConfig.compactSize;
46
+ return initialConfig.fetchDefaultLanguage;
38
47
  };
39
48
 
40
49
  const getNoConflict = () => {
@@ -56,8 +65,6 @@ const booleanMapping = new Map();
56
65
  booleanMapping.set("true", true);
57
66
  booleanMapping.set("false", false);
58
67
 
59
- let runtimeConfig = {};
60
-
61
68
  const parseConfigurationScript = () => {
62
69
  const configScript = document.querySelector("[data-ui5-config]") || document.querySelector("[data-id='sap-ui-config']"); // for backward compatibility
63
70
 
@@ -71,7 +78,7 @@ const parseConfigurationScript = () => {
71
78
  }
72
79
 
73
80
  if (configJSON) {
74
- runtimeConfig = Object.assign({}, configJSON);
81
+ initialConfig = merge(initialConfig, configJSON);
75
82
  }
76
83
  }
77
84
  };
@@ -79,27 +86,55 @@ const parseConfigurationScript = () => {
79
86
  const parseURLParameters = () => {
80
87
  const params = new URLSearchParams(window.location.search);
81
88
 
89
+ // Process "sap-*" params first
82
90
  params.forEach((value, key) => {
83
- if (!key.startsWith("sap-ui")) {
91
+ const parts = key.split("sap-").length;
92
+ if (parts === 0 || parts === key.split("sap-ui-").length) {
84
93
  return;
85
94
  }
86
95
 
87
- const lowerCaseValue = value.toLowerCase();
88
-
89
- const param = key.split("sap-ui-")[1];
96
+ applyURLParam(key, value, "sap");
97
+ });
90
98
 
91
- if (booleanMapping.has(value)) {
92
- value = booleanMapping.get(lowerCaseValue);
99
+ // Process "sap-ui-*" params
100
+ params.forEach((value, key) => {
101
+ if (!key.startsWith("sap-ui")) {
102
+ return;
93
103
  }
94
104
 
95
- runtimeConfig[param] = value;
105
+ applyURLParam(key, value, "sap-ui");
96
106
  });
97
107
  };
98
108
 
99
- const applyConfigurations = () => {
100
- Object.keys(runtimeConfig).forEach(key => {
101
- initialConfig[key] = runtimeConfig[key];
102
- });
109
+ const normalizeParamValue = (param, value) => {
110
+ if (param === "theme" && value.includes("@")) { // the theme parameter might have @<URL-TO-THEME> in the value - strip this
111
+ return value.split("@")[0];
112
+ }
113
+
114
+ return value;
115
+ };
116
+
117
+ const applyURLParam = (key, value, paramType) => {
118
+ const lowerCaseValue = value.toLowerCase();
119
+ const param = key.split(`${paramType}-`)[1];
120
+
121
+ if (booleanMapping.has(value)) {
122
+ value = booleanMapping.get(lowerCaseValue);
123
+ }
124
+
125
+ value = normalizeParamValue(param, value);
126
+
127
+ initialConfig[param] = value;
128
+ };
129
+
130
+ const applyOpenUI5Configuration = () => {
131
+ const OpenUI5Support = getFeature("OpenUI5Support");
132
+ if (!OpenUI5Support || !OpenUI5Support.isLoaded()) {
133
+ return;
134
+ }
135
+
136
+ const OpenUI5Config = OpenUI5Support.getConfigurationSettingsObject();
137
+ initialConfig = merge(initialConfig, OpenUI5Config);
103
138
  };
104
139
 
105
140
  const initConfiguration = () => {
@@ -107,9 +142,14 @@ const initConfiguration = () => {
107
142
  return;
108
143
  }
109
144
 
145
+ // 1. Lowest priority - configuration script
110
146
  parseConfigurationScript();
147
+
148
+ // 2. URL parameters overwrite configuration script parameters
111
149
  parseURLParameters();
112
- applyConfigurations();
150
+
151
+ // 3. If OpenUI5 is detected, it has the highest priority
152
+ applyOpenUI5Configuration();
113
153
 
114
154
  initialized = true;
115
155
  };
@@ -119,7 +159,7 @@ export {
119
159
  getTheme,
120
160
  getRTL,
121
161
  getLanguage,
122
- getCompactSize,
162
+ getFetchDefaultLanguage,
123
163
  getNoConflict,
124
164
  getCalendarType,
125
165
  getFormatSettings,
package/dist/Keys.js ADDED
@@ -0,0 +1,271 @@
1
+ const KeyCodes = {
2
+ BACKSPACE: 8,
3
+ TAB: 9,
4
+ ENTER: 13,
5
+ SHIFT: 16,
6
+ CONTROL: 17,
7
+ ALT: 18,
8
+ BREAK: 19,
9
+ CAPS_LOCK: 20,
10
+ ESCAPE: 27,
11
+ SPACE: 32,
12
+ PAGE_UP: 33,
13
+ PAGE_DOWN: 34,
14
+ END: 35,
15
+ HOME: 36,
16
+ ARROW_LEFT: 37,
17
+ ARROW_UP: 38,
18
+ ARROW_RIGHT: 39,
19
+ ARROW_DOWN: 40,
20
+ PRINT: 44,
21
+ INSERT: 45,
22
+ DELETE: 46,
23
+ DIGIT_0: 48,
24
+ DIGIT_1: 49,
25
+ DIGIT_2: 50,
26
+ DIGIT_3: 51,
27
+ DIGIT_4: 52,
28
+ DIGIT_5: 53,
29
+ DIGIT_6: 54,
30
+ DIGIT_7: 55,
31
+ DIGIT_8: 56,
32
+ DIGIT_9: 57,
33
+ A: 65,
34
+ B: 66,
35
+ C: 67,
36
+ D: 68,
37
+ E: 69,
38
+ F: 70,
39
+ G: 71,
40
+ H: 72,
41
+ I: 73,
42
+ J: 74,
43
+ K: 75,
44
+ L: 76,
45
+ M: 77,
46
+ N: 78,
47
+ O: 79,
48
+ P: 80,
49
+ Q: 81,
50
+ R: 82,
51
+ S: 83,
52
+ T: 84,
53
+ U: 85,
54
+ V: 86,
55
+ W: 87,
56
+ X: 88,
57
+ Y: 89,
58
+ Z: 90,
59
+ WINDOWS: 91,
60
+ CONTEXT_MENU: 93,
61
+ TURN_OFF: 94,
62
+ SLEEP: 95,
63
+ NUMPAD_0: 96,
64
+ NUMPAD_1: 97,
65
+ NUMPAD_2: 98,
66
+ NUMPAD_3: 99,
67
+ NUMPAD_4: 100,
68
+ NUMPAD_5: 101,
69
+ NUMPAD_6: 102,
70
+ NUMPAD_7: 103,
71
+ NUMPAD_8: 104,
72
+ NUMPAD_9: 105,
73
+ NUMPAD_ASTERISK: 106,
74
+ NUMPAD_PLUS: 107,
75
+ NUMPAD_MINUS: 109,
76
+ NUMPAD_COMMA: 110,
77
+ NUMPAD_SLASH: 111,
78
+ F1: 112,
79
+ F2: 113,
80
+ F3: 114,
81
+ F4: 115,
82
+ F5: 116,
83
+ F6: 117,
84
+ F7: 118,
85
+ F8: 119,
86
+ F9: 120,
87
+ F10: 121,
88
+ F11: 122,
89
+ F12: 123,
90
+ NUM_LOCK: 144,
91
+ SCROLL_LOCK: 145,
92
+ OPEN_BRACKET: 186,
93
+ PLUS: 187,
94
+ COMMA: 188,
95
+ SLASH: 189,
96
+ DOT: 190,
97
+ PIPE: 191,
98
+ SEMICOLON: 192,
99
+ MINUS: 219,
100
+ GREAT_ACCENT: 220,
101
+ EQUALS: 221,
102
+ SINGLE_QUOTE: 222,
103
+ BACKSLASH: 226,
104
+ };
105
+
106
+ const isEnter = event => (event.key ? event.key === "Enter" : event.keyCode === KeyCodes.ENTER) && !hasModifierKeys(event);
107
+
108
+ const isEnterShift = event => (event.key ? event.key === "Enter" : event.keyCode === KeyCodes.ENTER) && checkModifierKeys(event, false, false, true);
109
+
110
+ const isSpace = event => (event.key ? (event.key === "Spacebar" || event.key === " ") : event.keyCode === KeyCodes.SPACE) && !hasModifierKeys(event);
111
+
112
+ const isSpaceShift = event => (event.key ? (event.key === "Spacebar" || event.key === " ") : event.keyCode === KeyCodes.SPACE) && checkModifierKeys(event, false, false, true);
113
+
114
+ const isLeft = event => (event.key ? (event.key === "ArrowLeft" || event.key === "Left") : event.keyCode === KeyCodes.ARROW_LEFT) && !hasModifierKeys(event);
115
+
116
+ const isRight = event => (event.key ? (event.key === "ArrowRight" || event.key === "Right") : event.keyCode === KeyCodes.ARROW_RIGHT) && !hasModifierKeys(event);
117
+
118
+ const isUp = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && !hasModifierKeys(event);
119
+
120
+ const isDown = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && !hasModifierKeys(event);
121
+
122
+ const isLeftCtrl = event => (event.key ? (event.key === "ArrowLeft" || event.key === "Left") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, true, false, false);
123
+
124
+ const isRightCtrl = event => (event.key ? (event.key === "ArrowRight" || event.key === "Right") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, true, false, false);
125
+
126
+ const isUpCtrl = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, false, false);
127
+
128
+ const isDownCtrl = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, false);
129
+
130
+ const isUpShift = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, false, false, true);
131
+
132
+ const isDownShift = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, false, false, true);
133
+
134
+ const isUpAlt = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, false, true, false);
135
+
136
+ const isDownAlt = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, false, true, false);
137
+
138
+ const isLeftShift = event => (event.key ? (event.key === "ArrowLeft" || event.key === "Left") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, false, false, true);
139
+
140
+ const isRightShift = event => (event.key ? (event.key === "ArrowRight" || event.key === "Right") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, false, false, true);
141
+
142
+ const isLeftShiftCtrl = event => (event.key ? (event.key === "ArrowLeft" || event.key === "Left") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, true, false, true);
143
+
144
+ const isRightShiftCtrl = event => (event.key ? (event.key === "ArrowRight" || event.key === "Right") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, true, false, true);
145
+
146
+ const isUpShiftCtrl = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, false, true);
147
+
148
+ const isDownShiftCtrl = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, true);
149
+
150
+ const isHome = event => (event.key ? event.key === "Home" : event.keyCode === KeyCodes.HOME) && !hasModifierKeys(event);
151
+
152
+ const isEnd = event => (event.key ? event.key === "End" : event.keyCode === KeyCodes.END) && !hasModifierKeys(event);
153
+
154
+ const isHomeCtrl = event => (event.key ? event.key === "Home" : event.keyCode === KeyCodes.HOME) && checkModifierKeys(event, true, false, false);
155
+
156
+ const isEndCtrl = event => (event.key ? event.key === "End" : event.keyCode === KeyCodes.END) && checkModifierKeys(event, true, false, false);
157
+
158
+ const isEscape = event => (event.key ? event.key === "Escape" || event.key === "Esc" : event.keyCode === KeyCodes.ESCAPE) && !hasModifierKeys(event);
159
+
160
+ const isTabNext = event => (event.key ? event.key === "Tab" : event.keyCode === KeyCodes.TAB) && !hasModifierKeys(event);
161
+
162
+ const isTabPrevious = event => (event.key ? event.key === "Tab" : event.keyCode === KeyCodes.TAB) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ false, /* Shift */ true);
163
+
164
+ const isBackSpace = event => (event.key ? event.key === "Backspace" : event.keyCode === KeyCodes.BACKSPACE) && !hasModifierKeys(event);
165
+
166
+ const isDelete = event => (event.key ? event.key === "Delete" : event.keyCode === KeyCodes.DELETE) && !hasModifierKeys(event);
167
+
168
+ const isPageUp = event => (event.key ? event.key === "PageUp" : event.keyCode === KeyCodes.PAGE_UP) && !hasModifierKeys(event);
169
+
170
+ const isPageDown = event => (event.key ? event.key === "PageDown" : event.keyCode === KeyCodes.PAGE_DOWN) && !hasModifierKeys(event);
171
+
172
+ const isPageUpShift = event => (event.key ? event.key === "PageUp" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, false, false, true);
173
+
174
+ const isPageUpAlt = event => (event.key ? event.key === "PageUp" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, false, true, false);
175
+
176
+ const isPageDownShift = event => (event.key ? event.key === "PageDown" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, false, false, true);
177
+
178
+ const isPageDownAlt = event => (event.key ? event.key === "PageDown" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, false, true, false);
179
+
180
+ const isPageUpShiftCtrl = event => (event.key ? event.key === "PageUp" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, true, false, true);
181
+
182
+ const isPageDownShiftCtrl = event => (event.key ? event.key === "PageDown" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, true, false, true);
183
+
184
+ const isPlus = event => (event.key ? event.key === "+" : event.keyCode === KeyCodes.PLUS) || (event.keyCode === KeyCodes.NUMPAD_PLUS && !hasModifierKeys(event));
185
+
186
+ const isMinus = event => (event.key ? event.key === "-" : event.keyCode === KeyCodes.MINUS) || (event.keyCode === KeyCodes.NUMPAD_MINUS && !hasModifierKeys(event));
187
+
188
+ const isShow = event => {
189
+ if (event.key) {
190
+ return isF4(event) || isShowByArrows(event);
191
+ }
192
+
193
+ return (event.keyCode === KeyCodes.F4 && !hasModifierKeys(event)) || (event.keyCode === KeyCodes.ARROW_DOWN && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false));
194
+ };
195
+
196
+ const isF4 = event => {
197
+ return event.key === "F4" && !hasModifierKeys(event);
198
+ };
199
+
200
+ const isF4Shift = event => (event.key ? event.key === "F4" : event.keyCode === KeyCodes.F4) && checkModifierKeys(event, false, false, true);
201
+
202
+ const isF6Next = event => ((event.key ? event.key === "F6" : event.keyCode === KeyCodes.F6) && checkModifierKeys(event, false, false, false))
203
+ || ((event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, true, false));
204
+
205
+ const isF6Previous = event => ((event.key ? event.key === "F6" : event.keyCode === KeyCodes.F6) && checkModifierKeys(event, false, false, true))
206
+ || ((event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_Up) && checkModifierKeys(event, true, true, false));
207
+
208
+ const isF7 = event => (event.key ? event.key === "F7" : event.keyCode === KeyCodes.F7) && !hasModifierKeys(event);
209
+
210
+ const isShowByArrows = event => {
211
+ return ((event.key === "ArrowDown" || event.key === "Down") || (event.key === "ArrowUp" || event.key === "Up")) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false);
212
+ };
213
+
214
+ const isShift = event => event.key === "Shift" || event.keyCode === KeyCodes.SHIFT;
215
+
216
+ const hasModifierKeys = event => event.shiftKey || event.altKey || getCtrlKey(event);
217
+
218
+ const getCtrlKey = event => !!(event.metaKey || event.ctrlKey); // double negation doesn't have effect on boolean but ensures null and undefined are equivalent to false.
219
+
220
+ const checkModifierKeys = (event, bCtrlKey, bAltKey, bShiftKey) => event.shiftKey === bShiftKey && event.altKey === bAltKey && getCtrlKey(event) === bCtrlKey;
221
+
222
+ export {
223
+ isEnter,
224
+ isEnterShift,
225
+ isSpace,
226
+ isSpaceShift,
227
+ isLeft,
228
+ isRight,
229
+ isUp,
230
+ isDown,
231
+ isLeftCtrl,
232
+ isRightCtrl,
233
+ isUpCtrl,
234
+ isDownCtrl,
235
+ isUpShift,
236
+ isDownShift,
237
+ isUpAlt,
238
+ isDownAlt,
239
+ isLeftShift,
240
+ isRightShift,
241
+ isLeftShiftCtrl,
242
+ isRightShiftCtrl,
243
+ isUpShiftCtrl,
244
+ isDownShiftCtrl,
245
+ isHome,
246
+ isEnd,
247
+ isPlus,
248
+ isMinus,
249
+ isHomeCtrl,
250
+ isEndCtrl,
251
+ isEscape,
252
+ isTabNext,
253
+ isTabPrevious,
254
+ isBackSpace,
255
+ isDelete,
256
+ isShow,
257
+ isF4,
258
+ isF4Shift,
259
+ isF6Previous,
260
+ isF6Next,
261
+ isF7,
262
+ isPageUp,
263
+ isPageDown,
264
+ isPageUpShift,
265
+ isPageUpAlt,
266
+ isPageDownShift,
267
+ isPageDownAlt,
268
+ isPageUpShiftCtrl,
269
+ isPageDownShiftCtrl,
270
+ isShift,
271
+ };