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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/.eslintignore +4 -0
  2. package/CHANGELOG.md +196 -0
  3. package/README.md +26 -2
  4. package/bundle.esm.js +18 -12
  5. package/dist/AssetRegistry.js +8 -6
  6. package/dist/Boot.js +43 -0
  7. package/dist/CSP.js +59 -0
  8. package/dist/CustomElementsRegistry.js +39 -0
  9. package/dist/CustomElementsScope.js +108 -0
  10. package/dist/DOMObserver.js +65 -0
  11. package/dist/Device.js +62 -778
  12. package/dist/EventProvider.js +38 -26
  13. package/dist/FontFace.js +20 -56
  14. package/dist/InitialConfiguration.js +64 -17
  15. package/dist/Keys.js +248 -0
  16. package/dist/ManagedStyles.js +83 -0
  17. package/dist/MediaRange.js +109 -0
  18. package/dist/PropertiesFileFormat.js +95 -0
  19. package/dist/Render.js +175 -0
  20. package/dist/RenderQueue.js +41 -17
  21. package/dist/RenderScheduler.js +24 -145
  22. package/dist/StaticArea.js +1 -39
  23. package/dist/StaticAreaItem.js +65 -40
  24. package/dist/SystemCSSVars.js +10 -0
  25. package/dist/Theming.js +3 -44
  26. package/dist/UI5Element.js +483 -307
  27. package/dist/UI5ElementMetadata.js +190 -19
  28. package/dist/asset-registries/Icons.js +129 -14
  29. package/dist/asset-registries/Illustrations.js +30 -0
  30. package/dist/asset-registries/LocaleData.js +108 -50
  31. package/dist/asset-registries/Themes.js +35 -32
  32. package/dist/asset-registries/i18n.js +80 -34
  33. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  34. package/dist/config/AnimationMode.js +16 -2
  35. package/dist/config/CalendarType.js +7 -7
  36. package/dist/config/FormatSettings.js +5 -1
  37. package/dist/config/Language.js +62 -3
  38. package/dist/config/NoConflict.js +10 -3
  39. package/dist/config/Theme.js +21 -3
  40. package/dist/css/FontFace.css +45 -0
  41. package/dist/css/OverrideFontFace.css +32 -0
  42. package/dist/css/SystemCSSVars.css +17 -0
  43. package/dist/delegate/ItemNavigation.js +245 -172
  44. package/dist/delegate/ResizeHandler.js +78 -38
  45. package/dist/delegate/ScrollEnablement.js +122 -14
  46. package/dist/features/OpenUI5Support.js +125 -0
  47. package/dist/generated/AssetParameters.js +13 -0
  48. package/dist/generated/css/FontFace.css.js +5 -0
  49. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  50. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  51. package/dist/getSharedResource.js +30 -0
  52. package/dist/i18nBundle.js +62 -11
  53. package/dist/isLegacyBrowser.js +3 -0
  54. package/dist/{Locale.js → locale/Locale.js} +0 -10
  55. package/dist/locale/RTLAwareRegistry.js +14 -0
  56. package/dist/locale/applyDirection.js +17 -0
  57. package/dist/locale/directionChange.js +32 -0
  58. package/dist/locale/getEffectiveDir.js +28 -0
  59. package/dist/locale/getLocale.js +41 -0
  60. package/dist/locale/languageChange.js +22 -0
  61. package/dist/locale/nextFallbackLocale.js +28 -0
  62. package/{src/util → dist/locale}/normalizeLocale.js +8 -31
  63. package/dist/renderer/LitRenderer.js +26 -7
  64. package/dist/renderer/directives/style-map.js +72 -0
  65. package/dist/renderer/executeTemplate.js +17 -0
  66. package/dist/resources/bundle.esm.js +20 -106
  67. package/dist/resources/bundle.esm.js.map +1 -1
  68. package/dist/sap/base/Log.js +241 -0
  69. package/dist/sap/base/assert.js +8 -0
  70. package/dist/sap/base/security/URLListValidator.js +148 -0
  71. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  72. package/dist/sap/base/util/now.js +7 -0
  73. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  74. package/dist/test-resources/assets/Themes.js +11 -5
  75. package/dist/test-resources/elements/Generic.js +1 -0
  76. package/dist/test-resources/elements/Parent.js +7 -2
  77. package/dist/test-resources/elements/WithStaticArea.js +77 -0
  78. package/dist/test-resources/pages/AllTestElements.html +5 -5
  79. package/dist/test-resources/pages/Configuration.html +0 -2
  80. package/dist/test-resources/pages/ConfigurationScript.html +1 -3
  81. package/dist/test-resources/pages/assets/messagebundle_de.properties +1 -0
  82. package/dist/test-resources/pages/assets/messagebundle_en.properties +1 -0
  83. package/dist/test-resources/pages/assets/messagebundle_es.properties +1 -0
  84. package/dist/test-resources/pages/assets/messagebundle_fr.properties +1 -0
  85. package/dist/test-resources/pages/i18n.html +33 -0
  86. package/dist/test-resources/specs/ConfigurationChange.spec.js +11 -9
  87. package/dist/test-resources/specs/ConfigurationScript.spec.js +25 -23
  88. package/dist/test-resources/specs/ConfigurationURL.spec.js +65 -17
  89. package/dist/test-resources/specs/CustomTheme.spec.js +9 -7
  90. package/dist/test-resources/specs/EventProvider.spec.js +63 -0
  91. package/dist/test-resources/specs/StaticArea.spec.js +78 -0
  92. package/dist/test-resources/specs/Theming.spec.js +12 -10
  93. package/dist/test-resources/specs/UI5ElementInvalidation.js +54 -70
  94. package/dist/test-resources/specs/UI5ElementLifecycle.js +19 -14
  95. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +25 -51
  96. package/dist/test-resources/specs/UI5ElementMetadataExt.js +9 -7
  97. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +7 -5
  98. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +37 -35
  99. package/dist/test-resources/specs/UI5ElementShadowDOM.js +10 -8
  100. package/dist/test-resources/specs/UI5ElementSlots.js +10 -8
  101. package/dist/theming/CustomStyle.js +28 -7
  102. package/dist/theming/ThemeLoaded.js +22 -0
  103. package/dist/theming/applyTheme.js +75 -0
  104. package/dist/theming/getConstructableStyle.js +30 -0
  105. package/dist/theming/getEffectiveLinksHrefs.js +20 -0
  106. package/dist/theming/getEffectiveStyle.js +30 -0
  107. package/dist/theming/getStylesString.js +15 -0
  108. package/dist/theming/getThemeDesignerTheme.js +68 -0
  109. package/dist/theming/preloadLinks.js +23 -0
  110. package/dist/thirdparty/_merge.js +32 -0
  111. package/dist/thirdparty/isPlainObject.js +18 -0
  112. package/dist/thirdparty/merge.js +10 -0
  113. package/dist/types/CSSColor.js +9 -0
  114. package/{src/dates → dist/types}/CalendarType.js +2 -2
  115. package/dist/types/DataType.js +13 -1
  116. package/dist/types/Float.js +14 -0
  117. package/dist/types/Integer.js +4 -0
  118. package/dist/types/InvisibleMessageMode.js +30 -0
  119. package/dist/types/ItemNavigationBehavior.js +2 -7
  120. package/dist/types/NavigationMode.js +1 -0
  121. package/dist/types/PopupState.js +1 -1
  122. package/dist/types/ValueState.js +2 -1
  123. package/dist/updateShadowRoot.js +30 -0
  124. package/dist/util/AriaLabelHelper.js +41 -0
  125. package/dist/util/Caret.js +45 -0
  126. package/dist/util/ColorConversion.js +370 -0
  127. package/dist/util/FocusableElements.js +25 -8
  128. package/dist/util/HTMLSanitizer.js +7 -0
  129. package/dist/util/InvisibleMessage.js +58 -0
  130. package/dist/util/PopupUtils.js +93 -0
  131. package/dist/util/SlotsHelper.js +43 -0
  132. package/dist/util/StringHelper.js +17 -2
  133. package/dist/util/TabbableElements.js +5 -2
  134. package/dist/util/arraysAreEqual.js +15 -0
  135. package/dist/util/clamp.js +12 -0
  136. package/dist/util/createLinkInHead.js +19 -0
  137. package/dist/util/debounce.js +17 -0
  138. package/dist/util/detectNavigatorLanguage.js +3 -1
  139. package/dist/util/encodeCSS.js +24 -0
  140. package/dist/util/findNodeOwner.js +35 -0
  141. package/dist/util/getActiveElement.js +11 -0
  142. package/dist/util/getClassCopy.js +10 -0
  143. package/dist/util/getEffectiveContentDensity.js +5 -0
  144. package/dist/util/getFileExtension.js +21 -0
  145. package/dist/util/getSingletonElementInstance.js +13 -0
  146. package/dist/util/isElementInView.js +15 -0
  147. package/dist/util/isNodeHidden.js +1 -5
  148. package/dist/util/isNodeTabbable.js +4 -4
  149. package/dist/util/isValidPropertyName.js +11 -2
  150. package/dist/util/setToArray.js +10 -0
  151. package/hash.txt +1 -0
  152. package/index.js +1 -1
  153. package/lib/generate-asset-parameters/index.js +21 -0
  154. package/lib/generate-styles/index.js +18 -0
  155. package/package-scripts.js +41 -18
  156. package/package.json +19 -14
  157. package/src/AssetRegistry.js +8 -6
  158. package/src/Boot.js +43 -0
  159. package/src/CSP.js +59 -0
  160. package/src/CustomElementsRegistry.js +39 -0
  161. package/src/CustomElementsScope.js +108 -0
  162. package/src/DOMObserver.js +65 -0
  163. package/src/Device.js +62 -778
  164. package/src/EventProvider.js +38 -26
  165. package/src/FontFace.js +20 -56
  166. package/src/InitialConfiguration.js +64 -17
  167. package/src/Keys.js +248 -0
  168. package/src/ManagedStyles.js +83 -0
  169. package/src/MediaRange.js +109 -0
  170. package/src/PropertiesFileFormat.js +95 -0
  171. package/src/Render.js +175 -0
  172. package/src/RenderQueue.js +41 -17
  173. package/src/RenderScheduler.js +24 -145
  174. package/src/StaticArea.js +1 -39
  175. package/src/StaticAreaItem.js +65 -40
  176. package/src/SystemCSSVars.js +10 -0
  177. package/src/Theming.js +3 -44
  178. package/src/UI5Element.js +483 -307
  179. package/src/UI5ElementMetadata.js +190 -19
  180. package/src/asset-registries/Icons.js +129 -14
  181. package/src/asset-registries/Illustrations.js +30 -0
  182. package/src/asset-registries/LocaleData.js +108 -50
  183. package/src/asset-registries/Themes.js +35 -32
  184. package/src/asset-registries/i18n.js +80 -34
  185. package/src/assets-meta/IconCollectionsAlias.js +18 -0
  186. package/src/config/AnimationMode.js +16 -2
  187. package/src/config/CalendarType.js +7 -7
  188. package/src/config/FormatSettings.js +5 -1
  189. package/src/config/Language.js +62 -3
  190. package/src/config/NoConflict.js +10 -3
  191. package/src/config/Theme.js +21 -3
  192. package/src/css/FontFace.css +45 -0
  193. package/src/css/OverrideFontFace.css +32 -0
  194. package/src/css/SystemCSSVars.css +17 -0
  195. package/src/delegate/ItemNavigation.js +245 -172
  196. package/src/delegate/ResizeHandler.js +78 -38
  197. package/src/delegate/ScrollEnablement.js +122 -14
  198. package/src/features/OpenUI5Support.js +125 -0
  199. package/src/getSharedResource.js +30 -0
  200. package/src/i18nBundle.js +62 -11
  201. package/src/isLegacyBrowser.js +3 -0
  202. package/src/{Locale.js → locale/Locale.js} +0 -10
  203. package/src/locale/RTLAwareRegistry.js +14 -0
  204. package/src/locale/applyDirection.js +17 -0
  205. package/src/locale/directionChange.js +32 -0
  206. package/src/locale/getEffectiveDir.js +28 -0
  207. package/src/locale/getLocale.js +41 -0
  208. package/src/locale/languageChange.js +22 -0
  209. package/src/locale/nextFallbackLocale.js +28 -0
  210. package/{dist/util → src/locale}/normalizeLocale.js +8 -31
  211. package/src/renderer/LitRenderer.js +26 -7
  212. package/src/renderer/directives/style-map.js +72 -0
  213. package/src/renderer/executeTemplate.js +17 -0
  214. package/src/theming/CustomStyle.js +28 -7
  215. package/src/theming/ThemeLoaded.js +22 -0
  216. package/src/theming/applyTheme.js +75 -0
  217. package/src/theming/getConstructableStyle.js +30 -0
  218. package/src/theming/getEffectiveLinksHrefs.js +20 -0
  219. package/src/theming/getEffectiveStyle.js +30 -0
  220. package/src/theming/getStylesString.js +15 -0
  221. package/src/theming/getThemeDesignerTheme.js +68 -0
  222. package/src/theming/preloadLinks.js +23 -0
  223. package/src/thirdparty/_merge.js +32 -0
  224. package/src/thirdparty/isPlainObject.js +18 -0
  225. package/src/thirdparty/merge.js +10 -0
  226. package/src/types/CSSColor.js +9 -0
  227. package/{dist/dates → src/types}/CalendarType.js +2 -2
  228. package/src/types/DataType.js +13 -1
  229. package/src/types/Float.js +14 -0
  230. package/src/types/Integer.js +4 -0
  231. package/src/types/InvisibleMessageMode.js +30 -0
  232. package/src/types/ItemNavigationBehavior.js +2 -7
  233. package/src/types/NavigationMode.js +1 -0
  234. package/src/types/PopupState.js +1 -1
  235. package/src/types/ValueState.js +2 -1
  236. package/src/updateShadowRoot.js +30 -0
  237. package/src/util/AriaLabelHelper.js +41 -0
  238. package/src/util/Caret.js +45 -0
  239. package/src/util/ColorConversion.js +370 -0
  240. package/src/util/FocusableElements.js +25 -8
  241. package/src/util/HTMLSanitizer.js +7 -0
  242. package/src/util/InvisibleMessage.js +58 -0
  243. package/src/util/PopupUtils.js +93 -0
  244. package/src/util/SlotsHelper.js +43 -0
  245. package/src/util/StringHelper.js +17 -2
  246. package/src/util/TabbableElements.js +5 -2
  247. package/src/util/arraysAreEqual.js +15 -0
  248. package/src/util/clamp.js +12 -0
  249. package/src/util/createLinkInHead.js +19 -0
  250. package/src/util/debounce.js +17 -0
  251. package/src/util/detectNavigatorLanguage.js +3 -1
  252. package/src/util/encodeCSS.js +24 -0
  253. package/src/util/findNodeOwner.js +35 -0
  254. package/src/util/getActiveElement.js +11 -0
  255. package/src/util/getClassCopy.js +10 -0
  256. package/src/util/getEffectiveContentDensity.js +5 -0
  257. package/src/util/getFileExtension.js +21 -0
  258. package/src/util/getSingletonElementInstance.js +13 -0
  259. package/src/util/isElementInView.js +15 -0
  260. package/src/util/isNodeHidden.js +1 -5
  261. package/src/util/isNodeTabbable.js +4 -4
  262. package/src/util/isValidPropertyName.js +11 -2
  263. package/src/util/setToArray.js +10 -0
  264. package/used-modules.txt +7 -0
  265. package/bundle.es5.js +0 -28
  266. package/dist/Assets.js +0 -2
  267. package/dist/CSS.js +0 -48
  268. package/dist/FormatSettings.js +0 -31
  269. package/dist/LocaleProvider.js +0 -34
  270. package/dist/ResourceLoaderOverrides.js +0 -38
  271. package/dist/SVGIconRegistry.js +0 -54
  272. package/dist/boot.js +0 -25
  273. package/dist/compatibility/DOMObserver.js +0 -62
  274. package/dist/compatibility/patchNodeValue.js +0 -24
  275. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  276. package/dist/dates/CalendarDate.js +0 -203
  277. package/dist/dates/CalendarUtils.js +0 -99
  278. package/dist/delegate/CustomResize.js +0 -78
  279. package/dist/delegate/NativeResize.js +0 -44
  280. package/dist/events/PseudoEvents.js +0 -58
  281. package/dist/features/browsersupport/Edge.js +0 -6
  282. package/dist/features/browsersupport/IE11.js +0 -41
  283. package/dist/features/calendar/Buddhist.js +0 -1
  284. package/dist/features/calendar/Islamic.js +0 -1
  285. package/dist/features/calendar/Japanese.js +0 -1
  286. package/dist/features/calendar/Persian.js +0 -1
  287. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  288. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  289. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  290. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  291. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  292. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  293. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  294. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  295. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  296. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  297. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  298. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  299. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  300. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  301. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  302. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  303. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  304. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  305. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  306. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  307. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  308. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  309. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  310. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  311. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  312. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  313. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  314. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  315. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  316. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  317. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  318. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  319. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  320. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  321. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  322. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  323. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  324. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  325. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  326. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  327. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  328. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  329. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  330. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  331. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  332. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  333. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  334. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  335. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  336. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  337. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  338. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  339. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  340. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  341. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  342. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  343. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  344. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  345. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  346. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  347. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  348. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  349. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  350. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  351. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  352. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  353. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  354. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  355. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  356. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  357. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  358. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  359. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  360. package/dist/json-imports/LocaleData.js +0 -171
  361. package/dist/renderer/ifDefined.js +0 -21
  362. package/dist/resources/bundle.es5.js +0 -212
  363. package/dist/resources/bundle.es5.js.map +0 -1
  364. package/dist/shims/Core-shim.js +0 -52
  365. package/dist/shims/jquery-shim.js +0 -89
  366. package/dist/theming/StyleInjection.js +0 -67
  367. package/dist/thirdparty/Array.from.js +0 -16
  368. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  369. package/dist/thirdparty/Array.prototype.find.js +0 -46
  370. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  371. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  372. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  373. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  374. package/dist/thirdparty/Number.isInteger.js +0 -5
  375. package/dist/thirdparty/Number.isNaN.js +0 -1
  376. package/dist/thirdparty/Number.parseInt.js +0 -1
  377. package/dist/thirdparty/Object.assign.js +0 -31
  378. package/dist/thirdparty/Object.entries.js +0 -11
  379. package/dist/thirdparty/Symbol.js +0 -2
  380. package/dist/thirdparty/WeakSet.js +0 -27
  381. package/dist/thirdparty/events-polyfills.js +0 -89
  382. package/dist/thirdparty/fetch.js +0 -1
  383. package/dist/thirdparty/template.js +0 -600
  384. package/dist/util/CSSTransformUtils.js +0 -90
  385. package/dist/webcomponentsjs/LICENSE.md +0 -19
  386. package/dist/webcomponentsjs/README.md +0 -229
  387. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  388. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  389. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  390. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  391. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  392. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  393. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  394. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  395. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  396. package/dist/webcomponentsjs/package.json +0 -46
  397. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  398. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  399. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  400. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  401. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  402. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  403. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  404. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  405. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  406. package/src/Assets.js +0 -2
  407. package/src/CSS.js +0 -48
  408. package/src/FormatSettings.js +0 -31
  409. package/src/LocaleProvider.js +0 -34
  410. package/src/ResourceLoaderOverrides.js +0 -38
  411. package/src/SVGIconRegistry.js +0 -54
  412. package/src/boot.js +0 -25
  413. package/src/compatibility/DOMObserver.js +0 -62
  414. package/src/compatibility/patchNodeValue.js +0 -24
  415. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  416. package/src/dates/CalendarDate.js +0 -203
  417. package/src/dates/CalendarUtils.js +0 -99
  418. package/src/delegate/CustomResize.js +0 -78
  419. package/src/delegate/NativeResize.js +0 -44
  420. package/src/events/PseudoEvents.js +0 -58
  421. package/src/features/browsersupport/Edge.js +0 -6
  422. package/src/features/browsersupport/IE11.js +0 -41
  423. package/src/features/calendar/Buddhist.js +0 -1
  424. package/src/features/calendar/Islamic.js +0 -1
  425. package/src/features/calendar/Japanese.js +0 -1
  426. package/src/features/calendar/Persian.js +0 -1
  427. package/src/json-imports/LocaleData.js +0 -171
  428. package/src/renderer/ifDefined.js +0 -21
  429. package/src/shims/Core-shim.js +0 -52
  430. package/src/shims/jquery-shim.js +0 -89
  431. package/src/theming/StyleInjection.js +0 -67
  432. package/src/thirdparty/Array.from.js +0 -16
  433. package/src/thirdparty/Array.prototype.fill.js +0 -44
  434. package/src/thirdparty/Array.prototype.find.js +0 -46
  435. package/src/thirdparty/Array.prototype.includes.js +0 -51
  436. package/src/thirdparty/Element.prototype.closest.js +0 -11
  437. package/src/thirdparty/Element.prototype.matches.js +0 -6
  438. package/src/thirdparty/Map.prototype.keys.js +0 -9
  439. package/src/thirdparty/Number.isInteger.js +0 -5
  440. package/src/thirdparty/Number.isNaN.js +0 -1
  441. package/src/thirdparty/Number.parseInt.js +0 -1
  442. package/src/thirdparty/Object.assign.js +0 -31
  443. package/src/thirdparty/Object.entries.js +0 -11
  444. package/src/thirdparty/Symbol.js +0 -2
  445. package/src/thirdparty/WeakSet.js +0 -27
  446. package/src/thirdparty/events-polyfills.js +0 -89
  447. package/src/thirdparty/fetch.js +0 -1
  448. package/src/thirdparty/template.js +0 -600
  449. package/src/util/CSSTransformUtils.js +0 -90
@@ -1,11 +1,17 @@
1
- import { registerThemeProperties } from "../../asset-registries/Themes.js";
1
+ import { registerThemePropertiesLoader } from "../../asset-registries/Themes.js";
2
2
 
3
3
  const fiori3 = `:root{ --var1: red; }`;
4
4
  const fiori3Dark = `:root{ --var1: green; }`;
5
5
  const belize = `:root{ --var1: blue; }`;
6
6
  const belizeHcb = `:root{ --var1: orange; }`;
7
+ const belizeHcw = `:root{ --var1: orange; }`;
8
+ const fiori3Hcb = `:root{ --var1: yellow; }`;
9
+ const fiori3Hcw = `:root{ --var1: yellow; }`;
7
10
 
8
- registerThemeProperties("@ui5/webcomponents-base-test", "sap_fiori_3", fiori3);
9
- registerThemeProperties("@ui5/webcomponents-base-test", "sap_fiori_3_dark", fiori3Dark);
10
- registerThemeProperties("@ui5/webcomponents-base-test", "sap_belize", belize);
11
- registerThemeProperties("@ui5/webcomponents-base-test", "sap_belize_hcb", belizeHcb);
11
+ registerThemePropertiesLoader("@ui5/webcomponents-base-test", "sap_fiori_3", () => fiori3);
12
+ registerThemePropertiesLoader("@ui5/webcomponents-base-test", "sap_fiori_3_dark", () => fiori3Dark);
13
+ registerThemePropertiesLoader("@ui5/webcomponents-base-test", "sap_belize", () => belize);
14
+ registerThemePropertiesLoader("@ui5/webcomponents-base-test", "sap_belize_hcb", () => belizeHcb);
15
+ registerThemePropertiesLoader("@ui5/webcomponents-base-test", "sap_belize_hcw", () => belizeHcw);
16
+ registerThemePropertiesLoader("@ui5/webcomponents-base-test", "sap_fiori_3_hcb", () => fiori3Hcb);
17
+ registerThemePropertiesLoader("@ui5/webcomponents-base-test", "sap_fiori_3_hcw", () => fiori3Hcw);
@@ -26,6 +26,7 @@ const metadata = {
26
26
  defaultValue: "Hello",
27
27
  }
28
28
  },
29
+ managedSlots: true,
29
30
  slots: {
30
31
  default: {
31
32
  type: Node,
@@ -3,14 +3,19 @@ import litRender, { html } from "../../renderer/LitRenderer.js";
3
3
 
4
4
  const metadata = {
5
5
  tag: "ui5-test-parent",
6
+ managedSlots: true,
6
7
  slots: {
7
8
  default: {
8
9
  type: Node,
9
- listenFor: ["prop1"],
10
+ invalidateOnChildChange: {
11
+ properties: ["prop1"]
12
+ },
10
13
  },
11
14
  items: {
12
15
  type: HTMLElement,
13
- listenFor: { include: ["*"], exclude: ["prop3"] }
16
+ invalidateOnChildChange: {
17
+ properties: true
18
+ },
14
19
  }
15
20
  }
16
21
  };
@@ -0,0 +1,77 @@
1
+ import UI5Element from "../../UI5Element.js";
2
+ import litRender, { html } from "../../renderer/LitRenderer.js";
3
+
4
+ const metadata = {
5
+ tag: "ui5-with-static-area",
6
+ properties: {
7
+ /**
8
+ * Defines whether the static area item will be rendered
9
+ */
10
+ staticContent: {
11
+ type: Boolean,
12
+ }
13
+ },
14
+ slots: {
15
+
16
+ }
17
+ };
18
+
19
+ class WithStaticArea extends UI5Element {
20
+ static get metadata() {
21
+ return metadata;
22
+ }
23
+
24
+ static get render() {
25
+ return litRender;
26
+ }
27
+
28
+ static get template() {
29
+ return element => {
30
+ // access effectiveDir getter to mark control as RTL-aware (test changes dir attribute and expects rerender)
31
+ return html`
32
+ <div dir=${element.effectiveDir}>
33
+ WithStaticArea works!
34
+ </div>`;
35
+ };
36
+ }
37
+
38
+ static get staticAreaTemplate() {
39
+ return element => {
40
+ return html`
41
+ <div class="ui5-with-static-area-content">
42
+ Static area content.
43
+ </div>`;
44
+ };
45
+ }
46
+
47
+ static get styles() {
48
+ return `
49
+ :host {
50
+ display: inline-block;
51
+ border: 1px solid black;
52
+ color: red;
53
+ }`;
54
+ }
55
+
56
+ async addStaticArea() {
57
+ if (!this.staticContent) {
58
+ return;
59
+ }
60
+
61
+ // Require static area item
62
+ const staticArea = await this.getStaticAreaItemDomRef();
63
+ this.responsivePopover = staticArea.querySelector(".ui5-with-static-area-content");
64
+ return this.responsivePopover;
65
+ }
66
+
67
+ onBeforeRendering() {
68
+ this.addStaticArea();
69
+ }
70
+ onAfterRendering() {}
71
+ onEnterDOM() {}
72
+ onExitDOM() {}
73
+ }
74
+
75
+ WithStaticArea.define();
76
+
77
+ export default WithStaticArea;
@@ -6,10 +6,7 @@
6
6
 
7
7
  <title>Base package default test page</title>
8
8
 
9
- <script src="../../webcomponentsjs/webcomponents-loader.js"></script>
10
9
  <script src="../../resources/bundle.esm.js" type="module"></script>
11
- <script nomodule src="../../resources/bundle.es5.js"></script>
12
-
13
10
  </head>
14
11
 
15
12
  <body>
@@ -34,9 +31,12 @@
34
31
  <ui5-test-child id="child2" slot="items" prop1="old" prop2="old" prop3="old"></ui5-test-child>
35
32
  </ui5-test-parent>
36
33
 
37
- <ui5-test-density-aware id="aware"></ui5-test-density-aware>
38
-
39
34
  <ui5-test-generic-ext id="genExt"></ui5-test-generic-ext>
40
35
 
36
+ <ui5-with-static-area id="no-static-area"></ui5-with-static-area>
37
+ <ui5-with-static-area id="with-static-area" static-content></ui5-with-static-area>
38
+ <div id="with-static-area-rtl-container" dir="rtl">
39
+ <ui5-with-static-area id="with-static-area-rtl" static-content></ui5-with-static-area>
40
+ </div>
41
41
  </body>
42
42
  </html>
@@ -6,9 +6,7 @@
6
6
 
7
7
  <title>Base package default test page</title>
8
8
 
9
- <script src="../../webcomponentsjs/webcomponents-loader.js"></script>
10
9
  <script src="../../resources/bundle.esm.js" type="module"></script>
11
- <script nomodule src="../../resources/bundle.es5.js"></script>
12
10
 
13
11
  </head>
14
12
 
@@ -17,14 +17,12 @@
17
17
  },
18
18
  "theme": "sap_belize_hcb",
19
19
  "noConflict": {
20
- "events": ["selectionChange", "headerClick"]
20
+ "events": ["selection-change", "header-click"]
21
21
  }
22
22
  }
23
23
  </script>
24
24
 
25
- <script src="../../webcomponentsjs/webcomponents-loader.js"></script>
26
25
  <script src="../../resources/bundle.esm.js" type="module"></script>
27
- <script nomodule src="../../resources/bundle.es5.js"></script>
28
26
 
29
27
  </head>
30
28
 
@@ -0,0 +1 @@
1
+ PLEASE_WAIT=Bitte warten
@@ -0,0 +1 @@
1
+ PLEASE_WAIT=Please wait
@@ -0,0 +1 @@
1
+ PLEASE_WAIT=Espere
@@ -0,0 +1 @@
1
+ PLEASE_WAIT=Patientez.
@@ -0,0 +1,33 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
5
+ <meta charset="utf-8">
6
+
7
+ <title>i18n</title>
8
+
9
+ <script src="../../resources/bundle.esm.js" ></script>
10
+
11
+ </head>
12
+
13
+ <body>
14
+
15
+ <script>
16
+
17
+ const demo = async () => {
18
+ ["de", "es", "fr", "en"].forEach(localeId => registerI18nLoader("myApp", localeId, () => `./assets/messagebundle_${localeId}.properties`));
19
+
20
+ const bundle = await getI18nBundle("myApp");
21
+
22
+ const pleaseWait = bundle.getText("PLEASE_WAIT");
23
+ console.log("Please wait in the current language is: ", pleaseWait);
24
+ };
25
+
26
+ demo();
27
+
28
+
29
+ </script>
30
+
31
+
32
+ </body>
33
+ </html>
@@ -1,25 +1,27 @@
1
1
  const assert = require("chai").assert;
2
2
 
3
3
  describe("Some configuration options can be changed at runtime", () => {
4
- browser.url("http://localhost:9191/test-resources/pages/Configuration.html");
4
+ before(async () => {
5
+ await browser.url("http://localhost:9191/test-resources/pages/Configuration.html");
6
+ });
5
7
 
6
- it("Tests that theme can be changed", () => {
8
+ it("Tests that theme can be changed", async () => {
7
9
  const newTheme = 'sap_belize_hcb';
8
10
 
9
- const res = browser.executeAsync( async (newTheme, done) => {
11
+ const res = await browser.executeAsync( async (newTheme, done) => {
10
12
  const config = window['sap-ui-webcomponents-bundle'].configuration;
11
13
  await config.setTheme(newTheme);
12
- return done(config.getTheme());
14
+ done(config.getTheme());
13
15
  }, newTheme);
14
16
  assert.strictEqual(res, newTheme, "Theme changed to HCB");
15
17
  });
16
18
 
17
- it("Tests that noConflict can be changed", () => {
18
- const res = browser.execute( () => {
19
+ it("Tests that noConflict can be changed", async () => {
20
+ const res = await browser.executeAsync(done => {
19
21
  const config = window['sap-ui-webcomponents-bundle'].configuration;
20
- config.setNoConflict({events: ["selectionChange"]});
21
- return config.getNoConflict();
22
+ config.setNoConflict({events: ["selection-change"]});
23
+ done(config.getNoConflict());
22
24
  });
23
- assert.strictEqual(res.events.includes("selectionChange"), true, "selectionChange was successfully registered as a no conflict event");
25
+ assert.include(res.events, "selection-change", "selection-change was successfully registered as a no conflict event");
24
26
  });
25
27
  });
@@ -1,60 +1,62 @@
1
1
  const assert = require("chai").assert;
2
2
 
3
3
  describe("Configuration script has effect", () => {
4
- browser.url("http://localhost:9191/test-resources/pages/ConfigurationScript.html");
4
+ before(async () => {
5
+ await browser.url("http://localhost:9191/test-resources/pages/ConfigurationScript.html?do-not-change-configuration");
6
+ });
5
7
 
6
- it("Tests that RTL is applied", () => {
7
- const res = browser.execute( () => {
8
+ it("Tests that RTL is applied", async () => {
9
+ const res = await browser.executeAsync(done => {
8
10
  const config = window['sap-ui-webcomponents-bundle'].configuration;
9
- return config.getRTL();
11
+ done(config.getRTL());
10
12
  });
11
13
  assert.strictEqual(res, true, "RTL is true");
12
14
  });
13
15
 
14
- it("Tests that language is applied", () => {
15
- const res = browser.execute( () => {
16
+ it("Tests that language is applied", async () => {
17
+ const res = await browser.executeAsync(done => {
16
18
  const config = window['sap-ui-webcomponents-bundle'].configuration;
17
- return config.getLanguage();
19
+ done(config.getLanguage());
18
20
  });
19
21
  assert.strictEqual(res, 'ja', "language is japanese");
20
22
  });
21
23
 
22
- it("Tests that calendarType is applied", () => {
23
- const res = browser.execute( () => {
24
+ it("Tests that calendarType is applied", async () => {
25
+ const res = await browser.executeAsync(done => {
24
26
  const config = window['sap-ui-webcomponents-bundle'].configuration;
25
- return config.getCalendarType();
27
+ done(config.getCalendarType());
26
28
  });
27
29
  assert.strictEqual(res, 'Japanese', "calendarType is japanese");
28
30
  });
29
31
 
30
- it("Tests that formatSettings are applied", () => {
31
- const res = browser.execute( () => {
32
+ it("Tests that formatSettings are applied", async () => {
33
+ const res = await browser.executeAsync(done => {
32
34
  const config = window['sap-ui-webcomponents-bundle'].configuration;
33
- return config.getFirstDayOfWeek();
35
+ done(config.getFirstDayOfWeek());
34
36
  });
35
37
  assert.strictEqual(res, 0, "First day of week is applied");
36
38
  });
37
39
 
38
- it("Tests that theme is applied", () => {
39
- const res = browser.execute( () => {
40
+ it("Tests that theme is applied", async () => {
41
+ const res = await browser.executeAsync(done => {
40
42
  const config = window['sap-ui-webcomponents-bundle'].configuration;
41
- return config.getTheme();
43
+ done(config.getTheme());
42
44
  });
43
45
  assert.strictEqual(res, 'sap_belize_hcb', "Thems is HCB");
44
46
  });
45
47
 
46
- it("Tests that noConflict is applied", () => {
47
- const res = browser.execute( () => {
48
+ it("Tests that noConflict is applied", async () => {
49
+ const res = await browser.executeAsync(done => {
48
50
  const config = window['sap-ui-webcomponents-bundle'].configuration;
49
- return config.getNoConflict();
51
+ done(config.getNoConflict());
50
52
  });
51
- assert.strictEqual(res.events.includes("selectionChange"), true, "selectionChange was successfully registered as a no conflict event");
53
+ assert.include(res.events, "selection-change", "selectionChange was successfully registered as a no conflict event");
52
54
  });
53
55
 
54
- it("Tests that animationMode is applied", () => {
55
- const res = browser.execute( () => {
56
+ it("Tests that animationMode is applied", async () => {
57
+ const res = await browser.executeAsync(done => {
56
58
  const config = window['sap-ui-webcomponents-bundle'].configuration;
57
- return config.getAnimationMode();
59
+ done(config.getAnimationMode());
58
60
  });
59
61
  assert.strictEqual(res, 'basic', "animationMode is basic");
60
62
  });
@@ -1,45 +1,93 @@
1
1
  const assert = require("chai").assert;
2
2
 
3
- describe("Some settings can be set via URL params", () => {
4
- browser.url("http://localhost:9191/test-resources/pages/Configuration.html?sap-ui-rtl=true&sap-ui-language=ja&sap-ui-calendarType=Japanese&sap-ui-theme=sap_belize_hcb&sap-ui-animationMode=basic");
3
+ describe("Some settings can be set via SAP UI URL params", () => {
4
+ before(async () => {
5
+ await browser.url("http://localhost:9191/test-resources/pages/Configuration.html?sap-ui-rtl=true&sap-ui-language=ja&sap-ui-calendarType=Japanese&sap-ui-theme=sap_belize_hcb&sap-ui-animationMode=basic");
6
+ });
5
7
 
6
- it("Tests that RTL is applied", () => {
7
- const res = browser.execute( () => {
8
+ it("Tests that RTL is applied", async () => {
9
+ const res = await browser.executeAsync(done => {
8
10
  const config = window['sap-ui-webcomponents-bundle'].configuration;
9
- return config.getRTL();
11
+ done(config.getRTL());
10
12
  });
11
13
  assert.strictEqual(res, true, "RTL is true");
12
14
  });
13
15
 
14
- it("Tests that language is applied", () => {
15
- const res = browser.execute( () => {
16
+ it("Tests that language is applied", async () => {
17
+ const res = await browser.executeAsync(done => {
16
18
  const config = window['sap-ui-webcomponents-bundle'].configuration;
17
- return config.getLanguage();
19
+ done(config.getLanguage());
18
20
  });
19
21
  assert.strictEqual(res, 'ja', "language is japanese");
20
22
  });
21
23
 
22
- it("Tests that calendarType is applied", () => {
23
- const res = browser.execute( () => {
24
+ it("Tests that calendarType is applied", async () => {
25
+ const res = await browser.executeAsync(done => {
24
26
  const config = window['sap-ui-webcomponents-bundle'].configuration;
25
- return config.getCalendarType();
27
+ done(config.getCalendarType());
26
28
  });
27
29
  assert.strictEqual(res, 'Japanese', "calendarType is japanese");
28
30
  });
29
31
 
30
- it("Tests that theme is applied", () => {
31
- const res = browser.execute( () => {
32
+ it("Tests that theme is applied", async () => {
33
+ const res = await browser.executeAsync(done => {
32
34
  const config = window['sap-ui-webcomponents-bundle'].configuration;
33
- return config.getTheme();
35
+ done(config.getTheme());
34
36
  });
35
37
  assert.strictEqual(res, 'sap_belize_hcb', "Thems is HCB");
36
38
  });
37
39
 
38
- it("Tests that animationMode is applied", () => {
39
- const res = browser.execute( () => {
40
+ it("Tests that animationMode is applied", async () => {
41
+ const res = await browser.executeAsync(done => {
40
42
  const config = window['sap-ui-webcomponents-bundle'].configuration;
41
- return config.getAnimationMode();
43
+ done(config.getAnimationMode());
42
44
  });
43
45
  assert.strictEqual(res, 'basic', "animationMode is basic");
44
46
  });
45
47
  });
48
+
49
+
50
+ describe("Some settings can be set via SAP URL params", () => {
51
+ before(async () => {
52
+ await browser.url("http://localhost:9191/test-resources/pages/Configuration.html?sap-language=bg&sap-theme=sap_fiori_3_dark");
53
+ });
54
+
55
+ it("Tests that language is applied", async () => {
56
+ const res = await browser.executeAsync(done => {
57
+ const config = window['sap-ui-webcomponents-bundle'].configuration;
58
+ done(config.getLanguage());
59
+ });
60
+ assert.strictEqual(res, 'bg', "language is bulgarian");
61
+ });
62
+
63
+ it("Tests that theme is applied", async () => {
64
+ const res = await browser.executeAsync(done => {
65
+ const config = window['sap-ui-webcomponents-bundle'].configuration;
66
+ done(config.getTheme());
67
+ });
68
+ assert.strictEqual(res, 'sap_fiori_3_dark', "Thems is Fiori Dark");
69
+ });
70
+ });
71
+
72
+
73
+ describe("SAP UI params take precedence over the SAP params", () => {
74
+ before(async () => {
75
+ await browser.url("http://localhost:9191/test-resources/pages/Configuration.html?sap-language=bg&sap-ui-language=de&sap-theme=sap_fiori_3_dark&sap-theme=sap_fiori_3_hcb");
76
+ });
77
+
78
+ it("Tests that language is applied via sap-ui-language", async () => {
79
+ const res = await browser.executeAsync(done => {
80
+ const config = window['sap-ui-webcomponents-bundle'].configuration;
81
+ done(config.getLanguage());
82
+ });
83
+ assert.strictEqual(res, 'de', "language is german");
84
+ });
85
+
86
+ it("Tests that theme is applied via sap-ui-theme", async () => {
87
+ const res = await browser.executeAsync(done => {
88
+ const config = window['sap-ui-webcomponents-bundle'].configuration;
89
+ done(config.getTheme());
90
+ });
91
+ assert.strictEqual(res, 'sap_fiori_3_hcb', "Thems is Fiori HCB");
92
+ });
93
+ });
@@ -1,22 +1,24 @@
1
1
  const assert = require("chai").assert;
2
2
 
3
3
  describe("Custom themes can be registered", () => {
4
- browser.url("http://localhost:9191/test-resources/pages/AllTestElements.html");
4
+ before(async () => {
5
+ await browser.url("http://localhost:9191/test-resources/pages/AllTestElements.html");
6
+ });
5
7
 
6
- it("Tests that theme parameters are changed on theme change", () => {
8
+ it("Tests that theme parameters are changed on theme change", async () => {
7
9
  const newTheme = 'my_custom_theme';
8
10
 
9
- const res = browser.executeAsync( async (newTheme, done) => {
11
+ const res = await browser.executeAsync( async (newTheme, done) => {
10
12
  const var1 = "--var1: #555555";
11
13
 
12
- window.registerThemeProperties("@ui5/webcomponents-base-test", newTheme, `:root{ ${var1}; }`);
14
+ window.registerThemePropertiesLoader("@ui5/webcomponents-base-test", newTheme, () => `:root{ ${var1}; }`);
13
15
 
14
16
  const config = window['sap-ui-webcomponents-bundle'].configuration;
15
17
  await config.setTheme(newTheme);
16
18
 
17
- const style = document.querySelector(`style[data-ui5-theme-properties="@ui5/webcomponents-base-test"]`);
18
- const varsFound = style && style.textContent.includes(var1);
19
- return done(varsFound);
19
+ const style = document.adoptedStyleSheets.find(sh => sh._ui5StyleId === "data-ui5-theme-properties|@ui5/webcomponents-base-test").cssRules[0].cssText;
20
+ const varsFound = style && style.includes(var1);
21
+ done(varsFound);
20
22
  }, newTheme);
21
23
 
22
24
  assert.strictEqual(res, true, "Theme parameters changed");
@@ -0,0 +1,63 @@
1
+ const assert = require("chai").assert;
2
+
3
+ describe("Event provider attaches and detaches listeners properly", () => {
4
+ before(async () => {
5
+ await browser.url("http://localhost:9191/test-resources/pages/AllTestElements.html");
6
+ });
7
+
8
+ it("Tests that listeners can be removed (1 listener)", async () => {
9
+
10
+ const res = await browser.executeAsync(done => {
11
+ let timesCalled = 0;
12
+ const ep = new window["sap-ui-webcomponents-bundle"].EventProvider();
13
+ const callback = () => {
14
+ timesCalled++;
15
+ };
16
+
17
+ // Setup
18
+ ep.attachEvent("test", callback);
19
+
20
+ // Act
21
+ ep.fireEvent("test"); // should execute the callback and increase the counter
22
+
23
+ // Setup
24
+ ep.detachEvent("test", callback);
25
+
26
+ // Act
27
+ ep.fireEvent("test"); // should not execute the callback and increase the counter
28
+
29
+ done(timesCalled);
30
+ });
31
+
32
+ assert.strictEqual(res, 1, "The callback should be called exactly once");
33
+ });
34
+
35
+ it("Tests that listeners can be removed (more than 1 listener)", async () => {
36
+
37
+ const res = await browser.executeAsync(done => {
38
+ let timesCalled = 0;
39
+ const ep = new window["sap-ui-webcomponents-bundle"].EventProvider();
40
+ const callback = () => {
41
+ timesCalled++;
42
+ };
43
+ const somePreviousCallback = () => {};
44
+
45
+ // Setup
46
+ ep.attachEvent("test", somePreviousCallback); // Attach something so that after detachEvent the listeners array is not empty!
47
+ ep.attachEvent("test", callback);
48
+
49
+ // Act
50
+ ep.fireEvent("test"); // should execute the callback and increase the counter
51
+
52
+ // Setup
53
+ ep.detachEvent("test", callback);
54
+
55
+ // Act
56
+ ep.fireEvent("test"); // should not execute the callback and increase the counter
57
+
58
+ done(timesCalled);
59
+ });
60
+
61
+ assert.strictEqual(res, 1, "The callback should be called exactly once");
62
+ });
63
+ });
@@ -0,0 +1,78 @@
1
+ const assert = require("chai").assert;
2
+
3
+ describe("Some configuration options can be changed at runtime", () => {
4
+ before(async () => {
5
+ await browser.url("http://localhost:9191/test-resources/pages/AllTestElements.html");
6
+ });
7
+
8
+ it("Tests control with no static area item", async () => {
9
+ const componentId = await browser.$("#no-static-area").getProperty("_id");
10
+ const staticArea = await browser.$("ui5-static-area");
11
+
12
+ assert.notOk(await staticArea.$(`.${componentId}`).isExisting(), "No static area item is defined for this control");
13
+ });
14
+
15
+ it("Tests control with static area item", async () => {
16
+ const componentId = await browser.$("#with-static-area").getProperty("_id");
17
+ const staticArea = await browser.$("ui5-static-area");
18
+
19
+ assert.ok(await staticArea.$(`.${componentId}`).isExisting(), "No static area item is defined for this control");
20
+ });
21
+
22
+ it("Tests removing an element with static area", async () => {
23
+ const result = await browser.executeAsync(done => {
24
+ let res = true;
25
+ window.onerror = (errorMsg, url, lineNumber) => {
26
+ res = false;
27
+ }
28
+
29
+ document.querySelector("#no-static-area").remove();
30
+
31
+ done(res);
32
+ });
33
+
34
+ assert.ok(result, "Static area removed from DOM successfully");
35
+ });
36
+
37
+ it("Test RTL not set for static area items", async () => {
38
+ const componentId = await browser.$("#with-static-area").getProperty("_id");
39
+ const staticArea = await browser.$("ui5-static-area");
40
+
41
+ assert.notOk(await staticArea.$(`.${componentId}`).getAttribute("dir"), "dir attribute not set for static area item");
42
+ });
43
+
44
+ it("Test RTL set for static area items", async () => {
45
+ const componentId = await browser.$("#with-static-area-rtl").getProperty("_id");
46
+ const staticArea = await browser.$("ui5-static-area");
47
+
48
+ assert.equal(await staticArea.$(`.${componentId}`).getAttribute("dir"), "rtl", "dir property correctly set for static area item");
49
+ });
50
+
51
+ it("Test setting RTL for a static area item owner", async () => {
52
+ const componentId = await browser.$("#with-static-area").getProperty("_id");
53
+ const staticArea = await browser.$("ui5-static-area");
54
+
55
+ await browser.$("#with-static-area").setAttribute("dir", "rtl");
56
+ await browser.executeAsync( async (done) => {
57
+ await window["sap-ui-webcomponents-bundle"].applyDirection();
58
+ await window["sap-ui-webcomponents-bundle"].renderFinished();
59
+
60
+ done();
61
+ });
62
+ assert.equal(await staticArea.$(`.${componentId}`).getAttribute("dir"), "rtl", "dir attribute dynamically set for static area item owner");
63
+ });
64
+
65
+ it("Test removing RTL for a static area item owner", async () => {
66
+ const componentId = await browser.$("#with-static-area-rtl").getProperty("_id");
67
+ const staticArea = await browser.$("ui5-static-area");
68
+
69
+ await browser.$("#with-static-area-rtl-container").removeAttribute("dir");
70
+ await browser.executeAsync( async (done) => {
71
+ await window["sap-ui-webcomponents-bundle"].applyDirection();
72
+ await window["sap-ui-webcomponents-bundle"].renderFinished();
73
+
74
+ done();
75
+ });
76
+ assert.notOk(await staticArea.$(`.${componentId}`).getAttribute("dir"), "dir attribute dynamically removed for static area item owner");
77
+ });
78
+ });