@ui5/webcomponents-base 0.0.0-e463d2345 → 0.0.0-e58530409

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 (471) hide show
  1. package/.eslintignore +4 -0
  2. package/CHANGELOG.md +407 -0
  3. package/README.md +30 -7
  4. package/bundle.esm.js +24 -20
  5. package/dist/AssetRegistry.js +8 -6
  6. package/dist/Boot.js +59 -0
  7. package/dist/CSP.js +59 -0
  8. package/dist/CustomElementsRegistry.js +95 -0
  9. package/dist/CustomElementsScope.js +30 -0
  10. package/dist/CustomElementsScopeUtils.js +108 -0
  11. package/dist/DOMObserver.js +65 -0
  12. package/dist/Device.js +71 -773
  13. package/dist/EventProvider.js +38 -26
  14. package/dist/FeaturesRegistry.js +4 -1
  15. package/dist/FontFace.js +20 -56
  16. package/dist/InitialConfiguration.js +64 -17
  17. package/dist/Keys.js +295 -0
  18. package/dist/ManagedStyles.js +83 -0
  19. package/dist/MediaRange.js +109 -0
  20. package/dist/PropertiesFileFormat.js +95 -0
  21. package/dist/Render.js +175 -0
  22. package/dist/RenderQueue.js +41 -17
  23. package/dist/RenderScheduler.js +24 -145
  24. package/dist/Runtimes.js +107 -0
  25. package/dist/StaticArea.js +2 -34
  26. package/dist/StaticAreaItem.js +69 -35
  27. package/dist/SystemCSSVars.js +10 -0
  28. package/dist/Theming.js +3 -44
  29. package/dist/UI5Element.js +497 -306
  30. package/dist/UI5ElementMetadata.js +198 -19
  31. package/dist/asset-registries/Icons.js +125 -14
  32. package/dist/asset-registries/Illustrations.js +30 -0
  33. package/dist/asset-registries/LocaleData.js +114 -51
  34. package/dist/asset-registries/Themes.js +37 -30
  35. package/dist/asset-registries/i18n.js +80 -34
  36. package/dist/assets/bundle.esm.39b5ade5.js +43 -0
  37. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  38. package/dist/config/AnimationMode.js +16 -2
  39. package/dist/config/CalendarType.js +7 -7
  40. package/dist/config/FormatSettings.js +5 -1
  41. package/dist/config/Icons.js +52 -0
  42. package/dist/config/Language.js +62 -3
  43. package/dist/config/NoConflict.js +10 -3
  44. package/dist/config/Theme.js +32 -3
  45. package/dist/css/BusyIndicator.css +80 -0
  46. package/dist/css/FontFace.css +75 -0
  47. package/dist/css/OverrideFontFace.css +32 -0
  48. package/dist/css/SystemCSSVars.css +17 -0
  49. package/dist/delegate/ItemNavigation.js +244 -127
  50. package/dist/delegate/ResizeHandler.js +78 -38
  51. package/dist/delegate/ScrollEnablement.js +122 -14
  52. package/dist/features/F6Navigation.js +110 -0
  53. package/dist/features/OpenUI5Enablement.js +119 -0
  54. package/dist/features/OpenUI5Support.js +125 -0
  55. package/dist/generated/AssetParameters.js +13 -0
  56. package/dist/generated/VersionInfo.js +10 -0
  57. package/dist/generated/css/BusyIndicator.css.js +5 -0
  58. package/dist/generated/css/FontFace.css.js +5 -0
  59. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  60. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  61. package/dist/getSharedResource.js +30 -0
  62. package/dist/i18nBundle.js +62 -11
  63. package/{src → dist/locale}/Locale.js +0 -10
  64. package/dist/locale/RTLAwareRegistry.js +14 -0
  65. package/dist/locale/applyDirection.js +17 -0
  66. package/dist/locale/directionChange.js +32 -0
  67. package/dist/locale/getEffectiveDir.js +28 -0
  68. package/dist/locale/getLocale.js +41 -0
  69. package/dist/locale/languageChange.js +22 -0
  70. package/dist/locale/nextFallbackLocale.js +28 -0
  71. package/dist/{util → locale}/normalizeLocale.js +8 -31
  72. package/dist/renderer/LitRenderer.js +44 -7
  73. package/dist/renderer/directives/style-map.js +72 -0
  74. package/dist/renderer/executeTemplate.js +34 -0
  75. package/dist/sap/base/Log.js +241 -0
  76. package/dist/sap/base/assert.js +8 -0
  77. package/dist/sap/base/security/URLListValidator.js +148 -0
  78. package/dist/sap/base/security/encodeCSS.js +14 -0
  79. package/dist/sap/base/security/encodeXML.js +23 -0
  80. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  81. package/dist/sap/base/strings/toHex.js +8 -0
  82. package/dist/sap/base/util/now.js +7 -0
  83. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  84. package/dist/theming/CustomStyle.js +47 -6
  85. package/dist/theming/ThemeLoaded.js +22 -0
  86. package/dist/theming/applyTheme.js +79 -0
  87. package/dist/theming/getConstructableStyle.js +30 -0
  88. package/dist/theming/getEffectiveLinksHrefs.js +27 -0
  89. package/dist/theming/getEffectiveStyle.js +39 -0
  90. package/dist/theming/getStylesString.js +15 -0
  91. package/dist/theming/getThemeDesignerTheme.js +87 -0
  92. package/dist/theming/preloadLinks.js +23 -0
  93. package/dist/thirdparty/_merge.js +32 -0
  94. package/dist/thirdparty/isPlainObject.js +18 -0
  95. package/dist/thirdparty/merge.js +10 -0
  96. package/dist/types/CSSColor.js +9 -0
  97. package/dist/{dates → types}/CalendarType.js +2 -2
  98. package/dist/types/DataType.js +13 -1
  99. package/dist/types/Float.js +14 -0
  100. package/dist/types/Integer.js +4 -0
  101. package/dist/types/InvisibleMessageMode.js +30 -0
  102. package/dist/types/ItemNavigationBehavior.js +2 -7
  103. package/dist/types/NavigationMode.js +1 -0
  104. package/dist/types/PopupState.js +1 -1
  105. package/dist/types/ValueState.js +2 -1
  106. package/dist/updateShadowRoot.js +29 -0
  107. package/dist/util/AriaLabelHelper.js +41 -0
  108. package/dist/util/Caret.js +32 -0
  109. package/dist/util/ColorConversion.js +370 -0
  110. package/dist/util/FocusableElements.js +30 -11
  111. package/dist/util/HTMLSanitizer.js +7 -0
  112. package/dist/util/InvisibleMessage.js +60 -0
  113. package/dist/util/PopupUtils.js +93 -0
  114. package/dist/util/SlotsHelper.js +43 -0
  115. package/dist/util/StringHelper.js +17 -2
  116. package/dist/util/TabbableElements.js +9 -2
  117. package/dist/util/arraysAreEqual.js +15 -0
  118. package/dist/util/clamp.js +12 -0
  119. package/dist/util/createLinkInHead.js +19 -0
  120. package/dist/util/debounce.js +17 -0
  121. package/dist/util/detectNavigatorLanguage.js +3 -1
  122. package/dist/util/escapeRegex.js +10 -0
  123. package/dist/util/findNodeOwner.js +35 -0
  124. package/dist/util/generateHighlightedMarkup.js +42 -0
  125. package/dist/util/getActiveElement.js +11 -0
  126. package/dist/util/getClassCopy.js +10 -0
  127. package/dist/util/getEffectiveContentDensity.js +5 -0
  128. package/dist/util/getFileExtension.js +21 -0
  129. package/dist/util/getNormalizedTarget.js +16 -0
  130. package/dist/util/getSingletonElementInstance.js +13 -0
  131. package/dist/util/isDefaultSlotProvided.js +11 -0
  132. package/dist/util/isElementInView.js +15 -0
  133. package/dist/util/isNodeHidden.js +1 -5
  134. package/dist/util/isNodeTabbable.js +4 -4
  135. package/dist/util/isValidPropertyName.js +11 -2
  136. package/dist/util/setToArray.js +10 -0
  137. package/hash.txt +1 -0
  138. package/index.js +1 -1
  139. package/lib/generate-asset-parameters/index.js +25 -0
  140. package/lib/generate-styles/index.js +26 -0
  141. package/lib/generate-version-info/index.js +32 -0
  142. package/package-scripts.js +41 -27
  143. package/package.json +22 -14
  144. package/src/AssetRegistry.js +8 -6
  145. package/src/Boot.js +59 -0
  146. package/src/CSP.js +59 -0
  147. package/src/CustomElementsRegistry.js +95 -0
  148. package/src/CustomElementsScope.js +30 -0
  149. package/src/CustomElementsScopeUtils.js +108 -0
  150. package/src/DOMObserver.js +65 -0
  151. package/src/Device.js +71 -773
  152. package/src/EventProvider.js +38 -26
  153. package/src/FeaturesRegistry.js +4 -1
  154. package/src/FontFace.js +20 -56
  155. package/src/InitialConfiguration.js +64 -17
  156. package/src/Keys.js +295 -0
  157. package/src/ManagedStyles.js +83 -0
  158. package/src/MediaRange.js +109 -0
  159. package/src/PropertiesFileFormat.js +95 -0
  160. package/src/Render.js +175 -0
  161. package/src/RenderQueue.js +41 -17
  162. package/src/RenderScheduler.js +24 -145
  163. package/src/Runtimes.js +107 -0
  164. package/src/StaticArea.js +2 -34
  165. package/src/StaticAreaItem.js +69 -35
  166. package/src/SystemCSSVars.js +10 -0
  167. package/src/Theming.js +3 -44
  168. package/src/UI5Element.js +497 -306
  169. package/src/UI5ElementMetadata.js +198 -19
  170. package/src/asset-registries/Icons.js +125 -14
  171. package/src/asset-registries/Illustrations.js +30 -0
  172. package/src/asset-registries/LocaleData.js +114 -51
  173. package/src/asset-registries/Themes.js +37 -30
  174. package/src/asset-registries/i18n.js +80 -34
  175. package/src/assets-meta/IconCollectionsAlias.js +18 -0
  176. package/src/config/AnimationMode.js +16 -2
  177. package/src/config/CalendarType.js +7 -7
  178. package/src/config/FormatSettings.js +5 -1
  179. package/src/config/Icons.js +52 -0
  180. package/src/config/Language.js +62 -3
  181. package/src/config/NoConflict.js +10 -3
  182. package/src/config/Theme.js +32 -3
  183. package/src/css/BusyIndicator.css +80 -0
  184. package/src/css/FontFace.css +75 -0
  185. package/src/css/OverrideFontFace.css +32 -0
  186. package/src/css/SystemCSSVars.css +17 -0
  187. package/src/delegate/ItemNavigation.js +244 -127
  188. package/src/delegate/ResizeHandler.js +78 -38
  189. package/src/delegate/ScrollEnablement.js +122 -14
  190. package/src/features/F6Navigation.js +110 -0
  191. package/src/features/OpenUI5Enablement.js +119 -0
  192. package/src/features/OpenUI5Support.js +125 -0
  193. package/src/getSharedResource.js +30 -0
  194. package/src/i18nBundle.js +62 -11
  195. package/{dist → src/locale}/Locale.js +0 -10
  196. package/src/locale/RTLAwareRegistry.js +14 -0
  197. package/src/locale/applyDirection.js +17 -0
  198. package/src/locale/directionChange.js +32 -0
  199. package/src/locale/getEffectiveDir.js +28 -0
  200. package/src/locale/getLocale.js +41 -0
  201. package/src/locale/languageChange.js +22 -0
  202. package/src/locale/nextFallbackLocale.js +28 -0
  203. package/src/{util → locale}/normalizeLocale.js +8 -31
  204. package/src/renderer/LitRenderer.js +44 -7
  205. package/src/renderer/directives/style-map.js +72 -0
  206. package/src/renderer/executeTemplate.js +34 -0
  207. package/src/theming/CustomStyle.js +47 -6
  208. package/src/theming/ThemeLoaded.js +22 -0
  209. package/src/theming/applyTheme.js +79 -0
  210. package/src/theming/getConstructableStyle.js +30 -0
  211. package/src/theming/getEffectiveLinksHrefs.js +27 -0
  212. package/src/theming/getEffectiveStyle.js +39 -0
  213. package/src/theming/getStylesString.js +15 -0
  214. package/src/theming/getThemeDesignerTheme.js +87 -0
  215. package/src/theming/preloadLinks.js +23 -0
  216. package/src/thirdparty/_merge.js +32 -0
  217. package/src/thirdparty/isPlainObject.js +18 -0
  218. package/src/thirdparty/merge.js +10 -0
  219. package/src/types/CSSColor.js +9 -0
  220. package/src/{dates → types}/CalendarType.js +2 -2
  221. package/src/types/DataType.js +13 -1
  222. package/src/types/Float.js +14 -0
  223. package/src/types/Integer.js +4 -0
  224. package/src/types/InvisibleMessageMode.js +30 -0
  225. package/src/types/ItemNavigationBehavior.js +2 -7
  226. package/src/types/NavigationMode.js +1 -0
  227. package/src/types/PopupState.js +1 -1
  228. package/src/types/ValueState.js +2 -1
  229. package/src/updateShadowRoot.js +29 -0
  230. package/src/util/AriaLabelHelper.js +41 -0
  231. package/src/util/Caret.js +32 -0
  232. package/src/util/ColorConversion.js +370 -0
  233. package/src/util/FocusableElements.js +30 -11
  234. package/src/util/HTMLSanitizer.js +7 -0
  235. package/src/util/InvisibleMessage.js +60 -0
  236. package/src/util/PopupUtils.js +93 -0
  237. package/src/util/SlotsHelper.js +43 -0
  238. package/src/util/StringHelper.js +17 -2
  239. package/src/util/TabbableElements.js +9 -2
  240. package/src/util/arraysAreEqual.js +15 -0
  241. package/src/util/clamp.js +12 -0
  242. package/src/util/createLinkInHead.js +19 -0
  243. package/src/util/debounce.js +17 -0
  244. package/src/util/detectNavigatorLanguage.js +3 -1
  245. package/src/util/escapeRegex.js +10 -0
  246. package/src/util/findNodeOwner.js +35 -0
  247. package/src/util/generateHighlightedMarkup.js +42 -0
  248. package/src/util/getActiveElement.js +11 -0
  249. package/src/util/getClassCopy.js +10 -0
  250. package/src/util/getEffectiveContentDensity.js +5 -0
  251. package/src/util/getFileExtension.js +21 -0
  252. package/src/util/getNormalizedTarget.js +16 -0
  253. package/src/util/getSingletonElementInstance.js +13 -0
  254. package/src/util/isDefaultSlotProvided.js +11 -0
  255. package/src/util/isElementInView.js +15 -0
  256. package/src/util/isNodeHidden.js +1 -5
  257. package/src/util/isNodeTabbable.js +4 -4
  258. package/src/util/isValidPropertyName.js +11 -2
  259. package/src/util/setToArray.js +10 -0
  260. package/used-modules.txt +10 -0
  261. package/bundle.es5.js +0 -28
  262. package/config/.eslintrc.js +0 -3
  263. package/config/rollup.config.js +0 -1
  264. package/dist/Assets.js +0 -2
  265. package/dist/CSS.js +0 -48
  266. package/dist/FormatSettings.js +0 -31
  267. package/dist/LocaleProvider.js +0 -34
  268. package/dist/ResourceLoaderOverrides.js +0 -38
  269. package/dist/SVGIconRegistry.js +0 -54
  270. package/dist/boot.js +0 -25
  271. package/dist/compatibility/DOMObserver.js +0 -62
  272. package/dist/compatibility/patchNodeValue.js +0 -24
  273. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  274. package/dist/dates/CalendarDate.js +0 -203
  275. package/dist/dates/CalendarUtils.js +0 -99
  276. package/dist/delegate/CustomResize.js +0 -78
  277. package/dist/delegate/NativeResize.js +0 -44
  278. package/dist/events/PseudoEvents.js +0 -58
  279. package/dist/features/browsersupport/Edge.js +0 -6
  280. package/dist/features/browsersupport/IE11.js +0 -41
  281. package/dist/features/calendar/Buddhist.js +0 -1
  282. package/dist/features/calendar/Islamic.js +0 -1
  283. package/dist/features/calendar/Japanese.js +0 -1
  284. package/dist/features/calendar/Persian.js +0 -1
  285. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  286. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  287. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  288. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  289. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  290. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  291. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  292. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  293. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  294. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  295. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  296. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  297. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  298. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  299. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  300. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  301. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  302. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  303. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  304. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  305. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  306. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  307. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  308. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  309. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  310. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  311. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  312. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  313. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  314. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  315. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  316. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  317. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  318. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  319. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  320. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  321. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  322. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  323. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  324. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  325. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  326. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  327. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  328. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  329. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  330. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  331. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  332. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  333. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  334. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  335. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  336. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  337. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  338. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  339. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  340. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  341. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  342. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  343. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  344. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  345. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  346. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  347. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  348. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  349. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  350. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  351. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  352. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  353. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  354. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  355. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  356. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  357. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  358. package/dist/json-imports/LocaleData.js +0 -171
  359. package/dist/renderer/ifDefined.js +0 -21
  360. package/dist/resources/bundle.es5.js +0 -12643
  361. package/dist/resources/bundle.es5.js.map +0 -1
  362. package/dist/resources/bundle.esm.js +0 -7450
  363. package/dist/resources/bundle.esm.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/test-resources/assets/Themes.js +0 -11
  367. package/dist/test-resources/elements/Child.js +0 -35
  368. package/dist/test-resources/elements/Generic.js +0 -83
  369. package/dist/test-resources/elements/GenericExt.js +0 -26
  370. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  371. package/dist/test-resources/elements/Parent.js +0 -36
  372. package/dist/test-resources/pages/AllTestElements.html +0 -42
  373. package/dist/test-resources/pages/Configuration.html +0 -20
  374. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  375. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  376. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  377. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  378. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  379. package/dist/test-resources/specs/Theming.spec.js +0 -31
  380. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  381. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  382. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  383. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  384. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  385. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  386. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  387. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  388. package/dist/theming/StyleInjection.js +0 -67
  389. package/dist/thirdparty/Array.from.js +0 -16
  390. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  391. package/dist/thirdparty/Array.prototype.find.js +0 -46
  392. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  393. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  394. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  395. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  396. package/dist/thirdparty/Number.isInteger.js +0 -5
  397. package/dist/thirdparty/Number.isNaN.js +0 -1
  398. package/dist/thirdparty/Number.parseInt.js +0 -1
  399. package/dist/thirdparty/Object.assign.js +0 -31
  400. package/dist/thirdparty/Object.entries.js +0 -11
  401. package/dist/thirdparty/Symbol.js +0 -2
  402. package/dist/thirdparty/WeakSet.js +0 -27
  403. package/dist/thirdparty/events-polyfills.js +0 -89
  404. package/dist/thirdparty/fetch.js +0 -1
  405. package/dist/thirdparty/template.js +0 -600
  406. package/dist/util/CSSTransformUtils.js +0 -90
  407. package/dist/webcomponentsjs/LICENSE.md +0 -19
  408. package/dist/webcomponentsjs/README.md +0 -229
  409. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  410. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  411. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  412. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  413. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  414. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  415. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  416. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  417. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  418. package/dist/webcomponentsjs/package.json +0 -46
  419. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  420. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  421. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  422. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  423. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  424. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  425. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  426. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  427. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  428. package/src/Assets.js +0 -2
  429. package/src/CSS.js +0 -48
  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 -25
  435. package/src/compatibility/DOMObserver.js +0 -62
  436. package/src/compatibility/patchNodeValue.js +0 -24
  437. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  438. package/src/dates/CalendarDate.js +0 -203
  439. package/src/dates/CalendarUtils.js +0 -99
  440. package/src/delegate/CustomResize.js +0 -78
  441. package/src/delegate/NativeResize.js +0 -44
  442. package/src/events/PseudoEvents.js +0 -58
  443. package/src/features/browsersupport/Edge.js +0 -6
  444. package/src/features/browsersupport/IE11.js +0 -41
  445. package/src/features/calendar/Buddhist.js +0 -1
  446. package/src/features/calendar/Islamic.js +0 -1
  447. package/src/features/calendar/Japanese.js +0 -1
  448. package/src/features/calendar/Persian.js +0 -1
  449. package/src/json-imports/LocaleData.js +0 -171
  450. package/src/renderer/ifDefined.js +0 -21
  451. package/src/shims/Core-shim.js +0 -52
  452. package/src/shims/jquery-shim.js +0 -89
  453. package/src/theming/StyleInjection.js +0 -67
  454. package/src/thirdparty/Array.from.js +0 -16
  455. package/src/thirdparty/Array.prototype.fill.js +0 -44
  456. package/src/thirdparty/Array.prototype.find.js +0 -46
  457. package/src/thirdparty/Array.prototype.includes.js +0 -51
  458. package/src/thirdparty/Element.prototype.closest.js +0 -11
  459. package/src/thirdparty/Element.prototype.matches.js +0 -6
  460. package/src/thirdparty/Map.prototype.keys.js +0 -9
  461. package/src/thirdparty/Number.isInteger.js +0 -5
  462. package/src/thirdparty/Number.isNaN.js +0 -1
  463. package/src/thirdparty/Number.parseInt.js +0 -1
  464. package/src/thirdparty/Object.assign.js +0 -31
  465. package/src/thirdparty/Object.entries.js +0 -11
  466. package/src/thirdparty/Symbol.js +0 -2
  467. package/src/thirdparty/WeakSet.js +0 -27
  468. package/src/thirdparty/events-polyfills.js +0 -89
  469. package/src/thirdparty/fetch.js +0 -1
  470. package/src/thirdparty/template.js +0 -600
  471. package/src/util/CSSTransformUtils.js +0 -90
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Determines the slot to which a node should be assigned
3
+ * @param node Text node or HTML element
4
+ * @returns {string}
5
+ */
6
+ const getSlotName = node => {
7
+ // Text nodes can only go to the default slot
8
+ if (!(node instanceof HTMLElement)) {
9
+ return "default";
10
+ }
11
+
12
+ // Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)
13
+ const slot = node.getAttribute("slot");
14
+ if (slot) {
15
+ const match = slot.match(/^(.+?)-\d+$/);
16
+ return match ? match[1] : slot;
17
+ }
18
+
19
+ // Use default slot as a fallback
20
+ return "default";
21
+ };
22
+
23
+ const isSlot = el => el && el instanceof HTMLElement && el.localName === "slot";
24
+
25
+ const getSlottedElements = el => {
26
+ if (isSlot(el)) {
27
+ return el.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);
28
+ }
29
+
30
+ return [el];
31
+ };
32
+
33
+ const getSlottedElementsList = elList => {
34
+ const reducer = (acc, curr) => acc.concat(getSlottedElements(curr));
35
+ return elList.reduce(reducer, []);
36
+ };
37
+
38
+ export {
39
+ getSlotName,
40
+ isSlot,
41
+ getSlottedElements,
42
+ getSlottedElementsList,
43
+ };
@@ -1,6 +1,21 @@
1
- const kebabToCamelCase = string => toCamelCase(string.split("-"));
1
+ const kebabToCamelMap = new Map();
2
+ const camelToKebabMap = new Map();
2
3
 
3
- const camelToKebabCase = string => string.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
4
+ const kebabToCamelCase = string => {
5
+ if (!kebabToCamelMap.has(string)) {
6
+ const result = toCamelCase(string.split("-"));
7
+ kebabToCamelMap.set(string, result);
8
+ }
9
+ return kebabToCamelMap.get(string);
10
+ };
11
+
12
+ const camelToKebabCase = string => {
13
+ if (!camelToKebabMap.has(string)) {
14
+ const result = string.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
15
+ camelToKebabMap.set(string, result);
16
+ }
17
+ return camelToKebabMap.get(string);
18
+ };
4
19
 
5
20
  const toCamelCase = parts => {
6
21
  return parts.map((string, index) => {
@@ -1,4 +1,3 @@
1
-
2
1
  import isNodeTabbable from "./isNodeTabbable.js";
3
2
 
4
3
  const getTabbableElements = node => {
@@ -13,8 +12,12 @@ const getLastTabbableElement = node => {
13
12
  const getTabbables = (nodes, tabbables) => {
14
13
  const tabbablesNodes = tabbables || [];
15
14
 
15
+ if (!nodes) {
16
+ return tabbablesNodes;
17
+ }
18
+
16
19
  Array.from(nodes).forEach(currentNode => {
17
- if (currentNode.nodeType === Node.TEXT_NODE) {
20
+ if (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE || currentNode.hasAttribute("data-sap-no-tab-ref")) {
18
21
  return;
19
22
  }
20
23
 
@@ -24,6 +27,10 @@ const getTabbables = (nodes, tabbables) => {
24
27
  currentNode = Array.from(children).find(node => node.tagName !== "STYLE");
25
28
  }
26
29
 
30
+ if (!currentNode) {
31
+ return;
32
+ }
33
+
27
34
  if (isNodeTabbable(currentNode)) {
28
35
  tabbablesNodes.push(currentNode);
29
36
  }
@@ -0,0 +1,15 @@
1
+ const arraysAreEqual = (arr1, arr2) => {
2
+ if (arr1.length !== arr2.length) {
3
+ return false;
4
+ }
5
+
6
+ for (let i = 0; i < arr1.length; i++) {
7
+ if (arr1[i] !== arr2[i]) {
8
+ return false;
9
+ }
10
+ }
11
+
12
+ return true;
13
+ };
14
+
15
+ export default arraysAreEqual;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Returns a value clamped between an upper bound 'max' and lower bound 'min'.
3
+ * @param {number} val value
4
+ * @param {number} min lower bound
5
+ * @param {number} max upper bound
6
+ * @returns {number}
7
+ */
8
+ const clamp = (val, min, max) => {
9
+ return Math.min(Math.max(val, min), max);
10
+ };
11
+
12
+ export default clamp;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Creates a <link> tag in the <head> tag
3
+ * @param href - the CSS
4
+ * @param attributes - optional attributes to add to the tag
5
+ * @returns {HTMLElement}
6
+ */
7
+ const createLinkInHead = (href, attributes = {}) => {
8
+ const link = document.createElement("link");
9
+ link.type = "text/css";
10
+ link.rel = "stylesheet";
11
+
12
+ Object.entries(attributes).forEach(pair => link.setAttribute(...pair));
13
+
14
+ link.href = href;
15
+ document.head.appendChild(link);
16
+ return link;
17
+ };
18
+
19
+ export default createLinkInHead;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Delays function execution by given threshold.
3
+ * @param fn {Function}
4
+ * @param delay {Integer}
5
+ */
6
+
7
+ let debounceInterval = null;
8
+
9
+ const debounce = (fn, delay) => {
10
+ clearTimeout(debounceInterval);
11
+ debounceInterval = setTimeout(() => {
12
+ debounceInterval = null;
13
+ fn();
14
+ }, delay);
15
+ };
16
+
17
+ export default debounce;
@@ -1,3 +1,5 @@
1
+ import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
2
+
1
3
  export default () => {
2
4
  const browserLanguages = navigator.languages;
3
5
 
@@ -7,5 +9,5 @@ export default () => {
7
9
 
8
10
  const rawLocale = (browserLanguages && browserLanguages[0]) || navigatorLanguage() || navigator.userLanguage || navigator.browserLanguage;
9
11
 
10
- return rawLocale || "en";
12
+ return rawLocale || DEFAULT_LANGUAGE;
11
13
  };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Escape a regular expression text so that it can be used in a regular expression.
3
+ * @param {string} text The string to be interpreted literally
4
+ * @returns Regular expression string to pass to regex
5
+ */
6
+ function escapeRegex(text) {
7
+ return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
8
+ }
9
+
10
+ export default escapeRegex;
@@ -0,0 +1,35 @@
1
+ const findNodeOwner = node => {
2
+ if (!(node instanceof HTMLElement)) {
3
+ throw new Error("Argument node should be of type HTMLElement");
4
+ }
5
+
6
+ const ownerTypes = [HTMLHtmlElement, HTMLIFrameElement];
7
+ let currentShadowRootFlag = true;
8
+ let currentCustomElementFlag = true;
9
+
10
+ while (node) {
11
+ if (node.toString() === "[object ShadowRoot]") {
12
+ // Web Component
13
+ // or the shadow root of web component with attached shadow root
14
+ if (currentShadowRootFlag) {
15
+ currentShadowRootFlag = false;
16
+ }
17
+ if (!currentCustomElementFlag && !currentShadowRootFlag) {
18
+ return node;
19
+ }
20
+ } else if (node.tagName && node.tagName.indexOf("-") > -1) {
21
+ if (currentCustomElementFlag) {
22
+ currentCustomElementFlag = false;
23
+ } else {
24
+ return node;
25
+ }
26
+ } else if (ownerTypes.indexOf(node.constructor) > -1) {
27
+ // Document or Iframe reached
28
+ return node;
29
+ }
30
+
31
+ node = node.parentNode || node.host;
32
+ }
33
+ };
34
+
35
+ export default findNodeOwner;
@@ -0,0 +1,42 @@
1
+ import escapeRegex from "./escapeRegex.js";
2
+ import encodeXML from "../sap/base/security/encodeXML.js";
3
+
4
+ // utility to replace all occurances of a string
5
+ function replaceAll(text, find, replace, caseInsensitive) {
6
+ return text.replace(new RegExp(escapeRegex(find), `${caseInsensitive ? "i" : ""}g`), replace);
7
+ }
8
+
9
+ /**
10
+ * Generate markup for a raw string where a particular text is wrapped with some tag, by default `<b>` (bold) tag.
11
+ * All inputs to this function are considered literal text, and special characters will always be escaped.
12
+ * @param {string} text The text to add highlighting to
13
+ * @param {string} textToHighlight The text which should be highlighted
14
+ * @return {string} the markup HTML which contains all occurrances of the input text surrounded with a `<b>` tag.
15
+ */
16
+ function generateHighlightedMarkup(text, textToHighlight) {
17
+ if (!text || !textToHighlight) {
18
+ return text;
19
+ }
20
+ // a token is some string that does not appear in either of the input strings
21
+ // repeat the token until it does not appear in the string
22
+ const makeToken = t => {
23
+ const [s, e] = t.split("");
24
+ while (text.indexOf(t) >= 0 || textToHighlight.indexOf(t) >= 0) {
25
+ t = `${s}${t}${e}`;
26
+ }
27
+ return t;
28
+ };
29
+ // It doesn't matter what characters are used as long as all 4 of them are unique
30
+ // And also that encodeXML will not change these characters
31
+ const openToken = makeToken("12");
32
+ const closeToken = makeToken("34");
33
+ // wrap every occurance of the textToHighlight using the open/close tokens (instead of markup at this point)
34
+ let result = encodeXML(replaceAll(text, textToHighlight, match => `${openToken}${match}${closeToken}`, true));
35
+ // now replace the open and close tokens with the markup that we expect
36
+ [[openToken, "<b>"], [closeToken, "</b>"]].forEach(([find, replace]) => {
37
+ result = replaceAll(result, find, replace);
38
+ });
39
+ return result;
40
+ }
41
+
42
+ export default generateHighlightedMarkup;
@@ -0,0 +1,11 @@
1
+ const getActiveElement = () => {
2
+ let element = document.activeElement;
3
+
4
+ while (element && element.shadowRoot && element.shadowRoot.activeElement) {
5
+ element = element.shadowRoot.activeElement;
6
+ }
7
+
8
+ return element;
9
+ };
10
+
11
+ export default getActiveElement;
@@ -0,0 +1,10 @@
1
+ const getClassCopy = (klass, constructorCallback) => {
2
+ return class classCopy extends klass {
3
+ constructor() {
4
+ super();
5
+ constructorCallback && constructorCallback();
6
+ }
7
+ };
8
+ };
9
+
10
+ export default getClassCopy;
@@ -0,0 +1,5 @@
1
+ const GLOBAL_CONTENT_DENSITY_CSS_VAR = "--_ui5_content_density";
2
+
3
+ const getEffectiveContentDensity = el => getComputedStyle(el).getPropertyValue(GLOBAL_CONTENT_DENSITY_CSS_VAR);
4
+
5
+ export default getEffectiveContentDensity;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * "" -> ""
3
+ * "noExtension" -> ""
4
+ * "file.txt" -> ".txt"
5
+ * "file.with.many.dots.doc" -> ".doc"
6
+ * ".gitignore" -> ""
7
+ *
8
+ * @param fileName - the file name
9
+ * @returns {string}
10
+ */
11
+ const getFileExtension = fileName => {
12
+ const dotPos = fileName.lastIndexOf(".");
13
+
14
+ if (dotPos < 1) {
15
+ return "";
16
+ }
17
+
18
+ return fileName.slice(dotPos);
19
+ };
20
+
21
+ export default getFileExtension;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Returns the normalized event target in cases when it has shadow root.
3
+ * @param {Object} target The original event target
4
+ * @returns {Object} The normalized target
5
+ */
6
+ const getNormalizedTarget = target => {
7
+ let element = target;
8
+
9
+ if (target.shadowRoot && target.shadowRoot.activeElement) {
10
+ element = target.shadowRoot.activeElement;
11
+ }
12
+
13
+ return element;
14
+ };
15
+
16
+ export default getNormalizedTarget;
@@ -0,0 +1,13 @@
1
+ const getSingletonElementInstance = (tag, parentElement = document.body) => {
2
+ let el = document.querySelector(tag);
3
+
4
+ if (el) {
5
+ return el;
6
+ }
7
+
8
+ el = document.createElement(tag);
9
+
10
+ return parentElement.insertBefore(el, parentElement.firstChild);
11
+ };
12
+
13
+ export default getSingletonElementInstance;
@@ -0,0 +1,11 @@
1
+ import { getSlotName } from "./SlotsHelper.js";
2
+
3
+ const isDefaultSlotProvided = element => {
4
+ return Array.from(element.childNodes).filter(node => {
5
+ return node.nodeType !== Node.COMMENT_NODE
6
+ && getSlotName(node) === "default"
7
+ && (node.nodeType !== Node.TEXT_NODE || node.nodeValue.trim().length !== 0);
8
+ }).length > 0;
9
+ };
10
+
11
+ export default isDefaultSlotProvided;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Determines if the element is within the viewport.
3
+ * @param el {HTMLElement}
4
+ */
5
+ const isElementInView = el => {
6
+ const rect = el.getBoundingClientRect();
7
+
8
+ return (
9
+ rect.top >= 0 && rect.left >= 0
10
+ && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)
11
+ && rect.right <= (window.innerWidth || document.documentElement.clientWidth)
12
+ );
13
+ };
14
+
15
+ export default isElementInView;
@@ -3,11 +3,7 @@ const isNodeHidden = node => {
3
3
  return false;
4
4
  }
5
5
 
6
- const rect = node.getBoundingClientRect();
7
-
8
- return (node.offsetWidth <= 0 && node.offsetHeight <= 0)
9
- || node.style.visibility === "hidden"
10
- || (rect.width === 0 && 0 && rect.height === 0);
6
+ return (node.offsetWidth <= 0 && node.offsetHeight <= 0) || (node.style && node.style.visibility === "hidden");
11
7
  };
12
8
 
13
9
  export default isNodeHidden;
@@ -15,14 +15,14 @@ const isNodeTabbable = node => {
15
15
  return false;
16
16
  }
17
17
 
18
- if (nodeName === "a" || /input|select|textarea|button|object/.test(nodeName)) {
19
- return !node.disabled;
20
- }
21
-
22
18
  const tabIndex = node.getAttribute("tabindex");
23
19
  if (tabIndex !== null && tabIndex !== undefined) {
24
20
  return parseInt(tabIndex) >= 0;
25
21
  }
22
+
23
+ if (nodeName === "a" || /input|select|textarea|button|object/.test(nodeName)) {
24
+ return !node.disabled;
25
+ }
26
26
  };
27
27
 
28
28
  export default isNodeTabbable;
@@ -1,12 +1,21 @@
1
+ // Note: disabled is present in IE so we explicitly allow it here.
2
+ // Others, such as title/hidden, we explicitly override, so valid too
3
+ const allowList = [
4
+ "disabled",
5
+ "title",
6
+ "hidden",
7
+ "role",
8
+ "draggable",
9
+ ];
10
+
1
11
  /**
2
12
  * Checks whether a property name is valid (does not collide with existing DOM API properties)
3
- * Note: disabled is present in IE so we explicitly allow it here.
4
13
  *
5
14
  * @param name
6
15
  * @returns {boolean}
7
16
  */
8
17
  const isValidPropertyName = name => {
9
- if (name === "disabled") {
18
+ if (allowList.includes(name) || name.startsWith("aria")) {
10
19
  return true;
11
20
  }
12
21
  const classes = [
@@ -0,0 +1,10 @@
1
+ // This is needed as IE11 doesn't have Set.prototype.keys/values/entries, so [...mySet.values()] is not an option
2
+ const setToArray = s => {
3
+ const arr = [];
4
+ s.forEach(item => {
5
+ arr.push(item);
6
+ });
7
+ return arr;
8
+ };
9
+
10
+ export default setToArray;
package/hash.txt ADDED
@@ -0,0 +1 @@
1
+ XeoUDYYqmjUwnJg4dGNgbPltSMo=
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import UI5Element from "./src/UI5Element.js";
1
+ import UI5Element from "./dist/UI5Element.js";
2
2
 
3
3
  export default UI5Element;
4
4
  export { UI5Element };
@@ -0,0 +1,25 @@
1
+ const fs = require('fs').promises;
2
+ const assets = require('@ui5/webcomponents-tools/assets-meta.js');
3
+
4
+ const fileContent = `const assetParameters = ${JSON.stringify(assets)};
5
+
6
+ const DEFAULT_THEME = assetParameters.themes.default;
7
+ const DEFAULT_LANGUAGE = assetParameters.languages.default;
8
+ const DEFAULT_LOCALE = assetParameters.locales.default;
9
+ const SUPPORTED_LOCALES = assetParameters.locales.all;
10
+
11
+ export {
12
+ DEFAULT_THEME,
13
+ DEFAULT_LANGUAGE,
14
+ DEFAULT_LOCALE,
15
+ SUPPORTED_LOCALES,
16
+ };`;
17
+
18
+ const generate = async () => {
19
+ await fs.mkdir("dist/generated/", { recursive: true });
20
+ return fs.writeFile("dist/generated/AssetParameters.js", fileContent);
21
+ }
22
+
23
+ generate().then(() => {
24
+ console.log("Assets parameters generated.");
25
+ });
@@ -0,0 +1,26 @@
1
+ const fs = require('fs').promises;
2
+ const path = require('path');
3
+ const CleanCSS = require('clean-css');
4
+
5
+ const generate = async () => {
6
+ await fs.mkdir("dist/generated/css/");
7
+
8
+ const files = (await fs.readdir("src/css/")).filter(file => file.endsWith(".css"));
9
+ const filesPromises = files.map(async file => {
10
+ let content = await fs.readFile(path.join("src/css/", file));
11
+ const res = new CleanCSS().minify(`${content}`);
12
+ content = `export default {
13
+ packageName: "@ui5/webcomponents-base",
14
+ fileName: "${file}",
15
+ content: \`${res.styles}\`
16
+ };`;
17
+
18
+ return fs.writeFile(path.join("dist/generated/css/", `${file}.js`), content);
19
+ });
20
+
21
+ return Promise.all(filesPromises);
22
+ };
23
+
24
+ generate().then(() => {
25
+ console.log("Styles files generated.");
26
+ });
@@ -0,0 +1,32 @@
1
+ const fs = require('fs').promises;
2
+
3
+ const generate = async () => {
4
+ const version = JSON.parse(await fs.readFile("package.json")).version;
5
+
6
+ // Parse version
7
+ const matches = version.match(/^([0-9]+)\.([0-9]+)\.([0-9]+)(.*)$/);
8
+ if (!matches) {
9
+ throw new Error("Unsupported version format");
10
+ }
11
+
12
+ const isNext = version.match(/[a-f0-9]{9}$/);
13
+ const buildTime = Math.floor(new Date().getTime() / 1000);
14
+
15
+ const fileContent = `const VersionInfo = {
16
+ version: "${version}",
17
+ major: ${matches[1]},
18
+ minor: ${matches[2]},
19
+ patch: ${matches[3]},
20
+ suffix: "${matches[4]}",
21
+ isNext: ${isNext ? "true" : "false"},
22
+ buildTime: ${buildTime},
23
+ };
24
+ export default VersionInfo;`;
25
+
26
+ await fs.mkdir("dist/generated/", { recursive: true });
27
+ await fs.writeFile("dist/generated/VersionInfo.js", fileContent);
28
+ }
29
+
30
+ generate().then(() => {
31
+ console.log("Version info file generated.");
32
+ });
@@ -1,39 +1,53 @@
1
- const serveConfig = `../tools/components-package/serve.json`;
2
- const port = `9191`;
1
+ const resolve = require("resolve");
2
+ const path = require("path");
3
+
4
+ const assetParametersScript = resolve.sync("@ui5/webcomponents-base/lib/generate-asset-parameters/index.js");
5
+ const stylesScript = resolve.sync("@ui5/webcomponents-base/lib/generate-styles/index.js");
6
+ const versionScript = resolve.sync("@ui5/webcomponents-base/lib/generate-version-info/index.js");
7
+ const copyUsedModules = resolve.sync("@ui5/webcomponents-tools/lib/copy-list/index.js");
8
+ const esmAbsToRel = resolve.sync("@ui5/webcomponents-tools/lib/esm-abs-to-rel/index.js");
9
+
10
+ const LIB = path.join(__dirname, `../tools/lib/`);
11
+
12
+ const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`;
13
+ const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}`;
3
14
 
4
15
  const scripts = {
5
- clean: "rimraf dist",
6
- lint: "eslint . --config config/.eslintrc.js",
7
- prepare: "nps clean copy",
16
+ clean: "rimraf dist && rimraf .port",
17
+ lint: `eslint . ${eslintConfig}`,
18
+ prepare: "nps clean integrate copy generateAssetParameters generateVersionInfo generateStyles",
19
+ integrate: {
20
+ default: "nps integrate.copy-used-modules integrate.replace-amd integrate.amd-to-es6 integrate.esm-abs-to-rel integrate.third-party",
21
+ "copy-used-modules": `node "${copyUsedModules}" ./used-modules.txt dist/`,
22
+ "replace-amd": "replace-in-file sap.ui.define define dist/**/*.js",
23
+ "amd-to-es6": "amdtoes6 --src=dist/ --replace --glob=**/*.js",
24
+ "esm-abs-to-rel": `node "${esmAbsToRel}" dist/ dist/`,
25
+ "third-party": {
26
+ default: "nps integrate.third-party.copy integrate.third-party.fix",
27
+ copy: "mkdirp dist/sap/ui/thirdparty/ && copy-and-watch ../../node_modules/@openui5/sap.ui.core/src/sap/ui/thirdparty/caja-html-sanitizer.js dist/sap/ui/thirdparty/",
28
+ fix: "replace-in-file 240 xA0 dist/sap/ui/thirdparty/caja-html-sanitizer.js"
29
+ },
30
+ },
8
31
  build: {
9
- default: "nps lint prepare build.bundle",
10
- bundle: "rollup --config config/rollup.config.js --environment ES5_BUILD",
32
+ default: `nps lint prepare build.bundle`,
33
+ bundle: `vite build ${viteConfig}`,
11
34
  },
12
35
  copy: {
13
- default: "nps copy.cldr copy.src copy.test copy.webcomponents-polyfill",
14
- cldr: 'copy-and-watch "../../node_modules/@ui5/webcomponents-utils/dist/**/cldr/*.json" dist/generated/assets/cldr/',
15
- src: "copy-and-watch \"src/**/*.js\" dist/",
16
- test: "copy-and-watch \"test/**/*.*\" dist/test-resources",
17
- "webcomponents-polyfill": "copy-and-watch \"../../node_modules/@webcomponents/webcomponentsjs/**/*.*\" dist/webcomponentsjs/",
36
+ default: "nps copy.src",
37
+ src: `copy-and-watch "src/**/*.{js,css}" dist/`,
18
38
  },
39
+ generateAssetParameters: `node "${assetParametersScript}"`,
40
+ generateVersionInfo: `node "${versionScript}"`,
41
+ generateStyles: `node "${stylesScript}"`,
19
42
  watch: {
20
- default: 'concurrently "nps watch.test" "nps watch.src" "nps watch.bundle"',
43
+ default: 'concurrently "nps watch.src" "nps watch.styles"',
44
+ withBundle: 'concurrently "nps watch.src" "nps watch.bundle" "nps watch.styles"',
21
45
  src: 'nps "copy.src --watch --skip-initial-copy"',
22
- test: 'nps "copy.test --watch --skip-initial-copy"',
23
- bundle: "rollup --config config/rollup.config.js -w --environment ES5_BUILD,DEV",
24
- },
25
- dev: 'concurrently "nps serve" "nps watch"',
26
- start: "nps prepare dev",
27
- serve: {
28
- default: "nps serve.prepare serve.run",
29
- prepare: `copy-and-watch "${serveConfig}" dist/`,
30
- run: `serve --no-clipboard -l ${port} dist`,
31
- },
32
- test: {
33
- // --success first - report the exit code of the test run (first command to finish), as serve is always terminated and has a non-0 exit code
34
- default: 'concurrently "nps serve" "nps test.run" --kill-others --success first',
35
- run: "cross-env WDIO_LOG_LEVEL=error FORCE_COLOR=0 wdio config/wdio.conf.js",
46
+ bundle: `node ${LIB}/dev-server/dev-server.js ${viteConfig}`,
47
+ styles: 'chokidar "src/css/*.css" -c "nps generateStyles"'
36
48
  },
49
+ start: "nps prepare watch.withBundle",
50
+ test: `node "${LIB}/test-runner/test-runner.js"`,
37
51
  };
38
52
 
39
53